summaryrefslogtreecommitdiff
path: root/test/vis/test.sh
blob: a52fe0f3d1cea503b0b09d31b272206edeb4c619 (plain)
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
#!/bin/sh

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

TESTS=$1
[ -z "$TESTS" ] && TESTS=$(find . -name '*.keys' | sed 's/\.keys$//g')

TESTS_RUN=0
TESTS_OK=0

$VIS -v

for t in $TESTS; do
	ERR="$t.err"
	OUT="$t.out"
	REF="$t.ref"
	printf "Running test %s ... " "$t"
	rm -f "$OUT" "$ERR"
	{ cat "$t.keys"; printf "<Escape>:wq! $OUT<Enter>"; } | cpp -P | ../util/keys | $VIS "$t.in" 2> /dev/null
	if [ -e "$OUT" ]; then
		if cmp -s "$REF" "$OUT"; then
			printf "OK\n"
			TESTS_OK=$((TESTS_OK+1))
		else
			printf "FAIL\n"
			diff -u "$REF" "$OUT" > "$ERR"
		fi
		TESTS_RUN=$((TESTS_RUN+1))
	fi
done

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

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