about summary refs log tree commit diff
path: root/tools/run-nm-test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run-nm-test.sh')
-rwxr-xr-xtools/run-nm-test.sh44
1 files changed, 43 insertions, 1 deletions
diff --git a/tools/run-nm-test.sh b/tools/run-nm-test.sh
index 5848d0a0..29ac7cd3 100755
--- a/tools/run-nm-test.sh
+++ b/tools/run-nm-test.sh
@@ -34,8 +34,17 @@ else
     CALLED_FROM_MAKE=0
 fi
 
+BUILDDIR=
+
 if [ "$CALLED_FROM_MAKE" == 1 ]; then
-    NMTST_LIBTOOL=($1 --mode=execute); shift
+    BUILDDIR="$1"
+    shift
+    if [ -n "$1" ]; then
+        NMTST_LIBTOOL=($1 --mode=execute);
+    else
+        NMTST_LIBTOOL=()
+    fi
+    shift
     NMTST_VALGRIND_ARG="$1"; shift
     if [[ "$NMTST_VALGRIND_ARG" == no ]]; then
         NMTST_VALGRIND_ARG=
@@ -121,6 +130,10 @@ else
             NMTST_USE_VALGRIND=0
             shift;
             ;;
+        "-d")
+            NMTST_SET_DEBUG=1
+            shift;
+            ;;
         "--test"|-t)
             shift
             TEST="$1"
@@ -135,6 +148,7 @@ else
             ;;
         esac
     done
+
     # we support calling the script directly. In this case,
     # only pass the path to the test to run.
     if test -z "${TEST+x}"; then
@@ -144,6 +158,24 @@ else
         NMTST_SUPPRESSIONS="$SCRIPT_PATH/../valgrind.suppressions"
     fi
 
+    if [[ -z "$NMTST_BUILDDIR" ]]; then
+        if [[ "${NMTST_BUILDDIR-x}" == x ]]; then
+            # autodetect
+            BUILDDIR="$(readlink -f "$TEST")"
+            while [[ -n "$BUILDDIR" ]]; do
+                BUILDDIR="$(dirname "$BUILDDIR")"
+                [[ "$BUILDDIR" == / ]] && BUILDDIR=
+                [[ -z "$BUILDDIR" ]] && break
+                [[ -e "$BUILDDIR/libnm/.libs/libnm.so" ]] && break
+                [[ -e "$BUILDDIR/libnm/libnm.so" ]] && break
+            done
+        fi
+    fi
+
+fi
+
+if [ "$NMTST_SET_DEBUG" == 1 -a -z "${NMTST_DEBUG+x}" ]; then
+    export NMTST_DEBUG=d
 fi
 
 if _is_true "$NMTST_MAKE_FIRST" 0; then
@@ -185,6 +217,16 @@ fi
 
 [ -x "$TEST" ] || die "Cannot execute test \"$TEST\""
 
+if [[ -n "$BUILDDIR" ]]; then
+    if [[ -d "$BUILDDIR/libnm" ]]; then
+        export GI_TYPELIB_PATH="$BUILDDIR/libnm/${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}"
+        if [[ -d "$BUILDDIR/libnm/.libs" ]]; then
+            export LD_LIBRARY_PATH="$BUILDDIR/libnm/.libs${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+        else
+            export LD_LIBRARY_PATH="$BUILDDIR/libnm${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+        fi
+    fi
+fi
 
 if ! _is_true "$NMTST_USE_VALGRIND" 0; then
     "${NMTST_DBUS_RUN_SESSION[@]}" \