| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| |
| if ! make >/dev/null; then |
| echo "Building liblockdep failed." |
| echo "FAILED!" |
| exit 1 |
| fi |
| |
| 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 | /bin/bash "tests/${testname}.sh"; then |
| echo "PASSED!" |
| else |
| echo "FAILED!" |
| fi |
| rm -f "tests/$testname" |
| done |
| |
| 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 | |
| /bin/bash "tests/${testname}.sh"; then |
| echo "PASSED!" |
| else |
| echo "FAILED!" |
| 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; } && |
| /bin/bash "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 |