@@ -30,58 +30,3 @@ cat /tmp/toolstate/toolstates.json
3030python3 " $X_PY " test --stage 2 check-tools
3131python3 " $X_PY " test --stage 2 src/tools/clippy
3232python3 " $X_PY " test --stage 2 src/tools/rustfmt
33-
34- # Testing Miri is a bit more complicated.
35- # We set the GC interval to the shortest possible value (0 would be off) to increase the chance
36- # that bugs which only surface when the GC runs at a specific time are more likely to cause CI to fail.
37- # This significantly increases the runtime of our test suite, or we'd do this in PR CI too.
38- if [ -z " ${PR_CI_JOB:- } " ]; then
39- MIRIFLAGS=-Zmiri-provenance-gc=1 python3 " $X_PY " test --stage 2 src/tools/miri src/tools/miri/cargo-miri
40- else
41- python3 " $X_PY " test --stage 2 src/tools/miri src/tools/miri/cargo-miri
42- fi
43- # We re-run the test suite for a chance to find bugs in the intrinsic fallback bodies and in MIR
44- # optimizations. This can miss UB, so we only run the "pass" tests. We need to enable debug
45- # assertions as `-O` disables them but some tests rely on them. We also set a cfg flag so tests can
46- # adjust their expectations if needed. This can change the output of the tests so we ignore that,
47- # we only ensure that all assertions still pass.
48- MIRIFLAGS=" -Zmiri-force-intrinsic-fallback --cfg force_intrinsic_fallback -O -Zmir-opt-level=4 -Cdebug-assertions=yes" \
49- MIRI_SKIP_UI_CHECKS=1 \
50- python3 " $X_PY " test --stage 2 src/tools/miri -- tests/pass tests/panic
51- # We natively run this script on x86_64-unknown-linux-gnu and x86_64-pc-windows-msvc.
52- # Also cover some other targets via cross-testing, in particular all tier 1 targets.
53- case $HOST_TARGET in
54- x86_64-unknown-linux-gnu)
55- # Only this branch runs in PR CI.
56- # Fully test all main OSes, and all main architectures.
57- python3 " $X_PY " test --stage 2 src/tools/miri src/tools/miri/cargo-miri --target aarch64-apple-darwin
58- python3 " $X_PY " test --stage 2 src/tools/miri src/tools/miri/cargo-miri --target i686-pc-windows-msvc
59- # Only run "pass" tests for the remaining targets, which is quite a bit faster.
60- python3 " $X_PY " test --stage 2 src/tools/miri --target x86_64-pc-windows-gnu --test-args pass
61- python3 " $X_PY " test --stage 2 src/tools/miri --target i686-unknown-linux-gnu --test-args pass
62- python3 " $X_PY " test --stage 2 src/tools/miri --target aarch64-unknown-linux-gnu --test-args pass
63- python3 " $X_PY " test --stage 2 src/tools/miri --target s390x-unknown-linux-gnu --test-args pass
64- ;;
65- x86_64-pc-windows-msvc)
66- # Strangely, Linux targets do not work here. cargo always says
67- # "error: cannot produce cdylib for ... as the target ... does not support these crate types".
68- # Only run "pass" tests, which is quite a bit faster.
69- # FIXME: Re-enable this once CI issues are fixed
70- # See <https://github.com/rust-lang/rust/issues/127883>
71- # For now, these tests are moved to `x86_64-msvc-ext2` in `src/ci/github-actions/jobs.yml`.
72- # python3 "$X_PY" test --stage 2 src/tools/miri --target x86_64-apple-darwin --test-args pass
73- ;;
74- * )
75- echo " FATAL: unexpected host $HOST_TARGET "
76- exit 1
77- ;;
78- esac
79- # Also smoke-test `x.py miri`. This doesn't run any actual tests (that would take too long),
80- # but it ensures that the crates build properly when tested with Miri.
81-
82- # FIXME: Re-enable this for msvc once CI issues are fixed
83- if [ " $HOST_TARGET " != " x86_64-pc-windows-msvc" ]; then
84- python3 " $X_PY " miri --stage 2 library/core --test-args notest
85- python3 " $X_PY " miri --stage 2 library/alloc --test-args notest
86- python3 " $X_PY " miri --stage 2 library/std --test-args notest
87- fi
0 commit comments