mirror of
https://github.com/ToruNiina/toml11.git
synced 2024-11-09 22:30:07 +00:00
chore: add option to use sanitizers
This commit is contained in:
parent
b1827e6fca
commit
a0c5192b74
@ -11,6 +11,8 @@ set(toml11_VERSION
|
|||||||
)
|
)
|
||||||
|
|
||||||
option(toml11_BUILD_TEST "Build toml tests" ON)
|
option(toml11_BUILD_TEST "Build toml tests" ON)
|
||||||
|
option(toml11_TEST_WITH_ASAN "use LLVM address sanitizer" OFF)
|
||||||
|
option(toml11_TEST_WITH_UBSAN "use LLVM undefined behavior sanitizer" OFF)
|
||||||
|
|
||||||
include(CheckCXXCompilerFlag)
|
include(CheckCXXCompilerFlag)
|
||||||
if("${CMAKE_VERSION}" VERSION_GREATER 3.1)
|
if("${CMAKE_VERSION}" VERSION_GREATER 3.1)
|
||||||
|
@ -104,6 +104,19 @@ foreach(TEST_NAME ${TEST_NAMES})
|
|||||||
add_executable(${TEST_NAME} ${TEST_NAME}.cpp)
|
add_executable(${TEST_NAME} ${TEST_NAME}.cpp)
|
||||||
target_link_libraries(${TEST_NAME} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} toml11::toml11)
|
target_link_libraries(${TEST_NAME} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} toml11::toml11)
|
||||||
target_include_directories(${TEST_NAME} PRIVATE ${Boost_INCLUDE_DIRS})
|
target_include_directories(${TEST_NAME} PRIVATE ${Boost_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||||
|
if(toml11_TEST_WITH_ASAN)
|
||||||
|
set_target_properties(${TEST_NAME} PROPERTIES
|
||||||
|
COMPILE_FLAGS "-fsanitize=address -fno-omit-frame-pointer"
|
||||||
|
LINK_FLAGS "-fsanitize=address -fno-omit-frame-pointer")
|
||||||
|
elseif(toml11_TEST_WITH_UBSAN)
|
||||||
|
set_target_properties(${TEST_NAME} PROPERTIES
|
||||||
|
COMPILE_FLAGS "-fsanitize=undefined"
|
||||||
|
LINK_FLAGS "-fsanitize=undefined")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
|
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||||
|
|
||||||
# Set the PATH to be able to find Boost DLL
|
# Set the PATH to be able to find Boost DLL
|
||||||
|
Loading…
Reference in New Issue
Block a user