From 6f451ad0cf7cb04dbee07a5c8cee5bf651f96a90 Mon Sep 17 00:00:00 2001 From: Andrey Dotsenko <9fcc.dev@gmail.com> Date: Fri, 24 Aug 2018 17:56:13 +0300 Subject: [PATCH] Force ASAN with tests and make them passed when failed --- tests/CMakeLists.txt | 19 ++++++++++++++++--- tests/asan_test.cpp | 3 ++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6ffb38f..22817be 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -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 +) + 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