From ad95e4cc27869dd0e7db20e58b1d59cc4ebfb5ec Mon Sep 17 00:00:00 2001 From: tomoda <40169443+yukitomoda@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:40:56 +0900 Subject: [PATCH] Refactor tests (using cococo instead of ^echo) (#11479) - related PR: #11478 # Description Now we can use `nu --testbin cococo` instead of `^echo` to echo messages to stdout in tests. But `nu` treats parameters as its own flags when parameter starts with `-`. So `^echo --foo='bar'` still use `^echo`. # User-Facing Changes (none) # Tests + Formatting - [x] `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - [x] `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - [x] `cargo run -- -c "use std testing; testing run-tests --path crates/nu-std"` to run the tests for the standard library # After Submitting (none) --- crates/nu-command/tests/commands/def.rs | 2 +- crates/nu-command/tests/commands/run_external.rs | 9 +++------ tests/shell/pipeline/commands/external.rs | 8 +++----- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/crates/nu-command/tests/commands/def.rs b/crates/nu-command/tests/commands/def.rs index 67e9c82d6e..c39e89ada2 100644 --- a/crates/nu-command/tests/commands/def.rs +++ b/crates/nu-command/tests/commands/def.rs @@ -197,7 +197,7 @@ fn def_wrapped_with_block() { #[test] fn def_wrapped_from_module() { let actual = nu!(r#"module spam { - export def --wrapped my-echo [...rest] { ^echo ...$rest } + export def --wrapped my-echo [...rest] { nu --testbin cococo ...$rest } } use spam diff --git a/crates/nu-command/tests/commands/run_external.rs b/crates/nu-command/tests/commands/run_external.rs index 638d564974..69ebd0473d 100644 --- a/crates/nu-command/tests/commands/run_external.rs +++ b/crates/nu-command/tests/commands/run_external.rs @@ -139,14 +139,13 @@ fn failed_command_with_semicolon_will_not_execute_following_cmds() { }) } -#[cfg(not(windows))] #[test] fn external_args_with_quoted() { Playground::setup("external failed command with semicolon", |dirs, _| { let actual = nu!( cwd: dirs.test(), pipeline( r#" - ^echo "foo=bar 'hi'" + nu --testbin cococo "foo=bar 'hi'" "# )); @@ -187,14 +186,13 @@ fn external_arg_with_variable_name() { }) } -#[cfg(not(windows))] #[test] fn external_command_escape_args() { Playground::setup("external failed command with semicolon", |dirs, _| { let actual = nu!( cwd: dirs.test(), pipeline( r#" - ^echo "\"abcd" + nu --testbin cococo "\"abcd" "# )); @@ -308,13 +306,12 @@ fn can_run_batch_files_without_bat_extension() { ); } -#[cfg(windows)] #[test] fn quotes_trimmed_when_shelling_out() { // regression test for a bug where we weren't trimming quotes around string args before shelling out to cmd.exe let actual = nu!(pipeline( r#" - ^echo "foo" + nu --testbin cococo "foo" "# )); diff --git a/tests/shell/pipeline/commands/external.rs b/tests/shell/pipeline/commands/external.rs index 3672c61817..b53ac0c8c4 100644 --- a/tests/shell/pipeline/commands/external.rs +++ b/tests/shell/pipeline/commands/external.rs @@ -85,7 +85,7 @@ fn execute_binary_in_string() { #[test] fn single_quote_dollar_external() { - let actual = nu!("let author = 'JT'; ^echo $'foo=($author)'"); + let actual = nu!("let author = 'JT'; nu --testbin cococo $'foo=($author)'"); assert_eq!(actual.out, "foo=JT"); } @@ -493,18 +493,16 @@ mod external_command_arguments { ) } - #[cfg(not(windows))] #[test] fn semicolons_are_sanitized_before_passing_to_subshell() { - let actual = nu!("^echo \"a;b\""); + let actual = nu!("nu --testbin cococo \"a;b\""); assert_eq!(actual.out, "a;b"); } - #[cfg(not(windows))] #[test] fn ampersands_are_sanitized_before_passing_to_subshell() { - let actual = nu!("^echo \"a&b\""); + let actual = nu!("nu --testbin cococo \"a&b\""); assert_eq!(actual.out, "a&b"); }