X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=test%2Fcommon.sh.in;h=dd68f77455e49decaa7dc1d8e4db966dabc39e2b;hb=b15f35a73878825d1824a710982d6769ece9b6cb;hp=b1fd48405af5521283214728d08e27f1ce1cdac8;hpb=e7129bf90a1b361e07365002379d8d2874c0f771;p=mmh diff --git a/test/common.sh.in b/test/common.sh.in index b1fd484..dd68f77 100644 --- a/test/common.sh.in +++ b/test/common.sh.in @@ -14,13 +14,15 @@ test -z "$bindir" && bindir="@bindir@" test -z "$mandir" && mandir="@mandir@" test -z "$sysconfdir" && sysconfdir="@sysconfdir@" test -z "$pagerpath" && pagerpath="@pagerpath@" +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 +unset MHLDEBUG MHPDEBUG MHWDEBUG MM_CHARSET PAGER output_md5() { @@ -52,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 + if [ -f "$D/$PROG" -a -x "$D/$PROG" ]; then printf '%s\n' "$D/$PROG" break fi done - IFS="$IFS_SAVE" } require_prog () @@ -86,12 +87,26 @@ progress_update () # this automatically rounds to nearest integer arith_eval 100 \* $PROG / $RANGE; PERC=$arith_val # note \r so next update will overwrite - printf "%3d%%\r" $PERC + printf '%3d%%\r' $PERC } progress_done () { - printf "100%%\n" + 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 @@ -131,47 +146,57 @@ 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 @@ -182,6 +207,7 @@ EOF From: Test$i To: Some User Date: Fri, 29 Sep 2006 00:00:00 +Message-Id: $i@test.nmh Subject: Testing message $i This is message number $i