mirror of
https://github.com/uutils/coreutils
synced 2024-12-17 00:23:18 +00:00
38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
|
use std::io::process::Command;
|
||
|
use std::io::File;
|
||
|
use std::io::fs::{unlink, PathExtensions};
|
||
|
|
||
|
static EXE: &'static str = "./cp";
|
||
|
static TEST_HELLO_WORLD_SOURCE: &'static str = "hello_world.txt";
|
||
|
static TEST_HELLO_WORLD_DEST: &'static str = "copy_of_hello_world.txt";
|
||
|
|
||
|
fn cleanup(filename: &'static str) {
|
||
|
let path = Path::new(filename);
|
||
|
if path.exists() {
|
||
|
unlink(&path).unwrap();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
#[test]
|
||
|
fn test_cp_cp() {
|
||
|
// Invoke our binary to make the copy.
|
||
|
let prog = Command::new(EXE)
|
||
|
.arg(TEST_HELLO_WORLD_SOURCE)
|
||
|
.arg(TEST_HELLO_WORLD_DEST)
|
||
|
.status();
|
||
|
|
||
|
// Check that the exit code represents a successful copy.
|
||
|
let exit_success = prog.unwrap().success();
|
||
|
assert_eq!(exit_success, true);
|
||
|
|
||
|
// Check the content of the destination file that was copied.
|
||
|
let contents = File::open(&Path::new(TEST_HELLO_WORLD_DEST))
|
||
|
.read_to_string()
|
||
|
.unwrap();
|
||
|
assert_eq!(contents.as_slice(), "Hello, World!\n");
|
||
|
|
||
|
cleanup(TEST_HELLO_WORLD_SOURCE);
|
||
|
cleanup(TEST_HELLO_WORLD_DEST);
|
||
|
}
|