From: Dmitry Kurochkin Date: Sun, 27 Nov 2011 18:36:17 +0000 (+0400) Subject: test: add function to explicitly check for external dependencies X-Git-Tag: 0.11_rc1~87 X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=f0fbdad04bd60990ed556232a3acd61cd1c60fcf;p=notmuch test: add function to explicitly check for external dependencies Useful when binary is called indirectly (e.g. from emacs). --- diff --git a/test/test-lib.sh b/test/test-lib.sh index fe80e893..2422e32d 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -555,12 +555,26 @@ test_declare_external_prereq () { hash $binary 2>/dev/null || eval " $binary () { + test_missing_external_prereq_${binary}_=t echo -n \"\$test_subtest_missing_external_prereqs_\" | grep -e \" $name \" || test_subtest_missing_external_prereqs_=\"$test_subtest_missing_external_prereqs_ $name\" false }" } +# Explicitly require external prerequisite. Useful when binary is +# called indirectly (e.g. from emacs). +# Returns success if dependency is available, failure otherwise. +test_require_external_prereq () { + binary="$1" + if [ "$(eval echo -n \$test_missing_external_prereq_${binary}_)" = t ]; then + # dependency is missing, call the replacement function to note it + eval "$binary" + else + true + fi +} + # You are not expected to call test_ok_ and test_failure_ directly, use # the text_expect_* functions instead.