]> git.lizzy.rs Git - rust.git/commitdiff
elaborate how revisions work with FileCheck stuff in src/test/codegen
authorFelix S. Klock II <pnkfelix@pnkfx.org>
Fri, 19 Aug 2022 20:40:26 +0000 (16:40 -0400)
committerFelix S. Klock II <pnkfelix@pnkfx.org>
Fri, 19 Aug 2022 20:40:26 +0000 (16:40 -0400)
src/test/codegen/README.md

index 00de55eeab1f4a7d50419d7252668c2b4f0ef337..8f2daaafcc77a8cb71a68ad2a4f0a0cadea72f55 100644 (file)
@@ -1,2 +1,24 @@
 The files here use the LLVM FileCheck framework, documented at
 <https://llvm.org/docs/CommandGuide/FileCheck.html>.
+
+One extension worth noting is the use of revisions as custom prefixes for
+FileCheck. If your codegen test has different behavior based on the chosen
+target or different compiler flags that you want to exercise, you can use a
+revisions annotation, like so:
+
+```rust
+// revisions: aaa bbb
+// [bbb] compile-flags: --flags-for-bbb
+```
+
+After specifying those variations, you can write different expected, or
+explicitly *unexpected* output by using `<prefix>-SAME:` and `<prefix>-NOT:`,
+like so:
+
+```rust
+// CHECK: expected code
+// aaa-SAME: emitted-only-for-aaa
+// aaa-NOT:                        emitted-only-for-bbb
+// bbb-NOT:  emitted-only-for-aaa
+// bbb-SAME:                       emitted-only-for-bbb
+```