Skip doctests of proc-macro
crates
This commit is contained in:
parent
62046bf8b4
commit
f42a6d1026
@ -903,6 +903,13 @@ fn phase_rustdoc(fst_arg: &str, mut args: env::Args) {
|
||||
show_error(format!("cross-interpreting doc-tests is not currently supported by Miri."));
|
||||
}
|
||||
|
||||
// Doc-tests of `proc-macro` crates (and their dependencies) are always built for the host,
|
||||
// so we are not able to run them in Miri.
|
||||
if ArgFlagValueIter::new("--crate-type").any(|crate_type| crate_type == "proc-macro") {
|
||||
eprintln!("Running doc-tests of `proc-macro` crates is not currently supported by Miri.");
|
||||
return;
|
||||
}
|
||||
|
||||
// For each doc-test, rustdoc starts two child processes: first the test is compiled,
|
||||
// then the produced executable is invoked. We want to reroute both of these to cargo-miri,
|
||||
// such that the first time we'll enter phase_cargo_rustc, and phase_cargo_runner second.
|
||||
|
@ -140,6 +140,10 @@ def test_cargo_miri_test():
|
||||
"test.subcrate.stdout.ref", "test.stderr-proc-macro.ref",
|
||||
env={'MIRIFLAGS': "-Zmiri-disable-isolation"},
|
||||
)
|
||||
test("`cargo miri test` (subcrate, doctests)",
|
||||
cargo_miri("test") + ["-p", "subcrate", "--doc"],
|
||||
"test.stdout-empty.ref", "test.stderr-proc-macro-doctest.ref",
|
||||
)
|
||||
|
||||
os.chdir(os.path.dirname(os.path.realpath(__file__)))
|
||||
os.environ["RUST_TEST_NOCAPTURE"] = "0" # this affects test output, so make sure it is not set
|
||||
|
@ -1,2 +1,5 @@
|
||||
#[cfg(doctest)]
|
||||
use num_cpus as _;
|
||||
|
||||
#[cfg(test)]
|
||||
compile_error!("Miri should not touch me");
|
||||
|
1
test-cargo-miri/test.stderr-proc-macro-doctest.ref
Normal file
1
test-cargo-miri/test.stderr-proc-macro-doctest.ref
Normal file
@ -0,0 +1 @@
|
||||
Running doc-tests of `proc-macro` crates is not currently supported by Miri.
|
0
test-cargo-miri/test.stdout-empty.ref
Normal file
0
test-cargo-miri/test.stdout-empty.ref
Normal file
Loading…
x
Reference in New Issue
Block a user