CMakeLists.txt 3.55 KB
Newer Older
1 2 3 4 5 6 7 8 9
# CMake build script for ZeroMQ tests

set(tests
        test_system
        test_pair_inproc
        test_pair_tcp
        test_reqrep_inproc
        test_reqrep_tcp
        test_hwm
10
        test_hwm_pubsub
11 12 13 14
        test_reqrep_device
        test_sub_forward
        test_invalid_rep
        test_msg_flags
15
        test_msg_ffn
16 17 18 19 20 21 22 23 24 25
        test_connect_resolve
        test_immediate
        test_last_endpoint
        test_term_endpoint
        test_router_mandatory
        test_probe_router
        test_stream
        test_stream_empty
        test_stream_disconnect
        test_disconnect_inproc
Dylan Cali's avatar
Dylan Cali committed
26 27
        test_unbind_inproc
        test_unbind_wildcard
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
        test_ctx_options
        test_ctx_destroy
        test_security_null
        test_security_plain
        test_security_curve
        test_iov
        test_spec_req
        test_spec_rep
        test_spec_dealer
        test_spec_router
        test_spec_pushpull
        test_req_correlate
        test_req_relaxed
        test_conflate
        test_inproc_connect
        test_issue_566
        test_shutdown_stress
        test_timeo
        test_many_sockets
        test_diffserv
        test_connect_rid
49
        test_xpub_nodrop
50
        test_pub_invert_matching
51 52
        test_thread_safe
        test_client_server
53
        test_setsockopt
54
        test_sockopt_hwm
Jonathan Reams's avatar
Jonathan Reams committed
55
        test_heartbeats
56
        test_poller
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
        test_atomics
        test_bind_src_address
        test_capabilities
        test_ipc_wildcard
        test_metadata
        test_pair_tipc
        test_reqrep_device_tipc
        test_reqrep_tipc
        test_router_handover
        test_router_mandatory_tipc
        test_srcfd
        test_stream_timeout
        test_sub_forward_tipc
        test_xpub_manual
        test_xpub_welcome_msg
somdoron's avatar
somdoron committed
72
        test_timers
73
        test_large_msg
somdoron's avatar
somdoron committed
74
        test_radio_dish
75
        test_udp
76 77 78 79 80 81 82 83
)
if(NOT WIN32)
  list(APPEND tests
          test_monitor
          test_pair_ipc
          test_reqrep_ipc
          test_abstract_ipc
          test_proxy
84
          test_proxy_single_socket
85
          test_proxy_terminate
86
          test_getsockopt_memset
87
          test_filter_ipc
88 89 90 91 92
          test_connect_delay_tipc
          test_shutdown_stress_tipc
          test_stream_exceeds_buffer
          test_router_mandatory_hwm
          test_term_endpoint_tipc
93 94
          test_use_fd_ipc
          test_use_fd_tcp
95 96 97 98 99
  )
  if(HAVE_FORK)
    list(APPEND tests test_fork)
  endif()
endif()
Ilya Kulakov's avatar
Ilya Kulakov committed
100 101 102 103 104 105 106

if(WITH_VMCI)
  list(APPEND tests
          test_pair_vmci
          test_reqrep_vmci
  )
endif()
107 108

foreach(test ${tests})
Doron Somech's avatar
Doron Somech committed
109
  add_executable(${test} ${test}.cpp)
110
  target_include_directories(${test} PRIVATE "${CMAKE_SOURCE_DIR}/src")
Doron Somech's avatar
Doron Somech committed
111
  target_link_libraries(${test} libzmq)
112 113

  if(RT_LIBRARY)
Doron Somech's avatar
Doron Somech committed
114
    target_link_libraries(${test} ${RT_LIBRARY} )
115 116
  endif()
  if(WIN32)
Doron Somech's avatar
Doron Somech committed
117
    add_test(NAME ${test} WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} COMMAND ${test})
118
  else()
Doron Somech's avatar
Doron Somech committed
119
    add_test(NAME ${test} COMMAND ${test})
120
  endif()
121
  set_tests_properties(${test} PROPERTIES TIMEOUT 10)
122 123 124 125 126 127 128 129
endforeach()

if(NOT WIN32)
  if(NOT CMAKE_SYSTEM_NAME MATCHES "Linux")
    set_tests_properties(test_abstract_ipc PROPERTIES WILL_FAIL true)
  endif()
endif()

130 131 132 133 134 135 136 137 138 139
#Check whether all tests in the current folder are present
file(READ "${CMAKE_CURRENT_LIST_FILE}" CURRENT_LIST_FILE_CONTENT)
file(GLOB ALL_TEST_SOURCES "test_*.cpp")
foreach(TEST_SOURCE ${ALL_TEST_SOURCES})
  get_filename_component(TESTNAME "${TEST_SOURCE}" NAME_WE)
  string(REGEX MATCH "${TESTNAME}" MATCH_TESTNAME "${CURRENT_LIST_FILE_CONTENT}")
  if (NOT MATCH_TESTNAME)
    message(AUTHOR_WARNING "Test '${TESTNAME}' is not known to CTest.")
  endif()
endforeach()