esac
done
+if test -n "$debug"; then
+ print_subtest () {
+ printf " %-4s" "[$((test_count - 1))]"
+ }
+else
+ print_subtest () {
+ true
+ }
+fi
+
if test -n "$color"; then
say_color () {
(
printf " "
printf "$@"
tput sgr0
+ print_subtest
)
}
else
shift
printf " "
printf "$@"
+ print_subtest
}
fi
hash $binary 2>/dev/null || eval "
test_missing_external_prereq_${binary}_=t
$binary () {
- echo -n \"\$test_subtest_missing_external_prereqs_\" | grep -e \" $name \" ||
+ echo -n \"\$test_subtest_missing_external_prereqs_ \" | grep -qe \" $name \" ||
test_subtest_missing_external_prereqs_=\"\$test_subtest_missing_external_prereqs_ $name\"
false
}"
emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
}
+test_python() {
+ export LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib
+ export PYTHONPATH=$TEST_DIRECTORY/../bindings/python
+
+ # Some distros (e.g. Arch Linux) ship Python 2.* as /usr/bin/python2,
+ # most others as /usr/bin/python. So first try python2, and fallback to
+ # python if python2 doesn't exist.
+ cmd=python2
+ [[ "$test_missing_external_prereq_python2_" = t ]] && cmd=python
+
+ (echo "import sys; _orig_stdout=sys.stdout; sys.stdout=open('OUTPUT', 'w')"; cat) \
+ | $cmd -
+}
+
+# Creates a script that counts how much time it is executed and calls
+# notmuch. $notmuch_counter_command is set to the path to the
+# generated script. Use notmuch_counter_value() function to get the
+# current counter value.
+notmuch_counter_reset () {
+ notmuch_counter_command="$TMP_DIRECTORY/notmuch_counter"
+ if [ ! -x "$notmuch_counter_command" ]; then
+ notmuch_counter_state_path="$TMP_DIRECTORY/notmuch_counter.state"
+ cat >"$notmuch_counter_command" <<EOF || return
+#!/bin/sh
+
+read count < "$notmuch_counter_state_path"
+echo \$((count + 1)) > "$notmuch_counter_state_path"
+
+exec notmuch "\$@"
+EOF
+ chmod +x "$notmuch_counter_command" || return
+ fi
+
+ echo 0 > "$notmuch_counter_state_path"
+}
+
+# Returns the current notmuch counter value.
+notmuch_counter_value () {
+ if [ -r "$notmuch_counter_state_path" ]; then
+ read count < "$notmuch_counter_state_path"
+ else
+ count=0
+ fi
+ echo $count
+}
+
test_reset_state_ () {
test -z "$test_init_done_" && test_init_
test_declare_external_prereq emacsclient
test_declare_external_prereq gdb
test_declare_external_prereq gpg
+test_declare_external_prereq python
+test_declare_external_prereq python2