test/run: Report and return failure
authorSimon Glass <sjg@chromium.org>
Mon, 13 Nov 2017 04:52:10 +0000 (21:52 -0700)
committerSimon Glass <sjg@chromium.org>
Thu, 23 Nov 2017 01:05:38 +0000 (18:05 -0700)
This script runs the tests but does not report failure. Also it always
returns an exit code of 0 even on failure.

Fix these problems by checking the result of each test.

Signed-off-by: Simon Glass <sjg@chromium.org>
test/run

index b1649ee101509b94a3978e7b345032b5496661b3..caee4f83f2c147fd5194659fc89ae97c0dc4d44e 100755 (executable)
--- a/test/run
+++ b/test/run
@@ -1,10 +1,24 @@
-#!/bin/sh
+#!/bin/bash
+
+run_test() {
+       $@
+       [ $? -ne 0 ] && result=$((result+1))
+       echo "result $result"
+}
 
 # Run all tests that the standard sandbox build can support
-./test/py/test.py --bd sandbox --build
+run_test ./test/py/test.py --bd sandbox --build
 
 # Run tests which require sandbox_spl
-./test/py/test.py --bd sandbox_spl --build -k test/py/tests/test_ofplatdata.py
+run_test ./test/py/test.py --bd sandbox_spl --build -k \
+               test/py/tests/test_ofplatdata.py
 
 # Run tests for the flat DT version of sandbox
 ./test/py/test.py --bd sandbox_flattree --build
+
+if [ $result == 0 ]; then
+       echo "Tests passed!"
+else
+       echo "Tests FAILED"
+       exit 1
+fi