48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #! /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
 |