| # |
| # 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. |
| # |
| |
| if(BUILD_LEGACYSTORE) |
| |
| message(STATUS "Building legacystore tests") |
| |
| # 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 |
| |
| # If we're linking Boost for DLLs, turn that on for the unit test too. |
| if (QPID_LINK_BOOST_DYNAMIC) |
| add_definitions(-DBOOST_TEST_DYN_LINK) |
| endif (QPID_LINK_BOOST_DYNAMIC) |
| |
| include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ) |
| |
| include (FindPythonInterp) |
| |
| # # Inherit environment from parent script |
| # 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 "") |
| |
| # 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) |
| |
| # Like this to work with cmake 2.4 on Unix |
| set (qpid_test_boost_libs |
| ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${Boost_SYSTEM_LIBRARY}) |
| |
| # |
| # 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. |
| # HACK ALERT - Unit tests are built individually to resolve a conflict |
| # with running multiple brokers that connect to 0.0.0.0:5672 and that |
| # womp on each other's store directory. |
| |
| # |
| # define_selftest |
| # macro to accept the name of a single source file and to create a |
| # unit test executable that runs the source. |
| # |
| MACRO (define_selftest theSourceFile) |
| add_executable (legacystore_${theSourceFile} |
| unit_test |
| ${theSourceFile} |
| ${platform_test_additions}) |
| target_link_libraries (legacystore_${theSourceFile} |
| ${qpid_test_boost_libs} |
| qpidmessaging qpidbroker qmfconsole legacystore) |
| get_property(ls_include TARGET legacystore_${theSourceFile} PROPERTY INCLUDE_DIRECTORIES) |
| list(APPEND ls_include ${abs_top_srcdir}/src/qpid/legacystore) |
| list(APPEND ls_include ${abs_top_srcdir}/src/tests) |
| set_target_properties (legacystore_${theSourceFile} PROPERTIES |
| INCLUDE_DIRECTORIES "${ls_include}" |
| COMPILE_DEFINITIONS _IN_QPID_BROKER) |
| remember_location(legacystore_${theSourceFile}) |
| set(test_wrap ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_test${test_script_suffix}) |
| |
| add_test (legacystore_${theSourceFile} ${test_wrap} ${legacystore_${theSourceFile}_LOCATION}) |
| ENDMACRO (define_selftest) |
| |
| # add_definitions(-H) |
| |
| define_selftest (SimpleTest) |
| define_selftest (OrderingTest) |
| define_selftest (TransactionalTest) |
| define_selftest (TwoPhaseCommitTest) |
| |
| # |
| # Other test programs |
| # |
| |
| # This should ideally be done as part of the test run, but I don't know a way |
| # to get these arguments and the working directory set like Makefile.am does, |
| # and have that run during the test pass. |
| if (PYTHON_EXECUTABLE) |
| set (python_bld ${CMAKE_CURRENT_BINARY_DIR}/python) |
| execute_process(COMMAND ${PYTHON_EXECUTABLE} setup.py install --prefix=${pythoon_bld} --install-lib=${python_bld} --install-scripts=${python_bld}/commands |
| WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../python) |
| endif (PYTHON_EXECUTABLE) |
| |
| endif (BUILD_LEGACYSTORE) |