X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fperf%2Ftest_perf_raw.in;h=f293ccd71e5ece6f3821cdc04513f7cb882df76c;hp=9fab2cd796f97393444b41be720015ccff26d5e6;hb=HEAD;hpb=95cdb5e344f39d72a13a60e50697db5fc47c9255 diff --git a/tests/perf/test_perf_raw.in b/tests/perf/test_perf_raw.in index 9fab2cd79..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" @@ -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