about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2023-05-31 11:00:34 +0200
committerRalf Jung <post@ralfj.de>2023-05-31 11:00:34 +0200
commitbfc897ec07eece6a180c2279bc470d08d6f2e23e (patch)
treea6dafa156886d5cc5702118b278ad29c93830c27 /src
parentf9cff630a10c99702db597c8640fd62d9a5d1ba9 (diff)
downloadrust-bfc897ec07eece6a180c2279bc470d08d6f2e23e.tar.gz
rust-bfc897ec07eece6a180c2279bc470d08d6f2e23e.zip
CI: test ./miri bench
Diffstat (limited to 'src')
-rwxr-xr-xsrc/tools/miri/ci.sh21
-rwxr-xr-xsrc/tools/miri/miri9
2 files changed, 15 insertions, 15 deletions
diff --git a/src/tools/miri/ci.sh b/src/tools/miri/ci.sh
index b5b3b211b05..a8aae524e71 100755
--- a/src/tools/miri/ci.sh
+++ b/src/tools/miri/ci.sh
@@ -17,11 +17,11 @@ begingroup "Building Miri"
 echo "Installing release version of Miri"
 export RUSTFLAGS="-D warnings"
 export CARGO_INCREMENTAL=0
-./miri install # implicitly locked
+export CARGO_EXTRA_FLAGS="--locked"
+./miri install
 
 # Prepare debug build for direct `./miri` invocations
 echo "Building debug version of Miri"
-export CARGO_EXTRA_FLAGS="--locked"
 ./miri check --no-default-features # make sure this can be built
 ./miri check --all-features # and this, too
 ./miri build --all-targets # the build that all the `./miri test` below will use
@@ -39,8 +39,11 @@ function run_tests {
   ## ui test suite
   ./miri test
   if [ -z "${MIRI_TEST_TARGET+exists}" ]; then
-    # Only for host architecture: tests with optimizations (`-O` is what cargo passes, but crank MIR
-    # optimizations up all the way, too).
+    # Host-only tests: running these on all targets is unlikely to catch more problems and would
+    # cost a lot of CI time.
+
+    # Tests with optimizations (`-O` is what cargo passes, but crank MIR optimizations up all the
+    # way, too).
     # Optimizations change diagnostics (mostly backtraces), so we don't check
     # them. Also error locations change so we don't run the failing tests.
     # We explicitly enable debug-assertions here, they are disabled by -O but we have tests
@@ -51,6 +54,9 @@ function run_tests {
     for FILE in tests/many-seeds/*.rs; do
       MIRI_SEEDS=64 CARGO_EXTRA_FLAGS="$CARGO_EXTRA_FLAGS -q" ./miri many-seeds ./miri run "$FILE"
     done
+
+    # Check that the benchmarks build and run, but without actually benchmarking.
+    HYPERFINE="bash -c" ./miri bench
   fi
 
   ## test-cargo-miri
@@ -75,13 +81,6 @@ function run_tests {
   unset RUSTC MIRI
   rm -rf .cargo
 
-  # Ensure that our benchmarks all work, but only on Linux hosts.
-  if [ -z "${MIRI_TEST_TARGET+exists}" ] && [ "$HOST_TARGET" = x86_64-unknown-linux-gnu ] ; then
-    for BENCH in $(ls "bench-cargo-miri"); do
-      cargo miri run --manifest-path bench-cargo-miri/$BENCH/Cargo.toml
-    done
-  fi
-
   endgroup
 }
 
diff --git a/src/tools/miri/miri b/src/tools/miri/miri
index 48a46a76a12..ce3fcbba118 100755
--- a/src/tools/miri/miri
+++ b/src/tools/miri/miri
@@ -184,6 +184,8 @@ many-seeds)
     exit 0
     ;;
 bench)
+    # The hyperfine to use
+    HYPERFINE=${HYPERFINE:-hyperfine -w 1 -m 5 --shell=none}
     # Make sure we have an up-to-date Miri installed
     "$0" install
     # Run the requested benchmarks
@@ -193,7 +195,7 @@ bench)
         BENCHES=("$@")
     fi
     for BENCH in "${BENCHES[@]}"; do
-        hyperfine -w 1 -m 5 --shell=none "cargo +$TOOLCHAIN miri run --manifest-path $MIRIDIR/bench-cargo-miri/$BENCH/Cargo.toml"
+        $HYPERFINE "cargo +$TOOLCHAIN miri run --manifest-path $MIRIDIR/bench-cargo-miri/$BENCH/Cargo.toml"
     done
     exit 0
     ;;
@@ -280,10 +282,9 @@ find_sysroot() {
 # Run command.
 case "$COMMAND" in
 install)
-    # "--locked" to respect the Cargo.lock file if it exists.
     # Install binaries to the miri toolchain's sysroot so they do not interact with other toolchains.
-    $CARGO install $CARGO_EXTRA_FLAGS --path "$MIRIDIR" --force --locked --root "$SYSROOT" "$@"
-    $CARGO install $CARGO_EXTRA_FLAGS --path "$MIRIDIR"/cargo-miri --force --locked --root "$SYSROOT" "$@"
+    $CARGO install $CARGO_EXTRA_FLAGS --path "$MIRIDIR" --force --root "$SYSROOT" "$@"
+    $CARGO install $CARGO_EXTRA_FLAGS --path "$MIRIDIR"/cargo-miri --force --root "$SYSROOT" "$@"
     ;;
 check)
     # Check, and let caller control flags.