#!/bin/bash
#
-# Copyright (C) - 2013 Christian Babeux <christian.babeux@efficios.com>
+# Copyright (C) 2013 Christian Babeux <christian.babeux@efficios.com>
#
-# 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 count limits"
TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
STATS_BIN="$TESTDIR/utils/babelstats.pl"
-NUM_TESTS=146
+NUM_TESTS=74
+
+NUM_CPUS=`nproc`
+PAGE_SIZE=$(getconf PAGE_SIZE)
source $TESTDIR/utils/utils.sh
BAIL_OUT "No UST events binary detected."
fi
-function wait_apps
-{
- while [ -n "$(pidof $TESTAPP_NAME)" ]; do
- sleep 0.5
- done
- pass "Wait for applications to end"
-}
-
function enable_lttng_channel_count_limit ()
{
sess_name="$1"
$TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel \
-u $channel_name -s $sess_name \
- -C 4096 -W $tracefile_count_limit \
+ -C $(($PAGE_SIZE*3)) -W $tracefile_count_limit \
--overwrite >/dev/null 2>&1
ok $? "$test_name"
file_pattern="$2"
expected_max_count="$3"
- count=`find $path -name "$file_pattern" -type f | wc -l`
+ count=`find $path -name "$file_pattern" -type f \( ! -iname "*.idx" \) | wc -l`
if [ "$count" -gt "$expected_max_count" ]; then
fail "Validate file count: $file_pattern"
session_name=$(randstring 16 0)
channel_name="channel"
event_name="tp:tptest"
- num_iter=1000
+ num_iter=100000
expected_max=$(($num_iter - 1))
diag "Test tracefile count limit : $count_limit tracefiles"
- create_lttng_session $session_name $trace_path
+ create_lttng_session_ok $session_name $trace_path
enable_lttng_channel_count_limit \
$session_name $channel_name $count_limit
enable_ust_lttng_event_per_channel \
$session_name $event_name $channel_name
- start_lttng_tracing $session_name
+ start_lttng_tracing_ok $session_name
- $TESTAPP_BIN $num_iter >/dev/null 2>&1 &
+ $TESTAPP_BIN -i $num_iter >/dev/null 2>&1
- wait_apps
+ stop_lttng_tracing_ok $session_name
- stop_lttng_tracing $session_name
-
- destroy_lttng_session $session_name
+ destroy_lttng_session_ok $session_name
# Validate tracing dir
- num_cpu=`nproc`
-
- for cpuno in $(seq 0 $(($num_cpu - 1)))
+ for cpuno in $(seq 0 $(($NUM_CPUS - 1)))
do
validate_file_count \
$trace_path "${channel_name}_${cpuno}_*" $count_limit
rm -rf $trace_path
}
-plan_tests $NUM_TESTS
+LIMITS=("1" "2" "4" "8" "10" "16" "32" "64")
+
+# The file count validation depends on the number of streams (1 per cpu)
+TOTAL_TESTS=$(($NUM_TESTS + (${#LIMITS[@]} * $NUM_CPUS)))
+
+plan_tests $TOTAL_TESTS
print_test_banner "$TEST_DESC"
start_lttng_sessiond
-LIMITS=("1" "2" "4" "8" "10" "16" "32" "64")
-
for limit in ${LIMITS[@]};
do
test_tracefile_count_limit $limit