chiark / gitweb /
test suite: editing a test script overrides DGIT_TESTS_PROGRESSIVE.
[dgit.git] / tests / lib-gdr
index b60ccb8..95d2330 100644 (file)
@@ -22,7 +22,7 @@ t-gdr-good () {
 
        git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches'
 
-       local etype netype bwtip
+       local etypes bwtip
 
        LC_MESSAGES=C t-git-debrebase status >../status.check
        case $state in
@@ -36,13 +36,18 @@ t-gdr-good () {
                ;;
        esac
 
+       # etypes is either a type,
+       # or   PseudoMerge-<more etypes>
+       # or   AddPatches-<more etypes>
+
        case $state in
        laundered)
-                       etype=Upstream
+                       etypes=Upstream
                        bwtip=Y:`t-git-debrebase breakwater`
                ;;
-       stitched)       etype=Pseudomerge ;;
-       pushed)         etype=AddPatches; netype=Pseudomerge ;;
+       stitched)       etypes=Pseudomerge-Upstream ;;
+       pushed)         etypes=AddPatches-Pseudomerge-Upstream ;;
+       pushed-interop) etypes=Pseudomerge-AddPatchesInterop-Upstream ;;
        esac
 
        t-git-debrebase analyse >../anal.check
@@ -52,8 +57,8 @@ t-gdr-good () {
        while read cid ctype info; do
                : ===== $cid $ctype $info =====
                test $cid = $expect
-               local cetype=$etype
-               if [ "x$ctype" = "x$etype" ]; then cetype=SAME; fi
+               local cetype=${etypes%%-*}
+               if [ "x$ctype" = "x$cetype" ]; then cetype=SAME; fi
                local parents="`git log -n1 --pretty=format:%P $cid`"
                expect="$parents"
                enparents=1
@@ -64,17 +69,18 @@ t-gdr-good () {
                Packaging/SAME)                         ;;
                Packaging/Upstream)                     ;;
                AddPatches/SAME)                        ;;
+               AddPatches/AddPatchesInterop)           ;;
                Changelog/Packaging)                    ;;
                Changelog/Upstream)                     ;;
                Upstream/SAME)                          ;;
                Anchor/Upstream)                        ;;
                Anchor/Packaging)                       ;;
                *)
-                       fail "etype=$etype ctype=$ctype cetype=$cetype $cid"
+                       fail "etypes=$etypes ctype=$ctype cetype=$cetype $cid"
                        ;;
                esac
 
-               case "$ctype/$etype" in
+               case "$ctype/$etypes" in
                Packaging/Upstream|\
                Changelog/Upstream)
                        if [ "x$bwtip" != x ]; then
@@ -83,13 +89,20 @@ t-gdr-good () {
                        fi
                esac
 
+               case "$cetype" in
+               AddPatchesInterop)
+                       git log -n1 --pretty=format:%B \
+                       | grep '^\[git-debrebase[ :]'
+                       ;;
+               esac
+
                case "$ctype" in
                Pseudomerge)
                        expect=${info#Contributor=}
                        expect=${expect%% *}
                        enparents=2
                        git diff --quiet $expect..$cid
-                       etype=Upstream
+                       etypes=${etypes#*-}
 
                        : 'reject pointless pseudomerges'
                        local overwritten=${parents/$expect/}
@@ -104,18 +117,17 @@ t-gdr-good () {
                Packaging)
                        git diff --quiet $expect..$cid -- ':.' ':!debian' 
                        git diff --quiet $expect..$cid -- ':debian/patches'
-                       etype=Packaging
+                       etypes=Packaging
                        ;;
                AddPatches)
                        git diff --quiet $expect..$cid -- \
                                ':.' ':!debian/patches'
-                       etype=$netype
-                       netype=Upstream
+                       etypes=${etypes#*-}
                        ;;
                Changelog)
                        git diff --quiet $expect..$cid -- \
                                ':.' ':!debian/changelog'
-                       etype=Packaging
+                       etypes=Packaging
                        ;;
                Upstream/SAME)
                        git diff --quiet $expect..$cid -- ':debian'
@@ -129,7 +141,7 @@ t-gdr-good () {
                test $cnparents = $enparents
 
                local cndparents=`
-       for f in $parents; do echo $f; done | sort -u | wc -w
+       for f in $parents; do echo $f; done | t-sort -u | wc -w
                                `
                test $cndparents = $cnparents
 
@@ -143,21 +155,34 @@ t-gdr-good () {
 
 t-some-changes () {
        local token=$1
+       local which=${2-dum}
 
        t-git-next-date
 
-       echo >>debian/zorkmid "// debian $token"
-       git add debian/zorkmid
-       git commit -m "DEBIAN add zorkmid ($token)"
+       case "$which" in
+       *d*)
+               echo >>debian/zorkmid "// debian $token"
+               git add debian/zorkmid
+               git commit -m "DEBIAN add zorkmid ($token)"
+               ;;
+       esac
 
-       echo >>src.c "// upstream $token"
-       git commit -a -m "UPSTREAM edit src.c ($token)"
+       case "$which" in
+       *u*)
+               echo >>src.c "// upstream $token"
+               git commit -a -m "UPSTREAM edit src.c ($token)"
+               ;;
+       esac
 
-       for f in debian/zorkmid src.c; do
-               echo "// both! $token" >>$f
-               git add $f
-       done
-       git commit -m "MIXED add both ($token)"
+       case "$which" in
+       *m*)
+               for f in debian/zorkmid src.c; do
+                       echo "// both! $token" >>$f
+                       git add $f
+               done
+               git commit -m "MIXED add both ($token)"
+               ;;
+       esac
 
        t-git-next-date
 }
@@ -197,7 +222,7 @@ t-nmu-upload-2 () {
 }
 
 t-nmu-upload-3 () {
-       t-dch-commit -r sid
+       t-dch-commit-r
 
        t-dgit -wgf build-source