[lttng-dev] [PATCH lttng-tools v2.6 2/2] Fix: regression tests
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Thu Sep 24 12:23:58 EDT 2015
Fix racy session/relayd wait-after-kill scheme.
Fix racy live test where application may not have generated events yet
when we attach to the live trace.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau at efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
---
tests/regression/tools/health/test_health.sh | 4 +-
tests/regression/tools/live/test_kernel | 47 +---------
tests/regression/tools/live/test_ust | 60 ++++--------
.../regression/tools/live/test_ust_tracefile_count | 60 ++++--------
tests/regression/tools/save-load/test_load | 6 +-
tests/utils/utils.sh | 103 ++++++++++++++++-----
6 files changed, 120 insertions(+), 160 deletions(-)
diff --git a/tests/regression/tools/health/test_health.sh b/tests/regression/tools/health/test_health.sh
index 6ae8885..ddc104c 100644
--- a/tests/regression/tools/health/test_health.sh
+++ b/tests/regression/tools/health/test_health.sh
@@ -146,7 +146,9 @@ function test_health
fi
if [ ${test_relayd} -eq 1 ]; then
- stop_lttng_relayd_nocheck
+ # We may fail to stop relayd here, and this is OK, since
+ # it may have been killed volountarily by testpoint.
+ stop_lttng_relayd_notap
fi
stop_lttng_sessiond
diff --git a/tests/regression/tools/live/test_kernel b/tests/regression/tools/live/test_kernel
index 4b958df..0e542da 100755
--- a/tests/regression/tools/live/test_kernel
+++ b/tests/regression/tools/live/test_kernel
@@ -62,22 +62,8 @@ else
exit 0
fi
-if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
- $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --quiet --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
- if [ $? -eq 1 ]; then
- echo "Fail to start lttng-sessiond"
- exit 1
- fi
-fi
-
-opt="--background -o $TRACE_PATH"
-if [ -z $(pidof lt-$RELAYD_BIN) ]; then
- $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >/dev/null 2>&1
- if [ $? -eq 1 ]; then
- echo "Fail to start lttng-relayd (opt: $opt)"
- return 1
- fi
-fi
+start_lttng_sessiond_notap
+start_lttng_relayd_notap "-o $TRACE_PATH"
setup_live_tracing
@@ -86,30 +72,5 @@ $TESTDIR/regression/tools/live/live_test
clean_live_tracing
-# Kill the relayd
-PID_RELAYD=`pidof lt-$RELAYD_BIN`
-kill $PID_RELAYD
-if [ $? -eq 1 ]; then
- echo "Kill lttng-relayd (pid: $PID_RELAYD)"
- exit 1
-else
- out=1
- while [ -n "$out" ]; do
- out=$(pidof lt-$RELAYD_BIN)
- sleep 0.5
- done
-fi
-
-# Kill the sessiond
-PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
-kill $PID_SESSIOND
-if [ $? -eq 1 ]; then
- echo "Kill sessiond daemon"
- exit 1
-else
- out=1
- while [ -n "$out" ]; do
- out=$(pidof lt-$SESSIOND_BIN)
- sleep 0.5
- done
-fi
+stop_lttng_relayd_notap
+stop_lttng_sessiond_notap
diff --git a/tests/regression/tools/live/test_ust b/tests/regression/tools/live/test_ust
index ae69195..0b96858 100755
--- a/tests/regression/tools/live/test_ust
+++ b/tests/regression/tools/live/test_ust
@@ -59,57 +59,29 @@ function clean_live_tracing()
rm -rf $TRACE_PATH
}
-if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
- $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --quiet --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
- if [ $? -eq 1 ]; then
- echo "Fail to start lttng-sessiond"
- exit 1
- fi
-fi
-
-opt="-o $TRACE_PATH --background"
-if [ -z $(pidof lt-$RELAYD_BIN) ]; then
- $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >/dev/null 2>&1
- if [ $? -eq 1 ]; then
- echo "Fail to start lttng-relayd (opt: $opt)"
- return 1
- fi
-fi
+file_sync_after_first=$(mktemp -u)
+
+start_lttng_sessiond_notap
+start_lttng_relayd_notap "-o $TRACE_PATH"
setup_live_tracing
# Run app in background
-$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1
+$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT ${file_sync_after_first} >/dev/null 2>&1
+
+while [ ! -f "${file_sync_after_first}" ]; do
+ sleep 0.5
+done
# Start the live test
$TESTDIR/regression/tools/live/live_test
+# Wait for the applications started in background
+wait
+
clean_live_tracing
-# Kill the relayd
-PID_RELAYD=`pidof lt-$RELAYD_BIN`
-kill $PID_RELAYD
-if [ $? -eq 1 ]; then
- echo "Kill lttng-relayd (pid: $PID_RELAYD)"
- exit 1
-else
- out=1
- while [ -n "$out" ]; do
- out=$(pidof lt-$RELAYD_BIN)
- sleep 0.5
- done
-fi
-
-# Kill the sessiond
-PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
-kill $PID_SESSIOND
-if [ $? -eq 1 ]; then
- echo "Kill sessiond daemon"
- exit 1
-else
- out=1
- while [ -n "$out" ]; do
- out=$(pidof lt-$SESSIOND_BIN)
- sleep 0.5
- done
-fi
+rm -f ${file_sync_after_first}
+
+stop_lttng_relayd_notap
+stop_lttng_sessiond_notap
diff --git a/tests/regression/tools/live/test_ust_tracefile_count b/tests/regression/tools/live/test_ust_tracefile_count
index 68e3722..54d6a52 100755
--- a/tests/regression/tools/live/test_ust_tracefile_count
+++ b/tests/regression/tools/live/test_ust_tracefile_count
@@ -60,57 +60,29 @@ function clean_live_tracing()
rm -rf $TRACE_PATH
}
-if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
- $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --quiet --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
- if [ $? -eq 1 ]; then
- echo "Fail to start lttng-sessiond"
- exit 1
- fi
-fi
-
-opt="-o $TRACE_PATH --background"
-if [ -z $(pidof lt-$RELAYD_BIN) ]; then
- $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >/dev/null 2>&1
- if [ $? -eq 1 ]; then
- echo "Fail to start lttng-relayd (opt: $opt)"
- return 1
- fi
-fi
+file_sync_after_first=$(mktemp -u)
+
+start_lttng_sessiond_notap
+start_lttng_relayd_notap "-o $TRACE_PATH"
setup_live_tracing
# Run app in background
-$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1
+$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT ${file_sync_after_first} >/dev/null 2>&1
+
+while [ ! -f "${file_sync_after_first}" ]; do
+ sleep 0.5
+done
# Start the live test
$TESTDIR/regression/tools/live/live_test
+# Wait for the applications started in background
+wait
+
clean_live_tracing
-# Kill the relayd
-PID_RELAYD=`pidof lt-$RELAYD_BIN`
-kill $PID_RELAYD
-if [ $? -eq 1 ]; then
- echo "Kill lttng-relayd (pid: $PID_RELAYD)"
- exit 1
-else
- out=1
- while [ -n "$out" ]; do
- out=$(pidof lt-$RELAYD_BIN)
- sleep 0.5
- done
-fi
-
-# Kill the sessiond
-PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
-kill $PID_SESSIOND
-if [ $? -eq 1 ]; then
- echo "Kill sessiond daemon"
- exit 1
-else
- out=1
- while [ -n "$out" ]; do
- out=$(pidof lt-$SESSIOND_BIN)
- sleep 0.5
- done
-fi
+rm -f ${file_sync_after_first}
+
+stop_lttng_relayd_notap
+stop_lttng_sessiond_notap
diff --git a/tests/regression/tools/save-load/test_load b/tests/regression/tools/save-load/test_load
index 6b892cf..fc07924 100755
--- a/tests/regression/tools/save-load/test_load
+++ b/tests/regression/tools/save-load/test_load
@@ -29,7 +29,7 @@ EVENT_NAME="tp:tptest"
DIR=$(readlink -f $TESTDIR)
-NUM_TESTS=21
+NUM_TESTS=23
source $TESTDIR/utils/utils.sh
@@ -92,7 +92,7 @@ function test_complex_load()
fi
destroy_lttng_session $sess
- stop_lttng_relayd_nocheck
+ stop_lttng_relayd
}
function test_all_load()
@@ -108,7 +108,7 @@ function test_all_load()
destroy_lttng_session $SESSION_NAME
destroy_lttng_session "$SESSION_NAME-complex"
- stop_lttng_relayd_nocheck
+ stop_lttng_relayd
}
function test_overwrite()
diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
index 9b1c872..621db33 100644
--- a/tests/utils/utils.sh
+++ b/tests/utils/utils.sh
@@ -239,9 +239,10 @@ function lttng_disable_kernel_channel_fail()
lttng_disable_kernel_channel 1 ${*}
}
-function start_lttng_relayd
+function start_lttng_relayd_opt()
{
- local opt=$1
+ local withtap=$1
+ local opt=$2
DIR=$(readlink -f $TESTDIR)
@@ -249,52 +250,77 @@ function start_lttng_relayd
$DIR/../src/bin/lttng-relayd/$RELAYD_BIN -b $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
#$DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt -vvv >>/tmp/relayd.log 2>&1 &
if [ $? -eq 1 ]; then
- fail "Start lttng-relayd (opt: $opt)"
+ if [ $withtap -eq "1" ]; then
+ fail "Start lttng-relayd (opt: $opt)"
+ fi
return 1
else
- pass "Start lttng-relayd (opt: $opt)"
+ if [ $withtap -eq "1" ]; then
+ pass "Start lttng-relayd (opt: $opt)"
+ fi
fi
else
pass "Start lttng-relayd (opt: $opt)"
fi
}
-function stop_lttng_relayd_nocheck
+function start_lttng_relayd()
{
+ start_lttng_relayd_opt 1 "$@"
+}
+
+function start_lttng_relayd_notap()
+{
+ start_lttng_relayd_opt 0 "$@"
+}
+
+function stop_lttng_relayd_opt()
+{
+ local withtap=$1
+
PID_RELAYD=`pidof lt-$RELAYD_BIN`
- diag "Killing lttng-relayd (pid: $PID_RELAYD)"
+ if [ $withtap -eq "1" ]; then
+ diag "Killing lttng-relayd (pid: $PID_RELAYD)"
+ fi
kill $PID_RELAYD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
retval=$?
- if [ $retval -eq 1 ]; then
+ if [ $? -eq 1 ]; then
+ if [ $withtap -eq "1" ]; then
+ fail "Kill relay daemon"
+ fi
+ return 1
+ else
out=1
while [ -n "$out" ]; do
out=$(pidof lt-$RELAYD_BIN)
sleep 0.5
done
+ if [ $withtap -eq "1" ]; then
+ pass "Kill relay daemon"
+ fi
fi
return $retval
}
-function stop_lttng_relayd
+function stop_lttng_relayd()
{
- stop_lttng_relayd_nocheck
+ stop_lttng_relayd_opt 1 "$@"
+}
- if [ $? -eq 1 ]; then
- fail "Killed lttng-relayd (pid: $PID_RELAYD)"
- return 1
- else
- pass "Killed lttng-relayd (pid: $PID_RELAYD)"
- return 0
- fi
+function stop_lttng_relayd_notap()
+{
+ stop_lttng_relayd_opt 0 "$@"
}
-#First argument: load path for automatic loading
-function start_lttng_sessiond()
+#First arg: show tap output
+#Second argument: load path for automatic loading
+function start_lttng_sessiond_opt()
{
+ local withtap=$1
+ local load_path=$2
- local load_path="$1"
if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
# Env variable requested no session daemon
return
@@ -312,19 +338,33 @@ function start_lttng_sessiond()
if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
# Have a load path ?
- if [ -n "$1" ]; then
+ if [ -n "$load_path" ]; then
$DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --load "$1" --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
else
$DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
fi
#$DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --verbose-consumer >>/tmp/sessiond.log 2>&1
status=$?
- ok $status "Start session daemon"
+ if [ $withtap -eq "1" ]; then
+ ok $status "Start session daemon"
+ fi
fi
}
-function stop_lttng_sessiond ()
+function start_lttng_sessiond()
+{
+ start_lttng_sessiond_opt 1 "$@"
+}
+
+function start_lttng_sessiond_notap()
{
+ start_lttng_sessiond_opt 0 "$@"
+}
+
+function stop_lttng_sessiond_opt()
+{
+ local withtap=$1
+
if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
# Env variable requested no session daemon
return
@@ -335,8 +375,9 @@ function stop_lttng_sessiond ()
kill $PID_SESSIOND 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
if [ $? -eq 1 ]; then
- fail "Kill sessions daemon"
- return 1
+ if [ $withtap -eq "1" ]; then
+ fail "Kill sessions daemon"
+ fi
else
out=1
while [ -n "$out" ]; do
@@ -348,10 +389,22 @@ function stop_lttng_sessiond ()
out=$(pidof $CONSUMERD_BIN)
sleep 0.5
done
- pass "Kill session daemon"
+ if [ $withtap -eq "1" ]; then
+ pass "Kill session daemon"
+ fi
fi
}
+function stop_lttng_sessiond()
+{
+ stop_lttng_sessiond_opt 1 "$@"
+}
+
+function stop_lttng_sessiond_notap()
+{
+ stop_lttng_sessiond_opt 0 "$@"
+}
+
function list_lttng_with_opts ()
{
local opts=$1
--
2.1.4
More information about the lttng-dev
mailing list