X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=tests%2Ftests%2Ftagupl;h=9d3e45a1c177700e7674156d7256d46e1cd45406;hb=HEAD;hp=80b92bee059d0f004fd3d56dfe05ded2cb0b325f;hpb=2df5e989bcbb8d4d8510e4322f3db964e5b9ca9c;p=dgit.git diff --git a/tests/tests/tagupl b/tests/tests/tagupl index 80b92bee..9d3e45a1 100755 --- a/tests/tests/tagupl +++ b/tests/tests/tagupl @@ -12,24 +12,40 @@ t-worktree 1.0 v=1.0-1 -t-tagupl-settings - cd $p git checkout -b native git checkout --orphan upstream quilt-tip-2 git rm -rf debian git commit -m 'pseudo-upstream' -git tag upstream/1.0 +upstreamtag=UPSTREAM/RELEASE/1.0 +git tag $upstreamtag git checkout -B master quilt-tip-2 -upstream=$(git rev-parse upstream/1.0~0) +echo foo >bar +git add bar +git commit -m"corrupt the upstream source to test upstream-nonidentical check" + +t-tagupl-settings + tagname=test-dummy/$v -t-tagupl-test --no-push --quilt=gbp +t-expect-fail "the upstream source in tag $upstreamtag is not identical to the upstream source in refs/heads/master" \ +t-tagupl-test --quilt=gbp --upstream=$upstreamtag + +git reset --hard HEAD~1 + +t-expect-fail "upstream tag $upstreamtag is not an ancestor of refs/heads/master" \ +t-tagupl-test --quilt=gbp --upstream=$upstreamtag -# xxx test pushing +t-expect-fail "upstream tag $upstreamtag is not an ancestor of refs/heads/master" \ +t-tagupl-test --quilt=gbp --force=suite --force=no-such-force-option --upstream=$upstreamtag + +t-tagupl-test --quilt=gbp --force=suite --force=no-such-force-option-1 \ + --force=upstream-nonancestor,no-such-force-option-2 \ + --upstream=$upstreamtag +t-pushed-good master # todo: test each miss/rejection @@ -64,36 +80,37 @@ with-mangled () { perl <../basetag >../badtag-$ident -pe "$perl" git tag -u Senatus -f -s -m "$(cat ../badtag-$ident)" "$tagname" - t-tagupl-run-drs + LC_MESSAGES=C \ + t-tagupl-run-drs $tmp/$p } expect-quit () { next-mangle "$1" local perl=$2 - local mstring=$3 + local mregexp=$3 with-mangled "$perl" - grep ": $mstring" ../tagupl/overall.log + egrep ": $mregexp" ../tagupl/overall.log } expect-email () { next-mangle "$1" local perl=$2 - local mstring=$3 + local mregexp=$3 with-mangled "$perl" - grep 'Was not successful' ../sendmail.log - grep "$mstring" ../sendmail.log - grep ": failed, emailed" ../tagupl/overall.log + egrep 'Was not successful' ../sendmail.log + egrep "$mregexp" ../sendmail.log + egrep ": failed, emailed" ../tagupl/overall.log } raw-mangled () { git update-ref refs/tags/$tagname \ $(git hash-object -w -t tag ../tagobj-$ident) - t-tagupl-run-drs + t-tagupl-run-drs $tmp/$p } tagname=test-dummy/1.2 t-expect-fail E:'failed command: git fetch' \ -t-tagupl-run-drs +t-tagupl-run-drs $tmp/$p tagname=splorf/$v ; expect-quit baddistro '' 'tag name not for us' tagname=test-dummy/1,2; expect-quit badver '' 'tag name not for us' @@ -121,11 +138,19 @@ expect-email bupstag1 's/ upstream-tag=/$&:/' \ "failed command: git check-ref-format" expect-email bupstag2 's/ upstream-tag=/$&x/' \ - "Couldn't find remote ref refs/tags/xupstream" + "[Cc]ouldn't find remote ref refs/tags/xUPSTREAM" + +expect-email wrongver '' 'mismatch: changelog Version' + +v=1.0-2 + +t-dch-commit -v $v -m bump expect-email upsmism 's/ upstream=/$&3/' \ "but tag refers to" +expect-email wrongpkg 's/^example /explosive /' 'mismatch: changelog Source' + # we are going to trash $p because it will contain corrupted objects # which makes our end-of-test fsck fail cp -al ../$p ../$p.save