#!/bin/bash # # Copyright (C) 2013 Christian Babeux # # SPDX-License-Identifier: GPL-2.0-only # TEST_DESC="Kernel tracer - Basic event" CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/../.. NUM_TESTS=20 TESTCMD="/bin/true" source $TESTDIR/utils/utils.sh function test_event_basic() { TRACE_PATH=$(mktemp -d) SESSION_NAME="kernel_event_basic" 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 "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" # 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 } # MUST set TESTDIR before calling those functions plan_tests $NUM_TESTS print_test_banner "$TEST_DESC" if [ "$(id -u)" == "0" ]; then isroot=1 else isroot=0 fi skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || { start_lttng_sessiond test_event_basic test_enable_after_start stop_lttng_sessiond }