X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fregression%2Fust%2Fhigh-throughput%2Ftest_high_throughput;fp=tests%2Fregression%2Fust%2Fhigh-throughput%2Ftest_high_throughput;h=55060732873ae0022292aabf820bef30439abbdd;hb=e5be53a084ca2d0fd6540c6da59fa8909dfac8f8;hp=0000000000000000000000000000000000000000;hpb=3de31d0bd714d6ce7495f93f35485d2e3e11a833;p=lttng-tools.git diff --git a/tests/regression/ust/high-throughput/test_high_throughput b/tests/regression/ust/high-throughput/test_high_throughput new file mode 100755 index 000000000..550607328 --- /dev/null +++ b/tests/regression/ust/high-throughput/test_high_throughput @@ -0,0 +1,94 @@ +#!/bin/bash +# +# Copyright (C) - 2012 David Goulet +# +# 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 +TEST_DESC="UST tracer - Testing high events throughput" + +CURDIR=$(dirname $0)/ +TESTDIR=$CURDIR/../../.. +NR_ITER=20 +BIN_NAME="gen-events" +SESSION_NAME="high-throughput" +EVENT_NAME="tp:tptest" + +source $TESTDIR/utils/utils.sh + +print_test_banner "$TEST_DESC" + +if [ ! -x "$CURDIR/$BIN_NAME" ]; then + echo -e "No UST nevents binary detected. Passing." + exit 0 +fi + +TRACE_PATH=$(mktemp -d) + +# MUST set TESTDIR before calling those functions + +start_lttng_sessiond + +create_lttng_session $SESSION_NAME $TRACE_PATH + +enable_ust_lttng_event $SESSION_NAME $EVENT_NAME +start_lttng_tracing $SESSION_NAME + +for i in `seq 1 $NR_ITER`; do + ./$CURDIR/$BIN_NAME & >/dev/null 2>&1 +done + +echo "Waiting for applications to end" +while [ -n "$(pidof $BIN_NAME)" ]; do + echo -n "." + sleep 0.5 +done +echo "" + +stop_lttng_tracing $SESSION_NAME +destroy_lttng_session $SESSION_NAME + +stop_lttng_sessiond + +# Validate test + +TEMP_FILE=$(mktemp) +TEMP_FILE_2=$(mktemp) + +traced=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l) +babeltrace $TRACE_PATH >/dev/null 2>$TEMP_FILE_2 + +cat $TEMP_FILE_2 | cut -f4 -d " " >$TEMP_FILE + +dropped=0 +while read line; +do + let dropped=$dropped+$line +done < $TEMP_FILE + +let total=$dropped+$traced +let wanted=$NR_ITER*1000000 + +if [ $wanted -ne $total ]; then + echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... " + print_fail + out=1 +else + echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... " + print_ok + out=0 +fi + +rm -rf $TRACE_PATH +rm $TEMP_FILE $TEMP_FILE_2 + +exit $out