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 ]]
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
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"
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
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"
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
}
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
}