SoW-2020-0002: Trace Hit Counters: trigger error reporting integration
[lttng-tools.git] / tests / regression / tools / health / test_tp_fail
index fdb8745a2acf8167446d00b0b3664412747e349d..34ced6498e7c42fe4147bff4bb259ae656d8e967 100755 (executable)
 #!/bin/bash
 #
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+# Copyright (C) 2012 Christian Babeux <christian.babeux@efficios.com>
+# Copyright (C) 2014 Mathieu Desnoyers <mathieu.desnoyers@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.
-#
-# 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.
+# SPDX-License-Identifier: GPL-2.0-only
 
 TEST_DESC="Health check - Testpoint failure"
 
-CURDIR=$(dirname $0)/
-TESTDIR=$CURDIR/../../..
-LTTNG_BIN="lttng"
 SESSION_NAME="health_tp_fail"
-EVENT_NAME="bogus"
-HEALTH_CHECK_BIN="health_check"
 SESSIOND_PRELOAD=".libs/libhealthtpfail.so"
-NUM_TESTS=9
-
-source $TESTDIR/utils/utils.sh
-
-print_test_banner "$TEST_DESC"
-
-if [ ! -f "$CURDIR/$SESSIOND_PRELOAD" ]; then
-       BAIL_OUT "libhealthtpfail.so not available for this test."
-fi
-
-function test_tp_fail
-{
-       test_tp_fail_name="$1"
-       test_tp_fail_code="$2"
-
-       diag "Test health failure with ${test_tp_fail_name}"
-
-       # Activate testpoints
-       export LTTNG_TESTPOINT_ENABLE=1
-
-       # Activate specific testpoint failure
-       export ${test_tp_fail_name}_TP_FAIL=1
-
-       # Spawn sessiond with preload healthexit lib
-       export LD_PRELOAD="$CURDIR/$SESSIOND_PRELOAD"
-       start_lttng_sessiond
-
-       # Cleanup some env. var.
-       unset LD_PRELOAD
-       unset ${test_tp_fail_name}_TP_FAIL
-
-       # Check health status, exit code should indicate failure
-       $CURDIR/$HEALTH_CHECK_BIN &> /dev/null
-
-       health_check_exit_code=$?
-
-       if [ $health_check_exit_code -eq $test_tp_fail_code ]; then
-               pass "Validate thread ${test_tp_fail_name} failure"
-               stop_lttng_sessiond
-       else
-               fail "Validate thread ${test_tp_fail_name} failure"
-               diag "Health returned: $health_check_exit_code"
-               stop_lttng_sessiond
-               return 1
-       fi
-}
-
-plan_tests $NUM_TESTS
-
-THREAD=("LTTNG_THREAD_MANAGE_CLIENTS"
-       "LTTNG_THREAD_MANAGE_APPS")
-
-# Exit code value to indicate specific thread failure
-EXIT_CODE=(1 2)
-
-THREAD_COUNT=${#THREAD[@]}
-i=0
-while [ "$i" -lt "$THREAD_COUNT" ]; do
-       test_tp_fail "${THREAD[$i]}" "${EXIT_CODE[$i]}"
-
-       if [ $? -eq 1 ]; then
-               exit 1
-       fi
-
-       let "i++"
-done
-
-# The manage kernel thread is only spawned if we are root
-if [ "$(id -u)" == "0" ]; then
-       isroot=1
-else
-       isroot=0
-fi
-
-skip $isroot "Root access is needed. Skipping LTTNG_THREAD_MANAGE_KERNEL tests." "3" ||
-{
-       test_tp_fail "LTTNG_THREAD_MANAGE_KERNEL" "8"
-}
-
-
-# TODO: Special case manage consumer, need to spawn consumer via commands.
-#"LTTNG_THREAD_MANAGE_CONSUMER"
+TEST_SUFFIX="TP_FAIL"
+CURDIR=$(dirname $(readlink -f $0))
+
+# A current design limitation of the lttng-consumerd will cause it to
+# hang on shutdown if the timer management thread exits as the teardown
+# of channels switches off the channel's timers. The timer thread is
+# then expected to purge timer signals and signal when it is done.
+# Obviously this state will never be reached as signals are no longer
+# being processed. This is not dramatic as this is not what this test
+# is meant to test; we only want to make sure the health check signals that
+# something went wrong.
+KILL_SIGNAL="SIGKILL"
+
+source ${CURDIR}/test_health.sh
This page took 0.024423 seconds and 5 git commands to generate.