06f4903b5d2c37c4a38d792229d181038f89eb37
[resolv_wrapper.git] / tests / CMakeLists.txt
1 project(tests C)
2
3 include_directories(
4   ${CMAKE_BINARY_DIR}
5   ${CMAKE_CURRENT_SOURCE_DIR}
6   ${CMAKE_SOURCE_DIR}/src
7   ${CMOCKA_INCLUDE_DIR}
8 )
9
10 set(TORTURE_LIBRARY torture)
11
12 # A simple DNS server for testing
13 add_executable(dns_srv dns_srv.c)
14 target_link_libraries(dns_srv ${RWRAP_REQUIRED_LIBRARIES})
15
16 add_library(${TORTURE_LIBRARY} STATIC torture.c)
17 target_link_libraries(${TORTURE_LIBRARY}
18     ${CMOCKA_LIBRARY}
19     ${SWRAP_REQUIRED_LIBRARIES})
20
21
22 set(TESTSUITE_LIBRARIES ${RWRAP_REQUIRED_LIBRARIES} ${CMOCKA_LIBRARY})
23 if (HAVE_LIBRESOLV)
24     set(TESTSUITE_LIBRARIES ${TESTSUITE_LIBRARIES} resolv)
25 endif()
26
27 set(RWRAP_TESTS
28     test_res_init)
29
30 set(PRELOAD_LIBS ${RESOLV_WRAPPER_LOCATION})
31
32 # Some tests require socket_wrapper as well.
33 find_package(socket_wrapper)
34 if (HAVE_LIBRESOLV AND SOCKET_WRAPPER_LIBRARY)
35     set(RWRAP_TESTS ${RWRAP_TESTS} test_res_query_search)
36     set(PRELOAD_LIBS ${RESOLV_WRAPPER_LOCATION}:${SOCKET_WRAPPER_LIBRARY})
37 endif()
38
39 foreach(_RWRAP_TEST ${RWRAP_TESTS})
40     add_cmocka_test(${_RWRAP_TEST} ${_RWRAP_TEST}.c ${TORTURE_LIBRARY} ${TESTSUITE_LIBRARIES})
41
42     if (OSX)
43         set_property(
44             TEST
45                 ${_RWRAP_TEST}
46             PROPERTY
47                 ENVIRONMENT DYLD_FORCE_FLAT_NAMESPACE=1;DYLD_INSERT_LIBRARIES=${PRELOAD_LIBS})
48     else ()
49         set_property(
50             TEST
51                 ${_RWRAP_TEST}
52             PROPERTY
53                 ENVIRONMENT LD_PRELOAD=${PRELOAD_LIBS})
54     endif()
55 endforeach()