SESSION_NAME=""
CHANNEL_NAME="snapchan"
-TRACE_PATH=$(mktemp -d)
+TRACE_PATH=$(mktemp --tmpdir -d tmp.test_snapshots_kernel_trace_path.XXXXXX)
-NUM_TESTS=2060
+NUM_TESTS=2061
source $TESTDIR/utils/utils.sh
destroy_lttng_session_ok $SESSION_NAME
# Validate test
+ validate_trace_path_kernel_snapshot "$TRACE_PATH" "" "snapshot-1" 0 ""
validate_trace $EVENT_NAME $TRACE_PATH/
if [ $? -eq 0 ]; then
# Only delete if successful
rm -rf $TRACE_PATH
- else
- break
fi
}
destroy_lttng_session_ok $SESSION_NAME
}
-function true_loop_cpu0()
+function generate_filter_events_cpu0()
{
- # Generate many system call events (fill buffers) on CPU 0
- for a in $(seq 1 $1); do
- taskset 0x00000001 /bin/true;
- done
+ # Generate many events (fill buffers) on CPU 0
+ taskset 0x00000001 /bin/echo -n "$1" > /proc/lttng-test-filter-event 2> /dev/null
}
function test_kernel_local_snapshot_discard ()
{
diag "Test local kernel snapshots with small discard buffers"
+
+ local event_name="lttng_test_filter_event"
+
+ modprobe lttng-test
create_lttng_session_no_output $SESSION_NAME
enable_lttng_mmap_discard_small_kernel_channel $SESSION_NAME \
$CHANNEL_NAME
- lttng_enable_kernel_syscall_ok $SESSION_NAME -a $CHANNEL_NAME
+ enable_kernel_lttng_event_ok $SESSION_NAME $event_name $CHANNEL_NAME
start_lttng_tracing_ok $SESSION_NAME
lttng_snapshot_add_output_ok $SESSION_NAME file://$TRACE_PATH
- true_loop_cpu0 10000
+ generate_filter_events_cpu0 10000
# Take first snapshot, remember first line.
lttng_snapshot_record $SESSION_NAME
rm -rf $TRACE_PATH
- true_loop_cpu0 10000
+ generate_filter_events_cpu0 10000
# Take 2nd snapshot, compare first line. In discard mode, they
# should still be the same.
rm -rf $TRACE_PATH
if [ x"$FIRST_LINE" != x"$FIRST_LINE_2" ]; then
- fail "First snapshot event do not match."
+ fail "First snapshot event do not match"
else
- pass "First snapshot event match."
+ pass "First snapshot event match"
fi
stop_lttng_tracing_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
+ modprobe --remove lttng-test
}
function test_kernel_local_snapshot_overwrite_small_buffers ()
{
diag "Test local kernel snapshot with small overwrite buffers"
+
+ local event_name="lttng_test_filter_event"
+
+ modprobe lttng-test
create_lttng_session_no_output $SESSION_NAME
enable_lttng_mmap_overwrite_small_kernel_channel $SESSION_NAME \
$CHANNEL_NAME
- lttng_enable_kernel_syscall_ok $SESSION_NAME -a $CHANNEL_NAME
+ enable_kernel_lttng_event_ok $SESSION_NAME $event_name $CHANNEL_NAME
start_lttng_tracing_ok $SESSION_NAME
lttng_snapshot_add_output_ok $SESSION_NAME file://$TRACE_PATH
- true_loop_cpu0 10000
+ generate_filter_events_cpu0 10000
# Take first snapshot, remember first line.
lttng_snapshot_record $SESSION_NAME
rm -rf $TRACE_PATH
- true_loop_cpu0 10000
+ generate_filter_events_cpu0 10000
# Take 2nd snapshot, compare first line. In overwrite mode, they
# WILL be different.
rm -rf $TRACE_PATH
if [ x"$FIRST_LINE" != x"$FIRST_LINE_2" ]; then
- pass "First snapshot event do not match."
+ pass "First snapshot event do not match"
else
- fail "First snapshot event match."
+ fail "First snapshot event match"
fi
stop_lttng_tracing_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
+ modprobe --remove lttng-test
}
function test_kernel_1000_local_snapshots ()
print_test_banner "$TEST_DESC"
+bail_out_if_no_babeltrace
+
+
if [ "$(id -u)" == "0" ]; then
isroot=1
else
isroot=0
fi
-skip $isroot "Root access is needed. Skipping all kernel snapshot tests." $NUM_TESTS ||
+skip $isroot "Root access is needed. Skipping all kernel snapshot tests" $NUM_TESTS ||
{
validate_lttng_modules_present