-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Support x test --stage 1 ui-fulldeps
#110478
Conversation
Nils had an excellent idea the other day: the same way that rustdoc is able to load `rustc_driver` from the sysroot, ui-fulldeps tests should also be able to load it from the sysroot. That allows us to run fulldeps tests with stage1, without having to fully rebuild the compiler twice. It does unfortunately have the downside that we're running the tests on the *bootstrap* compiler, not the in-tree sources, but since most of the fulldeps tests are for the *API* of the compiler, that seems ok. I think it's possible to extend this to `run-make-fulldeps`, but I've run out of energy for tonight. - Move `plugin` tests into a subdirectory. Plugins are loaded at runtime with `dlopen` and so require the ABI of the running compile to match the ABI of the compiler linked with `rustc_driver`. As a result they can't be supported in stage 1 and have to use `// ignore-stage1`. - Remove `ignore-stage1` from most non-plugin tests - Ignore diagnostic tests in stage 1. Even though this requires a stage 2 build to load rustc_driver, it's primarily testing the error message that the *running* compiler emits when the diagnostic struct is malformed. - Pass `-Zforce-unstable-if-unmarked` in stage1, not just stage2. That allows running `hash-stable-is-unstable` in stage1, since it now suggests adding `rustc_private` to enable loading the crates. - Add libLLVM.so to the stage0 target sysroot, to allow fulldeps tests that act as custom drivers to load it at runtime. - Pass `--sysroot stage0-sysroot` in compiletest so that we use the correct version of std.
(rustbot has picked a reviewer for you, use r? to override) |
@bors r+ rollup=iffy |
⌛ Testing commit d6af602 with merge ba5dc55d0ba22c4faa5db8648961e53261aed43a... |
💔 Test failed - checks-actions |
@bors retry seems supurious
|
Yes, since recently :) see src/ci/docker/host-x86_64/x86_64-gnu-llvm-14-stage1/. |
☀️ Test successful - checks-actions |
1 similar comment
☀️ Test successful - checks-actions |
Finished benchmarking commit (de96f3d): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)ResultsThis 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.
CyclesResultsThis 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.
|
…an68 Update location of `auxiliary/lint-plugin-test.rs` **PR Summary**: PR updates the location of `auxiliary/lint-plugin-test.rs` file which was moved in PR rust-lang#110478.
Rollup merge of rust-lang#116299 - emmanuel-ferdman:wip, r=albertlarsan68 Update location of `auxiliary/lint-plugin-test.rs` **PR Summary**: PR updates the location of `auxiliary/lint-plugin-test.rs` file which was moved in PR rust-lang#110478.
@Nilstrieb had an excellent idea the other day: the same way that rustdoc is able to load
rustc_driver
from the sysroot, ui-fulldeps tests should also be able to load it from the sysroot. That allows us to run fulldeps tests with stage1, without having to fully rebuild the compiler twice. It does unfortunately have the downside that we're building the tests with the bootstrap compiler, not the in-tree sources, but since most of the fulldeps tests are for the API of the compiler, that seems ok.I think it's possible to extend this to
run-make-fulldeps
, but I've run out of energy for tonight.Move
plugin
tests into a subdirectory.Plugins are loaded at runtime with
dlopen
and so require the ABI of the running compile to match the ABI of the compiler linked withrustc_driver
. As a result they can't be supported in stage 1 and have to use// ignore-stage1
.Remove
ignore-stage1
from most non-plugin testsIgnore diagnostic tests in stage 1. Even though this requires a stage 2 build to load rustc_driver, it's primarily testing the error message that the running compiler emits when the diagnostic struct is malformed.
Pass
-Zforce-unstable-if-unmarked
in stage1, not just stage2. That allows runninghash-stable-is-unstable
in stage1, since it now suggests addingrustc_private
to enable loading the crates.Add libLLVM.so to the stage0 target sysroot, to allow fulldeps tests that act as custom drivers to load it at runtime.
Pass
--sysroot stage0-sysroot
in compiletest so that we use the correct version of std.Move a few lint tests from ui-fulldeps to ui
These had an
aux-build:lint-group-plugin-test.rs
that they never actually loaded withfeature(plugin)
nor tested. I removed the unused aux-build and they pass fine with stage 1.Fixes #75905.