chiark / gitweb /
test suite: tagupl: raw-mangled: Use 1.0-2 tagname in raw-mangled
[dgit.git] / tests / tests / tagupl
index aa47e57318babf3a584fa3f01595039ea7f5d975..9f12eede152d468f6b152f38b3ee82cd18fdbfe3 100755 (executable)
@@ -46,6 +46,8 @@ perl -i -ne '
        print or die $!;
 ' ../basetag
 
+git cat-file tag test-dummy/1.0-1 >../raw-base
+
 mv-ident () {
        local f=$tmp/$1
        if test -e $f; then
@@ -85,6 +87,12 @@ expect-email () {
        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
+}
+
 tagname=test-dummy/1.2
 t-expect-fail E:'failed command: git fetch' \
 t-tagupl-run-drs
@@ -97,19 +105,43 @@ expect-quit noplease s/please-upload/plunk/ 'tag missing please-upload'
 
 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 upsmism 's/ upstream=/$&3/' \
+       "but tag refers to"
+
 # 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
 
 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