Skip to content

Commit 5ddc4f9

Browse files
Add a section about rustc_clean
1 parent ff638e7 commit 5ddc4f9

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/tests/compiletest.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,22 @@ still pass.
187187
cause an Internal Compiler Error (ICE). This is a highly specialized directive
188188
to check that the incremental cache continues to work after an ICE.
189189

190+
Incremental tests may use the attribute `#[rustc_clean(...)]` attribute. This attribute compares
191+
the fingerprint from the current compilation session with the previous one.
192+
The first revision should never have an active `rustc_clean` attribute, since it will always be dirty.
193+
194+
In the default mode, it checks that the fingerprints must be the same.
195+
The attribute takes the following arguments:
196+
197+
* `cfg="<cond>"` — checks the cfg condition `<cond>`, and only runs the check if the config condition evaluates to true.
198+
This can be used to only run the `rustc_clean` attribute in a specific revision.
199+
* `except="<query1>,<query2>,..."` — asserts that the query results for the listed queries must be different,
200+
rather than the same.
201+
* `loaded_from_disk="<query1>,<query2>,..."` — asserts that the query results for the listed queries
202+
were actually loaded from disk (not just marked green).
203+
This can be useful to ensure that a test is actually exercising the deserialization
204+
logic for a particular query result. This can be combined with `except`.
205+
190206
[`tests/incremental`]: https://github.com/rust-lang/rust/tree/HEAD/tests/incremental
191207

192208

0 commit comments

Comments
 (0)