diff --git a/src/uu/env/src/env.rs b/src/uu/env/src/env.rs index 3908e9e78..f4282326f 100644 --- a/src/uu/env/src/env.rs +++ b/src/uu/env/src/env.rs @@ -606,3 +606,39 @@ fn apply_specified_env_vars(opts: &Options<'_>) { pub fn uumain(args: impl uucore::Args) -> UResult<()> { EnvAppData::default().run_env(args) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_split_string_environment_vars_test() { + std::env::set_var("FOO", "BAR"); + assert_eq!( + NCvt::convert(vec!["FOO=bar", "sh", "-c", "echo xBARx =$FOO="]), + parse_args_from_str(&NCvt::convert(r#"FOO=bar sh -c "echo x${FOO}x =\$FOO=""#)) + .unwrap(), + ); + } + + #[test] + fn test_split_string_misc() { + assert_eq!( + NCvt::convert(vec!["A=B", "FOO=AR", "sh", "-c", "echo $A$FOO"]), + parse_args_from_str(&NCvt::convert(r#"A=B FOO=AR sh -c "echo \$A\$FOO""#)).unwrap(), + ); + assert_eq!( + NCvt::convert(vec!["A=B", "FOO=AR", "sh", "-c", "echo $A$FOO"]), + parse_args_from_str(&NCvt::convert(r#"A=B FOO=AR sh -c 'echo $A$FOO'"#)).unwrap() + ); + assert_eq!( + NCvt::convert(vec!["A=B", "FOO=AR", "sh", "-c", "echo $A$FOO"]), + parse_args_from_str(&NCvt::convert(r#"A=B FOO=AR sh -c 'echo $A$FOO'"#)).unwrap() + ); + + assert_eq!( + NCvt::convert(vec!["-i", "A=B ' C"]), + parse_args_from_str(&NCvt::convert(r#"-i A='B \' C'"#)).unwrap() + ); + } +} diff --git a/tests/by-util/test_env.rs b/tests/by-util/test_env.rs index 94b73284d..18edc5dd6 100644 --- a/tests/by-util/test_env.rs +++ b/tests/by-util/test_env.rs @@ -7,7 +7,6 @@ #[cfg(target_os = "linux")] use crate::common::util::expected_result; use crate::common::util::TestScenario; -use env::native_int_str::{Convert, NCvt}; use regex::Regex; use std::env; use std::path::Path; @@ -473,40 +472,6 @@ fn test_gnu_e20() { assert_eq!(out.stdout_str(), output); } -#[test] -fn test_split_string_misc() { - use env::native_int_str::NCvt; - use env::parse_args_from_str; - - assert_eq!( - NCvt::convert(vec!["A=B", "FOO=AR", "sh", "-c", "echo $A$FOO"]), - parse_args_from_str(&NCvt::convert(r#"A=B FOO=AR sh -c "echo \$A\$FOO""#)).unwrap(), - ); - assert_eq!( - NCvt::convert(vec!["A=B", "FOO=AR", "sh", "-c", "echo $A$FOO"]), - parse_args_from_str(&NCvt::convert(r#"A=B FOO=AR sh -c 'echo $A$FOO'"#)).unwrap() - ); - assert_eq!( - NCvt::convert(vec!["A=B", "FOO=AR", "sh", "-c", "echo $A$FOO"]), - parse_args_from_str(&NCvt::convert(r#"A=B FOO=AR sh -c 'echo $A$FOO'"#)).unwrap() - ); - - assert_eq!( - NCvt::convert(vec!["-i", "A=B ' C"]), - parse_args_from_str(&NCvt::convert(r#"-i A='B \' C'"#)).unwrap() - ); -} - -#[test] -fn test_split_string_environment_vars_test() { - std::env::set_var("FOO", "BAR"); - assert_eq!( - NCvt::convert(vec!["FOO=bar", "sh", "-c", "echo xBARx =$FOO="]), - ::env::parse_args_from_str(&NCvt::convert(r#"FOO=bar sh -c "echo x${FOO}x =\$FOO=""#)) - .unwrap(), - ); -} - #[macro_export] macro_rules! compare_with_gnu { ( $ts:expr, $args:expr ) => {{