All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Labnan via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
	Labnan <khalid.masum.92@gmail.com>,
	Khalid Masum <khalid.masum.92@gmail.com>
Subject: [PATCH v2] t3501: remove test -f and stop ignoring git <cmd> exit code
Date: Fri, 22 Apr 2022 11:26:27 +0000	[thread overview]
Message-ID: <pull.1195.v2.git.1650626787628.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1195.git.1648676585765.gitgitgadget@gmail.com>

From: Khalid Masum <khalid.masum.92@gmail.com>

In the test 'cherry-pick after renaming branch', stop checking for
the presence of a file (opos) because we are going to "grep" in it in
the same test and the lack of it will be noticed as a failure anyway.

In the test 'revert after renaming branch', instead of allowing any
random contents as long as a known phrase is not there in it, we can
expect the exact outcome---after the successful revert of "added", the
contents of file "spoo" should become identical to what was in file
"oops" in the "initial" commit. This test also contains 'test -f' that
verifies presence of a file, but we have a helper function to do the same
thing. Replace it with appropriate helper function 'test_path_is_file'
for better readability and better error messages.

In both tests, we will not notice when "git rev-parse" starts segfaulting
without emitting any output.  The 'test' command will end up being just
"test =", which yields success. Use the 'test_cmp_rev' helper to make
sure we will notice such a breakage.

Signed-off-by: Khalid Masum <khalid.masum.92@gmail.com>
---
    t3501: remove redundant test -f and use of git rev-parse
    
    Two test -f are present in t3501. They can be replaced with appropriate
    helper function: test_path_is_file. Which makes the script more readable
    and gives better error messages.
    
    Signed-off-by: Labnann khalid.masum.92@gmail.com

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1195%2FLabnann%2Ft3501-helper-functions-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1195/Labnann/t3501-helper-functions-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1195

Range-diff vs v1:

 1:  8b7d38a66f8 ! 1:  1090429b865 t3501: use test_path_is_* functions
     @@
       ## Metadata ##
     -Author: Labnann <khalid.masum.92@gmail.com>
     +Author: Khalid Masum <khalid.masum.92@gmail.com>
      
       ## Commit message ##
     -    t3501: use test_path_is_* functions
     +    t3501: remove test -f and stop ignoring git <cmd> exit code
      
     -    Two test -f are present in t3501. They can be replaced with appropriate
     -    helper function: test_path_is_file
     +    In the test 'cherry-pick after renaming branch', stop checking for
     +    the presence of a file (opos) because we are going to "grep" in it in
     +    the same test and the lack of it will be noticed as a failure anyway.
      
     -    Signed-off-by: Labnann <khalid.masum.92@gmail.com>
     +    In the test 'revert after renaming branch', instead of allowing any
     +    random contents as long as a known phrase is not there in it, we can
     +    expect the exact outcome---after the successful revert of "added", the
     +    contents of file "spoo" should become identical to what was in file
     +    "oops" in the "initial" commit. This test also contains 'test -f' that
     +    verifies presence of a file, but we have a helper function to do the same
     +    thing. Replace it with appropriate helper function 'test_path_is_file'
     +    for better readability and better error messages.
     +
     +    In both tests, we will not notice when "git rev-parse" starts segfaulting
     +    without emitting any output.  The 'test' command will end up being just
     +    "test =", which yields success. Use the 'test_cmp_rev' helper to make
     +    sure we will notice such a breakage.
     +
     +    Signed-off-by: Khalid Masum <khalid.masum.92@gmail.com>
      
       ## t/t3501-revert-cherry-pick.sh ##
      @@ t/t3501-revert-cherry-pick.sh: test_expect_success 'cherry-pick after renaming branch' '
     + 
       	git checkout rename2 &&
       	git cherry-pick added &&
     - 	test $(git rev-parse HEAD^) = $(git rev-parse rename2) &&
     +-	test $(git rev-parse HEAD^) = $(git rev-parse rename2) &&
      -	test -f opos &&
     -+	test_path_is_file opos &&
     ++	test_cmp_rev rename2 HEAD^ &&
       	grep "Add extra line at the end" opos &&
       	git reflog -1 | grep cherry-pick
       
      @@ t/t3501-revert-cherry-pick.sh: test_expect_success 'revert after renaming branch' '
     + 
       	git checkout rename1 &&
       	git revert added &&
     - 	test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
     +-	test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
      -	test -f spoo &&
     +-	! grep "Add extra line at the end" spoo &&
     ++	test_cmp_rev rename1 HEAD^ &&
      +	test_path_is_file spoo &&
     - 	! grep "Add extra line at the end" spoo &&
     ++	test_cmp_rev initial:oops HEAD:spoo &&
       	git reflog -1 | grep revert
       
     + '


 t/t3501-revert-cherry-pick.sh | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index 8617efaaf1e..9eb19204ac7 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -66,8 +66,7 @@ test_expect_success 'cherry-pick after renaming branch' '
 
 	git checkout rename2 &&
 	git cherry-pick added &&
-	test $(git rev-parse HEAD^) = $(git rev-parse rename2) &&
-	test -f opos &&
+	test_cmp_rev rename2 HEAD^ &&
 	grep "Add extra line at the end" opos &&
 	git reflog -1 | grep cherry-pick
 
@@ -77,9 +76,9 @@ test_expect_success 'revert after renaming branch' '
 
 	git checkout rename1 &&
 	git revert added &&
-	test $(git rev-parse HEAD^) = $(git rev-parse rename1) &&
-	test -f spoo &&
-	! grep "Add extra line at the end" spoo &&
+	test_cmp_rev rename1 HEAD^ &&
+	test_path_is_file spoo &&
+	test_cmp_rev initial:oops HEAD:spoo &&
 	git reflog -1 | grep revert
 
 '

base-commit: 805e0a68082a217f0112db9ee86a022227a9c81b
-- 
gitgitgadget

      parent reply	other threads:[~2022-04-22 11:26 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-30 21:43 [PATCH] t3501: use test_path_is_* functions Labnan via GitGitGadget
2022-03-30 22:11 ` Ævar Arnfjörð Bjarmason
2022-03-31 19:15   ` [PATCH v2 0/3][GSoC] t3501: remove test and test -f Labnann
2022-03-31 19:15     ` [PATCH v2 1/3] t3501: use test_path_is_* functions Labnann
2022-03-31 19:15     ` [PATCH v2 2/3] t3501: don't ignore "git <cmd>" exit code Labnann
2022-04-01 18:10       ` Junio C Hamano
2022-03-31 19:15     ` [PATCH v2 3/3] t3501: test cherry-pick revert with oids Labnann
2022-04-01 18:24       ` Junio C Hamano
2022-04-02 19:24     ` [PATCH v3 0/1][GSoC] t3501: remove redundant file checking and stop ignoring git <cmd> exit code Labnann
2022-04-02 19:24       ` [PATCH v3 1/1] t3501: remove redundant file check " Labnann
2022-04-04 15:54         ` Junio C Hamano
2022-04-05 13:47       ` [PATCH v4 0/1][GSoC] t3501: remove test -f " Khalid Masum
2022-04-05 13:47         ` [PATCH v4 1/1] " Khalid Masum
2022-04-05 15:06       ` [PATCH v4 0/1][GSoC] " Khalid Masum
2022-04-05 15:06         ` [PATCH v4 1/1] " Khalid Masum
2022-04-22 11:26 ` Labnan via GitGitGadget [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pull.1195.v2.git.1650626787628.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=khalid.masum.92@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.