+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 -c "$(get_any_available_cpu)" -p $$ 1>/dev/null 2>&1
+ 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" "file://$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 "$(get_any_available_cpu)" $$ 1>/dev/null 2>&1
+ 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" "file://$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
+}
+