Skip to content

Commit

Permalink
t9001: enhance fake sendmail test harness
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Feb 25, 2008
1 parent a2de3a1 commit 6d34a2b
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions t/t9001-send-email.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,22 @@ test_expect_success \
'Setup helper tool' \
'(echo "#!/bin/sh"
echo shift
echo output=1
echo "while test -f commandline\$output; do output=\$((\$output+1)); done"
echo for a
echo do
echo " echo \"!\$a!\""
echo "done >commandline"
echo "cat > msgtxt"
echo "done >commandline\$output"
echo "cat > msgtxt\$output"
) >fake.sendmail &&
chmod +x ./fake.sendmail &&
git add fake.sendmail &&
GIT_AUTHOR_NAME="A" git commit -a -m "Second."'

clean_fake_sendmail() {
rm -f commandline* msgtxt*
}

test_expect_success 'Extract patches' '
patches=`git format-patch -n HEAD^1`
'
Expand All @@ -39,7 +45,7 @@ cat >expected <<\EOF
EOF
test_expect_success \
'Verify commandline' \
'diff commandline expected'
'diff commandline1 expected'

cat >expected-show-all-headers <<\EOF
0001-Second.patch
Expand Down Expand Up @@ -82,7 +88,7 @@ z8=zzzzzzzz
z64=$z8$z8$z8$z8$z8$z8$z8$z8
z512=$z64$z64$z64$z64$z64$z64$z64$z64
test_expect_success 'reject long lines' '
rm -f commandline &&
clean_fake_sendmail &&
cp $patches longline.patch &&
echo $z512$z512 >>longline.patch &&
! git send-email \
Expand All @@ -95,7 +101,7 @@ test_expect_success 'reject long lines' '
'

test_expect_success 'no patch was sent' '
! test -e commandline
! test -e commandline1
'

test_expect_success 'allow long lines with --no-validate' '
Expand All @@ -109,24 +115,26 @@ test_expect_success 'allow long lines with --no-validate' '
'

test_expect_success 'Invalid In-Reply-To' '
clean_fake_sendmail &&
git send-email \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
--in-reply-to=" " \
--smtp-server="$(pwd)/fake.sendmail" \
$patches
2>errors
! grep "^In-Reply-To: < *>" msgtxt
! grep "^In-Reply-To: < *>" msgtxt1
'

test_expect_success 'Valid In-Reply-To when prompting' '
clean_fake_sendmail &&
(echo "From Example <from@example.com>"
echo "To Example <to@example.com>"
echo ""
) | env GIT_SEND_EMAIL_NOTTY=1 git send-email \
--smtp-server="$(pwd)/fake.sendmail" \
$patches 2>errors &&
! grep "^In-Reply-To: < *>" msgtxt
! grep "^In-Reply-To: < *>" msgtxt1
'

test_done

0 comments on commit 6d34a2b

Please sign in to comment.