Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test benchmarks with -Z panic-abort-tests #111992

Merged
merged 6 commits into from
Jul 1, 2023

Conversation

pietroalbini
Copy link
Member

During test execution, when a #[bench] benchmark is encountered it's executed once to check whether it works. Unfortunately that was not compatible with -Z panic-abort-tests: the feature works by spawning a subprocess for each test, which prevents the use of dynamic tests as we cannot pass closures to child processes, and before this PR the conversion from benchmark to test was done by turning benchmarks into dynamic tests whose closures execute the benchmark once.

The approach this PR took was to add two new kinds of TestFns: StaticBenchAsTestFn and DynBenchAsTestFn (:warning: this is a breaking change ⚠️). With that change, a StaticBenchFn can be converted into a StaticBenchAsTestFn without creating dynamic tests, and making it possible to test #[bench] functions with -Z panic-abort-tests. The subprocess test runner also had to be updated to perform the conversion from benchmark to test when appropriate.

Along with the bug fix, in the first commit I refactored how tests are executed: rather than executing the test function in multiple places across libtest, there is now a private TestFn::into_runnable() method, which returns either a RunnableTest or RunnableBench, on which you can call the run() method. This simplified the rest of the changes in the PR.

This PR is best reviewed commit-by-commit.
Fixes #73509

Before this commit, tests were invoked in multiple places, especially
due to `-Z panic-abort-tests`, and adding a new test kind meant having
to chase down and update all these places.

This commit creates a new Runnable enum, and its children RunnableTest
and RunnableBench. The rest of the harness will now pass around the enum
rather than constructing and passing around boxed functions. The enum
has two children enums because invoking tests and invoking benchmarks
requires different parameters.
The inner function is not needed anymore as it's only called once after
the previous commit's refactoring.
Before this commit, both static and dynamic benches were converted to a
DynTestFn, with a boxed closure that ran the benchmarks exactly once.

While this worked, it conflicted with -Z panic-abort-tests as the flag
does not support dynamic tests. With this change, a StaticBenchFn is
converted to a StaticBenchAsTestFn, avoiding any dynamic test creation.
DynBenchFn is also converted to DynBenchAsTestFn for completeness.
@rustbot
Copy link
Collaborator

rustbot commented May 26, 2023

r? @m-ou-se

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels May 26, 2023
@pietroalbini
Copy link
Member Author

Also reverted #103262, since the test now works on targets without unwinding.

@m-ou-se
Copy link
Member

m-ou-se commented Jun 27, 2023

this is a breaking change

Only a breaking change to the unstable API. The current API doesn't look like something we'd want to stabilize in its current form anyway, so changing it is fine.

@m-ou-se
Copy link
Member

m-ou-se commented Jun 27, 2023

The changes look good! Thanks!

@bors r+

(cc @epage)

@bors
Copy link
Contributor

bors commented Jun 27, 2023

📌 Commit 58d9d8c has been approved by m-ou-se

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 27, 2023
@bors
Copy link
Contributor

bors commented Jun 27, 2023

⌛ Testing commit 58d9d8c with merge cef564b64b979c1854403ff17c87475213c57f48...

@rust-log-analyzer
Copy link
Collaborator

The job dist-mips64el-linux failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] git2_curl test:false 1.773
[RUSTC-TIMING] git2 test:false 8.589
[RUSTC-TIMING] gix test:false 18.036
[RUSTC-TIMING] cargo test:false 63.922
rustc exited with signal: 4 (SIGILL) (core dumped)

