Skip to content

Commit

Permalink
Add ASAN to test runner
Browse files Browse the repository at this point in the history
  • Loading branch information
Blake-Madden committed Dec 26, 2023
1 parent 0c605d2 commit c2bf0d0
Showing 1 changed file with 29 additions and 27 deletions.
56 changes: 29 additions & 27 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
# License: 3-Clause BSD license
#############################################################################

PROJECT(i18nTestRunner)
project(i18nTestRunner)

CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
SET(CMAKE_CXX_STANDARD 17)
SET(CMAKE_CXX_STANDARD_REQUIRED True)
cmake_minimum_required(VERSION 3.12)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

find_program(CLANG_TIDY_COMMAND
NAMES
Expand All @@ -25,36 +25,38 @@ endif()

# place Catch2 at the same folder level as this repo if it isn't installed
# (you will need to do this on Windows or macOS or if version 3 of Catch2 isn't installed)
GET_FILENAME_COMPONENT(_fullpath "${_dir}" REALPATH)
IF(EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/../../Catch2")
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../../Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)
ELSEIF(EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/../../../Catch2")
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../../../Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)
ELSEIF(EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/../../../../Catch2")
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../../../../Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)
ELSE()
get_filename_component(_fullpath "${_dir}" REALPATH)
if(EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/../../Catch2")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)
elseif(EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/../../../Catch2")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)
elseif(EXISTS "${_fullpath}" AND EXISTS "${_fullpath}/../../../../Catch2")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../../Catch2 ${CMAKE_CURRENT_BINARY_DIR}/Catch2)
else()
# ...otherwise, see if it is installed
FIND_PACKAGE(Catch2 3 REQUIRED)
ENDIF()
find_package(Catch2 3 REQUIRED)
endif()

ADD_COMPILE_OPTIONS("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
ADD_COMPILE_OPTIONS("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)

ADD_EXECUTABLE(${CMAKE_PROJECT_NAME} ../src/i18n_string_util.cpp
add_executable(${CMAKE_PROJECT_NAME} ../src/i18n_string_util.cpp
../src/i18n_review.cpp ../src/cpp_i18n_review.cpp
../src/rc_file_review.cpp
i18nstringtests.cpp stringutiltests.cpp cpptests.cpp
decodetests.cpp rctests.cpp testingmain.cpp)
IF(MSVC)
TARGET_COMPILE_DEFINITIONS(${CMAKE_PROJECT_NAME} PUBLIC _CRT_SECURE_NO_WARNINGS __UNITTEST)
ELSE()
TARGET_COMPILE_DEFINITIONS(${CMAKE_PROJECT_NAME} PUBLIC _CRT_SECURE_NO_WARNINGS __UNITTEST)
ENDIF()
TARGET_LINK_LIBRARIES(${CMAKE_PROJECT_NAME} PRIVATE Catch2::Catch2)
if(MSVC)
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC _CRT_SECURE_NO_WARNINGS __UNITTEST _DISABLE_VECTOR_ANNOTATION _DISABLE_STRING_ANNOTATION)
target_compile_options(${PROJECT_NAME} PUBLIC /MP /W3 /WX
$<$<CONFIG:Debug>:/Od /fsanitize=address> $<$<CONFIG:Release>:/O2>)
else()
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC _CRT_SECURE_NO_WARNINGS __UNITTEST)
endif()
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Catch2::Catch2)

# load the test cases into the runner
INCLUDE(CTest)
INCLUDE(Catch)
CATCH_DISCOVER_TESTS(${CMAKE_PROJECT_NAME})
include(CTest)
include(Catch)
catch_discover_tests(${CMAKE_PROJECT_NAME})

0 comments on commit c2bf0d0

Please sign in to comment.