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

Retire the legacy Makefile-based run-make test infra #136581

Open
wants to merge 26 commits into
base: master
Choose a base branch
from

Conversation

jieyouxu
Copy link
Member

@jieyouxu jieyouxu commented Feb 5, 2025

Caution

Currently stacked on top of #136542 and #135572. Can only be merged after the prerequisite PRs are merged and then this PR is rebased.

The final piece of porting run-make tests to use Rust #121876.
Closes #121876.
Closes #40713.
Closes #81791 (no longer using wc).
Closes #56475 (no longer a problem in current form of that test; we don't ignore the test on aarch64-unknown-linux-gnu).

Summary

This PR removes the legacy Makefile-based run-make test infra which has served us well over the years. The legacy infra is no longer needed since we ported all of Makefile-based run-make tests to the new rmake.rs infra.

Additionally, this PR:

  • Removes tests/run-make/tools.mk since no more Makefile-based tests remain.
  • Updates tests/run-make/README.md and rustc-dev-guide docs to remove mention about Makefile-based run-make tests
  • Update test suite requirements in rustc-dev-guide on Windows to no longer need MSYS2 (they should also now run successfully on native Windows MSVC).
  • Update triagebot.toml to stop backlinking to Tracking Issue for porting run-make tests to use Rust #121876.

Thanks to everyone who helped in this effort to modernize the run-make test infra and test suite!

r? bootstrap

jieyouxu and others added 26 commits February 4, 2025 22:07
…--stage-id`

Notably, this avoids having to do hacky string splitting based on
`--stage-id`.
Instead of only having `--src-base` and `src_base` which *actually*
refers to the directory containing the test suite and not the sources
root. More importantly, kill off `find_rust_src_root` when we can simply
pass that info from bootstrap.
…ic build dir

- Introduce and use `--build-{root,test-suite-root}` over
  `--build-base`.
- A few minor cleanups.
To make it easier to tell the conditional branching.
This does not work with GNU Make 3.80, but this is just to make it
easier to follow during review.
It has served us well, but it's time to retire the `Makefile` support
file since this is no longer needed.
And remove outdated requirements to run `run-make` tests on Windows.
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs labels Feb 5, 2025
@rustbot rustbot added A-rustc-dev-guide Area: rustc-dev-guide A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Feb 5, 2025
@jieyouxu
Copy link
Member Author

jieyouxu commented Feb 5, 2025

@rustbot blocked (on prerequisite PRs merging first)

@rustbot rustbot added S-blocked Status: Blocked on something else such as an RFC or other implementation work. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 5, 2025
@jieyouxu jieyouxu added the A-test-infra Area: test infrastructure (may span bootstrap/compiletest/more) label Feb 5, 2025
@Noratrieb
Copy link
Member

Noratrieb commented Feb 5, 2025

Thank you very much for starting this, driving this forward together with @Oneirical during GSoC and everyone else, and now finally bringing this to completion!
This was a lot of incredible work that will not only make it easier to contribute to Rust by no longer having to read and write makefile, but also no longer require weird things on Windows, and make everything more reliable, thoroughly tested and documented in the process.

Thanks! 💜❤️😸

@Oneirical
Copy link
Contributor

It's amazing to see this after toiling through the seemingly endless pile of Makefiles. This is going to make it so much less of a hassle when contributors write a PR and reviewers answer, "Very nice, but could you add a test?"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-compiletest Area: The compiletest test runner A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-test-infra Area: test infrastructure (may span bootstrap/compiletest/more) A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool S-blocked Status: Blocked on something else such as an RFC or other implementation work. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
5 participants