X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fregression%2Fkernel%2Ftest_event_basic;h=ac9ec05492cf2462f422af01b2fd19e2710dfc5b;hb=HEAD;hp=4de94dc670fe07a6b338fa40f9db5f9bf5e5801a;hpb=c87d483bfee92c86b7a34c1258a835d6eda042e2;p=lttng-tools.git diff --git a/tests/regression/kernel/test_event_basic b/tests/regression/kernel/test_event_basic index 4de94dc67..e57cd6d26 100755 --- a/tests/regression/kernel/test_event_basic +++ b/tests/regression/kernel/test_event_basic @@ -1,49 +1,69 @@ #!/bin/bash # -# Copyright (C) - 2013 Christian Babeux +# Copyright (C) 2013 Christian Babeux # -# 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="Kernel tracer - Basic event" CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/../.. -NUM_TESTS=12 +NUM_TESTS=21 -source $TESTDIR/utils/utils.sh +TESTCMD="/bin/true" -print_test_banner "$TEST_DESC" +source $TESTDIR/utils/utils.sh function test_event_basic() { - TRACE_PATH=$(mktemp -d) + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") SESSION_NAME="kernel_event_basic" - create_lttng_session $SESSION_NAME $TRACE_PATH + create_lttng_session_ok $SESSION_NAME $TRACE_PATH lttng_enable_kernel_event $SESSION_NAME "sched_switch" lttng_enable_kernel_event $SESSION_NAME "sched_process_exit" - lttng_enable_kernel_event $SESSION_NAME "sched_process_free" + lttng_enable_kernel_event $SESSION_NAME "sched_process_fork" + + start_lttng_tracing_ok - start_lttng_tracing - stop_lttng_tracing + # Running a process and waiting for its completion forces the triggering of + # fork, sched_switch and exit events + eval ${TESTCMD} + stop_lttng_tracing_ok + validate_trace_path_kernel "$TRACE_PATH" "" validate_trace "sched_switch" $TRACE_PATH validate_trace "sched_process_exit" $TRACE_PATH - validate_trace "sched_process_free" $TRACE_PATH + validate_trace "sched_process_fork" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME + + rm -rf $TRACE_PATH +} + +function test_enable_after_start() +{ + TRACE_PATH=$(mktemp -d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXX") + SESSION_NAME="kernel_enable_after_start" + + create_lttng_session_ok $SESSION_NAME $TRACE_PATH + + lttng_enable_kernel_event $SESSION_NAME "sched_switch" + + start_lttng_tracing_ok + lttng_enable_kernel_event $SESSION_NAME "sched_process_exit" + + # Running a process and waiting for its completion forces the triggering of + # sched_switch and exit events + eval ${TESTCMD} + stop_lttng_tracing_ok + + validate_trace "sched_switch" $TRACE_PATH + validate_trace "sched_process_exit" $TRACE_PATH + + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -51,17 +71,15 @@ function test_event_basic() # MUST set TESTDIR before calling those functions plan_tests $NUM_TESTS -if [ "$(id -u)" == "0" ]; then - isroot=1 -else - isroot=0 -fi +print_test_banner "$TEST_DESC" -skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || +check_skip_kernel_test $NUM_TESTS "Skipping all tests." || { + validate_lttng_modules_present start_lttng_sessiond test_event_basic + test_enable_after_start stop_lttng_sessiond }