From: Jayesh Daga via GitGitGadget Date: Thu, 02 Apr 2026 16:36:29 GMT Subject: [PATCH v2] tests: use test_path_is_missing instead of '! test -f' Message-ID: In-Reply-To: From: jayesh0104 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 [jayeshdaga99@gmail.com] --- [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 ## 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 + Signed-off-by: Jayesh Daga [jayeshdaga99@gmail.com] ## 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