summary refs log tree commit diff
path: root/tools/run-test-valgrind.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run-test-valgrind.sh')
-rwxr-xr-xtools/run-test-valgrind.sh159
1 files changed, 0 insertions, 159 deletions
diff --git a/tools/run-test-valgrind.sh b/tools/run-test-valgrind.sh
deleted file mode 100755
index 634ca2c4..00000000
--- a/tools/run-test-valgrind.sh
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/bin/bash
-
-die() {
-    echo "$@"
-    exit 5
-}
-
-SCRIPT_PATH="${SCRIPT_PATH:-$(readlink -f "$(dirname "$0")")}"
-
-VALGRIND_ERROR=37
-if [ "$1" == "--called-from-make" ]; then
-    shift
-    NMTST_LIBTOOL=($1 --mode=execute); shift
-    NMTST_VALGRIND="$1"; shift
-    SUPPRESSIONS="$1"; shift
-    if [ "$1" = "--launch-dbus" ]; then
-        NMTST_LAUNCH_DBUS=yes
-        shift
-    else
-        NMTST_LAUNCH_DBUS=no
-    fi
-    TEST="$1"; shift
-else
-    if [ -n "${NMTST_LIBTOOL-:x}" ]; then
-        NMTST_LIBTOOL=(sh "$SCRIPT_PATH/../libtool" --mode=execute)
-    elif [ -n "${NMTST_LIBTOOL-x}" ]; then
-        NMTST_LIBTOOL=()
-    else
-        NMTST_LIBTOOL=($NMTST_LIBTOOL --mode=execute)
-    fi
-    for a in "$@"; do
-        case "$a" in
-        "--launch-dbus")
-            NMTST_LAUNCH_DBUS=yes
-            shift
-            ;;
-        "--no-launch-dbus"|"-D")
-            NMTST_LAUNCH_DBUS=no
-            shift
-            ;;
-        "--no-libtool")
-            NMTST_LIBTOOL=()
-            shift
-            ;;
-        "--")
-            shift
-            break
-            ;;
-        *)
-            break
-            ;;
-        esac
-    done
-    # we support calling the script directly. In this case,
-    # only pass the path to the test to run.
-    TEST="$1"; shift
-    NMTST_VALGRIND="${NMTST_VALGRIND:-valgrind}"
-    if [ "$SUPPRESSIONS" == "" ]; then
-        SUPPRESSIONS="$SCRIPT_PATH/../valgrind.suppressions"
-    fi
-
-    [ -x "$TEST" ] || die "Test \"$TEST\" does not exist"
-
-    TEST_PATH="$(readlink -f "$(dirname "$TEST")")"
-
-    if [ -n "${NMTST_LAUNCH_DBUS-x}" ]; then
-        # autodetect whether to launch D-Bus based on the test path.
-        if [[ $TEST_PATH == */libnm/tests || $TEST_PATH == */libnm-glib/tests ]]; then
-            NMTST_LAUNCH_DBUS=yes
-        else
-            NMTST_LAUNCH_DBUS=no
-        fi
-    fi
-
-    # some tests require you to cd into the base directory.
-    # do that.
-    if [ "$NMTST_VALGRIND_NO_CD" == "" ]; then
-        cd "$TEST_PATH"
-        TEST="./$(basename "$TEST")"
-    fi
-fi
-
-NMTST_DBUS_RUN_SESSION=()
-if [ "$NMTST_LAUNCH_DBUS" == "yes" ]; then
-    if ! which dbus-run-session &>/dev/null ; then
-        eval `dbus-launch --sh-syntax`
-        trap "kill $DBUS_SESSION_BUS_PID" EXIT
-    else
-        NMTST_DBUS_RUN_SESSION=(dbus-run-session --)
-    fi
-fi
-
-if [ "$NMTST_NO_VALGRIND" != "" ]; then
-	"${NMTST_DBUS_RUN_SESSION[@]}" \
-	"$TEST" "$@"
-	exit $?
-fi
-
-LOGFILE="${TEST}.valgrind-log"
-
-export G_SLICE=always-malloc
-export G_DEBUG=gc-friendly
-"${NMTST_DBUS_RUN_SESSION[@]}" \
-"${NMTST_LIBTOOL[@]}" "$NMTST_VALGRIND" \
-	--quiet \
-	--error-exitcode=$VALGRIND_ERROR \
-	--leak-check=full \
-	--gen-suppressions=all \
-	--suppressions="$SUPPRESSIONS" \
-	--num-callers=100 \
-	--log-file="$LOGFILE" \
-	"$TEST" \
-	"$@"
-RESULT=$?
-
-test -s "$LOGFILE"
-HAS_ERRORS=$?
-
-if [ $RESULT -ne 0 -a $RESULT -ne 77 ]; then
-	if [ $HAS_ERRORS -ne 0 ]; then
-		rm -f "$LOGFILE"
-	elif [ $RESULT -ne $VALGRIND_ERROR ]; then
-		# the test (probably) didn't fail due to valgrind.
-		echo "The test failed. Also check the valgrind log at '`realpath "$LOGFILE"`'" >&2
-	else
-		echo "valgrind failed! Check the log at '`realpath "$LOGFILE"`'" >&2
-		UNRESOLVED=$(awk -F: '/obj:\// {print $NF}' "$LOGFILE" | sort | uniq)
-		if [ -n "$UNRESOLVED" ]; then
-			echo Some addresses could not be resolved into symbols. >&2
-			echo The errors might get suppressed when you install the debuging symbols. >&2
-			if [ -x /usr/bin/dnf ]; then
-				echo Hint: dnf debuginfo-install $UNRESOLVED >&2
-			elif [ -x /usr/bin/debuginfo-install ]; then
-				echo Hint: debuginfo-install $UNRESOLVED >&2
-			else
-				echo Files without debugging symbols: $UNRESOLVED >&2
-			fi
-		fi
-	fi
-	exit $RESULT
-fi
-
-if [ $HAS_ERRORS -eq 0 ]; then
-	# valgrind doesn't support setns syscall and spams the logfile.
-	# hack around it...
-	if [ "$(basename "$TEST")" = 'test-link-linux' -a -z "$(sed -e '/^--[0-9]\+-- WARNING: unhandled .* syscall: /,/^--[0-9]\+-- it at http.*\.$/d' "$LOGFILE")" ]; then
-		HAS_ERRORS=1
-	fi
-fi
-
-if [ $HAS_ERRORS -eq 0 ]; then
-	# shouldn't actually happen...
-	echo "valgrind succeeded, but log is not empty: '`realpath "$LOGFILE"`'" >&2
-	exit 1
-fi
-
-rm -f "$LOGFILE"
-
-exit $RESULT