X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Fregression%2Fkernel%2Ftest_event_basic;h=9f22d7db83984d47f7452aeea9a2de0bb5d75871;hb=8d5a3312b34841f1ecba2605acad3eaca79fd5e4;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..9f22d7db8 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_fork" + + start_lttng_tracing_ok + + # 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_fork" $TRACE_PATH + + 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" - lttng_enable_kernel_event $SESSION_NAME "sched_process_free" - start_lttng_tracing - stop_lttng_tracing + # 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 - validate_trace "sched_process_free" $TRACE_PATH - destroy_lttng_session $SESSION_NAME + destroy_lttng_session_ok $SESSION_NAME rm -rf $TRACE_PATH } @@ -51,6 +71,8 @@ function test_event_basic() # MUST set TESTDIR before calling those functions plan_tests $NUM_TESTS +print_test_banner "$TEST_DESC" + if [ "$(id -u)" == "0" ]; then isroot=1 else @@ -59,9 +81,11 @@ fi skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || { + validate_lttng_modules_present start_lttng_sessiond test_event_basic + test_enable_after_start stop_lttng_sessiond }