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
	 Andrey Dotsenko
					Andrey Dotsenko