diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh
index 1576482728f8217acb9dda6406dac27b779e9a2e..865ead77595c053333d852e7a9e04dc01f91404e 100644
--- a/lustre/tests/conf-sanity.sh
+++ b/lustre/tests/conf-sanity.sh
@@ -1442,4 +1442,4 @@ run_test 45 "long unlink handling in ptlrpcd"
 
 
 equals_msg `basename $0`: test complete
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
diff --git a/lustre/tests/insanity.sh b/lustre/tests/insanity.sh
index 3c4bf296ba0da8528efe6af3cd1aa32ee7efae89..ebf5cb89c44389e99c70da97d1f9deb92a534e09 100755
--- a/lustre/tests/insanity.sh
+++ b/lustre/tests/insanity.sh
@@ -578,4 +578,4 @@ run_test 10 "Running Availability for 6 hours..."
 
 equals_msg `basename $0`: test complete, cleaning up
 check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
diff --git a/lustre/tests/performance-sanity.sh b/lustre/tests/performance-sanity.sh
index 0139f0c6b24e73a005396c1534b4ffa8fd94831f..ce3d2f9c305db6c27268c3e9f414195f96220e62 100644
--- a/lustre/tests/performance-sanity.sh
+++ b/lustre/tests/performance-sanity.sh
@@ -79,3 +79,4 @@ run_test 8 "getattr large files ======"
 equals_msg `basename $0`: test complete, cleaning up
 check_and_cleanup_lustre
 [ -f "$LOG" ] && cat $LOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
diff --git a/lustre/tests/recovery-small.sh b/lustre/tests/recovery-small.sh
index 87b87afe485218279266d2da05fd656e7acf41ff..b3902d867808db3c09e440e68975af86090a3639 100755
--- a/lustre/tests/recovery-small.sh
+++ b/lustre/tests/recovery-small.sh
@@ -962,4 +962,4 @@ run_test 59 "Read cancel race on client eviction"
 
 equals_msg `basename $0`: test complete, cleaning up
 check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
diff --git a/lustre/tests/replay-dual.sh b/lustre/tests/replay-dual.sh
index d2285009e593c03dec2aa90f3d4872e543e268e2..3eaea5f646fb2d86eba5e41ae7bac53620e0e66b 100755
--- a/lustre/tests/replay-dual.sh
+++ b/lustre/tests/replay-dual.sh
@@ -547,5 +547,4 @@ SLEEP=$((`date +%s` - $NOW))
 [ $SLEEP -lt $TIMEOUT ] && sleep $SLEEP
 [ "$MOUNTED2" = yes ] && zconf_umount $HOSTNAME $MOUNT2 || true
 check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
-
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
diff --git a/lustre/tests/replay-ost-single.sh b/lustre/tests/replay-ost-single.sh
index 1ae6256b812695b76a838579ec27b8eba0f36261..5c8d9d33cf36daa08abca742693b931869f8f1c1 100755
--- a/lustre/tests/replay-ost-single.sh
+++ b/lustre/tests/replay-ost-single.sh
@@ -188,4 +188,4 @@ run_test 7 "Fail OST before obd_destroy"
 
 equals_msg `basename $0`: test complete, cleaning up
 check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
diff --git a/lustre/tests/replay-single.sh b/lustre/tests/replay-single.sh
index b72249ffecfd68ea15fd539a5f4990678e3b9f03..2a2f26fc07a2a10f81ce7ff216006621c02cc971 100755
--- a/lustre/tests/replay-single.sh
+++ b/lustre/tests/replay-single.sh
@@ -1908,4 +1908,4 @@ run_test 82b "CMD: mkdir cross-node dir (fail mds with name)"
 
 equals_msg `basename $0`: test complete, cleaning up
 check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
diff --git a/lustre/tests/sanity-gss.sh b/lustre/tests/sanity-gss.sh
index 62c7017f831228f1ff7440bc3d2dc23177d4e0ca..9024134e80d5ab3a49e69e29fa35cdf1d8694e59 100644
--- a/lustre/tests/sanity-gss.sh
+++ b/lustre/tests/sanity-gss.sh
@@ -1058,4 +1058,4 @@ run_test 102 "survive from insanely fast flavor switch"
 
 equals_msg `basename $0`: test complete, cleaning up
 check_and_cleanup_lustre
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true