22function (add_cpp_test TEST_NAME TEST_FILE )
33 add_executable (${TEST_NAME} ${TEST_FILE} )
44 add_test (${TEST_NAME} ${TEST_NAME} )
5+ target_link_libraries (${TEST_NAME} test -data )
56endfunction (add_cpp_test )
67
7- # Sets a target to only build when you run the test, and expect failure
8- function (add_compile_test TEST_NAME TEST_FILE EXPECT_SUCCESS )
9- add_executable (${TEST_NAME} ${TEST_FILE} )
10- set_target_properties (${TEST_NAME} PROPERTIES
11- EXCLUDE_FROM_ALL TRUE
12- EXCLUDE_FROM_DEFAULT_BUILD TRUE )
13- add_test (NAME ${TEST_NAME}
14- COMMAND ${CMAKE_COMMAND} --build . --target ${TEST_NAME} --config $<CONFIGURATION >
15- WORKING_DIRECTORY ${CMAKE_BINARY_DIR} )
16- if (NOT ${EXPECT_SUCCESS} )
17- set_tests_properties (${TEST_NAME} PROPERTIES WILL_FAIL TRUE )
18- endif ()
19- endfunction (add_compile_test )
20-
218#
229# These test explicitly do #include "simdjson.cpp"
2310#
2411if (NOT MSVC ) # Can't get simdjson-source to compile on Windows for some reason.
2512 add_cpp_test (numberparsingcheck numberparsingcheck.cpp )
26- target_link_libraries (numberparsingcheck simdjson-source simdjson-windows-headers )
13+ target_link_libraries (numberparsingcheck simdjson-source test -data simdjson-windows-headers )
2714 add_cpp_test (stringparsingcheck stringparsingcheck.cpp )
28- target_link_libraries (stringparsingcheck simdjson-source simdjson-windows-headers )
15+ target_link_libraries (stringparsingcheck simdjson-source test -data simdjson-windows-headers )
2916endif ()
3017
3118#
3219# All remaining tests link with simdjson proper
3320#
3421link_libraries (simdjson )
3522
36- # add_executable(allparserscheckfile allparserscheckfile.cpp)
3723add_cpp_test (basictests basictests.cpp )
3824add_cpp_test (errortests errortests.cpp )
3925add_cpp_test (integer_tests integer_tests.cpp )
@@ -43,7 +29,28 @@ add_cpp_test(parse_many_test parse_many_test.cpp)
4329target_link_libraries (parse_many_test simdjson-windows-headers )
4430add_cpp_test (pointercheck pointercheck.cpp )
4531
32+ #
33+ # Competition parse test
34+ #
35+ add_executable (allparserscheckfile allparserscheckfile.cpp )
36+ target_link_libraries (allparserscheckfile competition-all )
37+
38+ #
4639# Compile-only tests
40+ #
41+ function (add_compile_test TEST_NAME TEST_FILE EXPECT_SUCCESS )
42+ add_executable (${TEST_NAME} ${TEST_FILE} )
43+ set_target_properties (${TEST_NAME} PROPERTIES
44+ EXCLUDE_FROM_ALL TRUE
45+ EXCLUDE_FROM_DEFAULT_BUILD TRUE )
46+ add_test (NAME ${TEST_NAME}
47+ COMMAND ${CMAKE_COMMAND} --build . --target ${TEST_NAME} --config $<CONFIGURATION >
48+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR} )
49+ if (NOT ${EXPECT_SUCCESS} )
50+ set_tests_properties (${TEST_NAME} PROPERTIES WILL_FAIL TRUE )
51+ endif ()
52+ endfunction (add_compile_test )
53+
4754# Don't add the tests if we're on VS2017 or older; they don't succeed.
4855if (NOT (MSVC AND MSVC_VERSION LESS 1920))
4956 add_compile_test (readme_examples readme_examples.cpp TRUE )
0 commit comments