Force ASAN with tests and make them passed when failed
This commit is contained in:
		@@ -31,22 +31,35 @@ function(add_testcase TESTNAME SOURCEFILES)
 | 
			
		||||
 | 
			
		||||
	# add a new executable
 | 
			
		||||
	add_executable(${TESTNAME} ${ARGV})
 | 
			
		||||
	add_sanitizers(${TESTNAME})
 | 
			
		||||
 | 
			
		||||
	# add a testcase for executable
 | 
			
		||||
	add_test(${TESTNAME} ${TESTNAME})
 | 
			
		||||
endfunction(add_testcase)
 | 
			
		||||
 | 
			
		||||
# Function to add testcases with asan enabled.
 | 
			
		||||
function(add_sanitized_testcase TESTNAME SOURCEFILES)
 | 
			
		||||
	add_testcase(${TESTNAME} ${SOURCEFILES})
 | 
			
		||||
	add_sanitizers(${TESTNAME})
 | 
			
		||||
endfunction(add_sanitized_testcase)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(SANITIZE_ADDRESS TRUE)
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# search for sanitizers
 | 
			
		||||
#
 | 
			
		||||
find_package(Sanitizers)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# add testcases
 | 
			
		||||
#
 | 
			
		||||
add_testcase("asan_test_cpp" asan_test.cpp)
 | 
			
		||||
add_sanitized_testcase("asan_test_cpp" asan_test.cpp)
 | 
			
		||||
 | 
			
		||||
set_tests_properties(
 | 
			
		||||
	"asan_test_cpp"
 | 
			
		||||
PROPERTIES
 | 
			
		||||
	WILL_FAIL TRUE
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,8 @@ int
 | 
			
		||||
main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	// Allocate a new array and delete it.
 | 
			
		||||
	int *array = new int[argc];
 | 
			
		||||
	int *array = new int[argc + 1];
 | 
			
		||||
	array[argc] = 0;
 | 
			
		||||
	delete[] array;
 | 
			
		||||
 | 
			
		||||
	/* Access element of the deleted array. This will cause an memory error with
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user