Cleanup: tests: name all temporary files to better identify leakage
[lttng-tools.git] / tests / regression / ust / test_event_perf
index 4e665e65e5eb3b8359c1c0213aeb84554ca73903..33aab2981272beb8e9695f77c568660aa29aa1e9 100755 (executable)
@@ -1,20 +1,9 @@
 #!/bin/bash
 #
-# Copyright (C) 2013 Christian Babeux <christian.babeux@efficios.com>
-# Copyright (C) 2014 Julien Desfossez <jdesfossez@efficios.com>
+# Copyright (C) 2013 Christian Babeux <christian.babeux@efficios.com>
+# Copyright (C) 2014 Julien Desfossez <jdesfossez@efficios.com>
 #
-# 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"
 
@@ -41,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"
 
@@ -54,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:"
@@ -72,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
This page took 0.025088 seconds and 4 git commands to generate.