* [PATCH] t9811: replace 'test -f' and '! test -f' with 'test_path_*'
@ 2026-07-02 14:07 Marcelo Machado Lage
2026-07-03 8:19 ` Patrick Steinhardt
0 siblings, 1 reply; 4+ messages in thread
From: Marcelo Machado Lage @ 2026-07-02 14:07 UTC (permalink / raw)
To: git; +Cc: Marcelo Machado Lage, Vinicius Lira de Freitas, Junio C Hamano
Replace the basic shell commands 'test -f', with more modern test
helpers 'test_path_is_file' and 'test_path_is_missing'.
Co-authored-by: Vinicius Lira de Freitas <vinilira@usp.br>
Signed-off-by: Vinicius Lira de Freitas <vinilira@usp.br>
Signed-off-by: Marcelo Machado Lage <marcelomlage@usp.br>
---
t/t9811-git-p4-label-import.sh | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
index 7614dfbd95..93d6b4c479 100755
--- a/t/t9811-git-p4-label-import.sh
+++ b/t/t9811-git-p4-label-import.sh
@@ -62,9 +62,9 @@ test_expect_success 'basic p4 labels' '
cd main &&
git checkout TAG_F1_ONLY &&
- ! test -f f2 &&
+ test_path_is_missing f2 &&
git checkout TAG_WITH\$_SHELL_CHAR &&
- test -f f1 && test -f f2 && test -f file_with_\$metachar &&
+ test_path_is_file f1 && test_path_is_file f2 && test_path_is_file file_with_\$metachar &&
git show TAG_LONG_LABEL | grep -q "A Label second line"
)
@@ -102,11 +102,11 @@ test_expect_success 'two labels on the same changelist' '
git checkout TAG_F1_1 &&
ls &&
- test -f f1 &&
+ test_path_is_file f1 &&
git checkout TAG_F1_2 &&
ls &&
- test -f f1
+ test_path_is_file f1
)
'
@@ -135,9 +135,9 @@ test_expect_success 'export git tags to p4' '
p4 labels ... | grep LIGHTWEIGHT_TAG &&
p4 label -o GIT_TAG_1 | grep "tag created in git:xyzzy" &&
p4 sync ...@GIT_TAG_1 &&
- ! test -f main/f10 &&
+ test_path_is_missing main/f10 &&
p4 sync ...@GIT_TAG_2 &&
- test -f main/f10
+ test_path_is_file main/f10
)
'
@@ -168,9 +168,9 @@ test_expect_success 'export git tags to p4 with deletion' '
cd "$cli" &&
p4 sync ... &&
p4 sync ...@GIT_TAG_ON_DELETED &&
- test -f main/deleted_file &&
+ test_path_is_file main/deleted_file &&
p4 sync ...@GIT_TAG_AFTER_DELETION &&
- ! test -f main/deleted_file &&
+ test_path_is_missing main/deleted_file &&
echo "checking label contents" &&
p4 label -o GIT_TAG_ON_DELETED | grep "tag on deleted file"
)
base-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] t9811: replace 'test -f' and '! test -f' with 'test_path_*'
2026-07-02 14:07 [PATCH] t9811: replace 'test -f' and '! test -f' with 'test_path_*' Marcelo Machado Lage
@ 2026-07-03 8:19 ` Patrick Steinhardt
2026-07-03 20:48 ` Junio C Hamano
2026-07-06 15:00 ` Marcelo Machado Lage
0 siblings, 2 replies; 4+ messages in thread
From: Patrick Steinhardt @ 2026-07-03 8:19 UTC (permalink / raw)
To: Marcelo Machado Lage; +Cc: git, Vinicius Lira de Freitas, Junio C Hamano
On Thu, Jul 02, 2026 at 11:07:04AM -0300, Marcelo Machado Lage wrote:
> Replace the basic shell commands 'test -f', with more modern test
> helpers 'test_path_is_file' and 'test_path_is_missing'.
Nit: it might make sense to briefly mention why we do this exercise.
Like, what does `test_path_is_file` et al give us over `test -f`?
> diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
> index 7614dfbd95..93d6b4c479 100755
> --- a/t/t9811-git-p4-label-import.sh
> +++ b/t/t9811-git-p4-label-import.sh
> @@ -62,9 +62,9 @@ test_expect_success 'basic p4 labels' '
>
> cd main &&
> git checkout TAG_F1_ONLY &&
> - ! test -f f2 &&
> + test_path_is_missing f2 &&
> git checkout TAG_WITH\$_SHELL_CHAR &&
> - test -f f1 && test -f f2 && test -f file_with_\$metachar &&
> + test_path_is_file f1 && test_path_is_file f2 && test_path_is_file file_with_\$metachar &&
While at it we could split this line into three lines -- it's getting
overly long, and we typically don't chain multiple commands on one line
nowadays.
> @@ -135,9 +135,9 @@ test_expect_success 'export git tags to p4' '
> p4 labels ... | grep LIGHTWEIGHT_TAG &&
> p4 label -o GIT_TAG_1 | grep "tag created in git:xyzzy" &&
> p4 sync ...@GIT_TAG_1 &&
> - ! test -f main/f10 &&
> + test_path_is_missing main/f10 &&
This is a stronger guarantee compared to before, as we only checked
whether the path is not a file. Now we verify that it doesn't exist at
all, which would be equivalent to `test -e`. That's a strict improvement
though, but may be worth pointing out in the commit message so that the
reviewer is not surprised.
> @@ -168,9 +168,9 @@ test_expect_success 'export git tags to p4 with deletion' '
> cd "$cli" &&
> p4 sync ... &&
> p4 sync ...@GIT_TAG_ON_DELETED &&
> - test -f main/deleted_file &&
> + test_path_is_file main/deleted_file &&
> p4 sync ...@GIT_TAG_AFTER_DELETION &&
> - ! test -f main/deleted_file &&
> + test_path_is_missing main/deleted_file &&
Same here.
Other than that the patch looks good to me, thanks!
Patrick
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] t9811: replace 'test -f' and '! test -f' with 'test_path_*'
2026-07-03 8:19 ` Patrick Steinhardt
@ 2026-07-03 20:48 ` Junio C Hamano
2026-07-06 15:00 ` Marcelo Machado Lage
1 sibling, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2026-07-03 20:48 UTC (permalink / raw)
To: Patrick Steinhardt; +Cc: Marcelo Machado Lage, git, Vinicius Lira de Freitas
Patrick Steinhardt <ps@pks.im> writes:
>> - test -f f1 && test -f f2 && test -f file_with_\$metachar &&
>> + test_path_is_file f1 && test_path_is_file f2 && test_path_is_file file_with_\$metachar &&
>
> While at it we could split this line into three lines -- it's getting
> overly long, and we typically don't chain multiple commands on one line
> nowadays.
Excellent.
>> - ! test -f main/f10 &&
>> + test_path_is_missing main/f10 &&
>
> This is a stronger guarantee compared to before, as we only checked
> whether the path is not a file. Now we verify that it doesn't exist at
> all, which would be equivalent to `test -e`. That's a strict improvement
> though, but may be worth pointing out in the commit message so that the
> reviewer is not surprised.
Good.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] t9811: replace 'test -f' and '! test -f' with 'test_path_*'
2026-07-03 8:19 ` Patrick Steinhardt
2026-07-03 20:48 ` Junio C Hamano
@ 2026-07-06 15:00 ` Marcelo Machado Lage
1 sibling, 0 replies; 4+ messages in thread
From: Marcelo Machado Lage @ 2026-07-06 15:00 UTC (permalink / raw)
To: Patrick Steinhardt; +Cc: git, Vinicius Lira de Freitas, Junio C Hamano
Em sex., 3 de jul. de 2026 às 05:20, Patrick Steinhardt <ps@pks.im> escreveu:
>
> On Thu, Jul 02, 2026 at 11:07:04AM -0300, Marcelo Machado Lage wrote:
> > Replace the basic shell commands 'test -f', with more modern test
> > helpers 'test_path_is_file' and 'test_path_is_missing'.
>
> Nit: it might make sense to briefly mention why we do this exercise.
> Like, what does `test_path_is_file` et al give us over `test -f`?
We'll add this in v2.
>
> > diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
> > index 7614dfbd95..93d6b4c479 100755
> > --- a/t/t9811-git-p4-label-import.sh
> > +++ b/t/t9811-git-p4-label-import.sh
> > @@ -62,9 +62,9 @@ test_expect_success 'basic p4 labels' '
> >
> > cd main &&
> > git checkout TAG_F1_ONLY &&
> > - ! test -f f2 &&
> > + test_path_is_missing f2 &&
> > git checkout TAG_WITH\$_SHELL_CHAR &&
> > - test -f f1 && test -f f2 && test -f file_with_\$metachar &&
> > + test_path_is_file f1 && test_path_is_file f2 && test_path_is_file file_with_\$metachar &&
>
> While at it we could split this line into three lines -- it's getting
> overly long, and we typically don't chain multiple commands on one line
> nowadays.
We'll do this for v2 as well and make it into a patch series to
separate test interface modernization from formatting changes.
While on this, there are some other places in the file where multiple
commands in a && chain appear in a single line, e.g. in line 244:
> p4 edit f2 && date >f2 && p4 submit -d "change" f2 &&
Should we split these into multiple lines as well, even though they
are under the 80 characters limit?
>
> > @@ -135,9 +135,9 @@ test_expect_success 'export git tags to p4' '
> > p4 labels ... | grep LIGHTWEIGHT_TAG &&
> > p4 label -o GIT_TAG_1 | grep "tag created in git:xyzzy" &&
> > p4 sync ...@GIT_TAG_1 &&
> > - ! test -f main/f10 &&
> > + test_path_is_missing main/f10 &&
>
> This is a stronger guarantee compared to before, as we only checked
> whether the path is not a file. Now we verify that it doesn't exist at
> all, which would be equivalent to `test -e`. That's a strict improvement
> though, but may be worth pointing out in the commit message so that the
> reviewer is not surprised.
We overlooked this improvement at first, but we'll add a proper note
about it in v2.
>
> > @@ -168,9 +168,9 @@ test_expect_success 'export git tags to p4 with deletion' '
> > cd "$cli" &&
> > p4 sync ... &&
> > p4 sync ...@GIT_TAG_ON_DELETED &&
> > - test -f main/deleted_file &&
> > + test_path_is_file main/deleted_file &&
> > p4 sync ...@GIT_TAG_AFTER_DELETION &&
> > - ! test -f main/deleted_file &&
> > + test_path_is_missing main/deleted_file &&
>
> Same here.
>
> Other than that the patch looks good to me, thanks!
Thanks for the detailed feedback, Patrick!
Best,
Marcelo
>
> Patrick
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-06 15:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-02 14:07 [PATCH] t9811: replace 'test -f' and '! test -f' with 'test_path_*' Marcelo Machado Lage
2026-07-03 8:19 ` Patrick Steinhardt
2026-07-03 20:48 ` Junio C Hamano
2026-07-06 15:00 ` Marcelo Machado Lage
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox