Fix the exec call and paths in the test wrapper.
authorGerald Combs <gerald@wireshark.org>
Sat, 7 Mar 2015 04:41:54 +0000 (20:41 -0800)
committerGerald Combs <gerald@wireshark.org>
Sat, 7 Mar 2015 05:04:32 +0000 (05:04 +0000)
Change-Id: Ie36e9c7dc9a60715248aea300cffde8040cb0768
Reviewed-on: https://code.wireshark.org/review/7574
Reviewed-by: Gerald Combs <gerald@wireshark.org>
CMakeLists.txt
cmake/modules/GenerateTestSh.cmake

index a19deae15a09aa012b7cf5f37a2e9aa56917ffdc..74e7dfa44bff34baa541481ea2337a52714ffd7d 100644 (file)
@@ -2245,20 +2245,13 @@ if(ENABLE_APPLICATION_BUNDLE)
        set(TEST_SH_BIN_DIR ${CMAKE_BINARY_DIR}/run)
 else()
        set(TEST_SH_BIN_DIR $<TARGET_FILE_DIR:epan>)
-       if (NOT "${CYGPATH_EXECUTABLE}" STREQUAL "CYGPATH_EXECUTABLE-NOTFOUND")
-               execute_process(
-                   COMMAND ${CYGPATH_EXECUTABLE} -u ${TEST_SH_BIN_DIR}
-                   OUTPUT_VARIABLE _cygwin_path
-               )
-               string(STRIP "${_cygwin_path}" _cygwin_path)
-               set(TEST_SH_BIN_DIR ${_cygwin_path})
-       endif()
 endif()
 
 add_custom_target(test-sh ALL
        COMMAND ${CMAKE_COMMAND}
+               -DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}
                 -DTEST_SH_BIN_DIR=${TEST_SH_BIN_DIR}
-                -DTEST_SH_DIR=${CMAKE_SOURCE_DIR}/test
+                -DTEST_SH_SRC_DIR=${CMAKE_SOURCE_DIR}/test
                 -P ${CMAKE_SOURCE_DIR}/cmake/modules/GenerateTestSh.cmake
        DEPENDS ${CMAKE_SOURCE_DIR}/cmake/modules/GenerateTestSh.cmake
 )
index 77cf9431838ef7941d0459fea41a054c6f392ab0..3946ead4f9e326108b73edfce76fa127617a2a54 100644 (file)
@@ -1,19 +1,42 @@
 # Generate a wrapper for test.sh.
 
-set(TEST_SH_EXEC ${TEST_SH_DIR}/test.sh)
 set(TEST_SH_OUTPUT ${TEST_SH_BIN_DIR}/test.sh)
 
+if(WIN32)
+       INCLUDE(FindCygwin)
+       FIND_PROGRAM(CYGPATH_EXECUTABLE
+                       NAMES cygpath
+                       PATHS ${CYGWIN_INSTALL_PATH}/bin
+       )
+       if (NOT "${CYGPATH_EXECUTABLE}" STREQUAL "CYGPATH_EXECUTABLE-NOTFOUND")
+                       execute_process(
+                               COMMAND ${CYGPATH_EXECUTABLE} -u ${TEST_SH_BIN_DIR}
+                               OUTPUT_VARIABLE _cygwin_path
+                       )
+                       string(STRIP "${_cygwin_path}" _cygwin_path)
+                       set(TEST_SH_BIN_DIR ${_cygwin_path})
+                       execute_process(
+                               COMMAND ${CYGPATH_EXECUTABLE} -u ${TEST_SH_SRC_DIR}
+                               OUTPUT_VARIABLE _cygwin_path
+                       )
+                       string(STRIP "${_cygwin_path}" _cygwin_path)
+                       set(TEST_SH_SRC_DIR ${_cygwin_path})
+       endif()
+endif()
+
+set(TEST_SH_EXEC ${TEST_SH_SRC_DIR}/test.sh)
+
 file(WRITE ${TEST_SH_OUTPUT} "#!/bin/sh\n")
 if(WIN32)
-    file(APPEND ${TEST_SH_OUTPUT} "(set -o igncr) 2>/dev/null && set -o igncr; # comment is needed\n")
+       file(APPEND ${TEST_SH_OUTPUT} "(set -o igncr) 2>/dev/null && set -o igncr; # comment is needed\n")
 endif()
 file(APPEND ${TEST_SH_OUTPUT} "# Exec wrapper for ${TEST_SH_EXEC}\n")
 file(APPEND ${TEST_SH_OUTPUT} "WS_BIN_PATH=${TEST_SH_BIN_DIR}\n")
 file(APPEND ${TEST_SH_OUTPUT} "export WS_BIN_PATH\n")
 file(APPEND ${TEST_SH_OUTPUT} "WS_QT_BIN_PATH=${TEST_SH_BIN_DIR}\n")
 file(APPEND ${TEST_SH_OUTPUT} "export WS_QT_BIN_PATH\n")
-file(APPEND ${TEST_SH_OUTPUT} "cd ${TEST_SH_DIR}\n")
-file(APPEND ${TEST_SH_OUTPUT} "exec ${TEST_SH_EXEC}\n")
+file(APPEND ${TEST_SH_OUTPUT} "cd ${TEST_SH_SRC_DIR}\n")
+file(APPEND ${TEST_SH_OUTPUT} "exec ${TEST_SH_EXEC} \"$@\"\n")
 
 execute_process(COMMAND chmod a+x ${TEST_SH_OUTPUT})