1set(COMMON_TEST_INCLUDES 2 ${CMAKE_SOURCE_DIR}/include 3 ${CMAKE_SOURCE_DIR}/src 4 ${CMAKE_SOURCE_DIR}/uthash 5) 6 7set(COMMON_TEST_LIBS ucl) 8 9set(TEST_ENV_VARS 10 "TEST_DIR=${CMAKE_SOURCE_DIR}/tests" 11 "TEST_OUT_DIR=${CMAKE_BINARY_DIR}/tests" 12 "TEST_BINARY_DIR=${CMAKE_BINARY_DIR}/tests" 13) 14 15macro(add_ucl_test testname sourcefile wrapper) 16 add_executable(${testname} ${sourcefile}) 17 target_include_directories(${testname} PRIVATE ${COMMON_TEST_INCLUDES}) 18 target_link_libraries(${testname} PRIVATE ${COMMON_TEST_LIBS}) 19 IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") 20 add_test(NAME ${testname} COMMAND ${CMAKE_SOURCE_DIR}/tests/${wrapper}) 21 set_tests_properties(${testname} PROPERTIES ENVIRONMENT "${TEST_ENV_VARS}") 22 ENDIF() 23endmacro() 24 25# Build test binaries always (not just for testing) 26add_ucl_test(test_basic test_basic.c basic.test) 27add_ucl_test(test_speed test_speed.c speed.test) 28add_ucl_test(test_schema test_schema.c schema.test) 29add_ucl_test(test_msgpack test_msgpack.c msgpack.test) 30add_ucl_test(test_generate test_generate.c generate.test) 31 32