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 *)