summaryrefslogtreecommitdiff
path: root/mda/mda/tests/forward.at
blob: 0328e2d4822523f464bf7fca26fe32f4fd2d55d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# 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

cat $INPUT_MSG > 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
  dumpmail spool/$name | \
      cmp expout.0 - >/dev/null || echo "$name mailbox mismatch" >&2
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

Return to:

Send suggestions and report system problems to the System administrator.