[lttng-dev] [PATCH lttng-tools] Fix: skip test when ust doesn't have perf support

Michael Jeanson mjeanson at efficios.com
Wed Mar 20 17:49:00 EDT 2019


Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
---
 tests/regression/ust/test_event_perf | 43 +++++++++++++++++++++++-----
 1 file changed, 36 insertions(+), 7 deletions(-)

diff --git a/tests/regression/ust/test_event_perf b/tests/regression/ust/test_event_perf
index 4e665e65..9b1dea3e 100755
--- a/tests/regression/ust/test_event_perf
+++ b/tests/regression/ust/test_event_perf
@@ -41,6 +41,29 @@ function enable_ust_lttng_event_per_chan()
 	ok $? "Enable event $event_name for session $sess_name in channel $chan_name"
 }
 
+function add_context_ust_skip_ok()
+{
+	local session_name=$1
+	local channel_name=$2
+	local context_name=$3
+	local skip_num=$4
+
+	local ret
+
+	"$TESTDIR/../src/bin/lttng/$LTTNG_BIN" add-context -u \
+		-s "$session_name" -c "$channel_name" \
+		-t "$context_name"  1>"$OUTPUT_DEST" 2>"$ERROR_OUTPUT_DEST"
+	ret=$?
+
+	if [ "$ret" == "4" ]; then
+		skip 0 "Current UST lib doesn't implement '$context_name' context" "$skip_num"
+	else
+		ok $ret "Add context command for type: $context_name"
+	fi
+
+	return $ret
+}
+
 # Only test parsing of the enabling by raw ID
 function test_parsing_raw()
 {
@@ -54,7 +77,7 @@ function test_parsing_raw()
 
 	enable_ust_lttng_event_per_chan $SESSION_NAME $EVENT_NAME $CHAN_NAME
 
-	add_context_ust_ok $SESSION_NAME $CHAN_NAME "perf:thread:raw:r0110:test"
+	add_context_ust_skip_ok $SESSION_NAME $CHAN_NAME "perf:thread:raw:r0110:test" 1
 	add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:thread:raw:rZZZ:test"
 	add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:thread:raw:b0110:test"
 	add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:thread:raw:r0110:"
@@ -76,24 +99,30 @@ function test_event_basic()
 	SESSION_NAME="ust_event_basic"
 	CHAN_NAME="mychan"
 
+	local ret
+
 	create_lttng_session_ok $SESSION_NAME $TRACE_PATH
 
 	enable_ust_lttng_channel_ok $SESSION_NAME $CHAN_NAME
 
 	enable_ust_lttng_event_per_chan $SESSION_NAME $EVENT_NAME $CHAN_NAME
 
-	add_context_ust_ok $SESSION_NAME $CHAN_NAME "perf:thread:page-fault"
+	add_context_ust_skip_ok $SESSION_NAME $CHAN_NAME "perf:thread:page-fault" 4
+	ret=$?
 
-	start_lttng_tracing_ok
+	if [ "$ret" != "4" ]; then
+		start_lttng_tracing_ok
 
-	$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1
+		$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1
 
-	stop_lttng_tracing_ok
+		stop_lttng_tracing_ok
+
+		validate_trace "perf_thread_page_fault" "$TRACE_PATH"
+	fi
 
 	destroy_lttng_session_ok $SESSION_NAME
 
-	validate_trace "perf_thread_page_fault" $TRACE_PATH
-	rm -rf $TRACE_PATH
+	rm -rf "$TRACE_PATH"
 }
 
 # MUST set TESTDIR before calling those functions
-- 
2.17.1



More information about the lttng-dev mailing list