@@ -214,9 +214,57 @@ source.
214
214
* ` error-pattern ` checks the diagnostics just like the ` ERROR ` annotation
215
215
without specifying error line. This is useful when the error doesn't give
216
216
any span.
217
+ * ` incremental ` runs the test with the ` -C incremental ` flag and an empty
218
+ incremental directory. This should be avoided when possible; you should use
219
+ an * incremental mode* test instead. Incremental mode tests support running
220
+ the compiler multiple times and verifying that it can load the generated
221
+ incremental cache. This flag is for specialized circumstances, like checking
222
+ the interaction of codegen unit partitioning with generating an incremental
223
+ cache.
224
+ * ` aux-build ` is used to compile additional crates to link. Just pass it the
225
+ name of the source file. The source file should be in a directory called
226
+ ` auxiliary ` beside the test file. The aux crate will be built as a dylib if
227
+ possible (unless on a platform that does not support them, or
228
+ ` no-prefer-dynamic ` is specified in the aux file). The ` -L ` flag is used to
229
+ find the extern crates.
230
+ * ` aux-crate ` is very similar to ` aux-build ` , however it uses the ` --extern `
231
+ flag to link to the extern crate. That allows you to specify the additional
232
+ syntax of the ` --extern ` flag, such as renaming a dependency. For example,
233
+ ` // aux-crate:foo=bar.rs ` will compile ` auxiliary/bar.rs ` and add make it
234
+ available under then name ` foo ` within the test. This is similar to how
235
+ Cargo does dependency renaming.
236
+ * ` no-prefer-dynamic ` will force an auxiliary crate to be built as an rlib
237
+ instead of a dylib. When specified in a test, it will remove the use of `-C
238
+ prefer-dynamic`. This can be useful in a variety of circumstances. For
239
+ example, it can prevent a proc-macro from being built with the wrong crate
240
+ type. Or if your test is specifically targeting behavior of other crate
241
+ types, it can be used to prevent building with the wrong crate type.
242
+ * ` force-host ` will force the test to build for the host platform instead of
243
+ the target. This is useful primarily for auxiliary proc-macros, which need
244
+ to be loaded by the host compiler.
245
+ * ` pretty-mode ` for pretty-print tests specifies the mode it should run in.
246
+ The default is ` normal ` if not specified.
247
+ * ` pretty-compare-only ` causes a pretty test to only compare the
248
+ pretty-printed output. It will not try to compile the expanded output to
249
+ typecheck it. This is needed for a pretty-mode that does not expand to valid
250
+ rust, or for other situations where the expanded output cannot be compiled.
251
+ * ` pretty-expanded ` allows a pretty test to also run with
252
+ ` -Zunpretty=expanded ` as a final step, and will also try to compile the
253
+ resulting output (without codegen). This is needed because not all code can
254
+ be compiled after being expanded. Pretty tests should specify this if they
255
+ can. More history about this may be found in [ #23616 ] .
256
+ * ` pp-exact ` is used to ensure a pretty-print test results in specific output.
257
+ If specified without a value, then it means the pretty-print output should
258
+ match the original source. If specified with a value, as in `//
259
+ pp-exact: foo .pp`, will ensure that that pretty-printed output matches the
260
+ contents of the given file. Otherwise, if ` pp-exact ` is not specified, then
261
+ the pretty-printed output will be pretty-printed one more time, and the
262
+ output of the two pretty-printing rounds will be compared to ensure that the
263
+ pretty-printed output converges to a steady state.
217
264
218
265
[ `header.rs` ] : https://github.com/rust-lang/rust/tree/master/src/tools/compiletest/src/header.rs
219
266
[ bless ] : ./running.md#editing-and-updating-the-reference-files
267
+ [ #23616 ] : https://github.com/rust-lang/rust/issues/23616#issuecomment-484999901
220
268
221
269
<a name =" error_annotations " ></a >
222
270
0 commit comments