Backport: Tests: use modprobe to test for the presence of lttng-modules
[lttng-tools.git] / tests / utils / utils.sh
index 567929aa08840f79e251855500b74f7584f36331..53e80f53356def250e1ff6658e1342f49e147715 100644 (file)
@@ -125,12 +125,23 @@ function conf_proc_count()
        echo
 }
 
+# Check if base lttng-modules are present.
+# Bail out on failure
+function validate_lttng_modules_present ()
+{
+       modprobe -n lttng-tracer 2>/dev/null
+       if [ $? -ne 0  ]; then
+               BAIL_OUT "LTTng modules not detected."
+       fi
+}
+
 function enable_kernel_lttng_event
 {
-       local expected_to_fail="$1"
-       local sess_name="$2"
-       local event_name="$3"
-       local channel_name="$4"
+       local withtap="$1"
+       local expected_to_fail="$2"
+       local sess_name="$3"
+       local event_name="$4"
+       local channel_name="$5"
 
        if [ -z "$event_name" ]; then
                # Enable all event if no event name specified
@@ -148,20 +159,30 @@ function enable_kernel_lttng_event
        ret=$?
        if [[ $expected_to_fail -eq "1" ]]; then
                test $ret -ne "0"
-               ok $? "Enable kernel event $event_name for session $session_name on channel $channel_name failed as expected"
+               ret=$?
+               if [ $withtap -eq "1" ]; then
+                       ok $ret "Enable kernel event $event_name for session $session_name on channel $channel_name failed as expected"
+               fi
        else
-               ok $ret "Enable kernel event $event_name for session $sess_name"
+               if [ $withtap -eq "1" ]; then
+                       ok $ret "Enable kernel event $event_name for session $sess_name"
+               fi
        fi
 }
 
 function enable_kernel_lttng_event_ok ()
 {
-       enable_kernel_lttng_event 0 "$@"
+       enable_kernel_lttng_event 0 "$@"
 }
 
 function enable_kernel_lttng_event_fail ()
 {
-       enable_kernel_lttng_event 1 "$@"
+       enable_kernel_lttng_event 1 1 "$@"
+}
+
+function enable_kernel_lttng_event_notap ()
+{
+       enable_kernel_lttng_event 0 0 "$@"
 }
 
 # Old interface
@@ -251,28 +272,45 @@ function lttng_disable_kernel_syscall_fail()
 
 function lttng_enable_kernel_channel()
 {
-       local expected_to_fail=$1
-       local sess_name=$2
-       local channel_name=$3
+       local withtap=$1
+       local expected_to_fail=$2
+       local sess_name=$3
+       local channel_name=$4
+       local opt=$5
 
-       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -k $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
+       $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -k $channel_name -s $sess_name $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
        ret=$?
        if [[ $expected_to_fail -eq "1" ]]; then
                test "$ret" -ne "0"
-               ok $? "Enable channel $channel_name for session $sess_name failed as expected"
+               ret=$?
+               if [ $withtap -eq "1" ]; then
+                       ok $ret "Enable channel $channel_name for session $sess_name failed as expected"
+               fi
        else
-               ok $ret "Enable channel $channel_name for session $sess_name"
+               if [ $withtap -eq "1" ]; then
+                       ok $ret "Enable channel $channel_name for session $sess_name"
+               fi
        fi
 }
 
 function lttng_enable_kernel_channel_ok()
 {
-       lttng_enable_kernel_channel 0 "$@"
+       lttng_enable_kernel_channel 0 "$@"
 }
 
 function lttng_enable_kernel_channel_fail()
 {
-       lttng_enable_kernel_channel 1 "$@"
+       lttng_enable_kernel_channel 1 1 "$@"
+}
+
+function lttng_enable_kernel_channel_notap()
+{
+       lttng_enable_kernel_channel 0 0 "$@"
+}
+
+function enable_kernel_lttng_channel_ok()
+{
+       lttng_enable_kernel_channel 1 0 "$@"
 }
 
 function lttng_disable_kernel_channel()
@@ -573,9 +611,9 @@ function stop_lttng_consumerd_opt()
        if [ $withtap -eq "1" ]; then
                diag "Killing $CONSUMERD_BIN pids: $(echo $PID_CONSUMERD | tr '\n' ' ')"
        fi
+
        kill $kill_opt $PID_CONSUMERD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
        retval=$?
-       set +x
 
        if [ $? -eq 1 ]; then
                if [ $withtap -eq "1" ]; then
@@ -630,7 +668,6 @@ function sigstop_lttng_consumerd_opt()
        fi
        kill $kill_opt $PID_CONSUMERD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
        retval=$?
-       set +x
 
        if [ $? -eq 1 ]; then
                if [ $withtap -eq "1" ]; then
@@ -685,6 +722,15 @@ function create_lttng_session_no_output ()
        ok $? "Create session $sess_name in no-output mode"
 }
 
+function create_lttng_session_uri () {
+    local sess_name=$1
+    local uri=$2
+    local opts="${@:3}"
+
+    $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name -U $uri $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
+    ok $? "Create session $sess_name with uri:$uri and opts: $opts"
+}
+
 function create_lttng_session ()
 {
        local withtap=$1
@@ -1086,30 +1132,40 @@ function stop_lttng_tracing_fail ()
 
 function destroy_lttng_session ()
 {
-       local expected_to_fail=$1
-       local sess_name=$2
+       local withtap=$1
+       local expected_to_fail=$2
+       local sess_name=$3
 
        $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
        ret=$?
        if [[ $expected_to_fail -eq "1" ]]; then
                test "$ret" -ne "0"
-               ok $? "Destroy session $sess_name failed as expected"
+               ret=$?
+               if [ $withtap -eq "1" ]; then
+                       ok $ret "Destroy session $sess_name failed as expected"
+               fi
        else
-               ok $ret "Destroy session $sess_name"
+               if [ $withtap -eq "1" ]; then
+                       ok $ret "Destroy session $sess_name"
+               fi
        fi
 }
 
 function destroy_lttng_session_ok ()
 {
-       destroy_lttng_session 0 "$@"
+       destroy_lttng_session 0 "$@"
 
 }
 
 function destroy_lttng_session_fail ()
 {
-       destroy_lttng_session 1 "$@"
+       destroy_lttng_session 1 "$@"
 }
 
+function destroy_lttng_session_notap ()
+{
+       destroy_lttng_session 0 0 "$@"
+}
 
 function destroy_lttng_sessions ()
 {
@@ -1460,7 +1516,14 @@ function validate_trace_empty()
            skip 0 "Babeltrace binary not found. Skipping trace validation"
        fi
 
-       traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | wc -l)
+       events=$($BABELTRACE_BIN $trace_path 2>/dev/null)
+       ret=$?
+       if [ $ret -ne 0 ]; then
+               fail "Failed to parse trace"
+               return $ret
+       fi
+
+       traced=$(echo -n "$events" | wc -l)
        if [ "$traced" -eq 0 ]; then
                pass "Validate empty trace"
        else
This page took 0.026572 seconds and 5 git commands to generate.