You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rm...@apache.org on 2020/08/26 12:49:44 UTC

[logging-log4cxx] branch logcxx_510_rm_vs2019 created (now 5ba150c)

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

rmiddleton pushed a change to branch logcxx_510_rm_vs2019
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git.


      at 5ba150c  Set the PATH for the tests appropriately

This branch includes the following new commits:

     new 5ba150c  Set the PATH for the tests appropriately

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[logging-log4cxx] 01/01: Set the PATH for the tests appropriately

Posted by rm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rmiddleton pushed a commit to branch logcxx_510_rm_vs2019
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git

commit 5ba150cbab4bda72288254aea8b02c8bb67926f5
Author: Robert Middleton <ro...@rm5248.com>
AuthorDate: Wed Aug 26 08:49:09 2020 -0400

    Set the PATH for the tests appropriately
---
 src/test/cpp/CMakeLists.txt | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

diff --git a/src/test/cpp/CMakeLists.txt b/src/test/cpp/CMakeLists.txt
index bdb66fe..d1e44bb 100644
--- a/src/test/cpp/CMakeLists.txt
+++ b/src/test/cpp/CMakeLists.txt
@@ -50,6 +50,26 @@ add_subdirectory(spi)
 add_subdirectory(varia)
 add_subdirectory(xml)
 
+# Note: we need to include the APR DLLs on our path so that the tests will run.
+# The way that CMake sets the environment is that it actually generates a secondary file,
+# CTestTestfile.cmake, which sets the final properties of the test.
+# However, this results in a secondary quirk to the running of the tests: CMake uses
+# a semicolon to deliminate entries in a list!  Since the Windows PATH is semicolon-delimited
+# as well, CMake uses only the first entry in the list when setting the path.
+# So, we need to do a triple escape on the PATH that we want to set in order for CMake to
+# properly interpret the PATH
+if( WIN32 )
+	get_filename_component(APR_DLL_DIR "${APR_DLL}" DIRECTORY)
+	get_filename_component(APR_UTIL_DLL_DIR "${APR_UTIL_DLL}" DIRECTORY)
+	set(PATH_FOR_TESTS $<SHELL_PATH:$<TARGET_FILE_DIR:log4cxx>>;${APR_DLL_DIR};${APR_UTIL_DLL_DIR}\;)
+	list(REMOVE_DUPLICATES PATH_FOR_TESTS)
+	set(NORMAL_PATH $ENV{PATH})
+	set(ESCAPED_PATH "")
+	foreach( ENTRY ${PATH_FOR_TESTS}${NORMAL_PATH} )
+		set(ESCAPED_PATH "${ESCAPED_PATH}${ENTRY}\\\;")
+	endforeach()
+endif( WIN32 )
+
 foreach(testName IN LISTS ALL_LOG4CXX_TESTS)
     target_compile_definitions(${testName} PRIVATE ${LOG4CXX_COMPILE_DEFINITIONS} ${APR_COMPILE_DEFINITIONS} ${APR_UTIL_COMPILE_DEFINITIONS} )
     target_include_directories(${testName} PRIVATE ${CMAKE_CURRENT_LIST_DIR} $<TARGET_PROPERTY:log4cxx,INCLUDE_DIRECTORIES>)
@@ -58,20 +78,17 @@ foreach(testName IN LISTS ALL_LOG4CXX_TESTS)
         COMMAND ${testName} -v
         WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/../resources
     )
+	set_tests_properties( ${testName} PROPERTIES TIMEOUT 120 )
 
     if(WIN32)
-        get_filename_component(APR_DLL_DIR "${APR_DLL}" DIRECTORY)
-        get_filename_component(APR_UTIL_DLL_DIR "${APR_UTIL_DLL}" DIRECTORY)
-        get_filename_component(XMLLIB_DLL_DIR "${XMLLIB_DLL}" DIRECTORY)
-        set(PATH_FOR_TESTS $<SHELL_PATH:$<TARGET_FILE_DIR:log4cxx>> ${APR_DLL_DIR} ${APR_UTIL_DLL_DIR} ${XMLLIB_DLL_DIR})
-        list(REMOVE_DUPLICATES PATH_FOR_TESTS)
+
         if(${testName} STREQUAL socketservertestcase)
             set_tests_properties(socketservertestcase PROPERTIES
-                ENVIRONMENT "SOCKET_SERVER_PARAMETER_FILE=${START_SOCKET_SERVER_PARAMETER_FILE};PATH=${LOG4CXX_DLL_DIR}\;${APR_DLL_DIR}\;${APR_UTIL_DLL_DIR}"
+                ENVIRONMENT "SOCKET_SERVER_PARAMETER_FILE=${START_SOCKET_SERVER_PARAMETER_FILE};PATH=${ESCAPED_PATH}"
             )
         else()
            set_tests_properties(${testName} PROPERTIES
-                ENVIRONMENT "TOTO=wonderful;key1=value1;key2=value2;PATH==${LOG4CXX_DLL_DIR}\;${APR_DLL_DIR}\;${APR_UTIL_DLL_DIR}"
+                ENVIRONMENT "TOTO=wonderful;key1=value1;key2=value2;PATH=${ESCAPED_PATH}"
            )
         endif()
     else()