diff options
author | Bruce Guenter <bruce@untroubled.org> | 2016-01-20 09:20:07 -0600 |
---|---|---|
committer | Bruce Guenter <bruce@untroubled.org> | 2016-01-20 09:20:07 -0600 |
commit | a0d1b330ce00fa22ee469d03f50930f4a65b3243 (patch) | |
tree | 762bc86fc8583a43d15079fee1eeae9dd52984ff /test/tests | |
parent | a8261e028286a719b4ff4e81a2ce9e39ce4216ae (diff) | |
parent | 97f05128cdc483387e7826c4a9dd9f174910329c (diff) |
Merge branch 'bounce'
Diffstat (limited to 'test/tests')
-rw-r--r-- | test/tests/send | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/test/tests/send b/test/tests/send index 7b102b5..2079a26 100644 --- a/test/tests/send +++ b/test/tests/send @@ -3,9 +3,10 @@ cat <<EOF >$tmpdir/libexec/nullmailer/dummy #!/bin/sh set -e -read host +read opts read code -echo "\$host" | grep -q '^host=' +echo "\$opts" | grep -q '^host=' +echo "code=\$code (#5.2.1) \$opts" exit \$code EOF chmod +x $tmpdir/libexec/nullmailer/dummy @@ -17,14 +18,16 @@ start send $PWD/../src/nullmailer-send make_message() { msgid=$(date +%s).$$.me - cat <<EOF >$tmpdir/var/nullmailer/tmp/$msgid -me@nowhere -me@nowhere + cat <<EOF >$QUEUEDIR/tmp/$msgid +me@example.com +me@example.net Subject: test Message-Id: <$msgid> + +This is just a test. EOF - mv -f $tmpdir/var/nullmailer/tmp/$msgid $tmpdir/var/nullmailer/queue/$msgid + mv -f $QUEUEDIR/tmp/$msgid $QUEUEDIR/queue/$msgid } send_message() { @@ -32,17 +35,49 @@ send_message() { make_message svc -a $tmpdir/service/send sleep 2 - not test -e $tmpdir/var/nullmailer/queue/$msgid + not test -e $QUEUEDIR/queue/$msgid } echo 'Testing sending with a succeeding protocol' send_message 0 2.0.0 + echo 'Testing sending with a failing protocol' not send_message 1 5.2.2 +rm -f $QUEUEDIR/queue/$msgid + +echo 'Testing handling of a permanent failure' +send_message 33 5.2.2 + +echo 'Checking failed message was moved out of the queue' +test -e $QUEUEDIR/failed/$msgid +rm -f $QUEUEDIR/failed/$msgid + +echo 'Checking for a generated bounce message' +# It will also bounce, so look at failed messages +msgid2=$( ls $QUEUEDIR/failed ) +test $( wc -w <<< $msgid2 ) = 1 +fn=$QUEUEDIR/failed/$msgid2 + +echo 'Checking bounce sender' +head -n 1 $fn | grep -qx '' + +echo 'Checking bounce recipient' +sed -e '1d;q' $fn | grep -qx 'me@example.com' +sed -e '1,2d;q' $fn | grep -qx '' + +echo 'Checking bounce contents' +sed -e '1,3d; /^$/q' $fn | grep -qx 'To: <me@example.com>' +sed -e '1,3d; 1,/^$/d' $fn | grep -qx 'Reporting-MTA: x-local-hostname; f.q.d.n' +sed -e '1,3d; 1,/^$/d' $fn | grep -qx 'Final-Recipient: rfc822; me@example.net' +sed -e '1,3d; 1,/^$/d' $fn | grep -qx 'Action: failed' +sed -e '1,3d; 1,/^$/d' $fn | grep -qx 'Status: 5.2.1' +sed -e '1,3d; 1,/^$/d' $fn | grep -qx 'Diagnostic-Code: DUMMY; code=33 (#5.2.1) host=127.0.0.1' +sed -e '1,3d; 1,/^$/d' $fn | grep -qx 'Subject: test' +sed -e '1,3d; 1,/^$/d' $fn | grep -qx 'This is just a test.' echo 'Checking log outputs' log=$tmpdir/service/send-log -grep -q '^Starting delivery: host: 127.0.0.1 protocol: dummy file:' $log -grep -qx 'From: <me@nowhere> to: <me@nowhere>' $log +grep -qx "^Starting delivery: host: 127.0.0.1 protocol: dummy file: $msgid" $log +grep -qx 'From: <me@example.com> to: <me@example.net>' $log grep -qx 'Sending failed: Unspecified temporary error' $log grep -qx "Message-Id: <$msgid>" $log |