Explain the final error checking
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/scripts/basic-build-test.sh b/tests/scripts/basic-build-test.sh
index fd22f4d..96f9c47 100755
--- a/tests/scripts/basic-build-test.sh
+++ b/tests/scripts/basic-build-test.sh
@@ -285,10 +285,15 @@
# If the coverage summary doesn't end with the expected last two lines
# ("Branches Tested" and a blank line), either there was an error while
# creating the coverage summary or the coverage summary reported failures.
+# The script runs under `set -e`, so most failures cause it to abort,
+# but failures on the left-hand side of a pipe are not detected (this is
+# a limitation of sh), so we check that the left-hand side of the pipe
+# succeeded by checking that it took the last action that it was expected
+# to take.
newline='
'
case "$(tail -n2 coverage-summary.txt)" in
- *"$newline"*) exit 1;;
- "Branches Tested"*) :;;
- *) exit 1;;
+ *"$newline"*) exit 1;; # last line was not blank
+ "Branches Tested"*) :;; # looks good
+ *) exit 1;; # next-to-last line had unexpected content
esac