Make the Python plugin provider a libtool module
[babeltrace.git] / tests / utils / utils.sh
index 84c3c52bdcb62d3f60f0bfa3b091b14131431f4d..487d7e7e09a92929e746cfeec53734ca7c67091c 100644 (file)
@@ -24,6 +24,29 @@ set -u
 
 scriptdir="$(dirname "${BASH_SOURCE[0]}")"
 
+# The OS on which we are running. See [1] for possible values of 'uname -s'.
+# We do a bit of translation to ease our life down the road for comparison.
+# Export it so that called executables can use it.
+# [1] https://en.wikipedia.org/wiki/Uname#Examples
+if [ "x${BT_OS_TYPE:-}" = "x" ]; then
+       BT_OS_TYPE="$(uname -s)"
+       case "$BT_OS_TYPE" in
+       MINGW*)
+               BT_OS_TYPE="mingw"
+               ;;
+       Darwin)
+               BT_OS_TYPE="darwin"
+               ;;
+       Linux)
+               BT_OS_TYPE="linux"
+               ;;
+       *)
+               BT_OS_TYPE="unsupported"
+               ;;
+       esac
+fi
+export BT_OS_TYPE
+
 # Allow overriding the source and build directories
 if [ "x${BT_TESTS_SRCDIR:-}" = "x" ]; then
        BT_TESTS_SRCDIR="$scriptdir/.."
@@ -39,13 +62,14 @@ export BT_TESTS_BUILDDIR
 # the test script, define the 'SH_TAP' variable to '1' before sourcing this
 # script.
 if [ "x${SH_TAP:-}" = x1 ]; then
+       # shellcheck source=./tap/tap.sh
        . "${BT_TESTS_SRCDIR}/utils/tap/tap.sh"
 fi
 
 # Allow overriding the babeltrace2 executables
 if [ "x${BT_TESTS_BT2_BIN:-}" = "x" ]; then
        BT_TESTS_BT2_BIN="$BT_TESTS_BUILDDIR/../src/cli/babeltrace2"
-       if [ "x${MSYSTEM:-}" != "x" ]; then
+       if [ "$BT_OS_TYPE" = "mingw" ]; then
                BT_TESTS_BT2_BIN="${BT_TESTS_BT2_BIN}.exe"
        fi
 fi
@@ -53,7 +77,7 @@ export BT_TESTS_BT2_BIN
 
 if [ "x${BT_TESTS_BT2LOG_BIN:-}" = "x" ]; then
        BT_TESTS_BT2LOG_BIN="$BT_TESTS_BUILDDIR/../src/cli/babeltrace2-log"
-       if [ "x${MSYSTEM:-}" != "x" ]; then
+       if [ "$BT_OS_TYPE" = "mingw" ]; then
                BT_TESTS_BT2LOG_BIN="${BT_TESTS_BT2LOG_BIN}.exe"
        fi
 fi
@@ -67,6 +91,10 @@ if [ "x${BT_TESTS_BABELTRACE_PLUGIN_PATH:-}" = "x" ]; then
        BT_TESTS_BABELTRACE_PLUGIN_PATH="${BT_PLUGINS_PATH}/ctf:${BT_PLUGINS_PATH}/utils:${BT_PLUGINS_PATH}/text"
 fi
 
+if [ "x${BT_TESTS_PROVIDER_DIR:-}" = "x" ]; then
+       BT_TESTS_PROVIDER_DIR="${BT_TESTS_BUILDDIR}/../src/python-plugin-provider/.libs"
+fi
+
 # Allow overriding the babeltrace2 executables
 if [ "x${BT_TESTS_PYTHONPATH:-}" = "x" ]; then
        BT_TESTS_PYTHONPATH="${BT_TESTS_BUILDDIR}/../src/bindings/python/bt2/build/build_lib"
@@ -124,7 +152,7 @@ bt_diff_cli() {
        # Run the CLI to get a detailed file. Strip any \r present due to
        # Windows (\n -> \r\n). "diff --string-trailing-cr" is not used since it
        # is not present on Solaris.
-       "$BT_TESTS_BT2_BIN" "${args[@]}" | tr -d "\r" > "$temp_output_file"
+       run_python_bt2 "$BT_TESTS_BT2_BIN" "${args[@]}" | tr -d "\r" > "$temp_output_file"
 
        # Compare output with expected output
        if ! diff -u "$temp_output_file" "$expected_file" 2>/dev/null >"$temp_diff"; then
@@ -197,21 +225,24 @@ run_python_bt2() {
        local lib_search_var
        local lib_search_path
 
-       local python_provider_path="${BT_TESTS_BUILDDIR}/../src/python-plugin-provider/.libs"
        local main_lib_path="${BT_TESTS_BUILDDIR}/../src/lib/.libs"
 
        # Set the library search path so the python interpreter can load libbabeltrace2
-       if [ "x${MSYSTEM:-}" != "x" ]; then
+       if [ "$BT_OS_TYPE" = "mingw" ]; then
                lib_search_var="PATH"
-               lib_search_path="${python_provider_path}:${main_lib_path}:${PATH:-}"
+               lib_search_path="${main_lib_path}:${PATH:-}"
+       elif [ "$BT_OS_TYPE" = "darwin" ]; then
+               lib_search_var="DYLD_LIBRARY_PATH"
+               lib_search_path="${main_lib_path}:${DYLD_LIBRARY_PATH:-}"
        else
                lib_search_var="LD_LIBRARY_PATH"
-               lib_search_path="${python_provider_path}:${main_lib_path}:${LD_LIBRARY_PATH:-}"
+               lib_search_path="${main_lib_path}:${LD_LIBRARY_PATH:-}"
        fi
 
        env \
                BABELTRACE_PYTHON_BT2_NO_TRACEBACK=1 \
                BABELTRACE_PLUGIN_PATH="${BT_TESTS_BABELTRACE_PLUGIN_PATH}" \
+               LIBBABELTRACE2_PLUGIN_PROVIDER_DIR=${BT_TESTS_PROVIDER_DIR} \
                BT_CTF_TRACES_PATH="${BT_CTF_TRACES_PATH}" \
                BT_PLUGINS_PATH="${BT_PLUGINS_PATH}" \
                PYTHONPATH="${BT_TESTS_PYTHONPATH}:${BT_TESTS_SRCDIR}/utils/python" \
This page took 0.024078 seconds and 4 git commands to generate.