test-lib: Infrastructure to test and check for prerequisites
authorJohannes Sixt <j6t@kdbg.org>
Sun, 1 Mar 2009 20:04:46 +0000 (21:04 +0100)
committerJohannes Sixt <j6t@kdbg.org>
Sat, 21 Mar 2009 20:09:27 +0000 (21:09 +0100)
commita7bb394037e1c32d47d0b04da025bdbe2eb78d66
treefd9ac3aa1136ba93126483cbc0e4beb2178269f3
parent64e61f2d173b0172d9dbaa9667486764224568fb
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>
t/t0000-basic.sh
t/test-lib.sh