Skip to content

Tracking issue for bootstrap test step cleanups #137178

Not planned
@jieyouxu

Description

@jieyouxu
Member

This is a tracking issue for efforts related to some cleanups for bootstrap's test steps (related to ./x test). I intend to use this issue to track possible cleanups/follow-ups related to trying to break up test.rs into smaller modules by test kind #135072 and improving test step naming, and will be updated as we go.

Phase 1: Improve the logical organization of test steps

This phase is focused around to break up the huge test.rs file into more logically organized modules. This is to (1) lower cognitive load when trying to figure out what test steps do, and (2) make it easier to fix existing test steps / add new test steps, by grouping similar test steps together (and localizing helpers / macros).

Possible cleanups/improvements noticed

  • Split the tidy test step into two logical steps (Steps A, B).
    • Step A: this step runs tidy rules and enforces them on the source tree.
    • Step B: this step runs tidy self-tests (this involves an alias hack tidyselftest to remap ./x test tidy to run tidy, not tidy's self-tests).
    • Note that current step impl merges the two roles together into one step.
  • CrateBootstrap is confusingly named (esp. when Bootstrap is also a test step). It doesn't actually test bootstrap (that would be Bootstrap), it tests some tools used by bootstrap.
    compiletest self-test step is named inconsistently as CompiletestTest (versus CrateXXX that other self-tests seem to use?).
    Crate is confusingly named and implement: it's shared by compiler crate tests but also std crate stes?
    TestFloatParse is one step that does two things (self test vs testing std float).

Phase 2: Improve consistency of test step naming

See discussion in https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Renaming.20test.20step.20structs.

Currently, there really isn't any logical naming scheme for bootstrap test steps, which makes it extra confusing because things are inconsistently named. We'd like to investigate if it's possible to rename test steps to better reflect their nature. This phase consist of mostly two steps:

  • 1. Figure out a sane naming scheme for test steps, possibly categorized via nature of test steps.
    2. Rename test steps and fix inconsistencies noticed while enforcing the naming scheme.

Activity

added
A-test-infraArea: test infrastructure (may span bootstrap/compiletest/more)
A-testsuiteArea: The testsuite used to check the correctness of rustc
C-cleanupCategory: PRs that clean code up or issues documenting cleanup.
C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFC
T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
on Feb 17, 2025
self-assigned this
on Feb 17, 2025
jieyouxu

jieyouxu commented on Feb 19, 2025

@jieyouxu
MemberAuthor

Hm, it's really hard to come up with a clean organization for the test steps. Probably will need to first make some test steps "less special".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-test-infraArea: test infrastructure (may span bootstrap/compiletest/more)A-testsuiteArea: The testsuite used to check the correctness of rustcC-cleanupCategory: PRs that clean code up or issues documenting cleanup.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @jieyouxu

      Issue actions

        Tracking issue for bootstrap test step cleanups · Issue #137178 · rust-lang/rust