Allow captured stderr saving to file (#6793)

* support redirect stderr to file

* fix test

* fix test

* fix test
This commit is contained in:
WindSoilder
2022-10-20 20:56:44 +08:00
committed by GitHub
parent d37e6ba3b5
commit 10aa86272b
4 changed files with 162 additions and 27 deletions

View File

@ -82,3 +82,51 @@ fn save_append_will_not_overwrite_content() {
assert_eq!(actual, "hello world");
})
}
#[test]
fn save_stderr_and_stdout_to_same_file() {
Playground::setup("save_test_5", |dirs, sandbox| {
sandbox.with_files(vec![]);
let expected_file = dirs.test().join("new-file.txt");
nu!(
cwd: dirs.root(),
r#"
let-env FOO = "bar";
let-env BAZ = "ZZZ";
do -i {nu -c 'nu --testbin echo_env FOO; nu --testbin echo_env_stderr BAZ'} | save -r save_test_5/new-file.txt --stderr save_test_5/new-file.txt"#,
);
let actual = file_contents(expected_file);
println!("{}, {}", actual, actual.contains("ZZZ"));
assert!(actual.contains("bar"));
assert!(actual.contains("ZZZ"));
})
}
#[test]
fn save_stderr_and_stdout_to_diff_file() {
Playground::setup("save_test_6", |dirs, sandbox| {
sandbox.with_files(vec![]);
let expected_file = dirs.test().join("log.txt");
let expected_stderr_file = dirs.test().join("err.txt");
nu!(
cwd: dirs.root(),
r#"
let-env FOO = "bar";
let-env BAZ = "ZZZ";
do -i {nu -c 'nu --testbin echo_env FOO; nu --testbin echo_env_stderr BAZ'} | save -r save_test_6/log.txt --stderr save_test_6/err.txt"#,
);
let actual = file_contents(expected_file);
assert!(actual.contains("bar"));
assert!(!actual.contains("ZZZ"));
let actual = file_contents(expected_stderr_file);
assert!(actual.contains("ZZZ"));
assert!(!actual.contains("bar"));
})
}