X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Ftests%2Fgdr-subcommands;h=c48fb5d80e62a68fb97b1912a89142f02896318a;hp=371ad3425252ecdc1d05958a91ad04c0c690329e;hb=caa7cbcf78c1b936d5300f34c83a6b33ebebf50c;hpb=b5bf8a0f318806562b3089ce8a84d864ee2b3f0f diff --git a/tests/tests/gdr-subcommands b/tests/tests/gdr-subcommands index 371ad342..c48fb5d8 100755 --- a/tests/tests/gdr-subcommands +++ b/tests/tests/gdr-subcommands @@ -2,8 +2,9 @@ set -e . tests/lib -t-dependencies git-buildpackage libfile-fnmatch-perl faketime +t-dependencies GDR +t-tstunt-parsechangelog t-setup-import gdr-convert-gbp cd $p @@ -12,10 +13,16 @@ t-dgit setup-mergechangelogs mix-it () { t-git-next-date + local m=$(git symbolic-ref HEAD) t-some-changes "subcommands $m 1" - t-dgit -wgf quilt-fixup + + # we want patches mde by dgit, not gdr, for our test cases + t-dgit --git-debrebase=true -wgf quilt-fixup + t-git-next-date + t-some-changes "subcommands $m 2" + t-git-next-date } git checkout -b stitched-laundered master @@ -28,10 +35,12 @@ mix-it git checkout -b unstitched-laundered master mix-it +git branch before-unstitch/unstitched-laundered t-git-debrebase t-gdr-good laundered git checkout -b unstitched-mixed master +git branch before-unstitch/unstitched-mixed t-git-debrebase mix-it @@ -58,19 +67,40 @@ subcmd () { before=before-$work git branch $before + local xopts='' + + case "$checkletters" in + XX*) + fail "$checkletters" # for debugging + ;; + esac + + case "$checkletters" in + X*) + t-expect-fail E:'snags: [0-9]* blockers' \ + t-git-debrebase $xopts $subcmd + xopts+=' --force' + next_checkletter + ;; + esac + case "$checkletters" in N*) t-expect-fail E:. \ - t-git-debrebase $subcmd - t-git-debrebase --noop-ok $subcmd + t-git-debrebase $xopts $subcmd + xopts+=' --noop-ok' + next_checkletter ;; + esac + + case "$checkletters" in [EF]:*) t-expect-fail "$checkletters" \ - t-git-debrebase $subcmd + t-git-debrebase $xopts $subcmd continue ;; *) - t-git-debrebase $subcmd + t-git-debrebase $xopts $subcmd ;; esac @@ -130,7 +160,7 @@ make_check () { git reset --hard HEAD^1 ;; P*) - t-dgit -wgf --quilt=check quilt-fixup + t-dgit -wgf --quilt=nofix quilt-fixup git diff HEAD~ debian/patches | egrep . git diff --quiet HEAD~ -- ':.' ':!debian/patches' git reset --hard HEAD~ @@ -145,10 +175,20 @@ make_check () { f*) t-has-ancestor HEAD refs/heads/$before ;; + Z*) + t-refs-same-start + t-refs-same refs/heads/$work + t-refs-same refs/heads/before-unstitch/$startbranch + t-ref-head + ;; + *) + fail "$1" + ;; esac } Ec="F:No ongoing git-debrebase session" +Ep="F:Patch export produced patch amendments" # input state: # stitched? st'd st'd unst'd unst'd @@ -163,13 +203,17 @@ subcmd stitch Ns Nu Sltf Stf subcmd prepush Ns Nu Sltf Stf subcmd quick ns Sl Sltf Sl subcmd conclude "$Ec" "$Ec" Sltf Sl -#subcmd make-patches sPft sPft uPft uPft -#subcmd dgit-upload-hook Psft Psft SPft SPft +subcmd scrap Ns Ns Z Z +subcmd make-patches sPft "$Ep" uPft "$Ep" +#subcmd dgit-upload-hook Psft "$Ep" SPft "$Ep" # # result codes, each one is a check: # E:$pat } this is an error (must come first) # F:$pat } arg is passed to expect-fail # +# X should fail due to snags, but succeed when forced +# XX crash out of script for manual debugging +# # N this is a noop, error unless --noop-ok # n this is a silent noop # both of these imply tf; but, specify also one of u s @@ -180,6 +224,7 @@ subcmd conclude "$Ec" "$Ec" Sltf Sl # V ffq-prev remains unchanged; implies also u # s result is stitched, debrebase-last exists and is unchanged # S result is stitch just made, remaining letters apply to result~ +# Z result is rewind to before changes made # # P result is add-patches, remaining letters apply to result~ #