1
Fork 0

Add std::fs::split

This commit is contained in:
Brian Anderson 2011-10-04 20:18:04 -07:00
parent 0e5ea4d64f
commit 51ae30287b
2 changed files with 45 additions and 0 deletions

View file

@ -76,6 +76,15 @@ fn make_absolute(p: path) -> path {
if path_is_absolute(p) { ret p; } else { ret connect(getcwd(), p); }
}
fn split(p: path) -> [path] {
let split1 = str::split(p, os_fs::path_sep as u8);
let split2 = [];
for s in split1 {
split2 += str::split(s, os_fs::alt_path_sep as u8);
}
ret split2;
}
// Local Variables:
// mode: rust;
// fill-column: 78;

View file

@ -28,3 +28,39 @@ fn file_is_dir() {
assert (fs::file_is_dir("."));
assert (!fs::file_is_dir("test/stdtest/fs.rs"));
}
fn ps() -> str {
fs::path_sep()
}
fn aps() -> str {
"/"
}
#[test]
fn split1() {
let actual = fs::split("a" + ps() + "b");
let expected = ["a", "b"];
assert actual == expected;
}
#[test]
fn split2() {
let actual = fs::split("a" + aps() + "b");
let expected = ["a", "b"];
assert actual == expected;
}
#[test]
fn split3() {
let actual = fs::split(ps() + "a" + ps() + "b");
let expected = ["a", "b"];
assert actual == expected;
}
#[test]
fn split4() {
let actual = fs::split("a" + ps() + "b" + aps() + "c");
let expected = ["a", "b", "c"];
assert actual == expected;
}