Skip to content

Audit {check-run-results, regex-error-pattern, error-pattern, check-stdout, normalize-*, dont-check-compiler-*, run-rustfix, rustfix-only-machine-applicable, forbid-output} family of directives #134888

Open
@jieyouxu

Description

@jieyouxu

I don't know about other contributors, but I have to look at the source implementation (or trial-and-error) every time I see or try to use one of these compiletest directives. IMO, we should audit the design of these directives, and possibly revamp them entirely.

Concrete confusions:

  • check-run-results check both run stderr and stdout and puts them into snapshot files (on bless), then compares the subsequent run stderr and stdout against the snapshot.
  • error-pattern doesn't only check stderr (whose stderr? compiler? run?), it can also check stdout (or both??) depending on check-stdout, dont-check-compiler-*, and also it can check also compiler stderr or stdout I think??
  • normalize-* (that is not normalize-stdout or normalize-stderr) I believe can simultaneously apply to {compiler,run} {stderr,stdout}.
  • run-rustfix will run rustfix and try to apply all non-placeholder suggestions, including non-machine-applicable ones like MaybeIncorrect ones.
  • rustfix-only-machine-applicable is like run-rustfix but only tries to apply MachineApplicable suggestions.
  • forbid-output is like error-pattern but named completely differently. I don't remember which output pattern of {compiler,run}x{stderr,stdout} it is forbidding.

EDIT:

  • regex-error-pattern is like error-pattern but accepts a regex...

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-compiletestArea: The compiletest test runnerA-testsuiteArea: The testsuite used to check the correctness of rustcC-bugCategory: This is a bug.E-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.E-needs-designThis issue needs exploration and design to see how and if we can fix/implement itE-needs-investigationCall for partcipation: This issues needs some investigation to determine current statusT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions