From 46fa9f2d9ee9da4646581f5bd8e42216ddc762b9 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Wed, 11 Jun 2014 09:23:25 +0000 Subject: [PATCH] [asan] One more coverage test. Test that coverage is dumped correctly (and completely) even when the processed gets SIGKILL-ed. llvm-svn: 210647 --- .../TestCases/Android/coverage-android.cc | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/compiler-rt/test/asan/TestCases/Android/coverage-android.cc b/compiler-rt/test/asan/TestCases/Android/coverage-android.cc index d4ea90c48e5e..071a2e3e1faa 100644 --- a/compiler-rt/test/asan/TestCases/Android/coverage-android.cc +++ b/compiler-rt/test/asan/TestCases/Android/coverage-android.cc @@ -1,16 +1,35 @@ // Test for direct coverage writing with dlopen. + +// Test normal exit. // RUN: %clangxx_asan -mllvm -asan-coverage=1 -DSHARED %s -shared -o %T/libcoverage_android_test_1.so -fPIC // RUN: %clangxx_asan -mllvm -asan-coverage=1 -DSO_DIR=\"%device\" %s -o %t -// RUN: adb shell rm -rf %device/coverage-direct -// RUN: rm -rf %T/coverage-direct +// RUN: adb shell rm -rf %device/coverage-android +// RUN: rm -rf %T/coverage-android -// RUN: adb shell mkdir -p %device/coverage-direct/direct -// RUN: mkdir -p %T/coverage-direct/direct -// RUN: ASAN_OPTIONS=coverage=1:coverage_direct=1:coverage_dir=%device/coverage-direct/direct:verbosity=1 %run %t -// RUN: adb pull %device/coverage-direct/direct %T/coverage-direct/direct +// RUN: adb shell mkdir -p %device/coverage-android/direct +// RUN: mkdir -p %T/coverage-android/direct +// RUN: ASAN_OPTIONS=coverage=1:coverage_direct=1:coverage_dir=%device/coverage-android/direct:verbosity=1 %run %t +// RUN: adb pull %device/coverage-android/direct %T/coverage-android/direct // RUN: ls; pwd -// RUN: cd %T/coverage-direct/direct +// RUN: cd %T/coverage-android/direct +// RUN: %sancov rawunpack *.sancov.raw +// RUN: %sancov print *.sancov |& FileCheck %s + + +// Test sudden death. +// RUN: %clangxx_asan -mllvm -asan-coverage=1 -DSHARED -DKILL %s -shared -o %T/libcoverage_android_test_1.so -fPIC +// RUN: %clangxx_asan -mllvm -asan-coverage=1 -DSO_DIR=\"%device\" %s -o %t + +// RUN: adb shell rm -rf %device/coverage-android-kill +// RUN: rm -rf %T/coverage-android-kill + +// RUN: adb shell mkdir -p %device/coverage-android-kill/direct +// RUN: mkdir -p %T/coverage-android-kill/direct +// RUN: ASAN_OPTIONS=coverage=1:coverage_direct=1:coverage_dir=%device/coverage-android-kill/direct:verbosity=1 not %run %t +// RUN: adb pull %device/coverage-android-kill/direct %T/coverage-android-kill/direct +// RUN: ls; pwd +// RUN: cd %T/coverage-android-kill/direct // RUN: %sancov rawunpack *.sancov.raw // RUN: %sancov print *.sancov |& FileCheck %s @@ -18,10 +37,17 @@ #include #include #include +#include +#include #ifdef SHARED extern "C" { -void bar() { printf("bar\n"); } +void bar() { + printf("bar\n"); +#ifdef KILL + kill(getpid(), SIGKILL); +#endif +} } #else