Skip to content

Commit f066a51

Browse files
committed
conditional compile test for wasm
1 parent fae26c9 commit f066a51

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

src/bootstrap/test.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,7 @@ impl Step for Miri {
706706

707707
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
708708
pub struct CompiletestTest {
709+
stage: u32,
709710
host: TargetSelection,
710711
}
711712

@@ -717,13 +718,14 @@ impl Step for CompiletestTest {
717718
}
718719

719720
fn make_run(run: RunConfig<'_>) {
720-
run.builder.ensure(CompiletestTest { host: run.target });
721+
run.builder.ensure(CompiletestTest { stage: run.builder.top_stage, host: run.target });
721722
}
722723

723724
/// Runs `cargo test` for compiletest.
724725
fn run(self, builder: &Builder<'_>) {
725726
let host = self.host;
726-
let compiler = builder.compiler(builder.top_stage, host);
727+
let stage = self.stage;
728+
let compiler = builder.compiler(stage, host);
727729

728730
// We need `ToolStd` for the locally-built sysroot because
729731
// compiletest uses unstable features of the `test` crate.
@@ -739,6 +741,7 @@ impl Step for CompiletestTest {
739741
&[],
740742
);
741743
cargo.allow_features("test");
744+
cargo.env("RUSTC_STAGE", stage.to_string());
742745
run_cargo_test(cargo, &[], &[], "compiletest", compiler, host, builder);
743746
}
744747
}

src/tools/compiletest/src/header/tests.rs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ fn pointer_width() {
435435

436436
#[test]
437437
fn wasm_special() {
438-
let ignores = [
438+
let mut ignores = vec![
439439
("wasm32-unknown-unknown", "emscripten", true),
440440
("wasm32-unknown-unknown", "wasm32", true),
441441
("wasm32-unknown-unknown", "wasm32-bare", true),
@@ -446,15 +446,32 @@ fn wasm_special() {
446446
("wasm32-unknown-emscripten", "emscripten", true),
447447
("wasm32-unknown-emscripten", "wasm32", true),
448448
("wasm32-unknown-emscripten", "wasm32-bare", false),
449-
("wasm32-wasi-preview1", "emscripten", false),
450-
("wasm32-wasi-preview1", "wasm32", true),
451-
("wasm32-wasi-preview1", "wasm32-bare", false),
452-
("wasm32-wasi-preview1", "wasi", true),
453449
("wasm64-unknown-unknown", "emscripten", false),
454450
("wasm64-unknown-unknown", "wasm32", false),
455451
("wasm64-unknown-unknown", "wasm32-bare", false),
456452
("wasm64-unknown-unknown", "wasm64", true),
457453
];
454+
455+
// FIXME(yosh): We're updating the "wasm32-wasi" target name to "wasm32-wasi-preview1".
456+
// The MinGW tests run a beta compiler on stage 0 which means we're having a target mismatch
457+
// for a brief period. When a new beta release is cut, the `if` part of this conditional should be
458+
// removed, and the `else` part should be re-inlined in the original `ignores` list.
459+
if env!("RUSTC_STAGE") == "0" {
460+
ignores.append(&mut vec![
461+
("wasm32-wasi", "emscripten", false),
462+
("wasm32-wasi", "wasm32", true),
463+
("wasm32-wasi", "wasm32-bare", false),
464+
("wasm32-wasi", "wasi", true),
465+
]);
466+
} else {
467+
ignores.append(&mut vec![
468+
("wasm32-wasi-preview1", "emscripten", false),
469+
("wasm32-wasi-preview1", "wasm32", true),
470+
("wasm32-wasi-preview1", "wasm32-bare", false),
471+
("wasm32-wasi-preview1", "wasi", true),
472+
]);
473+
}
474+
458475
for (target, pattern, ignore) in ignores {
459476
let mut config = config();
460477
config.target = target.to_string();

0 commit comments

Comments
 (0)