use uutests::new_ucmd;
#[test]
fn test_get_all() {
new_ucmd!()
.env("HOME", "FOO")
.env("KEY", "VALUE")
.succeeds()
.stdout_contains("HOME=FOO")
.stdout_contains("KEY=VALUE");
}
#[test]
fn test_get_var() {
new_ucmd!()
.env("KEY", "VALUE")
.env("FOO", "BAR")
.arg("KEY")
.succeeds()
.stdout_is("VALUE\n");
}
#[test]
fn test_ignore_equal_var() {
new_ucmd!().env("a=b", "c").arg("a=b").fails().no_stdout();
}
#[test]
fn test_silent_error_equal_var() {
new_ucmd!()
.env("KEY", "VALUE")
.env("a=b", "c")
.arg("KEY")
.arg("a=b")
.fails_with_code(1)
.stdout_is("VALUE\n")
.no_stderr();
}
#[test]
fn test_silent_error_not_present() {
new_ucmd!()
.env("KEY", "VALUE")
.arg("FOO")
.arg("KEY")
.fails_with_code(1)
.stdout_is("VALUE\n")
.no_stderr();
}
#[test]
fn test_invalid_option_exit_code() {
new_ucmd!()
.arg("-/")
.fails()
.code_is(2)
.stderr_contains("unexpected argument")
.stderr_contains("For more information, try '--help'");
}
#[test]
fn test_null_separator() {
for null_opt in ["-0", "--null"] {
new_ucmd!()
.env("HOME", "FOO")
.env("KEY", "VALUE")
.arg(null_opt)
.succeeds()
.stdout_contains("HOME=FOO\x00")
.stdout_contains("KEY=VALUE\x00");
new_ucmd!()
.env("HOME", "FOO")
.env("KEY", "VALUE")
.env("FOO", "BAR")
.arg(null_opt)
.arg("HOME")
.arg("KEY")
.succeeds()
.stdout_is("FOO\x00VALUE\x00");
}
}