X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Futils%2Futils.sh;h=5a929020ed6d23e90c4f0cea0f4b9d03e00b62fc;hp=7181e3b88b8e60684a869dd81359dd5786a28981;hb=a87067e8d07db5ca4a851ddcde4524932dfd838a;hpb=59deec0c09b544d548711deaa6d8206efe99ea0d diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh index 7181e3b88..5a929020e 100644 --- a/tests/utils/utils.sh +++ b/tests/utils/utils.sh @@ -270,6 +270,41 @@ function lttng_disable_kernel_syscall_fail() lttng_disable_kernel_syscall 1 "$@" } +function lttng_enable_kernel_userspace_probe_event () +{ + local expected_to_fail="$1" + local sess_name="$2" + local target="$3" + local event_name="$4" + + "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" enable-event --kernel --userspace-probe="$target" "$event_name" -s "$sess_name" > "$OUTPUT_DEST" 2> "$ERROR_OUTPUT_DEST" + ret=$? + if [[ $expected_to_fail -eq "1" ]]; then + test $ret -ne "0" + ok $? "Enable kernel userspace probe event for session $sess_name failed as expected" + else + ok $ret "Enable kernel userspace probe event for session $sess_name" + fi +} + +function lttng_enable_kernel_userspace_probe_event_fail () +{ + lttng_enable_kernel_userspace_probe_event 1 "$@" +} + +function lttng_enable_kernel_userspace_probe_event_ok () +{ + lttng_enable_kernel_userspace_probe_event 0 "$@" +} + +function disable_kernel_lttng_userspace_probe_event_ok () +{ + local sess_name="$1" + local event_name="$2" + + "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" disable-event --kernel "$event_name" -s "$sess_name" > "$OUTPUT_DEST" 2> "$ERROR_OUTPUT_DEST" + ok $? "Disable kernel event $target for session $sess_name" +} function lttng_enable_kernel_channel() { local withtap=$1 @@ -611,9 +646,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 @@ -668,7 +703,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 @@ -1081,54 +1115,76 @@ function disable_python_lttng_event () ok $? "Disable Python event $event_name for session $sess_name" } -function start_lttng_tracing () +function start_lttng_tracing_opt () { - 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 start $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST ret=$? if [[ $expected_to_fail -eq "1" ]]; then test "$ret" -ne "0" - ok $? "Start tracing for session $sess_name failed as expected" + ret=$? + if [ $withtap -eq "1" ]; then + ok $? "Start tracing for session $sess_name failed as expected" + fi else - ok $ret "Start tracing for session $sess_name" + if [ $withtap -eq "1" ]; then + ok $ret "Start tracing for session $sess_name" + fi fi } function start_lttng_tracing_ok () { - start_lttng_tracing 0 "$@" + start_lttng_tracing_opt 1 0 "$@" } function start_lttng_tracing_fail () { - start_lttng_tracing 1 "$@" + start_lttng_tracing_opt 1 1 "$@" } -function stop_lttng_tracing () +function start_lttng_tracing_notap () { - local expected_to_fail=$1 - local sess_name=$2 + start_lttng_tracing_opt 0 1 "$@" +} + +function stop_lttng_tracing_opt () +{ + local withtap=$1 + local expected_to_fail=$2 + local sess_name=$3 $TESTDIR/../src/bin/lttng/$LTTNG_BIN stop $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST ret=$? if [[ $expected_to_fail -eq "1" ]]; then test "$ret" -ne "0" - ok $? "Stop lttng tracing for session $sess_name failed as expected" + ret=$? + if [ $withtap -eq "1" ]; then + ok $? "Stop lttng tracing for session $sess_name failed as expected" + fi else - ok $ret "Stop lttng tracing for session $sess_name" + if [ $withtap -eq "1" ]; then + ok $ret "Stop lttng tracing for session $sess_name" + fi fi } function stop_lttng_tracing_ok () { - stop_lttng_tracing 0 "$@" + stop_lttng_tracing_opt 1 0 "$@" } function stop_lttng_tracing_fail () { - stop_lttng_tracing 1 "$@" + stop_lttng_tracing_opt 1 1 "$@" +} + +function stop_lttng_tracing_notap () +{ + stop_lttng_tracing_opt 0 0 "$@" } function destroy_lttng_session () @@ -1229,7 +1285,6 @@ function lttng_snapshot_del_output_fail () function lttng_snapshot_record () { local sess_name=$1 - local trace_path=$2 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot record -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST ok $? "Snapshot recorded" @@ -1382,6 +1437,29 @@ function add_context_kernel_fail() add_context_lttng 1 -k "$@" } +function validate_metadata_event () +{ + local event_name=$1 + local nr_event_id=$2 + local trace_path=$3 + + local metadata_file=$(find $trace_path | grep metadata) + local metadata_path=$(dirname $metadata_file) + + which $BABELTRACE_BIN >/dev/null + skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches" + + local count=$($BABELTRACE_BIN --output-format=ctf-metadata $metadata_path | grep $event_name | wc -l) + + if [ "$count" -ne "$nr_event_id" ]; then + fail "Metadata match with the metadata of $count event(s) named $event_name" + diag "$count matching event id found in metadata" + else + pass "Metadata match with the metadata of $count event(s) named $event_name" + fi + +} + function trace_matches () { local event_name=$1 @@ -1413,12 +1491,12 @@ function trace_match_only() local count=$($BABELTRACE_BIN $trace_path | grep $event_name | wc -l) local total=$($BABELTRACE_BIN $trace_path | wc -l) - if [ "$nr_iter" -eq "$count" ] && [ "$total" -eq "$nr_iter" ]; then - pass "Trace match with $total event $event_name" - else - fail "Trace match" - diag "$total event(s) found, expecting $nr_iter of event $event_name and only found $count" - fi + if [ "$nr_iter" -eq "$count" ] && [ "$total" -eq "$nr_iter" ]; then + pass "Trace match with $total event $event_name" + else + fail "Trace match" + diag "$total event(s) found, expecting $nr_iter of event $event_name and only found $count" + fi } function validate_trace @@ -1496,7 +1574,7 @@ function validate_trace_exp() 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) + traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep --extended-regexp ${event_exp} | wc -l) if [ "$traced" -ne 0 ]; then pass "Validate trace for expression '${event_exp}', $traced events" else @@ -1515,11 +1593,11 @@ function validate_trace_only_exp() 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 count=$($BABELTRACE_BIN $trace_path | grep --extended-regexp ${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}" + 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" @@ -1690,3 +1768,34 @@ function lttng_enable_rotation_size_fail () { lttng_enable_rotation_size 1 $@ } + +function lttng_clear_session () +{ + local expected_to_fail=$1 + local sess_name=$2 + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN clear $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST + ret=$? + if [[ $expected_to_fail -eq "1" ]]; then + test "$ret" -ne "0" + ok $? "Expected fail on clear session $sess_name" + else + ok $ret "Clear session $sess_name" + fi +} + +function lttng_clear_session_ok () +{ + lttng_clear_session 0 $@ +} + +function lttng_clear_session_fail () +{ + lttng_clear_session 1 $@ +} + +function lttng_clear_all () +{ + $TESTDIR/../src/bin/lttng/$LTTNG_BIN clear --all 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST + ok $? "Clear all lttng sessions" +}