aboutsummaryrefslogtreecommitdiff
path: root/t/test-lib.sh
diff options
context:
space:
mode:
authorThomas Rast <trast@inf.ethz.ch>2013-06-18 14:25:58 +0200
committerJunio C Hamano <gitster@pobox.com>2013-06-18 11:14:50 -0700
commite6a6ddc93a89862319c7876536d79d6d3538de5a (patch)
treec5e3d601d01e6490050beed701ab773cd9cc58a4 /t/test-lib.sh
parenta57397b0d6709d75ab23145fd4fea5ce65dc1054 (diff)
downloadgit-e6a6ddc93a89862319c7876536d79d6d3538de5a.tar.gz
git-e6a6ddc93a89862319c7876536d79d6d3538de5a.tar.xz
test-lib: refactor $GIT_SKIP_TESTS matching
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>
Diffstat (limited to 't/test-lib.sh')
-rw-r--r--t/test-lib.sh41
1 files changed, 24 insertions, 17 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 229f5f7ff..4c583b033 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -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.
@@ -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
@@ -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 () {