-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Switch run-make tests from Makefiles to rust #40713
Copy link
Copy link
Closed
Labels
A-compiletestArea: The compiletest test runnerArea: The compiletest test runnerA-run-makeArea: port run-make Makefiles to rmake.rsArea: port run-make Makefiles to rmake.rsA-testsuiteArea: The testsuite used to check the correctness of rustcArea: The testsuite used to check the correctness of rustcC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.E-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.Call for participation: Hard difficulty. Experience needed to fix: A lot.E-help-wantedCall for participation: Help is requested to fix this issue.Call for participation: Help is requested to fix this issue.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.Relevant to the infrastructure team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-compiletestArea: The compiletest test runnerArea: The compiletest test runnerA-run-makeArea: port run-make Makefiles to rmake.rsArea: port run-make Makefiles to rmake.rsA-testsuiteArea: The testsuite used to check the correctness of rustcArea: The testsuite used to check the correctness of rustcC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.E-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.Call for participation: Hard difficulty. Experience needed to fix: A lot.E-help-wantedCall for participation: Help is requested to fix this issue.Call for participation: Help is requested to fix this issue.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.Relevant to the infrastructure team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Rust currently has a suite of
run-maketests, which generally test specificrustcinvocations or behaviour, or require external tools (eg.grepornm).The goal of this issue is to rewrite these
run-maketests, which are currently written as Makefiles, in rust to a) get rid of the dependency on external tools such asmakeand b) make them more accessible to rust contributors by not requiring arcane knowledge of themaketool.The transition will require at least the following steps:
run-maketests with regard to what they actually do / which programs they use (and how). I assume the programs will likely fall into one of three categories:rustc,rustdoc)grepnm, which cannot be easily rewritten in rustcompile-test, mayberun-rmake, which runs the new rust-basedrun-maketests. This will either include compiling the support library, or receiving the support library from a previous build stage.run-maketests, which may involve adding additional functionality to the support library. At that time this issue, or another, will track the state of all the existing tests and include some detailed instruction to allow people to easily contributing by porting one of the existing tests.There are some open questions:
compiletestthe correct choice? For example the support library itself may have external dependencies (mayberegexorgcc-rs) which means we should probably use cargo to compile the actual tests. At which point it may be worth considering ifcompile-testis needed at all or if cargo is enough (Have the support library insrc/lib.rs, the newrun-maketests intests/*.rsand auxiliary files in subdirectories oftests/named after the main test file).If anyone wants to get involved in the process, please leave a comment on this issue or ping me on IRC.
Original Issue Description
Based on a short experiment, it looks like rust on msvc only has five build dependencies: Visual Studio, Git, Python, CMake and make, where make is only used for the
run-maketests as far as I can tell.Of those five, the first four are easily installable natively on windows, whereas make wasn't as straight forward to installe when I tried and required msys2 / mingw.
The questions the are:
run-maketests.