Caused by:
Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name cargo --edition=2021 src/cargo/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=0 --cfg 'feature="all-static"' --cfg 'feature="openssl"' --cfg 'feature="vendored-openssl"' -Zunstable-options --check-cfg 'values(feature, "all-static", "openssl", "pretty-env-logger", "pretty_env_logger", "vendored-libgit2", "vendored-openssl")' --check-cfg 'names()' --check-cfg 'values()' -C metadata=01ac5483921a6941 -C extra-filename=-01ac5483921a6941 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps --target mips64el-unknown-linux-gnuabi64 -C linker=mips64el-unknown-linux-gnu-gcc -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps --extern anyhow=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libanyhow-4451dc31f6485844.rmeta --extern base64=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libbase64-791dbed03c47b9f2.rmeta --extern bytesize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libbytesize-e571371348097aa3.rmeta --extern cargo_platform=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcargo_platform-44c95bf774d3996f.rmeta --extern cargo_util=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcargo_util-c267b5b1d32487ae.rmeta --extern clap=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libclap-f415a32c622a21d1.rmeta --extern crates_io=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcrates_io-4f42c5e786edef3d.rmeta --extern curl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcurl-718f4dbbaf90dee9.rmeta --extern curl_sys=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcurl_sys-40b1e8a900eabe43.rmeta --extern env_logger=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libenv_logger-b9701cd269b945e5.rmeta --extern filetime=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libfiletime-eb91a35d19847e9f.rmeta --extern flate2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libflate2-0bdf3497be81c89a.rmeta --extern git2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgit2-a61dcfbd4f1f80a1.rmeta --extern git2_curl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgit2_curl-bd2a2e551f3d7c4b.rmeta --extern gix=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgix-3386421a39d2769d.rmeta --extern gix_features_for_configuration_only=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgix_features-b89c061755ccd5f6.rmeta --extern glob=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libglob-40cb8722a6633475.rmeta --extern hex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhex-4113776afd8e4612.rmeta --extern hmac=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhmac-7c29617bf8d03644.rmeta --extern home=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhome-697d0e9eff05bc22.rmeta --extern http_auth=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhttp_auth-54598e3bd1434291.rmeta --extern humantime=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhumantime-bb147116dc3ebe9d.rmeta --extern ignore=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libignore-7854016d0d25bb0e.rmeta --extern im_rc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libim_rc-5cf7359bb7e3ef3c.rmeta --extern indexmap=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libindexmap-3a744ae04e69cb31.rmeta --extern itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libitertools-9950d45436598bcf.rmeta --extern jobserver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libjobserver-939222c86cd9c089.rmeta --extern lazycell=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblazycell-edac7f5382996efd.rmeta --extern libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblibc-2b4c21237b5bde07.rmeta --extern libgit2_sys=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblibgit2_sys-ab4bec45ec2d4a95.rmeta --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblog-20b018d08e660786.rmeta --extern memchr=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libmemchr-7eea21b4fbc296c3.rmeta --extern opener=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libopener-ad7f6f05db960a19.rmeta --extern openssl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libopenssl-1cae62c6cf66c795.rmeta --extern os_info=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libos_info-fd856cb12cb29909.rmeta --extern pasetors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libpasetors-263ceb2d83930aab.rmeta --extern pathdiff=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libpathdiff-bc34f579d5a841e0.rmeta --extern pulldown_cmark=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libpulldown_cmark-f7f07837f3e05664.rmeta --extern rand=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/librand-e8713aa6660336dd.rmeta --extern rustfix=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/librustfix-5cd31c40530f44e9.rmeta --extern semver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libsemver-0dca9be88e95a132.rmeta --extern serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde-03fe1222b39543ea.rmeta --extern serde_value=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde_value-d2abc82a81aee45d.rmeta --extern serde_ignored=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde_ignored-021c7b467dc83ecd.rmeta --extern serde_json=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde_json-18f2e3b3ffee6fd2.rmeta --extern sha1=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libsha1-cbf2e1e3d1c7d482.rmeta --extern shell_escape=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libshell_escape-a482273518c2bebe.rmeta --extern strip_ansi_escapes=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libstrip_ansi_escapes-49d97d3baee67c42.rmeta --extern syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libsyn-358a90ac83701973.rmeta --extern tar=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtar-693b2a9547aec12a.rmeta --extern tempfile=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtempfile-fa2122831f09e2f3.rmeta --extern termcolor=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtermcolor-d16094320598e655.rmeta --extern time=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtime-0ab047133fbb6425.rmeta --extern toml=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtoml-c034d9e0b75f1c64.rmeta --extern toml_edit=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtoml_edit-1d917689fbb983b2.rmeta --extern unicode_width=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libunicode_width-c2bc4c0b829a98bc.rmeta --extern unicode_xid=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libunicode_xid-0d7fe18a4aff782d.rmeta --extern url=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liburl-c2c29746a3191f43.rmeta --extern walkdir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libwalkdir-897f2fa653b9da5f.rmeta --cfg=windows_raw_dylib -Csymbol-mangling-version=v0 -Zunstable-options '--check-cfg=values(bootstrap)' '--check-cfg=values(parallel_compiler)' '--check-cfg=values(no_btreemap_remove_entry)' '--check-cfg=values(crossbeam_loom)' '--check-cfg=values(span_locations)' '--check-cfg=values(rustix_use_libc)' '--check-cfg=values(emulate_second_only_system)' '--check-cfg=values(windows_raw_dylib)' -Zdual-proc-macros -Zmacro-backtrace -Clink-args=-Wl,-z,origin '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Csplit-debuginfo=off -Z binary-dep-depinfo -L src/backend/linux_raw/arch/outline/release -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/curl-sys-e4e5af83bcb13656/out/build -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libnghttp2-sys-c7ae1d552a559c98/out/i/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libz-sys-2d487f748c80b565/out/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libz-sys-2d487f748c80b565/out/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/openssl-sys-73c48d660551ff45/out/openssl-build/install/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libgit2-sys-0926a518d52a5f5b/out/build -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libssh2-sys-513b6c5458030784/out/build` (exit status: 254)

