blob: 3ef0fe9429588b5577b15731310eb5533627080b (
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
#!/bin/bash
set -e
. tests/lib-core
. tests/lib-restricts
mode=$1
test-begin- () {
whynots=''
}
restriction- () {
set +e
whynot=$(t-restriction-$r)
rc=$?
whynot="${whynot//
/ / }"
set -e
case "$rc.$whynot" in
0.) ;;
1.?*) whynots="$whynots${whynots:+; }$whynot" ;;
*) fail "restriction $r for $t gave $rc $whynot !"
esac
}
dependencies- () {
:
}
test-done- () {
case "$whynots" in
'') echo $t ;;
?*) echo >&2 "SKIP $t $whynots" ;;
esac
}
finish- () {
:
}
test-begin-gencontrol () {
restrictions=''
dependencies='dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin'
}
restriction-gencontrol () {
restrictions+=" $r"
}
gencontrol-add-deps () {
for dep in "$@"; do
dependencies+="${dependencies:+, }$dep"
done
}
dependencies-gencontrol () {
for dep in "$deps"; do
case "$dep" in
NO-DEFAULT) dependencies='' ;;
*) gencontrol-add-deps "$dep" ;;
esac
done
}
test-done-gencontrol () {
stanza=$(
add_Depends="$dependencies" \
perl <debian/tests/control.in -wpe '
if (/^(\w+):/) {
my $h = $1;
s{$}{ $ENV{"add_$h"} // "" }e;
}
'
case "$restrictions" in
?*) echo "Restrictions:$restrictions" ;;
esac
)
key=$(printf "%s" "$stanza" | sha256sum)
key=${key%% *}
eval "
stanza_$key=\"\$stanza\"
tests_$key+=\" \${t#tests/tests/}\"
"
keys=" ${keys/ $key /}"
keys+=" $key "
}
finish-gencontrol () {
for key in $keys; do
eval "
stanza=\$stanza_$key
tests=\$tests_$key
"
printf "Tests:%s\n%s\n\n" "$tests" "$stanza"
done
}
seddery () {
local seddery=$1
sed <$t -n '
20q;
/^: t-enumerate-tests-end$/q;
'"$seddery"'
'
}
for t in $(run-parts --list tests/tests); do
test-begin-$mode
for r in $(seddery 's/^t-restrict //p'); do
restriction-$mode
done
for deps in $(seddery 's/^t-dependencies //p'); do
dependencies-$mode
done
test-done-$mode
done
finish-$mode
|