From b3863c8af7b41060cb145d8f0f8178b802db16f4 Mon Sep 17 00:00:00 2001 From: Tyler Hicks Date: Thu, 24 Apr 2014 14:24:42 -0500 Subject: [PATCH] tests: Don't silently ignore test errors When there was a test error, such as a shell command failure, the function used for the ERR trap, error_handler(), was causing the error to be silently ignored by the test runner. It was calling exit_handler() directly, before calling fatalerror(). This caused $_fatal to be left unset when exit_handler() was called. exit_handler() sources epilogue.inc and the last bit of epilogue.inc exits with $num_testfailures if $_fatal was unset. The fatalerror() call site in error_hanlder() was never reached. So, as long as there were no test failures, then an error in a test script would cause the test to exit early with 0. It is safe to simply call fatalerror() from error_handler() because fatalerror() sets $_fatal to true and exits. This causes exit_handler() to be called and since $_fatal is set to true, prologue.inc exits with 127. Signed-off-by: Tyler Hicks Acked-by: Steve Beattie --- tests/regression/apparmor/prologue.inc | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/regression/apparmor/prologue.inc b/tests/regression/apparmor/prologue.inc index 396d20345..716ea7ac4 100755 --- a/tests/regression/apparmor/prologue.inc +++ b/tests/regression/apparmor/prologue.inc @@ -89,9 +89,6 @@ testfailed() error_handler() { - #invoke exit_handler to cleanup - exit_handler - fatalerror "Unexpected shell error. Run with -x to debug" }