threads / patch / 65244

v2t/pack-refs-tests: use test_path_is_missing

Subject: [PATCH v2] t/pack-refs-tests: use test_path_is_missing

## tl;dr

2 messages between Mar 14, 2026 and Mar 14, 2026. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Ritesh Singh Jadoun· Mar 14, 2026, 06:05 UTC · lore

The pack-refs tests currently use raw 'test -f' checks with negation. Update them to use Git's standard helper function test_path_is_missing for consistency and clearer failure reporting. This aligns with CodingGuidelines and makes test failures more obvious.

Signed-off-by: Ritesh Singh Jadoun <riteshjd75@gmail.com>
---
 t/pack-refs-tests.sh | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)
Show changes to t/pack-refs-tests.sh +14 −14
diff --git a/t/pack-refs-tests.sh b/t/pack-refs-tests.sh
index 2fdaccb6c7..3cc4906f05 100644
--- a/t/pack-refs-tests.sh
+++ b/t/pack-refs-tests.sh
@@ -61,13 +61,13 @@ 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' '
 	git branch r/s/t &&
 	git ${pack_refs} --all --prune &&
-	! test -e .git/refs/heads/r
+	! test_path_exists .git/refs/heads/r
 '
 
 test_expect_success 'git branch g should work when git branch g/h has been deleted' '
@@ -111,43 +111,43 @@ test_expect_success 'test excluded refs are not packed' '
 	git branch dont_pack2 &&
 	git branch pack_this &&
 	git ${pack_refs} --all --exclude "refs/heads/dont_pack*" &&
-	test -f .git/refs/heads/dont_pack1 &&
-	test -f .git/refs/heads/dont_pack2 &&
-	! test -f .git/refs/heads/pack_this'
+	test_path_is_file .git/refs/heads/dont_pack1 &&
+	test_path_is_file .git/refs/heads/dont_pack2 &&
+	test_path_is_missing .git/refs/heads/pack_this'
 
 test_expect_success 'test --no-exclude refs clears excluded refs' '
 	git branch dont_pack3 &&
 	git branch dont_pack4 &&
 	git ${pack_refs} --all --exclude "refs/heads/dont_pack*" --no-exclude &&
-	! test -f .git/refs/heads/dont_pack3 &&
-	! test -f .git/refs/heads/dont_pack4'
+	test_path_is_missing .git/refs/heads/dont_pack3 &&
+	test_path_is_missing .git/refs/heads/dont_pack4'
 
 test_expect_success 'test only included refs are packed' '
 	git branch pack_this1 &&
 	git branch pack_this2 &&
 	git tag dont_pack5 &&
 	git ${pack_refs} --include "refs/heads/pack_this*" &&
-	test -f .git/refs/tags/dont_pack5 &&
-	! test -f .git/refs/heads/pack_this1 &&
-	! test -f .git/refs/heads/pack_this2'
+	test_path_is_file .git/refs/tags/dont_pack5 &&
+	test_path_is_missing .git/refs/heads/pack_this1 &&
+	test_path_is_missing .git/refs/heads/pack_this2'
 
 test_expect_success 'test --no-include refs clears included refs' '
 	git branch pack1 &&
 	git branch pack2 &&
 	git ${pack_refs} --include "refs/heads/pack*" --no-include &&
-	test -f .git/refs/heads/pack1 &&
-	test -f .git/refs/heads/pack2'
+	test_path_is_file .git/refs/heads/pack1 &&
+	test_path_is_file .git/refs/heads/pack2'
 
 test_expect_success 'test --exclude takes precedence over --include' '
 	git branch dont_pack5 &&
 	git ${pack_refs} --include "refs/heads/pack*" --exclude "refs/heads/pack*" &&
-	test -f .git/refs/heads/dont_pack5'
+	test_path_is_file .git/refs/heads/dont_pack5'
 
 test_expect_success 'see if up-to-date packed refs are preserved' '
 	git branch q &&
 	git ${pack_refs} --all --prune &&
 	git update-ref refs/heads/q refs/heads/q &&
-	! test -f .git/refs/heads/q
+	test_path_is_missing .git/refs/heads/q
 '
 
 test_expect_success 'pack, prune and repack' '
-- 
2.46.0.windows.1
Junio C Hamano· Mar 14, 2026, 16:39 UTC · re: Ritesh Singh Jadoun · lore

Re: [PATCH v2] t/pack-refs-tests: use test_path_is_missing

