-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
compiletest: Less special handling of debugger/test discovery in debuginfo mode #134673
Copy link
Copy link
Open
Open
Copy link
Labels
A-compiletestArea: The compiletest test runnerArea: The compiletest test runnerA-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-cleanupCategory: PRs that clean code up or issues documenting cleanup.Category: PRs that clean code up or issues documenting cleanup.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-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-compiletestArea: The compiletest test runnerArea: The compiletest test runnerA-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-cleanupCategory: PRs that clean code up or issues documenting cleanup.Category: PRs that clean code up or issues documenting cleanup.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-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for Cleanup.
Currently there is special code in compiletest that detects
Mode::DebugInfoand responds by creating three different clones of the compiletest config, each configured to use one of cdb/gdb/lldb if the corresponding debugger can be found.This complicates config handling and test discovery in the top-level parts of compiletest, because parts of the code need to be aware of multiple configs just to handle this one use-case.
In principle, debugger discovery and selection should be handled out in bootstrap, which then invokes compiletest up to three times, with each invocation explicitly specifying a debugger path and debugger kind. This is somewhat analogous to how
x test coverageinvokes compiletest twice on the same directory with two different modes, though in this case it would instead be the same directory and mode with different debugger settings.(Given bootstrap's own maintenance headaches, whether this would be a net improvement in the short-term is an open question.)