diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index 18bd66d2e..88abab58d 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -11,6 +11,40 @@ fn test_ls_ls_i() { new_ucmd!().arg("-il").succeeds(); } +#[test] +fn test_ls_non_existing() { + new_ucmd!().arg("doesntexist").fails(); +} + +#[test] +fn test_ls_files_dirs() { + let scene = TestScenario::new(util_name!()); + let at = &scene.fixtures; + at.mkdir("a"); + at.mkdir("a/b"); + at.mkdir("a/b/c"); + at.mkdir("z"); + at.touch(&at.plus_as_string("a/a")); + at.touch(&at.plus_as_string("a/b/b")); + + scene.ucmd().arg("a").succeeds(); + scene.ucmd().arg("a/a").succeeds(); + scene.ucmd().arg("a").arg("z").succeeds(); + + let result = scene.ucmd().arg("doesntexist").fails(); + // Doesn't exist + assert!(result + .stderr + .contains("error: 'doesntexist': No such file or directory")); + + let result = scene.ucmd().arg("a").arg("doesntexist").fails(); + // One exists, the other doesn't + assert!(result + .stderr + .contains("error: 'doesntexist': No such file or directory")); + assert!(result.stdout.contains("a:")); +} + #[test] fn test_ls_ls_color() { new_ucmd!().arg("--color").succeeds();