From: Jérémie Galarneau Date: Wed, 22 Jun 2022 19:05:55 +0000 (-0400) Subject: Tests: rotation: add a kernel size-based rotation test X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=34764ec838debdb5fdb59e178b31a44047ea7229 Tests: rotation: add a kernel size-based rotation test Change-Id: I035814dcbe5e74227f907bae300eacffd132d80f Signed-off-by: Jérémie Galarneau --- diff --git a/tests/regression/tools/rotation/rotate_utils.sh b/tests/regression/tools/rotation/rotate_utils.sh index 2803517f2..8ac2afab7 100644 --- a/tests/regression/tools/rotation/rotate_utils.sh +++ b/tests/regression/tools/rotation/rotate_utils.sh @@ -145,17 +145,18 @@ function rotate_timer_test () shopt -u extglob } -function wait_for_archives () +function trace_until_n_archives () { - local trace_path=$1 - local target_archive_count=$2 + local produce_events=$1 + local trace_path=$2 + local target_archive_count=$3 local archive_count=0 diag "Waiting for $target_archive_count size-based rotations to occur" while [[ archive_count -lt $target_archive_count ]] do - archive_count=$(find "$TRACE_PATH" -mindepth 2 -maxdepth 2 -type d -path "*archives*" | wc -l) - $TESTAPP_BIN -i 2000 -w 0 > /dev/null 2>&1 + archive_count=$(find "$trace_path" -mindepth 2 -maxdepth 2 -type d -path "*archives*" | wc -l) + $produce_events 2000 done [[ $archive_count -eq $target_archive_count ]] diff --git a/tests/regression/tools/rotation/test_kernel b/tests/regression/tools/rotation/test_kernel index 3b7b94fb1..62bc5c33d 100755 --- a/tests/regression/tools/rotation/test_kernel +++ b/tests/regression/tools/rotation/test_kernel @@ -12,7 +12,7 @@ EVENT_NAME="lttng_test_filter_event" TRACE_PATH=$(mktemp --tmpdir -d -t tmp.rotation_kernel_tracing.XXXXXX) -NUM_TESTS=60 +NUM_TESTS=66 source $TESTDIR/utils/utils.sh source $CURDIR/rotate_utils.sh @@ -78,6 +78,29 @@ function test_kernel_streaming_timer () rotate_timer_test "${TRACE_PATH}/${HOSTNAME}/${SESSION_NAME}*/archives" 0 } +function produce_n_events () +{ + local event_count=$1 + + echo -n $event_count > /proc/lttng-test-filter-event +} + +function test_kernel_local_size () +{ + diag "Rotate kernel 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_kernel_lttng_event_ok $SESSION_NAME $EVENT_NAME "channel0" + lttng_enable_rotation_size_ok $SESSION_NAME $size_threshold + start_lttng_tracing_ok $SESSION_NAME + + trace_until_n_archives produce_n_events "$TRACE_PATH" 5 + + destroy_lttng_session_ok $SESSION_NAME +} + plan_tests $NUM_TESTS print_test_banner "$TEST_DESC" @@ -97,7 +120,7 @@ skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_ start_lttng_sessiond modprobe lttng-test - tests=( test_kernel_streaming test_kernel_local test_kernel_local_timer test_kernel_streaming_timer) + tests=( test_kernel_streaming test_kernel_local test_kernel_local_timer test_kernel_streaming_timer test_kernel_local_size ) for fct_test in ${tests[@]}; do diff --git a/tests/regression/tools/rotation/test_ust b/tests/regression/tools/rotation/test_ust index 7c52f34bc..aaeee4454 100755 --- a/tests/regression/tools/rotation/test_ust +++ b/tests/regression/tools/rotation/test_ust @@ -255,6 +255,13 @@ 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" @@ -267,7 +274,7 @@ function test_ust_local_size_uid () lttng_enable_rotation_size_ok $SESSION_NAME $size_threshold start_lttng_tracing_ok $SESSION_NAME - wait_for_archives "$TRACE_PATH" 5 + trace_until_n_archives produce_n_events "$TRACE_PATH" 5 destroy_lttng_session_ok $SESSION_NAME } @@ -284,7 +291,7 @@ function test_ust_local_size_pid () lttng_enable_rotation_size_ok $SESSION_NAME $size_threshold start_lttng_tracing_ok $SESSION_NAME - wait_for_archives "$TRACE_PATH" 3 + trace_until_n_archives produce_n_events "$TRACE_PATH" 3 destroy_lttng_session_ok $SESSION_NAME }