X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Fenumerate-tests;h=9b9271cb1baf1cf756caed9313ba694e3a1d29a3;hp=0f37c961027d66568eb5d63ea0c3845f20088a95;hb=HEAD;hpb=a300724a321a26770ccf701e0a638c7bfa93fa5c diff --git a/tests/enumerate-tests b/tests/enumerate-tests index 0f37c961..9b9271cb 100755 --- a/tests/enumerate-tests +++ b/tests/enumerate-tests @@ -42,26 +42,46 @@ finish- () { test-begin-gencontrol () { restrictions='' - dependencies='dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc' + 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 () { - for dep in "$@"; do - dependencies+="${dependencies:+, }$dep" - done + gencontrol-add-things dependencies , "$@" } dependencies-gencontrol () { for dep in "$deps"; do case "$dep" in - NO-DGIT) dependencies='chiark-utils-bin' ;; + NO-DGIT) dependencies='chiark-utils-bin, faketime' ;; NO-DEFAULT) dependencies='' ;; GDR) gencontrol-add-deps \ - git-debrebase git-buildpackage faketime + 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 @@ -78,7 +98,7 @@ test-done-gencontrol () { } ' case "$restrictions" in - ?*) echo "Restrictions:$restrictions" ;; + ?*) echo "Restrictions: $restrictions" ;; esac ) key=$(printf "%s" "$stanza" | sha256sum) @@ -103,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