about summary refs log tree commit diff
path: root/src/ci/docker/scripts
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-03-18 16:51:07 +0000
committerbors <bors@rust-lang.org>2024-03-18 16:51:07 +0000
commitd31b6fb8c06b43536ac5be38462d2a55784e2199 (patch)
tree7919dd4a877756bd4660fad0aadc9c6e015d71af /src/ci/docker/scripts
parent3cdcdaf31b45f8045164aae9604573d23091970b (diff)
parent9011e67c91938ce9c7e9e55d233e5540abd333a3 (diff)
downloadrust-d31b6fb8c06b43536ac5be38462d2a55784e2199.tar.gz
rust-d31b6fb8c06b43536ac5be38462d2a55784e2199.zip
Auto merge of #122690 - matthiaskrgr:rollup-43fggl0, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #122480 (Avoid various uses of `Option<Span>` in favor of using `DUMMY_SP` in the few cases that used `None`)
 - #122567 (Remove fixme about LLVM basic block naming)
 - #122588 (less useless filter calls in imported_source_file)
 - #122647 (add_retag: ensure box-to-raw-ptr casts are preserved for Miri)
 - #122649 (Update the minimum external LLVM to 17)
 - #122680 (Do not eat nested expressions' results in `MayContainYieldPoint` format args visitor)
 - #122683 (add missing test: expected paren or brace in macro)
 - #122689 (Add missing `try_visit` calls in visitors.)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'src/ci/docker/scripts')
-rwxr-xr-xsrc/ci/docker/scripts/x86_64-gnu-llvm.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/ci/docker/scripts/x86_64-gnu-llvm.sh b/src/ci/docker/scripts/x86_64-gnu-llvm.sh
new file mode 100755
index 00000000000..2eb751ca376
--- /dev/null
+++ b/src/ci/docker/scripts/x86_64-gnu-llvm.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+set -ex
+
+# Only run the stage 1 tests on merges, not on PR CI jobs.
+if [[ -z "${PR_CI_JOB}" ]]; then
+    # When running gcc backend tests, we need to install `libgccjit` and to not run llvm codegen
+    # tests as it will fail them.
+    if [[ "${ENABLE_GCC_CODEGEN}" == "1" ]]; then
+        ../x.py --stage 1 test --skip src/tools/tidy --skip tests/codegen
+    else
+        ../x.py --stage 1 test --skip src/tools/tidy
+    fi
+
+    # Run the `mir-opt` tests again but this time for a 32-bit target.
+    # This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
+    # both 32-bit and 64-bit outputs updated by the PR author, before
+    # the PR is approved and tested for merging.
+    # It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`,
+    # despite having different output on 32-bit vs 64-bit targets.
+    ../x.py --stage 1 test tests/mir-opt --host='' --target=i686-unknown-linux-gnu
+
+    # Run `ui-fulldeps` in `--stage=1`, which actually uses the stage0
+    # compiler, and is sensitive to the addition of new flags.
+    ../x.py --stage 1 test tests/ui-fulldeps
+fi
+
+# When running gcc backend tests, we need to install `libgccjit` and to not run llvm codegen
+# tests as it will fail them.
+# NOTE: intentionally uses all of `x.py`, `x`, and `x.ps1` to make sure they all work on Linux.
+if [[ "${ENABLE_GCC_CODEGEN}" == "1" ]]; then
+    ../x.py --stage 2 test --skip src/tools/tidy --skip tests/codegen
+else
+    ../x.py --stage 2 test --skip src/tools/tidy
+fi
+
+# Run the `mir-opt` tests again but this time for a 32-bit target.
+# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
+# both 32-bit and 64-bit outputs updated by the PR author, before
+# the PR is approved and tested for merging.
+# It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`,
+# despite having different output on 32-bit vs 64-bit targets.
+../x --stage 2 test tests/mir-opt --host='' --target=i686-unknown-linux-gnu
+
+# Run the UI test suite again, but in `--pass=check` mode
+#
+# This is intended to make sure that both `--pass=check` continues to
+# work.
+../x.ps1 --stage 2 test tests/ui --pass=check --host='' --target=i686-unknown-linux-gnu