#!/bin/bash
#
# 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
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
+TEST_SUFFIX="TP_FAIL"
+CURDIR=$(dirname $(readlink -f $0))
-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"
+source ${CURDIR}/test_health.sh