diff --git a/src/uu/echo/src/echo.rs b/src/uu/echo/src/echo.rs index a7a1ba09e0f..2386e87a0fc 100644 --- a/src/uu/echo/src/echo.rs +++ b/src/uu/echo/src/echo.rs @@ -167,6 +167,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { // echo --help uu_app().print_help()?; return Ok(()); + } else if args.len() == 1 && args[0] == "--version" { + print!("{}", uu_app().render_version()); + return Ok(()); } else { // if POSIXLY_CORRECT is not set we filter the flags normally filter_flags(args.into_iter()) diff --git a/tests/by-util/test_echo.rs b/tests/by-util/test_echo.rs index 6bb694f9937..ab5b8b1ab67 100644 --- a/tests/by-util/test_echo.rs +++ b/tests/by-util/test_echo.rs @@ -4,6 +4,7 @@ // file that was distributed with this source code. // spell-checker:ignore (words) araba merci efjkow +use regex::Regex; use uutests::new_ucmd; use uutests::util::TestScenario; use uutests::util::UCommand; @@ -515,7 +516,15 @@ fn partial_help_argument() { } #[test] -fn only_help_argument_prints_help() { +fn full_version_argument() { + new_ucmd!() + .arg("--version") + .succeeds() + .stdout_matches(&Regex::new(r"^echo \(uutils coreutils\) (\d+\.\d+\.\d+)\n$").unwrap()); +} + +#[test] +fn full_help_argument() { assert_ne!(new_ucmd!().arg("--help").succeeds().stdout(), b"--help\n"); assert_ne!(new_ucmd!().arg("--help").succeeds().stdout(), b"--help"); // This one is just in case. }