brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 4831990 Raw
66 lines · cpp
1// RUN: rm -rf %t.dir && mkdir -p %t.dir && cd %t.dir2// RUN: %clangxx_asan -fsanitize-coverage=func,trace-pc-guard -DSHARED %s -shared -o %dynamiclib -fPIC %ld_flags_rpath_so3// RUN: %clangxx_asan -fsanitize-coverage=func,trace-pc-guard %s %ld_flags_rpath_exe -o %t.dir/coverage-reset4// RUN: %env_asan_opts=coverage=1:verbosity=1 %run %t.dir/coverage-reset 2>&1 | FileCheck %s5//6// UNSUPPORTED: ios7 8#include <stdio.h>9 10#include <sanitizer/coverage_interface.h>11 12#ifdef SHARED13void bar1() { printf("bar1\n"); }14void bar2() { printf("bar2\n"); }15#else16__attribute__((noinline)) void foo1() { printf("foo1\n"); }17__attribute__((noinline)) void foo2() { printf("foo2\n"); }18void bar1();19void bar2();20 21int main(int argc, char **argv) {22  fprintf(stderr, "RESET\n");23  __sanitizer_cov_reset();24  foo1();25  foo2();26  bar1();27  bar2();28  __sanitizer_cov_dump();29// CHECK: RESET30// CHECK-DAG: SanitizerCoverage: ./coverage-reset{{.*}}.sancov: 2 PCs written31// CHECK-DAG: SanitizerCoverage: ./libcoverage-reset.cpp{{.*}}.sancov: 2 PCs written32 33  fprintf(stderr, "RESET\n");34  __sanitizer_cov_reset();35  foo1();36  bar1();37  __sanitizer_cov_dump();38// CHECK: RESET39// CHECK-DAG: SanitizerCoverage: ./coverage-reset{{.*}}.sancov: 1 PCs written40// CHECK-DAG: SanitizerCoverage: ./libcoverage-reset.cpp{{.*}}.sancov: 1 PCs written41 42  fprintf(stderr, "RESET\n");43  __sanitizer_cov_reset();44  foo1();45  foo2();46  __sanitizer_cov_dump();47// CHECK: RESET48// CHECK: SanitizerCoverage: ./coverage-reset{{.*}}.sancov: 2 PCs written49 50  fprintf(stderr, "RESET\n");51  __sanitizer_cov_reset();52  bar1();53  bar2();54  __sanitizer_cov_dump();55// CHECK: RESET56// CHECK: SanitizerCoverage: ./libcoverage-reset.cpp{{.*}}.sancov: 2 PCs written57 58  fprintf(stderr, "RESET\n");59  __sanitizer_cov_reset();60// CHECK: RESET61 62  bar2();63// CHECK: SanitizerCoverage: ./libcoverage-reset.cpp{{.*}}.sancov: 1 PCs written64}65#endif66