You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jd...@apache.org on 2020/10/16 08:29:39 UTC

[qpid-proton] branch master updated: PROTON-2170: Respect the BUILD_TESTING option to allow the user to disable tests (#271)

This is an automated email from the ASF dual-hosted git repository.

jdanek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-proton.git


The following commit(s) were added to refs/heads/master by this push:
     new 9bcc7bb  PROTON-2170: Respect the BUILD_TESTING option to allow the user to disable tests (#271)
9bcc7bb is described below

commit 9bcc7bb028422e3f1f345789e5a654f480e0b531
Author: Jiri Daněk <jd...@redhat.com>
AuthorDate: Fri Oct 16 10:29:31 2020 +0200

    PROTON-2170: Respect the BUILD_TESTING option to allow the user to disable tests (#271)
    
    Disable tests if the user sets the standard cmake BUILD_TESTING option to OFF:
    https://cmake.org/cmake/help/v3.8/command/add_test.html#command:add_test
    
    Fixes:
     - https://issues.apache.org/jira/browse/PROTON-2170
    
    Signed-off-by: Fabrice Fontaine <fo...@gmail.com>
    Co-authored-by: Jiri Danek <jd...@redhat.com>
---
 CMakeLists.txt             |   1 -
 c/CMakeLists.txt           |   4 +-
 cpp/CMakeLists.txt         |  87 ++------------------------------------
 cpp/tests.cmake            | 103 +++++++++++++++++++++++++++++++++++++++++++++
 tests/share/CMakeLists.txt |   3 +-
 5 files changed, 110 insertions(+), 88 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08519d9..8267a26 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,7 +36,6 @@ find_package (PythonInterp REQUIRED)
 find_package (SWIG)
 find_package (CyrusSASL)
 
-enable_testing ()
 include(tests/PNAddTest.cmake)
 
 # Set up runtime checks (valgrind, sanitizers etc.)
diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt
index b8b5665..2967176 100644
--- a/c/CMakeLists.txt
+++ b/c/CMakeLists.txt
@@ -585,7 +585,9 @@ add_subdirectory(docs)
 if (BUILD_EXAMPLES)
   add_subdirectory(examples)
 endif (BUILD_EXAMPLES)
-add_subdirectory(tests)
+if (BUILD_TESTING)
+  add_subdirectory(tests)
+endif (BUILD_TESTING)
 add_subdirectory(tools)
 
 install (DIRECTORY examples/
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index cd263ae..c11a29f 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -234,90 +234,9 @@ install (FILES
   ${CMAKE_CURRENT_BINARY_DIR}/ProtonCppConfigVersion.cmake
   DESTINATION ${LIB_INSTALL_DIR}/cmake/ProtonCpp)
 
-set(testdata "${CMAKE_CURRENT_BINARY_DIR}/testdata")
-set(test_env "")
-
-# SASL configuration for tests
-if(CyrusSASL_Saslpasswd_EXECUTABLE)
-  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/testdata/sasl-conf/proton-server.conf.in"
-    "${testdata}/sasl-conf/proton-server.conf")
-  execute_process(
-    COMMAND echo password
-    COMMAND ${CyrusSASL_Saslpasswd_EXECUTABLE} -c -p -f "${testdata}/sasl-conf/proton.sasldb" -u proton user
-    RESULT_VARIABLE ret)
-  if(ret)
-    message(WARNING "${CyrusSASL_Saslpasswd_EXECUTABLE}: error ${ret} - some SASL tests will be skipped")
-  else()
-    set(test_env ${test_env} "PN_SASL_CONFIG_PATH=${testdata}/sasl-conf")
-  endif()
-endif()
-
-if (CMAKE_SYSTEM_NAME STREQUAL Windows)
-  set(test_env ${test_env} "PATH=$<TARGET_FILE_DIR:qpid-proton>")
-endif()
-
-macro(add_cpp_test test)
-  add_executable (${test} src/${test}.cpp)
-  target_link_libraries (${test} qpid-proton-cpp ${PLATFORM_LIBS})
-  pn_add_test(
-    EXECUTABLE
-    NAME cpp-${test}
-    APPEND_ENVIRONMENT ${test_env}
-    COMMAND $<TARGET_FILE:${test}>
-    ${ARGN})
-endmacro(add_cpp_test)
-
-add_cpp_test(codec_test)
-add_cpp_test(connection_driver_test)
-add_cpp_test(interop_test ${CMAKE_SOURCE_DIR}/tests)
-add_cpp_test(message_test)
-add_cpp_test(map_test)
-add_cpp_test(scalar_test)
-add_cpp_test(value_test)
-add_cpp_test(container_test)
-add_cpp_test(reconnect_test)
-add_cpp_test(link_test)
-add_cpp_test(credit_test)
-if (ENABLE_JSONCPP)
-  add_cpp_test(connect_config_test)
-  target_link_libraries(connect_config_test qpid-proton-core) # For pn_sasl_enabled
-  set_tests_properties(cpp-connect_config_test PROPERTIES WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
-  # Test data and output directories for connect_config_test
-  file(COPY  "${CMAKE_CURRENT_SOURCE_DIR}/testdata" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
-endif()
-
-# TODO aconway 2018-10-31: Catch2 tests
-# This is a simple example of a C++ test using the Catch2 framework.
-# See c/tests/ for more interesting examples.
-# Eventually all the C++ tests will migrate to Catch2.
-
-include_directories(${CMAKE_SOURCE_DIR}/tests/include)
-add_executable(cpp-test src/cpp-test.cpp src/url_test.cpp)
-target_link_libraries(cpp-test qpid-proton-cpp ${PLATFORM_LIBS})
-# tests that require access to pn_ functions in qpid-proton-core
-add_executable(cpp-core-test src/cpp-test.cpp src/object_test.cpp)
-target_link_libraries(cpp-core-test qpid-proton-cpp qpid-proton-core ${PLATFORM_LIBS})
-
-macro(add_catch_test tag)
-  pn_add_test(
-    EXECUTABLE
-    NAME cpp-${tag}-test
-    APPEND_ENVIRONMENT ${test_env}
-    COMMAND $<TARGET_FILE:cpp-test> "[${tag}]")
-  set_tests_properties(cpp-${tag}-test PROPERTIES  FAIL_REGULAR_EXPRESSION ".*No tests ran.*")
-endmacro(add_catch_test)
-
-macro(add_core_catch_test tag)
-  pn_add_test(
-          EXECUTABLE
-          NAME cpp-${tag}-test
-          APPEND_ENVIRONMENT ${test_env}
-          COMMAND $<TARGET_FILE:cpp-core-test> "[${tag}]")
-  set_tests_properties(cpp-${tag}-test PROPERTIES  FAIL_REGULAR_EXPRESSION ".*No tests ran.*")
-endmacro(add_core_catch_test)
-
-add_catch_test(url)
-add_core_catch_test(object)
+if (BUILD_TESTING)
+  include(tests.cmake)
+endif (BUILD_TESTING)
 
 if (ENABLE_BENCHMARKS)
   add_subdirectory(benchmarks)
diff --git a/cpp/tests.cmake b/cpp/tests.cmake
new file mode 100644
index 0000000..d30fce9
--- /dev/null
+++ b/cpp/tests.cmake
@@ -0,0 +1,103 @@
+#
+# 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.
+#
+
+set(testdata "${CMAKE_CURRENT_BINARY_DIR}/testdata")
+set(test_env "")
+
+# SASL configuration for tests
+if(CyrusSASL_Saslpasswd_EXECUTABLE)
+  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/testdata/sasl-conf/proton-server.conf.in"
+    "${testdata}/sasl-conf/proton-server.conf")
+  execute_process(
+    COMMAND echo password
+    COMMAND ${CyrusSASL_Saslpasswd_EXECUTABLE} -c -p -f "${testdata}/sasl-conf/proton.sasldb" -u proton user
+    RESULT_VARIABLE ret)
+  if(ret)
+    message(WARNING "${CyrusSASL_Saslpasswd_EXECUTABLE}: error ${ret} - some SASL tests will be skipped")
+  else()
+    set(test_env ${test_env} "PN_SASL_CONFIG_PATH=${testdata}/sasl-conf")
+  endif()
+endif()
+
+if (CMAKE_SYSTEM_NAME STREQUAL Windows)
+  set(test_env ${test_env} "PATH=$<TARGET_FILE_DIR:qpid-proton>")
+endif()
+
+macro(add_cpp_test test)
+  add_executable (${test} src/${test}.cpp)
+  target_link_libraries (${test} qpid-proton-cpp ${PLATFORM_LIBS})
+  pn_add_test(
+    EXECUTABLE
+    NAME cpp-${test}
+    APPEND_ENVIRONMENT ${test_env}
+    COMMAND $<TARGET_FILE:${test}>
+    ${ARGN})
+endmacro(add_cpp_test)
+
+add_cpp_test(codec_test)
+add_cpp_test(connection_driver_test)
+add_cpp_test(interop_test ${CMAKE_SOURCE_DIR}/tests)
+add_cpp_test(message_test)
+add_cpp_test(map_test)
+add_cpp_test(scalar_test)
+add_cpp_test(value_test)
+add_cpp_test(container_test)
+add_cpp_test(reconnect_test)
+add_cpp_test(link_test)
+add_cpp_test(credit_test)
+if (ENABLE_JSONCPP)
+  add_cpp_test(connect_config_test)
+  target_link_libraries(connect_config_test qpid-proton-core) # For pn_sasl_enabled
+  set_tests_properties(cpp-connect_config_test PROPERTIES WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
+  # Test data and output directories for connect_config_test
+  file(COPY  "${CMAKE_CURRENT_SOURCE_DIR}/testdata" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+endif()
+
+# TODO aconway 2018-10-31: Catch2 tests
+# This is a simple example of a C++ test using the Catch2 framework.
+# See c/tests/ for more interesting examples.
+# Eventually all the C++ tests will migrate to Catch2.
+
+include_directories(${CMAKE_SOURCE_DIR}/tests/include)
+add_executable(cpp-test src/cpp-test.cpp src/url_test.cpp)
+target_link_libraries(cpp-test qpid-proton-cpp ${PLATFORM_LIBS})
+# tests that require access to pn_ functions in qpid-proton-core
+add_executable(cpp-core-test src/cpp-test.cpp src/object_test.cpp)
+target_link_libraries(cpp-core-test qpid-proton-cpp qpid-proton-core ${PLATFORM_LIBS})
+
+macro(add_catch_test tag)
+  pn_add_test(
+    EXECUTABLE
+    NAME cpp-${tag}-test
+    APPEND_ENVIRONMENT ${test_env}
+    COMMAND $<TARGET_FILE:cpp-test> "[${tag}]")
+  set_tests_properties(cpp-${tag}-test PROPERTIES  FAIL_REGULAR_EXPRESSION ".*No tests ran.*")
+endmacro(add_catch_test)
+
+macro(add_core_catch_test tag)
+  pn_add_test(
+          EXECUTABLE
+          NAME cpp-${tag}-test
+          APPEND_ENVIRONMENT ${test_env}
+          COMMAND $<TARGET_FILE:cpp-core-test> "[${tag}]")
+  set_tests_properties(cpp-${tag}-test PROPERTIES  FAIL_REGULAR_EXPRESSION ".*No tests ran.*")
+endmacro(add_core_catch_test)
+
+add_catch_test(url)
+add_core_catch_test(object)
diff --git a/tests/share/CMakeLists.txt b/tests/share/CMakeLists.txt
index ad14306..8888414 100644
--- a/tests/share/CMakeLists.txt
+++ b/tests/share/CMakeLists.txt
@@ -21,7 +21,6 @@ cmake_minimum_required(VERSION 2.8.12)
 
 project(ProtonExamples)
 include(CTest)
-enable_testing()
 include("tests/RuntimeCheck.cmake")
 
 # find example sub-directories that contain "CMakeLists.txt" or "testme"
@@ -40,4 +39,4 @@ foreach(dir ${subs})
       COMMAND ${dir}/testme
       WORKING_DIRECTORY ${dir})
   endif()
- endforeach()
+endforeach()


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org