blob: aa47e57318babf3a584fa3f01595039ea7f5d975 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
#!/bin/bash
set -e
. tests/lib
t-dependencies DEBORIG git-debpush
t-debpolicy
t-archive-none example
t-git-none
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
git checkout -B master quilt-tip-2
upstream=$(git rev-parse upstream/1.0~0)
tagname=test-dummy/$v
t-tagupl-test --no-push --quilt=gbp
# xxx test pushing
# todo: test each miss/rejection
ident=ok
git cat-file tag $tagname >../basetag
v=1.0-2
tagname=test-dummy/$v
perl -i -ne '
next if $.==1../^$/;
next if m/^----/..0;
s/\b1\.0-1\b/1.0-2/g;
print or die $!;
' ../basetag
mv-ident () {
local f=$tmp/$1
if test -e $f; then
mv $f $f--$ident
fi
}
next-mangle () {
mv-ident tagupl/overall.log
mv-ident sendmail.log
ident=$1
}
with-mangled () {
local perl=$1
perl <../basetag >../badtag-$ident -pe "$perl"
git tag -u Senatus -f -s -m "$(cat ../badtag-$ident)" "$tagname"
t-tagupl-run-drs
}
expect-quit () {
next-mangle "$1"
local perl=$2
local mstring=$3
with-mangled "$perl"
grep ": $mstring" ../tagupl/overall.log
}
expect-email () {
next-mangle "$1"
local perl=$2
local mstring=$3
with-mangled "$perl"
grep 'Was not successful' ../sendmail.log
grep "$mstring" ../sendmail.log
grep ": failed, emailed" ../tagupl/overall.log
}
tagname=test-dummy/1.2
t-expect-fail E:'failed command: git fetch' \
t-tagupl-run-drs
tagname=splorf/$v ; expect-quit baddistro '' 'tag name not for us'
tagname=test-dummy/1,2; expect-quit badver '' 'tag name not for us'
tagname=test-dummy/$v
expect-quit noplease s/please-upload/plunk/ 'tag missing please-upload'
expect-email vermatch 's/^example release /$&3/' 'reject: version mismatch'
# 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 '
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)
cd ..
rm -rf $p
mv $p.save $p
t-ok
|