X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=tests%2Fvalgrind_ust-consumerd.sh;h=856808bb7d954ac2a5be4a4f64fd1814f76dc124;hb=18cc44ca7d014cc358c739d347b715cd0999e81b;hp=a0d9e443de3030716b48e9217b18398544c5b4fc;hpb=37b70e91e2d7e89099b4b35978b9cc033bf37673;p=ust.git diff --git a/tests/valgrind_ust-consumerd.sh b/tests/valgrind_ust-consumerd.sh index a0d9e44..856808b 100755 --- a/tests/valgrind_ust-consumerd.sh +++ b/tests/valgrind_ust-consumerd.sh @@ -24,21 +24,38 @@ source $TESTDIR/tap.sh starttest "ust-consumerd valgrind check" +if ! which valgrind > /dev/null; then + echo "$0: Valgrind not found on the system." >/dev/stderr + exit 1; +fi + plan_tests 2 -TRACE_DIR="/tmp/ust-testsuite-ust-consumerdvalgrind-trace" +TRACE_DIR="/tmp/ust-testsuite-$USER-ust-consumerdvalgrind-trace" rm -rf "$TRACE_DIR" mkdir "$TRACE_DIR" pidfilepath="/tmp/ust-testsuite-$USER-$(date +%Y%m%d%H%M%S%N)-ust-consumerd-pid" mkfifo -m 0600 "$pidfilepath" -VALG_OUT=/tmp/ust-testsuite-valg.txt -valgrind --suppressions=$TESTDIR/valgrind_suppress.txt -q ust-consumerd --pidfile "$pidfilepath" -o "$TRACE_DIR" >/dev/null 2>"$VALG_OUT" & +UST_CONSUMERD="$TESTDIR/../ust-consumerd/.libs/ust-consumerd" +USTTRACE="$TESTDIR/../usttrace" + +VALG_OUT=/tmp/ust-testsuite-$USER-valg.txt +export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR/../libustconsumer/.libs/" +valgrind --suppressions=$TESTDIR/valgrind_suppress.txt -q $UST_CONSUMERD --pidfile "$pidfilepath" -o "$TRACE_DIR" >/dev/null 2>"$VALG_OUT" & VALG_PID=$! + +# Paranoid check that valgrind is alive or we will hang forever on the fifo +if ! ps $VALG_PID > /dev/null; then + echo "Valgrind appears to have died, giving up" + rm $pidfilepath + exit +fi + UST_CONSUMERD_PID="$(<$pidfilepath)" -okx usttrace -s $TESTDIR/basic/.libs/basic +okx $USTTRACE -L -s $TESTDIR/basic/.libs/basic kill -SIGTERM ${UST_CONSUMERD_PID} wait $! @@ -49,6 +66,8 @@ if [ -z "$(<$VALG_OUT)" ]; then else fail "Valgrind found errors in ust-consumerd:" cat $VALG_OUT | while read; do - diag $REPLY + diag "$REPLY" done fi + +rm $pidfilepath