diff --git a/tests/test_printenv.rs b/tests/test_printenv.rs new file mode 100644 index 000000000..1b617d0b2 --- /dev/null +++ b/tests/test_printenv.rs @@ -0,0 +1,30 @@ +use common::util::*; +use std::env; + +#[test] +fn test_get_all() { + let key = "KEY"; + env::set_var(key, "VALUE"); + assert_eq!(env::var(key), Ok("VALUE".to_string())); + + let result = TestScenario::new(util_name!()).ucmd_keepenv().run(); + assert!(result.success); + assert!(result.stdout.contains("HOME=")); + assert!(result.stdout.contains("KEY=VALUE")); +} + +#[test] +fn test_get_var() { + let key = "KEY"; + env::set_var(key, "VALUE"); + assert_eq!(env::var(key), Ok("VALUE".to_string())); + + let result = TestScenario::new(util_name!()) + .ucmd_keepenv() + .arg("KEY") + .run(); + + assert!(result.success); + assert!(!result.stdout.is_empty()); + assert!(result.stdout.trim() == "VALUE"); +} diff --git a/tests/tests.rs b/tests/tests.rs index 5bd0f0f05..49a7aa380 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -77,6 +77,7 @@ generic! { "nl", test_nl; "od", test_od; "paste", test_paste; + "printenv", test_printenv; "printf", test_printf; "ptx", test_ptx; "pwd", test_pwd;