index b91cb0c37edafbe939d5803bc6410cad656e8869..63be63beef326ded85f739040d6542785838ab41 100644 (file)
TOP_SRCDIR="$( readlink -f "$( dirname "$0" )/../.." )"
TESTDIR="$( mktemp -d )"
-trap "rm -rf '$TESTDIR'" EXIT
+trap "rm -rf '$TESTDIR'; test -z \$SYSDBD_PID || kill \$SYSDBD_PID" EXIT
mkdir "$TESTDIR/backend"
cp "$TOP_SRCDIR/t/integration/.libs/mock_plugin.so" "$TESTDIR/backend"
+cp "$TOP_SRCDIR"/src/sysdb "$TESTDIR"
+cp "$TOP_SRCDIR"/src/sysdbd "$TESTDIR"
+
+MEMCHECK="valgrind --quiet --tool=memcheck --error-exitcode=1"
+MEMCHECK="$MEMCHECK --trace-children=yes"
+MEMCHECK="$MEMCHECK --track-fds=yes"
+MEMCHECK="$MEMCHECK --leak-check=full"
+
SYSDBD_CONF="$TESTDIR/sysdbd.conf"
SOCKET_FILE="$TESTDIR/sock"
PLUGIN_DIR="$TESTDIR"
-SYSDBD="$TOP_SRCDIR/src/sysdbd"
-SYSDB="$TOP_SRCDIR/src/sysdb"
+function run_sysdb() {
+ $MEMCHECK "$TESTDIR/sysdb" -U mockuser "$@"
+}
+
+function run_sysdbd() {
+ $MEMCHECK "$TESTDIR/sysdbd" "$@" &
+ SYSDBD_PID=$!
+}
+
+function run_sysdbd_foreground() {
+ $MEMCHECK "$TESTDIR/sysdbd" "$@"
+}
+
+function stop_sysdbd() {
+ if test -z $SYSDBD_PID; then
+ echo "Cannot stop sysdbd; PID unknown" >&2
+ exit 1
+ fi
+ kill $SYSDBD_PID
+ wait $SYSDBD_PID
+ SYSDBD_PID=''
+}
function wait_for_sysdbd() {
local i