From 3d4407dcb907cda1c147dccf77abb99fce065e05 Mon Sep 17 00:00:00 2001 From: Weihang Lo Date: Mon, 8 Jan 2024 19:24:49 -0500 Subject: [PATCH] test(cli): snapshot test for `-Z help` --- tests/testsuite/cargo/mod.rs | 1 + tests/testsuite/cargo/z_help/mod.rs | 13 +++++++++ tests/testsuite/cargo/z_help/stderr.log | 0 tests/testsuite/cargo/z_help/stdout.log | 37 +++++++++++++++++++++++++ tests/testsuite/help.rs | 11 -------- 5 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 tests/testsuite/cargo/z_help/mod.rs create mode 100644 tests/testsuite/cargo/z_help/stderr.log create mode 100644 tests/testsuite/cargo/z_help/stdout.log diff --git a/tests/testsuite/cargo/mod.rs b/tests/testsuite/cargo/mod.rs index c0ce11180..2de0bc570 100644 --- a/tests/testsuite/cargo/mod.rs +++ b/tests/testsuite/cargo/mod.rs @@ -1 +1,2 @@ mod help; +mod z_help; diff --git a/tests/testsuite/cargo/z_help/mod.rs b/tests/testsuite/cargo/z_help/mod.rs new file mode 100644 index 000000000..cca503d70 --- /dev/null +++ b/tests/testsuite/cargo/z_help/mod.rs @@ -0,0 +1,13 @@ +use cargo_test_support::curr_dir; +use cargo_test_support::prelude::*; + +#[cargo_test] +fn case() { + snapbox::cmd::Command::cargo_ui() + .masquerade_as_nightly_cargo(&["-Z help"]) + .args(["-Z", "help"]) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); +} diff --git a/tests/testsuite/cargo/z_help/stderr.log b/tests/testsuite/cargo/z_help/stderr.log new file mode 100644 index 000000000..e69de29bb diff --git a/tests/testsuite/cargo/z_help/stdout.log b/tests/testsuite/cargo/z_help/stdout.log new file mode 100644 index 000000000..8257e3ec9 --- /dev/null +++ b/tests/testsuite/cargo/z_help/stdout.log @@ -0,0 +1,37 @@ + +Available unstable (nightly-only) flags: + + -Z allow-features -- Allow *only* the listed unstable features + -Z asymmetric-token -- Allows authenticating with asymmetric tokens + -Z avoid-dev-deps -- Avoid installing dev-dependencies if possible + -Z binary-dep-depinfo -- Track changes to dependency artifacts + -Z bindeps -- Allow Cargo packages to depend on bin, cdylib, and staticlib crates, and use the artifacts built by those crates + -Z build-std -- Enable Cargo to compile the standard library itself as part of a crate graph compilation + -Z build-std-features -- Configure features enabled for the standard library itself when building the standard library + -Z check-cfg -- Enable compile-time checking of `cfg` names/values/features + -Z codegen-backend -- Enable the `codegen-backend` option in profiles in .cargo/config.toml file + -Z config-include -- Enable the `include` key in config files + -Z direct-minimal-versions -- Resolve minimal dependency versions instead of maximum (direct dependencies only) + -Z doctest-xcompile -- Compile and run doctests for non-host target using runner config + -Z dual-proc-macros -- Build proc-macros for both the host and the target + -Z gc -- Track cache usage and "garbage collect" unused files + -Z gitoxide -- Use gitoxide for the given git interactions, or all of them if no argument is given + -Z host-config -- Enable the [host] section in the .cargo/config.toml file + -Z lints -- Pass `[lints]` to the linting tools + -Z minimal-versions -- Resolve minimal dependency versions instead of maximum + -Z msrv-policy -- Enable rust-version aware policy within cargo + -Z mtime-on-use -- Configure Cargo to update the mtime of used files + -Z no-index-update -- Do not update the registry index even if the cache is outdated + -Z panic-abort-tests -- Enable support to run tests with -Cpanic=abort + -Z profile-rustflags -- Enable the `rustflags` option in profiles in .cargo/config.toml file + -Z publish-timeout -- Enable the `publish.timeout` key in .cargo/config.toml file + -Z rustdoc-map -- Allow passing external documentation mappings to rustdoc + -Z rustdoc-scrape-examples -- Allows Rustdoc to scrape code examples from reverse-dependencies + -Z script -- Enable support for single-file, `.rs` packages + -Z target-applies-to-host -- Enable the `target-applies-to-host` key in the .cargo/config.toml file + -Z trim-paths -- Enable the `trim-paths` option in profiles + -Z unstable-options -- Allow the usage of unstable options + +Run with 'cargo -Z [FLAG] [COMMAND]' + +See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html for more information about these flags. diff --git a/tests/testsuite/help.rs b/tests/testsuite/help.rs index fdb527e76..646d8e4c7 100644 --- a/tests/testsuite/help.rs +++ b/tests/testsuite/help.rs @@ -43,17 +43,6 @@ fn help_external_subcommand() { .run(); } -#[cargo_test] -fn z_flags_help() { - // Test that the output of `cargo -Z help` shows a different help screen with - // all the `-Z` flags. - cargo_process("-Z help") - .with_stdout_contains( - " -Z allow-features[..]-- Allow *only* the listed unstable features", - ) - .run(); -} - fn help_with_man(display_command: &str) { // Build a "man" process that just echoes the contents. let p = project()