Web lists-archives.com

[PATCH v2 3/3] send-email: add test for Linux's get_maintainer.pl

From: Alex Bennée <alex.bennee@xxxxxxxxxx>

We had a regression that broke Linux's get_maintainer.pl. Using
Mail::Address to parse email addresses fixed it, but let's protect
against future regressions.

Patch-edited-by: Matthieu Moy <git@xxxxxxxxxxxxxxx>
Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx>
Signed-off-by: Matthieu Moy <git@xxxxxxxxxxxxxxx>
Change since v1: fixed proposed by Eric Sunshine and pointed out by
Alex Bennée.

Eric pointed out that using --cc-cmd=$(pwd)/expected-cc-script.sh did
not work because $(pwd) had spaces in it, but I already turned it into

 t/t9001-send-email.sh | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index 4d261c2..d13d8c3 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -172,6 +172,26 @@ test_expect_success $PREREQ 'cc trailer with various syntax' '
 	test_cmp expected-cc commandline1
+test_expect_success $PREREQ 'setup fake get_maintainer.pl script for cc trailer' "
+	write_script expected-cc-script.sh <<-EOF &&
+	echo 'One Person <one@xxxxxxxxxxx> (supporter:THIS (FOO/bar))'
+	echo 'Two Person <two@xxxxxxxxxxx> (maintainer:THIS THING)'
+	echo 'Third List <three@xxxxxxxxxxx> (moderated list:THIS THING (FOO/bar))'
+	echo '<four@xxxxxxxxxxx> (moderated list:FOR THING)'
+	echo 'five@xxxxxxxxxxx (open list:FOR THING (FOO/bar))'
+	echo 'six@xxxxxxxxxxx (open list)'
+	chmod +x expected-cc-script.sh
+test_expect_success $PREREQ 'cc trailer with get_maintainer.pl output' '
+	clean_fake_sendmail &&
+	git send-email -1 --to=recipient@xxxxxxxxxxx \
+		--cc-cmd="./expected-cc-script.sh" \
+		--smtp-server="$(pwd)/fake.sendmail" &&
+	test_cmp expected-cc commandline1
 test_expect_success $PREREQ 'setup expect' "
 cat >expected-show-all-headers <<\EOF