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
-# xxx test pushing
+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
+
+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
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'
"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
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