diff options
Diffstat (limited to 'mda/tests/forward.at')
-rw-r--r-- | mda/tests/forward.at | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/mda/tests/forward.at b/mda/tests/forward.at new file mode 100644 index 000000000..96170ad6a --- /dev/null +++ b/mda/tests/forward.at @@ -0,0 +1,90 @@ +# This file is part of GNU Mailutils. -*- Autotest -*- +# Copyright (C) 2010-2019 Free Software Foundation, Inc. +# +# GNU Mailutils is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3, or (at +# your option) any later version. +# +# GNU Mailutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. + +AT_SETUP([forwarding support]) +AT_KEYWORDS([maidag forward]) + +m4_pushdef([TESTMDA_CONF],[cat > testmda.conf <<EOF +mailbox { + mailbox-pattern "$(pwd)/spool/\${user}"; +} + +mailer { + url "sendmail:$abs_top_builddir/examples/mta"; +} + +forward { + file "$forward"; + file-checks none; +} +EOF +]) + +AT_CHECK([ +test -w / && AT_SKIP_TEST +forward=`pwd`/my.forward +namelist=`sed '/^#/d;s/:.*//' /etc/passwd | sed '3,$d'` +test -n "$namelist" || AT_SKIP_TEST + +cat > my.forward <<EOT +foo@bar.baz +\\$namelist +EOT + +set -- $namelist + +cat > experr <<EOT +testmda: notice: skipping forward file $forward: already processed +EOT + +echo ENVELOPE > expout.0 +cat $INPUT_MSG >> expout.0 +echo "" >> expout.0 + +echo "ENVELOPE FROM: gulliver@example.net" > expout.1 +echo "ENVELOPE TO: <foo@bar.baz>" >> expout.1 +awk '{printf("% 4d:",NR-1); if (NF!=0) printf(" %s",$0); print ""}' $INPUT_MSG >> expout.1 +echo "END OF MESSAGE" >> expout.1 + +MTA_DIAG=mta.diag +export MTA_DIAG +mkdir spool +TESTMDA_CONF +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 | \ + cmp expout.0 - >/dev/null || echo "$name mailbox mismatch" >&2 + else + echo "$name missed message" >&2 + fi +done + +if test -f mta.diag; then + cmp mta.diag expout.1 >/dev/null || echo "remote copy mismatch" >&2 +else + echo "remote delivery failed" >&2 +fi +], +[0], +[], +[experr]) + +m4_popdef([TESTMDA_CONF]) + +AT_CLEANUP |