From 669af4ffcae6d6515f8de7a53c407ca26d1263c6 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Sun, 9 May 2021 14:43:00 +0200 Subject: mdeliver: ignore last empty line of mbox entries https://www.loc.gov/preservation/digital/formats/fdd/fdd000383.shtml > Each message is immediately prefaced by a separation line and > terminated by an empty line. Bug discovered by skarnet. Fixes #207. --- t/1900-mdeliver.t | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 t/1900-mdeliver.t (limited to 't') diff --git a/t/1900-mdeliver.t b/t/1900-mdeliver.t new file mode 100755 index 0000000..179cbbe --- /dev/null +++ b/t/1900-mdeliver.t @@ -0,0 +1,69 @@ +#!/bin/sh -e +cd ${0%/*} +. ./lib.sh +plan 2 + +rm -rf test.dir +mkdir test.dir +cd test.dir + +mmkdir inbox + +cat <tmp.1 +Subject: message 1 + +This is message 1. +EOF + +cat <tmp.2 +Subject: message 2 + +This is message 2. It has a trailing empty line. + +EOF + +printf >tmp.3 'Subject: message 3 + +This is message 3. It has a no trailing newline, oops.' + +cat <tmp.4 +Subject: message 4 + + + +This is message 4. It has multiple trailing empty lines. + + +EOF + +mexport ./tmp.1 | mdeliver -M inbox/ +check 'message 1 is delivered verbatim via mbox' 'cmp ./tmp.1 ./inbox/new/*:2,' +rm -f ./inbox/new/* + +mexport ./tmp.2 | mdeliver -M inbox/ +check 'message 2 is delivered verbatim via mbox' 'cmp ./tmp.2 ./inbox/new/*:2,' +rm -f ./inbox/new/* + +mexport ./tmp.3 | mdeliver -M inbox/ +check 'message 3 gets a newline via mbox' 'awk 1 ./tmp.3 | cmp - ./inbox/new/*:2,' +rm -f ./inbox/new/* + +mexport ./tmp.4 | mdeliver -M inbox/ +check 'message 4 gets delivered verbatim via mbox' 'cmp ./tmp.4 ./inbox/new/*:2,' +rm -f ./inbox/new/* + +mdeliver inbox/ <./tmp.1 +check 'message 1 is delivered verbatim via stdin' 'cmp ./tmp.1 ./inbox/new/*:2,' +rm -f ./inbox/new/* + +mdeliver inbox/ <./tmp.2 +check 'message 2 is delivered verbatim via stdin' 'cmp ./tmp.2 ./inbox/new/*:2,' +rm -f ./inbox/new/* + +mdeliver inbox/ <./tmp.3 +check 'message 3 gets a newline via stdin' 'cmp ./tmp.3 ./inbox/new/*:2,' +rm -f ./inbox/new/* + +mdeliver inbox/ <./tmp.4 +check 'message 4 is delivered verbatim via stdin' 'cmp ./tmp.4 ./inbox/new/*:2,' +rm -f ./inbox/new/* -- cgit 1.4.1