test-begin-gencontrol () {
restrictions=''
- dependencies=''
+ dependencies='dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime'
+}
+
+gencontrol-add-things () {
+ local varname=$1; shift
+ local delim=$1; shift
+ local thing
+ eval '
+ for thing in "$@"; do
+ case " $'$varname$delim '" in
+ *" "$thing"'$delim' "*) continue ;;
+ esac
+ '$varname'+="${'$varname':+'$delim' }$thing"
+ done
+ '
}
restriction-gencontrol () {
+ if [ $r = x-dgit-out-of-tree-only ]; then return; fi
restrictions+=" $r"
}
+gencontrol-add-deps () {
+ gencontrol-add-things dependencies , "$@"
+}
+
dependencies-gencontrol () {
- dependencies+=", $deps"
+ for dep in "$deps"; do
+ case "$dep" in
+ NO-DGIT) dependencies='chiark-utils-bin, faketime' ;;
+ NO-DEFAULT) dependencies='' ;;
+ GDR) gencontrol-add-deps \
+ git-debrebase git-buildpackage
+ ;;
+ DEBORIG) gencontrol-add-deps \
+ devscripts libdpkg-perl \
+ libgit-wrapper-perl liblist-compare-perl \
+ libstring-shellquote-perl libtry-tiny-perl \
+ # NB git-deborig is not compatible with
+ # t-tstunt-parsechangelog
+ ;;
+ *) gencontrol-add-deps "$dep" ;;
+ esac
+ done
}
test-done-gencontrol () {
seddery () {
local seddery=$1
- sed <$t -n '
+ sed <$tf -n '
20q;
/^: t-enumerate-tests-end$/q;
'"$seddery"'
'
}
-for t in $(run-parts --list tests/tests); do
- test-begin-$mode
+allsedderies () {
+ local tf=$1
for r in $(seddery 's/^t-restrict //p'); do
restriction-$mode
done
for deps in $(seddery 's/^t-dependencies //p'); do
dependencies-$mode
done
+ for import in $(seddery 's/^t-setup-import //p'); do
+ allsedderies tests/setup/$import
+ done
+}
+
+for t in $(run-parts --list tests/tests); do
+ test-begin-$mode
+ allsedderies $t
test-done-$mode
done