about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2022-08-19 16:40:26 -0400
committerFelix S. Klock II <pnkfelix@pnkfx.org>2022-08-19 16:40:26 -0400
commitf47b61d19e1c17bac9fff34e9b304bad4f132ffe (patch)
treee1ea48cea3113cc08c88c3b232fea33ba926cd1c /src
parent468887ef91e46847dff57b6b234cff0fad17cb71 (diff)
downloadrust-f47b61d19e1c17bac9fff34e9b304bad4f132ffe.tar.gz
rust-f47b61d19e1c17bac9fff34e9b304bad4f132ffe.zip
elaborate how revisions work with FileCheck stuff in src/test/codegen
Diffstat (limited to 'src')
-rw-r--r--src/test/codegen/README.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/codegen/README.md b/src/test/codegen/README.md
index 00de55eeab1..8f2daaafcc7 100644
--- a/src/test/codegen/README.md
+++ b/src/test/codegen/README.md
@@ -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
+```