1
1
# frozen_string_literal: true
2
2
require 'rubygems/package/tar_test_case'
3
3
require 'rubygems/package/tar_writer'
4
- require 'minitest/mock'
5
4
6
5
class TestGemPackageTarWriter < Gem ::Package ::TarTestCase
7
6
def setup
@@ -28,90 +27,80 @@ def teardown
28
27
end
29
28
30
29
def test_add_file
31
- Time . stub :now , Time . at ( 1458518157 ) do
32
- @tar_writer . add_file 'x' , 0644 do |f |
33
- f . write 'a' * 10
34
- end
30
+ @tar_writer . add_file 'x' , 0644 do |f |
31
+ f . write 'a' * 10
32
+ end
35
33
36
- assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
34
+ assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
37
35
@io . string [ 0 , 512 ] )
38
- end
39
36
assert_equal "aaaaaaaaaa#{ "\0 " * 502 } " , @io . string [ 512 , 512 ]
40
37
assert_equal 1024 , @io . pos
41
38
end
42
39
43
40
def test_add_file_source_date_epoch
44
41
ENV [ "SOURCE_DATE_EPOCH" ] = "123456789"
45
- Time . stub :now , Time . at ( 1458518157 ) do
46
- @tar_writer . mkdir 'foo' , 0644
42
+ @tar_writer . mkdir 'foo' , 0644
47
43
48
- assert_headers_equal tar_dir_header ( 'foo' , '' , 0644 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc ) ,
49
- @io . string [ 0 , 512 ]
50
- end
44
+ assert_headers_equal tar_dir_header ( 'foo' , '' , 0644 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc ) ,
45
+ @io . string [ 0 , 512 ]
51
46
end
52
47
53
48
def test_add_symlink
54
- Time . stub :now , Time . at ( 1458518157 ) do
55
- @tar_writer . add_symlink 'x' , 'y' , 0644
49
+ @tar_writer . add_symlink 'x' , 'y' , 0644
56
50
57
- assert_headers_equal ( tar_symlink_header ( 'x' , '' , 0644 , Time . now , 'y' ) ,
51
+ assert_headers_equal ( tar_symlink_header ( 'x' , '' , 0644 , Time . now , 'y' ) ,
58
52
@io . string [ 0 , 512 ] )
59
- end
60
53
assert_equal 512 , @io . pos
61
54
end
62
55
63
56
def test_add_symlink_source_date_epoch
64
57
ENV [ "SOURCE_DATE_EPOCH" ] = "123456789"
65
- Time . stub :now , Time . at ( 1458518157 ) do
66
- @tar_writer . add_symlink 'x' , 'y' , 0644
58
+ @tar_writer . add_symlink 'x' , 'y' , 0644
67
59
68
- assert_headers_equal ( tar_symlink_header ( 'x' , '' , 0644 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc , 'y' ) ,
60
+ assert_headers_equal ( tar_symlink_header ( 'x' , '' , 0644 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc , 'y' ) ,
69
61
@io . string [ 0 , 512 ] )
70
- end
71
62
end
72
63
73
64
def test_add_file_digest
74
65
digest_algorithms = Digest ::SHA1 . new , Digest ::SHA512 . new
75
66
76
- Time . stub :now , Time . at ( 1458518157 ) do
77
- digests = @tar_writer . add_file_digest 'x' , 0644 , digest_algorithms do |io |
78
- io . write 'a' * 10
79
- end
67
+ digests = @tar_writer . add_file_digest 'x' , 0644 , digest_algorithms do |io |
68
+ io . write 'a' * 10
69
+ end
80
70
81
- assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a' ,
82
- digests [ 'SHA1' ] . hexdigest
83
- assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
84
- '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
85
- '4993d6b40a4e4d8424196afc347e97640d68de61' \
86
- 'e1cf14b0' ,
87
- digests [ 'SHA512' ] . hexdigest
71
+ assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a' ,
72
+ digests [ 'SHA1' ] . hexdigest
73
+ assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
74
+ '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
75
+ '4993d6b40a4e4d8424196afc347e97640d68de61' \
76
+ 'e1cf14b0' ,
77
+ digests [ 'SHA512' ] . hexdigest
88
78
89
- assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
79
+ assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
90
80
@io . string [ 0 , 512 ] )
91
- end
81
+
92
82
assert_equal "aaaaaaaaaa#{ "\0 " * 502 } " , @io . string [ 512 , 512 ]
93
83
assert_equal 1024 , @io . pos
94
84
end
95
85
96
86
def test_add_file_digest_multiple
97
87
digest_algorithms = [ Digest ::SHA1 . new , Digest ::SHA512 . new ]
98
88
99
- Time . stub :now , Time . at ( 1458518157 ) do
100
- digests = @tar_writer . add_file_digest 'x' , 0644 , digest_algorithms do |io |
101
- io . write 'a' * 10
102
- end
89
+ digests = @tar_writer . add_file_digest 'x' , 0644 , digest_algorithms do |io |
90
+ io . write 'a' * 10
91
+ end
103
92
104
- assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a' ,
105
- digests [ 'SHA1' ] . hexdigest
106
- assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
107
- '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
108
- '4993d6b40a4e4d8424196afc347e97640d68de61' \
109
- 'e1cf14b0' ,
110
- digests [ 'SHA512' ] . hexdigest
93
+ assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a' ,
94
+ digests [ 'SHA1' ] . hexdigest
95
+ assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
96
+ '1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
97
+ '4993d6b40a4e4d8424196afc347e97640d68de61' \
98
+ 'e1cf14b0' ,
99
+ digests [ 'SHA512' ] . hexdigest
100
+
101
+ assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
102
+ @io . string [ 0 , 512 ] )
111
103
112
- assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
113
- @io . string [ 0 , 512 ] )
114
- end
115
104
assert_equal "aaaaaaaaaa#{ "\0 " * 502 } " , @io . string [ 512 , 512 ]
116
105
assert_equal 1024 , @io . pos
117
106
end
@@ -121,81 +110,70 @@ def test_add_file_signer
121
110
122
111
signer = Gem ::Security ::Signer . new PRIVATE_KEY , [ PUBLIC_CERT ]
123
112
124
- Time . stub :now , Time . at ( 1458518157 ) do
125
- @tar_writer . add_file_signed 'x' , 0644 , signer do |io |
126
- io . write 'a' * 10
127
- end
113
+ @tar_writer . add_file_signed 'x' , 0644 , signer do |io |
114
+ io . write 'a' * 10
115
+ end
128
116
129
- assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
130
- @io . string [ 0 , 512 ] )
117
+ assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
118
+ @io . string [ 0 , 512 ] )
131
119
132
- assert_equal "aaaaaaaaaa#{ "\0 " * 502 } " , @io . string [ 512 , 512 ]
120
+ assert_equal "aaaaaaaaaa#{ "\0 " * 502 } " , @io . string [ 512 , 512 ]
133
121
134
- digest = signer . digest_algorithm . new
135
- digest . update 'a' * 10
122
+ digest = signer . digest_algorithm . new
123
+ digest . update 'a' * 10
136
124
137
- signature = signer . sign digest . digest
125
+ signature = signer . sign digest . digest
138
126
139
- assert_headers_equal ( tar_file_header ( 'x.sig' , '' , 0444 , signature . length ,
140
- Time . now ) ,
141
- @io . string [ 1024 , 512 ] )
142
- assert_equal "#{ signature } #{ "\0 " * ( 512 - signature . length ) } " ,
143
- @io . string [ 1536 , 512 ]
127
+ assert_headers_equal ( tar_file_header ( 'x.sig' , '' , 0444 , signature . length ,
128
+ Time . now ) ,
129
+ @io . string [ 1024 , 512 ] )
130
+ assert_equal "#{ signature } #{ "\0 " * ( 512 - signature . length ) } " ,
131
+ @io . string [ 1536 , 512 ]
144
132
145
- assert_equal 2048 , @io . pos
146
- end
133
+ assert_equal 2048 , @io . pos
147
134
end
148
135
149
136
def test_add_file_signer_empty
150
137
signer = Gem ::Security ::Signer . new nil , nil
151
138
152
- Time . stub :now , Time . at ( 1458518157 ) do
153
-
154
- @tar_writer . add_file_signed 'x' , 0644 , signer do |io |
155
- io . write 'a' * 10
156
- end
139
+ @tar_writer . add_file_signed 'x' , 0644 , signer do |io |
140
+ io . write 'a' * 10
141
+ end
157
142
158
- assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
143
+ assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
159
144
@io . string [ 0 , 512 ] )
160
- end
161
145
assert_equal "aaaaaaaaaa#{ "\0 " * 502 } " , @io . string [ 512 , 512 ]
162
146
163
147
assert_equal 1024 , @io . pos
164
148
end
165
149
166
150
def test_add_file_simple
167
- Time . stub :now , Time . at ( 1458518157 ) do
168
151
@tar_writer . add_file_simple 'x' , 0644 , 10 do |io |
169
152
io . write "a" * 10
170
153
end
171
154
172
155
assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . now ) ,
173
156
@io . string [ 0 , 512 ] )
174
- end
175
157
176
158
assert_equal "aaaaaaaaaa#{ "\0 " * 502 } " , @io . string [ 512 , 512 ]
177
159
assert_equal 1024 , @io . pos
178
160
end
179
161
180
162
def test_add_file_simple_source_date_epoch
181
163
ENV [ "SOURCE_DATE_EPOCH" ] = "123456789"
182
- Time . stub :now , Time . at ( 1458518157 ) do
183
- @tar_writer . add_file_simple 'x' , 0644 , 10 do |io |
184
- io . write "a" * 10
185
- end
164
+ @tar_writer . add_file_simple 'x' , 0644 , 10 do |io |
165
+ io . write "a" * 10
166
+ end
186
167
187
- assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc ) ,
168
+ assert_headers_equal ( tar_file_header ( 'x' , '' , 0644 , 10 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc ) ,
188
169
@io . string [ 0 , 512 ] )
189
- end
190
170
end
191
171
192
172
def test_add_file_simple_padding
193
- Time . stub :now , Time . at ( 1458518157 ) do
194
173
@tar_writer . add_file_simple 'x' , 0 , 100
195
174
196
175
assert_headers_equal tar_file_header ( 'x' , '' , 0 , 100 , Time . now ) ,
197
176
@io . string [ 0 , 512 ]
198
- end
199
177
200
178
assert_equal "\0 " * 512 , @io . string [ 512 , 512 ]
201
179
end
@@ -248,24 +226,20 @@ def test_close
248
226
end
249
227
250
228
def test_mkdir
251
- Time . stub :now , Time . at ( 1458518157 ) do
252
- @tar_writer . mkdir 'foo' , 0644
229
+ @tar_writer . mkdir 'foo' , 0644
253
230
254
- assert_headers_equal tar_dir_header ( 'foo' , '' , 0644 , Time . now ) ,
255
- @io . string [ 0 , 512 ]
231
+ assert_headers_equal tar_dir_header ( 'foo' , '' , 0644 , Time . now ) ,
232
+ @io . string [ 0 , 512 ]
256
233
257
- assert_equal 512 , @io . pos
258
- end
234
+ assert_equal 512 , @io . pos
259
235
end
260
236
261
237
def test_mkdir_source_date_epoch
262
238
ENV [ "SOURCE_DATE_EPOCH" ] = "123456789"
263
- Time . stub :now , Time . at ( 1458518157 ) do
264
- @tar_writer . mkdir 'foo' , 0644
239
+ @tar_writer . mkdir 'foo' , 0644
265
240
266
- assert_headers_equal tar_dir_header ( 'foo' , '' , 0644 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc ) ,
267
- @io . string [ 0 , 512 ]
268
- end
241
+ assert_headers_equal tar_dir_header ( 'foo' , '' , 0644 , Time . at ( ENV [ "SOURCE_DATE_EPOCH" ] . to_i ) . utc ) ,
242
+ @io . string [ 0 , 512 ]
269
243
end
270
244
271
245
def test_split_name
0 commit comments