Add std::fs::split
This commit is contained in:
parent
0e5ea4d64f
commit
51ae30287b
2 changed files with 45 additions and 0 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue