extern crate rpf;
use std::process::Command;
use rpf::test;
static PROG: &'static str = "target/debug/ln";
#[test]
#[should_panic]
fn test_ln_bad_option() {
let prog = Command::new(PROG)
.arg("--fail")
.output()
.unwrap_or_else(|e| { panic!("Failed to run test for ln: {}", e) });
assert_eq!(prog.status.success(), true);
println!("{}", String::from_utf8_lossy(&prog.stdout));
}
#[test]
fn test_ln_help() {
let prog = Command::new(PROG)
.arg("--help")
.output()
.unwrap_or_else(|e| { panic!("Failed to run test for ln: {}", e) });
assert_eq!(prog.status.success(), true);
println!("{}", String::from_utf8_lossy(&prog.stdout));
}
#[test]
fn test_ln_softlink_success() {
let prog = Command::new(PROG)
.arg("-s")
.arg("-v")
.arg("tests/items/file.txt")
.arg("tests/items/test-ln-s.txt")
.output()
.unwrap_or_else(|e| { panic!("Failed to run test for ln: {}", e) });
assert_eq!(prog.status.success(), true);
test::remove("tests/items/test-ln-s.txt");
println!("{}", String::from_utf8_lossy(&prog.stdout));
}
#[test]
#[should_panic]
fn test_ln_softlink_fail() {
let prog = Command::new(PROG)
.arg("-s")
.arg("-v")
.arg("test")
.arg("fail")
.output()
.unwrap_or_else(|e| { panic!("Failed to run test for ln: {}", e) });
assert_eq!(prog.status.success(), true);
println!("{}", String::from_utf8_lossy(&prog.stdout));
}
#[test]
fn test_ln_physical_success() {
let prog = Command::new(PROG)
.arg("-p")
.arg("-v")
.arg("tests/items/file.txt")
.arg("tests/items/test-ln-p.txt")
.output()
.unwrap_or_else(|e| { panic!("Failed to run test for ln: {}", e) });
assert_eq!(prog.status.success(), true);
test::remove("tests/items/test-ln-p.txt");
println!("{}", String::from_utf8_lossy(&prog.stdout));
}
#[test]
#[should_panic]
fn test_ln_physical_fail() {
let prog = Command::new(PROG)
.arg("-p")
.arg("-v")
.arg("tests/items/file-fail.txt")
.arg("tests/items/test-fail.txt")
.output()
.unwrap_or_else(|e| { panic!("Failed to run test for ln: {}", e) });
assert_eq!(prog.status.success(), true);
println!("{}", String::from_utf8_lossy(&prog.stdout));
}