X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Futils%2Futils.sh;h=c3d8bd4d999edf6736715e20422d7e0044f8e76f;hb=464bd4b0ed84ff139589fcd09cd20a4661ba1017;hp=117f72f1f91cc4b75dd4fbb485c50e41fc447fc7;hpb=504d4ace8d2c38787fe40b7e74cbb932cb7f3d89;p=lttng-tools.git diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh index 117f72f1f..c3d8bd4d9 100644 --- a/tests/utils/utils.sh +++ b/tests/utils/utils.sh @@ -102,6 +102,137 @@ function lttng_enable_kernel_event ok $? "Enable kernel event $event_name for session $sess_name" } +function lttng_enable_kernel_syscall() +{ + local expected_to_fail=$1 + local sess_name=$2 + local syscall_name=$3 + local channel_name=$4 + + if [ -z $syscall_name ]; then + # Enable all event if no syscall name specified + syscall_name="-a" + fi + + if [ -z $channel_name ]; then + # default channel if none specified + chan="" + else + chan="-c $channel_name" + fi + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --syscall "$syscall_name" $chan -s $sess_name -k >$OUTPUT_DEST + ret=$? + if [[ $expected_to_fail -eq "1" ]]; then + test $ret -ne "0" + ok $? "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name fail as expected" + else + ok $ret "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name" + fi +} + +function lttng_enable_kernel_syscall_ok() +{ + lttng_enable_kernel_syscall 0 ${*} +} + +function lttng_enable_kernel_syscall_fail() +{ + lttng_enable_kernel_syscall 1 ${*} +} + +function lttng_disable_kernel_syscall() +{ + local expected_to_fail=$1 + local sess_name=$2 + local syscall_name=$3 + local channel_name=$4 + + if [ -z $syscall_name ]; then + # Enable all event if no syscall name specified + syscall_name="-a" + fi + + if [ -z $channel_name ]; then + # default channel if none specified + chan="" + else + chan="-c $channel_name" + fi + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event --syscall "$syscall_name" $chan -s $sess_name -k >$OUTPUT_DEST + + ret=$? + if [[ $expected_to_fail -eq "1" ]]; then + test $ret -ne "0" + ok $? "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name fail as expected" + else + ok $ret "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name" + fi +} + +function lttng_disable_kernel_syscall_ok() +{ + lttng_disable_kernel_syscall 0 ${*} +} + +function lttng_disable_kernel_syscall_fail() +{ + lttng_disable_kernel_syscall 1 ${*} +} + +function lttng_enable_kernel_channel() +{ + local expected_to_fail=$1 + local sess_name=$2 + local channel_name=$3 + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -k $channel_name -s $sess_name >$OUTPUT_DEST + ret=$? + if [[ $expected_to_fail -eq "1" ]]; then + test "$ret" -ne "0" + ok $? "Expected failure on kernel channel creation $channel_name in $sess_name" + else + ok $ret "Enable channel $channel_name for session $sess_name" + fi +} + +function lttng_enable_kernel_channel_ok() +{ + lttng_enable_kernel_channel 0 ${*} +} + +function lttng_enable_kernel_channel_fail() +{ + lttng_enable_kernel_channel 1 ${*} +} + +function lttng_disable_kernel_channel() +{ + local expected_to_fail=$1 + local sess_name=$2 + local channel_name=$3 + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-channel -k $channel_name -s $sess_name >$OUTPUT_DEST + ret=$? + if [[ $expected_to_fail -eq "1" ]]; then + test "$ret" -ne "0" + ok $? "Expected failure on kernel channel creation $channel_name in $sess_name" + else + ok $ret "disable channel $channel_name for session $sess_name" + fi +} + +function lttng_disable_kernel_channel_ok() +{ + lttng_disable_kernel_channel 0 ${*} +} + +function lttng_disable_kernel_channel_fail() +{ + lttng_disable_kernel_channel 1 ${*} +} + function start_lttng_relayd { local opt=$1 @@ -180,7 +311,7 @@ function start_lttng_sessiond() 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 --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 & + #$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" fi @@ -383,6 +514,41 @@ function enable_log4j_lttng_event_loglevel() ok $? "Enable LOG4J event $event_name for session $sess_name with loglevel $loglevel" } +function enable_python_lttng_event() +{ + sess_name=$1 + event_name="$2" + channel_name=$3 + + if [ -z $channel_name ]; then + # default channel if none specified + chan="" + else + chan="-c $channel_name" + fi + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -p >$OUTPUT_DEST + ok $? "Enable Python event $event_name for session $sess_name" +} + +function enable_python_lttng_event_loglevel() +{ + local sess_name=$1 + local event_name="$2" + local loglevel=$3 + local channel_name=$4 + + if [ -z $channel_name ]; then + # default channel if none specified + chan="" + else + chan="-c $channel_name" + fi + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --loglevel $loglevel "$event_name" $chan -s $sess_name -p >$OUTPUT_DEST + ok $? "Enable Python event $event_name for session $sess_name with loglevel $loglevel" +} + function enable_ust_lttng_event_filter() { local sess_name="$1" @@ -448,6 +614,15 @@ function disable_log4j_lttng_event () ok $? "Disable LOG4J event $event_name for session $sess_name" } +function disable_python_lttng_event () +{ + local sess_name="$1" + local event_name="$2" + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -p >$OUTPUT_DEST + ok $? "Disable Python event $event_name for session $sess_name" +} + function start_lttng_tracing () { local sess_name=$1 @@ -628,3 +803,63 @@ function validate_trace IFS=$OLDIFS return $ret } + +function validate_trace_exp() +{ + local event_exp=$1 + local trace_path=$2 + + which $BABELTRACE_BIN >/dev/null + skip $? -ne 0 "Babeltrace binary not found. Skipping trace validation" + + traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep ${event_exp} | wc -l) + if [ "$traced" -ne 0 ]; then + pass "Validate trace for expression '${event_exp}', $traced events" + else + fail "Validate trace for expression '${event_exp}'" + diag "Found $traced occurences of '${event_exp}'" + fi + ret=$? + return $ret +} + +function validate_trace_only_exp() +{ + local event_exp=$1 + local trace_path=$2 + + which $BABELTRACE_BIN >/dev/null + skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches" + + local count=$($BABELTRACE_BIN $trace_path | grep ${event_exp} | wc -l) + local total=$($BABELTRACE_BIN $trace_path | wc -l) + + if [ "$count" -ne 0 ] && [ "$total" -eq "$count" ]; then + pass "Trace match with $total for expression '${event_exp}" + else + fail "Trace match" + diag "$total syscall event(s) found, only syscalls matching expression '${event_exp}' ($count occurrences) are expected" + fi + ret=$? + return $ret +} + +function validate_trace_empty() +{ + local trace_path=$1 + + which $BABELTRACE_BIN >/dev/null + if [ $? -ne 0 ]; then + skip 0 "Babeltrace binary not found. Skipping trace validation" + fi + + traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | wc -l) + if [ "$traced" -eq 0 ]; then + pass "Validate empty trace" + else + fail "Validate empty trace" + diag "Found $traced events in trace" + fi + ret=$? + return $ret +}