diff options
Diffstat (limited to 'tools/lib/lockdep/run_tests.sh')
-rwxr-xr-x | tools/lib/lockdep/run_tests.sh | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/tools/lib/lockdep/run_tests.sh b/tools/lib/lockdep/run_tests.sh index 2e570a188f16..c8fbd0306960 100755 --- a/tools/lib/lockdep/run_tests.sh +++ b/tools/lib/lockdep/run_tests.sh | |||
@@ -1,32 +1,47 @@ | |||
1 | #! /bin/bash | 1 | #! /bin/bash |
2 | # SPDX-License-Identifier: GPL-2.0 | 2 | # SPDX-License-Identifier: GPL-2.0 |
3 | 3 | ||
4 | make &> /dev/null | 4 | if ! make >/dev/null; then |
5 | echo "Building liblockdep failed." | ||
6 | echo "FAILED!" | ||
7 | exit 1 | ||
8 | fi | ||
5 | 9 | ||
6 | for i in `ls tests/*.c`; do | 10 | find tests -name '*.c' | sort | while read -r i; do |
7 | testname=$(basename "$i" .c) | 11 | testname=$(basename "$i" .c) |
8 | gcc -o tests/$testname -pthread $i liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &> /dev/null | ||
9 | echo -ne "$testname... " | 12 | echo -ne "$testname... " |
10 | if [ $(timeout 1 ./tests/$testname 2>&1 | wc -l) -gt 0 ]; then | 13 | if gcc -o "tests/$testname" -pthread "$i" liblockdep.a -Iinclude -D__USE_LIBLOCKDEP && |
14 | timeout 1 "tests/$testname" 2>&1 | "tests/${testname}.sh"; then | ||
11 | echo "PASSED!" | 15 | echo "PASSED!" |
12 | else | 16 | else |
13 | echo "FAILED!" | 17 | echo "FAILED!" |
14 | fi | 18 | fi |
15 | if [ -f "tests/$testname" ]; then | 19 | rm -f "tests/$testname" |
16 | rm tests/$testname | ||
17 | fi | ||
18 | done | 20 | done |
19 | 21 | ||
20 | for i in `ls tests/*.c`; do | 22 | find tests -name '*.c' | sort | while read -r i; do |
21 | testname=$(basename "$i" .c) | 23 | testname=$(basename "$i" .c) |
22 | gcc -o tests/$testname -pthread -Iinclude $i &> /dev/null | ||
23 | echo -ne "(PRELOAD) $testname... " | 24 | echo -ne "(PRELOAD) $testname... " |
24 | if [ $(timeout 1 ./lockdep ./tests/$testname 2>&1 | wc -l) -gt 0 ]; then | 25 | if gcc -o "tests/$testname" -pthread -Iinclude "$i" && |
26 | timeout 1 ./lockdep "tests/$testname" 2>&1 | | ||
27 | "tests/${testname}.sh"; then | ||
25 | echo "PASSED!" | 28 | echo "PASSED!" |
26 | else | 29 | else |
27 | echo "FAILED!" | 30 | echo "FAILED!" |
28 | fi | 31 | fi |
29 | if [ -f "tests/$testname" ]; then | 32 | rm -f "tests/$testname" |
30 | rm tests/$testname | 33 | done |
34 | |||
35 | find tests -name '*.c' | sort | while read -r i; do | ||
36 | testname=$(basename "$i" .c) | ||
37 | echo -ne "(PRELOAD + Valgrind) $testname... " | ||
38 | if gcc -o "tests/$testname" -pthread -Iinclude "$i" && | ||
39 | { timeout 10 valgrind --read-var-info=yes ./lockdep "./tests/$testname" >& "tests/${testname}.vg.out"; true; } && | ||
40 | "tests/${testname}.sh" < "tests/${testname}.vg.out" && | ||
41 | ! grep -Eq '(^==[0-9]*== (Invalid |Uninitialised ))|Mismatched free|Source and destination overlap| UME ' "tests/${testname}.vg.out"; then | ||
42 | echo "PASSED!" | ||
43 | else | ||
44 | echo "FAILED!" | ||
31 | fi | 45 | fi |
46 | rm -f "tests/$testname" | ||
32 | done | 47 | done |