Skip to content

Tracking issue for bootstrap test step cleanups #137178

Closed as not planned
Closed as not planned
@jieyouxu

Description

@jieyouxu

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.

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

Issue actions