summaryrefslogtreecommitdiff
path: root/t/t0000-basic.sh
diff options
context:
space:
mode:
authorJohannes Sixt <j6t@kdbg.org>2009-03-01 20:04:46 (GMT)
committerJohannes Sixt <j6t@kdbg.org>2009-03-21 20:09:27 (GMT)
commita7bb394037e1c32d47d0b04da025bdbe2eb78d66 (patch)
treefd9ac3aa1136ba93126483cbc0e4beb2178269f3 /t/t0000-basic.sh
parent64e61f2d173b0172d9dbaa9667486764224568fb (diff)
downloadgit-a7bb394037e1c32d47d0b04da025bdbe2eb78d66.zip
git-a7bb394037e1c32d47d0b04da025bdbe2eb78d66.tar.gz
git-a7bb394037e1c32d47d0b04da025bdbe2eb78d66.tar.bz2
test-lib: Infrastructure to test and check for prerequisites
Some tests can be run only if a particular prerequisite is available. For example, some tests require that an UTF-8 locale is available. Here we introduce functions that are used in this way: 1. Insert code that checks whether the prerequisite is available. If it is, call test_set_prereq with an arbitrary tag name that subsequently can be used to check for the prerequisite: case $LANG in *.utf-8) test_set_prereq UTF8 ;; esac 2. In the calls to test_expect_success pass the tag name: test_expect_success UTF8 '...description...' '...tests...' 3. There is an auxiliary predicate that can be used anywhere to test for a prerequisite explicitly: if test_have_prereq UTF8 then ...code to be skipped if prerequisite is not available... fi Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Diffstat (limited to 't/t0000-basic.sh')
-rwxr-xr-xt/t0000-basic.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
index ddcd5b0..c53de1f 100755
--- a/t/t0000-basic.sh
+++ b/t/t0000-basic.sh
@@ -57,6 +57,21 @@ test_expect_failure 'pretend we have a known breakage' '
test_expect_failure 'pretend we have fixed a known breakage' '
:
'
+test_set_prereq HAVEIT
+haveit=no
+test_expect_success HAVEIT 'test runs if prerequisite is satisfied' '
+ test_have_prereq HAVEIT &&
+ haveit=yes
+'
+donthaveit=yes
+test_expect_success DONTHAVEIT 'unmet prerequisite causes test to be skipped' '
+ donthaveit=no
+'
+if test $haveit$donthaveit != yesyes
+then
+ say "bug in test framework: prerequisite tags do not work reliably"
+ exit 1
+fi
################################################################
# Basics of the basics