Auto merge of #3531 - narpfel:quiet-sysroot, r=RalfJung
Don’t print `Preparing a sysroot` when `-q`/`--quiet` is passed Resolves #3530. This also fixes a typo in `cargo miri --help` that I found while trying to run the `--print-sysroot` example.
This commit is contained in:
commit
b0bdbcc5e5
@ -28,7 +28,7 @@
|
|||||||
cargo miri run
|
cargo miri run
|
||||||
cargo miri test -- test-suite-filter
|
cargo miri test -- test-suite-filter
|
||||||
|
|
||||||
cargo miri setup --print sysroot
|
cargo miri setup --print-sysroot
|
||||||
This will print the path to the generated sysroot (and nothing else) on stdout.
|
This will print the path to the generated sysroot (and nothing else) on stdout.
|
||||||
stderr will still contain progress information about how the build is doing.
|
stderr will still contain progress information about how the build is doing.
|
||||||
|
|
||||||
@ -87,6 +87,7 @@ pub fn phase_cargo_miri(mut args: impl Iterator<Item = String>) {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
let verbose = num_arg_flag("-v");
|
let verbose = num_arg_flag("-v");
|
||||||
|
let quiet = has_arg_flag("-q") || has_arg_flag("--quiet");
|
||||||
|
|
||||||
// Determine the involved architectures.
|
// Determine the involved architectures.
|
||||||
let rustc_version = VersionMeta::for_command(miri_for_host()).unwrap_or_else(|err| {
|
let rustc_version = VersionMeta::for_command(miri_for_host()).unwrap_or_else(|err| {
|
||||||
@ -110,7 +111,7 @@ pub fn phase_cargo_miri(mut args: impl Iterator<Item = String>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We always setup.
|
// We always setup.
|
||||||
let miri_sysroot = setup(&subcommand, target, &rustc_version, verbose);
|
let miri_sysroot = setup(&subcommand, target, &rustc_version, verbose, quiet);
|
||||||
|
|
||||||
// Invoke actual cargo for the job, but with different flags.
|
// Invoke actual cargo for the job, but with different flags.
|
||||||
// We re-use `cargo test` and `cargo run`, which makes target and binary handling very easy but
|
// We re-use `cargo test` and `cargo run`, which makes target and binary handling very easy but
|
||||||
|
@ -19,6 +19,7 @@ pub fn setup(
|
|||||||
target: &str,
|
target: &str,
|
||||||
rustc_version: &VersionMeta,
|
rustc_version: &VersionMeta,
|
||||||
verbose: usize,
|
verbose: usize,
|
||||||
|
quiet: bool,
|
||||||
) -> PathBuf {
|
) -> PathBuf {
|
||||||
let only_setup = matches!(subcommand, MiriCommand::Setup);
|
let only_setup = matches!(subcommand, MiriCommand::Setup);
|
||||||
let ask_user = !only_setup;
|
let ask_user = !only_setup;
|
||||||
@ -119,6 +120,9 @@ pub fn setup(
|
|||||||
for _ in 0..verbose {
|
for _ in 0..verbose {
|
||||||
command.arg("-v");
|
command.arg("-v");
|
||||||
}
|
}
|
||||||
|
if quiet {
|
||||||
|
command.arg("--quiet");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Suppress output.
|
// Suppress output.
|
||||||
command.stdout(process::Stdio::null());
|
command.stdout(process::Stdio::null());
|
||||||
@ -134,7 +138,7 @@ pub fn setup(
|
|||||||
let rustflags = &["-Cdebug-assertions=off", "-Coverflow-checks=on"];
|
let rustflags = &["-Cdebug-assertions=off", "-Coverflow-checks=on"];
|
||||||
|
|
||||||
// Do the build.
|
// Do the build.
|
||||||
if print_sysroot {
|
if print_sysroot || quiet {
|
||||||
// Be silent.
|
// Be silent.
|
||||||
} else {
|
} else {
|
||||||
let mut msg = String::new();
|
let mut msg = String::new();
|
||||||
@ -169,7 +173,7 @@ pub fn setup(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if print_sysroot {
|
if print_sysroot || quiet {
|
||||||
// Be silent.
|
// Be silent.
|
||||||
} else if only_setup {
|
} else if only_setup {
|
||||||
eprintln!("A sysroot for Miri is now available in `{}`.", sysroot_dir.display());
|
eprintln!("A sysroot for Miri is now available in `{}`.", sysroot_dir.display());
|
||||||
|
@ -34,10 +34,6 @@ def normalize_stdout(str):
|
|||||||
str = re.sub("finished in \\d+\\.\\d\\ds", "finished in $TIME", str) # the time keeps changing, obviously
|
str = re.sub("finished in \\d+\\.\\d\\ds", "finished in $TIME", str) # the time keeps changing, obviously
|
||||||
return str
|
return str
|
||||||
|
|
||||||
def normalize_stderr(str):
|
|
||||||
str = re.sub("Preparing a sysroot for Miri \\(target: [a-z0-9_-]+\\)\\.\\.\\. done\n", "", str) # remove leading cargo-miri setup output
|
|
||||||
return str
|
|
||||||
|
|
||||||
def check_output(actual, path, name):
|
def check_output(actual, path, name):
|
||||||
if os.environ.get("RUSTC_BLESS", "0") != "0":
|
if os.environ.get("RUSTC_BLESS", "0") != "0":
|
||||||
# Write the output only if bless is set
|
# Write the output only if bless is set
|
||||||
@ -69,7 +65,7 @@ def test(name, cmd, stdout_ref, stderr_ref, stdin=b'', env=None):
|
|||||||
)
|
)
|
||||||
(stdout, stderr) = p.communicate(input=stdin)
|
(stdout, stderr) = p.communicate(input=stdin)
|
||||||
stdout = normalize_stdout(stdout.decode("UTF-8"))
|
stdout = normalize_stdout(stdout.decode("UTF-8"))
|
||||||
stderr = normalize_stderr(stderr.decode("UTF-8"))
|
stderr = stderr.decode("UTF-8")
|
||||||
|
|
||||||
stdout_matches = check_output(stdout, stdout_ref, "stdout")
|
stdout_matches = check_output(stdout, stdout_ref, "stdout")
|
||||||
stderr_matches = check_output(stderr, stderr_ref, "stderr")
|
stderr_matches = check_output(stderr, stderr_ref, "stderr")
|
||||||
|
Loading…
Reference in New Issue
Block a user