[lttng-tools] Add test cases for optionssanitizing
diff mbox series

Message ID 20190320163313.15616-2-ylamarre@efficios.com
State New
Delegated to: Jérémie Galarneau
Headers show
Series
  • [lttng-tools] Add test cases for optionssanitizing
Related show

Commit Message

Yannick Lamarre March 20, 2019, 4:33 p.m. UTC
Test cases now covers options that require full string matches which
were previously missing.

Signed-off-by: Yannick Lamarre <ylamarre at efficios.com>
---
 tests/regression/kernel/test_channel               | 24 ++++++++++-
 .../regression/tools/snapshots/test_ust_streaming  | 46 +++++++++++++++++++++-
 tests/regression/ust/test_event_basic              |  8 +++-
 tests/regression/ust/test_event_perf               |  6 ++-
 tests/utils/utils.sh                               | 26 ++++++++++++
 5 files changed, 106 insertions(+), 4 deletions(-)

Patch
diff mbox series

diff --git a/tests/regression/kernel/test_channel b/tests/regression/kernel/test_channel
index cb0fa518..f3fcee38 100755
--- a/tests/regression/kernel/test_channel
+++ b/tests/regression/kernel/test_channel
@@ -19,10 +19,31 @@  TEST_DESC="Kernel tracer - Channel configuration"
 
 CURDIR=$(dirname $0)/
 TESTDIR=$CURDIR/../..
-NUM_TESTS=8
+NUM_TESTS=14
 
 source $TESTDIR/utils/utils.sh
 
+function test_channel_output_opt()
+{
+	TRACE_PATH=$(mktemp -d)
+	SESSION_NAME="test_session_name"
+	CHANNEL_NAME="test_channel_name"
+	CHANNEL_NAME2="test_channel_name2"
+	create_lttng_session_ok "$SESSION_NAME" "$TRACE_PATH"
+
+	# Try to create channel with invalid output types
+	lttng_enable_kernel_channel_fail "$SESSION_NAME" "$CHANNEL_NAME" "--output=splicethenice"
+	lttng_enable_kernel_channel_fail "$SESSION_NAME" "$CHANNEL_NAME" "--output=mmap-o-spread"
+
+	# Try to create channel with valid output types
+	lttng_enable_kernel_channel_ok "$SESSION_NAME" "$CHANNEL_NAME" "--output=splice"
+	lttng_enable_kernel_channel_ok "$SESSION_NAME" "$CHANNEL_NAME2" "--output=mmap"
+
+	destroy_lttng_session_ok "$SESSION_NAME"
+
+	rm -rf "$TRACE_PATH"
+}
+
 function test_channel_buffer()
 {
 	TRACE_PATH=$(mktemp -d)
@@ -69,6 +90,7 @@  skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
 
 	test_channel_buffer
 	test_channel_buffer_too_large
+	test_channel_output_opt
 
 	stop_lttng_sessiond
 }
diff --git a/tests/regression/tools/snapshots/test_ust_streaming b/tests/regression/tools/snapshots/test_ust_streaming
index 20d4f7f6..6a926710 100755
--- a/tests/regression/tools/snapshots/test_ust_streaming
+++ b/tests/regression/tools/snapshots/test_ust_streaming
@@ -31,7 +31,7 @@  APPS_PID=
 
 TRACE_PATH=$(mktemp -d)
 
-NUM_TESTS=75
+NUM_TESTS=91
 
 source $TESTDIR/utils/utils.sh
 
@@ -233,6 +233,49 @@  function test_ust_n_snapshot()
 	return 0
 }
 
+# Test commandline parsing of snapshot options
+function test_ust_cmd_opt()
+{
+	diag "Test commandline parsing of snapshot options"
+	create_lttng_session_no_output $SESSION_NAME
+	enable_lttng_mmap_overwrite_ust_channel $SESSION_NAME $CHANNEL_NAME
+	enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
+	start_lttng_tracing_ok $SESSION_NAME
+
+	start_test_app
+
+	snapshot_add_output $SESSION_NAME "net://localhost"
+	lttng_snapshot_record $SESSION_NAME
+
+	# Validate test
+	echo $TRACE_PATH/$HOSTNAME/snapshot-1
+	validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/snapshot-1*
+	if [ $? -ne 0 ]; then
+		stop_test_apps
+		return $?
+	fi
+
+	lttng_snapshot_del_output_by_name_fail $SESSION_NAME "snap"
+	lttng_snapshot_del_output_by_name_fail $SESSION_NAME "snapshot-100"
+	lttng_snapshot_del_output_by_name_ok $SESSION_NAME "snapshot-1"
+	snapshot_add_output $SESSION_NAME "net://localhost"
+	lttng_snapshot_record $SESSION_NAME
+
+	# Validate test with the next ID since a del output was done prior.
+	validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/snapshot-2*
+	if [ $? -ne 0 ]; then
+		stop_test_apps
+		return $?
+	fi
+
+	stop_lttng_tracing_ok $SESSION_NAME
+	destroy_lttng_session_ok $SESSION_NAME
+
+	stop_test_apps
+
+	return 0
+}
+
 plan_tests $NUM_TESTS
 
 print_test_banner "$TEST_DESC"
