X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=test%2Fcommon.sh.in;h=da526de5e827f1688978ed9f491bfc6a0833a5a1;hb=e2d655de74122bcca8f09f3ae5b38892768c711b;hp=b571068ad56a7d3eee713933aa94a9cd26dd4a90;hpb=f4180c605026aeaadf5ebf6c63fc22b99c31004f;p=mmh diff --git a/test/common.sh.in b/test/common.sh.in index b571068..da526de 100644 --- a/test/common.sh.in +++ b/test/common.sh.in @@ -18,11 +18,11 @@ test -z "$MULTIBYTE_ENABLED" && MULTIBYTE_ENABLED="@MULTIBYTE_ENABLED@" export MH_TEST_DIR auxexecdir bindir mandir sysconfdir pagerpath export MULTIBYTE_ENABLED -test -z "$MH_INST_DIR" && MH_INST_DIR=${MH_TEST_DIR}/inst +test -z "$MH_INST_DIR" && MH_INST_DIR="${MH_TEST_DIR}/inst" export MH_INST_DIR unset MHBUILD MHCONTEXT MHMTSUSERCONF MHN MHSHOW MHSTORE MHTMPDIR -unset MHLDEBUG MHPDEBUG MHWDEBUG MM_CHARSET +unset MHLDEBUG MHPDEBUG MHWDEBUG MM_CHARSET PAGER output_md5() { @@ -54,20 +54,19 @@ test_skip () # portable implementation of 'which' utility findprog() { - FOUND= PROG="$1" - IFS_SAVE="$IFS" + #### Don't need to save current IFS because this function is run in + #### a subshell. IFS=: for D in $PATH; do if [ -z "$D" ]; then D=. fi - if [ -f "$D/$PROG" ] && [ -x "$D/$PROG" ]; then - printf '%s\n' "$D/$PROG" + if [ -f "$D/$PROG" -a -x "$D/$PROG" ]; then + printf "$D/$PROG" break fi done - IFS="$IFS_SAVE" } require_prog () @@ -96,6 +95,20 @@ progress_done () printf "100%%\n" } +check_for_hard_links () { + set +e + + printf '' > "${MH_TEST_DIR}/$$-1" + if link "${MH_TEST_DIR}/$$-1" "${MH_TEST_DIR}/$$-2" 2>/dev/null; then + hard_links_supported=1 + else + hard_links_supported=0 + fi + rm -f "${MH_TEST_DIR}/$$-1" "${MH_TEST_DIR}/$$-2" + + set -e +} + #### check() requires two arguments, each the name of a file to be #### diff'ed. #### If the same, the second file is removed. And the first file is @@ -133,38 +146,48 @@ run_test() { setup_test () { - MH=${MH_TEST_DIR}/Mail/.mh_profile - MHMTSCONF=${MH_INST_DIR}${sysconfdir}/mts.conf - PATH=${MH_INST_DIR}${bindir}:${PATH} - MH_LIB_DIR=${MH_INST_DIR}${auxexecdir} + MH="${MH_TEST_DIR}/Mail/.mh_profile" + MHMTSCONF="${MH_INST_DIR}${sysconfdir}/mts.conf" + PATH="${MH_INST_DIR}${bindir}:${PATH}" + MH_LIB_DIR="${MH_INST_DIR}${auxexecdir}" export MH MHMTSCONF MH_LIB_DIR PATH # # Only install once # - if [ -d ${MH_INST_DIR}${bindir} ]; then + if [ -d "${MH_INST_DIR}${bindir}" ]; then : else - (cd ${MH_OBJ_DIR} && make DESTDIR=${MH_INST_DIR} SETGID_MAIL= install) || + (cd "${MH_OBJ_DIR}" && + make DESTDIR="${MH_INST_DIR}" SETGID_MAIL= install) || exit 1 #### Don't test with sendmail because it would really send the #### mail. If configured to use sendmail, change to smtp instead #### so that we use fakesmtp. - sed -e 's/mts: *sendmail/mts: smtp/' ${MHMTSCONF} >${MHMTSCONF}.new - mv -f ${MHMTSCONF}.new ${MHMTSCONF} + #### And set up the maildrop in the test directory so tests don't + #### use the user's real maildrop. + sed -e 's/mts: *.*/mts: smtp/' \ + -e "s%mmdfldir: *.*%mmdfldir: ${MH_TEST_DIR}/Mail%" \ + -e 's%mmdflfil: *.*%mmdflfil: maildrop%' \ + "${MHMTSCONF}" >"${MHMTSCONF}.new" + mv -f "${MHMTSCONF}.new" "${MHMTSCONF}" fi # clean old test data - trap "rm -rf $MH_TEST_DIR/Mail" 0 + trap "rm -rf '$MH_TEST_DIR/Mail'" 0 # setup test data - mkdir $MH_TEST_DIR/Mail || exit 1 - cat > $MH < "$MH" < /dev/null