Skip to content

Commit

Permalink
Remove nll compare mode.
Browse files Browse the repository at this point in the history
  • Loading branch information
ehuss committed Jun 8, 2022
1 parent 6e4d643 commit 4ff43cf
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 20 deletions.
11 changes: 5 additions & 6 deletions src/tests/compiletest.md
Original file line number Diff line number Diff line change
Expand Up @@ -501,23 +501,22 @@ To run the tests in a different mode, you need to pass the `--compare-mode`
CLI flag:

```bash
./x.py test src/test/ui --compare-mode=nll
./x.py test src/test/ui --compare-mode=chalk
```

The possible compare modes are:

* `nll` — Runs in the "true" NLL mode with `-Zborrowck=mir`.
See [UI compare modes](ui.md#compare-modes) for more.
* `polonius` — Runs with Polonius with `-Zpolonius -Zborrowck=mir`, and reuses
the `nll` stderr files.
* `polonius` — Runs with Polonius with `-Zpolonius -Zborrowck=mir`.
* `chalk` — Runs with Chalk with `-Zchalk`.
* `split-dwarf` — Runs with unpacked split-DWARF with `-Csplit-debuginfo=unpacked`.
* `split-dwarf-single` — Runs with packed split-DWARF with `-Csplit-debuginfo=packed`.

See [UI compare modes](ui.md#compare-modes) for more information about how UI
tests support different output for different modes.

In CI, compare modes are only used in one Linux builder, and only with the
following settings:

* `src/test/ui`: Uses `nll` mode.
* `src/test/debuginfo`: Uses `split-dwarf` mode.
This helps ensure that none of the debuginfo tests are affected when
enabling split-DWARF.
Expand Down
2 changes: 1 addition & 1 deletion src/tests/headers.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ Some examples of `X` in `ignore-X` or `only-X`:
* When [remote testing] is used: `remote`
* When debug-assertions are enabled: `debug`
* When particular debuggers are being tested: `cdb`, `gdb`, `lldb`
* Specific [compare modes]: `compare-mode-nll`, `compare-mode-polonius`,
* Specific [compare modes]: `compare-mode-polonius`,
`compare-mode-chalk`, `compare-mode-split-dwarf`,
`compare-mode-split-dwarf-single`

Expand Down
10 changes: 5 additions & 5 deletions src/tests/running.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,13 +196,13 @@ of the `build` directory from time to time.
## Running tests with different "compare modes"

UI tests may have different output depending on certain "modes" that
the compiler is in. For example, when in "non-lexical lifetimes" (NLL)
mode a test `foo.rs` will first look for expected output in
`foo.nll.stderr`, falling back to the usual `foo.stderr` if not found.
To run the UI test suite in NLL mode, one would use the following:
the compiler is in. For example, when using the Polonius
mode, a test `foo.rs` will first look for expected output in
`foo.polonius.stderr`, falling back to the usual `foo.stderr` if not found.
The following will run the UI test suite in Polonius mode:

```bash
./x.py test src/test/ui --compare-mode=nll
./x.py test src/test/ui --compare-mode=polonius
```

See [Compare modes](compiletest.md#compare-modes) for more details.
Expand Down
15 changes: 7 additions & 8 deletions src/tests/ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ The general form is:
* `32bit.stderr` — compiler stderr with `stderr-per-bitwidth` header on a 32-bit target

A simple example would be `foo.stderr` next to a `foo.rs` test.
A more complex example would be `foo.my-revision.nll.stderr`.
A more complex example would be `foo.my-revision.polonius.stderr`.

There are several [headers](headers.md) which will change how compiletest will
check for output files:
Expand Down Expand Up @@ -496,20 +496,19 @@ In some cases, this might result in different output from the compiler.
To support this, different output files can be saved which contain the
output based on the compare mode.

For example, when in "non-lexical lifetimes" (NLL) mode a test `foo.rs` will
first look for expected output in `foo.nll.stderr`, falling back to the usual
For example, when using the Polonius mode, a test `foo.rs` will
first look for expected output in `foo.polonius.stderr`, falling back to the usual
`foo.stderr` if not found.
This is useful as "true" NLL mode can sometimes result in different
diagnostics and behavior compared to the "migrate mode" NLL (which is the
current default).
This is useful as different modes can sometimes result in different
diagnostics and behavior.
This can help track which tests have differences between the modes, and to
visually inspect those diagnostic differences.

If in the rare case you encounter a test that has different behavior, you can
run something like the following to generate the alternate stderr file:

```sh
./x.py test src/test/ui --compare-mode=nll --bless
./x.py test src/test/ui --compare-mode=polonius --bless
```

Currently, only `nll` mode is checked in CI for UI tests.
Currently none of the compare modes are checked in CI for UI tests.

0 comments on commit 4ff43cf

Please sign in to comment.