TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
NR_ITER=100
NR_USEC_WAIT=1
-NUM_TESTS=149
+NUM_TESTS=178
source $TESTDIR/utils/utils.sh
sess_name="$1"
exclusion="$2"
- $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event -a -s $sess_name -u -x "$exclusion"
+ $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event -u "tp:*" -s $sess_name -x "$exclusion"
}
function run_apps
{
- $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT >/dev/null 2>&1
+ $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1
+ ok $? "Running test application"
+}
+
+# Testing for the absence of an event when testing exclusion is tricky. An
+# event could be absent because our exclusion mechanism works but also because
+# the event was not generate in the first place. This function test the ability
+# of our test suite to generate events.
+function dry_run
+{
+ trace_path=$(mktemp -d)
+
+ # Create session
+ create_lttng_session_ok $SESSION_NAME $trace_path
+
+ $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event -u "tp:*" -s $SESSION_NAME > /dev/null
+ ok $? "Enabling events without exclusion"
+
+ # Trace apps
+ start_lttng_tracing_ok $SESSION_NAME
+ run_apps
+ stop_lttng_tracing_ok $SESSION_NAME
+
+ nb_events=$(babeltrace $trace_path | wc -l)
+ if [ "$nb_events" -ne "0" ]; then
+ ok 0 "Events were found during the dry run without exclusion"
+ else
+ fail "No events were found during the dry run without exclusion"
+ fi
+
+ rm -rf $trace_path
+
+ # Destroy session
+ destroy_lttng_session_ok $SESSION_NAME
}
function test_exclusion
# Destroy session
destroy_lttng_session_ok $SESSION_NAME
- stats=`babeltrace $trace_path | $STATS_BIN --tracepoint "$event_name_expected_to_be_missing" | grep -v index`
+ stats=`babeltrace $trace_path | $STATS_BIN --tracepoint "$event_name_expected_to_be_missing" | grep -v index 2> /dev/null`
if [ ! -z "$stats" ]; then
fail "Excluded event \"$event_name_expected_to_be_missing\" was found in trace!"
else
start_lttng_sessiond
+dry_run
+
test_exclusion 'tp:tptest2' 'tp:tptest2'
test_exclusion 'tp:tptest3' 'tp:tptest3'
test_exclusion 'tp:tptest*' 'tp:tptest1'