rust/tests/ui/lexer
bors b2b676d886 Auto merge of #108905 - ferrocene:pa-compiletest-ignore, r=ehuss
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`
2023-04-05 16:15:25 +00:00
..
error-stage.rs
error-stage.stderr
issue-108019-bad-emoji-recovery.rs
issue-108019-bad-emoji-recovery.stderr
lex-bad-binary-literal.rs
lex-bad-binary-literal.stderr
lex-bad-char-literals-1.rs
lex-bad-char-literals-1.stderr
lex-bad-char-literals-2.rs
lex-bad-char-literals-2.stderr
lex-bad-char-literals-3.rs
lex-bad-char-literals-3.stderr
lex-bad-char-literals-4.rs
lex-bad-char-literals-4.stderr
lex-bad-char-literals-5.rs
lex-bad-char-literals-5.stderr
lex-bad-char-literals-6.rs
lex-bad-char-literals-6.stderr
lex-bad-char-literals-7.rs
lex-bad-char-literals-7.stderr
lex-bad-numeric-literals.rs
lex-bad-numeric-literals.stderr
lex-bad-octal-literal.rs
lex-bad-octal-literal.stderr
lex-bad-token.rs
lex-bad-token.stderr
lex-bare-cr-nondoc-comment.rs
lex-bare-cr-string-literal-doc-comment.rs
lex-bare-cr-string-literal-doc-comment.stderr
lex-emoji-identifiers.rs
lex-emoji-identifiers.stderr
lex-stray-backslash.rs
lex-stray-backslash.stderr
lexer-crlf-line-endings-string-literal-doc-comment.rs
unterminated-comment.rs
unterminated-comment.stderr
unterminated-nested-comment.rs
unterminated-nested-comment.stderr