Skip to content

Commit a47896d

Browse files
authored
Merge pull request #1149 from bjorn3/test_rustc_testsuite
Run the rustc test suite on CI
2 parents 154668b + 80b2fea commit a47896d

File tree

3 files changed

+168
-44
lines changed

3 files changed

+168
-44
lines changed

.github/workflows/bootstrap_rustc.yml

-44
This file was deleted.

.github/workflows/rustc.yml

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Various rustc tests
2+
3+
on:
4+
- push
5+
6+
jobs:
7+
bootstrap_rustc:
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- uses: actions/checkout@v2
12+
13+
- name: Cache cargo installed crates
14+
uses: actions/cache@v2
15+
with:
16+
path: ~/.cargo/bin
17+
key: ${{ runner.os }}-cargo-installed-crates
18+
19+
- name: Cache cargo registry and index
20+
uses: actions/cache@v2
21+
with:
22+
path: |
23+
~/.cargo/registry
24+
~/.cargo/git
25+
key: ${{ runner.os }}-cargo-registry-and-index-${{ hashFiles('**/Cargo.lock') }}
26+
27+
- name: Cache cargo target dir
28+
uses: actions/cache@v2
29+
with:
30+
path: target
31+
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('rust-toolchain', '**/Cargo.lock') }}
32+
33+
- name: Prepare dependencies
34+
run: |
35+
git config --global user.email "[email protected]"
36+
git config --global user.name "User"
37+
./prepare.sh
38+
39+
- name: Test
40+
run: |
41+
# Enable backtraces for easier debugging
42+
export RUST_BACKTRACE=1
43+
44+
./scripts/test_bootstrap.sh
45+
rustc_test_suite:
46+
runs-on: ubuntu-latest
47+
48+
steps:
49+
- uses: actions/checkout@v2
50+
51+
- name: Cache cargo installed crates
52+
uses: actions/cache@v2
53+
with:
54+
path: ~/.cargo/bin
55+
key: ${{ runner.os }}-cargo-installed-crates
56+
57+
- name: Cache cargo registry and index
58+
uses: actions/cache@v2
59+
with:
60+
path: |
61+
~/.cargo/registry
62+
~/.cargo/git
63+
key: ${{ runner.os }}-cargo-registry-and-index-${{ hashFiles('**/Cargo.lock') }}
64+
65+
- name: Cache cargo target dir
66+
uses: actions/cache@v2
67+
with:
68+
path: target
69+
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('rust-toolchain', '**/Cargo.lock') }}
70+
71+
- name: Prepare dependencies
72+
run: |
73+
git config --global user.email "[email protected]"
74+
git config --global user.name "User"
75+
./prepare.sh
76+
77+
- name: Test
78+
run: |
79+
# Enable backtraces for easier debugging
80+
export RUST_BACKTRACE=1
81+
82+
./scripts/test_rustc_tests.sh

