Skip to content

Commit

Permalink
test-lib: refactor $GIT_SKIP_TESTS matching
Browse files Browse the repository at this point in the history
It's already used twice, and we will have more of the same kind of
matching in a minute.

Helped-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Thomas Rast authored and Junio C Hamano committed Jun 18, 2013
1 parent a57397b commit e6a6ddc
Showing 1 changed file with 24 additions and 17 deletions.
41 changes: 24 additions & 17 deletions t/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,20 @@ test_debug () {
test "$debug" = "" || eval "$1"
}

match_pattern_list () {
arg="$1"
shift
test -z "$*" && return 1
for pattern_
do
case "$arg" in
$pattern_)
return 0
esac
done
return 1
}

test_eval_ () {
# This is a separate function because some tests use
# "return" to end a test_expect_success block early.
Expand Down Expand Up @@ -358,14 +372,10 @@ test_run_ () {
test_skip () {
test_count=$(($test_count+1))
to_skip=
for skp in $GIT_SKIP_TESTS
do
case $this_test.$test_count in
$skp)
to_skip=t
break
esac
done
if match_pattern_list $this_test.$test_count $GIT_SKIP_TESTS
then
to_skip=t
fi
if test -z "$to_skip" && test -n "$test_prereq" &&
! test_have_prereq "$test_prereq"
then
Expand Down Expand Up @@ -630,15 +640,12 @@ cd -P "$TRASH_DIRECTORY" || exit 1

this_test=${0##*/}
this_test=${this_test%%-*}
for skp in $GIT_SKIP_TESTS
do
case "$this_test" in
$skp)
say_color info >&3 "skipping test $this_test altogether"
skip_all="skip all tests in $this_test"
test_done
esac
done
if match_pattern_list "$this_test" $GIT_SKIP_TESTS
then
say_color info >&3 "skipping test $this_test altogether"
skip_all="skip all tests in $this_test"
test_done
fi

# Provide an implementation of the 'yes' utility
yes () {
Expand Down

0 comments on commit e6a6ddc

Please sign in to comment.