chiark / gitweb /
git-debrebase: test suite: gdr-*: break out t-nmu-causes-ff-fail
[dgit.git] / tests / lib-gdr
index 74c571ab7743aa2bd7e705a96ec06f943206ddb7..ac4a476ea3596ba34cd87f85c24b654a8c6d6889 100644 (file)
@@ -22,10 +22,13 @@ t-gdr-good () {
 
        git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches'
 
-       local etype netype
+       local etype netype bwtip
 
        case $state in
-       laundered)      etype=Upstream  ;;
+       laundered)
+                       etype=Upstream
+                       bwtip=Y:`t-git-debrebase breakwater`
+               ;;
        stitched)       etype=Pseudomerge ;;
        pushed)         etype=AddPatches; netype=Pseudomerge ;;
        esac
@@ -43,28 +46,51 @@ t-gdr-good () {
                expect="$parents"
                enparents=1
                : "$ctype/$cetype" "$parents"
+
                case "$ctype/$cetype" in
-               Pseudomerge/SAME)
+               Pseudomerge/SAME)                       ;;
+               Packaging/SAME)                         ;;
+               Packaging/Upstream)                     ;;
+               AddPatches/SAME)                        ;;
+               Changelog/Packaging)                    ;;
+               Changelog/Upstream)                     ;;
+               Upstream/SAME)                          ;;
+               BreakwaterUpstreamMerge/Upstream)       ;;
+               BreakwaterUpstreamMerge/Packaging)      ;;
+               *)
+                       fail "etype=$etype ctype=$ctype cetype=$cetype $cid"
+                       ;;
+               esac
+
+               case "$ctype/$etype" in
+               Packaging/Upstream|\
+               Changelog/Upstream)
+                       if [ "x$bwtip" != x ]; then
+                               test "$bwtip" = "Y:$cid"
+                               bwtip=''
+                       fi
+               esac
+
+               case "$ctype" in
+               Pseudomerge)
                        expect=${info#Contributor=}
                        expect=${expect%% *}
                        enparents=2
                        git diff --quiet $expect..$cid
                        etype=Upstream
                        ;;
-               Packaging/SAME|\
-               Packaging/Upstream)
+               Packaging)
                        git diff --quiet $expect..$cid -- ':.' ':!debian' 
                        git diff --quiet $expect..$cid -- ':debian/patches'
                        etype=Packaging
                        ;;
-               AddPatches/SAME)
+               AddPatches)
                        git diff --quiet $expect..$cid -- \
                                ':.' ':!debian/patches'
                        etype=$netype
                        netype=Upstream
                        ;;
-               Changelog/Packaging|\
-               Changelog/Upstream)
+               Changelog)
                        git diff --quiet $expect..$cid -- \
                                ':.' ':!debian/changelog'
                        etype=Packaging
@@ -72,13 +98,9 @@ t-gdr-good () {
                Upstream/SAME)
                        git diff --quiet $expect..$cid -- ':debian'
                        ;;
-               BreakwaterUpstreamMerge/Upstream| \
-               BreakwaterUpstreamMerge/Packaging)
+               BreakwaterUpstreamMerge)
                        break
                        ;;
-               *)
-                       fail "etype=$etype ctype=$ctype cetype=$cetype $cid"
-                       ;;
                esac
 
                local cnparents=`printf "%s" "$parents" | wc -w`
@@ -95,6 +117,8 @@ t-gdr-good () {
 t-some-changes () {
        local token=$1
 
+       t-git-next-date
+
        echo >>debian/zorkmid "// debian $token"
        git add debian/zorkmid
        git commit -m "DEBIAN add zorkmid ($token)"
@@ -107,6 +131,8 @@ t-some-changes () {
                git add $f
        done
        git commit -m "MIXED add both ($token)"
+
+       t-git-next-date
 }
 
 t-make-new-upstream-tarball () {
@@ -118,3 +144,90 @@ t-make-new-upstream-tarball () {
        ust=example_$uv.orig.tar.gz
        git archive -o ../$ust --prefix=example-2.0/ make-upstream
 }
+
+t-nmu-upload-1 () {
+       # usage:
+       #  v=<full version>
+       #  nmu-upload-1 <nmubranch>
+       #  gbp pq import or perhaps other similar things
+       #  nmu-upload-2
+       #  maybe make some dgit-covertible commits
+       #  nmu-upload-3
+
+       t-git-next-date
+       nmubranch=$1
+       git checkout -f -b $nmubranch
+       t-git-debrebase
+       t-git-debrebase convert-to-gbp
+       t-git-next-date
+       # now we are on a gbp patched-unapplied branch
+}
+
+
+t-nmu-upload-2 () {
+       t-git-next-date
+       t-dch-commit -v $v -m "nmu $nmubranch $v"
+}
+
+t-nmu-upload-3 () {
+       t-dch-commit -r sid
+
+       t-dgit -wgf build-source
+
+       cd ..
+       c=${p}_${v}_source.changes
+       debsign -kBCD22CD83243B79D3DFAC33EA3DBCBC039B13D8A $c
+       dput -c $tmp/dput.cf test-dummy $c
+
+       t-archive-process-incoming sid
+       t-git-next-date
+       cd $p
+       git checkout master
+}
+
+t-nmu-commit-an-upstream-change () {
+       echo >>newsrc.c "// more upstream"
+       git add newsrc.c
+       git commit -m 'UPSTREAM NMU'
+}
+
+t-maintainer-commit-some-changes () {
+       t-dch-commit -v$v -m "start $v"
+
+       t-some-changes "maintainer $v"
+       t-git-debrebase
+       t-git-debrebase stitch
+
+       git branch did.maintainer
+
+       t-git-next-date
+}
+
+t-nmu-causes-ff-fail () {
+       t-expect-fail E:'Not.*fast-forward' \
+       git merge --ff-only dgit/dgit/sid
+}
+
+t-nmu-reconciled-good () {
+       local nmutree=$1
+
+       : 'check that what we have is what is expected'
+
+       git checkout -b compare.nmu origin/master~0
+       git checkout $nmutree .
+       git rm -rf debian/patches
+       git commit -m 'rm patches nmu'
+
+       git checkout -b compare.maintainer origin/master~0
+       git checkout did.maintainer .
+       git rm -rf --ignore-unmatch debian/patches
+       git commit --allow-empty -m 'rm patches maintainer'
+
+       git merge compare.nmu
+       git diff --quiet master
+
+       : 'check that dgit still likes it'
+
+       git checkout master
+       t-dgit -wgf quilt-fixup
+}