From 2aaec27bc466a9c64e7504697b3adf09c11c274a Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sat, 9 Nov 2019 11:52:48 +0200 Subject: Fix mda testsuite The testsuite should work no matter what the selected default mailbox format. * mda/tests/atlocal.in (dumpmail): New function. * mda/tests/forward.at: Use dumpmail to read the mailbox. * mda/tests/mda.at: Likewise. --- mda/tests/atlocal.in | 31 ++++++++++++++++++++++++++++++- mda/tests/forward.at | 10 ++-------- mda/tests/mda.at | 32 +++++++++++++++++++++++--------- 3 files changed, 55 insertions(+), 18 deletions(-) diff --git a/mda/tests/atlocal.in b/mda/tests/atlocal.in index 3bd76a134..89458b94e 100644 --- a/mda/tests/atlocal.in +++ b/mda/tests/atlocal.in @@ -3,4 +3,33 @@ # Copyright (C) 2004-2019 Free Software Foundation, Inc. PATH=@abs_builddir@:@abs_top_builddir@/mda:$top_srcdir:$srcdir:$PATH -INPUT_MSG=$abs_top_srcdir/mda/tests/input.msg +INPUT_MSG=$abs_top_srcdir/mda/tests/input.msg +MU_DEFAULT_SCHEME=@MU_DEFAULT_SCHEME@ +dumpmail() { + case $MU_DEFAULT_SCHEME in + mbox) + sed -e '/^From /d' -e '$d' $1 + ;; + dotmail) + sed -e '/^\.$/d' $1 + ;; + mh) + sed -e /^X-IMAPbase:/d\ + -e /^X-UID:/d\ + -e /^X-Envelope-Sender:/d\ + -e /^X-Envelope-Date:/d $1/1 + ;; + maildir) + f=$(find $1/new -type f | head -n 1) + if test -n $f; then + sed -e /^X-IMAPbase:/d\ + -e /^X-UID:/d\ + -e /^X-Envelope-Sender:/d\ + -e /^X-Envelope-Date:/d $f + fi + ;; + *) # Should not happen + echo >&2 "Default mailbox format is uknown" + esac +} + diff --git a/mda/tests/forward.at b/mda/tests/forward.at index 96170ad6a..0328e2d48 100644 --- a/mda/tests/forward.at +++ b/mda/tests/forward.at @@ -50,9 +50,7 @@ cat > experr < expout.0 -cat $INPUT_MSG >> expout.0 -echo "" >> expout.0 +cat $INPUT_MSG > expout.0 echo "ENVELOPE FROM: gulliver@example.net" > expout.1 echo "ENVELOPE TO: " >> expout.1 @@ -67,12 +65,8 @@ testmda --from gulliver@example.net $1 < $INPUT_MSG || exit $? for name in $namelist do - if test -f spool/$name; then - sed '1s/From gulliver@example.net.*/ENVELOPE/' spool/$name | \ + dumpmail spool/$name | \ cmp expout.0 - >/dev/null || echo "$name mailbox mismatch" >&2 - else - echo "$name missed message" >&2 - fi done if test -f mta.diag; then diff --git a/mda/tests/mda.at b/mda/tests/mda.at index 6623fb623..711520e77 100644 --- a/mda/tests/mda.at +++ b/mda/tests/mda.at @@ -25,13 +25,11 @@ AT_SETUP([mda]) AT_KEYWORDS([mda mda0]) AT_CHECK([ -echo ENVELOPE > expout -cat $INPUT_MSG >> expout -echo "" >> expout +cat $INPUT_MSG > expout mkdir spool TESTMDA_CONF testmda --from gulliver@example.net root < $INPUT_MSG || exit $? -sed '1s/From gulliver@example.net.*/ENVELOPE/' spool/root +dumpmail spool/root ], [0], [expout]) @@ -43,13 +41,29 @@ AT_SETUP([mda, explicit envelope]) AT_KEYWORDS([mda mda1]) AT_CHECK([ -echo "From gulliver Thu Oct 7 19:10:57 2010" > expout -cat $INPUT_MSG >> expout +date="Thu Oct 7 19:10:57 2010" +envelope="From gulliver $date" +echo $envelope > msg +cat $INPUT_MSG >> msg +cat $INPUT_MSG > expout mkdir spool TESTMDA_CONF -testmda --from gulliver@example.net root < expout || exit $? -echo "" >> expout -cat spool/root +testmda --from gulliver@example.net root < msg || exit $? +dumpmail spool/root +case $MU_DEFAULT_SCHEME in +mbox) + head -1 spool/root + echo $envelope >> expout + ;; +mh) + sed -n -e '/^X-Envelope-Date: */s///p' spool/root/1 + echo $date >> expout + ;; +maildir) + sed -n -e '/^X-Envelope-Date: */s///p' $(find spool/root/new -type f | head -n 1) + echo $date >> expout + ;; +esac ], [0], [expout]) -- cgit v1.2.1