diff options
| author | bors <bors@rust-lang.org> | 2013-09-13 11:45:56 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-09-13 11:45:56 -0700 |
| commit | 05bbb480a22d1f752f95591b41b584018966b136 (patch) | |
| tree | 5bb94bf48e12dcf12587cf66adc3bd69058ad795 /src/libextra | |
| parent | 7c8f503ac543e0ffe18986b8d6f8548df21cefa3 (diff) | |
| parent | a7215dd284a1d2e15ecbe0c71b7c978fcba5e3ec (diff) | |
| download | rust-05bbb480a22d1f752f95591b41b584018966b136.tar.gz rust-05bbb480a22d1f752f95591b41b584018966b136.zip | |
auto merge of #9170 : alexcrichton/rust/flaky-fileinput, r=erickt
The glob tests cannot change the current working directory because the other tests (namely the fileinput ones) depend on the current working directory not changing.
Diffstat (limited to 'src/libextra')
| -rw-r--r-- | src/libextra/glob.rs | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/src/libextra/glob.rs b/src/libextra/glob.rs index 07386b41caa..2cd0fdd4ede 100644 --- a/src/libextra/glob.rs +++ b/src/libextra/glob.rs @@ -517,194 +517,6 @@ mod test { use tempfile; #[test] - fn test_relative_pattern() { - - fn change_then_remove(p: &Path, f: &fn()) { - do (|| { - unstable::change_dir_locked(p, || f()); - }).finally { - os::remove_dir_recursive(p); - } - } - - fn mk_file(path: &str, directory: bool) { - if directory { - os::make_dir(&Path(path), 0xFFFF); - } else { - io::mk_file_writer(&Path(path), [io::Create]); - } - } - - fn abs_path(path: &str) -> Path { - os::getcwd().push_many(Path(path).components) - } - - fn glob_vec(pattern: &str) -> ~[Path] { - glob(pattern).collect() - } - - let root = tempfile::mkdtemp(&os::tmpdir(), "glob-tests"); - let root = root.expect("Should have created a temp directory"); - - do change_then_remove(&root) { - - mk_file("aaa", true); - mk_file("aaa/apple", true); - mk_file("aaa/orange", true); - mk_file("aaa/tomato", true); - mk_file("aaa/tomato/tomato.txt", false); - mk_file("aaa/tomato/tomoto.txt", false); - mk_file("bbb", true); - mk_file("bbb/specials", true); - mk_file("bbb/specials/!", false); - - // windows does not allow `*` or `?` characters to exist in filenames - if os::consts::FAMILY != os::consts::windows::FAMILY { - mk_file("bbb/specials/*", false); - mk_file("bbb/specials/?", false); - } - - mk_file("bbb/specials/[", false); - mk_file("bbb/specials/]", false); - mk_file("ccc", true); - mk_file("xyz", true); - mk_file("xyz/x", false); - mk_file("xyz/y", false); - mk_file("xyz/z", false); - - assert_eq!(glob_vec(""), ~[]); - assert_eq!(glob_vec("."), ~[]); - assert_eq!(glob_vec(".."), ~[]); - - assert_eq!(glob_vec("aaa"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("aaa/"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("a"), ~[]); - assert_eq!(glob_vec("aa"), ~[]); - assert_eq!(glob_vec("aaaa"), ~[]); - - assert_eq!(glob_vec("aaa/apple"), ~[abs_path("aaa/apple")]); - assert_eq!(glob_vec("aaa/apple/nope"), ~[]); - - // windows should support both / and \ as directory separators - if os::consts::FAMILY == os::consts::windows::FAMILY { - assert_eq!(glob_vec("aaa\\apple"), ~[abs_path("aaa/apple")]); - } - - assert_eq!(glob_vec("???/"), ~[ - abs_path("aaa"), - abs_path("bbb"), - abs_path("ccc"), - abs_path("xyz")]); - - assert_eq!(glob_vec("aaa/tomato/tom?to.txt"), ~[ - abs_path("aaa/tomato/tomato.txt"), - abs_path("aaa/tomato/tomoto.txt")]); - - assert_eq!(glob_vec("xyz/?"), ~[ - abs_path("xyz/x"), - abs_path("xyz/y"), - abs_path("xyz/z")]); - - assert_eq!(glob_vec("a*"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("*a*"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("a*a"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("aaa*"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("*aaa"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("*aaa*"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("*a*a*a*"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("aaa*/"), ~[abs_path("aaa")]); - - assert_eq!(glob_vec("aaa/*"), ~[ - abs_path("aaa/apple"), - abs_path("aaa/orange"), - abs_path("aaa/tomato")]); - - assert_eq!(glob_vec("aaa/*a*"), ~[ - abs_path("aaa/apple"), - abs_path("aaa/orange"), - abs_path("aaa/tomato")]); - - assert_eq!(glob_vec("*/*/*.txt"), ~[ - abs_path("aaa/tomato/tomato.txt"), - abs_path("aaa/tomato/tomoto.txt")]); - - assert_eq!(glob_vec("*/*/t[aob]m?to[.]t[!y]t"), ~[ - abs_path("aaa/tomato/tomato.txt"), - abs_path("aaa/tomato/tomoto.txt")]); - - assert_eq!(glob_vec("aa[a]"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("aa[abc]"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("a[bca]a"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("aa[b]"), ~[]); - assert_eq!(glob_vec("aa[xyz]"), ~[]); - assert_eq!(glob_vec("aa[]]"), ~[]); - - assert_eq!(glob_vec("aa[!b]"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("aa[!bcd]"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("a[!bcd]a"), ~[abs_path("aaa")]); - assert_eq!(glob_vec("aa[!a]"), ~[]); - assert_eq!(glob_vec("aa[!abc]"), ~[]); - - assert_eq!(glob_vec("bbb/specials/[[]"), ~[abs_path("bbb/specials/[")]); - assert_eq!(glob_vec("bbb/specials/!"), ~[abs_path("bbb/specials/!")]); - assert_eq!(glob_vec("bbb/specials/[]]"), ~[abs_path("bbb/specials/]")]); - - if os::consts::FAMILY != os::consts::windows::FAMILY { - assert_eq!(glob_vec("bbb/specials/[*]"), ~[abs_path("bbb/specials/*")]); - assert_eq!(glob_vec("bbb/specials/[?]"), ~[abs_path("bbb/specials/?")]); - } - - if os::consts::FAMILY == os::consts::windows::FAMILY { - - assert_eq!(glob_vec("bbb/specials/[![]"), ~[ - abs_path("bbb/specials/!"), - abs_path("bbb/specials/]")]); - - assert_eq!(glob_vec("bbb/specials/[!]]"), ~[ - abs_path("bbb/specials/!"), - abs_path("bbb/specials/[")]); - - assert_eq!(glob_vec("bbb/specials/[!!]"), ~[ - abs_path("bbb/specials/["), - abs_path("bbb/specials/]")]); - - } else { - - assert_eq!(glob_vec("bbb/specials/[![]"), ~[ - abs_path("bbb/specials/!"), - abs_path("bbb/specials/*"), - abs_path("bbb/specials/?"), - abs_path("bbb/specials/]")]); - - assert_eq!(glob_vec("bbb/specials/[!]]"), ~[ - abs_path("bbb/specials/!"), - abs_path("bbb/specials/*"), - abs_path("bbb/specials/?"), - abs_path("bbb/specials/[")]); - - assert_eq!(glob_vec("bbb/specials/[!!]"), ~[ - abs_path("bbb/specials/*"), - abs_path("bbb/specials/?"), - abs_path("bbb/specials/["), - abs_path("bbb/specials/]")]); - - assert_eq!(glob_vec("bbb/specials/[!*]"), ~[ - abs_path("bbb/specials/!"), - abs_path("bbb/specials/?"), - abs_path("bbb/specials/["), - abs_path("bbb/specials/]")]); - - assert_eq!(glob_vec("bbb/specials/[!?]"), ~[ - abs_path("bbb/specials/!"), - abs_path("bbb/specials/*"), - abs_path("bbb/specials/["), - abs_path("bbb/specials/]")]); - - } - }; - } - - #[test] fn test_absolute_pattern() { // assume that the filesystem is not empty! assert!(glob("/*").next().is_some()); |
