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>
Junio C Hamano committed
Jan 4, 2008 at 22:45 UTC
e9b20943b7713ed7c051621f97e12713ccf98e1f
1 file changed
+25
-64
t/t3800-mktag.sh
+25
-64
@@ -12,10 +12,11 @@ test_description='git-mktag: tag object verify test'
12
# given in the expect.pat file.
13
14
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
+ '
20
}
21
22
###########################################################
@@ -33,11 +34,8 @@ cat >tag.sig <<EOF
34
too short for a tag
35
EOF
36
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.*$'
39
40
############################################################
41
# 2. object line label check
@@ -48,11 +46,7 @@ type tag
46
tag mytag
47
EOF
48
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 "$'
50
51
############################################################
52
# 3. object line SHA1 check
@@ -63,11 +57,7 @@ type tag
57
tag mytag
58
EOF
59
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$'
61
62
############################################################
63
# 4. type line label check
@@ -78,11 +68,7 @@ xxxx tag
68
tag mytag
69
EOF
70
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 "$'
72
73
############################################################
74
# 5. type line eol check
@@ -90,11 +76,7 @@ check_verify_failure '"type" line label check'
76
echo "object 779e9b33986b1c2670fff52c5067603117b3e895" >tag.sig
77
printf "type tagsssssssssssssssssssssssssssssss" >>tag.sig
78
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"$'
80
81
############################################################
82
# 6. tag line label check #1
@@ -105,11 +87,8 @@ type tag
87
xxx mytag
88
EOF
89
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$'
92
93
############################################################
94
# 7. tag line label check #2
@@ -120,11 +99,8 @@ type taggggggggggggggggggggggggggggggg
99
tag
100
EOF
101
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$'
104
105
############################################################
106
# 8. type line type-name length check
@@ -135,11 +111,8 @@ type taggggggggggggggggggggggggggggggg
111
tag mytag
112
EOF
113
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$'
116
117
############################################################
118
# 9. verify object (SHA1/type) check
@@ -150,11 +123,8 @@ type tagggg
123
tag mytag
124
EOF
125
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.*$'
128
129
############################################################
130
# 10. verify tag-name check
@@ -165,11 +135,8 @@ type commit
135
tag my tag
136
EOF
137
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$'
140
141
############################################################
142
# 11. tagger line label check #1
@@ -180,11 +147,8 @@ type commit
147
tag mytag
148
EOF
149
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"$'
152
153
############################################################
154
# 12. tagger line label check #2
@@ -196,11 +160,8 @@ tag mytag
160
tagger
161
EOF
162
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"$'
165
166
############################################################
167
# 13. create valid tag