Skip to content

Commit e9b2094

Browse files
committed
t/t3800: do not use a temporary file to hold expected result.
It is a good practice to write program output to a temporary file during the test, as it would allow easier postmortem when the tested program does break. But there is no benefit in writing the expected output out to the temporary. This actually fixes a bug in check_verify_failure() routine. The intention of the test seems to make sure the "git mktag" command fails, and it spits out the expected error message. But if the command did not fail as expected, the shell function as originally written would not have detected the failure. Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 0feb4d1 commit e9b2094

File tree

1 file changed

+25
-64
lines changed

1 file changed

+25
-64
lines changed

t/t3800-mktag.sh

Lines changed: 25 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ test_description='git-mktag: tag object verify test'
1212
# given in the expect.pat file.
1313

1414
check_verify_failure () {
15-
test_expect_success \
16-
"$1" \
17-
'git-mktag <tag.sig 2>message ||
18-
grep -q -f expect.pat message'
15+
expect="$2"
16+
test_expect_success "$1" '
17+
( ! git-mktag <tag.sig 2>message ) &&
18+
grep -q "$expect" message
19+
'
1920
}
2021

2122
###########################################################
@@ -33,11 +34,8 @@ cat >tag.sig <<EOF
3334
too short for a tag
3435
EOF
3536

36-
cat >expect.pat <<EOF
37-
^error: .*size wrong.*$
38-
EOF
39-
40-
check_verify_failure 'Tag object length check'
37+
check_verify_failure 'Tag object length check' \
38+
'^error: .*size wrong.*$'
4139

4240
############################################################
4341
# 2. object line label check
@@ -48,11 +46,7 @@ type tag
4846
tag mytag
4947
EOF
5048

51-
cat >expect.pat <<EOF
52-
^error: char0: .*"object "$
53-
EOF
54-
55-
check_verify_failure '"object" line label check'
49+
check_verify_failure '"object" line label check' '^error: char0: .*"object "$'
5650

5751
############################################################
5852
# 3. object line SHA1 check
@@ -63,11 +57,7 @@ type tag
6357
tag mytag
6458
EOF
6559

66-
cat >expect.pat <<EOF
67-
^error: char7: .*SHA1 hash$
68-
EOF
69-
70-
check_verify_failure '"object" line SHA1 check'
60+
check_verify_failure '"object" line SHA1 check' '^error: char7: .*SHA1 hash$'
7161

7262
############################################################
7363
# 4. type line label check
@@ -78,23 +68,15 @@ xxxx tag
7868
tag mytag
7969
EOF
8070

81-
cat >expect.pat <<EOF
82-
^error: char47: .*"[\]ntype "$
83-
EOF
84-
85-
check_verify_failure '"type" line label check'
71+
check_verify_failure '"type" line label check' '^error: char47: .*"\\ntype "$'
8672

8773
############################################################
8874
# 5. type line eol check
8975

9076
echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig
9177
printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig
9278

93-
cat >expect.pat <<EOF
94-
^error: char48: .*"[\]n"$
95-
EOF
96-
97-
check_verify_failure '"type" line eol check'
79+
check_verify_failure '"type" line eol check' '^error: char48: .*"\\n"$'
9880

9981
############################################################
10082
# 6. tag line label check #1
@@ -105,11 +87,8 @@ type tag
10587
xxx mytag
10688
EOF
10789

108-
cat >expect.pat <<EOF
109-
^error: char57: no "tag " found$
110-
EOF
111-
112-
check_verify_failure '"tag" line label check #1'
90+
check_verify_failure '"tag" line label check #1' \
91+
'^error: char57: no "tag " found$'
11392

11493
############################################################
11594
# 7. tag line label check #2
@@ -120,11 +99,8 @@ type taggggggggggggggggggggggggggggggg
12099
tag
121100
EOF
122101

123-
cat >expect.pat <<EOF
124-
^error: char87: no "tag " found$
125-
EOF
126-
127-
check_verify_failure '"tag" line label check #2'
102+
check_verify_failure '"tag" line label check #2' \
103+
'^error: char87: no "tag " found$'
128104

129105
############################################################
130106
# 8. type line type-name length check
@@ -135,11 +111,8 @@ type taggggggggggggggggggggggggggggggg
135111
tag mytag
136112
EOF
137113

138-
cat >expect.pat <<EOF
139-
^error: char53: type too long$
140-
EOF
141-
142-
check_verify_failure '"type" line type-name length check'
114+
check_verify_failure '"type" line type-name length check' \
115+
'^error: char53: type too long$'
143116

144117
############################################################
145118
# 9. verify object (SHA1/type) check
@@ -150,11 +123,8 @@ type tagggg
150123
tag mytag
151124
EOF
152125

153-
cat >expect.pat <<EOF
154-
^error: char7: could not verify object.*$
155-
EOF
156-
157-
check_verify_failure 'verify object (SHA1/type) check'
126+
check_verify_failure 'verify object (SHA1/type) check' \
127+
'^error: char7: could not verify object.*$'
158128

159129
############################################################
160130
# 10. verify tag-name check
@@ -165,11 +135,8 @@ type commit
165135
tag my tag
166136
EOF
167137

168-
cat >expect.pat <<EOF
169-
^error: char67: could not verify tag name$
170-
EOF
171-
172-
check_verify_failure 'verify tag-name check'
138+
check_verify_failure 'verify tag-name check' \
139+
'^error: char67: could not verify tag name$'
173140

174141
############################################################
175142
# 11. tagger line label check #1
@@ -180,11 +147,8 @@ type commit
180147
tag mytag
181148
EOF
182149

183-
cat >expect.pat <<EOF
184-
^error: char70: could not find "tagger"$
185-
EOF
186-
187-
check_verify_failure '"tagger" line label check #1'
150+
check_verify_failure '"tagger" line label check #1' \
151+
'^error: char70: could not find "tagger"$'
188152

189153
############################################################
190154
# 12. tagger line label check #2
@@ -196,11 +160,8 @@ tag mytag
196160
tagger
197161
EOF
198162

199-
cat >expect.pat <<EOF
200-
^error: char70: could not find "tagger"$
201-
EOF
202-
203-
check_verify_failure '"tagger" line label check #2'
163+
check_verify_failure '"tagger" line label check #2' \
164+
'^error: char70: could not find "tagger"$'
204165

205166
############################################################
206167
# 13. create valid tag

0 commit comments

Comments
 (0)