@bors
Copy link
Contributor

bors commented Jun 27, 2023

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 27, 2023
TaKO8Ki added a commit to TaKO8Ki/rust that referenced this pull request Jun 27, 2023
…ch, r=m-ou-se

Test benchmarks with `-Z panic-abort-tests`

During test execution, when a `#[bench]` benchmark is encountered it's executed once to check whether it works. Unfortunately that was not compatible with `-Z panic-abort-tests`: the feature works by spawning a subprocess for each test, which prevents the use of dynamic tests as we cannot pass closures to child processes, and before this PR the conversion from benchmark to test was done by turning benchmarks into dynamic tests whose closures execute the benchmark once.

The approach this PR took was to add two new kinds of `TestFn`s: `StaticBenchAsTestFn` and `DynBenchAsTestFn` (:warning: **this is a breaking change** :warning:). With that change, a `StaticBenchFn` can be converted into a `StaticBenchAsTestFn` without creating dynamic tests, and making it possible to test `#[bench]` functions with `-Z panic-abort-tests`. The subprocess test runner also had to be updated to perform the conversion from benchmark to test when appropriate.

Along with the bug fix, in the first commit I refactored how tests are executed: rather than executing the test function in multiple places across `libtest`, there is now a private `TestFn::into_runnable()` method, which returns either a `RunnableTest` or `RunnableBench`, on which you can call the `run()` method. This simplified the rest of the changes in the PR.

This PR is best reviewed commit-by-commit.
Fixes rust-lang#73509
@pietroalbini
Copy link
Member Author

Looks spurious?

@bors retry

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 30, 2023
@ChrisDenton
Copy link
Contributor

See also #113065. Some PRs have become blocked on dist-mips64el-linux failures.

@bors
Copy link
Contributor

bors commented Jun 30, 2023

⌛ Testing commit 58d9d8c with merge 0d9e6916553d0a3ed8b211dc9b4711b2c56cfce5...

@rust-log-analyzer
Copy link
Collaborator

The job dist-mips64-linux failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling git2-curl v0.18.0
[RUSTC-TIMING] git2_curl test:false 0.941
[RUSTC-TIMING] git2 test:false 11.222
[RUSTC-TIMING] gix test:false 15.566
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0xd47333)[0x7fa1bc19c333]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7fa1bb0e0520]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1d228c1)[0x7fa1bd1778c1]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1d40675)[0x7fa1bd195675]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1d55d49)[0x7fa1bd1aad49]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1c63cca)[0x7fa1bd0b8cca]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1c6fea5)[0x7fa1bd0c4ea5]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1c7133f)[0x7fa1bd0c633f]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1d68472)[0x7fa1bd1bd472]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1d6b3ba)[0x7fa1bd1c03ba]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1d6d7f6)[0x7fa1bd1c27f6]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x388f87f)[0x7fa1bece487f]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x1fb0094)[0x7fa1bd405094]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x2f93860)[0x7fa1be3e8860]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x2f939d4)[0x7fa1be3e89d4]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0x2f943d4)[0x7fa1be3e93d4]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0xfe8388)[0x7fa1bc43d388]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0xfad621)[0x7fa1bc402621]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0xfb151b)[0x7fa1bc40651b]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0xecbc86)[0x7fa1bc320c86]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0xf7609e)[0x7fa1bc3cb09e]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-95f8fcf328bf7736.so(+0xf50d12)[0x7fa1bc3a5d12]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-025e001bd1fa95df.so(rust_metadata_std_ae54db559e22a89e+0xb3225)[0x7fa1bb37c225]
/lib/x86_64-linux-gnu/libc.so.6(+0x94b43)[0x7fa1bb132b43]
/lib/x86_64-linux-gnu/libc.so.6(+0x126a00)[0x7fa1bb1c4a00]
[RUSTC-TIMING] cargo test:false 62.257
rustc exited with signal: 11 (SIGSEGV) (core dumped)

