diff options
author | Bart Van Assche <bvanassche@acm.org> | 2018-12-07 02:11:28 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-12-11 14:54:49 +0100 |
commit | 2b28a8609ec9891e37607ae20688b4ab34f2778c (patch) | |
tree | 057c1896a1bc6e3a625d7ff6ebe388676fa79a00 /tools/lib/lockdep | |
parent | tools/lib/lockdep/tests: Improve testing accuracy (diff) | |
download | linux-2b28a8609ec9891e37607ae20688b4ab34f2778c.tar.xz linux-2b28a8609ec9891e37607ae20688b4ab34f2778c.zip |
tools/lib/lockdep/tests: Run lockdep tests a second time under Valgrind
This improves test coverage.
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-5-bvanassche@acm.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/lib/lockdep')
-rwxr-xr-x | tools/lib/lockdep/run_tests.sh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/lib/lockdep/run_tests.sh b/tools/lib/lockdep/run_tests.sh index bc36178329a8..c8fbd0306960 100755 --- a/tools/lib/lockdep/run_tests.sh +++ b/tools/lib/lockdep/run_tests.sh @@ -31,3 +31,17 @@ find tests -name '*.c' | sort | while read -r i; do fi rm -f "tests/$testname" done + +find tests -name '*.c' | sort | while read -r i; do + testname=$(basename "$i" .c) + echo -ne "(PRELOAD + Valgrind) $testname... " + if gcc -o "tests/$testname" -pthread -Iinclude "$i" && + { timeout 10 valgrind --read-var-info=yes ./lockdep "./tests/$testname" >& "tests/${testname}.vg.out"; true; } && + "tests/${testname}.sh" < "tests/${testname}.vg.out" && + ! grep -Eq '(^==[0-9]*== (Invalid |Uninitialised ))|Mismatched free|Source and destination overlap| UME ' "tests/${testname}.vg.out"; then + echo "PASSED!" + else + echo "FAILED!" + fi + rm -f "tests/$testname" +done |