X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fperf%2Ftest_perf_raw.in;h=00cdebc5567d1cccdc0ee9ddd13022040f382fc2;hb=HEAD;hp=a5f9f5549b4eff97c2af232937b350e511676729;hpb=6faa26cafc21ce8d5b8f20ae4d2682092fd74b03;p=lttng-tools.git diff --git a/tests/perf/test_perf_raw.in b/tests/perf/test_perf_raw.in index a5f9f5549..00cdebc55 100644 --- a/tests/perf/test_perf_raw.in +++ b/tests/perf/test_perf_raw.in @@ -1,19 +1,9 @@ #!/bin/bash # -# Copyright (C) - 2016 Julien Desfossez +# Copyright (C) 2016 Julien Desfossez # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License, version 2 only, as -# published by the Free Software Foundation. +# SPDX-License-Identifier: GPL-2.0-only # -# This program 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 General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. TEST_DESC="Perf counters" @@ -21,7 +11,7 @@ CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/.. LTTNG_BIN="lttng" SESSION_NAME="perf_counters" -NUM_TESTS=20 +NUM_TESTS=21 NR_ITER=1 NR_USEC_WAIT=1 TESTAPP_PATH="$TESTDIR/utils/testapp" @@ -50,14 +40,31 @@ function have_libpfm() function test_ust_raw() { - TRACE_PATH=$(mktemp -d) - SESSION_NAME="ust_perf" - CHAN_NAME="mychan" - EVENT_NAME="tp:tptest" - PMU="UNHALTED_REFERENCE_CYCLES" - PERFID=$($CURDIR/find_event $PMU) - test $? -eq "0" - ok $? "Find PMU $PMU" + local SESSION_NAME="ust_perf" + local CHAN_NAME="mychan" + local EVENT_NAME="tp:tptest" + local PMU="UNHALTED_REFERENCE_CYCLES" + local tests_to_skip=9 + local ret + local TRACE_PATH + + # Find the raw perf id of the event. + PERFID=$("$CURDIR/find_event" "$PMU") + ret=$? + if [ "$ret" -eq "0" ]; then + pass "Find PMU $PMU" + elif [ "$ret" -eq "1" ]; then + skip 0 "PMU event not found." $tests_to_skip + return + elif [ "$ret" -eq "2" ]; then + skip 0 "PMU event not actionable." $tests_to_skip + return + else + fail "find_event returned $ret." + return + fi + + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") create_lttng_session_ok $SESSION_NAME $TRACE_PATH @@ -69,7 +76,7 @@ function test_ust_raw() start_lttng_tracing_ok - $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1 + $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT >/dev/null 2>&1 stop_lttng_tracing_ok @@ -82,14 +89,32 @@ function test_ust_raw() function test_kernel_raw() { - TRACE_PATH=$(mktemp -d) - SESSION_NAME="kernel_perf" - CHAN_NAME="mychan" - EVENT_NAME="lttng_test_filter_event" - PMU="UNHALTED_REFERENCE_CYCLES" - PERFID=$($CURDIR/find_event $PMU) - test $? -eq "0" - ok $? "Find PMU $PMU" + local SESSION_NAME="kernel_perf" + local CHAN_NAME="mychan" + local EVENT_NAME="lttng_test_filter_event" + local PMU="UNHALTED_REFERENCE_CYCLES" + local PERFID="" + local tests_to_skip=9 + local ret + local TRACE_PATH + + # Find the raw perf id of the event. + PERFID=$("$CURDIR/find_event" "$PMU") + ret=$? + if [ "$ret" -eq "0" ]; then + pass "Find PMU $PMU" + elif [ "$ret" -eq "1" ]; then + skip 0 "PMU event not found." $tests_to_skip + return + elif [ "$ret" -eq "2" ]; then + skip 0 "PMU event not actionable." $tests_to_skip + return + else + fail "find_event returned $ret." + return + fi + + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") create_lttng_session_ok $SESSION_NAME $TRACE_PATH @@ -112,12 +137,6 @@ function test_kernel_raw() rm -rf $TRACE_PATH } -if [ "$(id -u)" == "0" ]; then - isroot=1 -else - isroot=0 -fi - # MUST set TESTDIR before calling those functions plan_tests $NUM_TESTS @@ -129,11 +148,11 @@ have_libpfm test_ust_raw -skip $isroot "Root access is needed for kernel testing, skipping." 9 || +check_skip_kernel_test 9 || { modprobe lttng-test test_kernel_raw - rmmod lttng-test + modprobe --remove lttng-test } stop_lttng_sessiond