diff --git a/tests/test_pyexe_set_ascii_codepage.sh b/tests/test_pyexe_set_ascii_codepage.sh index 9c66bf5..d17e455 100755 --- a/tests/test_pyexe_set_ascii_codepage.sh +++ b/tests/test_pyexe_set_ascii_codepage.sh @@ -1,7 +1,7 @@ #!/bin/bash # Python-bindings set ASCII codepage testing script # -# Version: 20160419 +# Version: 20160420 EXIT_SUCCESS=0; EXIT_FAILURE=1; @@ -17,15 +17,6 @@ then exit ${EXIT_IGNORE}; fi -PYTHON=`which python${PYTHON_VERSION} 2> /dev/null`; - -if ! test -x ${PYTHON}; -then - echo "Missing executable: ${PYTHON}"; - - exit ${EXIT_FAILURE}; -fi - TEST_RUNNER="tests/test_runner.sh"; if ! test -f "${TEST_RUNNER}"; diff --git a/tests/test_python_functions.sh b/tests/test_python_functions.sh index 95c8c3c..c15b674 100755 --- a/tests/test_python_functions.sh +++ b/tests/test_python_functions.sh @@ -62,15 +62,6 @@ then exit ${EXIT_IGNORE}; fi -PYTHON=`which python${PYTHON_VERSION} 2> /dev/null`; - -if ! test -x ${PYTHON}; -then - echo "Missing executable: ${PYTHON}"; - - exit ${EXIT_FAILURE}; -fi - TEST_RUNNER="tests/test_runner.sh"; if ! test -f "${TEST_RUNNER}"; diff --git a/tests/test_runner.sh b/tests/test_runner.sh index 8bde30b..4485345 100644 --- a/tests/test_runner.sh +++ b/tests/test_runner.sh @@ -1,7 +1,7 @@ #!/bin/bash # Bash functions to run an executable for testing. # -# Version: 20160411 +# Version: 20160420 # # When CHECK_WITH_GDB is set to a non-empty value the test executable # is run with gdb, otherwise it is run without. @@ -129,17 +129,26 @@ find_binary_library_path() LIBRARY_NAME=`dirname ${LIBRARY_NAME}`; LIBRARY_NAME=`basename ${LIBRARY_NAME} | sed 's/\(.*\)tools$/lib\1/'`; else - LIBRARY_NAME=`basename ${LIBRARY_NAME} | sed 's/^\(.*\)_test_.*$/lib\1/'`; + LIBRARY_NAME=`basename ${LIBRARY_NAME} | sed 's/^\(py\|\)\([^_]*\)_test_.*$/lib\2/'`; fi TEST_EXECUTABLE=`dirname ${TEST_EXECUTABLE}`; TEST_EXECUTABLE=`dirname ${TEST_EXECUTABLE}`; TEST_EXECUTABLE=`dirname ${TEST_EXECUTABLE}`; - echo "${TEST_EXECUTABLE}/${LIBRARY_NAME}/.libs"; + local LIBRARY_PATH="${TEST_EXECUTABLE}/${LIBRARY_NAME}/.libs"; + + if ! test -d "${LIBRARY_PATH}"; + then + LIBRARY_PATH="../${LIBRARY_NAME}/.libs"; + fi + echo "${LIBRARY_PATH}"; } # Searches for the path to the binary variant of the Python module # +# Globals: +# PYTHON_VERSION +# # Arguments: # a string containing the path of the test executable # @@ -159,13 +168,29 @@ find_binary_python_module_path() PYTHON_MODULE_NAME=`dirname ${PYTHON_MODULE_NAME}`; PYTHON_MODULE_NAME=`basename ${PYTHON_MODULE_NAME} | sed 's/\(.*\)tools$/py\1/'`; else - PYTHON_MODULE_NAME=`basename ${PYTHON_MODULE_NAME} | sed 's/^\(.*\)_test_.*$/py\1/'`; + PYTHON_MODULE_NAME=`basename ${PYTHON_MODULE_NAME} | sed 's/^\(py\|\)\(.*\)_test_.*$/py\2/'`; fi TEST_EXECUTABLE=`dirname ${TEST_EXECUTABLE}`; TEST_EXECUTABLE=`dirname ${TEST_EXECUTABLE}`; TEST_EXECUTABLE=`dirname ${TEST_EXECUTABLE}`; - echo "${TEST_EXECUTABLE}/${PYTHON_MODULE_NAME}/.libs"; + PYTHON_VERSION=`echo ${PYTHON_VERSION} | cut -c1`; + + local PYTHON_MODULE_PATH="${TEST_EXECUTABLE}/${PYTHON_MODULE_NAME}-python${PYTHON_VERSION}/.libs"; + + if ! test -d "${PYTHON_MODULE_PATH}"; + then + PYTHON_MODULE_PATH="../${PYTHON_MODULE_NAME}-python${PYTHON_VERSION}/.libs"; + fi + if ! test -d "${PYTHON_MODULE_PATH}"; + then + PYTHON_MODULE_PATH="${TEST_EXECUTABLE}/${PYTHON_MODULE_NAME}/.libs"; + fi + if ! test -d "${PYTHON_MODULE_PATH}"; + then + PYTHON_MODULE_PATH="../${PYTHON_MODULE_NAME}/.libs"; + fi + echo "${PYTHON_MODULE_PATH}"; } # Determines the test option file. @@ -290,7 +315,7 @@ read_option_file() # CHECK_WITH_GDB # CHECK_WITH_STDERR # CHECK_WITH_VALGRIND -# PYTHON +# PYTHON_VERSION # # Arguments: # a string containing the path of the test executable @@ -320,6 +345,17 @@ run_test_with_arguments() echo "${EXECUTABLE_TYPE}" | grep "text/x-python" > /dev/null 2>&1; local IS_PYTHON_SCRIPT=$?; + if test ${IS_PYTHON_SCRIPT} -eq 0; + then + local PYTHON=`which python${PYTHON_VERSION} 2> /dev/null`; + + if ! test -x ${PYTHON}; + then + echo "Missing executable: ${PYTHON}"; + + exit ${EXIT_FAILURE}; + fi + fi local RESULT=0; if ! test -z ${CHECK_WITH_GDB}; @@ -456,7 +492,7 @@ run_test_with_arguments() # CHECK_WITH_GDB # CHECK_WITH_STDERR # CHECK_WITH_VALGRIND -# PYTHON +# PYTHON_VERSION # # Arguments: # a string containing the path of the test executable @@ -488,6 +524,17 @@ run_test_with_input_and_arguments() echo "${EXECUTABLE_TYPE}" | grep "text/x-python" > /dev/null 2>&1; local IS_PYTHON_SCRIPT=$?; + if test ${IS_PYTHON_SCRIPT} -eq 0; + then + local PYTHON=`which python${PYTHON_VERSION} 2> /dev/null`; + + if ! test -x ${PYTHON}; + then + echo "Missing executable: ${PYTHON}"; + + exit ${EXIT_FAILURE}; + fi + fi local RESULT=0; if ! test -z ${CHECK_WITH_GDB}; @@ -765,6 +812,7 @@ run_test_on_input_directory() local ARGUMENTS=$@; assert_availability_binary cat; + assert_availability_binary cut; assert_availability_binary diff; assert_availability_binary file; assert_availability_binary gzip;