aboutsummaryrefslogtreecommitdiff
path: root/test/test.sh
blob: 4325c91cd0b1b4eb5f6216938bdfca0146eef503 (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

re="${TEST:-$@}"

TESTBIN="test/run"
TESTOUT="test/last.out"
TESTERR="test/last.err"
CUBEOBJ="debugcube.o"

for t in test/*; do
	if [ -n "$re" ] && [ -z "$(echo "$t" | grep "$re")" ]; then
		continue
	fi
	
	# Verifica se $t è una directory e se il suo nome inizia con tre cifre
	if [ -d "$t" ] && echo "$(basename "$t")" | grep -Eq '^[0-9]{3}'; then
		$CC -o $TESTBIN $t/*.c $CUBEOBJ || exit 1
		for cin in $t/*.in; do
			c=$(echo "$cin" | sed 's/\.in//')
			cout=$c.out
			printf "$c: "
			$TESTBIN < "$cin" > $TESTOUT 2> $TESTERR
			if diff $cout $TESTOUT; then
				printf "OK\n"
			else
				printf "Test failed! stderr:\n"
				cat $TESTERR
				exit 1
			fi
		done
	fi
done

echo "All tests passed!"
rm -rf $TESTBIN $TESTOUT $TESTERR $CUBEOBJ

Generated with cgit - Back to sebastiano.tronto.net