Subject: [PATCH v2] tests: use test_path_is_missing instead of '! test -f'

From: "Jayesh Daga via GitGitGadget" <[email-masked]>
Date: Thu, 02 Apr 2026 16:36:29 +0000

From: jayesh0104 <[email-masked]>

Using plain "test" commands in a sequence of checks chained
with `&&` makes it difficult to determine which step failed,
as "test" silently succeeds or fails.

In this case, we expect that `.git/refs/heads/f` no longer
exists. Replacing `! test -f` with `test_path_is_missing`
preserves the expected behavior when the file is absent,
but provides a clearer diagnostic when it unexpectedly
exists, making test failures easier to debug.

Signed-off-by: Jayesh Daga [[email-masked]]
---
    [GSoC] :pack-refs-tests: fix helper usage

    High-level (Intent & Context)
    =============================
    
    The test script t/pack-refs-tests.sh has two issues that prevent it from
    running correctly.
    
    It uses: ! test -f .git/refs/heads/f
    
    This is inconsistent with the Git test framework, where helper functions
    such as test_path_is_missing should be used instead of raw test checks.

    Low-level (Implementation & Justification)
    ==========================================
    
    Without sourcing test-lib.sh, the test framework is not initialized,
    leading to errors such as: test_expect_success: not found
    
    Replaced raw file check with the appropriate helper:
    
    - ! test -f .git/refs/heads/f
    + test_path_is_missing .git/refs/heads/f

    Summary
    =======
    
    Replace test -f with test_path_is_missing

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2248%2Fjayesh0104%2Ffix-pack-refs-test-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2248/jayesh0104/fix-pack-refs-test-v2
Pull-Request: https://github.com/git/git/pull/2248

Range-diff vs v1:

 1:  b6b9d11ed8 ! 1:  82c31d9257 t/pack-refs-tests: drop '-f' from test_path_is_missing
     @@ Metadata
      Author: jayesh0104 <[email-masked]>
      
       ## Commit message ##
     -    t/pack-refs-tests: drop '-f' from test_path_is_missing
     +    tests: use test_path_is_missing instead of '! test -f'
      
     -    test_path_is_missing expects exactly one argument: the path to
     -    check for absence. Passing '-f' is incorrect and results in
     -    "bug in the test script: 1 param" during test execution.
     +    Using plain "test" commands in a sequence of checks chained
     +    with `&&` makes it difficult to determine which step failed,
     +    as "test" silently succeeds or fails.
      
     -    The '-f' flag appears to have been carried over from the
     -    equivalent 'test -f' usage, but test_path_is_missing does not
     -    accept such flags.
     +    In this case, we expect that `.git/refs/heads/f` no longer
     +    exists. Replacing `! test -f` with `test_path_is_missing`
     +    preserves the expected behavior when the file is absent,
     +    but provides a clearer diagnostic when it unexpectedly
     +    exists, making test failures easier to debug.
      
     -    Remove the extraneous '-f' to use the helper correctly and
     -    restore proper test behavior.
     -
     -    Signed-off-by: Jayesh Daga <[email-masked]>
     +    Signed-off-by: Jayesh Daga [[email-masked]]
      
       ## t/pack-refs-tests.sh ##
      @@ t/pack-refs-tests.sh: test_expect_success 'see if a branch still exists after git ${pack_refs} --prune

 t/pack-refs-tests.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/pack-refs-tests.sh b/t/pack-refs-tests.sh
index 2fdaccb6c7..4a85d96c6b 100644
--- a/t/pack-refs-tests.sh
+++ b/t/pack-refs-tests.sh
@@ -61,7 +61,7 @@ test_expect_success 'see if a branch still exists after git ${pack_refs} --prune
 test_expect_success 'see if git ${pack_refs} --prune remove ref files' '
 	git branch f &&
 	git ${pack_refs} --all --prune &&
-	! test -f .git/refs/heads/f
+	test_path_is_missing .git/refs/heads/f
 '
 
 test_expect_success 'see if git ${pack_refs} --prune removes empty dirs' '

base-commit: 6e8d538aab8fe4dd07ba9fb87b5c7edcfa5706ad
-- 
gitgitgadget