1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

move parent opt check, update tests

This commit is contained in:
Nick 2014-01-05 16:03:13 -06:00
parent 233c49292d
commit 3a63b50956
3 changed files with 41 additions and 41 deletions

View file

@ -54,7 +54,7 @@ test_$(1): tmp/$(1)_test build build/$(1)
$(call command,tmp/$(1)_test) $(call command,tmp/$(1)_test)
tmp/$(1)_test: $(1)/test.rs tmp/$(1)_test: $(1)/test.rs
$(call command,$(RUSTC) $(RUSTCFLAGS) -o tmp/$(1)_test $(1)/test.rs) $(call command,$(RUSTC) $(RUSTCFLAGS) --test -o tmp/$(1)_test $(1)/test.rs)
endef endef
# Main rules # Main rules

View file

@ -98,13 +98,16 @@ fn print_help(opts: &[groups::OptGroup]) {
*/ */
fn exec(dirs: ~[~str], mk_parents: bool, mode: u32, verbose: bool) { fn exec(dirs: ~[~str], mk_parents: bool, mode: u32, verbose: bool) {
let mut parent_dirs: ~[~str] = ~[]; let mut parent_dirs: ~[~str] = ~[];
for dir in dirs.iter() { if mk_parents {
let path = Path::new((*dir).clone()); for dir in dirs.iter() {
// Build list of parent dirs which need to be created let path = Path::new((*dir).clone());
if mk_parents { // Build list of parent dirs which need to be created
match path.dirname_str() { let parent = path.dirname_str();
Some(p) => if p != "." { match parent {
parent_dirs.push(p.into_owned()) Some(p) => {
if !Path::new(p).exists() {
parent_dirs.push(p.into_owned())
}
}, },
None => () None => ()
} }

View file

@ -3,69 +3,66 @@ use std::io::fs::rmdir;
static exe: &'static str = "build/mkdir"; static exe: &'static str = "build/mkdir";
static test_dir1: &'static str = "mkdir_test1"; static test_dir1: &'static str = "mkdir_test1";
static test_dir2: &'static str = "mkdir_test1/mkdir_test2"; static test_dir2: &'static str = "mkdir_test2";
static test_dir3: &'static str = "mkdir_test3";
static test_dir4: &'static str = "mkdir_test4/mkdir_test4_1";
static test_dir5: &'static str = "mkdir_test5/mkdir_test5_1";
fn main() { fn cleanup(dir: &'static str) {
test_mkdir_mkdir(); let d = dir.into_owned();
test_mkdir_dup_dir(); let p = Path::new(d.into_owned());
test_mkdir_mode(); if p.exists() {
test_mkdir_parent(); rmdir(&p);
test_mkdir_no_parent();
println("mkdir tests completed successfully!\n");
}
fn cleanup() {
let dirs = [test_dir2, test_dir1];
for d in dirs.iter() {
let p = Path::new(d.into_owned());
if p.exists() {
rmdir(&p);
}
} }
} }
#[test]
fn test_mkdir_mkdir() { fn test_mkdir_mkdir() {
cleanup(); cleanup(test_dir1);
let prog = run::process_status(exe.into_owned(), [test_dir1.into_owned()]); let prog = run::process_status(exe.into_owned(), [test_dir1.into_owned()]);
let exit_success = prog.unwrap().success(); let exit_success = prog.unwrap().success();
cleanup(); cleanup(test_dir1);
assert_eq!(exit_success, true); assert_eq!(exit_success, true);
} }
#[test]
fn test_mkdir_dup_dir() { fn test_mkdir_dup_dir() {
cleanup(); cleanup(test_dir2);
let prog = run::process_status(exe.into_owned(), [test_dir1.into_owned()]); let prog = run::process_status(exe.into_owned(), [test_dir2.into_owned()]);
let exit_success = prog.unwrap().success(); let exit_success = prog.unwrap().success();
if !exit_success { if !exit_success {
cleanup(); cleanup(test_dir2);
fail!(); fail!();
} }
let prog2 = run::process_status(exe.into_owned(), [test_dir1.into_owned()]); let prog2 = run::process_status(exe.into_owned(), [test_dir2.into_owned()]);
let exit_success2 = prog2.unwrap().success(); let exit_success2 = prog2.unwrap().success();
cleanup(); cleanup(test_dir2);
assert_eq!(exit_success2, false); assert_eq!(exit_success2, false);
} }
#[test]
fn test_mkdir_mode() { fn test_mkdir_mode() {
cleanup(); cleanup(test_dir3);
let prog = run::process_status(exe.into_owned(), [~"-m", ~"755", test_dir1.into_owned()]); let prog = run::process_status(exe.into_owned(), [~"-m", ~"755", test_dir3.into_owned()]);
let exit_success = prog.unwrap().success(); let exit_success = prog.unwrap().success();
cleanup(); cleanup(test_dir3);
assert_eq!(exit_success, true); assert_eq!(exit_success, true);
} }
#[test]
fn test_mkdir_parent() { fn test_mkdir_parent() {
cleanup(); cleanup(test_dir4);
let prog = run::process_status(exe.into_owned(), [~"-p", test_dir2.into_owned()]); let prog = run::process_status(exe.into_owned(), [~"-p", test_dir4.into_owned()]);
let exit_success = prog.unwrap().success(); let exit_success = prog.unwrap().success();
cleanup(); cleanup(test_dir4);
assert_eq!(exit_success, true); assert_eq!(exit_success, true);
} }
#[test]
fn test_mkdir_no_parent() { fn test_mkdir_no_parent() {
cleanup(); cleanup(test_dir5);
let prog = run::process_status(exe.into_owned(), [test_dir2.into_owned()]); let prog = run::process_status(exe.into_owned(), [test_dir5.into_owned()]);
let exit_success = prog.unwrap().success(); let exit_success = prog.unwrap().success();
cleanup(); cleanup(test_dir5);
assert_eq!(exit_success, false); assert_eq!(exit_success, false);
} }