chiark / gitweb /
changelog: finalise 9.5
[dgit.git] / tests / enumerate-tests
index 912ee4ffdff4fcce80ac5ec2fc87f64b2c3386d9..8ee34bec4a354ec9824d098108ccb871c8061e16 100755 (executable)
@@ -15,6 +15,8 @@ restriction- () {
        set +e
        whynot=$(t-restriction-$r)
        rc=$?
+       whynot="${whynot//
+/ / }"
        set -e
        case "$rc.$whynot" in
        0.)     ;;
@@ -40,15 +42,41 @@ finish- () {
 
 test-begin-gencontrol () {
        restrictions=''
-       dependencies=''
+       dependencies='dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, faketime'
 }
 
 restriction-gencontrol () {
+       if [ $r = x-dgit-out-of-tree-only ]; then return; fi
        restrictions+=" $r"
 }
 
+gencontrol-add-deps () {
+       for dep in "$@"; do
+               case " $dependencies," in
+               *" "$dep","*)   continue ;;
+               esac
+               dependencies+="${dependencies:+, }$dep"
+       done
+}
+
 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 () {
@@ -86,21 +114,29 @@ 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
+}
+
+for t in $(run-parts --list tests/tests); do
+       test-begin-$mode
+       allsedderies $t
        test-done-$mode
 done