{"thread":{"id":"57440","subject":"[PATCH 0/2] hook tests: pre-push test style & test accurace","startedAt":"2022-02-18T20:53:08Z","lastAt":"2022-02-19T04:16:10Z","messageCount":4,"participants":["Ævar Arnfjörð Bjarmason","Taylor Blau"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"448807","messageId":"cover-0.2-00000000000-20220218T204719Z-avarab@gmail.com","threadId":"57440","inReplyTo":null,"subject":"[PATCH 0/2] hook tests: pre-push test style & test accurace","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2022-02-18T20:52:57Z","receivedAt":"2022-02-18T20:53:08Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"A trivial topic to fix a blind spot in the test coverage for pre-push\nhooks, and to fix miscellaneous issues in that test while we're at it.\n\nThese patches have been on-list before as part of a much bigger topic\nsubmission. I opted to split these out to make the continuation of\nthese larger hook topics easier to digest.\n\nThe last iteration was at [1] and [2]. As the range-diff to those\npatches below shows there's been no change since then.\n\n1. https://lore.kernel.org/git/patch-v5-28.36-957691f0b6d-20210902T125111Z-avarab@gmail.com\n2. https://lore.kernel.org/git/patch-v5-29.36-88fe2621549-20210902T125111Z-avarab@gmail.com\n\nÆvar Arnfjörð Bjarmason (2):\n  hook tests: test for exact \"pre-push\" hook input\n  hook tests: use a modern style for \"pre-push\" tests\n\n t/t5571-pre-push-hook.sh | 94 ++++++++++++++++++++++------------------\n 1 file changed, 53 insertions(+), 41 deletions(-)\n\nRange-diff:\n1:  957691f0b6d = 1:  7cf279205eb hook tests: test for exact \"pre-push\" hook input\n2:  88fe2621549 = 2:  8035594be8b hook tests: use a modern style for \"pre-push\" tests\n-- \n2.35.1.1031.g277d4562d2e\n\n"},{"id":"448808","messageId":"patch-1.2-7cf279205eb-20220218T204719Z-avarab@gmail.com","threadId":"57440","inReplyTo":"cover-0.2-00000000000-20220218T204719Z-avarab@gmail.com","subject":"[PATCH 1/2] hook tests: test for exact \"pre-push\" hook input","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2022-02-18T20:52:58Z","receivedAt":"2022-02-18T20:53:09Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Extend the tests added in ec55559f937 (push: Add support for pre-push\nhooks, 2013-01-13) to exhaustively test for the exact input we're\nexpecting. This ensures that we e.g. don't miss a trailing newline.\n\nAppending to a file called \"actual\" is the established convention in\nthis test for hooks, see the rest of the tests added in\nec55559f937 (push: Add support for pre-push hooks, 2013-01-13). Let's\nfollow that convention here.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n t/t5571-pre-push-hook.sh | 23 ++++++++++++++++++-----\n 1 file changed, 18 insertions(+), 5 deletions(-)\n\ndiff --git a/t/t5571-pre-push-hook.sh b/t/t5571-pre-push-hook.sh\nindex 660f876eec2..47f6eb509d6 100755\n--- a/t/t5571-pre-push-hook.sh\n+++ b/t/t5571-pre-push-hook.sh\n@@ -11,7 +11,7 @@ HOOKDIR=\"$(git rev-parse --git-dir)/hooks\"\n HOOK=\"$HOOKDIR/pre-push\"\n mkdir -p \"$HOOKDIR\"\n write_script \"$HOOK\" <<EOF\n-cat >/dev/null\n+cat >actual\n exit 0\n EOF\n \n@@ -20,10 +20,16 @@ test_expect_success 'setup' '\n \tgit init --bare repo1 &&\n \tgit remote add parent1 repo1 &&\n \ttest_commit one &&\n-\tgit push parent1 HEAD:foreign\n+\tcat >expect <<-EOF &&\n+\tHEAD $(git rev-parse HEAD) refs/heads/foreign $(test_oid zero)\n+\tEOF\n+\n+\ttest_when_finished \"rm actual\" &&\n+\tgit push parent1 HEAD:foreign &&\n+\ttest_cmp expect actual\n '\n write_script \"$HOOK\" <<EOF\n-cat >/dev/null\n+cat >actual\n exit 1\n EOF\n \n@@ -32,11 +38,18 @@ export COMMIT1\n \n test_expect_success 'push with failing hook' '\n \ttest_commit two &&\n-\ttest_must_fail git push parent1 HEAD\n+\tcat >expect <<-EOF &&\n+\tHEAD $(git rev-parse HEAD) refs/heads/main $(test_oid zero)\n+\tEOF\n+\n+\ttest_when_finished \"rm actual\" &&\n+\ttest_must_fail git push parent1 HEAD &&\n+\ttest_cmp expect actual\n '\n \n test_expect_success '--no-verify bypasses hook' '\n-\tgit push --no-verify parent1 HEAD\n+\tgit push --no-verify parent1 HEAD &&\n+\ttest_path_is_missing actual\n '\n \n COMMIT2=\"$(git rev-parse HEAD)\"\n-- \n2.35.1.1031.g277d4562d2e\n\n"},{"id":"448809","messageId":"patch-2.2-8035594be8b-20220218T204719Z-avarab@gmail.com","threadId":"57440","inReplyTo":"cover-0.2-00000000000-20220218T204719Z-avarab@gmail.com","subject":"[PATCH 2/2] hook tests: use a modern style for \"pre-push\" tests","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2022-02-18T20:52:59Z","receivedAt":"2022-02-18T20:53:14Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Indent the here-docs and use \"test_cmp\" instead of \"diff\" in tests\nadded in ec55559f937 (push: Add support for pre-push hooks,\n2013-01-13). Let's also use the more typical \"expect\" instead of\n\"expected\" to be consistent with the rest of the test file.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n t/t5571-pre-push-hook.sh | 71 ++++++++++++++++++++--------------------\n 1 file changed, 35 insertions(+), 36 deletions(-)\n\ndiff --git a/t/t5571-pre-push-hook.sh b/t/t5571-pre-push-hook.sh\nindex 47f6eb509d6..96d6ecc0af7 100755\n--- a/t/t5571-pre-push-hook.sh\n+++ b/t/t5571-pre-push-hook.sh\n@@ -61,15 +61,15 @@ echo \"$2\" >>actual\n cat >>actual\n EOF\n \n-cat >expected <<EOF\n-parent1\n-repo1\n-refs/heads/main $COMMIT2 refs/heads/foreign $COMMIT1\n-EOF\n-\n test_expect_success 'push with hook' '\n+\tcat >expect <<-EOF &&\n+\tparent1\n+\trepo1\n+\trefs/heads/main $COMMIT2 refs/heads/foreign $COMMIT1\n+\tEOF\n+\n \tgit push parent1 main:foreign &&\n-\tdiff expected actual\n+\ttest_cmp expect actual\n '\n \n test_expect_success 'add a branch' '\n@@ -80,49 +80,48 @@ test_expect_success 'add a branch' '\n COMMIT3=\"$(git rev-parse HEAD)\"\n export COMMIT3\n \n-cat >expected <<EOF\n-parent1\n-repo1\n-refs/heads/other $COMMIT3 refs/heads/foreign $COMMIT2\n-EOF\n-\n test_expect_success 'push to default' '\n+\tcat >expect <<-EOF &&\n+\tparent1\n+\trepo1\n+\trefs/heads/other $COMMIT3 refs/heads/foreign $COMMIT2\n+\tEOF\n \tgit push &&\n-\tdiff expected actual\n+\ttest_cmp expect actual\n '\n \n-cat >expected <<EOF\n-parent1\n-repo1\n-refs/tags/one $COMMIT1 refs/tags/tag1 $ZERO_OID\n-HEAD~ $COMMIT2 refs/heads/prev $ZERO_OID\n-EOF\n-\n test_expect_success 'push non-branches' '\n+\tcat >expect <<-EOF &&\n+\tparent1\n+\trepo1\n+\trefs/tags/one $COMMIT1 refs/tags/tag1 $ZERO_OID\n+\tHEAD~ $COMMIT2 refs/heads/prev $ZERO_OID\n+\tEOF\n+\n \tgit push parent1 one:tag1 HEAD~:refs/heads/prev &&\n-\tdiff expected actual\n+\ttest_cmp expect actual\n '\n \n-cat >expected <<EOF\n-parent1\n-repo1\n-(delete) $ZERO_OID refs/heads/prev $COMMIT2\n-EOF\n-\n test_expect_success 'push delete' '\n+\tcat >expect <<-EOF &&\n+\tparent1\n+\trepo1\n+\t(delete) $ZERO_OID refs/heads/prev $COMMIT2\n+\tEOF\n+\n \tgit push parent1 :prev &&\n-\tdiff expected actual\n+\ttest_cmp expect actual\n '\n \n-cat >expected <<EOF\n-repo1\n-repo1\n-HEAD $COMMIT3 refs/heads/other $ZERO_OID\n-EOF\n-\n test_expect_success 'push to URL' '\n+\tcat >expect <<-EOF &&\n+\trepo1\n+\trepo1\n+\tHEAD $COMMIT3 refs/heads/other $ZERO_OID\n+\tEOF\n+\n \tgit push repo1 HEAD &&\n-\tdiff expected actual\n+\ttest_cmp expect actual\n '\n \n test_expect_success 'set up many-ref tests' '\n-- \n2.35.1.1031.g277d4562d2e\n\n"},{"id":"448834","messageId":"YhBvBscyDAfndvSB@nand.local","threadId":"57440","inReplyTo":"cover-0.2-00000000000-20220218T204719Z-avarab@gmail.com","subject":"Re: [PATCH 0/2] hook tests: pre-push test style & test accurace","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2022-02-19T04:16:06Z","receivedAt":"2022-02-19T04:16:10Z","isPatch":true,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Fri, Feb 18, 2022 at 09:52:57PM +0100, Ævar Arnfjörð Bjarmason wrote:\n> A trivial topic to fix a blind spot in the test coverage for pre-push\n> hooks, and to fix miscellaneous issues in that test while we're at it.\n\nIndeed; both look good to me.\n\nThanks,\nTaylor\n"}]}