X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Ftracefile-limits%2Ftest_tracefile_size;h=bbfc27c9e01ff25c383f8787a0879ce34b3d47be;hp=9fa772eb27a93e392ad1da1c60894d1f2373fbed;hb=33e557114a2ba28e26e220a833e8a449c78b8b65;hpb=e563bbdb8fa6592790e9ac4e9db7d9decf022023 diff --git a/tests/regression/tools/tracefile-limits/test_tracefile_size b/tests/regression/tools/tracefile-limits/test_tracefile_size index 9fa772eb2..bbfc27c9e 100755 --- a/tests/regression/tools/tracefile-limits/test_tracefile_size +++ b/tests/regression/tools/tracefile-limits/test_tracefile_size @@ -1,19 +1,8 @@ #!/bin/bash # -# Copyright (C) - 2013 Christian Babeux +# Copyright (C) 2013 Christian Babeux # -# This library is free software; you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation; version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this library; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# SPDX-License-Identifier: LGPL-2.1-only TEST_DESC="Tracefile size limits" @@ -22,11 +11,13 @@ TESTDIR=$CURDIR/../../.. NR_ITER=1000 +PAGE_SIZE=$(getconf PAGE_SIZE) + TESTAPP_PATH="$TESTDIR/utils/testapp" TESTAPP_NAME="gen-ust-events" TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME" -NUM_TESTS=42 +NUM_TESTS=74 source $TESTDIR/utils/utils.sh @@ -46,6 +37,7 @@ function enable_lttng_channel_size_limit () $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel \ -u $channel_name -s $sess_name --buffers-pid \ + --subbuf-size=$PAGE_SIZE \ -C $tracefile_size_limit >/dev/null 2>&1 ok $? "$test_name" @@ -92,11 +84,11 @@ function check_file_size () function test_tracefile_size_limit () { - size_limit="$1" - trace_path=$(mktemp -d) - session_name=$(randstring 16 0) - channel_name="channel" - event_name="tp:tptest" + local size_limit="$1" + local trace_path=$(mktemp --tmpdir -d "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + local session_name=$(randstring 16 0) + local channel_name="channel" + local event_name="tp:tptest" diag "Test tracefile size limit : $size_limit bytes" @@ -110,11 +102,11 @@ function test_tracefile_size_limit () start_lttng_tracing_ok $session_name - $TESTAPP_BIN $NR_ITER >/dev/null 2>&1 + $TESTAPP_BIN -i $NR_ITER >/dev/null 2>&1 - stop_lttng_tracing $session_name + stop_lttng_tracing_ok $session_name - destroy_lttng_session $session_name + destroy_lttng_session_ok $session_name # Validate file size, each one shall be no larger than the # specified size limit @@ -123,6 +115,46 @@ function test_tracefile_size_limit () # Validate tracing data, we should at least have some events + validate_trace_path_ust_pid "$trace_path" "" "gen-ust-events" + validate_trace $event_name $trace_path + + rm -rf $trace_path +} + +function test_tracefile_size_limit_pagesize () +{ + # Set a size limit lower than the page_size + local size_limit="$(($PAGE_SIZE-2))" + local trace_path=$(mktemp --tmpdir -d "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + local session_name=$(randstring 16 0) + local channel_name="channel" + local event_name="tp:tptest" + + diag "Test tracefile size limit lower than PAGE_SIZE : $size_limit bytes" + + create_lttng_session_ok $session_name $trace_path + + enable_lttng_channel_size_limit \ + $session_name $channel_name $size_limit + + enable_ust_lttng_event_per_channel \ + $session_name $event_name $channel_name + + start_lttng_tracing_ok $session_name + + $TESTAPP_BIN -i $NR_ITER >/dev/null 2>&1 + + stop_lttng_tracing_ok $session_name + + destroy_lttng_session_ok $session_name + + # Validate file size, expect file size to be equal to the page size + + check_file_size $trace_path "${channel_name}_*" $PAGE_SIZE + + # Validate tracing data, we should at least have some events + + validate_trace_path_ust_pid "$trace_path" "" "gen-ust-events" validate_trace $event_name $trace_path rm -rf $trace_path @@ -134,11 +166,23 @@ print_test_banner "$TEST_DESC" start_lttng_sessiond -LIMITS=("4096" "8192" "16384" "32768" "65536") +# Test with multiples of PAGE_SIZE +LIMITS=("$(($PAGE_SIZE))" + "$(($PAGE_SIZE*2))" + "$(($PAGE_SIZE*4))" + "$(($PAGE_SIZE*8))" + "$(($PAGE_SIZE*16))" + "$(($PAGE_SIZE*32))") for limit in ${LIMITS[@]}; do test_tracefile_size_limit $limit done +# Test with a value that is not a multiple of PAGE_SIZE +test_tracefile_size_limit "$(($PAGE_SIZE+1024))" + +# Test that a value lower than the PAGE_SIZE is rounded to it +test_tracefile_size_limit_pagesize + stop_lttng_sessiond