aboutsummaryrefslogtreecommitdiff
path: root/test/tools/sancov/Inputs/test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/tools/sancov/Inputs/test.cpp')
-rw-r--r--test/tools/sancov/Inputs/test.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/tools/sancov/Inputs/test.cpp b/test/tools/sancov/Inputs/test.cpp
new file mode 100644
index 000000000000..5690409a2781
--- /dev/null
+++ b/test/tools/sancov/Inputs/test.cpp
@@ -0,0 +1,19 @@
+// compile & generate coverage data using:
+// clang++ -g -o test-linux_x86_64 -fsanitize=address -fsanitize-coverage=bb test.cpp foo.cpp
+// ASAN_OPTIONS="coverage=1" ./test-linux_x86_64 && mv test-linux_x86_64.*.sancov test-linux_x86_64.sancov
+// ASAN_OPTIONS="coverage=1" ./test-linux_x86_64 1 && mv test-linux_x86_64.*.sancov test-linux_x86_64-1.sancov
+
+#include <stdio.h>
+#include <string>
+
+void foo();
+
+__attribute__((noinline))
+std::string bar(std::string str) { printf("bar\n"); return str; }
+
+int main(int argc, char **argv) {
+ if (argc == 2)
+ foo();
+ bar("str");
+ printf("main\n");
+}