#!/bin/sh
# Without --ignore-exit, the tap harness causes any FAILs within a
# test plan to raise ERRORs; this is just noise.

#Detecting whether current system has lttng kernel modules
LTTNG_KMOD_PATH=/lib/modules/$(uname -r)/kernel/lttng-modules/lttng-tracer.ko
function validate_lttng_modules_present()
{
	# Check for loadable modules.
	if [ -f "$LTTNG_KMOD_PATH" ]; then
		return 0
	fi

	# Check for builtin modules.
	ls /proc/lttng > /dev/null 2>&1
	if [ $? -eq 0 ]; then
		return 0
	fi

	return 1
}

export LD_LIBRARY_PATH=FIXMEPTESTPATH/tests/utils/testapp/userspace-probe-elf-binary/.libs
makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=FIXMEPTESTPATH top_builddir=FIXMEPTESTPATH"

#If current system doesn't have lttng kernel modules, disable lttng kernel related tests.
validate_lttng_modules_present || {
	makeargs="$makeargs LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1"
}

make -k -t all >error.log 2>&1
# Can specify a test e.g.:
# -C tests/regression/ check TESTS='kernel/test_callstack'
make -k -s $makeargs check 2>error.log | sed -e 's#/tmp/tmp\...........#/tmp/tmp.XXXXXXXXXX#g'
exitcode=$?
if [ -e error.log ]; then
    cat error.log
fi
if [ -e tests/unit/test-suite.log ]; then
    cat tests/unit/test-suite.log
fi
if [ -e tests/regression/test-suite.log ]; then
    cat tests/regression/test-suite.log
fi
exit $exitcode
