+function test_ust_local_snapshot_small_discard_buffers ()
+{
+ NR_ITER=10000
+ NR_USEC_WAIT=0
+ OLDCPUSET=$(taskset -p $$)
+
+ diag "Test local UST snapshots with small discard buffers"
+ taskset -p 0x1 $$ 1>/dev/null 2>&1 # CPU 0 only
+ create_lttng_session_no_output $SESSION_NAME
+ enable_mmap_small_discard_ust_channel $SESSION_NAME $CHANNEL_NAME
+ enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
+ start_lttng_tracing_ok $SESSION_NAME
+ lttng_snapshot_add_output_ok $SESSION_NAME $TRACE_PATH
+
+ # Run test apps, wait for them to complete.
+ start_test_app
+ wait_test_apps
+
+ # Take first snapshot, remember first line.
+ lttng_snapshot_record $SESSION_NAME
+ FIRST_LINE="$(trace_first_line $TRACE_PATH/)"
+ diag "First line (1st snapshot): $FIRST_LINE"
+ rm -rf $TRACE_PATH/
+
+ # Run test apps, wait for them to complete.
+ start_test_app
+ wait_test_apps
+
+ # Take second snapshot, remember first line.
+ lttng_snapshot_record $SESSION_NAME
+ FIRST_LINE_2="$(trace_first_line $TRACE_PATH/)"
+ diag "First line (2nd snapshot): $FIRST_LINE_2"
+ rm -rf $TRACE_PATH/
+
+ if [ x"$FIRST_LINE" != x"$FIRST_LINE_2" ]; then
+ fail "First snapshot event do not match."
+ else
+ pass "First snapshot event match."
+ fi
+
+ stop_lttng_tracing_ok $SESSION_NAME
+ destroy_lttng_session_ok $SESSION_NAME
+ taskset -p $OLDCPUSET $$ 1>/dev/null 2>&1
+}
+
+function test_ust_local_snapshot_small_overwrite_buffers ()
+{
+ NR_ITER=10000
+ NR_USEC_WAIT=0
+ OLDCPUSET=$(taskset -p $$)
+
+ diag "Test local UST snapshots with small overwrite buffers"
+ taskset -p 0x1 $$ 1>/dev/null 2>&1 # CPU 0 only
+ create_lttng_session_no_output $SESSION_NAME
+ enable_mmap_small_overwrite_ust_channel $SESSION_NAME $CHANNEL_NAME
+ enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
+ start_lttng_tracing_ok $SESSION_NAME
+ lttng_snapshot_add_output_ok $SESSION_NAME $TRACE_PATH
+
+ # Run test apps, wait for them to complete.
+ start_test_app
+ wait_test_apps
+
+ # Take first snapshot, remember first line.
+ lttng_snapshot_record $SESSION_NAME
+ FIRST_LINE="$(trace_first_line $TRACE_PATH/)"
+ diag "First line (1st snapshot): $FIRST_LINE"
+ rm -rf $TRACE_PATH/
+
+ # Run test apps, wait for them to complete.
+ start_test_app
+ wait_test_apps
+
+ # Take second snapshot, remember first line.
+ lttng_snapshot_record $SESSION_NAME
+ FIRST_LINE_2="$(trace_first_line $TRACE_PATH/)"
+ diag "First line (2nd snapshot): $FIRST_LINE_2"
+ rm -rf $TRACE_PATH/
+
+ if [ x"$FIRST_LINE" != x"$FIRST_LINE_2" ]; then
+ pass "First snapshot event do not match."
+ else
+ fail "First snapshot event match."
+ fi
+
+ stop_lttng_tracing_ok $SESSION_NAME
+ destroy_lttng_session_ok $SESSION_NAME
+ taskset -p $OLDCPUSET $$ 1>/dev/null 2>&1
+}
+