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

./x.py test silently ignores some of ui-fulldeps test and fails on one test #75905

Closed
mati865 opened this issue Aug 25, 2020 · 0 comments · Fixed by #110478
Closed

./x.py test silently ignores some of ui-fulldeps test and fails on one test #75905

mati865 opened this issue Aug 25, 2020 · 0 comments · Fixed by #110478
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc C-bug Category: This is a bug.

Comments

@mati865
Copy link
Contributor

mati865 commented Aug 25, 2020

Yeah, if stage 1 stays a default, then we should probably

  • error on x.py test <suite>/x.py test --stage 1 <suite> if the test suite requiring stage 2 is specified explicitly,
  • ignore it with a message in "glob" runs like x.py test without arguments.

Originally posted by @petrochenkov in #75404 (comment)

@jonas-schievink jonas-schievink added A-testsuite Area: The testsuite used to check the correctness of rustc C-bug Category: This is a bug. labels Aug 25, 2020
@bors bors closed this as completed in de96f3d Apr 18, 2023
RalfJung pushed a commit to RalfJung/miri that referenced this issue Apr 22, 2023
Support `x test --stage 1 ui-fulldeps`

`@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 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.

- 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 with `feature(plugin)` nor tested. I removed the unused aux-build and they pass fine with stage 1.

Fixes rust-lang/rust#75905.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc C-bug Category: This is a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants