[PATCH 02/10] test-lib: add helper functions for config
- From
Jeff King <peff@peff.net>
- Date
- Aug 18, 2011, 05:01 UTC
- Message-ID
- <20110818050114.GB2889@sigill.intra.peff.net>
- In-Reply-To
- <20110818045821.GA17377@sigill.intra.peff.net>
There are a few common tasks when working with configuration variables in tests; this patch aims to make them a little easier to write and less error-prone.
When setting a variable, you should typically make sure to clean it up after the test is finished, so as not to pollute other tests. Like:
test_when_finished 'git config --unset foo.bar' && git config foo.bar baz
This patch lets you just write:
test_config foo.bar baz
When clearing a variable that does not exist, git-config will report a specific non-zero error code. Meaning that tests which call "git config --unset" often either rely on the prior tests having actually set it, or must use test_might_fail. With this patch, the previous:
test_might_fail git config --unset foo.bar
becomes:
test_unconfig foo.bar
Not only is this easier to type, but it is more robust; it will correctly detect errors from git-config besides "key was not set".
Signed-off-by: Jeff King <peff@peff.net> --- t/test-lib.sh | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/t/test-lib.sh b/t/test-lib.sh index df25f17..926667a 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -357,6 +357,24 @@ test_chmod () { git update-index --add "--chmod=$@" } +# Unset a configuration variable, but don't fail if it doesn't exist. +test_unconfig () { + git config --unset-all "$@" + config_status=$? + case "$config_status" in + 5) # ok, nothing to usnet + config_status=0 + ;; + esac + return $config_status +} + +# Set git config, automatically unsetting it after the test is over. +test_config () { + test_when_finished "test_unconfig '$1'" && + git config "$@" +} + # Use test_set_prereq to tell that a particular prerequisite is available. # The prerequisite can later be checked for in two ways: #
-- 1.7.6.10.g62f04