From f0fbdad04bd60990ed556232a3acd61cd1c60fcf Mon Sep 17 00:00:00 2001 From: Dmitry Kurochkin Date: Sun, 27 Nov 2011 22:36:17 +0400 Subject: [PATCH] test: add function to explicitly check for external dependencies Useful when binary is called indirectly (e.g. from emacs). --- test/test-lib.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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. -- 2.39.2