From aca56064f4eebe2ba46a55908b5cfa3b4ffa6785 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 25 Nov 2014 14:11:39 -0800 Subject: [PATCH 1/5] t9001: style modernisation phase #1 Don't chop test_expect_success line into pieces and concatenate with '\'. That's so 2005. Signed-off-by: Junio C Hamano --- t/t9001-send-email.sh | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index e5016f457..bfe2339fd 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -6,16 +6,15 @@ test_description='git send-email' # May be altered later in the test PREREQ="PERL" -test_expect_success $PREREQ \ - 'prepare reference tree' \ - 'echo "1A quick brown fox jumps over the" >file && +test_expect_success $PREREQ 'prepare reference tree' ' + echo "1A quick brown fox jumps over the" >file && echo "lazy dog" >>file && git add file && - GIT_AUTHOR_NAME="A" git commit -a -m "Initial."' + GIT_AUTHOR_NAME="A" git commit -a -m "Initial." +' -test_expect_success $PREREQ \ - 'Setup helper tool' \ - '(echo "#!$SHELL_PATH" +test_expect_success $PREREQ 'Setup helper tool' ' + (echo "#!$SHELL_PATH" echo shift echo output=1 echo "while test -f commandline\$output; do output=\$((\$output+1)); done" @@ -27,7 +26,8 @@ test_expect_success $PREREQ \ ) >fake.sendmail && chmod +x ./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* @@ -94,9 +94,9 @@ cat >expected <<\EOF EOF ' -test_expect_success $PREREQ \ - 'Verify commandline' \ - 'test_cmp expected commandline1' +test_expect_success $PREREQ 'Verify commandline' ' + test_cmp expected commandline1 +' test_expect_success $PREREQ 'Send patches with --envelope-sender' ' clean_fake_sendmail && @@ -114,9 +114,9 @@ cat >expected <<\EOF EOF ' -test_expect_success $PREREQ \ - 'Verify commandline' \ - 'test_cmp expected commandline1' +test_expect_success $PREREQ 'Verify commandline' ' + test_cmp expected commandline1 +' test_expect_success $PREREQ 'Send patches with --envelope-sender=auto' ' clean_fake_sendmail && @@ -134,9 +134,9 @@ cat >expected <<\EOF EOF ' -test_expect_success $PREREQ \ - 'Verify commandline' \ - 'test_cmp expected commandline1' +test_expect_success $PREREQ 'Verify commandline' ' + test_cmp expected commandline1 +' test_expect_success $PREREQ 'setup expect' " cat >expected-show-all-headers <<\EOF From 03335f22959d4ca0176a3073e1670380d3294711 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 25 Nov 2014 14:14:41 -0800 Subject: [PATCH 2/5] t9001: style modernisation phase #2 Indent is done with HTs, not a run of SPs. Signed-off-by: Junio C Hamano --- t/t9001-send-email.sh | 302 +++++++++++++++++++++--------------------- 1 file changed, 151 insertions(+), 151 deletions(-) diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index bfe2339fd..6a24e59b2 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -7,26 +7,26 @@ test_description='git send-email' PREREQ="PERL" test_expect_success $PREREQ 'prepare reference tree' ' - echo "1A quick brown fox jumps over the" >file && - echo "lazy dog" >>file && - git add file && - GIT_AUTHOR_NAME="A" git commit -a -m "Initial." + echo "1A quick brown fox jumps over the" >file && + echo "lazy dog" >>file && + git add file && + GIT_AUTHOR_NAME="A" git commit -a -m "Initial." ' test_expect_success $PREREQ 'Setup helper tool' ' - (echo "#!$SHELL_PATH" - 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\$output" - echo "cat > msgtxt\$output" - ) >fake.sendmail && - chmod +x ./fake.sendmail && - git add fake.sendmail && - GIT_AUTHOR_NAME="A" git commit -a -m "Second." + (echo "#!$SHELL_PATH" + 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\$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() { @@ -34,7 +34,7 @@ clean_fake_sendmail() { } test_expect_success $PREREQ 'Extract patches' ' - patches=`git format-patch -s --cc="One " --cc=two@example.com -n HEAD^1` + patches=`git format-patch -s --cc="One " --cc=two@example.com -n HEAD^1` ' # Test no confirm early to ensure remaining tests will not hang @@ -82,7 +82,7 @@ test_expect_success $PREREQ 'No confirm with sendemail.confirm=never' ' ' test_expect_success $PREREQ 'Send patches' ' - git send-email --suppress-cc=sob --from="Example " --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors + git send-email --suppress-cc=sob --from="Example " --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors ' test_expect_success $PREREQ 'setup expect' ' @@ -99,8 +99,8 @@ test_expect_success $PREREQ 'Verify commandline' ' ' test_expect_success $PREREQ 'Send patches with --envelope-sender' ' - clean_fake_sendmail && - git send-email --envelope-sender="Patch Contributor " --suppress-cc=sob --from="Example " --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors + clean_fake_sendmail && + git send-email --envelope-sender="Patch Contributor " --suppress-cc=sob --from="Example " --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors ' test_expect_success $PREREQ 'setup expect' ' @@ -119,8 +119,8 @@ test_expect_success $PREREQ 'Verify commandline' ' ' test_expect_success $PREREQ 'Send patches with --envelope-sender=auto' ' - clean_fake_sendmail && - git send-email --envelope-sender=auto --suppress-cc=sob --from="Example " --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors + clean_fake_sendmail && + git send-email --envelope-sender=auto --suppress-cc=sob --from="Example " --to=nobody@example.com --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors ' test_expect_success $PREREQ 'setup expect' ' @@ -895,13 +895,13 @@ test_expect_success $PREREQ '--compose adds MIME for utf8 body' ' echo "echo utf8 body: àéìöú >>\"\$1\"" ) >fake-editor-utf8 && chmod +x fake-editor-utf8 && - GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ - git send-email \ - --compose --subject foo \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - $patches && + GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ + git send-email \ + --compose --subject foo \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && grep "^utf8 body" msgtxt1 && grep "^Content-Type: text/plain; charset=UTF-8" msgtxt1 ' @@ -917,13 +917,13 @@ test_expect_success $PREREQ '--compose respects user mime type' ' echo " echo utf8 body: àéìöú) >\"\$1\"" ) >fake-editor-utf8-mime && chmod +x fake-editor-utf8-mime && - GIT_EDITOR="\"$(pwd)/fake-editor-utf8-mime\"" \ - git send-email \ - --compose --subject foo \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - $patches && + GIT_EDITOR="\"$(pwd)/fake-editor-utf8-mime\"" \ + git send-email \ + --compose --subject foo \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && grep "^utf8 body" msgtxt1 && grep "^Content-Type: text/plain; charset=iso-8859-1" msgtxt1 && ! grep "^Content-Type: text/plain; charset=UTF-8" msgtxt1 @@ -931,13 +931,13 @@ test_expect_success $PREREQ '--compose respects user mime type' ' test_expect_success $PREREQ '--compose adds MIME for utf8 subject' ' clean_fake_sendmail && - GIT_EDITOR="\"$(pwd)/fake-editor\"" \ - git send-email \ - --compose --subject utf8-sübjëct \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - $patches && + GIT_EDITOR="\"$(pwd)/fake-editor\"" \ + git send-email \ + --compose --subject utf8-sübjëct \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && grep "^fake edit" msgtxt1 && grep "^Subject: =?UTF-8?q?utf8-s=C3=BCbj=C3=ABct?=" msgtxt1 ' @@ -949,9 +949,9 @@ test_expect_success $PREREQ 'utf8 author is correctly passed on' ' git commit --amend --author "Füñný Nâmé " && git format-patch --stdout -1 >funny_name.patch && git send-email --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - funny_name.patch && + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + funny_name.patch && grep "^From: Füñný Nâmé " msgtxt1 ' @@ -962,9 +962,9 @@ test_expect_success $PREREQ 'utf8 sender is not duplicated' ' git commit --amend --author "Füñný Nâmé " && git format-patch --stdout -1 >funny_name.patch && git send-email --from="Füñný Nâmé " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - funny_name.patch && + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + funny_name.patch && grep "^From: " msgtxt1 >msgfrom && test_line_count = 1 msgfrom ' @@ -976,13 +976,13 @@ test_expect_success $PREREQ 'sendemail.composeencoding works' ' echo "echo utf8 body: àéìöú >>\"\$1\"" ) >fake-editor-utf8 && chmod +x fake-editor-utf8 && - GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ - git send-email \ - --compose --subject foo \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - $patches && + GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ + git send-email \ + --compose --subject foo \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && grep "^utf8 body" msgtxt1 && grep "^Content-Type: text/plain; charset=iso-8859-1" msgtxt1 ' @@ -993,14 +993,14 @@ test_expect_success $PREREQ '--compose-encoding works' ' echo "echo utf8 body: àéìöú >>\"\$1\"" ) >fake-editor-utf8 && chmod +x fake-editor-utf8 && - GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ - git send-email \ - --compose-encoding iso-8859-1 \ - --compose --subject foo \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - $patches && + GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ + git send-email \ + --compose-encoding iso-8859-1 \ + --compose --subject foo \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && grep "^utf8 body" msgtxt1 && grep "^Content-Type: text/plain; charset=iso-8859-1" msgtxt1 ' @@ -1012,28 +1012,28 @@ test_expect_success $PREREQ '--compose-encoding overrides sendemail.composeencod echo "echo utf8 body: àéìöú >>\"\$1\"" ) >fake-editor-utf8 && chmod +x fake-editor-utf8 && - GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ - git send-email \ - --compose-encoding iso-8859-2 \ - --compose --subject foo \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - $patches && + GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ + git send-email \ + --compose-encoding iso-8859-2 \ + --compose --subject foo \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && grep "^utf8 body" msgtxt1 && grep "^Content-Type: text/plain; charset=iso-8859-2" msgtxt1 ' test_expect_success $PREREQ '--compose-encoding adds correct MIME for subject' ' clean_fake_sendmail && - GIT_EDITOR="\"$(pwd)/fake-editor\"" \ - git send-email \ - --compose-encoding iso-8859-2 \ - --compose --subject utf8-sübjëct \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - $patches && + GIT_EDITOR="\"$(pwd)/fake-editor\"" \ + git send-email \ + --compose-encoding iso-8859-2 \ + --compose --subject utf8-sübjëct \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + $patches && grep "^fake edit" msgtxt1 && grep "^Subject: =?iso-8859-2?q?utf8-s=C3=BCbj=C3=ABct?=" msgtxt1 ' @@ -1050,10 +1050,10 @@ test_expect_success $PREREQ 'feed two files' ' rm -fr outdir && git format-patch -2 -o outdir && git send-email \ - --dry-run \ - --from="Example " \ - --to=nobody@example.com \ - outdir/000?-*.patch 2>errors >out && + --dry-run \ + --from="Example " \ + --to=nobody@example.com \ + outdir/000?-*.patch 2>errors >out && grep "^Subject: " out >subjects && test "z$(sed -n -e 1p subjects)" = "zSubject: [PATCH 1/2] Second." && test "z$(sed -n -e 2p subjects)" = "zSubject: [PATCH 2/2] add master" @@ -1315,10 +1315,10 @@ test_expect_success $PREREQ 'sendemail.transferencoding=7bit fails on 8bit data' clean_fake_sendmail && git config sendemail.transferEncoding 7bit && test_must_fail git send-email \ - --transfer-encoding=7bit \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-8bit \ - 2>errors >out && + --transfer-encoding=7bit \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-8bit \ + 2>errors >out && grep "cannot send message as 7bit" errors && test -z "$(ls msgtxt*)" ' @@ -1327,10 +1327,10 @@ test_expect_success $PREREQ '--transfer-encoding overrides sendemail.transferEnc clean_fake_sendmail && git config sendemail.transferEncoding 8bit test_must_fail git send-email \ - --transfer-encoding=7bit \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-8bit \ - 2>errors >out && + --transfer-encoding=7bit \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-8bit \ + 2>errors >out && grep "cannot send message as 7bit" errors && test -z "$(ls msgtxt*)" ' @@ -1338,10 +1338,10 @@ test_expect_success $PREREQ '--transfer-encoding overrides sendemail.transferEnc test_expect_success $PREREQ 'sendemail.transferencoding=8bit' ' clean_fake_sendmail && git send-email \ - --transfer-encoding=8bit \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-8bit \ - 2>errors >out && + --transfer-encoding=8bit \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-8bit \ + 2>errors >out && sed '1,/^$/d' msgtxt1 >actual && sed '1,/^$/d' email-using-8bit >expected && test_cmp expected actual @@ -1356,10 +1356,10 @@ EOF test_expect_success $PREREQ '8-bit and sendemail.transferencoding=quoted-printable' ' clean_fake_sendmail && git send-email \ - --transfer-encoding=quoted-printable \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-8bit \ - 2>errors >out && + --transfer-encoding=quoted-printable \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-8bit \ + 2>errors >out && sed '1,/^$/d' msgtxt1 >actual && test_cmp expected actual ' @@ -1373,10 +1373,10 @@ EOF test_expect_success $PREREQ '8-bit and sendemail.transferencoding=base64' ' clean_fake_sendmail && git send-email \ - --transfer-encoding=base64 \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-8bit \ - 2>errors >out && + --transfer-encoding=base64 \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-8bit \ + 2>errors >out && sed '1,/^$/d' msgtxt1 >actual && test_cmp expected actual ' @@ -1399,10 +1399,10 @@ EOF test_expect_success $PREREQ 'convert from quoted-printable to base64' ' clean_fake_sendmail && git send-email \ - --transfer-encoding=base64 \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-qp \ - 2>errors >out && + --transfer-encoding=base64 \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-qp \ + 2>errors >out && sed '1,/^$/d' msgtxt1 >actual && test_cmp expected actual ' @@ -1429,10 +1429,10 @@ EOF test_expect_success $PREREQ 'CRLF and sendemail.transferencoding=quoted-printable' ' clean_fake_sendmail && git send-email \ - --transfer-encoding=quoted-printable \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-crlf \ - 2>errors >out && + --transfer-encoding=quoted-printable \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-crlf \ + 2>errors >out && sed '1,/^$/d' msgtxt1 >actual && test_cmp expected actual ' @@ -1446,10 +1446,10 @@ EOF test_expect_success $PREREQ 'CRLF and sendemail.transferencoding=base64' ' clean_fake_sendmail && git send-email \ - --transfer-encoding=base64 \ - --smtp-server="$(pwd)/fake.sendmail" \ - email-using-crlf \ - 2>errors >out && + --transfer-encoding=base64 \ + --smtp-server="$(pwd)/fake.sendmail" \ + email-using-crlf \ + 2>errors >out && sed '1,/^$/d' msgtxt1 >actual && test_cmp expected actual ' @@ -1463,13 +1463,13 @@ test_expect_success $PREREQ 'refusing to send cover letter template' ' rm -fr outdir && git format-patch --cover-letter -2 -o outdir && test_must_fail git send-email \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0002-*.patch \ - outdir/0000-*.patch \ - outdir/0001-*.patch \ - 2>errors >out && + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0002-*.patch \ + outdir/0000-*.patch \ + outdir/0001-*.patch \ + 2>errors >out && grep "SUBJECT HERE" errors && test -z "$(ls msgtxt*)" ' @@ -1479,14 +1479,14 @@ test_expect_success $PREREQ '--force sends cover letter template anyway' ' rm -fr outdir && git format-patch --cover-letter -2 -o outdir && git send-email \ - --force \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0002-*.patch \ - outdir/0000-*.patch \ - outdir/0001-*.patch \ - 2>errors >out && + --force \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0002-*.patch \ + outdir/0000-*.patch \ + outdir/0001-*.patch \ + 2>errors >out && ! grep "SUBJECT HERE" errors && test -n "$(ls msgtxt*)" ' @@ -1501,15 +1501,15 @@ test_cover_addresses () { mv $cover cover-to-edit.patch && perl -pe "s/^From:/$header: extra\@address.com\nFrom:/" cover-to-edit.patch >"$cover" && git send-email \ - --force \ - --from="Example " \ - --no-to --no-cc \ - "$@" \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0000-*.patch \ - outdir/0001-*.patch \ - outdir/0002-*.patch \ - 2>errors >out && + --force \ + --from="Example " \ + --no-to --no-cc \ + "$@" \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0000-*.patch \ + outdir/0001-*.patch \ + outdir/0002-*.patch \ + 2>errors >out && grep "^$header: extra@address.com" msgtxt1 >to1 && grep "^$header: extra@address.com" msgtxt2 >to2 && grep "^$header: extra@address.com" msgtxt3 >to3 && @@ -1542,11 +1542,11 @@ test_expect_success $PREREQ 'sendemail.aliasfiletype=mailrc' ' git config --replace-all sendemail.aliasesfile "$(pwd)/.mailrc" && git config sendemail.aliasfiletype mailrc && git send-email \ - --from="Example " \ - --to=sbd \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && + --from="Example " \ + --to=sbd \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && grep "^!somebody@example\.org!$" commandline1 ' @@ -1556,11 +1556,11 @@ test_expect_success $PREREQ 'sendemail.aliasfile=~/.mailrc' ' git config --replace-all sendemail.aliasesfile "~/.mailrc" && git config sendemail.aliasfiletype mailrc && git send-email \ - --from="Example " \ - --to=sbd \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && + --from="Example " \ + --to=sbd \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && grep "^!someone@example\.org!$" commandline1 ' From acd72b563652b646e65f2a90668b57a854fb3d12 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 25 Nov 2014 14:21:07 -0800 Subject: [PATCH 3/5] t9001: style modernisation phase #3 Use write_script. The resulting patch makes it a lot easier to understand what the written script is doing. Signed-off-by: Junio C Hamano --- t/t9001-send-email.sh | 99 ++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 52 deletions(-) diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 6a24e59b2..ce05a871e 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -14,17 +14,19 @@ test_expect_success $PREREQ 'prepare reference tree' ' ' test_expect_success $PREREQ 'Setup helper tool' ' - (echo "#!$SHELL_PATH" - 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\$output" - echo "cat > msgtxt\$output" - ) >fake.sendmail && - chmod +x ./fake.sendmail && + write_script fake.sendmail <<-\EOF && + shift + output=1 + while test -f commandline$output + do + output=$(($output+1)) + done + for a + do + echo "!$a!" + done >commandline$output + cat >"msgtxt$output" + EOF git add fake.sendmail && GIT_AUTHOR_NAME="A" git commit -a -m "Second." ' @@ -307,11 +309,9 @@ test_expect_success $PREREQ 'tocmd works' ' clean_fake_sendmail && cp $patches tocmd.patch && echo tocmd--tocmd@example.com >>tocmd.patch && - { - echo "#!$SHELL_PATH" - echo sed -n -e s/^tocmd--//p \"\$1\" - } > tocmd-sed && - chmod +x tocmd-sed && + write_script tocmd-sed <<-\EOF && + sed -n -e "s/^tocmd--//p" "$1" + EOF git send-email \ --from="Example " \ --to-cmd=./tocmd-sed \ @@ -325,11 +325,9 @@ test_expect_success $PREREQ 'cccmd works' ' clean_fake_sendmail && cp $patches cccmd.patch && echo "cccmd-- cccmd@example.com" >>cccmd.patch && - { - echo "#!$SHELL_PATH" - echo sed -n -e s/^cccmd--//p \"\$1\" - } > cccmd-sed && - chmod +x cccmd-sed && + write_script cccmd-sed <<-\EOF && + sed -n -e "s/^cccmd--//p" "$1" + EOF git send-email \ --from="Example " \ --to=nobody@example.com \ @@ -459,10 +457,9 @@ test_expect_success $PREREQ 'In-Reply-To with --chain-reply-to' ' ' test_expect_success $PREREQ 'setup fake editor' ' - (echo "#!$SHELL_PATH" && - echo "echo fake edit >>\"\$1\"" - ) >fake-editor && - chmod +x fake-editor + write_script fake-editor <<-\EOF + echo fake edit >>"$1" + EOF ' test_set_editor "$(pwd)/fake-editor" @@ -598,8 +595,9 @@ EOF " test_expect_success $PREREQ 'sendemail.cccmd' ' - echo echo cc-cmd@example.com > cccmd && - chmod +x cccmd && + write_script cccmd <<-\EOF && + echo cc-cmd@example.com + EOF git config sendemail.cccmd ./cccmd && test_suppression cccmd ' @@ -891,10 +889,9 @@ test_expect_success $PREREQ 'utf8 Cc is rfc2047 encoded' ' test_expect_success $PREREQ '--compose adds MIME for utf8 body' ' clean_fake_sendmail && - (echo "#!$SHELL_PATH" && - echo "echo utf8 body: àéìöú >>\"\$1\"" - ) >fake-editor-utf8 && - chmod +x fake-editor-utf8 && + write_script fake-editor-utf8 <<-\EOF && + echo "utf8 body: àéìöú" >>"$1" + EOF GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ git send-email \ --compose --subject foo \ @@ -908,15 +905,16 @@ test_expect_success $PREREQ '--compose adds MIME for utf8 body' ' test_expect_success $PREREQ '--compose respects user mime type' ' clean_fake_sendmail && - (echo "#!$SHELL_PATH" && - echo "(echo MIME-Version: 1.0" - echo " echo Content-Type: text/plain\\; charset=iso-8859-1" - echo " echo Content-Transfer-Encoding: 8bit" - echo " echo Subject: foo" - echo " echo " - echo " echo utf8 body: àéìöú) >\"\$1\"" - ) >fake-editor-utf8-mime && - chmod +x fake-editor-utf8-mime && + write_script fake-editor-utf8-mime <<-\EOF && + cat >"$1" <<-\EOM + MIME-Version: 1.0 + Content-Type: text/plain; charset=iso-8859-1 + Content-Transfer-Encoding: 8bit + Subject: foo + + utf8 body: àéìöú + EOM + EOF GIT_EDITOR="\"$(pwd)/fake-editor-utf8-mime\"" \ git send-email \ --compose --subject foo \ @@ -972,10 +970,9 @@ test_expect_success $PREREQ 'utf8 sender is not duplicated' ' test_expect_success $PREREQ 'sendemail.composeencoding works' ' clean_fake_sendmail && git config sendemail.composeencoding iso-8859-1 && - (echo "#!$SHELL_PATH" && - echo "echo utf8 body: àéìöú >>\"\$1\"" - ) >fake-editor-utf8 && - chmod +x fake-editor-utf8 && + write_script fake-editor-utf8 <<-\EOF && + echo "utf8 body: àéìöú" >>"$1" + EOF GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ git send-email \ --compose --subject foo \ @@ -989,10 +986,9 @@ test_expect_success $PREREQ 'sendemail.composeencoding works' ' test_expect_success $PREREQ '--compose-encoding works' ' clean_fake_sendmail && - (echo "#!$SHELL_PATH" && - echo "echo utf8 body: àéìöú >>\"\$1\"" - ) >fake-editor-utf8 && - chmod +x fake-editor-utf8 && + write_script fake-editor-utf8 <<-\EOF && + echo "utf8 body: àéìöú" >>"$1" + EOF GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ git send-email \ --compose-encoding iso-8859-1 \ @@ -1008,10 +1004,9 @@ test_expect_success $PREREQ '--compose-encoding works' ' test_expect_success $PREREQ '--compose-encoding overrides sendemail.composeencoding' ' clean_fake_sendmail && git config sendemail.composeencoding iso-8859-1 && - (echo "#!$SHELL_PATH" && - echo "echo utf8 body: àéìöú >>\"\$1\"" - ) >fake-editor-utf8 && - chmod +x fake-editor-utf8 && + write_script fake-editor-utf8 <<-\EOF && + echo "utf8 body: àéìöú" >>"$1" + EOF GIT_EDITOR="\"$(pwd)/fake-editor-utf8\"" \ git send-email \ --compose-encoding iso-8859-2 \ From ee756a8161734e28490616f05ba895182424490b Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 25 Nov 2014 14:52:42 -0800 Subject: [PATCH 4/5] t9001: style modernisation phase #4 Two general shell script codingstyles. - No SP between redirection operator and its target - One SP on both sides of () in "name () {" that begins a shell function Signed-off-by: Junio C Hamano --- t/t9001-send-email.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index ce05a871e..8aa7c0335 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -31,7 +31,7 @@ test_expect_success $PREREQ 'Setup helper tool' ' GIT_AUTHOR_NAME="A" git commit -a -m "Second." ' -clean_fake_sendmail() { +clean_fake_sendmail () { rm -f commandline* msgtxt* } @@ -49,9 +49,9 @@ test_no_confirm () { --to=nobody@example.com \ --smtp-server="$(pwd)/fake.sendmail" \ $@ \ - $patches > stdout && + $patches >stdout && test_must_fail grep "Send this email" stdout && - > no_confirm_okay + >no_confirm_okay } # Exit immediately to prevent hang if a no-confirm test fails @@ -365,7 +365,7 @@ test_expect_success $PREREQ 'Author From: in message body' ' --to=nobody@example.com \ --smtp-server="$(pwd)/fake.sendmail" \ $patches && - sed "1,/^\$/d" < msgtxt1 > msgbody1 && + sed "1,/^\$/d" msgbody1 && grep "From: A " msgbody1 ' @@ -376,7 +376,7 @@ test_expect_success $PREREQ 'Author From: not in message body' ' --to=nobody@example.com \ --smtp-server="$(pwd)/fake.sendmail" \ $patches && - sed "1,/^\$/d" < msgtxt1 > msgbody1 && + sed "1,/^\$/d" msgbody1 && ! grep "From: A " msgbody1 ' @@ -790,7 +790,7 @@ test_confirm () { --from="Example " \ --to=nobody@example.com \ --smtp-server="$(pwd)/fake.sendmail" \ - $@ $patches > stdout && + $@ $patches >stdout && grep "Send this email" stdout } @@ -838,7 +838,7 @@ test_expect_success $PREREQ 'confirm detects EOF (inform assumes y)' ' --from="Example " \ --to=nobody@example.com \ --smtp-server="$(pwd)/fake.sendmail" \ - outdir/*.patch < /dev/null + outdir/*.patch master && + echo master >master && git add master && git commit -m"add master" && test_must_fail git send-email --dry-run master 2>errors && @@ -1403,7 +1403,7 @@ test_expect_success $PREREQ 'convert from quoted-printable to base64' ' ' test_expect_success $PREREQ 'setup expect' " -tr -d '\\015' | tr '%' '\\015' > email-using-crlf <email-using-crlf < From: A U Thor From 0720a51b29cdeb3927280669557068e636913128 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 25 Nov 2014 15:03:45 -0800 Subject: [PATCH 5/5] t9001: style modernisation phase #5 Two general shell script codingstyles around here-text. - Quote the <<\END_OF_HERE_TEXT string when there is no parameter substitution going on to reduce cognitive load of the reader. - Indent the text with <<-\END_OF_HERE_TEXT when able to make it easier to spot boundaries of the tests. Signed-off-by: Junio C Hamano --- t/t9001-send-email.sh | 150 +++++++++++++++++++++--------------------- 1 file changed, 74 insertions(+), 76 deletions(-) diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 8aa7c0335..e37efef5c 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -88,12 +88,12 @@ test_expect_success $PREREQ 'Send patches' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <<\EOF -!nobody@example.com! -!author@example.com! -!one@example.com! -!two@example.com! -EOF + cat >expected <<-\EOF + !nobody@example.com! + !author@example.com! + !one@example.com! + !two@example.com! + EOF ' test_expect_success $PREREQ 'Verify commandline' ' @@ -106,14 +106,14 @@ test_expect_success $PREREQ 'Send patches with --envelope-sender' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <<\EOF -!patch@example.com! -!-i! -!nobody@example.com! -!author@example.com! -!one@example.com! -!two@example.com! -EOF + cat >expected <<-\EOF + !patch@example.com! + !-i! + !nobody@example.com! + !author@example.com! + !one@example.com! + !two@example.com! + EOF ' test_expect_success $PREREQ 'Verify commandline' ' @@ -126,14 +126,14 @@ test_expect_success $PREREQ 'Send patches with --envelope-sender=auto' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <<\EOF -!nobody@example.com! -!-i! -!nobody@example.com! -!author@example.com! -!one@example.com! -!two@example.com! -EOF + cat >expected <<-\EOF + !nobody@example.com! + !-i! + !nobody@example.com! + !author@example.com! + !one@example.com! + !two@example.com! + EOF ' test_expect_success $PREREQ 'Verify commandline' ' @@ -1192,7 +1192,7 @@ test_expect_success $PREREQ 'To headers from files reset each patch' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >email-using-8bit <email-using-8bit <<\EOF From fe6ecc66ece37198fe5db91fa2fc41d9f4fe5cc4 Mon Sep 17 00:00:00 2001 Message-Id: From: author@example.com @@ -1204,9 +1204,7 @@ EOF ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <expected ' test_expect_success $PREREQ 'ASCII subject is not RFC2047 quoted' ' @@ -1221,11 +1219,11 @@ test_expect_success $PREREQ 'ASCII subject is not RFC2047 quoted' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >content-type-decl <content-type-decl <<-\EOF + MIME-Version: 1.0 + Content-Type: text/plain; charset=UTF-8 + Content-Transfer-Encoding: 8bit + EOF ' test_expect_success $PREREQ 'asks about and fixes 8bit encodings' ' @@ -1265,21 +1263,21 @@ test_expect_success $PREREQ '--8bit-encoding overrides sendemail.8bitEncoding' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >email-using-8bit < -From: author@example.com -Date: Sat, 12 Jun 2010 15:53:58 +0200 -Subject: Dieser Betreff enthält auch einen Umlaut! - -Nothing to see here. -EOF + cat >email-using-8bit <<-\EOF + From fe6ecc66ece37198fe5db91fa2fc41d9f4fe5cc4 Mon Sep 17 00:00:00 2001 + Message-Id: + From: author@example.com + Date: Sat, 12 Jun 2010 15:53:58 +0200 + Subject: Dieser Betreff enthält auch einen Umlaut! + + Nothing to see here. + EOF ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <expected <<-\EOF + Subject: =?UTF-8?q?Dieser=20Betreff=20enth=C3=A4lt=20auch=20einen=20Umlaut!?= + EOF ' test_expect_success $PREREQ '--8bit-encoding also treats subject' ' @@ -1294,16 +1292,16 @@ test_expect_success $PREREQ '--8bit-encoding also treats subject' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >email-using-8bit < -From: A U Thor -Date: Sat, 12 Jun 2010 15:53:58 +0200 -Content-Type: text/plain; charset=UTF-8 -Subject: Nothing to see here. - -Dieser Betreff enthält auch einen Umlaut! -EOF + cat >email-using-8bit <<-\EOF + From fe6ecc66ece37198fe5db91fa2fc41d9f4fe5cc4 Mon Sep 17 00:00:00 2001 + Message-Id: + From: A U Thor + Date: Sat, 12 Jun 2010 15:53:58 +0200 + Content-Type: text/plain; charset=UTF-8 + Subject: Nothing to see here. + + Dieser Betreff enthält auch einen Umlaut! + EOF ' test_expect_success $PREREQ 'sendemail.transferencoding=7bit fails on 8bit data' ' @@ -1343,9 +1341,9 @@ test_expect_success $PREREQ 'sendemail.transferencoding=8bit' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <expected <<-\EOF + Dieser Betreff enth=C3=A4lt auch einen Umlaut! + EOF ' test_expect_success $PREREQ '8-bit and sendemail.transferencoding=quoted-printable' ' @@ -1360,9 +1358,9 @@ test_expect_success $PREREQ '8-bit and sendemail.transferencoding=quoted-printab ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <expected <<-\EOF + RGllc2VyIEJldHJlZmYgZW50aMOkbHQgYXVjaCBlaW5lbiBVbWxhdXQhCg== + EOF ' test_expect_success $PREREQ '8-bit and sendemail.transferencoding=base64' ' @@ -1377,18 +1375,18 @@ test_expect_success $PREREQ '8-bit and sendemail.transferencoding=base64' ' ' test_expect_success $PREREQ 'setup expect' ' -cat >email-using-qp < -From: A U Thor -Date: Sat, 12 Jun 2010 15:53:58 +0200 -MIME-Version: 1.0 -Content-Transfer-Encoding: quoted-printable -Content-Type: text/plain; charset=UTF-8 -Subject: Nothing to see here. + cat >email-using-qp <<-\EOF + From fe6ecc66ece37198fe5db91fa2fc41d9f4fe5cc4 Mon Sep 17 00:00:00 2001 + Message-Id: + From: A U Thor + Date: Sat, 12 Jun 2010 15:53:58 +0200 + MIME-Version: 1.0 + Content-Transfer-Encoding: quoted-printable + Content-Type: text/plain; charset=UTF-8 + Subject: Nothing to see here. -Dieser Betreff enth=C3=A4lt auch einen Umlaut! -EOF + Dieser Betreff enth=C3=A4lt auch einen Umlaut! + EOF ' test_expect_success $PREREQ 'convert from quoted-printable to base64' ' @@ -1416,9 +1414,9 @@ EOF " test_expect_success $PREREQ 'setup expect' ' -cat >expected <expected <<-\EOF + Look, I have a CRLF and an =3D sign!=0D + EOF ' test_expect_success $PREREQ 'CRLF and sendemail.transferencoding=quoted-printable' ' @@ -1433,9 +1431,9 @@ test_expect_success $PREREQ 'CRLF and sendemail.transferencoding=quoted-printabl ' test_expect_success $PREREQ 'setup expect' ' -cat >expected <expected <<-\EOF + TG9vaywgSSBoYXZlIGEgQ1JMRiBhbmQgYW4gPSBzaWduIQ0K + EOF ' test_expect_success $PREREQ 'CRLF and sendemail.transferencoding=base64' '