tests: Use DYLD_LIBRARY_PATH on macOSX
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 8 Jul 2019 19:25:16 +0000 (15:25 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Tue, 9 Jul 2019 16:28:29 +0000 (12:28 -0400)
We could also use DYLD_FALLBACK_LIBRARY_PATH.

The dyld manual have this note regarding System Integrity Protection
(SIP).

  Note: If System Integrity Protection is enabled, these environment
  variables are ignored when executing binaries protected by System
  Integrity Protection.

If using restricted executables (e.g python), the DYLD_* will not be
honoured.

It might prove to be a problem in the wild. I'm not sure how to mitigate
this.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Change-Id: I9d62c4615f01e3a60d3068a13b5e2b1061aef6b4
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1653
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
tests/cli/test_convert_args
tests/utils/utils.sh

index d5bd7623980f350461b6762b87c93f4f2cdf00c3..48f1341fbc1c01de87ee5e894764856d5bebb220 100755 (executable)
@@ -77,7 +77,7 @@ comment() {
        echo "### $1 ###"
 }
 
-if [ "x${MSYSTEM:-}" != "x" ]; then
+if [ "$BT_OS_TYPE" = "mingw" ]; then
        path_to_trace="C://path/to/trace"
        output_path="C://output/path"
 else
index 84c3c52bdcb62d3f60f0bfa3b091b14131431f4d..17137c98b23ab274e33a926ce7450afd85b4874e 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/.."
@@ -45,7 +68,7 @@ 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 +76,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
@@ -201,9 +224,12 @@ run_python_bt2() {
        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:-}"
+       elif [ "$BT_OS_TYPE" = "darwin" ]; then
+               lib_search_var="DYLD_LIBRARY_PATH"
+               lib_search_path="${python_provider_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:-}"
This page took 0.02702 seconds and 4 git commands to generate.