[asan] One more coverage test.
Test that coverage is dumped correctly (and completely) even when the processed gets SIGKILL-ed. llvm-svn: 210647
This commit is contained in:
		
							parent
							
								
									125a302257
								
							
						
					
					
						commit
						46fa9f2d9e
					
				| 
						 | 
					@ -1,16 +1,35 @@
 | 
				
			||||||
// Test for direct coverage writing with dlopen.
 | 
					// 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 -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: %clangxx_asan -mllvm -asan-coverage=1 -DSO_DIR=\"%device\" %s -o %t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RUN: adb shell rm -rf %device/coverage-direct
 | 
					// RUN: adb shell rm -rf %device/coverage-android
 | 
				
			||||||
// RUN: rm -rf %T/coverage-direct
 | 
					// RUN: rm -rf %T/coverage-android
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RUN: adb shell mkdir -p %device/coverage-direct/direct
 | 
					// RUN: adb shell mkdir -p %device/coverage-android/direct
 | 
				
			||||||
// RUN: mkdir -p %T/coverage-direct/direct
 | 
					// RUN: mkdir -p %T/coverage-android/direct
 | 
				
			||||||
// RUN: ASAN_OPTIONS=coverage=1:coverage_direct=1:coverage_dir=%device/coverage-direct/direct:verbosity=1 %run %t
 | 
					// RUN: ASAN_OPTIONS=coverage=1:coverage_direct=1:coverage_dir=%device/coverage-android/direct:verbosity=1 %run %t
 | 
				
			||||||
// RUN: adb pull %device/coverage-direct/direct %T/coverage-direct/direct
 | 
					// RUN: adb pull %device/coverage-android/direct %T/coverage-android/direct
 | 
				
			||||||
// RUN: ls; pwd
 | 
					// 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 rawunpack *.sancov.raw
 | 
				
			||||||
// RUN: %sancov print *.sancov |& FileCheck %s
 | 
					// RUN: %sancov print *.sancov |& FileCheck %s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,10 +37,17 @@
 | 
				
			||||||
#include <dlfcn.h>
 | 
					#include <dlfcn.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef SHARED
 | 
					#ifdef SHARED
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
void bar() { printf("bar\n"); }
 | 
					void bar() {
 | 
				
			||||||
 | 
					  printf("bar\n");
 | 
				
			||||||
 | 
					#ifdef KILL
 | 
				
			||||||
 | 
					  kill(getpid(), SIGKILL);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue