2016-05-19 23:28:12 +02:00
|
|
|
##############################################################################
|
|
|
|
# Unit Tests
|
|
|
|
##############################################################################
|
|
|
|
|
2017-10-26 01:47:29 +02:00
|
|
|
find_package(Boost COMPONENTS filesystem unit_test_framework system REQUIRED)
|
2016-05-19 23:28:12 +02:00
|
|
|
|
2017-10-27 05:41:19 +02:00
|
|
|
set(TESTS
|
|
|
|
Animation
|
|
|
|
Archive
|
|
|
|
Buoyancy
|
|
|
|
Character
|
|
|
|
Chase
|
|
|
|
Config
|
|
|
|
Cutscene
|
|
|
|
Data
|
|
|
|
FileIndex
|
|
|
|
GameData
|
|
|
|
GameWorld
|
|
|
|
Input
|
|
|
|
Items
|
|
|
|
Lifetime
|
|
|
|
LoaderDFF
|
|
|
|
LoaderIPL
|
|
|
|
Logger
|
|
|
|
Menu
|
|
|
|
Object
|
|
|
|
ObjectData
|
|
|
|
Pickup
|
|
|
|
Renderer
|
|
|
|
RWBStream
|
|
|
|
SaveGame
|
|
|
|
ScriptMachine
|
|
|
|
State
|
|
|
|
Text
|
|
|
|
TrafficDirector
|
|
|
|
Vehicle
|
|
|
|
VisualFX
|
|
|
|
Weapon
|
|
|
|
World
|
|
|
|
ZoneData
|
|
|
|
)
|
|
|
|
|
2016-04-15 02:06:10 +02:00
|
|
|
set(TEST_SOURCES
|
2017-10-26 01:03:15 +02:00
|
|
|
main.cpp
|
2017-10-26 03:51:24 +02:00
|
|
|
test_Globals.cpp
|
|
|
|
test_Globals.hpp
|
2016-05-20 03:09:22 +02:00
|
|
|
|
2017-10-26 01:03:15 +02:00
|
|
|
# Hack in rwgame sources until there's a per-target test suite
|
|
|
|
"${CMAKE_SOURCE_DIR}/rwgame/GameConfig.cpp"
|
|
|
|
"${CMAKE_SOURCE_DIR}/rwgame/GameWindow.cpp"
|
|
|
|
"${CMAKE_SOURCE_DIR}/rwgame/GameInput.cpp"
|
|
|
|
)
|
2013-09-11 13:10:42 +02:00
|
|
|
|
2017-10-27 05:41:19 +02:00
|
|
|
foreach(TEST ${TESTS})
|
|
|
|
list(APPEND TEST_SOURCES "test_${TEST}.cpp")
|
|
|
|
endforeach()
|
|
|
|
|
2017-11-05 02:32:08 +01:00
|
|
|
add_executable(rwtests
|
2017-10-27 05:41:19 +02:00
|
|
|
${TEST_SOURCES}
|
|
|
|
)
|
2013-09-11 13:10:42 +02:00
|
|
|
|
2017-11-05 02:32:08 +01:00
|
|
|
target_compile_definitions(rwtests
|
2017-10-26 00:44:45 +02:00
|
|
|
PRIVATE
|
|
|
|
"RW_TEST_WITH_DATA=$<NOT:$<BOOL:${TESTS_NODATA}>>"
|
|
|
|
)
|
2013-09-11 13:10:42 +02:00
|
|
|
|
2017-11-05 02:57:28 +01:00
|
|
|
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
|
|
target_compile_definitions(rwtests
|
|
|
|
PRIVATE
|
|
|
|
"BOOST_TEST_DYN_LINK"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2017-11-05 02:32:08 +01:00
|
|
|
target_include_directories(rwtests
|
2017-10-26 00:44:45 +02:00
|
|
|
SYSTEM
|
|
|
|
PRIVATE
|
2017-10-26 01:47:29 +02:00
|
|
|
${Boost_INCLUDE_DIRS}
|
2017-10-26 00:44:45 +02:00
|
|
|
)
|
|
|
|
|
2017-11-05 02:32:08 +01:00
|
|
|
target_include_directories(rwtests
|
2017-10-26 00:44:45 +02:00
|
|
|
PRIVATE
|
2017-10-26 01:03:15 +02:00
|
|
|
"${CMAKE_SOURCE_DIR}/tests"
|
|
|
|
"${CMAKE_SOURCE_DIR}/rwgame"
|
2017-10-26 00:44:45 +02:00
|
|
|
)
|
2013-09-11 13:10:42 +02:00
|
|
|
|
2017-11-05 02:32:08 +01:00
|
|
|
target_link_libraries(rwtests
|
2017-10-26 01:03:15 +02:00
|
|
|
PRIVATE
|
|
|
|
rwengine
|
2017-10-26 01:47:29 +02:00
|
|
|
SDL2::SDL2
|
2017-10-26 01:47:29 +02:00
|
|
|
${Boost_FILESYSTEM_LIBRARY}
|
2017-10-26 01:03:15 +02:00
|
|
|
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
|
2017-10-26 01:47:29 +02:00
|
|
|
${Boost_SYSTEM_LIBRARY}
|
2017-10-26 01:03:15 +02:00
|
|
|
)
|
2013-09-11 13:10:42 +02:00
|
|
|
|
2017-11-05 02:32:08 +01:00
|
|
|
openrw_target_apply_options(TARGET rwtests)
|
2017-10-29 07:37:18 +01:00
|
|
|
|
2017-11-03 23:59:02 +01:00
|
|
|
if(SEPARATE_TEST_SUITES)
|
2017-10-27 05:41:19 +02:00
|
|
|
foreach(TEST ${TESTS})
|
|
|
|
add_test(
|
|
|
|
NAME "${TEST}"
|
2017-11-05 02:32:08 +01:00
|
|
|
COMMAND "$<TARGET_FILE:rwtests>" "-t" "${TEST}Tests"
|
2017-10-27 05:41:19 +02:00
|
|
|
)
|
|
|
|
set_tests_properties("${TEST}"
|
|
|
|
PROPERTIES
|
2017-10-28 17:20:48 +02:00
|
|
|
TIMEOUT 300
|
2017-10-27 05:41:19 +02:00
|
|
|
)
|
|
|
|
endforeach()
|
|
|
|
else()
|
|
|
|
add_test(NAME UnitTests
|
2017-11-05 02:32:08 +01:00
|
|
|
COMMAND "$<TARGET_FILE:rwtests>"
|
2017-10-27 05:41:19 +02:00
|
|
|
)
|
|
|
|
set_tests_properties(UnitTests
|
|
|
|
PROPERTIES
|
2017-10-28 17:02:20 +02:00
|
|
|
TIMEOUT 300
|
2017-10-27 05:41:19 +02:00
|
|
|
)
|
|
|
|
endif()
|