X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Futils%2Futils.sh;h=fdb5a853716a4eb07faa2b9ea6c1ba6da85c4824;hb=af60522694b4acd993bde4a69ed3f0f7dfcd1aeb;hp=da2efe91a72264b93cd5c67b8d46cf28c53408d2;hpb=086e6add1bf22aa48ef5a3c3e800eea7020a1fed;p=lttng-tools.git diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh index da2efe91a..fdb5a8537 100644 --- a/tests/utils/utils.sh +++ b/tests/utils/utils.sh @@ -1,5 +1,3 @@ -#!/src/bin/bash -# # Copyright (C) - 2012 David Goulet # # This library is free software; you can redistribute it and/or modify it under @@ -35,10 +33,12 @@ KERNEL_MAJOR_VERSION=2 KERNEL_MINOR_VERSION=6 KERNEL_PATCHLEVEL_VERSION=27 -# We set the default UST register timeout to "wait forever", so that -# basic tests don't have to worry about hitting timeouts on busy -# systems. Specialized tests should test those corner-cases. +# We set the default UST register timeout and network and app socket timeout to +# "wait forever", so that basic tests don't have to worry about hitting +# timeouts on busy systems. Specialized tests should test those corner-cases. export LTTNG_UST_REGISTER_TIMEOUT=-1 +export LTTNG_NETWORK_SOCKET_TIMEOUT=-1 +export LTTNG_APP_SOCKET_TIMEOUT=-1 # We set the default lttng-sessiond path to /bin/true to prevent the spawning # of a daemonized sessiond. This is necessary since 'lttng create' will spawn @@ -304,21 +304,22 @@ function lttng_disable_kernel_channel_fail() function start_lttng_relayd_opt() { local withtap=$1 - local opt=$2 + local process_mode=$2 + local opt=$3 DIR=$(readlink -f $TESTDIR) if [ -z $(pgrep $RELAYD_MATCH) ]; then - $DIR/../src/bin/lttng-relayd/$RELAYD_BIN -b $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST + $DIR/../src/bin/lttng-relayd/$RELAYD_BIN $process_mode $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST #$DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt -vvv >>/tmp/relayd.log 2>&1 & if [ $? -eq 1 ]; then if [ $withtap -eq "1" ]; then - fail "Start lttng-relayd (opt: $opt)" + fail "Start lttng-relayd (process mode: $process_mode opt: $opt)" fi return 1 else if [ $withtap -eq "1" ]; then - pass "Start lttng-relayd (opt: $opt)" + pass "Start lttng-relayd (process mode: $process_mode opt: $opt)" fi fi else @@ -330,12 +331,12 @@ function start_lttng_relayd_opt() function start_lttng_relayd() { - start_lttng_relayd_opt 1 "$@" + start_lttng_relayd_opt 1 "-b" "$@" } function start_lttng_relayd_notap() { - start_lttng_relayd_opt 0 "$@" + start_lttng_relayd_opt 0 "-b" "$@" } function stop_lttng_relayd_opt() @@ -662,6 +663,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 expected_to_fail=$1 @@ -1063,14 +1073,15 @@ function lttng_snapshot_add_output () local expected_to_fail=$1 local sess_name=$2 local trace_path=$3 + local opts=$4 - $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot add-output -s $sess_name file://$trace_path 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST + $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot add-output -s $sess_name $trace_path $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST ret=$? if [[ $expected_to_fail -eq 1 ]]; then test "$ret" -ne "0" - ok $? "Added snapshot output file://$trace_path failed as expected" + ok $? "Added snapshot output $trace_path failed as expected" else - ok $ret "Added snapshot output file://$trace_path" + ok $ret "Added snapshot output $trace_path" fi } @@ -1137,10 +1148,27 @@ function lttng_save() function lttng_load() { - local opts=$1 + local expected_to_fail=$1 + local opts=$2 $TESTDIR/../src/bin/lttng/$LTTNG_BIN load $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST - ok $? "Load command with opts: $opts" + ret=$? + if [[ $expected_to_fail -eq "1" ]]; then + test $ret -ne "0" + ok $? "Load command failed as expected with opts: $opts" + else + ok $ret "Load command with opts: $opts" + fi +} + +function lttng_load_ok() +{ + lttng_load 0 "$@" +} + +function lttng_load_fail() +{ + lttng_load 1 "$@" } function lttng_track() @@ -1294,6 +1322,35 @@ function validate_trace return $ret } +function validate_trace_count +{ + local event_name=$1 + local trace_path=$2 + local expected_count=$3 + + which $BABELTRACE_BIN >/dev/null + if [ $? -ne 0 ]; then + skip 0 "Babeltrace binary not found. Skipping trace validation" + fi + + cnt=0 + OLDIFS=$IFS + IFS="," + for i in $event_name; do + traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep $i | wc -l) + if [ "$traced" -ne 0 ]; then + pass "Validate trace for event $i, $traced events" + else + fail "Validate trace for event $i" + diag "Found $traced occurences of $i" + fi + cnt=$(($cnt + $traced)) + done + IFS=$OLDIFS + test $cnt -eq $expected_count + ok $? "Read a total of $cnt events, expected $expected_count" +} + function trace_first_line { local trace_path=$1 @@ -1355,7 +1412,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 @@ -1366,29 +1430,54 @@ function validate_trace_empty() return $ret } -function metadata_regenerate () +function regenerate_metadata () +{ + local expected_to_fail=$1 + local sess_name=$2 + + $TESTDIR/../src/bin/lttng/$LTTNG_BIN regenerate metadata -s $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 regenerate metadata $sess_name" + else + ok $ret "Metadata regenerate $sess_name" + fi +} + +function regenerate_metadata_ok () +{ + regenerate_metadata 0 "$@" +} + +function regenerate_metadata_fail () +{ + regenerate_metadata 1 "$@" +} + +function regenerate_statedump () { local expected_to_fail=$1 local sess_name=$2 - $TESTDIR/../src/bin/lttng/$LTTNG_BIN metadata regenerate -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST + $TESTDIR/../src/bin/lttng/$LTTNG_BIN regenerate statedump -s $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 regenerate $sess_name" + ok $? "Expected fail on regenerate statedump $sess_name" else ok $ret "Metadata regenerate $sess_name" fi } -function metadata_regenerate_ok () +function regenerate_statedump_ok () { - metadata_regenerate 0 "$@" + regenerate_statedump 0 "$@" } -function metadata_regenerate_fail () +function regenerate_statedump_fail () { - metadata_regenerate 1 "$@" + regenerate_statedump 1 "$@" } function destructive_tests_enabled ()