From a243ea39c3c155ada813c129081772ede8bce3e4 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Wed, 22 May 2013 18:57:24 -0700 Subject: [PATCH] testsuite: Add a test for listing the root directory... ...and don't treat Path("/") like Path(""). --- src/libstd/os.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/libstd/os.rs b/src/libstd/os.rs index e612c8cfeff8..44acdd4d6173 100644 --- a/src/libstd/os.rs +++ b/src/libstd/os.rs @@ -675,7 +675,7 @@ pub fn mkdir_recursive(p: &Path, mode: c_int) -> bool { /// Lists the contents of a directory #[allow(non_implicitly_copyable_typarams)] pub fn list_dir(p: &Path) -> ~[~str] { - if p.components.is_empty() { + if p.components.is_empty() && !p.is_absolute() { // Not sure what the right behavior is here, but this // prevents a bounds check failure later return ~[]; @@ -1607,6 +1607,20 @@ mod tests { assert!(dirs.is_empty()); } + #[test] + #[cfg(not(windows))] + fn list_dir_root() { + let dirs = os::list_dir(&Path("/")); + assert!(dirs.len() > 1); + } + #[test] + #[cfg(windows)] + fn list_dir_root() { + let dirs = os::list_dir(&Path("C:\\")); + assert!(dirs.len() > 1); + } + + #[test] fn path_is_dir() { assert!((os::path_is_dir(&Path("."))));