chiark / gitweb /
test suite: Make example_1.1 contain a patch with Name and Topic
[dgit.git] / tests / lib-gdr
index 1bb810fef4445ed046d078973d3fd0312333bd62..bda2679ab235468a0a0f2b99be1e122249acdb70 100644 (file)
@@ -23,8 +23,6 @@ t-gdr-good () {
 
        git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches'
 
-       local etypes bwtip
-
        LC_MESSAGES=C t-git-debrebase status >../status.check
        case $state in
        laundered)
@@ -37,6 +35,15 @@ t-gdr-good () {
                ;;
        esac
 
+       t-gdr-good-analyse HEAD $state
+}
+
+t-gdr-good-analyse () {
+       local head=$1
+       local state=$2
+       local wsfx=$3
+       local etypes bwtip
+
        # etypes is either a type,
        # or   PseudoMerge-<more etypes>
        # or   AddPatches-<more etypes>
@@ -49,11 +56,13 @@ t-gdr-good () {
        stitched)       etypes=Pseudomerge-Upstream ;;
        pushed)         etypes=AddPatches-Pseudomerge-Upstream ;;
        pushed-interop) etypes=Pseudomerge-AddPatchesInterop-Upstream ;;
+       breakwater)     etypes=Packaging ;;
        esac
 
-       t-git-debrebase analyse >../anal.check
-       expect=`git rev-parse HEAD`
-       exec <../anal.check
+       anal=../anal$wsfx
+       t-git-debrebase analyse $head >$anal.check
+       expect=`git rev-parse $head`
+       exec <$anal.check
        local cid ctype info nparents
        while read cid ctype info; do
                : ===== $cid $ctype $info =====
@@ -69,6 +78,8 @@ t-gdr-good () {
                Pseudomerge/SAME)                       ;;
                Packaging/SAME)                         ;;
                Packaging/Upstream)                     ;;
+               MergedBreakwaters/Packaging)            ;;
+               MergedBreakwaters/Upstream)             ;;
                AddPatches/SAME)                        ;;
                AddPatches/AddPatchesInterop)           ;;
                Changelog/Packaging)                    ;;
@@ -108,9 +119,9 @@ t-gdr-good () {
                        : 'reject pointless pseudomerges'
                        local overwritten=${parents/$expect/}
                        overwritten=${overwritten// /}
-                       t-git-debrebase analyse $overwritten >../anal.overwr
+                       t-git-debrebase analyse $overwritten >$anal.overwr
                        local ocid otype oinfo
-                       read <../anal.overwr ocid otype oinfo
+                       read <$anal.overwr ocid otype oinfo
                        case "$otype" in
                        Pseudomerge) test "x$info" != "x$oinfo" ;;
                        esac
@@ -133,6 +144,9 @@ t-gdr-good () {
                Upstream/SAME)
                        git diff --quiet $expect..$cid -- ':debian'
                        ;;
+               MergedBreakwaters)
+                       enparents=2
+                       ;;
                Anchor)
                        break
                        ;;
@@ -151,6 +165,19 @@ t-gdr-good () {
                *)              fail 'unexpected parent' ;;
                esac
 
+               case "$ctype" in
+               MergedBreakwaters)
+                       local f
+                       local parent_ix=0
+                       for f in $parents; do
+                               t-gdr-good-analyse $f breakwater \
+                                       $wsfx-mp$parent_ix
+                               parent_ix=$(( $parent_ix + 1 ))
+                       done
+                       return
+                       ;;
+               esac            
+
        done
 }
 
@@ -291,3 +318,44 @@ t-nmu-reconciled-good () {
        git checkout master
        t-dgit -wgf quilt-fixup
 }
+
+t-gdr-prep-new-upstream () {
+       uv=$1
+       t-git-next-date
+       git checkout make-upstream
+       git reset --hard upstream
+       t-make-new-upstream-tarball $uv
+       git push . make-upstream:upstream
+       git checkout master
+       t-git-next-date
+}
+
+t-gdr-gbp-import-core () {
+       p=example
+       t-worktree 1.1
+
+       cd example
+
+       : 'fake up some kind of upstream'
+       git checkout -b upstream quilt-tip
+       rm -rf debian
+       mkdir debian
+       echo junk >debian/rules
+       git add debian
+       git commit -m "an upstream retcon ($0)"
+       git tag v1.0
+
+       : 'fake up that our quilt-tip was descended from upstream'
+       git checkout quilt-tip
+       git merge --no-edit -s ours upstream
+
+       : 'fake up that our quilt-tip had the patch queue in it'
+       git checkout patch-queue/quilt-tip
+       gbp pq export
+       git add debian/patches
+       git commit -m "patch queue update ($0)"
+
+       : 'make branch names more conventional'
+       git branch -D master
+       git branch -m quilt-tip master
+}