Tests: size-based rotation: implement a trace size cutoff protection
[lttng-tools.git] / tests / regression / tools / rotation / test_ust
index 3e926caa90b9706f7bc13e59787f84ca679633f1..043b123bfa2f640d6edbd0cb30a29cad50ef72a2 100755 (executable)
@@ -17,7 +17,7 @@ EVENT_NAME="tp:tptest"
 
 TRACE_PATH=$(mktemp --tmpdir -d -t tmp.test_ust_rotation_trace_path.XXXXXX)
 
-NUM_TESTS=138
+NUM_TESTS=152
 
 source $TESTDIR/utils/utils.sh
 source $CURDIR/rotate_utils.sh
@@ -255,6 +255,49 @@ function test_incompatible_sessions ()
        destroy_lttng_session_ok $SESSION_NAME
 }
 
+function produce_n_events ()
+{
+       local event_count=$1
+
+       $TESTAPP_BIN -i "$event_count" -w 0 > /dev/null 2>&1
+}
+
+function test_ust_local_size_uid ()
+{
+       diag "Rotate uid local session every 2MiB"
+       local size_threshold=$((2 * 1024 * 1024))
+
+       diag "Test ust local with size-based session rotation per-uid"
+       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+       enable_ust_lttng_channel_ok $SESSION_NAME "channel0" --buffers-uid
+       enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME "channel0"
+       lttng_enable_rotation_size_ok $SESSION_NAME $size_threshold
+       start_lttng_tracing_ok $SESSION_NAME
+
+       # Cutoff at 100 times the expected size
+       trace_until_n_archives produce_n_events "$TRACE_PATH" 5 $((5 * 100 * size_threshold))
+
+       destroy_lttng_session_ok $SESSION_NAME
+}
+
+function test_ust_local_size_pid ()
+{
+       diag "Rotate uid local session every 2MiB"
+       local size_threshold=$((2 * 1024 * 1024))
+
+       diag "Test ust local with size-based session rotation per-pid"
+       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+       enable_ust_lttng_channel_ok $SESSION_NAME "channel0" --buffers-pid
+       enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME "channel0"
+       lttng_enable_rotation_size_ok $SESSION_NAME $size_threshold
+       start_lttng_tracing_ok $SESSION_NAME
+
+       # Cutoff at 100 times the expected size
+       trace_until_n_archives produce_n_events "$TRACE_PATH" 3 $((3 * 100 * size_threshold))
+
+       destroy_lttng_session_ok $SESSION_NAME
+}
+
 plan_tests $NUM_TESTS
 
 print_test_banner "$TEST_DESC"
@@ -267,6 +310,7 @@ tests=( test_ust_streaming_uid test_ust_local_uid \
        test_ust_streaming_pid test_ust_local_pid \
        test_ust_local_timer_uid test_ust_streaming_timer_uid \
        test_ust_local_timer_pid test_ust_streaming_timer_pid \
+       test_ust_local_size_uid test_ust_local_size_pid \
        test_incompatible_sessions )
 
 for fct_test in ${tests[@]};
This page took 0.02573 seconds and 4 git commands to generate.