summaryrefslogtreecommitdiff
path: root/scripts/run-test
blob: 05ddfe1c8901ba2aef0710c45d62fbc8cba967c7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh

TEST="$1"
NAME=$(basename "$TEST")

mkdir -p "reports/$NAME"

I=0
while :; do
	# if no error happened, consider it a pass
	if valgrind -q --leak-check=full --error-exitcode=1 \
		"./$TEST" > "reports/$NAME/run-$I" 2>&1
	then
		echo "$NAME: PASSED"
		exit 0
	fi

	if grep 'loss record' "reports/$NAME/run-$I" >/dev/null; then
		echo "$NAME: MEM FAILED"
		exit 1
	fi

	# an error occured, was it handled properly?
	if grep 'COVSRV: EXIT' "reports/$NAME/run-$I" >/dev/null; then
		I=$((I+1))
		continue
	fi

	echo "$NAME: FAILED"
	exit 1
done