Merge pull request #73 from cakebaker/rev_add_tests
rev: add some tests
This commit is contained in:
@ -20,17 +20,14 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||||||
match files {
|
match files {
|
||||||
Some(files) => {
|
Some(files) => {
|
||||||
for path in files {
|
for path in files {
|
||||||
let file = match std::fs::File::open(path) {
|
let Ok(file) = std::fs::File::open(path) else {
|
||||||
Ok(val) => val,
|
uucore::error::set_exit_code(1);
|
||||||
Err(err) => {
|
uucore::show_error!("cannot open {path}: No such file or directory");
|
||||||
uucore::error::set_exit_code(1);
|
continue;
|
||||||
uucore::show_error!("cannot open {}: {}", path, err);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
if let Err(err) = rev_stream(file) {
|
if let Err(err) = rev_stream(file) {
|
||||||
uucore::error::set_exit_code(1);
|
uucore::error::set_exit_code(1);
|
||||||
uucore::show_error!("cannot read {}: {}", path, err);
|
uucore::show_error!("cannot read {path}: {err}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,3 +9,62 @@ use crate::common::util::TestScenario;
|
|||||||
fn test_invalid_arg() {
|
fn test_invalid_arg() {
|
||||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_piped_in_data() {
|
||||||
|
new_ucmd!().pipe_in("a test").succeeds().stdout_is("tset a");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_existing_file() {
|
||||||
|
let (at, mut ucmd) = at_and_ucmd!();
|
||||||
|
|
||||||
|
at.write("a.txt", "line A\nline B");
|
||||||
|
|
||||||
|
ucmd.arg("a.txt").succeeds().stdout_is("A enil\nB enil");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_multiple_files() {
|
||||||
|
let (at, mut ucmd) = at_and_ucmd!();
|
||||||
|
|
||||||
|
at.write("a.txt", "file A\n");
|
||||||
|
at.write("b.txt", "file B\n");
|
||||||
|
|
||||||
|
ucmd.args(&["a.txt", "b.txt"])
|
||||||
|
.succeeds()
|
||||||
|
.stdout_is("A elif\nB elif\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_empty_file() {
|
||||||
|
let (at, mut ucmd) = at_and_ucmd!();
|
||||||
|
|
||||||
|
at.touch("empty.txt");
|
||||||
|
|
||||||
|
ucmd.arg("empty.txt").succeeds().no_output();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_non_existing_file() {
|
||||||
|
new_ucmd!()
|
||||||
|
.arg("non_existing_file")
|
||||||
|
.fails()
|
||||||
|
.code_is(1)
|
||||||
|
.no_stdout()
|
||||||
|
.stderr_contains("cannot open non_existing_file: No such file or directory");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_non_existing_and_existing_file() {
|
||||||
|
let (at, mut ucmd) = at_and_ucmd!();
|
||||||
|
|
||||||
|
at.write("a.txt", "file A");
|
||||||
|
|
||||||
|
ucmd.arg("non_existing_file")
|
||||||
|
.arg("a.txt")
|
||||||
|
.fails()
|
||||||
|
.code_is(1)
|
||||||
|
.stderr_contains("cannot open non_existing_file: No such file or directory")
|
||||||
|
.stdout_is("A elif");
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user