PageRenderTime 27ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/qpid/cpp/src/tests/CMakeLists.txt

https://github.com/grkvlt/qpid
CMake | 356 lines | 193 code | 46 blank | 117 comment | 11 complexity | 4d597d2b00396807c1851b38aa7fcea6 MD5 | raw file
  1. #
  2. # Licensed to the Apache Software Foundation (ASF) under one
  3. # or more contributor license agreements. See the NOTICE file
  4. # distributed with this work for additional information
  5. # regarding copyright ownership. The ASF licenses this file
  6. # to you under the Apache License, Version 2.0 (the
  7. # "License"); you may not use this file except in compliance
  8. # with the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing,
  13. # software distributed under the License is distributed on an
  14. # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. # KIND, either express or implied. See the License for the
  16. # specific language governing permissions and limitations
  17. # under the License.
  18. #
  19. # Enable dashboard reporting.
  20. include (CTest)
  21. # Make sure that everything get built before the tests
  22. # Need to create a var with all the necessary top level targets
  23. add_definitions(-DBOOST_TEST_DYN_LINK)
  24. include_directories( ${CMAKE_CURRENT_SOURCE_DIR} )
  25. include (FindPythonInterp)
  26. # Create the environment scripts for tests
  27. set (abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
  28. set (abs_builddir ${CMAKE_CURRENT_BINARY_DIR})
  29. set (abs_top_srcdir ${CMAKE_SOURCE_DIR})
  30. set (abs_top_builddir ${CMAKE_BINARY_DIR})
  31. set (builddir_lib_suffix "")
  32. configure_file (${CMAKE_CURRENT_SOURCE_DIR}/test_env.sh.in
  33. ${CMAKE_CURRENT_BINARY_DIR}/test_env.sh)
  34. # If valgrind is selected in the configuration step, set up the path to it
  35. # for CTest.
  36. if (ENABLE_VALGRIND)
  37. set (MEMORYCHECK_COMMAND ${VALGRIND})
  38. set (MEMORYCHECK_COMMAND_OPTIONS "--gen-suppressions=all
  39. --leak-check=full
  40. --demangle=yes
  41. --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/.valgrind.supp
  42. --num-callers=25
  43. --log-file=ctest_valgrind.vglog")
  44. endif (ENABLE_VALGRIND)
  45. # Using the Boost DLLs triggers warning 4275 on Visual Studio
  46. # (non dll-interface class used as base for dll-interface class).
  47. # This is ok, so suppress the warning.
  48. # Also, boost lengthy names trigger warning 4503, decorated name length exceeded
  49. # and using getenv() triggers insecure CRT warnings which we can silence in the
  50. # test environment.
  51. if (MSVC)
  52. add_definitions( /wd4275 /wd4503 /D_CRT_SECURE_NO_WARNINGS)
  53. endif (MSVC)
  54. # Like this to work with cmake 2.4 on Unix
  55. set (qpid_test_boost_libs
  56. ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${Boost_SYSTEM_LIBRARY})
  57. # Macro to make it easier to remember where the tests are built
  58. macro(remember_location testname)
  59. set (${testname}_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${testname}${CMAKE_EXECUTABLE_SUFFIX})
  60. endmacro(remember_location)
  61. # Windows uses some process-startup calls to ensure that errors, etc. don't
  62. # result in error boxes being thrown up. Since it's expected that most test
  63. # runs will be in scripts, the default is to force these outputs to stderr
  64. # instead of windows. If you want to remove this code, build without the
  65. # QPID_WINDOWS_DEFAULT_TEST_OUTPUTS ON.
  66. if (CMAKE_SYSTEM_NAME STREQUAL Windows)
  67. option(QPID_WINDOWS_DEFAULT_TEST_OUTPUTS "Use default error-handling on Windows tests" OFF)
  68. if (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS)
  69. set(platform_test_additions windows/DisableWin32ErrorWindows.cpp)
  70. endif (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS)
  71. endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
  72. #
  73. # Unit test program
  74. #
  75. # Unit tests are built as a single program to reduce valgrind overhead
  76. # when running the tests. If you want to build a subset of the tests run
  77. # ccmake and set unit_tests_to_build to the set you want to build.
  78. set(unit_tests_to_build
  79. exception_test
  80. RefCounted
  81. SessionState
  82. logging
  83. AsyncCompletion
  84. Url
  85. Uuid
  86. Shlib
  87. FieldValue
  88. FieldTable
  89. Array
  90. QueueOptionsTest
  91. InlineAllocator
  92. InlineVector
  93. ClientSessionTest
  94. MessagingSessionTests
  95. SequenceSet
  96. StringUtils
  97. RangeSet
  98. AtomicValue
  99. QueueTest
  100. AccumulatedAckTest
  101. DtxWorkRecordTest
  102. DeliveryRecordTest
  103. ExchangeTest
  104. HeadersExchangeTest
  105. MessageTest
  106. QueueRegistryTest
  107. QueuePolicyTest
  108. QueueFlowLimitTest
  109. FramingTest
  110. HeaderTest
  111. SequenceNumberTest
  112. TimerTest
  113. TopicExchangeTest
  114. TxBufferTest
  115. TxPublishTest
  116. MessageBuilderTest
  117. ManagementTest
  118. MessageReplayTracker
  119. ConsoleTest
  120. QueueEvents
  121. ProxyTest
  122. RetryList
  123. RateFlowcontrolTest
  124. FrameDecoder
  125. ReplicationTest
  126. ClientMessageTest
  127. PollableCondition
  128. Variant
  129. ClientMessage
  130. ${xml_tests}
  131. CACHE STRING "Which unit tests to build"
  132. )
  133. mark_as_advanced(unit_tests_to_build)
  134. # Disabled till we move to amqp_0_10 codec.
  135. # amqp_0_10/serialize.cpp allSegmentTypes.h \
  136. # amqp_0_10/ProxyTemplate.cpp \
  137. # amqp_0_10/apply.cpp \
  138. # amqp_0_10/Map.cpp \
  139. # amqp_0_10/handlers.cpp
  140. add_executable (unit_test unit_test
  141. ${unit_tests_to_build} ${platform_test_additions})
  142. target_link_libraries (unit_test
  143. ${qpid_test_boost_libs}
  144. qpidmessaging qpidbroker qmfconsole)
  145. remember_location(unit_test)
  146. add_library (shlibtest MODULE shlibtest.cpp)
  147. if (BUILD_CLUSTER)
  148. include (cluster.cmake)
  149. endif (BUILD_CLUSTER)
  150. # FIXME aconway 2009-11-30: enable SSL
  151. #if SSL
  152. #include ssl.mk
  153. #endif
  154. #
  155. # Other test programs
  156. #
  157. add_executable (qpid-perftest qpid-perftest.cpp ${platform_test_additions})
  158. target_link_libraries (qpid-perftest qpidclient)
  159. #qpid_perftest_SOURCES=qpid-perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h
  160. remember_location(qpid-perftest)
  161. add_executable (qpid-txtest qpid-txtest.cpp ${platform_test_additions})
  162. target_link_libraries (qpid-txtest qpidclient)
  163. #qpid_txtest_SOURCES=qpid-txtest.cpp TestOptions.h ConnectionOptions.h
  164. remember_location(qpid-txtest)
  165. add_executable (qpid-latency-test qpid-latency-test.cpp ${platform_test_additions})
  166. target_link_libraries (qpid-latency-test qpidclient)
  167. #qpid_latencytest_SOURCES=qpid-latency-test.cpp TestOptions.h ConnectionOptions.h
  168. remember_location(qpid-latency-test)
  169. add_executable (echotest echotest.cpp ${platform_test_additions})
  170. target_link_libraries (echotest qpidclient)
  171. #echotest_SOURCES=echotest.cpp TestOptions.h ConnectionOptions.h
  172. remember_location(echotest)
  173. add_executable (qpid-client-test qpid-client-test.cpp ${platform_test_additions})
  174. target_link_libraries (qpid-client-test qpidclient)
  175. #qpid_client_test_SOURCES=qpid-client-test.cpp TestOptions.h ConnectionOptions.h
  176. remember_location(qpid-client-test)
  177. add_executable (qpid-topic-listener qpid-topic-listener.cpp ${platform_test_additions})
  178. target_link_libraries (qpid-topic-listener qpidclient)
  179. #qpid_topic_listener_SOURCES=qpid-topic-listener.cpp TestOptions.h ConnectionOptions.h
  180. remember_location(qpid-topic-listener)
  181. add_executable (qpid-topic-publisher qpid-topic-publisher.cpp ${platform_test_additions})
  182. target_link_libraries (qpid-topic-publisher qpidclient)
  183. #qpid_topic_publisher_SOURCES=qpid-topic-publisher.cpp TestOptions.h ConnectionOptions.h
  184. remember_location(qpid-topic-publisher)
  185. add_executable (publish publish.cpp ${platform_test_additions})
  186. target_link_libraries (publish qpidclient)
  187. #publish_SOURCES=publish.cpp TestOptions.h ConnectionOptions.h
  188. remember_location(publish)
  189. add_executable (consume consume.cpp ${platform_test_additions})
  190. target_link_libraries (consume qpidclient)
  191. #consume_SOURCES=consume.cpp TestOptions.h ConnectionOptions.h
  192. remember_location(consume)
  193. add_executable (header_test header_test.cpp ${platform_test_additions})
  194. target_link_libraries (header_test qpidclient)
  195. #header_test_SOURCES=header_test.cpp TestOptions.h ConnectionOptions.h
  196. remember_location(header_test)
  197. add_executable (declare_queues declare_queues.cpp ${platform_test_additions})
  198. target_link_libraries (declare_queues qpidclient)
  199. remember_location(declare_queues)
  200. add_executable (replaying_sender replaying_sender.cpp ${platform_test_additions})
  201. target_link_libraries (replaying_sender qpidclient)
  202. remember_location(replaying_sender)
  203. add_executable (resuming_receiver resuming_receiver.cpp ${platform_test_additions})
  204. target_link_libraries (resuming_receiver qpidclient)
  205. remember_location(resuming_receiver)
  206. add_executable (txshift txshift.cpp ${platform_test_additions})
  207. target_link_libraries (txshift qpidclient)
  208. #txshift_SOURCES=txshift.cpp TestOptions.h ConnectionOptions.h
  209. remember_location(txshift)
  210. add_executable (txjob txjob.cpp ${platform_test_additions})
  211. target_link_libraries (txjob qpidclient)
  212. #txjob_SOURCES=txjob.cpp TestOptions.h ConnectionOptions.h
  213. remember_location(txjob)
  214. add_executable (receiver receiver.cpp ${platform_test_additions})
  215. target_link_libraries (receiver qpidclient)
  216. #receiver_SOURCES=receiver.cpp TestOptions.h ConnectionOptions.h
  217. remember_location(receiver)
  218. add_executable (sender sender.cpp Statistics.cpp ${platform_test_additions})
  219. target_link_libraries (sender qpidmessaging)
  220. #sender_SOURCES=sender.cpp TestOptions.h ConnectionOptions.h
  221. remember_location(sender)
  222. add_executable (qpid-receive qpid-receive.cpp Statistics.cpp ${platform_test_additions})
  223. target_link_libraries (qpid-receive qpidmessaging)
  224. remember_location(qpid-receive)
  225. add_executable (qpid-send qpid-send.cpp Statistics.cpp ${platform_test_additions})
  226. target_link_libraries (qpid-send qpidmessaging)
  227. remember_location(qpid-send)
  228. # qpid-perftest and qpid-latency-test are generally useful so install them
  229. install (TARGETS qpid-perftest qpid-latency-test RUNTIME
  230. DESTINATION ${QPID_INSTALL_BINDIR})
  231. if (CMAKE_SYSTEM_NAME STREQUAL Windows)
  232. set (ENV{OUTDIR} ${EXECUTABLE_OUTPUT_PATH})
  233. set (test_script_suffix ".ps1")
  234. set (shell "powershell")
  235. endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
  236. set(test_wrap ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_test${test_script_suffix})
  237. add_test (unit_test ${test_wrap} ${unit_test_LOCATION})
  238. add_test (start_broker ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/start_broker${test_script_suffix})
  239. add_test (qpid-client-test ${test_wrap} ${qpid-client_test_LOCATION})
  240. add_test (quick_perftest ${test_wrap} ${qpid-perftest_LOCATION} --summary --count 100)
  241. add_test (quick_topictest ${test_wrap} ${CMAKE_CURRENT_SOURCE_DIR}/quick_topictest${test_script_suffix})
  242. add_test (quick_txtest ${test_wrap} ${qpid-txtest_LOCATION} --queues 4 --tx-count 10 --quiet)
  243. if (PYTHON_EXECUTABLE)
  244. add_test (run_header_test ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_header_test${test_script_suffix})
  245. add_test (python_tests ${test_wrap} ${CMAKE_CURRENT_SOURCE_DIR}/python_tests${test_script_suffix})
  246. endif (PYTHON_EXECUTABLE)
  247. add_test (stop_broker ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/stop_broker${test_script_suffix})
  248. if (PYTHON_EXECUTABLE)
  249. add_test (federation_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_federation_tests${test_script_suffix})
  250. if (BUILD_ACL)
  251. add_test (acl_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_acl_tests${test_script_suffix})
  252. endif (BUILD_ACL)
  253. add_test (dynamic_log_level_test ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_log_level_test${test_script_suffix})
  254. if (BUILD_MSSQL)
  255. add_test (store_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_store_tests${test_script_suffix} MSSQL)
  256. endif (BUILD_MSSQL)
  257. if (BUILD_MSCLFS)
  258. add_test (store_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_store_tests${test_script_suffix} MSSQL-CLFS)
  259. endif (BUILD_MSCLFS)
  260. endif (PYTHON_EXECUTABLE)
  261. add_library(test_store MODULE test_store.cpp)
  262. target_link_libraries (test_store qpidbroker qpidcommon)
  263. set_target_properties (test_store PROPERTIES PREFIX "")
  264. #EXTRA_DIST += \
  265. # run_test vg_check \
  266. # run-unit-tests start_broker python_tests stop_broker \
  267. # quick_topictest \
  268. # quick_perftest \
  269. # quick_txtest \
  270. # topictest \
  271. # run_header_test \
  272. # header_test.py \
  273. # ssl_test \
  274. # config.null \
  275. # ais_check \
  276. # run_federation_tests \
  277. # run_acl_tests \
  278. # .valgrind.supp \
  279. # MessageUtils.h \
  280. # TestMessageStore.h \
  281. # TxMocks.h \
  282. # start_cluster stop_cluster restart_cluster
  283. add_library (dlclose_noop MODULE dlclose_noop.c)
  284. #libdlclose_noop_la_LDFLAGS = -module -rpath $(abs_builddir)
  285. #CLEANFILES+=valgrind.out *.log *.vglog* dummy_test $(unit_wrappers)
  286. #
  287. ## FIXME aconway 2008-05-23: Disabled interop_runner because it uses
  288. ## the obsolete Channel class. Convert to Session and re-enable.
  289. ##
  290. ## check_PROGRAMS += interop_runner
  291. #
  292. ## interop_runner_SOURCES = \
  293. ## interop_runner.cpp \
  294. ## SimpleTestCaseBase.cpp \
  295. ## BasicP2PTest.cpp \
  296. ## BasicPubSubTest.cpp \
  297. ## SimpleTestCaseBase.h \
  298. ## BasicP2PTest.h \
  299. ## BasicPubSubTest.h \
  300. ## TestCase.h \
  301. ## TestOptions.h ConnectionOptions.h
  302. ## interop_runner_LDADD = $(lib_client) $(lib_common) $(extra_libs)
  303. #
  304. #
  305. ## Longer running stability tests, not run by default check: target.
  306. ## Not run under valgrind, too slow
  307. #LONG_TESTS=fanout_perftest shared_perftest multiq_perftest topic_perftest run_failover_soak
  308. #EXTRA_DIST+=$(LONG_TESTS) run_perftest
  309. #check-long:
  310. # $(MAKE) check TESTS="start_broker $(LONG_TESTS) stop_broker" VALGRIND=