test: initial tests for external commands

The main goal is to test the setting of NOTMUCH_CONFIG, but also
include a basic sanity test for execing scripts.
This commit is contained in:
David Bremner 2022-05-31 08:50:58 -03:00
parent 82957c9632
commit eaa5199f5b

55
test/T405-external.sh Executable file
View file

@ -0,0 +1,55 @@
#!/usr/bin/env bash
test_description='hooks'
. $(dirname "$0")/test-lib.sh || exit 1
create_echo_script () {
local TOKEN="${RANDOM}"
mkdir -p ${BIN_DIR}
cat <<EOF >"${BIN_DIR}/${1}"
#!/bin/sh
echo "${TOKEN}" > ${3}
EOF
chmod +x "${BIN_DIR}/${1}"
echo "${TOKEN}" > ${2}
}
create_printenv_script () {
mkdir -p ${BIN_DIR}
cat <<EOF >"${BIN_DIR}/${1}"
#!/bin/sh
printenv "${2}" > "${3}"
EOF
chmod +x "${BIN_DIR}/${1}"
}
# add a message to generate mail dir and database
add_message
BIN_DIR=`pwd`/bin
PATH=$BIN_DIR:$PATH
test_begin_subtest "'notmuch foo' runs notmuch-foo"
rm -rf ${BIN_DIR}
create_echo_script "notmuch-foo" EXPECTED OUTPUT $HOOK_DIR
notmuch foo
test_expect_equal_file_nonempty EXPECTED OUTPUT
create_printenv_script "notmuch-printenv" NOTMUCH_CONFIG OUTPUT
test_begin_subtest "NOTMUCH_CONFIG is set"
notmuch printenv
cat <<EOF > EXPECTED
${NOTMUCH_CONFIG}
EOF
test_expect_equal_file_nonempty EXPECTED OUTPUT
test_begin_subtest "NOTMUCH_CONFIG is set by --config"
test_subtest_known_broken
cp "${NOTMUCH_CONFIG}" "${NOTMUCH_CONFIG}.alternate"
cat <<EOF > EXPECTED
${NOTMUCH_CONFIG}.alternate
EOF
notmuch --config "${NOTMUCH_CONFIG}.alternate" printenv
test_expect_equal_file_nonempty EXPECTED OUTPUT
test_done