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)
-tagname=test-dummy/$v
+t-tagupl-settings
-t-tagupl-test --no-push --quilt=gbp
+tagname=test-dummy/$v
-# xxx test pushing
+t-tagupl-test --quilt=gbp --upstream=$upstreamtag
+t-pushed-good master
# todo: test each miss/rejection
perl <../basetag >../badtag-$ident -pe "$perl"
git tag -u Senatus -f -s -m "$(cat ../badtag-$ident)" "$tagname"
- t-tagupl-run-drs
+ t-tagupl-run-drs $tmp/$p
}
expect-quit () {
grep ": 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 $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'
expect-email vermatch 's/^example release /$&3/' 'reject: version mismatch'
+expect-email unkinfo 's/^\[dgit please-upload/$& Rejectme/' \
+ 'unknown dgit info in tag'
+
+expect-quit unkdistro 's/test-dummy/ubuntu/ if m/^\[dgit/' \
+ 'not for this distro'
+
+expect-email notsplit 's/ split / no-split /' 'reject: missing "split"'
+
+expect-email upsnot1 's/ upstream=/ uxstream=/' \
+ 'reject: upstream tag and not commitish'
+
+expect-email upsnot2 's/ upstream-tag=/ uxstream-tag=/' \
+ 'reject: upstream tag and not commitish'
+
+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"
+
+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
cd ../$p
+git cat-file tag $tagname >../raw-base
+
+next-mangle sigfail
+perl -pe <../raw-base >../tagobj-$ident 's/ split / split ignoreme /'
+raw-mangled
+grep 'gpgv: BAD signature' ../sendmail.log
+
+next-mangle nosig
+perl -ne <../raw-base >../tagobj-$ident 'print unless m/^-----/..0'
+raw-mangled
+grep 'missing signature' ../sendmail.log
+
+git cat-file tag test-dummy/1.0-1 >../raw-base
+
next-mangle badtagger
-git cat-file tag test-dummy/1.0-1 | perl -pe '
+perl -pe <../raw-base '
s/\+\d+$/xyz/ if m/^tagger /;
exit 0 if m/^$/;
' >../tagobj-$ident
echo >>../tagobj-$ident
cat ../basetag >>../tagobj-$ident
-git update-ref $tagname $(git hash-object -w -t tag ../tagobj-$ident)
+raw-mangled
+grep 'failed to fish tagger out of tag' ../tagupl/overall.log
cd ..
rm -rf $p