Skip to content

Attempt to run parallel frontend CI#158307

Draft
heinwol wants to merge 1 commit into
rust-lang:mainfrom
heinwol:parallel-frontend-CI
Draft

Attempt to run parallel frontend CI#158307
heinwol wants to merge 1 commit into
rust-lang:mainfrom
heinwol:parallel-frontend-CI

Conversation

@heinwol

@heinwol heinwol commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

WIP

Supersedes #157705.

The issue with the original change was arguments --parallel-frontend-threads=4 --iteration-count=2 being compiletest-only. They were being passed to other parts of the test harness (e.g. libtest) as is. These parts, however, have no clue of the arguments, hence the errors.

I've spent a lot of time on this and haven't found any reasonable way to fix this behavior. We could make bootstrap aware of these specific two arguments and have an additional internal logic for handling this. It's big of a hack, i reckon. The best decision i arrived at is to split testing into two parts: one for compiletest only and another for everything else. The issue is (AFAIK) we can't tell bootstrap (or x.py, at least) to "test the default stuff, but only for compiletest". When used like x test tests/ it runs all the tests in this directory, including non-default ones, and crashes as it can't find nodejs for doctests. --skip compiler/ --skip library/ --skip src/tools/ --skip tests/incremental ... is still not exhaustive list of exclusions.

I went on with a whitelist instead of a blacklist. But we, again, can't tell what tests are "default". There's a mechanism in bootstrap::core::builder::Builder for showing "dry-run" test suites, but it's not available from the cli. For now, my whitelist is quite small and i have no idea what should it be like.

Also, i added ENV RUST_TEST_THREADS=1 just because it was introduced by @ zetanumbers; i'm not sure it's necessary. It ran ok in the previous iteration.

Finally, i'm not sure it works for now, i'm still spending hours blindly guessing the maxumum working set of tests. I've decided to make the pr now just to have something done and seek advice.

r? @petrochenkov

@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Jun 23, 2026
@petrochenkov petrochenkov added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants