diff options
author | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
---|---|---|
committer | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
commit | 66765100f4257159622cefe57bed50125a5ad017 (patch) | |
tree | a88ee23bb194eb91f0ebb2d9b23ff423e3ea8e37 /qpid/cpp/src/tests/CMakeLists.txt | |
parent | 1aeaa7b16e5ce54f10c901d75c4d40f9f88b9db6 (diff) | |
parent | 88b98b2f4152ef59a671fad55a0d08338b6b78ca (diff) | |
download | qpid-python-66765100f4257159622cefe57bed50125a5ad017.tar.gz |
Creating a branch for experimenting with some ideas for JMS client.rajith_jms_client
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/rajith_jms_client@1128369 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/CMakeLists.txt')
-rw-r--r-- | qpid/cpp/src/tests/CMakeLists.txt | 356 |
1 files changed, 356 insertions, 0 deletions
diff --git a/qpid/cpp/src/tests/CMakeLists.txt b/qpid/cpp/src/tests/CMakeLists.txt new file mode 100644 index 0000000000..405718f12b --- /dev/null +++ b/qpid/cpp/src/tests/CMakeLists.txt @@ -0,0 +1,356 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Enable dashboard reporting. +include (CTest) + +# Make sure that everything get built before the tests +# Need to create a var with all the necessary top level targets + +add_definitions(-DBOOST_TEST_DYN_LINK) +include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ) + +include (FindPythonInterp) + +# Create the environment scripts for tests +set (abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) +set (abs_builddir ${CMAKE_CURRENT_BINARY_DIR}) +set (abs_top_srcdir ${CMAKE_SOURCE_DIR}) +set (abs_top_builddir ${CMAKE_BINARY_DIR}) +set (builddir_lib_suffix "") +configure_file (${CMAKE_CURRENT_SOURCE_DIR}/test_env.sh.in + ${CMAKE_CURRENT_BINARY_DIR}/test_env.sh) + + +# If valgrind is selected in the configuration step, set up the path to it +# for CTest. +if (ENABLE_VALGRIND) + set (MEMORYCHECK_COMMAND ${VALGRIND}) + set (MEMORYCHECK_COMMAND_OPTIONS "--gen-suppressions=all +--leak-check=full +--demangle=yes +--suppressions=${CMAKE_CURRENT_SOURCE_DIR}/.valgrind.supp +--num-callers=25 +--log-file=ctest_valgrind.vglog") +endif (ENABLE_VALGRIND) + +# Using the Boost DLLs triggers warning 4275 on Visual Studio +# (non dll-interface class used as base for dll-interface class). +# This is ok, so suppress the warning. +# Also, boost lengthy names trigger warning 4503, decorated name length exceeded +# and using getenv() triggers insecure CRT warnings which we can silence in the +# test environment. +if (MSVC) + add_definitions( /wd4275 /wd4503 /D_CRT_SECURE_NO_WARNINGS) +endif (MSVC) + +# Like this to work with cmake 2.4 on Unix +set (qpid_test_boost_libs + ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${Boost_SYSTEM_LIBRARY}) + +# Macro to make it easier to remember where the tests are built +macro(remember_location testname) + set (${testname}_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${testname}${CMAKE_EXECUTABLE_SUFFIX}) +endmacro(remember_location) + +# Windows uses some process-startup calls to ensure that errors, etc. don't +# result in error boxes being thrown up. Since it's expected that most test +# runs will be in scripts, the default is to force these outputs to stderr +# instead of windows. If you want to remove this code, build without the +# QPID_WINDOWS_DEFAULT_TEST_OUTPUTS ON. +if (CMAKE_SYSTEM_NAME STREQUAL Windows) + option(QPID_WINDOWS_DEFAULT_TEST_OUTPUTS "Use default error-handling on Windows tests" OFF) + if (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS) + set(platform_test_additions windows/DisableWin32ErrorWindows.cpp) + endif (NOT QPID_WINDOWS_DEFAULT_TEST_OUTPUTS) +endif (CMAKE_SYSTEM_NAME STREQUAL Windows) + +# +# Unit test program +# +# Unit tests are built as a single program to reduce valgrind overhead +# when running the tests. If you want to build a subset of the tests run +# ccmake and set unit_tests_to_build to the set you want to build. + +set(unit_tests_to_build + exception_test + RefCounted + SessionState + logging + AsyncCompletion + Url + Uuid + Shlib + FieldValue + FieldTable + Array + QueueOptionsTest + InlineAllocator + InlineVector + ClientSessionTest + MessagingSessionTests + SequenceSet + StringUtils + RangeSet + AtomicValue + QueueTest + AccumulatedAckTest + DtxWorkRecordTest + DeliveryRecordTest + ExchangeTest + HeadersExchangeTest + MessageTest + QueueRegistryTest + QueuePolicyTest + QueueFlowLimitTest + FramingTest + HeaderTest + SequenceNumberTest + TimerTest + TopicExchangeTest + TxBufferTest + TxPublishTest + MessageBuilderTest + ManagementTest + MessageReplayTracker + ConsoleTest + QueueEvents + ProxyTest + RetryList + RateFlowcontrolTest + FrameDecoder + ReplicationTest + ClientMessageTest + PollableCondition + Variant + ClientMessage + ${xml_tests} + CACHE STRING "Which unit tests to build" + ) + +mark_as_advanced(unit_tests_to_build) + +# Disabled till we move to amqp_0_10 codec. +# amqp_0_10/serialize.cpp allSegmentTypes.h \ +# amqp_0_10/ProxyTemplate.cpp \ +# amqp_0_10/apply.cpp \ +# amqp_0_10/Map.cpp \ +# amqp_0_10/handlers.cpp + +add_executable (unit_test unit_test + ${unit_tests_to_build} ${platform_test_additions}) +target_link_libraries (unit_test + ${qpid_test_boost_libs} + qpidmessaging qpidbroker qmfconsole) +remember_location(unit_test) + +add_library (shlibtest MODULE shlibtest.cpp) + +if (BUILD_CLUSTER) + include (cluster.cmake) +endif (BUILD_CLUSTER) + +# FIXME aconway 2009-11-30: enable SSL +#if SSL +#include ssl.mk +#endif + +# +# Other test programs +# +add_executable (qpid-perftest qpid-perftest.cpp ${platform_test_additions}) +target_link_libraries (qpid-perftest qpidclient) +#qpid_perftest_SOURCES=qpid-perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h +remember_location(qpid-perftest) + +add_executable (qpid-txtest qpid-txtest.cpp ${platform_test_additions}) +target_link_libraries (qpid-txtest qpidclient) +#qpid_txtest_SOURCES=qpid-txtest.cpp TestOptions.h ConnectionOptions.h +remember_location(qpid-txtest) + +add_executable (qpid-latency-test qpid-latency-test.cpp ${platform_test_additions}) +target_link_libraries (qpid-latency-test qpidclient) +#qpid_latencytest_SOURCES=qpid-latency-test.cpp TestOptions.h ConnectionOptions.h +remember_location(qpid-latency-test) + +add_executable (echotest echotest.cpp ${platform_test_additions}) +target_link_libraries (echotest qpidclient) +#echotest_SOURCES=echotest.cpp TestOptions.h ConnectionOptions.h +remember_location(echotest) + +add_executable (qpid-client-test qpid-client-test.cpp ${platform_test_additions}) +target_link_libraries (qpid-client-test qpidclient) +#qpid_client_test_SOURCES=qpid-client-test.cpp TestOptions.h ConnectionOptions.h +remember_location(qpid-client-test) + +add_executable (qpid-topic-listener qpid-topic-listener.cpp ${platform_test_additions}) +target_link_libraries (qpid-topic-listener qpidclient) +#qpid_topic_listener_SOURCES=qpid-topic-listener.cpp TestOptions.h ConnectionOptions.h +remember_location(qpid-topic-listener) + +add_executable (qpid-topic-publisher qpid-topic-publisher.cpp ${platform_test_additions}) +target_link_libraries (qpid-topic-publisher qpidclient) +#qpid_topic_publisher_SOURCES=qpid-topic-publisher.cpp TestOptions.h ConnectionOptions.h +remember_location(qpid-topic-publisher) + +add_executable (publish publish.cpp ${platform_test_additions}) +target_link_libraries (publish qpidclient) +#publish_SOURCES=publish.cpp TestOptions.h ConnectionOptions.h +remember_location(publish) + +add_executable (consume consume.cpp ${platform_test_additions}) +target_link_libraries (consume qpidclient) +#consume_SOURCES=consume.cpp TestOptions.h ConnectionOptions.h +remember_location(consume) + +add_executable (header_test header_test.cpp ${platform_test_additions}) +target_link_libraries (header_test qpidclient) +#header_test_SOURCES=header_test.cpp TestOptions.h ConnectionOptions.h +remember_location(header_test) + +add_executable (declare_queues declare_queues.cpp ${platform_test_additions}) +target_link_libraries (declare_queues qpidclient) +remember_location(declare_queues) + +add_executable (replaying_sender replaying_sender.cpp ${platform_test_additions}) +target_link_libraries (replaying_sender qpidclient) +remember_location(replaying_sender) + +add_executable (resuming_receiver resuming_receiver.cpp ${platform_test_additions}) +target_link_libraries (resuming_receiver qpidclient) +remember_location(resuming_receiver) + +add_executable (txshift txshift.cpp ${platform_test_additions}) +target_link_libraries (txshift qpidclient) +#txshift_SOURCES=txshift.cpp TestOptions.h ConnectionOptions.h +remember_location(txshift) + +add_executable (txjob txjob.cpp ${platform_test_additions}) +target_link_libraries (txjob qpidclient) +#txjob_SOURCES=txjob.cpp TestOptions.h ConnectionOptions.h +remember_location(txjob) + +add_executable (receiver receiver.cpp ${platform_test_additions}) +target_link_libraries (receiver qpidclient) +#receiver_SOURCES=receiver.cpp TestOptions.h ConnectionOptions.h +remember_location(receiver) + +add_executable (sender sender.cpp Statistics.cpp ${platform_test_additions}) +target_link_libraries (sender qpidmessaging) +#sender_SOURCES=sender.cpp TestOptions.h ConnectionOptions.h +remember_location(sender) + +add_executable (qpid-receive qpid-receive.cpp Statistics.cpp ${platform_test_additions}) +target_link_libraries (qpid-receive qpidmessaging) +remember_location(qpid-receive) + +add_executable (qpid-send qpid-send.cpp Statistics.cpp ${platform_test_additions}) +target_link_libraries (qpid-send qpidmessaging) +remember_location(qpid-send) + +# qpid-perftest and qpid-latency-test are generally useful so install them +install (TARGETS qpid-perftest qpid-latency-test RUNTIME + DESTINATION ${QPID_INSTALL_BINDIR}) + +if (CMAKE_SYSTEM_NAME STREQUAL Windows) + set (ENV{OUTDIR} ${EXECUTABLE_OUTPUT_PATH}) + set (test_script_suffix ".ps1") + set (shell "powershell") +endif (CMAKE_SYSTEM_NAME STREQUAL Windows) + +set(test_wrap ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_test${test_script_suffix}) + +add_test (unit_test ${test_wrap} ${unit_test_LOCATION}) +add_test (start_broker ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/start_broker${test_script_suffix}) +add_test (qpid-client-test ${test_wrap} ${qpid-client_test_LOCATION}) +add_test (quick_perftest ${test_wrap} ${qpid-perftest_LOCATION} --summary --count 100) +add_test (quick_topictest ${test_wrap} ${CMAKE_CURRENT_SOURCE_DIR}/quick_topictest${test_script_suffix}) +add_test (quick_txtest ${test_wrap} ${qpid-txtest_LOCATION} --queues 4 --tx-count 10 --quiet) +if (PYTHON_EXECUTABLE) + add_test (run_header_test ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_header_test${test_script_suffix}) + add_test (python_tests ${test_wrap} ${CMAKE_CURRENT_SOURCE_DIR}/python_tests${test_script_suffix}) +endif (PYTHON_EXECUTABLE) +add_test (stop_broker ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/stop_broker${test_script_suffix}) +if (PYTHON_EXECUTABLE) + add_test (federation_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_federation_tests${test_script_suffix}) +if (BUILD_ACL) + add_test (acl_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_acl_tests${test_script_suffix}) +endif (BUILD_ACL) +add_test (dynamic_log_level_test ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/dynamic_log_level_test${test_script_suffix}) +if (BUILD_MSSQL) + add_test (store_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_store_tests${test_script_suffix} MSSQL) +endif (BUILD_MSSQL) +if (BUILD_MSCLFS) + add_test (store_tests ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_store_tests${test_script_suffix} MSSQL-CLFS) +endif (BUILD_MSCLFS) +endif (PYTHON_EXECUTABLE) + +add_library(test_store MODULE test_store.cpp) +target_link_libraries (test_store qpidbroker qpidcommon) +set_target_properties (test_store PROPERTIES PREFIX "") + +#EXTRA_DIST += \ +# run_test vg_check \ +# run-unit-tests start_broker python_tests stop_broker \ +# quick_topictest \ +# quick_perftest \ +# quick_txtest \ +# topictest \ +# run_header_test \ +# header_test.py \ +# ssl_test \ +# config.null \ +# ais_check \ +# run_federation_tests \ +# run_acl_tests \ +# .valgrind.supp \ +# MessageUtils.h \ +# TestMessageStore.h \ +# TxMocks.h \ +# start_cluster stop_cluster restart_cluster + +add_library (dlclose_noop MODULE dlclose_noop.c) +#libdlclose_noop_la_LDFLAGS = -module -rpath $(abs_builddir) + +#CLEANFILES+=valgrind.out *.log *.vglog* dummy_test $(unit_wrappers) +# +## FIXME aconway 2008-05-23: Disabled interop_runner because it uses +## the obsolete Channel class. Convert to Session and re-enable. +## +## check_PROGRAMS += interop_runner +# +## interop_runner_SOURCES = \ +## interop_runner.cpp \ +## SimpleTestCaseBase.cpp \ +## BasicP2PTest.cpp \ +## BasicPubSubTest.cpp \ +## SimpleTestCaseBase.h \ +## BasicP2PTest.h \ +## BasicPubSubTest.h \ +## TestCase.h \ +## TestOptions.h ConnectionOptions.h +## interop_runner_LDADD = $(lib_client) $(lib_common) $(extra_libs) +# +# +## Longer running stability tests, not run by default check: target. +## Not run under valgrind, too slow +#LONG_TESTS=fanout_perftest shared_perftest multiq_perftest topic_perftest run_failover_soak +#EXTRA_DIST+=$(LONG_TESTS) run_perftest +#check-long: +# $(MAKE) check TESTS="start_broker $(LONG_TESTS) stop_broker" VALGRIND= |