.. | .. |
---|
1 | 1 | #! /bin/bash |
---|
2 | 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 | 11 | testname=$(basename "$i" .c) |
---|
8 | | - gcc -o tests/$testname -pthread $i liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &> /dev/null |
---|
9 | 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 | /bin/bash "tests/${testname}.sh"; then |
---|
11 | 15 | echo "PASSED!" |
---|
12 | 16 | else |
---|
13 | 17 | echo "FAILED!" |
---|
14 | 18 | fi |
---|
15 | | - if [ -f "tests/$testname" ]; then |
---|
16 | | - rm tests/$testname |
---|
17 | | - fi |
---|
| 19 | + rm -f "tests/$testname" |
---|
18 | 20 | done |
---|
19 | 21 | |
---|
20 | | -for i in `ls tests/*.c`; do |
---|
| 22 | +find tests -name '*.c' | sort | while read -r i; do |
---|
21 | 23 | testname=$(basename "$i" .c) |
---|
22 | | - gcc -o tests/$testname -pthread -Iinclude $i &> /dev/null |
---|
23 | 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 | + /bin/bash "tests/${testname}.sh"; then |
---|
25 | 28 | echo "PASSED!" |
---|
26 | 29 | else |
---|
27 | 30 | echo "FAILED!" |
---|
28 | 31 | fi |
---|
29 | | - if [ -f "tests/$testname" ]; then |
---|
30 | | - rm tests/$testname |
---|
| 32 | + rm -f "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 | + /bin/bash "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 | 45 | fi |
---|
| 46 | + rm -f "tests/$testname" |
---|
32 | 47 | done |
---|