aboutsummaryrefslogtreecommitdiffstats
path: root/tests/CMakeLists.txt
blob: 08c8d5419d030432eeab8a61b58f16ddf1098b9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Initializing google test
# prevents overriding the parent project's compiler/linter settings on windows
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(BUILD_GTEST ON CACHE BOOL "" FORCE)
set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)

# Add googletest directly to our build. This defines
# the gtest and gtest_main targets.
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/external/googletest)

# enable tests
enable_testing()
set(SIMULATION_RUNS 1000)

function(make_test test_file_name cycles)
  string(REPLACE "_test.cpp" "" test_name ${test_file_name})
  add_executable("${test_name}test" ${test_file_name})
  target_link_libraries("${test_name}test"
    gtest_main
    yage)
  add_test(NAME ${test_name} COMMAND "${test_name}test" --gtest_repeat=${cycles} --gtest_break_on_failure)
endfunction(make_test)

file(GLOB YAGE_TEST_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *_test.cpp)

foreach(yage_test ${YAGE_TEST_SOURCES})
  make_test(${yage_test} 100)
endforeach()