@@ -93,36 +93,34 @@ fn stdio_mac_metadata_and_no_mac_metadata_mutually_exclusive() {
9393#[ test]
9494fn stdio_extract_mac_metadata_option_accepted ( ) {
9595 setup ( ) ;
96- let dir = "stdio_extract_mac_metadata_dir" ;
97- fs:: create_dir_all ( dir) . unwrap ( ) ;
98- let file = format ! ( "{}/test.txt" , dir) ;
99- let archive = format ! ( "{}/test.pna" , dir) ;
100- let out_dir = format ! ( "{}/out" , dir) ;
101- fs:: write ( & file, "test content" ) . unwrap ( ) ;
102- fs:: create_dir_all ( & out_dir) . unwrap ( ) ;
96+ fs:: create_dir_all ( "stdio_extract_mac_metadata_dir" ) . unwrap ( ) ;
97+ fs:: write ( "stdio_extract_mac_metadata_dir/test.txt" , "test content" ) . unwrap ( ) ;
98+ fs:: create_dir_all ( "stdio_extract_mac_metadata_dir/out" ) . unwrap ( ) ;
10399
104100 // Create an archive first
105- let mut create_cmd = cargo_bin_cmd ! ( "pna" ) ;
106- create_cmd
107- . arg ( "create" )
108- . arg ( & archive)
109- . arg ( "--overwrite" )
110- . arg ( & file)
101+ cargo_bin_cmd ! ( "pna" )
102+ . args ( [
103+ "create" ,
104+ "stdio_extract_mac_metadata_dir/test.pna" ,
105+ "--overwrite" ,
106+ "stdio_extract_mac_metadata_dir/test.txt" ,
107+ ] )
111108 . assert ( )
112109 . success ( ) ;
113110
114111 // Extract with --mac-metadata
115- let mut extract_cmd = cargo_bin_cmd ! ( "pna" ) ;
116- extract_cmd
117- . arg ( "experimental" )
118- . arg ( "stdio" )
119- . arg ( "-x" )
120- . arg ( "--unstable" )
121- . arg ( "--mac-metadata" )
122- . arg ( "-f" )
123- . arg ( & archive)
124- . arg ( "--out-dir" )
125- . arg ( & out_dir)
112+ cargo_bin_cmd ! ( "pna" )
113+ . args ( [
114+ "experimental" ,
115+ "stdio" ,
116+ "-x" ,
117+ "--unstable" ,
118+ "--mac-metadata" ,
119+ "-f" ,
120+ "stdio_extract_mac_metadata_dir/test.pna" ,
121+ "--out-dir" ,
122+ "stdio_extract_mac_metadata_dir/out" ,
123+ ] )
126124 . assert ( )
127125 . success ( ) ;
128126}
@@ -133,35 +131,33 @@ fn stdio_extract_mac_metadata_option_accepted() {
133131#[ test]
134132fn stdio_append_mac_metadata_option_accepted ( ) {
135133 setup ( ) ;
136- let dir = "stdio_append_mac_metadata_dir" ;
137- fs:: create_dir_all ( dir) . unwrap ( ) ;
138- let file1 = format ! ( "{}/file1.txt" , dir) ;
139- let file2 = format ! ( "{}/file2.txt" , dir) ;
140- let archive = format ! ( "{}/test.pna" , dir) ;
141- fs:: write ( & file1, "test content 1" ) . unwrap ( ) ;
142- fs:: write ( & file2, "test content 2" ) . unwrap ( ) ;
134+ fs:: create_dir_all ( "stdio_append_mac_metadata_dir" ) . unwrap ( ) ;
135+ fs:: write ( "stdio_append_mac_metadata_dir/file1.txt" , "test content 1" ) . unwrap ( ) ;
136+ fs:: write ( "stdio_append_mac_metadata_dir/file2.txt" , "test content 2" ) . unwrap ( ) ;
143137
144138 // Create an archive first
145- let mut create_cmd = cargo_bin_cmd ! ( "pna" ) ;
146- create_cmd
147- . arg ( "create" )
148- . arg ( & archive)
149- . arg ( "--overwrite" )
150- . arg ( & file1)
139+ cargo_bin_cmd ! ( "pna" )
140+ . args ( [
141+ "create" ,
142+ "stdio_append_mac_metadata_dir/test.pna" ,
143+ "--overwrite" ,
144+ "stdio_append_mac_metadata_dir/file1.txt" ,
145+ ] )
151146 . assert ( )
152147 . success ( ) ;
153148
154149 // Append with --mac-metadata
155- let mut append_cmd = cargo_bin_cmd ! ( "pna" ) ;
156- append_cmd
157- . arg ( "experimental" )
158- . arg ( "stdio" )
159- . arg ( "-r" )
160- . arg ( "--unstable" )
161- . arg ( "--mac-metadata" )
162- . arg ( "-f" )
163- . arg ( & archive)
164- . arg ( & file2)
150+ cargo_bin_cmd ! ( "pna" )
151+ . args ( [
152+ "experimental" ,
153+ "stdio" ,
154+ "-r" ,
155+ "--unstable" ,
156+ "--mac-metadata" ,
157+ "-f" ,
158+ "stdio_append_mac_metadata_dir/test.pna" ,
159+ "stdio_append_mac_metadata_dir/file2.txt" ,
160+ ] )
165161 . assert ( )
166162 . success ( ) ;
167163}
@@ -172,36 +168,35 @@ fn stdio_append_mac_metadata_option_accepted() {
172168#[ test]
173169fn stdio_update_mac_metadata_option_accepted ( ) {
174170 setup ( ) ;
175- let dir = "stdio_update_mac_metadata_dir" ;
176- fs:: create_dir_all ( dir) . unwrap ( ) ;
177- let file = format ! ( "{}/test.txt" , dir) ;
178- let archive = format ! ( "{}/test.pna" , dir) ;
179- fs:: write ( & file, "test content" ) . unwrap ( ) ;
171+ fs:: create_dir_all ( "stdio_update_mac_metadata_dir" ) . unwrap ( ) ;
172+ fs:: write ( "stdio_update_mac_metadata_dir/test.txt" , "test content" ) . unwrap ( ) ;
180173
181174 // Create an archive first
182- let mut create_cmd = cargo_bin_cmd ! ( "pna" ) ;
183- create_cmd
184- . arg ( "create" )
185- . arg ( & archive)
186- . arg ( "--overwrite" )
187- . arg ( & file)
175+ cargo_bin_cmd ! ( "pna" )
176+ . args ( [
177+ "create" ,
178+ "stdio_update_mac_metadata_dir/test.pna" ,
179+ "--overwrite" ,
180+ "stdio_update_mac_metadata_dir/test.txt" ,
181+ ] )
188182 . assert ( )
189183 . success ( ) ;
190184
191185 // Update the file
192- fs:: write ( & file , "updated content" ) . unwrap ( ) ;
186+ fs:: write ( "stdio_update_mac_metadata_dir/test.txt" , "updated content" ) . unwrap ( ) ;
193187
194188 // Update with --mac-metadata
195- let mut update_cmd = cargo_bin_cmd ! ( "pna" ) ;
196- update_cmd
197- . arg ( "experimental" )
198- . arg ( "stdio" )
199- . arg ( "-u" )
200- . arg ( "--unstable" )
201- . arg ( "--mac-metadata" )
202- . arg ( "-f" )
203- . arg ( & archive)
204- . arg ( & file)
189+ cargo_bin_cmd ! ( "pna" )
190+ . args ( [
191+ "experimental" ,
192+ "stdio" ,
193+ "-u" ,
194+ "--unstable" ,
195+ "--mac-metadata" ,
196+ "-f" ,
197+ "stdio_update_mac_metadata_dir/test.pna" ,
198+ "stdio_update_mac_metadata_dir/test.txt" ,
199+ ] )
205200 . assert ( )
206201 . success ( ) ;
207202}
@@ -218,62 +213,66 @@ mod macos_tests {
218213 #[ test]
219214 fn stdio_mac_metadata_preserves_xattrs ( ) {
220215 setup ( ) ;
221- let dir = "stdio_mac_metadata_xattr_dir" ;
222- fs:: create_dir_all ( dir) . unwrap ( ) ;
223- let file = format ! ( "{}/test.txt" , dir) ;
224- let archive = format ! ( "{}/test.pna" , dir) ;
225- let out_dir = format ! ( "{}/out" , dir) ;
226- let xattr_name = "com.example.test" ;
227- let xattr_value = "test_value" ;
228-
229- // Create file and set xattr
230- fs:: write ( & file, "test content" ) . unwrap ( ) ;
216+ fs:: create_dir_all ( "stdio_mac_metadata_xattr_dir" ) . unwrap ( ) ;
217+ fs:: write ( "stdio_mac_metadata_xattr_dir/test.txt" , "test content" ) . unwrap ( ) ;
218+ fs:: create_dir_all ( "stdio_mac_metadata_xattr_dir/out" ) . unwrap ( ) ;
219+
220+ // Set xattr
231221 Command :: new ( "xattr" )
232- . args ( [ "-w" , xattr_name, xattr_value, & file] )
222+ . args ( [
223+ "-w" ,
224+ "com.example.test" ,
225+ "test_value" ,
226+ "stdio_mac_metadata_xattr_dir/test.txt" ,
227+ ] )
233228 . status ( )
234229 . expect ( "Failed to set xattr" ) ;
235230
236- fs:: create_dir_all ( & out_dir) . unwrap ( ) ;
237-
238231 // Create archive with --mac-metadata
239- let mut create_cmd = cargo_bin_cmd ! ( "pna" ) ;
240- create_cmd
241- . arg ( "experimental" )
242- . arg ( "stdio" )
243- . arg ( "-c" )
244- . arg ( "--unstable" )
245- . arg ( "--mac-metadata" )
246- . arg ( "-f" )
247- . arg ( & archive)
248- . arg ( & file)
232+ cargo_bin_cmd ! ( "pna" )
233+ . args ( [
234+ "experimental" ,
235+ "stdio" ,
236+ "-c" ,
237+ "--unstable" ,
238+ "--mac-metadata" ,
239+ "-f" ,
240+ "stdio_mac_metadata_xattr_dir/test.pna" ,
241+ "stdio_mac_metadata_xattr_dir/test.txt" ,
242+ ] )
249243 . assert ( )
250244 . success ( ) ;
251245
252246 // Extract with --mac-metadata
253- let mut extract_cmd = cargo_bin_cmd ! ( "pna" ) ;
254- extract_cmd
255- . arg ( "experimental" )
256- . arg ( "stdio" )
257- . arg ( "-x" )
258- . arg ( "--unstable" )
259- . arg ( "--mac-metadata" )
260- . arg ( "-f" )
261- . arg ( & archive)
262- . arg ( "--out-dir" )
263- . arg ( & out_dir)
264- . arg ( "--overwrite" )
247+ cargo_bin_cmd ! ( "pna" )
248+ . args ( [
249+ "experimental" ,
250+ "stdio" ,
251+ "-x" ,
252+ "--unstable" ,
253+ "--mac-metadata" ,
254+ "-f" ,
255+ "stdio_mac_metadata_xattr_dir/test.pna" ,
256+ "--out-dir" ,
257+ "stdio_mac_metadata_xattr_dir/out" ,
258+ "--overwrite" ,
259+ ] )
265260 . assert ( )
266261 . success ( ) ;
267262
268263 // Verify xattr is preserved
269264 let output = Command :: new ( "xattr" )
270- . args ( [ "-p" , xattr_name, & format ! ( "{}/{}" , out_dir, file) ] )
265+ . args ( [
266+ "-p" ,
267+ "com.example.test" ,
268+ "stdio_mac_metadata_xattr_dir/out/stdio_mac_metadata_xattr_dir/test.txt" ,
269+ ] )
271270 . output ( )
272271 . expect ( "Failed to read xattr" ) ;
273272
274273 assert ! ( output. status. success( ) ) ;
275274 let extracted_value = String :: from_utf8_lossy ( & output. stdout ) ;
276- assert ! ( extracted_value. trim( ) == xattr_value ) ;
275+ assert ! ( extracted_value. trim( ) == "test_value" ) ;
277276 }
278277
279278 /// Precondition: A file with extended attributes exists on macOS.
@@ -282,56 +281,60 @@ mod macos_tests {
282281 #[ test]
283282 fn stdio_no_mac_metadata_excludes_xattrs ( ) {
284283 setup ( ) ;
285- let dir = "stdio_no_mac_metadata_xattr_dir" ;
286- fs:: create_dir_all ( dir) . unwrap ( ) ;
287- let file = format ! ( "{}/test.txt" , dir) ;
288- let archive = format ! ( "{}/test.pna" , dir) ;
289- let out_dir = format ! ( "{}/out" , dir) ;
290- let xattr_name = "com.example.test" ;
291- let xattr_value = "test_value" ;
292-
293- // Create file and set xattr
294- fs:: write ( & file, "test content" ) . unwrap ( ) ;
284+ fs:: create_dir_all ( "stdio_no_mac_metadata_xattr_dir" ) . unwrap ( ) ;
285+ fs:: write ( "stdio_no_mac_metadata_xattr_dir/test.txt" , "test content" ) . unwrap ( ) ;
286+ fs:: create_dir_all ( "stdio_no_mac_metadata_xattr_dir/out" ) . unwrap ( ) ;
287+
288+ // Set xattr
295289 Command :: new ( "xattr" )
296- . args ( [ "-w" , xattr_name, xattr_value, & file] )
290+ . args ( [
291+ "-w" ,
292+ "com.example.test" ,
293+ "test_value" ,
294+ "stdio_no_mac_metadata_xattr_dir/test.txt" ,
295+ ] )
297296 . status ( )
298297 . expect ( "Failed to set xattr" ) ;
299298
300- fs:: create_dir_all ( & out_dir) . unwrap ( ) ;
301-
302299 // Create archive with --no-mac-metadata
303- let mut create_cmd = cargo_bin_cmd ! ( "pna" ) ;
304- create_cmd
305- . arg ( "experimental" )
306- . arg ( "stdio" )
307- . arg ( "-c" )
308- . arg ( "--unstable" )
309- . arg ( "--no-mac-metadata" )
310- . arg ( "-f" )
311- . arg ( & archive)
312- . arg ( & file)
300+ cargo_bin_cmd ! ( "pna" )
301+ . args ( [
302+ "experimental" ,
303+ "stdio" ,
304+ "-c" ,
305+ "--unstable" ,
306+ "--no-mac-metadata" ,
307+ "-f" ,
308+ "stdio_no_mac_metadata_xattr_dir/test.pna" ,
309+ "stdio_no_mac_metadata_xattr_dir/test.txt" ,
310+ ] )
313311 . assert ( )
314312 . success ( ) ;
315313
316314 // Extract with --mac-metadata (even if we try to restore, nothing should be there)
317- let mut extract_cmd = cargo_bin_cmd ! ( "pna" ) ;
318- extract_cmd
319- . arg ( "experimental" )
320- . arg ( "stdio" )
321- . arg ( "-x" )
322- . arg ( "--unstable" )
323- . arg ( "--mac-metadata" )
324- . arg ( "-f" )
325- . arg ( & archive)
326- . arg ( "--out-dir" )
327- . arg ( & out_dir)
328- . arg ( "--overwrite" )
315+ cargo_bin_cmd ! ( "pna" )
316+ . args ( [
317+ "experimental" ,
318+ "stdio" ,
319+ "-x" ,
320+ "--unstable" ,
321+ "--mac-metadata" ,
322+ "-f" ,
323+ "stdio_no_mac_metadata_xattr_dir/test.pna" ,
324+ "--out-dir" ,
325+ "stdio_no_mac_metadata_xattr_dir/out" ,
326+ "--overwrite" ,
327+ ] )
329328 . assert ( )
330329 . success ( ) ;
331330
332331 // Verify xattr is NOT preserved
333332 let output = Command :: new ( "xattr" )
334- . args ( [ "-p" , xattr_name, & format ! ( "{}/{}" , out_dir, file) ] )
333+ . args ( [
334+ "-p" ,
335+ "com.example.test" ,
336+ "stdio_no_mac_metadata_xattr_dir/out/stdio_no_mac_metadata_xattr_dir/test.txt" ,
337+ ] )
335338 . output ( )
336339 . expect ( "Failed to check xattr" ) ;
337340
0 commit comments