Ritesh Singh Jadoun <riteshjd75@gmail.com> writes:
Show 21 quoted lines
> The pack-refs tests currently use raw 'test -f' checks with negation.
> Update them to use Git's standard helper function test_path_is_missing
> for consistency and clearer failure reporting. This aligns with
> CodingGuidelines and makes test failures more obvious.
>
> Signed-off-by: Ritesh Singh Jadoun <riteshjd75@gmail.com>
> ---
>  t/pack-refs-tests.sh | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/t/pack-refs-tests.sh b/t/pack-refs-tests.sh
> index 2fdaccb6c7..3cc4906f05 100644
> --- a/t/pack-refs-tests.sh
> +++ b/t/pack-refs-tests.sh
> @@ -61,13 +61,13 @@ 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
>  '
Good.
Show 6 quoted lines
>  test_expect_success 'see if git ${pack_refs} --prune removes empty dirs' '
>  	git branch r/s/t &&
>  	git ${pack_refs} --all --prune &&
> -	! test -e .git/refs/heads/r
> +	! test_path_exists .git/refs/heads/r
>  '

Questionable. When do we want to loudly tell the human about an unsatisfied expectation? We expect .git/refs/heads/r not to exist, so we want to use "test_path_is_missing", no?

Please do double check the remainder of the patch, although from a cursory look I think you got them all correctly.

THanks.
Show 57 quoted lines
>  test_expect_success 'git branch g should work when git branch g/h has been deleted' '
> @@ -111,43 +111,43 @@ test_expect_success 'test excluded refs are not packed' '
>  	git branch dont_pack2 &&
>  	git branch pack_this &&
>  	git ${pack_refs} --all --exclude "refs/heads/dont_pack*" &&
> -	test -f .git/refs/heads/dont_pack1 &&
> -	test -f .git/refs/heads/dont_pack2 &&
> -	! test -f .git/refs/heads/pack_this'
> +	test_path_is_file .git/refs/heads/dont_pack1 &&
> +	test_path_is_file .git/refs/heads/dont_pack2 &&
> +	test_path_is_missing .git/refs/heads/pack_this'
>  
>  test_expect_success 'test --no-exclude refs clears excluded refs' '
>  	git branch dont_pack3 &&
>  	git branch dont_pack4 &&
>  	git ${pack_refs} --all --exclude "refs/heads/dont_pack*" --no-exclude &&
> -	! test -f .git/refs/heads/dont_pack3 &&
> -	! test -f .git/refs/heads/dont_pack4'
> +	test_path_is_missing .git/refs/heads/dont_pack3 &&
> +	test_path_is_missing .git/refs/heads/dont_pack4'
>  
>  test_expect_success 'test only included refs are packed' '
>  	git branch pack_this1 &&
>  	git branch pack_this2 &&
>  	git tag dont_pack5 &&
>  	git ${pack_refs} --include "refs/heads/pack_this*" &&
> -	test -f .git/refs/tags/dont_pack5 &&
> -	! test -f .git/refs/heads/pack_this1 &&
> -	! test -f .git/refs/heads/pack_this2'
> +	test_path_is_file .git/refs/tags/dont_pack5 &&
> +	test_path_is_missing .git/refs/heads/pack_this1 &&
> +	test_path_is_missing .git/refs/heads/pack_this2'
>  
>  test_expect_success 'test --no-include refs clears included refs' '
>  	git branch pack1 &&
>  	git branch pack2 &&
>  	git ${pack_refs} --include "refs/heads/pack*" --no-include &&
> -	test -f .git/refs/heads/pack1 &&
> -	test -f .git/refs/heads/pack2'
> +	test_path_is_file .git/refs/heads/pack1 &&
> +	test_path_is_file .git/refs/heads/pack2'
>  
>  test_expect_success 'test --exclude takes precedence over --include' '
>  	git branch dont_pack5 &&
>  	git ${pack_refs} --include "refs/heads/pack*" --exclude "refs/heads/pack*" &&
> -	test -f .git/refs/heads/dont_pack5'
> +	test_path_is_file .git/refs/heads/dont_pack5'
>  
>  test_expect_success 'see if up-to-date packed refs are preserved' '
>  	git branch q &&
>  	git ${pack_refs} --all --prune &&
>  	git update-ref refs/heads/q refs/heads/q &&
> -	! test -f .git/refs/heads/q
> +	test_path_is_missing .git/refs/heads/q
>  '
>  
>  test_expect_success 'pack, prune and repack' '

← back to recent threads