diff options
| author | Oleksii Lozovskyi <me@ilammy.net> | 2022-10-02 10:25:49 +0900 |
|---|---|---|
| committer | Oleksii Lozovskyi <me@ilammy.net> | 2023-02-09 12:28:00 +0900 |
| commit | 0fef658ffeb0fdc858d6c111a992b570ed73c951 (patch) | |
| tree | 93e727ff58da10368c4c17b1f781e016935b2d20 | |
| parent | bac15db1d0f3ccdb9b9f61ba808cd25fbf400e88 (diff) | |
| download | rust-0fef658ffeb0fdc858d6c111a992b570ed73c951.tar.gz rust-0fef658ffeb0fdc858d6c111a992b570ed73c951.zip | |
Codegen tests for -Z instrument-xray
Let's add at least some tests to verify that this option is accepted and produces expected LLVM attributes. More tests can be added later with attribute support.
| -rw-r--r-- | tests/codegen/instrument-xray/basic.rs | 8 | ||||
| -rw-r--r-- | tests/codegen/instrument-xray/options-combine.rs | 11 | ||||
| -rw-r--r-- | tests/codegen/instrument-xray/options-override.rs | 10 |
3 files changed, 29 insertions, 0 deletions
diff --git a/tests/codegen/instrument-xray/basic.rs b/tests/codegen/instrument-xray/basic.rs new file mode 100644 index 00000000000..9c128767747 --- /dev/null +++ b/tests/codegen/instrument-xray/basic.rs @@ -0,0 +1,8 @@ +// Checks that `-Z instrument-xray` produces expected instrumentation. +// +// compile-flags: -Z instrument-xray=always + +#![crate_type = "lib"] + +// CHECK: attributes #{{.*}} "function-instrument"="xray-always" +pub fn function() {} diff --git a/tests/codegen/instrument-xray/options-combine.rs b/tests/codegen/instrument-xray/options-combine.rs new file mode 100644 index 00000000000..0c1992318f5 --- /dev/null +++ b/tests/codegen/instrument-xray/options-combine.rs @@ -0,0 +1,11 @@ +// Checks that `-Z instrument-xray` options can be specified multiple times. +// +// compile-flags: -Z instrument-xray=skip-exit +// compile-flags: -Z instrument-xray=instruction-threshold=123 +// compile-flags: -Z instrument-xray=instruction-threshold=456 + +#![crate_type = "lib"] + +// CHECK: attributes #{{.*}} "xray-instruction-threshold"="456" "xray-skip-exit" +// CHECK-NOT: attributes #{{.*}} "xray-instruction-threshold"="123" +pub fn function() {} diff --git a/tests/codegen/instrument-xray/options-override.rs b/tests/codegen/instrument-xray/options-override.rs new file mode 100644 index 00000000000..3a7c37f9006 --- /dev/null +++ b/tests/codegen/instrument-xray/options-override.rs @@ -0,0 +1,10 @@ +// Checks that the last `-Z instrument-xray` option wins. +// +// compile-flags: -Z instrument-xray=always +// compile-flags: -Z instrument-xray=never + +#![crate_type = "lib"] + +// CHECK: attributes #{{.*}} "function-instrument"="xray-never" +// CHECK-NOT: attributes #{{.*}} "function-instrument"="xray-always" +pub fn function() {} |
