i18n: do not overuse C_LOCALE_OUTPUT
It is too coarse-grained way that led to artificial splitting of a logically single test case into "do" and "check only without poison". As the majority of check is done by comparing expected and actual output stored in a file with test_cmp anyway, just introduce test_i18ncmp that pretends the actual output matched the expected one when gettext-poison is in effect. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano committed
Apr 12, 2011 at 11:23 UTC
cabdee2c5ed55aa42784b37c1249829fca9d71b8
2 files changed
+44
-57
t/t5526-fetch-submodules.sh
+36
-57
@@ -66,12 +66,9 @@ test_expect_success "fetch --recurse-submodules recurses into submodules" '
66
(
67
cd downstream &&
68
git fetch --recurse-submodules >../actual.out 2>../actual.err
69
- )
70
-'
71
-
72
-test_expect_success C_LOCALE_OUTPUT "fetch --recurse-submodules recurses into submodules: output" '
73
- test_cmp expect.out actual.out &&
74
- test_cmp expect.err actual.err
69
+ ) &&
70
+ test_i18ncmp expect.out actual.out &&
71
+ test_i18ncmp expect.err actual.err
72
'
73
74
test_expect_success "fetch alone only fetches superproject" '
@@ -98,12 +95,9 @@ test_expect_success "using fetchRecurseSubmodules=true in .gitmodules recurses i
95
cd downstream &&
96
git config -f .gitmodules submodule.submodule.fetchRecurseSubmodules true &&
97
git fetch >../actual.out 2>../actual.err
101
- )
102
-'
103
-
104
-test_expect_success C_LOCALE_OUTPUT "using fetchRecurseSubmodules=true in .gitmodules recurses into submodules" '
105
- test_cmp expect.out actual.out &&
106
- test_cmp expect.err actual.err
98
+ ) &&
99
+ test_i18ncmp expect.out actual.out &&
100
+ test_i18ncmp expect.err actual.err
101
'
102
103
test_expect_success "--no-recurse-submodules overrides .gitmodules config" '
@@ -132,12 +126,9 @@ test_expect_success "--recurse-submodules overrides fetchRecurseSubmodules setti
126
git fetch --recurse-submodules >../actual.out 2>../actual.err &&
127
git config --unset -f .gitmodules submodule.submodule.fetchRecurseSubmodules &&
128
git config --unset submodule.submodule.fetchRecurseSubmodules
135
- )
136
-'
137
-
138
-test_expect_success C_LOCALE_OUTPUT "--recurse-submodules overrides fetchRecurseSubmodules setting from .git/config: output" '
139
- test_cmp expect.out actual.out &&
140
- test_cmp expect.err actual.err
129
+ ) &&
130
+ test_i18ncmp expect.out actual.out &&
131
+ test_i18ncmp expect.err actual.err
132
'
133
134
test_expect_success "--quiet propagates to submodules" '
@@ -154,24 +145,18 @@ test_expect_success "--dry-run propagates to submodules" '
145
(
146
cd downstream &&
147
git fetch --recurse-submodules --dry-run >../actual.out 2>../actual.err
157
- )
158
-'
159
-
160
-test_expect_success C_LOCALE_OUTPUT "--dry-run propagates to submodules: output" '
161
- test_cmp expect.out actual.out &&
162
- test_cmp expect.err actual.err
148
+ ) &&
149
+ test_i18ncmp expect.out actual.out &&
150
+ test_i18ncmp expect.err actual.err
151
'
152
153
test_expect_success "Without --dry-run propagates to submodules" '
154
(
155
cd downstream &&
156
git fetch --recurse-submodules >../actual.out 2>../actual.err
169
- )
170
-'
171
-
172
-test_expect_success C_LOCALE_OUTPUT "Without --dry-run propagates to submodules: output" '
173
- test_cmp expect.out actual.out &&
174
- test_cmp expect.err actual.err
157
+ ) &&
158
+ test_i18ncmp expect.out actual.out &&
159
+ test_i18ncmp expect.err actual.err
160
'
161
162
test_expect_success "recurseSubmodules=true propagates into submodules" '
@@ -180,12 +165,9 @@ test_expect_success "recurseSubmodules=true propagates into submodules" '
165
cd downstream &&
166
git config fetch.recurseSubmodules true
167
git fetch >../actual.out 2>../actual.err
183
- )
184
-'
185
-
186
-test_expect_success C_LOCALE_OUTPUT "recurseSubmodules=true propagates into submodules: output" '
187
- test_cmp expect.out actual.out &&
188
- test_cmp expect.err actual.err
168
+ ) &&
169
+ test_i18ncmp expect.out actual.out &&
170
+ test_i18ncmp expect.err actual.err
171
'
172
173
test_expect_success "--recurse-submodules overrides config in submodule" '
@@ -197,12 +179,9 @@ test_expect_success "--recurse-submodules overrides config in submodule" '
179
git config fetch.recurseSubmodules false
180
) &&
181
git fetch --recurse-submodules >../actual.out 2>../actual.err
200
- )
201
-'
202
-
203
-test_expect_success C_LOCALE_OUTPUT "--recurse-submodules overrides config in submodule: output" '
204
- test_cmp expect.out actual.out &&
205
- test_cmp expect.err actual.err
182
+ ) &&
183
+ test_i18ncmp expect.out actual.out &&
184
+ test_i18ncmp expect.err actual.err
185
'
186
187
test_expect_success "--no-recurse-submodules overrides config setting" '
@@ -243,8 +222,8 @@ test_expect_success "Recursion stops when no new submodule commits are fetched"
222
cd downstream &&
223
git fetch >../actual.out 2>../actual.err
224
) &&
246
- test_cmp expect.err.sub actual.err &&
247
- test_cmp expect.out.sub actual.out
225
+ test_i18ncmp expect.err.sub actual.err &&
226
+ test_i18ncmp expect.out.sub actual.out
227
'
228
229
test_expect_success "Recursion doesn't happen when new superproject commits don't change any submodules" '
@@ -261,7 +240,7 @@ test_expect_success "Recursion doesn't happen when new superproject commits don'
240
git fetch >../actual.out 2>../actual.err
241
) &&
242
! test -s actual.out &&
264
- test_cmp expect.err.file actual.err
243
+ test_i18ncmp expect.err.file actual.err
244
'
245
246
test_expect_success "Recursion picks up config in submodule" '
@@ -289,8 +268,8 @@ test_expect_success "Recursion picks up config in submodule" '
268
git config --unset fetch.recurseSubmodules
269
)
270
) &&
292
- test_cmp expect.err.sub actual.err &&
293
- test_cmp expect.out actual.out
271
+ test_i18ncmp expect.err.sub actual.err &&
272
+ test_i18ncmp expect.out actual.out
273
'
274
275
test_expect_success "Recursion picks up all submodules when necessary" '
@@ -321,8 +300,8 @@ test_expect_success "Recursion picks up all submodules when necessary" '
300
cd downstream &&
301
git fetch >../actual.out 2>../actual.err
302
) &&
324
- test_cmp expect.err.2 actual.err &&
325
- test_cmp expect.out actual.out
303
+ test_i18ncmp expect.err.2 actual.err &&
304
+ test_i18ncmp expect.out actual.out
305
'
306
307
test_expect_success "'--recurse-submodules=on-demand' doesn't recurse when no new commits are fetched in the superproject (and ignores config)" '
@@ -375,8 +354,8 @@ test_expect_success "'--recurse-submodules=on-demand' recurses as deep as necess
354
git config --unset -f .gitmodules submodule.deepsubmodule.fetchRecursive
355
)
356
) &&
378
- test_cmp expect.out actual.out &&
379
- test_cmp expect.err actual.err
357
+ test_i18ncmp expect.out actual.out &&
358
+ test_i18ncmp expect.err actual.err
359
'
360
361
test_expect_success "'--recurse-submodules=on-demand' stops when no new submodule commits are found in the superproject (and ignores config)" '
@@ -393,7 +372,7 @@ test_expect_success "'--recurse-submodules=on-demand' stops when no new submodul
372
git fetch --recurse-submodules=on-demand >../actual.out 2>../actual.err
373
) &&
374
! test -s actual.out &&
396
- test_cmp expect.err.file actual.err
375
+ test_i18ncmp expect.err.file actual.err
376
'
377
378
test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config" '
@@ -420,8 +399,8 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config
399
cd downstream &&
400
git config --unset fetch.recurseSubmodules
401
) &&
423
- test_cmp expect.out.sub actual.out &&
424
- test_cmp expect.err.2 actual.err
402
+ test_i18ncmp expect.out.sub actual.out &&
403
+ test_i18ncmp expect.err.2 actual.err
404
'
405
406
test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' overrides fetch.recurseSubmodules" '
@@ -448,8 +427,8 @@ test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' override
427
cd downstream &&
428
git config --unset submodule.submodule.fetchRecurseSubmodules
429
) &&
451
- test_cmp expect.out.sub actual.out &&
452
- test_cmp expect.err.2 actual.err
430
+ test_i18ncmp expect.out.sub actual.out &&
431
+ test_i18ncmp expect.err.2 actual.err
432
'
433
434
test_expect_success "don't fetch submodule when newly recorded commits are already present" '
@@ -468,7 +447,7 @@ test_expect_success "don't fetch submodule when newly recorded commits are alrea
447
git fetch >../actual.out 2>../actual.err
448
) &&
449
! test -s actual.out &&
471
- test_cmp expect.err actual.err
450
+ test_i18ncmp expect.err actual.err
451
'
452
453
test_done
t/test-lib.sh
+8
@@ -1077,6 +1077,14 @@ else
1077
test_set_prereq C_LOCALE_OUTPUT
1078
fi
1079
1080
+# Use this instead of test_cmp to compare files that contain expected and
1081
+# actual output from git commands that can be translated. When running
1082
+# under GETTEXT_POISON this pretends that the command produced expected
1083
+# results.
1084
+test_i18ncmp () {
1085
+ test -n "$GETTEXT_POISON" || test_cmp "$@"
1086
+}
1087
+
1088
# test whether the filesystem supports symbolic links
1089
ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS
1090
rm -f y