tools/lib/lockdep/tests: Improve testing accuracy
authorBart Van Assche <bvanassche@acm.org>
Fri, 7 Dec 2018 01:11:27 +0000 (17:11 -0800)
committerIngo Molnar <mingo@kernel.org>
Tue, 11 Dec 2018 13:54:49 +0000 (14:54 +0100)
Instead of checking whether the tests produced any output, check the
output itself. This patch avoids that e.g. debug output causes the
message "PASSED!" to be reported for failed tests.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Waiman Long <longman@redhat.com>
Cc: johannes.berg@intel.com
Cc: tj@kernel.org
Link: https://lkml.kernel.org/r/20181207011148.251812-4-bvanassche@acm.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
12 files changed:
tools/lib/lockdep/run_tests.sh
tools/lib/lockdep/tests/AA.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABA.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABBA.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABBA_2threads.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABBCCA.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABBCCDDA.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABCABC.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABCDBCDA.sh [new file with mode: 0644]
tools/lib/lockdep/tests/ABCDBDDA.sh [new file with mode: 0644]
tools/lib/lockdep/tests/WW.sh [new file with mode: 0644]
tools/lib/lockdep/tests/unlock_balance.sh [new file with mode: 0644]

index 253719e..bc36178 100755 (executable)
@@ -11,7 +11,7 @@ find tests -name '*.c' | sort | while read -r i; do
        testname=$(basename "$i" .c)
        echo -ne "$testname... "
        if gcc -o "tests/$testname" -pthread "$i" liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &&
-               [ "$(timeout 1 "./tests/$testname" 2>&1 | wc -l)" -gt 0 ]; then
+               timeout 1 "tests/$testname" 2>&1 | "tests/${testname}.sh"; then
                echo "PASSED!"
        else
                echo "FAILED!"
@@ -23,7 +23,8 @@ find tests -name '*.c' | sort | while read -r i; do
        testname=$(basename "$i" .c)
        echo -ne "(PRELOAD) $testname... "
        if gcc -o "tests/$testname" -pthread -Iinclude "$i" &&
-               [ "$(timeout 1 ./lockdep "./tests/$testname" 2>&1 | wc -l)" -gt 0 ]; then
+               timeout 1 ./lockdep "tests/$testname" 2>&1 |
+               "tests/${testname}.sh"; then
                echo "PASSED!"
        else
                echo "FAILED!"
diff --git a/tools/lib/lockdep/tests/AA.sh b/tools/lib/lockdep/tests/AA.sh
new file mode 100644 (file)
index 0000000..f39b328
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible recursive locking detected'
diff --git a/tools/lib/lockdep/tests/ABA.sh b/tools/lib/lockdep/tests/ABA.sh
new file mode 100644 (file)
index 0000000..f39b328
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible recursive locking detected'
diff --git a/tools/lib/lockdep/tests/ABBA.sh b/tools/lib/lockdep/tests/ABBA.sh
new file mode 100644 (file)
index 0000000..fc31c60
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible circular locking dependency detected'
diff --git a/tools/lib/lockdep/tests/ABBA_2threads.sh b/tools/lib/lockdep/tests/ABBA_2threads.sh
new file mode 100644 (file)
index 0000000..fc31c60
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible circular locking dependency detected'
diff --git a/tools/lib/lockdep/tests/ABBCCA.sh b/tools/lib/lockdep/tests/ABBCCA.sh
new file mode 100644 (file)
index 0000000..fc31c60
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible circular locking dependency detected'
diff --git a/tools/lib/lockdep/tests/ABBCCDDA.sh b/tools/lib/lockdep/tests/ABBCCDDA.sh
new file mode 100644 (file)
index 0000000..fc31c60
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible circular locking dependency detected'
diff --git a/tools/lib/lockdep/tests/ABCABC.sh b/tools/lib/lockdep/tests/ABCABC.sh
new file mode 100644 (file)
index 0000000..fc31c60
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible circular locking dependency detected'
diff --git a/tools/lib/lockdep/tests/ABCDBCDA.sh b/tools/lib/lockdep/tests/ABCDBCDA.sh
new file mode 100644 (file)
index 0000000..fc31c60
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible circular locking dependency detected'
diff --git a/tools/lib/lockdep/tests/ABCDBDDA.sh b/tools/lib/lockdep/tests/ABCDBDDA.sh
new file mode 100644 (file)
index 0000000..fc31c60
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible circular locking dependency detected'
diff --git a/tools/lib/lockdep/tests/WW.sh b/tools/lib/lockdep/tests/WW.sh
new file mode 100644 (file)
index 0000000..f39b328
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: possible recursive locking detected'
diff --git a/tools/lib/lockdep/tests/unlock_balance.sh b/tools/lib/lockdep/tests/unlock_balance.sh
new file mode 100644 (file)
index 0000000..c6e3952
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+grep -q 'WARNING: bad unlock balance detected'