Skip to content

Commit 4d27d2f

Browse files
committed
Handle symlinks being disabled in remove_file_or_symlink_dir tests.
In Windows, if "Developer Mode" is not enabled, symlinks cannot be created. Disable the symlink tests in those cases.
1 parent 7007ee7 commit 4d27d2f

File tree

2 files changed

+54
-103
lines changed

2 files changed

+54
-103
lines changed

cap-fs-ext/src/dir_ext.rs

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -298,57 +298,6 @@ impl DirExt for cap_std::fs::Dir {
298298
}
299299
}
300300

301-
#[cfg(all(test, feature = "std"))]
302-
mod std_remove_file_or_symlink_tests {
303-
use super::DirExt;
304-
use cap_tempfile::TempDir;
305-
#[test]
306-
fn remove_file() {
307-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
308-
let file = tempdir.create("file").expect("create file to delete");
309-
drop(file);
310-
tempdir.remove_file_or_symlink("file").expect("delete file");
311-
assert!(!tempdir.exists("file"), "deletion worked");
312-
}
313-
#[test]
314-
fn remove_symlink_to_file() {
315-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
316-
let target = tempdir.create("target").expect("create target file");
317-
drop(target);
318-
tempdir.symlink("target", "link").expect("create symlink");
319-
assert!(tempdir.exists("link"), "link exists");
320-
tempdir
321-
.remove_file_or_symlink("link")
322-
.expect("delete symlink");
323-
assert!(!tempdir.exists("link"), "link deleted");
324-
assert!(tempdir.exists("target"), "target not deleted");
325-
}
326-
#[test]
327-
fn remove_symlink_to_dir() {
328-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
329-
let target = tempdir.create_dir("target").expect("create target dir");
330-
drop(target);
331-
tempdir.symlink("target", "link").expect("create symlink");
332-
assert!(tempdir.exists("link"), "link exists");
333-
tempdir
334-
.remove_file_or_symlink("link")
335-
.expect("delete symlink");
336-
assert!(!tempdir.exists("link"), "link deleted");
337-
assert!(tempdir.exists("target"), "target not deleted");
338-
}
339-
#[test]
340-
fn do_not_remove_dir() {
341-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
342-
let subdir = tempdir.create_dir("subdir").expect("create dir");
343-
drop(subdir);
344-
assert!(tempdir.exists("subdir"), "subdir created");
345-
tempdir
346-
.remove_file_or_symlink("subdir")
347-
.expect_err("should not delete empty directory");
348-
assert!(tempdir.exists("subdir"), "subdir not deleted");
349-
}
350-
}
351-
352301
#[cfg(feature = "async_std")]
353302
impl DirExt for cap_async_std::fs::Dir {
354303
#[inline]

tests/dir-ext.rs

Lines changed: 54 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,63 @@
1+
mod sys_common;
2+
13
use cap_fs_ext::DirExt;
24
use cap_tempfile::TempDir;
35

4-
use sys_common::{io::tmpdir, symlink_supported};
6+
use sys_common::symlink_supported;
57

6-
#[test]
7-
fn remove_file() {
8-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
9-
let file = tempdir.create("file").expect("create file to delete");
10-
drop(file);
11-
tempdir.remove_file_or_symlink("file").expect("delete file");
12-
assert!(!tempdir.exists("file"), "deletion worked");
13-
}
8+
#[test]
9+
fn remove_file() {
10+
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
11+
let file = tempdir.create("file").expect("create file to delete");
12+
drop(file);
13+
tempdir.remove_file_or_symlink("file").expect("delete file");
14+
assert!(!tempdir.exists("file"), "deletion worked");
15+
}
1416

15-
#[test]
16-
fn remove_symlink_to_file() {
17-
if !symlink_supported() {
18-
return;
19-
}
20-
21-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
22-
let target = tempdir.create("target").expect("create target file");
23-
drop(target);
24-
tempdir.symlink("target", "link").expect("create symlink");
25-
assert!(tempdir.exists("link"), "link exists");
26-
tempdir
27-
.remove_file_or_symlink("link")
28-
.expect("delete symlink");
29-
assert!(!tempdir.exists("link"), "link deleted");
30-
assert!(tempdir.exists("target"), "target not deleted");
17+
#[test]
18+
fn remove_symlink_to_file() {
19+
if !symlink_supported() {
20+
return;
3121
}
3222

33-
#[test]
34-
fn remove_symlink_to_dir() {
35-
if !symlink_supported() {
36-
return;
37-
}
38-
39-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
40-
let target = tempdir.create_dir("target").expect("create target dir");
41-
drop(target);
42-
tempdir.symlink("target", "link").expect("create symlink");
43-
assert!(tempdir.exists("link"), "link exists");
44-
tempdir
45-
.remove_file_or_symlink("link")
46-
.expect("delete symlink");
47-
assert!(!tempdir.exists("link"), "link deleted");
48-
assert!(tempdir.exists("target"), "target not deleted");
49-
}
23+
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
24+
let target = tempdir.create("target").expect("create target file");
25+
drop(target);
26+
tempdir.symlink("target", "link").expect("create symlink");
27+
assert!(tempdir.exists("link"), "link exists");
28+
tempdir
29+
.remove_file_or_symlink("link")
30+
.expect("delete symlink");
31+
assert!(!tempdir.exists("link"), "link deleted");
32+
assert!(tempdir.exists("target"), "target not deleted");
33+
}
5034

51-
#[test]
52-
fn do_not_remove_dir() {
53-
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
54-
let subdir = tempdir.create_dir("subdir").expect("create dir");
55-
drop(subdir);
56-
assert!(tempdir.exists("subdir"), "subdir created");
57-
tempdir
58-
.remove_file_or_symlink("subdir")
59-
.expect_err("should not delete empty directory");
60-
assert!(tempdir.exists("subdir"), "subdir not deleted");
35+
#[test]
36+
fn remove_symlink_to_dir() {
37+
if !symlink_supported() {
38+
return;
6139
}
40+
41+
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
42+
let target = tempdir.create_dir("target").expect("create target dir");
43+
drop(target);
44+
tempdir.symlink("target", "link").expect("create symlink");
45+
assert!(tempdir.exists("link"), "link exists");
46+
tempdir
47+
.remove_file_or_symlink("link")
48+
.expect("delete symlink");
49+
assert!(!tempdir.exists("link"), "link deleted");
50+
assert!(tempdir.exists("target"), "target not deleted");
51+
}
52+
53+
#[test]
54+
fn do_not_remove_dir() {
55+
let tempdir = unsafe { TempDir::new() }.expect("create tempdir");
56+
let subdir = tempdir.create_dir("subdir").expect("create dir");
57+
drop(subdir);
58+
assert!(tempdir.exists("subdir"), "subdir created");
59+
tempdir
60+
.remove_file_or_symlink("subdir")
61+
.expect_err("should not delete empty directory");
62+
assert!(tempdir.exists("subdir"), "subdir not deleted");
63+
}

0 commit comments

Comments
 (0)