Caused by:
Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name cargo --edition=2021 src/cargo/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=0 --cfg 'feature="all-static"' --cfg 'feature="openssl"' --cfg 'feature="vendored-openssl"' -Zunstable-options --check-cfg 'values(feature, "all-static", "openssl", "pretty-env-logger", "pretty_env_logger", "vendored-libgit2", "vendored-openssl")' --check-cfg 'names()' --check-cfg 'values()' -C metadata=4f58539da6b6d5a6 -C extra-filename=-4f58539da6b6d5a6 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps --target mips64-unknown-linux-gnuabi64 -C linker=mips64-unknown-linux-gnu-gcc -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps --extern anyhow=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libanyhow-ca52a3b58ef8e770.rmeta --extern base64=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libbase64-4972e633235082f6.rmeta --extern bytesize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libbytesize-7b0fe47b0abeffcf.rmeta --extern cargo_platform=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libcargo_platform-2758e918a82d52a1.rmeta --extern cargo_util=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libcargo_util-5113280f627a9feb.rmeta --extern clap=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libclap-462530d29a2be036.rmeta --extern crates_io=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libcrates_io-67163a6571f1bd27.rmeta --extern curl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libcurl-f0daef13ef4518c5.rmeta --extern curl_sys=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libcurl_sys-1d1655055238430d.rmeta --extern env_logger=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libenv_logger-6ae5e7a02895f550.rmeta --extern filetime=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libfiletime-762b9099dc65c74d.rmeta --extern flate2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libflate2-a9da85322ee08cbb.rmeta --extern git2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libgit2-e2028b47dbf63492.rmeta --extern git2_curl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libgit2_curl-b788b539eb1ab446.rmeta --extern gix=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libgix-beb49b09bb52a766.rmeta --extern gix_features_for_configuration_only=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libgix_features-7d487b338a46640d.rmeta --extern glob=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libglob-6fa49347ea036911.rmeta --extern hex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libhex-a323e6791f0cb75b.rmeta --extern hmac=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libhmac-e62a85a67b4a3d00.rmeta --extern home=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libhome-8941a6f6a5c7318c.rmeta --extern http_auth=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libhttp_auth-5e0c781068101e9f.rmeta --extern humantime=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libhumantime-3aa0fad50caad2ab.rmeta --extern ignore=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libignore-8f8056e8b1f1ca28.rmeta --extern im_rc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libim_rc-1433f1d5ee129ad4.rmeta --extern indexmap=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libindexmap-09692627a802a7e2.rmeta --extern itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libitertools-d908bbadcd525655.rmeta --extern jobserver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libjobserver-4bd5290c8d787e8b.rmeta --extern lazycell=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/liblazycell-96512583cc2512ff.rmeta --extern libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/liblibc-6abe107547b48408.rmeta --extern libgit2_sys=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/liblibgit2_sys-82e371202073aff7.rmeta --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/liblog-3a684b866f40c67b.rmeta --extern memchr=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libmemchr-4dd8d37b68029955.rmeta --extern opener=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libopener-78d530fc43ce8c9b.rmeta --extern openssl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libopenssl-08e7520ffa14a6b8.rmeta --extern os_info=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libos_info-ccfb19465f64848c.rmeta --extern pasetors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libpasetors-374737a2360eacf4.rmeta --extern pathdiff=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libpathdiff-77ca474fe6ad3f74.rmeta --extern pulldown_cmark=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libpulldown_cmark-e9f6104c7737852b.rmeta --extern rand=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/librand-cc90d78df1885a87.rmeta --extern rustfix=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/librustfix-4e8a52beb3be53f2.rmeta --extern semver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libsemver-3ffc983edc395607.rmeta --extern serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libserde-8bc8e62346026196.rmeta --extern serde_value=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libserde_value-76e3beb4208b66e4.rmeta --extern serde_ignored=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libserde_ignored-7d62b658d50e6a72.rmeta --extern serde_json=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libserde_json-4b2f68a5f177a83c.rmeta --extern sha1=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libsha1-aef462ab3a120079.rmeta --extern shell_escape=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libshell_escape-028f5ce049ada9ad.rmeta --extern strip_ansi_escapes=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libstrip_ansi_escapes-0bb6bae58ba85b61.rmeta --extern syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libsyn-0fde6f762147fdea.rmeta --extern tar=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libtar-da72b20cf5e9692a.rmeta --extern tempfile=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libtempfile-0c0f86afd76dd8cb.rmeta --extern termcolor=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libtermcolor-9cee8c8a84b42576.rmeta --extern time=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libtime-f279bcab4ca68d75.rmeta --extern toml=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libtoml-d93fcc12151aaf91.rmeta --extern toml_edit=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libtoml_edit-96821f619ce97fb6.rmeta --extern unicode_width=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libunicode_width-da5fe0f99c19b9e9.rmeta --extern unicode_xid=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libunicode_xid-fcd6dac0701ecb1a.rmeta --extern url=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/liburl-1ff74ad2e5a593ff.rmeta --extern walkdir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/deps/libwalkdir-7f2a71cccf6dbd1e.rmeta --cfg=windows_raw_dylib -Csymbol-mangling-version=v0 -Zunstable-options '--check-cfg=values(bootstrap)' '--check-cfg=values(parallel_compiler)' '--check-cfg=values(no_btreemap_remove_entry)' '--check-cfg=values(crossbeam_loom)' '--check-cfg=values(span_locations)' '--check-cfg=values(rustix_use_libc)' '--check-cfg=values(emulate_second_only_system)' '--check-cfg=values(windows_raw_dylib)' -Zdual-proc-macros -Zmacro-backtrace -Clink-args=-Wl,-z,origin '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Csplit-debuginfo=off -Z binary-dep-depinfo -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/build/curl-sys-674cd75023884ac0/out/build -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/build/libnghttp2-sys-370155c484f9f767/out/i/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/build/libz-sys-63ec8ffcb4c83643/out/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/build/libz-sys-63ec8ffcb4c83643/out/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/build/openssl-sys-a396ed4090358d9c/out/openssl-build/install/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/build/libgit2-sys-20dec9c6d8dcfe0e/out/build -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64-unknown-linux-gnuabi64/release/build/libssh2-sys-21b588cb4b4fbbb6/out/build` (exit status: 254)

