1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 19:47:45 +00:00

env: move unit tests to env.rs

This commit is contained in:
Daniel Hofstetter 2024-04-17 17:30:31 +02:00 committed by Ben Wiederhake
parent 29e5d0b42b
commit c83cec7c0c
2 changed files with 36 additions and 35 deletions

36
src/uu/env/src/env.rs vendored
View file

@ -606,3 +606,39 @@ fn apply_specified_env_vars(opts: &Options<'_>) {
pub fn uumain(args: impl uucore::Args) -> UResult<()> { pub fn uumain(args: impl uucore::Args) -> UResult<()> {
EnvAppData::default().run_env(args) 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()
);
}
}

View file

@ -7,7 +7,6 @@
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
use crate::common::util::expected_result; use crate::common::util::expected_result;
use crate::common::util::TestScenario; use crate::common::util::TestScenario;
use env::native_int_str::{Convert, NCvt};
use regex::Regex; use regex::Regex;
use std::env; use std::env;
use std::path::Path; use std::path::Path;
@ -473,40 +472,6 @@ fn test_gnu_e20() {
assert_eq!(out.stdout_str(), output); 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_export]
macro_rules! compare_with_gnu { macro_rules! compare_with_gnu {
( $ts:expr, $args:expr ) => {{ ( $ts:expr, $args:expr ) => {{