X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=tests%2Ftests%2Fquilt-gbp;h=cf148f613ee6f3b6ac150828cefa86154f579e69;hb=0e41808f2b25117c153c55d3913d85ce21b735fd;hp=271ea2c71c1b34ab9064c57fdfd104e963795db2;hpb=19d8ae7e56d6257e2bb925d0a6f2d7f4329a4523;p=dgit.git diff --git a/tests/tests/quilt-gbp b/tests/tests/quilt-gbp index 271ea2c7..cf148f61 100755 --- a/tests/tests/quilt-gbp +++ b/tests/tests/quilt-gbp @@ -2,6 +2,22 @@ set -e . tests/lib +# `dgit build-source` cleans before applying patches. However, the +# clean targets of 3.0 (quilt) packages are allowed to assume that +# patches are applied. If they are not, the clean targets can +# misbehave in basically two ways: +# +# - fail to clean everything +# - error out and stop the build +# +# In this test, what we want to see is whether dgit detects that quilt +# fixup cannot be linear because the user has failed to pass --gbp. +# So we need to ensure the package's clean target does not error out, +# because that blocks dgit attempting quilt linearisation. This +# environment variable tells the example package's clean target not to +# error out if it notices that patches have not yet been applied. +export DGIT_TEST_TOLERATE_UNPATCHED_CLEAN=true + t-tstunt-parsechangelog t-gbp-example-prep @@ -9,55 +25,53 @@ t-gbp-example-prep t-expect-fail 'quilt fixup cannot be linear' \ t-dgit build-source -t-dgit --quilt=gbp build-source +t-git-config dgit-distro.test-dummy.dgit-tag-format new +t-expect-fail 'requires split view so server needs to support' \ +t-dgit -wgf --quilt=gbp build-source +t-newtag + +t-dgit --quilt=gbp --dgit-view-save=split.b1 build-source +git rev-parse split.b1 -t-dgit --quilt=gbp --gbp=no-such-command-gbp build-source +t-dgit --quilt=gbp --gbp-pq=no-such-command-gbp build-source echo spong >debian/pointless-for-dgit-test git add debian/pointless-for-dgit-test git commit -m Pointless t-expect-fail no-such-command-gbp \ -t-dgit --quilt=gbp --clean=git --gbp=no-such-command-gbp build-source +t-dgit --quilt=gbp --clean=git --gbp-pq=no-such-command-gbp build-source -t-dgit --quilt=gbp --clean=git build-source +test-push-1 () { + t-refs-same-start + t-ref-head +} -t-expect-fail 'specifies a different tree to your HEAD commit' \ - t-dgit push +test-push-2 () { + t-dgit --quilt=gbp --dgit-view-save=split.p push -t-refs-same-start -t-ref-head + t-gbp-pushed-good +} -t-dgit --quilt=gbp push +test-push-1 -t-ref-head +t-dgit --quilt=gbp --clean=git --dgit-view-save=split.b build-source -exit 0 +t-expect-fail "HEAD specifies a different tree to $p" \ + t-dgit push -=== +test-push-2 -want to +echo wombat >>debian/pointless-for-dgit-test +git add debian/pointless-for-dgit-test +git commit -m 'Pointless 2' - t-pushed-good XXX need to do something more subtle than check our branch is in repo now: +t-commit 'Check pseudomerge' 1.0-3 - # check that: - # working tree is still clean - # DEP-14 tag refers to our HEAD, unchanged - # New dgit tag refers to a descendant - # New dgit tag and archive tag and .dsc hash are same - # dgit tree can be made by - # - dpkg-source -x on the pushed .dsc - # - modulo .pc - # Maintainer tree can be made by - # - dpkg-source -x --skip-patches on the pushed .dsc - # - deleting any auto-gitignore patch and removing it from series - # - modulo .pc - # dgit tree can be made by - # - as above, and then dpkg-source --before-build - # - modulo .pc and non-debian/ .gitignores +test-push-1 -make a new change +t-dgit --quilt=gbp --clean=git --dgit-view-save=split.b build-source -push it +test-push-2 -check that the synthetic fast forward worked +t-ok