Skip to content

Commit ef2ac68

Browse files
ilya-bobyrgitster
authored andcommitted
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 <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 5e3b4fc commit ef2ac68

File tree

2 files changed

+71
-5
lines changed

2 files changed

+71
-5
lines changed

t/t0000-basic.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,69 @@ test_expect_success 'test --verbose-only' '
270270
EOF
271271
'
272272

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+
273336
test_set_prereq HAVEIT
274337
haveit=no
275338
test_expect_success HAVEIT 'test runs if prerequisite is satisfied' '

t/test-lib.sh

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -452,25 +452,28 @@ test_finish_ () {
452452

453453
test_skip () {
454454
to_skip=
455+
skipped_reason=
455456
if match_pattern_list $this_test.$test_count $GIT_SKIP_TESTS
456457
then
457458
to_skip=t
459+
skipped_reason="GIT_SKIP_TESTS"
458460
fi
459461
if test -z "$to_skip" && test -n "$test_prereq" &&
460462
! test_have_prereq "$test_prereq"
461463
then
462464
to_skip=t
463-
fi
464-
case "$to_skip" in
465-
t)
465+
466466
of_prereq=
467467
if test "$missing_prereq" != "$test_prereq"
468468
then
469469
of_prereq=" of $test_prereq"
470470
fi
471-
471+
skipped_reason="missing $missing_prereq${of_prereq}"
472+
fi
473+
case "$to_skip" in
474+
t)
472475
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)"
474477
: true
475478
;;
476479
*)

0 commit comments

Comments
 (0)