Skip to content

Commit 9de410e

Browse files
committed
Update option_mac_metadata.rs
1 parent 21ac20a commit 9de410e

1 file changed

Lines changed: 145 additions & 142 deletions

File tree

cli/tests/cli/stdio/option_mac_metadata.rs

Lines changed: 145 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -93,36 +93,34 @@ fn stdio_mac_metadata_and_no_mac_metadata_mutually_exclusive() {
9393
#[test]
9494
fn 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]
134132
fn 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]
173169
fn 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

Comments
 (0)