Web lists-archives.com

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




Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes:

> On Fri, Jan 5, 2018 at 1:36 PM, Matthieu Moy <git@xxxxxxxxxxxxxxx> wrote:
>> 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>
>> ---
>> diff --git 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_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)'
>> +       EOF
>> +       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" &&
>
> Aside from the unnecessary (thus noisy) quotes around the --cc-cmd

Indeed, removed.

> value, my one concern is that someone may come along and want to
> "normalize" it to --cc-cmd="$(pwd)/expected-cc-script.sh" for
> consistency with the following --smtp-server line. This worry is
> compounded by the commit message not explaining why these two lines
> differ (one using "./" and one using "$(pwd)/").

Added a note in the commit message.

> An alternative would be to insert a cleanup/modernization
> patch before this one which changes all the "$(pwd)/" to "./",

For --smtp-server, doing so results in a failing tests. I didn't
investigate on why.

> although you'd still want to explain why that's being done (to wit:
> because --cc-cmd behavior with spaces is not well defined). Or,
> perhaps this isn't an issue and my worry is not justified (after all,
> the test will break if someone changes the "./" to "$(pwd)/").

Also, the existing code is written like this: --cc-cmd is always
relative, --stmp-server is always absolute, including when they're used
in the same command:

test_suppress_self () {
[...]
	git send-email --from="$1 <$2>" \
		--to=nobody@xxxxxxxxxxx \
		--cc-cmd=./cccmd-sed \
		--suppress-cc=self \
		--smtp-server="$(pwd)/fake.sendmail" \

Thanks for your careful review,

-- 
Matthieu Moy
https://matthieu-moy.fr/