X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fregression%2Fust%2Ftest_event_perf;h=33aab2981272beb8e9695f77c568660aa29aa1e9;hp=3328fe8f1686a9e9dd45cf31b40cdc08a334e12d;hb=33e557114a2ba28e26e220a833e8a449c78b8b65;hpb=7cd988f06d15559d0e455f519cc8da814696462e diff --git a/tests/regression/ust/test_event_perf b/tests/regression/ust/test_event_perf index 3328fe8f1..33aab2981 100755 --- a/tests/regression/ust/test_event_perf +++ b/tests/regression/ust/test_event_perf @@ -1,26 +1,14 @@ #!/bin/bash # -# Copyright (C) - 2013 Christian Babeux -# Copyright (C) - 2014 Julien Desfossez +# Copyright (C) 2013 Christian Babeux +# Copyright (C) 2014 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. -# -# 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. +# SPDX-License-Identifier: GPL-2.0-only TEST_DESC="UST tracer - Perf counters" CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/../.. -LTTNG_BIN="lttng" SESSION_NAME="perf_counters" EVENT_NAME="tp:tptest" NUM_TESTS=24 @@ -42,10 +30,33 @@ function enable_ust_lttng_event_per_chan() ok $? "Enable event $event_name for session $sess_name in channel $chan_name" } +function add_context_ust_skip_ok() +{ + local session_name=$1 + local channel_name=$2 + local context_name=$3 + local skip_num=$4 + + local ret + + "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" add-context -u \ + -s "$session_name" -c "$channel_name" \ + -t "$context_name" 1>"$OUTPUT_DEST" 2>"$ERROR_OUTPUT_DEST" + ret=$? + + if [ "$ret" == "4" ]; then + skip 0 "Current UST lib doesn't implement '$context_name' context" "$skip_num" + else + ok $ret "Add context command for type: $context_name" + fi + + return $ret +} + # Only test parsing of the enabling by raw ID function test_parsing_raw() { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp --tmpdir -d "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="ust_event_basic" CHAN_NAME="mychan" @@ -55,7 +66,7 @@ function test_parsing_raw() enable_ust_lttng_event_per_chan $SESSION_NAME $EVENT_NAME $CHAN_NAME - add_context_ust_ok $SESSION_NAME $CHAN_NAME "perf:thread:raw:r0110:test" + add_context_ust_skip_ok $SESSION_NAME $CHAN_NAME "perf:thread:raw:r0110:test" 1 add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:thread:raw:rZZZ:test" add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:thread:raw:b0110:test" add_context_ust_fail $SESSION_NAME $CHAN_NAME "perf:thread:raw:r0110:" @@ -73,28 +84,34 @@ function test_parsing_raw() function test_event_basic() { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp --tmpdir -d "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="ust_event_basic" CHAN_NAME="mychan" + local ret + create_lttng_session_ok $SESSION_NAME $TRACE_PATH enable_ust_lttng_channel_ok $SESSION_NAME $CHAN_NAME enable_ust_lttng_event_per_chan $SESSION_NAME $EVENT_NAME $CHAN_NAME - add_context_ust_ok $SESSION_NAME $CHAN_NAME "perf:thread:page-fault" + add_context_ust_skip_ok $SESSION_NAME $CHAN_NAME "perf:thread:page-fault" 4 + ret=$? + + if [ "$ret" != "4" ]; then + start_lttng_tracing_ok - start_lttng_tracing_ok + $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT >/dev/null 2>&1 - $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1 + stop_lttng_tracing_ok - stop_lttng_tracing_ok + validate_trace "perf_thread_page_fault" "$TRACE_PATH" + fi destroy_lttng_session_ok $SESSION_NAME - validate_trace "perf_thread_page_fault" $TRACE_PATH - rm -rf $TRACE_PATH + rm -rf "$TRACE_PATH" } # MUST set TESTDIR before calling those functions