tests: add check_skip_kernel_test to check root user and lttng kernel modules
[lttng-tools.git] / tests / regression / tools / notification / test_notification_kernel_error
index b69a4d80ce562189337340a7ac47459a661e158d..5f53f5b1b8399987a1591ba57484d1dda53cea5b 100755 (executable)
@@ -7,39 +7,45 @@
 CURDIR=$(dirname "$0")/
 TESTDIR=$CURDIR/../../../
 
-TMPDIR=$(mktemp -d)
-
 TESTAPP_PATH="$TESTDIR/utils/testapp"
-TESTAPP_STATE_PATH=$(mktemp -u "$TMPDIR/application_state.XXXXXXXXXX")
+TESTAPP_STATE_PATH=$(mktemp -u -t "tmp.test_notif_kernel_error_application_state.XXXXXXXXXX")
 
 NUM_TESTS=44
 
 # shellcheck source=../../../utils/utils.sh
 source "$TESTDIR/utils/utils.sh"
+# shellcheck source=./util_event_generator.sh
+source "$CURDIR/util_event_generator.sh"
 
 function test_basic_error_path
 {
-       $CURDIR/notification 1 LTTNG_DOMAIN_KERNEL
+       kernel_event_generator_run_once_per_transition generate_filter_events \
+               "$TESTAPP_STATE_PATH" 10 &
+       APP_PID=$!
+
+       "$CURDIR/notification" 1 LTTNG_DOMAIN_KERNEL $APP_PID \
+               "$TESTAPP_STATE_PATH"
+
+       kill -SIGUSR2 $APP_PID
+       wait $APP_PID 2> /dev/null
 }
 
+check_skip_kernel_test &&
+{
+       plan_skip_all "Skipping all tests."
+       exit 0
+}
 
-if [ "$(id -u)" == "0" ]; then
-       validate_lttng_modules_present
+validate_lttng_modules_present
 
-       modprobe lttng-test
+modprobe lttng-test
 
-       start_lttng_sessiond_notap
+start_lttng_sessiond_notap
 
-       test_basic_error_path
+test_basic_error_path
 
-       stop_lttng_sessiond_notap
-       rmmod lttng-test
+stop_lttng_sessiond_notap
+rmmod lttng-test
 
-else
-       # Kernel tests are skipped.
-       plan_tests $NUM_TESTS
-       skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
-fi
 
-# Just in case cleanup
-rm -rf "$TMPDIR"
+rm -f "$TESTAPP_STATE_PATH"
This page took 0.024545 seconds and 4 git commands to generate.