Validate `ignore` and `only` compiletest directive, and add human-readable ignore reasons This PR adds strict validation for the `ignore` and `only` compiletest directives, failing if an unknown value is provided to them. Doing so uncovered 79 tests in `tests/ui` that had invalid directives, so this PR also fixes them. Finally, this PR adds human-readable ignore reasons when tests are ignored due to `ignore` or `only` directives, like *"only executed when the architecture is aarch64"* or *"ignored when the operative system is windows"*. This was the original reason why I started working on this PR and #108659, as we need both of them for Ferrocene. The PR is a draft because the code is extremely inefficient: it calls `rustc --print=cfg --target $target` for every rustc target (to gather the list of allowed ignore values), which on my system takes between 4s and 5s, and performs a lot of allocations of constant values. I'll fix both of them in the coming days. r? `@ehuss` |
||
|---|---|---|
| .. | ||
| config | ||
| cgu_reuse_tracker.rs | ||
| code_stats.rs | ||
| config.rs | ||
| cstore.rs | ||
| errors.rs | ||
| filesearch.rs | ||
| lib.rs | ||
| options.rs | ||
| output.rs | ||
| parse.rs | ||
| search_paths.rs | ||
| session.rs | ||
| utils.rs | ||