forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
#! /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
|
|
|