If compilation of liblockdep fails, display an error message and exit
immediately. Display compiler warning and error messages that are
generated while building a test. Only run a test if compilation of it
succeeded.

Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Waiman Long <long...@redhat.com>
Cc: Johannes Berg <johan...@sipsolutions.net>
Signed-off-by: Bart Van Assche <bvanass...@acm.org>
---
 tools/lib/lockdep/run_tests.sh | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/tools/lib/lockdep/run_tests.sh b/tools/lib/lockdep/run_tests.sh
index 2e570a188f16..9f31f84e7fac 100755
--- a/tools/lib/lockdep/run_tests.sh
+++ b/tools/lib/lockdep/run_tests.sh
@@ -1,13 +1,17 @@
 #! /bin/bash
 # SPDX-License-Identifier: GPL-2.0
 
-make &> /dev/null
+if ! make >/dev/null; then
+    echo "Building liblockdep failed."
+    echo "FAILED!"
+    exit 1
+fi
 
 for i in `ls tests/*.c`; do
        testname=$(basename "$i" .c)
-       gcc -o tests/$testname -pthread $i liblockdep.a -Iinclude 
-D__USE_LIBLOCKDEP &> /dev/null
        echo -ne "$testname... "
-       if [ $(timeout 1 ./tests/$testname 2>&1 | wc -l) -gt 0 ]; then
+       if gcc -o "tests/$testname" -pthread "$i" liblockdep.a -Iinclude 
-D__USE_LIBLOCKDEP &&
+               [ "$(timeout 1 "./tests/$testname" 2>&1 | wc -l)" -gt 0 ]; then
                echo "PASSED!"
        else
                echo "FAILED!"
@@ -19,9 +23,9 @@ done
 
 for i in `ls tests/*.c`; do
        testname=$(basename "$i" .c)
-       gcc -o tests/$testname -pthread -Iinclude $i &> /dev/null
        echo -ne "(PRELOAD) $testname... "
-       if [ $(timeout 1 ./lockdep ./tests/$testname 2>&1 | wc -l) -gt 0 ]; then
+       if gcc -o "tests/$testname" -pthread -Iinclude "$i" &&
+               [ "$(timeout 1 ./lockdep "./tests/$testname" 2>&1 | wc -l)" -gt 
0 ]; then
                echo "PASSED!"
        else
                echo "FAILED!"
-- 
2.20.0.rc2.403.gdbc3b29805-goog

Reply via email to