t9001: enhance fake sendmail test harness
Previously, the fake.sendmail test harness would write its output to a hardcoded file, allowing only a single message to be tested. Instead, let's have it save the messages for all of its invocations so that we can see which messages were sent, and in which order. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
a2de3a17fa
commit
6d34a2bad1
@ -15,16 +15,22 @@ test_expect_success \
|
|||||||
'Setup helper tool' \
|
'Setup helper tool' \
|
||||||
'(echo "#!/bin/sh"
|
'(echo "#!/bin/sh"
|
||||||
echo shift
|
echo shift
|
||||||
|
echo output=1
|
||||||
|
echo "while test -f commandline\$output; do output=\$((\$output+1)); done"
|
||||||
echo for a
|
echo for a
|
||||||
echo do
|
echo do
|
||||||
echo " echo \"!\$a!\""
|
echo " echo \"!\$a!\""
|
||||||
echo "done >commandline"
|
echo "done >commandline\$output"
|
||||||
echo "cat > msgtxt"
|
echo "cat > msgtxt\$output"
|
||||||
) >fake.sendmail &&
|
) >fake.sendmail &&
|
||||||
chmod +x ./fake.sendmail &&
|
chmod +x ./fake.sendmail &&
|
||||||
git add fake.sendmail &&
|
git add fake.sendmail &&
|
||||||
GIT_AUTHOR_NAME="A" git commit -a -m "Second."'
|
GIT_AUTHOR_NAME="A" git commit -a -m "Second."'
|
||||||
|
|
||||||
|
clean_fake_sendmail() {
|
||||||
|
rm -f commandline* msgtxt*
|
||||||
|
}
|
||||||
|
|
||||||
test_expect_success 'Extract patches' '
|
test_expect_success 'Extract patches' '
|
||||||
patches=`git format-patch -n HEAD^1`
|
patches=`git format-patch -n HEAD^1`
|
||||||
'
|
'
|
||||||
@ -39,7 +45,7 @@ cat >expected <<\EOF
|
|||||||
EOF
|
EOF
|
||||||
test_expect_success \
|
test_expect_success \
|
||||||
'Verify commandline' \
|
'Verify commandline' \
|
||||||
'diff commandline expected'
|
'diff commandline1 expected'
|
||||||
|
|
||||||
cat >expected-show-all-headers <<\EOF
|
cat >expected-show-all-headers <<\EOF
|
||||||
0001-Second.patch
|
0001-Second.patch
|
||||||
@ -82,7 +88,7 @@ z8=zzzzzzzz
|
|||||||
z64=$z8$z8$z8$z8$z8$z8$z8$z8
|
z64=$z8$z8$z8$z8$z8$z8$z8$z8
|
||||||
z512=$z64$z64$z64$z64$z64$z64$z64$z64
|
z512=$z64$z64$z64$z64$z64$z64$z64$z64
|
||||||
test_expect_success 'reject long lines' '
|
test_expect_success 'reject long lines' '
|
||||||
rm -f commandline &&
|
clean_fake_sendmail &&
|
||||||
cp $patches longline.patch &&
|
cp $patches longline.patch &&
|
||||||
echo $z512$z512 >>longline.patch &&
|
echo $z512$z512 >>longline.patch &&
|
||||||
! git send-email \
|
! git send-email \
|
||||||
@ -95,7 +101,7 @@ test_expect_success 'reject long lines' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'no patch was sent' '
|
test_expect_success 'no patch was sent' '
|
||||||
! test -e commandline
|
! test -e commandline1
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'allow long lines with --no-validate' '
|
test_expect_success 'allow long lines with --no-validate' '
|
||||||
@ -109,6 +115,7 @@ test_expect_success 'allow long lines with --no-validate' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'Invalid In-Reply-To' '
|
test_expect_success 'Invalid In-Reply-To' '
|
||||||
|
clean_fake_sendmail &&
|
||||||
git send-email \
|
git send-email \
|
||||||
--from="Example <nobody@example.com>" \
|
--from="Example <nobody@example.com>" \
|
||||||
--to=nobody@example.com \
|
--to=nobody@example.com \
|
||||||
@ -116,17 +123,18 @@ test_expect_success 'Invalid In-Reply-To' '
|
|||||||
--smtp-server="$(pwd)/fake.sendmail" \
|
--smtp-server="$(pwd)/fake.sendmail" \
|
||||||
$patches
|
$patches
|
||||||
2>errors
|
2>errors
|
||||||
! grep "^In-Reply-To: < *>" msgtxt
|
! grep "^In-Reply-To: < *>" msgtxt1
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'Valid In-Reply-To when prompting' '
|
test_expect_success 'Valid In-Reply-To when prompting' '
|
||||||
|
clean_fake_sendmail &&
|
||||||
(echo "From Example <from@example.com>"
|
(echo "From Example <from@example.com>"
|
||||||
echo "To Example <to@example.com>"
|
echo "To Example <to@example.com>"
|
||||||
echo ""
|
echo ""
|
||||||
) | env GIT_SEND_EMAIL_NOTTY=1 git send-email \
|
) | env GIT_SEND_EMAIL_NOTTY=1 git send-email \
|
||||||
--smtp-server="$(pwd)/fake.sendmail" \
|
--smtp-server="$(pwd)/fake.sendmail" \
|
||||||
$patches 2>errors &&
|
$patches 2>errors &&
|
||||||
! grep "^In-Reply-To: < *>" msgtxt
|
! grep "^In-Reply-To: < *>" msgtxt1
|
||||||
'
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Reference in New Issue
Block a user