From f47b61d19e1c17bac9fff34e9b304bad4f132ffe Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Fri, 19 Aug 2022 16:40:26 -0400 Subject: [PATCH] elaborate how revisions work with FileCheck stuff in src/test/codegen --- src/test/codegen/README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/test/codegen/README.md b/src/test/codegen/README.md index 00de55eeab1f4..8f2daaafcc77a 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 . + +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 `-SAME:` and `-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 +```