CMakeLists.txt 1.76 KB
Newer Older
1
set(UNITTEST_SOURCES
miloyip's avatar
miloyip committed
2
	allocatorstest.cpp
3
    bigintegertest.cpp
4 5 6 7
    documenttest.cpp
    encodedstreamtest.cpp
    encodingstest.cpp
    filestreamtest.cpp
miloyip's avatar
miloyip committed
8
    itoatest.cpp
9
    jsoncheckertest.cpp
10
    namespacetest.cpp
11
    pointertest.cpp
miloyip's avatar
miloyip committed
12
    prettywritertest.cpp
13
    readertest.cpp
14
	simdtest.cpp
15 16
    stringbuffertest.cpp
    strtodtest.cpp
17 18 19 20
    unittest.cpp
    valuetest.cpp
    writertest.cpp)

21
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
22
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Weffc++ -Wswitch-default -Wfloat-equal")
23
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
24
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Weffc++ -Wswitch-default -Wfloat-equal -Wimplicit-fallthrough")
25
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
26
    add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)
27 28
endif()

29 30
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRAPIDJSON_HAS_STDSTRING=1")

31 32
add_library(namespacetest STATIC namespacetest.cpp)

33
add_executable(unittest ${UNITTEST_SOURCES})
34
target_link_libraries(unittest ${TEST_LIBRARIES} namespacetest)
35 36 37

add_dependencies(tests unittest)

38
add_test(NAME unittest
39
    COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest
40
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
41

42
if(NOT MSVC)
43
    # Not running SIMD.* unit test cases for Valgrind
44
    add_test(NAME valgrind_unittest
45
        COMMAND valgrind --leak-check=full --error-exitcode=1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest --gtest_filter=-SIMD.*
46 47 48 49 50 51 52
        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)

    if(CMAKE_BUILD_TYPE STREQUAL "Debug")
        add_test(NAME symbol_check
        COMMAND sh -c "objdump -t -C libnamespacetest.a | grep rapidjson ; test $? -ne 0"
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
    endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
53

54
endif(NOT MSVC)