Hi Michael, On 2023-01-16 20:39, Strawbridge, Michael wrote: --[cut]-- > diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh > index 1130ef21b3..346ff1463e 100755 > --- a/t/t9001-send-email.sh > +++ b/t/t9001-send-email.sh > @@ -540,7 +540,7 @@ test_expect_success $PREREQ "--validate respects relative core.hooksPath path" ' > test_path_is_file my-hooks.ran && > cat >expect <<-EOF && > fatal: longline.patch: rejected by sendemail-validate hook > - fatal: command '"'"'git hook run --ignore-missing sendemail-validate -- <patch>'"'"' died with exit code 1 > + fatal: command '"'"'git hook run --ignore-missing sendemail-validate -- <patch> <header>'"'"' died with exit code 1 > warning: no patches were sent > EOF > test_cmp expect actual > @@ -559,12 +559,55 @@ test_expect_success $PREREQ "--validate respects absolute core.hooksPath path" ' > test_path_is_file my-hooks.ran && > cat >expect <<-EOF && > fatal: longline.patch: rejected by sendemail-validate hook > - fatal: command '"'"'git hook run --ignore-missing sendemail-validate -- <patch>'"'"' died with exit code 1 > + fatal: command '"'"'git hook run --ignore-missing sendemail-validate -- <patch> <header>'"'"' died with exit code 1 > warning: no patches were sent > EOF > test_cmp expect actual > ' > > +test_expect_success $PREREQ 'setup expect' " > +cat >expected-headers <<\EOF > +From: Example <from@xxxxxxxxxxx> > +To: to@xxxxxxxxxxx > +Cc: cc@xxxxxxxxxxx, > + A <author@xxxxxxxxxxx>, > + One <one@xxxxxxxxxxx>, > + two@xxxxxxxxxxx > +Subject: [PATCH 1/1] Second. > +Date: DATE-STRING > +Message-Id: MESSAGE-ID-STRING > +X-Mailer: X-MAILER-STRING > +Reply-To: Reply <reply@xxxxxxxxxxx> > +MIME-Version: 1.0 > +Content-Transfer-Encoding: quoted-printable > +EOF > +" > + > +test_expect_success $PREREQ "--validate hook supports header argument" ' > + write_script my-hooks/sendemail-validate <<-\EOF && > + if test -s "$2" > + then > + cat "$2" >actual > + exit 1 > + fi > + EOF > + test_config core.hooksPath "my-hooks" && > + test_must_fail git send-email \ > + --dry-run \ > + --suppress-cc=sob \ > + --from="Example <from@xxxxxxxxxxx>" \ > + --reply-to="Reply <reply@xxxxxxxxxxx>" \ > + --to=to@xxxxxxxxxxx \ > + --cc=cc@xxxxxxxxxxx \ > + --bcc=bcc@xxxxxxxxxxx \ > + --smtp-server="$(pwd)/fake.sendmail" \ > + --validate \ > + longline.patch && > + cat actual | replace_variable_fields \ > + >actual-headers && > + test_cmp expected-headers actual-headers > +' > + > for enc in 7bit 8bit quoted-printable base64 > do > test_expect_success $PREREQ "--transfer-encoding=$enc produces correct header" ' As Junio and I discussed in the v5 2/2 patch review, here we may want to do something like this: Add a custom header to the SMTP envelope and then make sure that that is present when the hook checks $2. To add a custom header, (and this uses real-world data, which is good), use the following: git format-patch --stdout --add-header="X-test-header: v1.0" HEAD^..HEAD > /tmp/some-temp-file Then the hook verifies that "X-test-header: v1.0" is present in $2, when git-send-email is run with /tmp/some-temp-file. -- Regards, Luben