test-lib: tests skipped by GIT_SKIP_TESTS say so
We used to show "(missing )" next to tests skipped because they are specified in GIT_SKIP_TESTS. Use "(GIT_SKIP_TESTS)" instead. Plus tests that check basic GIT_SKIP_TESTS functions. Signed-off-by: Ilya Bobyr <ilya.bobyr@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ilya Bobyr committed
Apr 30, 2014 at 02:50 UTC
ef2ac68def0fd8a10e4df06706e7276ff63a58f2
2 files changed
+71
-5
t/t0000-basic.sh
+63
@@ -270,6 +270,69 @@ test_expect_success 'test --verbose-only' '
270
EOF
271
'
272
273
+test_expect_success 'GIT_SKIP_TESTS' "
274
+ GIT_SKIP_TESTS='git.2' \
275
+ run_sub_test_lib_test git-skip-tests-basic \
276
+ 'GIT_SKIP_TESTS' <<-\\EOF &&
277
+ for i in 1 2 3
278
+ do
279
+ test_expect_success \"passing test #\$i\" 'true'
280
+ done
281
+ test_done
282
+ EOF
283
+ check_sub_test_lib_test git-skip-tests-basic <<-\\EOF
284
+ > ok 1 - passing test #1
285
+ > ok 2 # skip passing test #2 (GIT_SKIP_TESTS)
286
+ > ok 3 - passing test #3
287
+ > # passed all 3 test(s)
288
+ > 1..3
289
+ EOF
290
+"
291
+
292
+test_expect_success 'GIT_SKIP_TESTS several tests' "
293
+ GIT_SKIP_TESTS='git.2 git.5' \
294
+ run_sub_test_lib_test git-skip-tests-several \
295
+ 'GIT_SKIP_TESTS several tests' <<-\\EOF &&
296
+ for i in 1 2 3 4 5 6
297
+ do
298
+ test_expect_success \"passing test #\$i\" 'true'
299
+ done
300
+ test_done
301
+ EOF
302
+ check_sub_test_lib_test git-skip-tests-several <<-\\EOF
303
+ > ok 1 - passing test #1
304
+ > ok 2 # skip passing test #2 (GIT_SKIP_TESTS)
305
+ > ok 3 - passing test #3
306
+ > ok 4 - passing test #4
307
+ > ok 5 # skip passing test #5 (GIT_SKIP_TESTS)
308
+ > ok 6 - passing test #6
309
+ > # passed all 6 test(s)
310
+ > 1..6
311
+ EOF
312
+"
313
+
314
+test_expect_success 'GIT_SKIP_TESTS sh pattern' "
315
+ GIT_SKIP_TESTS='git.[2-5]' \
316
+ run_sub_test_lib_test git-skip-tests-sh-pattern \
317
+ 'GIT_SKIP_TESTS sh pattern' <<-\\EOF &&
318
+ for i in 1 2 3 4 5 6
319
+ do
320
+ test_expect_success \"passing test #\$i\" 'true'
321
+ done
322
+ test_done
323
+ EOF
324
+ check_sub_test_lib_test git-skip-tests-sh-pattern <<-\\EOF
325
+ > ok 1 - passing test #1
326
+ > ok 2 # skip passing test #2 (GIT_SKIP_TESTS)
327
+ > ok 3 # skip passing test #3 (GIT_SKIP_TESTS)
328
+ > ok 4 # skip passing test #4 (GIT_SKIP_TESTS)
329
+ > ok 5 # skip passing test #5 (GIT_SKIP_TESTS)
330
+ > ok 6 - passing test #6
331
+ > # passed all 6 test(s)
332
+ > 1..6
333
+ EOF
334
+"
335
+
336
test_set_prereq HAVEIT
337
haveit=no
338
test_expect_success HAVEIT 'test runs if prerequisite is satisfied' '
t/test-lib.sh
+8
-5
@@ -452,25 +452,28 @@ test_finish_ () {
452
453
test_skip () {
454
to_skip=
455
+ skipped_reason=
456
if match_pattern_list $this_test.$test_count $GIT_SKIP_TESTS
457
then
458
to_skip=t
459
+ skipped_reason="GIT_SKIP_TESTS"
460
fi
461
if test -z "$to_skip" && test -n "$test_prereq" &&
462
! test_have_prereq "$test_prereq"
463
then
464
to_skip=t
463
- fi
464
- case "$to_skip" in
465
- t)
465
+
466
of_prereq=
467
if test "$missing_prereq" != "$test_prereq"
468
then
469
of_prereq=" of $test_prereq"
470
fi
471
-
471
+ skipped_reason="missing $missing_prereq${of_prereq}"
472
+ fi
473
+ case "$to_skip" in
474
+ t)
475
say_color skip >&3 "skipping test: $@"
473
- say_color skip "ok $test_count # skip $1 (missing $missing_prereq${of_prereq})"
476
+ say_color skip "ok $test_count # skip $1 ($skipped_reason)"
477
: true
478
;;
479
*)