diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6ffb38f..22817be 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -31,13 +31,20 @@ 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 @@ -45,8 +52,14 @@ endfunction(add_testcase) 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 +) + diff --git a/tests/asan_test.cpp b/tests/asan_test.cpp index 4b276de..6c0a370 100644 --- a/tests/asan_test.cpp +++ b/tests/asan_test.cpp @@ -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