#!/bin/bash
#
-# Copyright (C) - 2013 Christian Babeux <christian.babeux@efficios.com>
+# Copyright (C) 2013 Christian Babeux <christian.babeux@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.
+# 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=20
+
+TESTCMD="/bin/true"
source $TESTDIR/utils/utils.sh
TRACE_PATH=$(mktemp -d)
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
+
+ # 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 "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)
+ 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"
- 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
}
start_lttng_sessiond
test_event_basic
+ test_enable_after_start
stop_lttng_sessiond
}