Repository: qpid-proton Updated Branches: refs/heads/master 8c73cd2c8 -> ac1dd7c81
PROTON-1192: Improve ctest configuration to directly set the test environment without using the env.py wrapper script Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/ac1dd7c8 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/ac1dd7c8 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/ac1dd7c8 Branch: refs/heads/master Commit: ac1dd7c81390692f923ef7b62d1a6170b350d169 Parents: 8c73cd2 Author: Andrew Stitcher <[email protected]> Authored: Thu May 5 16:54:43 2016 -0400 Committer: Andrew Stitcher <[email protected]> Committed: Thu May 5 16:54:43 2016 -0400 ---------------------------------------------------------------------- examples/cpp/CMakeLists.txt | 15 +++++- proton-c/CMakeLists.txt | 79 ++++++++++++++++++------------- proton-c/bindings/cpp/CMakeLists.txt | 10 ++-- proton-c/src/tests/CMakeLists.txt | 11 ++--- 4 files changed, 69 insertions(+), 46 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ac1dd7c8/examples/cpp/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt index 2cb258f..a69183f 100644 --- a/examples/cpp/CMakeLists.txt +++ b/examples/cpp/CMakeLists.txt @@ -57,8 +57,16 @@ endfunction() set_test_path("$<TARGET_FILE_DIR:broker>") +set(test_env + "PATH=${test_path}" + ${VALGRIND_ENV} +) + add_test(NAME cpp_container_example_test - COMMAND ${env_py} -- "PATH=${test_path}" ${VALGRIND_ENV} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v ContainerExampleTest) + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v ContainerExampleTest) +set_tests_properties(cpp_container_example_test PROPERTIES + ENVIRONMENT "${test_env}" +) # TODO aconway 2016-04-26: need portable MT and IO examples. if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND HAS_CPP11) @@ -71,7 +79,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND HAS_CPP11) endforeach() add_test(NAME cpp_mt_example_test - COMMAND ${env_py} -- "PATH=${test_path}" ${VALGRIND_ENV} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v MtBrokerTest) + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v MtBrokerTest) + set_tests_properties(cpp_mt_example_test PROPERTIES + ENVIRONMENT "${test_env}" + ) endif() http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ac1dd7c8/proton-c/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt index 372e67c..bbab01f 100644 --- a/proton-c/CMakeLists.txt +++ b/proton-c/CMakeLists.txt @@ -506,14 +506,19 @@ if (BUILD_PYTHON) to_native_path ("${py_pythonpath}" py_pythonpath) to_native_path ("${py_path}" py_path) - add_test (NAME python-test - COMMAND ${env_py} - "PATH=${py_path}" "PYTHONPATH=${py_pythonpath}" "PKG_CONFIG_PATH=${pn_c_root}" - "CLASSPATH=${CMAKE_BINARY_DIR}/proton-j/proton-j.jar" - "SASLPASSWD=${SASLPASSWD_EXE}" - ${VALGRIND_ENV} - ${PYTHON_EXECUTABLE} "${py_root}/proton-test") - set_tests_properties(python-test PROPERTIES PASS_REGULAR_EXPRESSION "Totals: .* 0 failed") + add_test (NAME python-test COMMAND ${PYTHON_EXECUTABLE} "${py_root}/proton-test") + set (env_vars + "PATH=${py_path}" + "PYTHONPATH=${py_pythonpath}" + "PKG_CONFIG_PATH=${pn_c_root}" + "CLASSPATH=${CMAKE_BINARY_DIR}/proton-j/proton-j.jar" + "SASLPASSWD=${SASLPASSWD_EXE}" + ${VALGRIND_ENV} + ) + set_tests_properties(python-test PROPERTIES + PASS_REGULAR_EXPRESSION "Totals: .* 0 failed" + ENVIRONMENT "${env_vars}" + ) # Eventually, we'll get rid of this check when other # platforms will be supported. Since `setup.py` will skip @@ -521,24 +526,26 @@ if (BUILD_PYTHON) # to try to run them. option(TOX_TEST "Enable muti-version python testing with TOX" ON) if (CMAKE_SYSTEM_NAME STREQUAL Linux AND TOX_TEST) - find_program(TOX_EXE "tox") - if (TOX_EXE) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/tox.ini.in" - "${CMAKE_CURRENT_BINARY_DIR}/tox.ini") - to_native_path ("${py_path}" py_path) - add_test (NAME python-tox-test - COMMAND ${env_py} - "PATH=${py_path}" "QPID_PROTON_SRC=${CMAKE_CURRENT_SOURCE_DIR}/../" - "CLASSPATH=${CMAKE_BINARY_DIR}/proton-j/proton-j.jar" - "SASLPASSWD=${SASLPASSWD_EXE}" - "SWIG=${SWIG_EXECUTABLE}" - ${VALGRIND_ENV} - ${TOX_EXE}) - set_tests_properties(python-tox-test - PROPERTIES - PASS_REGULAR_EXPRESSION "Totals: .* ignored, 0 failed" - FAIL_REGULAR_EXPRESSION "ERROR:[ ]+py[0-9]*: commands failed") + find_program(TOX_EXE "tox") + if (TOX_EXE) + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/tox.ini.in" + "${CMAKE_CURRENT_BINARY_DIR}/tox.ini") + to_native_path ("${py_path}" py_path) + add_test (NAME python-tox-test COMMAND ${TOX_EXE}) + set (tox_test_env_vars + "PATH=${py_path}" + "QPID_PROTON_SRC=${CMAKE_SOURCE_DIR}" + "CLASSPATH=${CMAKE_BINARY_DIR}/proton-j/proton-j.jar" + "SASLPASSWD=${SASLPASSWD_EXE}" + "SWIG=${SWIG_EXECUTABLE}" + ${VALGRIND_ENV} + ) + set_tests_properties(python-tox-test PROPERTIES + PASS_REGULAR_EXPRESSION "Totals: .* ignored, 0 failed" + FAIL_REGULAR_EXPRESSION "ERROR:[ ]+py[0-9]*: commands failed" + ENVIRONMENT "${tox_test_env_vars}" + ) else (TOX_EXE) message(STATUS "The tox tool is not available - skipping the python-tox-tests") endif (TOX_EXE) @@ -570,26 +577,34 @@ if (RUBY_EXE AND BUILD_RUBY) to_native_path("${rb_path}" rb_path) to_native_path("${rb_rubylib}" rb_rubylib) + set(ruby_test_env "PATH=${rb_path}" "RUBYLIB=${rb_rubylib}") + # ruby example tests have no dependencies other than standard ruby. add_test(NAME ruby-example-test WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/examples/ruby - COMMAND ${env_py} -- "PATH=${rb_path}" "RUBYLIB=${rb_rubylib}" - ${RUBY_EXE} example_test.rb -v) + COMMAND ${RUBY_EXE} example_test.rb -v) + set_tests_properties(ruby-example-test PROPERTIES + ENVIRONMENT "${ruby_test_env}" + ) # ruby unit tests: tests/ruby/proton-test # only enable the tests if the Ruby gem dependencies were found if (DEFAULT_RUBY_TESTING) add_test (NAME ruby-unit-test - COMMAND ${env_py} "PATH=${rb_path}" "RUBYLIB=${rb_rubylib}" - "${rb_root}/proton-test") + COMMAND "${rb_root}/proton-test") + set_tests_properties(ruby-unit-test PROPERTIES + ENVIRONMENT "${ruby_test_env}" + ) # ruby spec tests find_program(RSPEC_EXE rspec) if (RSPEC_EXE) add_test (NAME ruby-spec-test WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bindings/ruby - COMMAND ${env_py} "PATH=${rb_path}" "RUBYLIB=${rb_rubylib}" - ${RSPEC_EXE}) + COMMAND ${RSPEC_EXE}) + set_tests_properties(ruby-spec-test PROPERTIES + ENVIRONMENT "${ruby_test_env}" + ) else(RSPEC_EXE) message (STATUS "Cannot find rspec, skipping rspec tests") http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ac1dd7c8/proton-c/bindings/cpp/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/CMakeLists.txt b/proton-c/bindings/cpp/CMakeLists.txt index 2aec4e2..296aa56 100644 --- a/proton-c/bindings/cpp/CMakeLists.txt +++ b/proton-c/bindings/cpp/CMakeLists.txt @@ -167,13 +167,11 @@ endif () macro(add_cpp_test test) add_executable (${test} src/${test}.cpp) target_link_libraries (${test} qpid-proton qpid-proton-cpp) + add_test (NAME cpp_${test} COMMAND ${memcheck-cmd} $<TARGET_FILE:${test}> ${ARGN}) if (CMAKE_SYSTEM_NAME STREQUAL Windows) - add_test (NAME cpp_${test} - COMMAND ${env_py} - "PATH=$<TARGET_FILE_DIR:qpid-proton>" - $<TARGET_FILE:${test}> ${ARGN}) - else () - add_test (NAME cpp_${test} COMMAND ${memcheck-cmd} ${CMAKE_CURRENT_BINARY_DIR}/${test} ${ARGN}) + set_tests_properties(cpp_${test} PROPERTIES + ENVIRONMENT "PATH=$<TARGET_FILE_DIR:qpid-proton>" + ) endif () endmacro(add_cpp_test) http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ac1dd7c8/proton-c/src/tests/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/CMakeLists.txt b/proton-c/src/tests/CMakeLists.txt index 3ea8bcf..53a676b 100644 --- a/proton-c/src/tests/CMakeLists.txt +++ b/proton-c/src/tests/CMakeLists.txt @@ -30,13 +30,12 @@ macro (pn_add_c_test test file) if (BUILD_WITH_CXX) set_source_files_properties (${file} PROPERTIES LANGUAGE CXX) endif (BUILD_WITH_CXX) + + add_test (NAME ${test} COMMAND ${memcheck-cmd} $<TARGET_FILE:${test}>) if (CMAKE_SYSTEM_NAME STREQUAL Windows) - add_test (NAME ${test} - COMMAND ${env_py} - "PATH=$<TARGET_FILE_DIR:qpid-proton>" - $<TARGET_FILE:${test}>) - else () - add_test (${test} ${memcheck-cmd} ${CMAKE_CURRENT_BINARY_DIR}/${test}) + set_tests_properties(${test} PROPERTIES + ENVIRONMENT "PATH=$<TARGET_FILE_DIR:qpid-proton>" + ) endif () endmacro(pn_add_c_test) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