@bors
Copy link
Contributor

bors commented Jun 30, 2023

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 30, 2023
@pietroalbini
Copy link
Member Author

@bors retry

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 30, 2023
@bors
Copy link
Contributor

bors commented Jul 1, 2023

⌛ Testing commit 58d9d8c with merge e5bb341...

@bors
Copy link
Contributor

bors commented Jul 1, 2023

☀️ Test successful - checks-actions
Approved by: m-ou-se
Pushing e5bb341 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 1, 2023
@bors bors merged commit e5bb341 into rust-lang:master Jul 1, 2023
12 checks passed
@rustbot rustbot added this to the 1.72.0 milestone Jul 1, 2023
@tshepang tshepang deleted the pa-panic-abort-tests-bench branch July 1, 2023 09:46
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (e5bb341): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.3% [-0.3%, -0.3%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.3% [-0.3%, -0.3%] 1

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
1.9% [0.5%, 3.3%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.1% [-2.0%, -0.5%] 8
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.5% [-2.0%, 3.3%] 10

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
13.8% [13.1%, 15.1%] 6
Improvements ✅
(primary)
-1.6% [-1.6%, -1.6%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -1.6% [-1.6%, -1.6%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 662.02s -> 661.138s (-0.13%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

-Zpanic_abort_tests fails with benchmarks as test
7 participants