@@ -251,6 +294,7 @@  tests=( test_ust_default_name_with_del
 	test_ust_custom_name
 	test_ust_default_name_custom_uri
 	test_ust_n_snapshot
+	test_ust_cmd_opt
 )
 
 for fct_test in ${tests[@]};
diff --git a/tests/regression/ust/test_event_basic b/tests/regression/ust/test_event_basic
index 9b58cb27..c0243728 100755
--- a/tests/regression/ust/test_event_basic
+++ b/tests/regression/ust/test_event_basic
@@ -24,7 +24,7 @@  SESSION_NAME="valid_filter"
 EVENT_NAME="tp:tptest"
 
 
-NUM_TESTS=25
+NUM_TESTS=28
 
 source $TESTDIR/utils/utils.sh
 
@@ -43,8 +43,14 @@  function test_event_basic()
 	create_lttng_session_ok $SESSION_NAME2 $TRACE_PATH
 
 	enable_ust_lttng_channel_ok $SESSION_NAME $CHAN_NAME
+
+	enable_ust_lttng_channel_fail $SESSION_NAME2 $CHAN_NAME2 "--output=splice"
+	enable_ust_lttng_channel_fail $SESSION_NAME2 $CHAN_NAME2 "--output=mmap-o-spread"
+
 	enable_ust_lttng_channel_ok $SESSION_NAME2 $CHAN_NAME2
 
+	enable_ust_lttng_channel_fail $SESSION_NAME2 $CHAN_NAME2
+
 	enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME $CHAN_NAME
 	enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME2 $CHAN_NAME
 	enable_ust_lttng_event_ok $SESSION_NAME2 $EVENT_NAME3 $CHAN_NAME2
diff --git a/tests/regression/ust/test_event_perf b/tests/regression/ust/test_event_perf
index 4e665e65..8a1fce63 100755
--- a/tests/regression/ust/test_event_perf
+++ b/tests/regression/ust/test_event_perf
@@ -22,7 +22,7 @@  CURDIR=$(dirname $0)/
 TESTDIR=$CURDIR/../..
 SESSION_NAME="perf_counters"
 EVENT_NAME="tp:tptest"
-NUM_TESTS=24
+NUM_TESTS=28
 NR_ITER=1
 NR_USEC_WAIT=1
 TESTAPP_PATH="$TESTDIR/utils/testapp"
@@ -55,6 +55,10 @@  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_fail $SESSION_NAME $CHAN_NAME "perform:thread:raw:r0110:test"
+	add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:threadish:raw:r0110:test"
+	add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:cpush:raw:r0110:test"
+	add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:thread:rawesome:r0110:test"
 	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:"
diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
index 94b3a3c4..cba38b93 100644
--- a/tests/utils/utils.sh
+++ b/tests/utils/utils.sh
@@ -1282,6 +1282,32 @@  function lttng_snapshot_del_output_fail ()
 	lttng_snapshot_del_output 1 "$@"
 }
 
+function lttng_snapshot_del_output_by_name ()
+{
+	local expected_to_fail=$1
+	local sess_name=$2
+	local name=$3
+
+	$TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot del-output -s $sess_name $name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
+	ret=$?
+	if [[ $expected_to_fail -eq "1" ]]; then
+		test "$ret" -ne "0"
+		ok $? "Deleted snapshot output name $name failed as expected"
+	else
+		ok $ret "Deleted snapshot output name $name"
+	fi
+}
+
+function lttng_snapshot_del_output_by_name_ok ()
+{
+	lttng_snapshot_del_output_by_name 0 "$@"
+}
+
+function lttng_snapshot_del_output_by_name_fail ()
+{
+	lttng_snapshot_del_output_by_name 1 "$@"
+}
+
 function lttng_snapshot_record ()
 {
 	local sess_name=$1