Re: [PATCH] tests: turn on network daemon tests by default
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 12, 2014, 22:34 UTC
- Message-ID
- <xmqq38jom037.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <20140212214753.GA6799@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
> test_normalize_tristate GIT_TEST_DAEMON
Heh, great minds think alike. This is what I am playing with, without committing (because I do like your "ask config if this is a kind of various boolean 'false' representations, which I haven't managed to add to it).
t/lib-git-daemon.sh | 2 +- t/lib-httpd.sh | 2 +- t/test-lib-functions.sh | 45 +++++++++++++++++++++++++++------------------ 3 files changed, 29 insertions(+), 20 deletions(-)
diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh index 36106de..615bf5d 100644 --- a/t/lib-git-daemon.sh +++ b/t/lib-git-daemon.sh @@ -16,7 +16,7 @@ # stop_git_daemon # test_done -GIT_TEST_GIT_DAEMON=$(test_tristate "$GIT_TEST_GIT_DAEMON") +test_tristate GIT_TEST_GIT_DAEMON if test "$GIT_TEST_GIT_DAEMON" = false then skip_all="git-daemon testing disabled (unset GIT_TEST_GIT_DAEMON to enable)" diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh index 583fb14..f9c2e22 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh @@ -30,7 +30,7 @@ # Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at> # -GIT_TEST_HTTPD=$(test_tristate "$GIT_TEST_HTTPD") +test_tristate GIT_TEST_HTTPD if test "$GIT_TEST_HTTPD" = false then skip_all="Network testing disabled (unset GIT_TEST_HTTPD to enable)" diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 3cc09c0..21c5214 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -716,27 +716,36 @@ perl () { command "$PERL_PATH" "$@" } -# Normalize the value given in $1 to one of "true", "false", or "auto". The -# result is written to stdout. E.g.: +# Given a variable $1, normalize the value of it to one of "true", +# "false", or "auto" and store the result to it. # -# GIT_TEST_HTTPD=$(test_tristate "$GIT_TEST_HTTPD") +# test_tristate GIT_TEST_HTTPD # +# A variable set to an empty string is set to 'false'. +# A variable set to 'false' or 'auto' keeps its value. +# Anything else is set to 'true'. +# An unset variable defaults to 'auto'. +# +# The last rule is to allow people to set the variable to an empty +# string and export it to decline testing the particular feature +# for versions both before and after this change. We used to treat +# both unset and empty variable as a signal for "do not test" and +# took any non-empty string as "please test". + test_tristate () { - case "$1" in - ""|auto) - echo auto - ;; - *) - # Rely on git-config to handle all the variants of - # true/1/on/etc that we allow. - if ! git -c magic.hack="$1" config --bool magic.hack 2>/dev/null - then - # If git-config failed, it was some non-bool value like - # YesPlease. Default this to "true" for historical - # compatibility. - echo true - fi - esac + if eval "test x\"\${$1+isset}\" = xisset" + then + # explicitly set + eval " + case \"\$$1\" in + '') $1=false ;; + false | auto) ;; + *) $1=true ;; + esac + " + else + eval "$1=auto" + fi } # Exit the test suite, either by skipping all remaining tests or by