chiark / gitweb /
dgit: update-vcs-git: Do not crash if url is unchanged
[dgit.git] / tests / enumerate-tests
index a532b526bfa56efcccaf6000016914a1eb4749e9..680236e68cdd3652977bd63a9094aef35544fd65 100755 (executable)
@@ -45,15 +45,27 @@ test-begin-gencontrol () {
        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-things restrictions '' "$r"
 }
 
 gencontrol-add-deps () {
-       for dep in "$@"; do
-               dependencies+="${dependencies:+, }$dep"
-       done
+       gencontrol-add-things dependencies , "$@"
 }
 
 dependencies-gencontrol () {
@@ -64,6 +76,13 @@ dependencies-gencontrol () {
                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
@@ -79,7 +98,7 @@ test-done-gencontrol () {
                        }
                ' 
                case "$restrictions" in
-               ?*) echo "Restrictions:$restrictions" ;;
+               ?*) echo "Restrictions: $restrictions" ;;
                esac
                )
        key=$(printf "%s" "$stanza" | sha256sum)
@@ -104,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