X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Flib-gdr;h=cda11df5b8d5fe7d322d9f8f8168cc44c2554746;hb=05b0c33bc4b28f2b0e105c9d72dd861a233d0d6e;hp=a13696d7581b9543628530cdc9fce7abea7076cd;hpb=e7178a4a4eafad6d816a48c18c2a159f4dd3e40c;p=dgit.git diff --git a/tests/lib-gdr b/tests/lib-gdr index a13696d7..cda11df5 100644 --- a/tests/lib-gdr +++ b/tests/lib-gdr @@ -3,6 +3,8 @@ : ${GDR_TEST_DEBUG=-D} export GDR_TEST_DEBUG +t-tstunt debchange + t-git-debrebase () { local gdr=${DGIT_GITDEBREBASE_TEST-git-debrebase} : ' @@ -21,22 +23,35 @@ t-gdr-good () { # stitched # pushed - git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches' + case $state in + pushed*) + t-gdr-made-patches + ;; + esac - local etypes bwtip + git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches' LC_MESSAGES=C t-git-debrebase status >../status.check case $state in - laundered) + laundered*) egrep '^ *branch is laundered' ../status.check ;; - stitched|pushed) + stitched*|pushed*) egrep \ '^ *branch contains furniture|^ *branch is unlaundered|^ *branch needs laundering' ../status.check egrep '^ stitched$' ../status.check ;; 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- # or AddPatches- @@ -49,11 +64,13 @@ t-gdr-good () { stitched) etypes=Pseudomerge-Upstream ;; pushed) etypes=AddPatches-Pseudomerge-Upstream ;; pushed-interop) etypes=Pseudomerge-AddPatchesInterop-Upstream ;; + breakwater) etypes=Packaging ;; + *) fail-unknown-state-$state ;; esac - anal=../anal - t-git-debrebase analyse >$anal.check - expect=`git rev-parse HEAD` + 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 @@ -70,6 +87,8 @@ t-gdr-good () { Pseudomerge/SAME) ;; Packaging/SAME) ;; Packaging/Upstream) ;; + MergedBreakwaters/Packaging) ;; + MergedBreakwaters/Upstream) ;; AddPatches/SAME) ;; AddPatches/AddPatchesInterop) ;; Changelog/Packaging) ;; @@ -134,6 +153,9 @@ t-gdr-good () { Upstream/SAME) git diff --quiet $expect..$cid -- ':debian' ;; + MergedBreakwaters) + enparents=2 + ;; Anchor) break ;; @@ -152,6 +174,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 } @@ -194,11 +229,9 @@ t-some-changes () { t-make-new-upstream-tarball () { local uv=$1 git checkout make-upstream - # leaves ust set to filename of orig tarball echo "upstream $uv" >>docs/README git commit -a -m "upstream $uv tarball" - ust=example_$uv.orig.tar.gz - git archive -o ../$ust --prefix=example-2.0/ make-upstream + t-make-orig example $uv make-upstream } t-nmu-upload-1 () { @@ -303,3 +336,42 @@ t-gdr-prep-new-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 +} + +t-gdr-gbp-import-core-with-queue () { + t-gdr-gbp-import-core + + : '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 +} + +t-gdr-made-patches () { + git log -n1 --'pretty=format:%B' \ + | egrep '^\[git-debrebase' +}