* [GSOC PATCH] t2003: modernize test path helpers
@ 2026-02-08 20:28 Burak Kaan Karaçay
2026-02-09 8:35 ` Junio C Hamano
0 siblings, 1 reply; 2+ messages in thread
From: Burak Kaan Karaçay @ 2026-02-08 20:28 UTC (permalink / raw)
To: git; +Cc: christian.couder, gitster, Burak Kaan Karaçay
The old style 'test -f' and 'test -d' checks are silent on failure,
which makes debugging difficult.
Replace them with the 'test_path_is_*' helpers which provide verbose
error messages when a test fails.
Signed-off-by: Burak Kaan Karaçay <bkkaracay@gmail.com>
---
t/t2003-checkout-cache-mkdir.sh | 49 ++++++++++++++++-----------------
1 file changed, 24 insertions(+), 25 deletions(-)
diff --git a/t/t2003-checkout-cache-mkdir.sh b/t/t2003-checkout-cache-mkdir.sh
index ff163cf675..5844389c88 100755
--- a/t/t2003-checkout-cache-mkdir.sh
+++ b/t/t2003-checkout-cache-mkdir.sh
@@ -24,27 +24,27 @@ test_expect_success SYMLINKS 'have symlink in place where dir is expected.' '
mkdir path2 &&
ln -s path2 path1 &&
git checkout-index -f -a &&
- test ! -h path1 && test -d path1 &&
- test -f path1/file1 && test ! -f path2/file1
+ test_path_is_dir_not_symlink path1 &&
+ test_path_is_file path1/file1 && test_path_is_missing path2/file1
'
test_expect_success 'use --prefix=path2/' '
rm -fr path0 path1 path2 &&
mkdir path2 &&
git checkout-index --prefix=path2/ -f -a &&
- test -f path2/path0 &&
- test -f path2/path1/file1 &&
- test ! -f path0 &&
- test ! -f path1/file1
+ test_path_is_file path2/path0 &&
+ test_path_is_file path2/path1/file1 &&
+ test_path_is_missing path0 &&
+ test_path_is_missing path1/file1
'
test_expect_success 'use --prefix=tmp-' '
rm -fr path0 path1 path2 tmp* &&
git checkout-index --prefix=tmp- -f -a &&
- test -f tmp-path0 &&
- test -f tmp-path1/file1 &&
- test ! -f path0 &&
- test ! -f path1/file1
+ test_path_is_file tmp-path0 &&
+ test_path_is_file tmp-path1/file1 &&
+ test_path_is_missing path0 &&
+ test_path_is_missing path1/file1
'
test_expect_success 'use --prefix=tmp- but with a conflicting file and dir' '
@@ -52,10 +52,10 @@ test_expect_success 'use --prefix=tmp- but with a conflicting file and dir' '
echo nitfol >tmp-path1 &&
mkdir tmp-path0 &&
git checkout-index --prefix=tmp- -f -a &&
- test -f tmp-path0 &&
- test -f tmp-path1/file1 &&
- test ! -f path0 &&
- test ! -f path1/file1
+ test_path_is_file tmp-path0 &&
+ test_path_is_file tmp-path1/file1 &&
+ test_path_is_missing path0 &&
+ test_path_is_missing path1/file1
'
test_expect_success SYMLINKS 'use --prefix=tmp/orary/ where tmp is a symlink' '
@@ -63,10 +63,10 @@ test_expect_success SYMLINKS 'use --prefix=tmp/orary/ where tmp is a symlink' '
mkdir tmp1 tmp1/orary &&
ln -s tmp1 tmp &&
git checkout-index --prefix=tmp/orary/ -f -a &&
- test -d tmp1/orary &&
- test -f tmp1/orary/path0 &&
- test -f tmp1/orary/path1/file1 &&
- test -h tmp
+ test_path_is_dir tmp1/orary &&
+ test_path_is_file tmp1/orary/path0 &&
+ test_path_is_file tmp1/orary/path1/file1 &&
+ test_path_is_symlink tmp
'
test_expect_success SYMLINKS 'use --prefix=tmp/orary- where tmp is a symlink' '
@@ -74,9 +74,9 @@ test_expect_success SYMLINKS 'use --prefix=tmp/orary- where tmp is a symlink' '
mkdir tmp1 &&
ln -s tmp1 tmp &&
git checkout-index --prefix=tmp/orary- -f -a &&
- test -f tmp1/orary-path0 &&
- test -f tmp1/orary-path1/file1 &&
- test -h tmp
+ test_path_is_file tmp1/orary-path0 &&
+ test_path_is_file tmp1/orary-path1/file1 &&
+ test_path_is_symlink tmp
'
test_expect_success SYMLINKS 'use --prefix=tmp- where tmp-path1 is a symlink' '
@@ -84,10 +84,9 @@ test_expect_success SYMLINKS 'use --prefix=tmp- where tmp-path1 is a symlink' '
mkdir tmp1 &&
ln -s tmp1 tmp-path1 &&
git checkout-index --prefix=tmp- -f -a &&
- test -f tmp-path0 &&
- test ! -h tmp-path1 &&
- test -d tmp-path1 &&
- test -f tmp-path1/file1
+ test_path_is_file tmp-path0 &&
+ test_path_is_dir_not_symlink tmp-path1 &&
+ test_path_is_file tmp-path1/file1
'
test_expect_success 'apply filter from working tree .gitattributes with --prefix' '
--
2.52.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [GSOC PATCH] t2003: modernize test path helpers
2026-02-08 20:28 [GSOC PATCH] t2003: modernize test path helpers Burak Kaan Karaçay
@ 2026-02-09 8:35 ` Junio C Hamano
0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2026-02-09 8:35 UTC (permalink / raw)
To: Burak Kaan Karaçay; +Cc: git, christian.couder
Burak Kaan Karaçay <bkkaracay@gmail.com> writes:
> Subject: Re: [GSOC PATCH] t2003: modernize test path helpers
What we see in the patch are more uses of test path helpers, and
nothing in these path helpers are changed at all.
Subject: t2003: modernize path existence checks using test helpers
or something like that, perhaps.
> - test ! -h path1 && test -d path1 &&
> - test -f path1/file1 && test ! -f path2/file1
> + test_path_is_dir_not_symlink path1 &&
> + test_path_is_file path1/file1 && test_path_is_missing path2/file1
The above is a faithful rewrite, but as a separate patch to
follow-up this file, the last line should be split into two, having
one command on each line.
All changes in this patch looked good. Will queue.
Thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-09 8:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-08 20:28 [GSOC PATCH] t2003: modernize test path helpers Burak Kaan Karaçay
2026-02-09 8:35 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox