Subject: Re: [PATCH] send-email: move validation code below process_address_list

From: Junio C Hamano <[email-masked]>
Date: Tue, 24 Oct 2023 14:55:09 -0700

Michael Strawbridge <[email-masked]> writes:

> Subject: [PATCH] send-email: move validation code below process_address_list
>
> Move validation logic below processing of email address lists so that
> email validation gets the proper email addresses.

Hmph, without this patch, the tip of 'seen' passes t9001 on my box,
but with it, it claims that it failed 58, 87, and 89.

Here is how #58 fails (the last part of "cd t && sh t9001-*.sh -i -v").

expecting success of 9001.58 'In-Reply-To without --chain-reply-to':
        clean_fake_sendmail &&
        echo "<[email-masked]>" >expect &&
        git send-email \
                --from="Example <[email-masked]>" \
                --to=[email-masked] \
                --no-chain-reply-to \
                --in-reply-to="$(cat expect)" \
                --smtp-server="$(pwd)/fake.sendmail" \
                $patches $patches $patches \
                2>errors &&
        # The first message is a reply to --in-reply-to
        sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt1 >actual &&
        test_cmp expect actual &&
        # Second and subsequent messages are replies to the first one
        sed -n -e "s/^Message-ID: *\(.*\)/\1/p" msgtxt1 >expect &&
        sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt2 >actual &&
        test_cmp expect actual &&
        sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt3 >actual &&
        test_cmp expect actual

0001-Second.patch
0001-Second.patch
0001-Second.patch
(mbox) Adding cc: A <[email-masked]> from line 'From: A <[email-masked]>'
(mbox) Adding cc: One <[email-masked]> from line 'Cc: One <[email-masked]>, [email-masked]'
(mbox) Adding cc: [email-masked] from line 'Cc: One <[email-masked]>, [email-masked]'
(body) Adding cc: C O Mitter <[email-masked]> from line 'Signed-off-by: C O Mitter <[email-masked]>'
OK. Log says:
Sendmail: /usr/local/google/home/jch/w/git.git/t/trash directory.t9001-send-email/fake.sendmail -i [email-masked] [email-masked] [email-masked] [email-masked] [email-masked]
From: Example <[email-masked]>
To: [email-masked]
Cc: A <[email-masked]>,
        One <[email-masked]>,
        [email-masked],
        C O Mitter <[email-masked]>
Subject: [PATCH 1/1] Second.
Date: Tue, 24 Oct 2023 21:52:27 +0000
Message-ID: <[email-masked]>
X-Mailer: git-send-email 2.42.0-705-g1a1f985ecc
In-Reply-To: <[email-masked]>
References: <[email-masked]>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Result: OK
(mbox) Adding cc: A <[email-masked]> from line 'From: A <[email-masked]>'
(mbox) Adding cc: One <[email-masked]> from line 'Cc: One <[email-masked]>, [email-masked]'
(mbox) Adding cc: [email-masked] from line 'Cc: One <[email-masked]>, [email-masked]'
(body) Adding cc: C O Mitter <[email-masked]> from line 'Signed-off-by: C O Mitter <[email-masked]>'
OK. Log says:
Sendmail: /usr/local/google/home/jch/w/git.git/t/trash directory.t9001-send-email/fake.sendmail -i [email-masked] [email-masked] [email-masked] [email-masked] [email-masked]
From: Example <[email-masked]>
To: [email-masked]
Cc: A <[email-masked]>,
        One <[email-masked]>,
        [email-masked],
        C O Mitter <[email-masked]>
Subject: [PATCH 1/1] Second.
Date: Tue, 24 Oct 2023 21:52:28 +0000
Message-ID: <[email-masked]>
X-Mailer: git-send-email 2.42.0-705-g1a1f985ecc
In-Reply-To: <[email-masked]>
References: <[email-masked]>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Result: OK
(mbox) Adding cc: A <[email-masked]> from line 'From: A <[email-masked]>'
(mbox) Adding cc: One <[email-masked]> from line 'Cc: One <[email-masked]>, [email-masked]'
(mbox) Adding cc: [email-masked] from line 'Cc: One <[email-masked]>, [email-masked]'
(body) Adding cc: C O Mitter <[email-masked]> from line 'Signed-off-by: C O Mitter <[email-masked]>'
OK. Log says:
Sendmail: /usr/local/google/home/jch/w/git.git/t/trash directory.t9001-send-email/fake.sendmail -i [email-masked] [email-masked] [email-masked] [email-masked] [email-masked]
From: Example <[email-masked]>
To: [email-masked]
Cc: A <[email-masked]>,
        One <[email-masked]>,
        [email-masked],
        C O Mitter <[email-masked]>
Subject: [PATCH 1/1] Second.
Date: Tue, 24 Oct 2023 21:52:29 +0000
Message-ID: <[email-masked]>
X-Mailer: git-send-email 2.42.0-705-g1a1f985ecc
In-Reply-To: <[email-masked]>
References: <[email-masked]>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Result: OK
--- expect      2023-10-24 21:52:29.115044899 +0000
+++ actual      2023-10-24 21:52:29.119045306 +0000
@@ -1 +1 @@
-<[email-masked]>
+<[email-masked]>
not ok 58 - In-Reply-To without --chain-reply-to
#
#               clean_fake_sendmail &&
#               echo "<[email-masked]>" >expect &&
#               git send-email \
#                       --from="Example <[email-masked]>" \
#                       --to=[email-masked] \
#                       --no-chain-reply-to \
#                       --in-reply-to="$(cat expect)" \
#                       --smtp-server="$(pwd)/fake.sendmail" \
#                       $patches $patches $patches \
#                       2>errors &&
#               # The first message is a reply to --in-reply-to
#               sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt1 >actual &&
#               test_cmp expect actual &&
#               # Second and subsequent messages are replies to the first one
#               sed -n -e "s/^Message-ID: *\(.*\)/\1/p" msgtxt1 >expect &&
#               sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt2 >actual &&
#               test_cmp expect actual &&
#               sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt3 >actual &&
#               test_cmp expect actual
#
1..58