Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers)
Subject: [lttng-dev] [PATCH lttng-tools v2.6 2/2] Fix: regression tests
Date: Thu, 24 Sep 2015 12:23:58 -0400	[thread overview]
Message-ID: <1443111838-15787-2-git-send-email-mathieu.desnoyers@efficios.com> (raw)
In-Reply-To: <1443111838-15787-1-git-send-email-mathieu.desnoyers@efficios.com>

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




  reply	other threads:[~2015-09-24 16:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-24 16:23 [lttng-dev] [PATCH lttng-tools 2.6 1/2] Fix: tests: stderr not correctly redirected Mathieu Desnoyers
2015-09-24 16:23 ` Mathieu Desnoyers [this message]
2015-09-24 18:45   ` [lttng-dev] [PATCH lttng-tools v2.6 2/2] Fix: regression tests Jérémie Galarneau
2015-09-24 18:45 ` [lttng-dev] [PATCH lttng-tools 2.6 1/2] Fix: tests: stderr not correctly redirected Jérémie Galarneau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1443111838-15787-2-git-send-email-mathieu.desnoyers@efficios.com \
    --to=mathieu.desnoyers@efficios.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox