SoW-2020-0003: Trace Hit Counters
[lttng-tools.git] / tests / regression / kernel / test_kernel_function
diff --git a/tests/regression/kernel/test_kernel_function b/tests/regression/kernel/test_kernel_function
new file mode 100755 (executable)
index 0000000..47deb92
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/bash
+#
+# Copyright (C) 2013 Christian Babeux <christian.babeux@efficios.com>
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+TEST_DESC="Kernel tracer - function event"
+
+CURDIR=$(dirname $0)/
+TESTDIR=$CURDIR/../..
+NUM_TESTS=6
+
+source $TESTDIR/utils/utils.sh
+
+function test_kernel_function_basic()
+{
+       local TRACE_PATH=$(mktemp -d)
+       local SESSION_NAME="kernel_function_basic"
+       local EVENT_NAME="my_event_name"
+       local TARGET_SYMBOL="lttng_test_filter_event_write"
+
+       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+
+       lttng_enable_kernel_function_event_ok $SESSION_NAME "$TARGET_SYMBOL" "$EVENT_NAME"
+
+       start_lttng_tracing_ok
+
+       echo 1 > /proc/lttng-test-filter-event
+
+       stop_lttng_tracing_ok
+
+       validate_trace "${EVENT_NAME}_entry" $TRACE_PATH
+       validate_trace "${EVENT_NAME}_return" $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_notap
+       validate_lttng_modules_present
+       modprobe lttng-test
+
+       test_kernel_function_basic
+
+       modprobe --remove lttng-test
+       stop_lttng_sessiond_notap
+}
This page took 0.025597 seconds and 5 git commands to generate.