X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Fenumerate-tests;h=8ee34bec4a354ec9824d098108ccb871c8061e16;hb=HEAD;hp=2c00f975a7f88b4fa3104ed60f3d88ad1ec9a6f6;hpb=f773b1ed2796196e0fa801886fce493544c38fe0;p=dgit.git diff --git a/tests/enumerate-tests b/tests/enumerate-tests index 2c00f975..9b9271cb 100755 --- a/tests/enumerate-tests +++ b/tests/enumerate-tests @@ -42,15 +42,50 @@ finish- () { test-begin-gencontrol () { restrictions='' - dependencies='' + dependencies='dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime, liburi-perl' +} + +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 () { - restrictions+=" $r" + if [ $r = x-dgit-out-of-tree-only ]; then return; fi + gencontrol-add-things 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 () { @@ -63,7 +98,7 @@ test-done-gencontrol () { } ' case "$restrictions" in - ?*) echo "Restrictions:$restrictions" ;; + ?*) echo "Restrictions: $restrictions" ;; esac ) key=$(printf "%s" "$stanza" | sha256sum) @@ -88,21 +123,33 @@ finish-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 + if egrep -q '^t-alt-test *$' <$tf; then + local leaf=${tf#tests/tests/} + allsedderies tests/tests/"${leaf#*-}" + fi +} + +for t in $(run-parts --list tests/tests); do + test-begin-$mode + allsedderies $t test-done-$mode done