From 5058d31b6410ce84e9e674c412251b226f529430 Mon Sep 17 00:00:00 2001 From: Jonathan Rajotte Date: Mon, 8 Jul 2019 15:25:16 -0400 Subject: [PATCH] tests: Use DYLD_LIBRARY_PATH on macOSX 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 Change-Id: I9d62c4615f01e3a60d3068a13b5e2b1061aef6b4 Reviewed-on: https://review.lttng.org/c/babeltrace/+/1653 Tested-by: jenkins Reviewed-by: Michael Jeanson Reviewed-by: Philippe Proulx --- tests/cli/test_convert_args | 2 +- tests/utils/utils.sh | 32 +++++++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/tests/cli/test_convert_args b/tests/cli/test_convert_args index d5bd7623..48f1341f 100755 --- a/tests/cli/test_convert_args +++ b/tests/cli/test_convert_args @@ -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 diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh index 84c3c52b..17137c98 100644 --- a/tests/utils/utils.sh +++ b/tests/utils/utils.sh @@ -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:-}" -- 2.34.1