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=2a90cdc0680c404d60c1884936d0ef85064538dc;hb=caa7cbcf78c1b936d5300f34c83a6b33ebebf50c;hpb=759d9092784d1aea335bd277e930c8f50ef0a493 diff --git a/tests/tests/gdr-subcommands b/tests/tests/gdr-subcommands index 2a90cdc0..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 @@ -16,7 +17,8 @@ mix-it () { 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" @@ -33,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 @@ -63,22 +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 @@ -138,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~ @@ -153,6 +175,12 @@ 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" ;; @@ -160,6 +188,7 @@ make_check () { } 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 @@ -174,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 @@ -191,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~ #