Fix the exec call and paths in the test wrapper.

Change-Id: Ie36e9c7dc9a60715248aea300cffde8040cb0768
Reviewed-on: https://code.wireshark.org/review/7574
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
Gerald Combs 2015-03-06 20:41:54 -08:00
parent 5e67ae78ba
commit 9a5cd7d92b
2 changed files with 29 additions and 13 deletions

View 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
)

View 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})