scripts/test_rustc_tests.sh

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#!/bin/bash
2+
set -e
3+
4+
cd $(dirname "$0")/../
5+
6+
source ./scripts/setup_rust_fork.sh
7+
8+
echo "[TEST] Test suite of rustc"
9+
pushd rust
10+
11+
cargo install ripgrep
12+
13+
rm -r src/test/ui/{extern/,panics/,unsized-locals/,thinlto/,simd*,*lto*.rs,linkage*,unwind-*.rs} || true
14+
for test in $(rg --files-with-matches "asm!|catch_unwind|should_panic|lto" src/test/ui); do
15+
rm $test
16+
done
17+
18+
for test in $(rg -i --files-with-matches "//(\[\w+\])?~|// error-pattern:|// build-fail|// run-fail|-Cllvm-args" src/test/ui); do
19+
rm $test
20+
done
21+
22+
git checkout -- src/test/ui/issues/auxiliary/issue-3136-a.rs # contains //~ERROR, but shouldn't be removed
23+
24+
# these all depend on unwinding support
25+
rm src/test/ui/backtrace.rs
26+
rm src/test/ui/array-slice-vec/box-of-array-of-drop-*.rs
27+
rm src/test/ui/array-slice-vec/slice-panic-*.rs
28+
rm src/test/ui/array-slice-vec/nested-vec-3.rs
29+
rm src/test/ui/cleanup-rvalue-temp-during-incomplete-alloc.rs
30+
rm src/test/ui/issues/issue-26655.rs
31+
rm src/test/ui/issues/issue-29485.rs
32+
rm src/test/ui/issues/issue-30018-panic.rs
33+
rm src/test/ui/multi-panic.rs
34+
rm src/test/ui/sepcomp/sepcomp-unwind.rs
35+
rm src/test/ui/structs-enums/unit-like-struct-drop-run.rs
36+
rm src/test/ui/terminate-in-initializer.rs
37+
rm src/test/ui/threads-sendsync/task-stderr.rs
38+
rm src/test/ui/numbers-arithmetic/int-abs-overflow.rs
39+
rm src/test/ui/drop/drop-trait-enum.rs
40+
rm src/test/ui/numbers-arithmetic/issue-8460.rs
41+
42+
rm src/test/ui/issues/issue-28950.rs # depends on stack size optimizations
43+
rm src/test/ui/init-large-type.rs # same
44+
rm src/test/ui/sse2.rs # cpuid not supported, so sse2 not detected
45+
rm src/test/ui/issues/issue-33992.rs # unsupported linkages
46+
rm src/test/ui/issues/issue-51947.rs # same
47+
rm src/test/ui/numbers-arithmetic/saturating-float-casts.rs # intrinsic gives different but valid result
48+
rm src/test/ui/mir/mir_misc_casts.rs # depends on deduplication of constants
49+
rm src/test/ui/mir/mir_raw_fat_ptr.rs # same
50+
rm src/test/ui/async-await/async-fn-size-moved-locals.rs # -Cpanic=abort shrinks some generator by one byte
51+
rm src/test/ui/async-await/async-fn-size-uninit-locals.rs # same
52+
rm src/test/ui/generator/size-moved-locals.rs # same
53+
rm src/test/ui/fn/dyn-fn-alignment.rs # wants a 256 byte alignment
54+
rm src/test/ui/test-attrs/test-fn-signature-verification-for-explicit-return-type.rs # "Cannot run dynamic test fn out-of-process"
55+
rm src/test/ui/intrinsics/intrinsic-nearby.rs # unimplemented nearbyintf32 and nearbyintf64 intrinsics
56+
57+
rm src/test/incremental/hashes/inline_asm.rs # inline asm
58+
rm src/test/incremental/issue-72386.rs # same
59+
rm src/test/incremental/change_crate_dep_kind.rs # requires -Cpanic=unwind
60+
rm src/test/incremental/issue-49482.rs # same
61+
rm src/test/incremental/issue-54059.rs # same
62+
rm src/test/incremental/lto.rs # requires lto
63+
64+
rm src/test/pretty/asm.rs # inline asm
65+
rm src/test/pretty/raw-str-nonexpr.rs # same
66+
67+
rm -r src/test/run-pass-valgrind/unsized-locals
68+
69+
rm src/test/ui/json-bom-plus-crlf-multifile.rs # differing warning
70+
rm src/test/ui/json-bom-plus-crlf.rs # same
71+
72+
rm src/test/ui/allocator/no_std-alloc-error-handler-default.rs # missing rust_oom definition
73+
rm src/test/ui/cfg/cfg-panic.rs
74+
rm src/test/ui/default-alloc-error-hook.rs
75+
rm -r src/test/ui/hygiene/
76+
77+
rm -r src/test/ui/polymorphization/ # polymorphization not yet supported
78+
rm src/test/codegen-units/polymorphization/unused_type_parameters.rs # same
79+
80+
rm -r src/test/run-make/fmt-write-bloat/ # tests an optimization
81+
rm src/test/ui/abi/mir/mir_codegen_calls_variadic.rs # requires float varargs
82+
rm src/test/ui/abi/variadic-ffi.rs # requires callee side vararg support
83+
84+
echo "[TEST] rustc test suite"
85+
RUST_TEST_NOCAPTURE=1 COMPILETEST_FORCE_STAGE0=1 ./x.py test --stage 0 src/test/{codegen-units,run-make,run-pass-valgrind,ui}
86+
popd

0 commit comments

Comments
 (0)