summaryrefslogtreecommitdiff
path: root/tests/list-tests
blob: 21f96b47b0ccf3efa396aff69f30be822f7c459d (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
36
37
38
39
40
41
42
43
#!/bin/bash

set -e

. tests/lib-core
. tests/lib-restricts

mode=$1

test-begin- () {
	whynots=''
}

restriction- () {
	set +e
	whynot=$(t-restriction-$r)
	rc=$?
	set -e
	case "$rc.$whynot" in
	0.)	;;
	1.?*)	whynots="$whynots${whynots:+; }$whynot" ;;
	*)	fail "restriction $r for $t gave $rc $whynot !"
	esac
}

test-done- () {
	case "$whynots" in
	'')	echo $t ;;
	?*)	echo >&2 "SKIP $t $whynots" ;;
	esac
}

for t in $(run-parts --list tests/tests); do
	test-begin-$mode
	for r in $(sed <$t -n '
		20q;
		/^: t-list-tests-end$/q;		
		s/^t-restrict //p
	'); do
		restriction-$mode
	done
	test-done-$mode
done