| ## |
| ## 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. |
| ## |
| |
| include_directories( |
| ${CMAKE_SOURCE_DIR}/src |
| ${CMAKE_BINARY_DIR}/src |
| ) |
| |
| ## |
| ## Build test applications |
| ## |
| set(unit_test_SOURCES |
| compose_test.c |
| policy_test.c |
| run_unit_tests.c |
| tool_test.c |
| failoverlist_test.c |
| timer_test.c |
| core_timer_test.c |
| parse_tree_tests.c |
| proton_utils_tests.c |
| alloc_test.c |
| ) |
| |
| add_executable(unit_tests ${unit_test_SOURCES}) |
| target_link_libraries(unit_tests qpid-dispatch) |
| |
| set(unit_test_size_SOURCES |
| field_test.c |
| parse_test.c |
| message_test.c |
| buffer_test.c |
| run_unit_tests_size.c |
| ) |
| |
| add_executable(unit_tests_size ${unit_test_size_SOURCES}) |
| target_link_libraries(unit_tests_size qpid-dispatch) |
| |
| add_executable(test-sender test-sender.c) |
| target_link_libraries(test-sender ${Proton_LIBRARIES} qpid-dispatch) |
| |
| add_executable(test-receiver test-receiver.c) |
| target_link_libraries(test-receiver ${Proton_LIBRARIES}) |
| |
| |
| set(TEST_WRAP ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/run.py) |
| |
| add_test(unit_tests_size_10000 ${TEST_WRAP} unit_tests_size 10000) |
| add_test(unit_tests_size_512 ${TEST_WRAP} unit_tests_size 512) |
| add_test(unit_tests_size_10 ${TEST_WRAP} unit_tests_size 10) |
| add_test(unit_tests_size_7 ${TEST_WRAP} unit_tests_size 7) |
| add_test(unit_tests_size_5 ${TEST_WRAP} unit_tests_size 5) |
| add_test(unit_tests_size_3 ${TEST_WRAP} unit_tests_size 3) |
| add_test(unit_tests_size_2 ${TEST_WRAP} unit_tests_size 2) |
| add_test(unit_tests_size_1 ${TEST_WRAP} unit_tests_size 1) |
| add_test(unit_tests ${TEST_WRAP} unit_tests ${CMAKE_CURRENT_SOURCE_DIR}/threads4.conf) |
| |
| # Unit test python modules |
| add_test(router_engine_test ${TEST_WRAP} ${PYTHON_TEST_COMMAND} -v router_engine_test) |
| add_test(management_test ${TEST_WRAP} ${PYTHON_TEST_COMMAND} -v management) |
| add_test(router_policy_test ${TEST_WRAP} ${PYTHON_TEST_COMMAND} -v router_policy_test) |
| add_test(test_command ${TEST_WRAP} ${PYTHON_TEST_COMMAND} -v test_command) |
| |
| if(USE_LIBWEBSOCKETS) |
| set(SYSTEM_TESTS_HTTP system_tests_http) |
| endif() |
| |
| if(CONSOLE_INSTALL) |
| set(CONSOLE_TEST system_tests_console) |
| endif(CONSOLE_INSTALL) |
| |
| # System test python modules |
| foreach(py_test_module |
| # system_tests_broker |
| system_tests_link_routes |
| system_tests_link_routes_add_external_prefix |
| system_tests_link_route_credit |
| system_tests_autolinks |
| system_tests_drain |
| system_tests_management |
| system_tests_one_router |
| system_tests_handle_failover |
| system_tests_default_distribution |
| system_tests_deprecated |
| system_tests_policy |
| system_tests_policy_oversize_basic |
| system_tests_policy_oversize_compound |
| system_tests_protocol_family |
| system_tests_protocol_settings |
| system_tests_qdmanage |
| system_tests_qdstat |
| system_tests_sasl_plain |
| system_tests_user_id |
| system_tests_user_id_proxy |
| system_tests_two_routers |
| system_tests_interior_sync_up |
| system_tests_distribution |
| system_tests_multi_tenancy |
| system_tests_dynamic_terminus |
| system_tests_log_message_components |
| system_tests_failover_list |
| system_tests_auth_service_plugin |
| system_tests_authz_service_plugin |
| system_tests_delivery_abort |
| system_tests_topology |
| system_tests_topology_disposition |
| system_tests_topology_addition |
| system_tests_disallow_link_resumable_link_route |
| system_tests_delivery_counts |
| system_tests_exchange_bindings |
| system_tests_cmdline_parsing |
| system_tests_bad_configuration |
| system_tests_ssl |
| system_tests_edge_router |
| system_tests_connector_status |
| system_tests_core_endpoint |
| ${SYSTEM_TESTS_HTTP} |
| ${CONSOLE_TEST} |
| system_tests_priority |
| system_tests_core_client |
| system_tests_address_lookup |
| system_tests_multi_phase |
| system_tests_multicast |
| system_tests_fallback_dest |
| system_tests_router_mesh |
| system_tests_stuck_deliveries |
| system_tests_log_level_update |
| system_tests_routing_protocol |
| ) |
| |
| add_test(${py_test_module} ${TEST_WRAP} ${PYTHON_TEST_COMMAND} -v ${py_test_module}) |
| list(APPEND SYSTEM_TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${py_test_module}.py) |
| endforeach() |
| |
| # Use tox to run the flake8 python linter tool on all the python |
| # sources. Highly recommended if you're hacking the python code. |
| # Unfortunately this can only be done for versions of tox >= 1.9.0 |
| # since that version allows us to skip the install step (we have |
| # no modules thus no setup.py) |
| # |
| find_program(TOX_EXE "tox") |
| if (TOX_EXE) |
| # the "skip_install" feature showed up in version 1.9.0 tox, |
| # which is used by our tox.ini script: |
| set(TOX_MIN_VERSION 1.9.0) |
| execute_process(COMMAND "${TOX_EXE}" "--version" |
| RESULT_VARIABLE TOX_STATUS |
| OUTPUT_VARIABLE TOX_VERSION) |
| if (TOX_STATUS EQUAL 0) |
| string(STRIP "${TOX_VERSION}" TOX_VERSION) |
| string(REGEX MATCH "^[0-9]+[.][0-9]+[.][0-9]+" TOX_VERSION "${TOX_VERSION}") |
| if (TOX_VERSION STRLESS TOX_MIN_VERSION) |
| message( STATUS "tox version ${TOX_VERSION} < required version ${TOX_MIN_VERSION} - skipping python-checker") |
| else (TOX_VERSION STRLESS TOX_MIN_VERSION) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tox.ini.in ${CMAKE_CURRENT_BINARY_DIR}/tox.ini) |
| add_test (NAME python-checker |
| COMMAND ${TOX_EXE} |
| WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) |
| # Once we move to tox >= v1.7.2 we can remove the next |
| # line. See tox.ini file for details |
| set_tests_properties(python-checker |
| PROPERTIES |
| PASS_REGULAR_EXPRESSION "commands succeeded" |
| FAIL_REGULAR_EXPRESSION "commands failed") |
| endif (TOX_VERSION STRLESS TOX_MIN_VERSION) |
| else (TOX_STATUS EQUAL 0) |
| message(STATUS "Cannot determine tox version - skipping python-checker") |
| endif (TOX_STATUS EQUAL 0) |
| |
| else (TOX_EXE) |
| message(STATUS "Could NOT find 'tox' tool - unable to validate python code") |
| endif () |
| |
| |
| |
| |
| |
| # Additional files to install for running system tests. |
| # NOTE: Don't install run.py. A system test of a dispatch installation should pick everything |
| # up from standard install locations. |
| # |
| list(APPEND SYSTEM_TEST_FILES |
| ${CMAKE_CURRENT_SOURCE_DIR}/run_system_tests.py |
| ${CMAKE_CURRENT_SOURCE_DIR}/system_test.py) |
| |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-2/A-ssl.conf.in ${CMAKE_CURRENT_BINARY_DIR}/config-2/A-ssl.conf) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-2/B-ssl.conf.in ${CMAKE_CURRENT_BINARY_DIR}/config-2/B-ssl.conf) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/policy-1/test-policy-conf-includes-folder.conf.in ${CMAKE_CURRENT_BINARY_DIR}/policy-1/test-policy-conf-includes-folder.conf) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/policy-2/policy-photoserver-sasl.conf.in ${CMAKE_CURRENT_BINARY_DIR}/policy-2/policy-photoserver-sasl.conf) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/policy-2/test-router-with-policy.json.in ${CMAKE_CURRENT_BINARY_DIR}/policy-2/test-router-with-policy.json) |
| |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ssl_certs DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/displayname_files DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/policy-1/management-access.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/policy-1/) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/policy-1/policy-boardwalk.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/policy-1/) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/policy-1/policy-safari.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/policy-1/) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/policy-2/policy-photoserver-sasl.sasldb DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/policy-2) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/policy-3/test-sender-receiver-limits.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/policy-3) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/policy-4/management-access.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/policy-4/) |
| file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/authservice.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) |
| |
| # following install() functions will be called only if you do a make "install" |
| install(FILES ${SYSTEM_TEST_FILES} |
| DESTINATION ${QPID_DISPATCH_HOME_INSTALLED}/tests |
| ) |
| |
| install(DIRECTORY config-1 config-2 |
| DESTINATION ${QPID_DISPATCH_HOME_INSTALLED}/tests |
| PATTERN *.in EXCLUDE |
| ) |
| |
| install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/config-2 |
| DESTINATION ${QPID_DISPATCH_HOME_INSTALLED}/tests |
| FILES_MATCHING PATTERN *.conf |
| ) |
| |
| install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ssl_certs |
| DESTINATION ${QPID_DISPATCH_HOME_INSTALLED}/tests) |