Add a run-make test for rustc --help
and similar
This commit is contained in:
parent
b91a3a0560
commit
8f7f9b93b2
@ -41,6 +41,7 @@ pub mod rfs {
|
|||||||
pub use object;
|
pub use object;
|
||||||
pub use regex;
|
pub use regex;
|
||||||
pub use serde_json;
|
pub use serde_json;
|
||||||
|
pub use similar;
|
||||||
pub use wasmparser;
|
pub use wasmparser;
|
||||||
// tidy-alphabetical-end
|
// tidy-alphabetical-end
|
||||||
|
|
||||||
|
29
tests/run-make/rustc-help/help-v.diff
Normal file
29
tests/run-make/rustc-help/help-v.diff
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
@@ -51,10 +51,27 @@
|
||||||
|
Set a codegen option
|
||||||
|
-V, --version Print version info and exit
|
||||||
|
-v, --verbose Use verbose output
|
||||||
|
+ --extern NAME[=PATH]
|
||||||
|
+ Specify where an external rust library is located
|
||||||
|
+ --sysroot PATH Override the system root
|
||||||
|
+ --error-format human|json|short
|
||||||
|
+ How errors and other messages are produced
|
||||||
|
+ --json CONFIG Configure the JSON output of the compiler
|
||||||
|
+ --color auto|always|never
|
||||||
|
+ Configure coloring of output:
|
||||||
|
+ auto = colorize, if output goes to a tty (default);
|
||||||
|
+ always = always colorize output;
|
||||||
|
+ never = never colorize output
|
||||||
|
+ --diagnostic-width WIDTH
|
||||||
|
+ Inform rustc of the width of the output so that
|
||||||
|
+ diagnostics can be truncated to fit
|
||||||
|
+ --remap-path-prefix FROM=TO
|
||||||
|
+ Remap source names in all output (compiler messages
|
||||||
|
+ and output files)
|
||||||
|
+ @path Read newline separated options from `path`
|
||||||
|
|
||||||
|
Additional help:
|
||||||
|
-C help Print codegen options
|
||||||
|
-W help Print 'lint' options and default settings
|
||||||
|
-Z help Print unstable compiler options
|
||||||
|
- --help -v Print the full set of options rustc accepts
|
||||||
|
|
77
tests/run-make/rustc-help/help-v.stdout
Normal file
77
tests/run-make/rustc-help/help-v.stdout
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
Usage: rustc [OPTIONS] INPUT
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help Display this message
|
||||||
|
--cfg SPEC Configure the compilation environment.
|
||||||
|
SPEC supports the syntax `NAME[="VALUE"]`.
|
||||||
|
--check-cfg SPEC
|
||||||
|
Provide list of expected cfgs for checking
|
||||||
|
-L [KIND=]PATH Add a directory to the library search path. The
|
||||||
|
optional KIND can be one of dependency, crate, native,
|
||||||
|
framework, or all (the default).
|
||||||
|
-l [KIND[:MODIFIERS]=]NAME[:RENAME]
|
||||||
|
Link the generated crate(s) to the specified native
|
||||||
|
library NAME. The optional KIND can be one of
|
||||||
|
static, framework, or dylib (the default).
|
||||||
|
Optional comma separated MODIFIERS
|
||||||
|
(bundle|verbatim|whole-archive|as-needed)
|
||||||
|
may be specified each with a prefix of either '+' to
|
||||||
|
enable or '-' to disable.
|
||||||
|
--crate-type [bin|lib|rlib|dylib|cdylib|staticlib|proc-macro]
|
||||||
|
Comma separated list of types of crates
|
||||||
|
for the compiler to emit
|
||||||
|
--crate-name NAME
|
||||||
|
Specify the name of the crate being built
|
||||||
|
--edition 2015|2018|2021|2024
|
||||||
|
Specify which edition of the compiler to use when
|
||||||
|
compiling code. The default is 2015 and the latest
|
||||||
|
stable edition is 2021.
|
||||||
|
--emit [asm|llvm-bc|llvm-ir|obj|metadata|link|dep-info|mir]
|
||||||
|
Comma separated list of types of output for the
|
||||||
|
compiler to emit
|
||||||
|
--print [crate-name|file-names|sysroot|target-libdir|cfg|check-cfg|calling-conventions|target-list|target-cpus|target-features|relocation-models|code-models|tls-models|target-spec-json|all-target-specs-json|native-static-libs|stack-protector-strategies|link-args|deployment-target]
|
||||||
|
Compiler information to print on stdout
|
||||||
|
-g Equivalent to -C debuginfo=2
|
||||||
|
-O Equivalent to -C opt-level=2
|
||||||
|
-o FILENAME Write output to <filename>
|
||||||
|
--out-dir DIR Write output to compiler-chosen filename in <dir>
|
||||||
|
--explain OPT Provide a detailed explanation of an error message
|
||||||
|
--test Build a test harness
|
||||||
|
--target TARGET Target triple for which the code is compiled
|
||||||
|
-A, --allow LINT Set lint allowed
|
||||||
|
-W, --warn LINT Set lint warnings
|
||||||
|
--force-warn LINT
|
||||||
|
Set lint force-warn
|
||||||
|
-D, --deny LINT Set lint denied
|
||||||
|
-F, --forbid LINT Set lint forbidden
|
||||||
|
--cap-lints LEVEL
|
||||||
|
Set the most restrictive lint level. More restrictive
|
||||||
|
lints are capped at this level
|
||||||
|
-C, --codegen OPT[=VALUE]
|
||||||
|
Set a codegen option
|
||||||
|
-V, --version Print version info and exit
|
||||||
|
-v, --verbose Use verbose output
|
||||||
|
--extern NAME[=PATH]
|
||||||
|
Specify where an external rust library is located
|
||||||
|
--sysroot PATH Override the system root
|
||||||
|
--error-format human|json|short
|
||||||
|
How errors and other messages are produced
|
||||||
|
--json CONFIG Configure the JSON output of the compiler
|
||||||
|
--color auto|always|never
|
||||||
|
Configure coloring of output:
|
||||||
|
auto = colorize, if output goes to a tty (default);
|
||||||
|
always = always colorize output;
|
||||||
|
never = never colorize output
|
||||||
|
--diagnostic-width WIDTH
|
||||||
|
Inform rustc of the width of the output so that
|
||||||
|
diagnostics can be truncated to fit
|
||||||
|
--remap-path-prefix FROM=TO
|
||||||
|
Remap source names in all output (compiler messages
|
||||||
|
and output files)
|
||||||
|
@path Read newline separated options from `path`
|
||||||
|
|
||||||
|
Additional help:
|
||||||
|
-C help Print codegen options
|
||||||
|
-W help Print 'lint' options and default settings
|
||||||
|
-Z help Print unstable compiler options
|
||||||
|
|
60
tests/run-make/rustc-help/help.stdout
Normal file
60
tests/run-make/rustc-help/help.stdout
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
Usage: rustc [OPTIONS] INPUT
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help Display this message
|
||||||
|
--cfg SPEC Configure the compilation environment.
|
||||||
|
SPEC supports the syntax `NAME[="VALUE"]`.
|
||||||
|
--check-cfg SPEC
|
||||||
|
Provide list of expected cfgs for checking
|
||||||
|
-L [KIND=]PATH Add a directory to the library search path. The
|
||||||
|
optional KIND can be one of dependency, crate, native,
|
||||||
|
framework, or all (the default).
|
||||||
|
-l [KIND[:MODIFIERS]=]NAME[:RENAME]
|
||||||
|
Link the generated crate(s) to the specified native
|
||||||
|
library NAME. The optional KIND can be one of
|
||||||
|
static, framework, or dylib (the default).
|
||||||
|
Optional comma separated MODIFIERS
|
||||||
|
(bundle|verbatim|whole-archive|as-needed)
|
||||||
|
may be specified each with a prefix of either '+' to
|
||||||
|
enable or '-' to disable.
|
||||||
|
--crate-type [bin|lib|rlib|dylib|cdylib|staticlib|proc-macro]
|
||||||
|
Comma separated list of types of crates
|
||||||
|
for the compiler to emit
|
||||||
|
--crate-name NAME
|
||||||
|
Specify the name of the crate being built
|
||||||
|
--edition 2015|2018|2021|2024
|
||||||
|
Specify which edition of the compiler to use when
|
||||||
|
compiling code. The default is 2015 and the latest
|
||||||
|
stable edition is 2021.
|
||||||
|
--emit [asm|llvm-bc|llvm-ir|obj|metadata|link|dep-info|mir]
|
||||||
|
Comma separated list of types of output for the
|
||||||
|
compiler to emit
|
||||||
|
--print [crate-name|file-names|sysroot|target-libdir|cfg|check-cfg|calling-conventions|target-list|target-cpus|target-features|relocation-models|code-models|tls-models|target-spec-json|all-target-specs-json|native-static-libs|stack-protector-strategies|link-args|deployment-target]
|
||||||
|
Compiler information to print on stdout
|
||||||
|
-g Equivalent to -C debuginfo=2
|
||||||
|
-O Equivalent to -C opt-level=2
|
||||||
|
-o FILENAME Write output to <filename>
|
||||||
|
--out-dir DIR Write output to compiler-chosen filename in <dir>
|
||||||
|
--explain OPT Provide a detailed explanation of an error message
|
||||||
|
--test Build a test harness
|
||||||
|
--target TARGET Target triple for which the code is compiled
|
||||||
|
-A, --allow LINT Set lint allowed
|
||||||
|
-W, --warn LINT Set lint warnings
|
||||||
|
--force-warn LINT
|
||||||
|
Set lint force-warn
|
||||||
|
-D, --deny LINT Set lint denied
|
||||||
|
-F, --forbid LINT Set lint forbidden
|
||||||
|
--cap-lints LEVEL
|
||||||
|
Set the most restrictive lint level. More restrictive
|
||||||
|
lints are capped at this level
|
||||||
|
-C, --codegen OPT[=VALUE]
|
||||||
|
Set a codegen option
|
||||||
|
-V, --version Print version info and exit
|
||||||
|
-v, --verbose Use verbose output
|
||||||
|
|
||||||
|
Additional help:
|
||||||
|
-C help Print codegen options
|
||||||
|
-W help Print 'lint' options and default settings
|
||||||
|
-Z help Print unstable compiler options
|
||||||
|
--help -v Print the full set of options rustc accepts
|
||||||
|
|
21
tests/run-make/rustc-help/rmake.rs
Normal file
21
tests/run-make/rustc-help/rmake.rs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Tests `rustc --help` and similar invocations against snapshots and each other.
|
||||||
|
|
||||||
|
use run_make_support::{bare_rustc, diff, similar};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// `rustc --help`
|
||||||
|
let help = bare_rustc().arg("--help").run().stdout_utf8();
|
||||||
|
diff().expected_file("help.stdout").actual_text("(rustc --help)", &help).run();
|
||||||
|
|
||||||
|
// `rustc` should be the same as `rustc --help`
|
||||||
|
let bare = bare_rustc().run().stdout_utf8();
|
||||||
|
diff().expected_text("(rustc --help)", &help).actual_text("(rustc)", &bare).run();
|
||||||
|
|
||||||
|
// `rustc --help -v` should give a similar but longer help message
|
||||||
|
let help_v = bare_rustc().arg("--help").arg("-v").run().stdout_utf8();
|
||||||
|
diff().expected_file("help-v.stdout").actual_text("(rustc --help -v)", &help_v).run();
|
||||||
|
|
||||||
|
// Check the diff between `rustc --help` and `rustc --help -v`.
|
||||||
|
let help_v_diff = similar::TextDiff::from_lines(&help, &help_v).unified_diff().to_string();
|
||||||
|
diff().expected_file("help-v.diff").actual_text("actual", &help_v_diff).run();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user