aboutsummaryrefslogtreecommitdiff
path: root/test/lua/test.sh
blob: 3bef6ba9d7d94fa0a6c744da56cb9821faf19db2 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash

[ -z "$VIS" ] && VIS="../../vis"
$VIS -v

TESTS_OK=0
TESTS_RUN=0

export VIS_PATH=.
export VIS_THEME=theme

if [ $# -gt 0 ]; then
	test_files=$@
else
	test_files=$(find . -type f -name "*.in")
fi

for t in $test_files; do
	TESTS_RUN=$((TESTS_RUN + 1))
	t=${t%.in}
	t=${t#./}
	$VIS $t.in

	printf "%-30s" "$t"
	if [ -e $t.out ]; then
		if cmp $t.ref $t.out 2> /dev/null; then
			printf "PASS\n"
			TESTS_OK=$((TESTS_OK + 1))
		else
			printf "FAIL\n"
			diff -u $t.ref $t.out > $t.err
		fi
	elif [ -e $t.status ]; then
		if ! grep -v true $t.status > /dev/null; then
			printf "PASS\n"
			TESTS_OK=$((TESTS_OK + 1))
		else
			printf "FAIL\n"
			printf "$t\n" > $t.err
			grep -vn true $t.status >> $t.err
		fi
	else
		printf "FAIL\n"
	fi
done

printf "Tests ok %d/%d\n" $TESTS_OK $TESTS_RUN

# set exit status
[ $TESTS_OK -eq $TESTS_RUN ]