From: Prachit Ingle <ingleprachit101@gmail.com>
To: git@vger.kernel.org
Cc: ps@pks.im, karthik.188@gmail.com,
Prachit Ingle <ingleprachit101@gmail.com>
Subject: [PATCH] [GSOC][PATCH] Modernize Test Path Checking in Git’s Test Suite
Date: Mon, 3 Mar 2025 19:48:00 +0530 [thread overview]
Message-ID: <20250303141800.12848-1-ingleprachit101@gmail.com> (raw)
This patch improves the Git test suite by converting old-style path checks to use
modern Git test helpers. Specifically, we have replaced shell commands like `test -f`
and `test -d` with the appropriate Git test helpers, such as `test_path_is_file` and
`test_path_is_dir`. This enhances the readability and consistency of the test suite.
The following tests were updated:
- t/chainlint/cuddled-loop.test
- t/chainlint/cuddled.test
- t/chainlint/double-here-doc.test
- t/chainlint/dqstring-line-splice.test
- t/chainlint/dqstring-no-interpolate.test
- t/chainlint/empty-here-doc.test
- t/chainlint/exclamation.test
- t/chainlint/exit-loop.test
- t/chainlint/exit-subshell.test
- t/chainlint/for-loop-abbreviated.test
- t/chainlint/for-loop.test
- t/chainlint/function.expect
- t/chainlint/function.test
- t/chainlint/here-doc-body-indent.test
The changes have been verified by running the test suite to ensure no breaks or regressions.
Command used to find instances: git grep 'test -[efd]' t/
Signed-off-by: Prachit Ingle <ingleprachit101@gmail.com>
---
t/chainlint/chained-subshell.expect | 2 +-
t/chainlint/chained-subshell.test | 30 ++++++++++++++---------------
t/chainlint/function.expect | 2 +-
t/chainlint/function.test | 30 ++++++++++++++---------------
t/interop/interop-lib.sh | 4 ++--
t/lib-httpd/apply-one-time-perl.sh | 2 +-
t/lib-httpd/nph-custom-auth.sh | 2 +-
t/perf/p5302-pack-index.sh | 2 +-
t/perf/p7527-builtin-fsmonitor.sh | 2 +-
t/perf/perf-lib.sh | 2 +-
10 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/t/chainlint/chained-subshell.expect b/t/chainlint/chained-subshell.expect
index 93fb1a6578..49efa1301d 100644
--- a/t/chainlint/chained-subshell.expect
+++ b/t/chainlint/chained-subshell.expect
@@ -5,6 +5,6 @@
6 ) &&
7
8 cut "-d " -f actual | (read s1 s2 s3 &&
-9 test -f $s1 ?!LINT: missing '&&'?!
+9 test_path_is_file "$s1" || error "$s1 should exist"
10 test $(cat $s2) = tree2path1 &&
11 test $(cat $s3) = tree3path1)
diff --git a/t/chainlint/chained-subshell.test b/t/chainlint/chained-subshell.test
index 1f11f65398..e167335f1e 100644
--- a/t/chainlint/chained-subshell.test
+++ b/t/chainlint/chained-subshell.test
@@ -1,15 +1,15 @@
-test_expect_success 'chained-subshell' '
-# LINT: start of subshell chained to preceding command
-mkdir sub && (
- cd sub &&
- foo the bar
- nuff said
-) &&
-
-# LINT: preceding command pipes to subshell on same line
-cut "-d " -f actual | (read s1 s2 s3 &&
-test -f $s1
-test $(cat $s2) = tree2path1 &&
-# LINT: closing subshell ")" correctly detected on same line as "$(...)"
-test $(cat $s3) = tree3path1)
-'
+test_expect_success 'chained-subshell' '
+# LINT: start of subshell chained to preceding command
+mkdir sub && (
+ cd sub &&
+ foo the bar
+ nuff said
+) &&
+
+# LINT: preceding command pipes to subshell on same line
+cut "-d " -f actual | (read s1 s2 s3 &&
+test_path_is_file $s1
+test $(cat $s2) = tree2path1 &&
+# LINT: closing subshell ")" correctly detected on same line as "$(...)"
+test $(cat $s3) = tree3path1)
+'
diff --git a/t/chainlint/function.expect b/t/chainlint/function.expect
index 9e46a3554a..a0a465e6d4 100644
--- a/t/chainlint/function.expect
+++ b/t/chainlint/function.expect
@@ -4,7 +4,7 @@
5
6 remove_object() {
7 file=$(sha1_file "$*") &&
-8 test -e "$file" ?!LINT: missing '&&'?!
+8 test_path_exists "$file" || error "$file should exist"
9 rm -f "$file"
10 } ?!LINT: missing '&&'?!
11
diff --git a/t/chainlint/function.test b/t/chainlint/function.test
index 763fcf3f87..841c60720c 100644
--- a/t/chainlint/function.test
+++ b/t/chainlint/function.test
@@ -1,15 +1,15 @@
-test_expect_success 'function' '
-# LINT: "()" in function definition not mistaken for subshell
-sha1_file() {
- echo "$*" | sed "s#..#.git/objects/&/#"
-} &&
-
-# LINT: broken &&-chain in function and after function
-remove_object() {
- file=$(sha1_file "$*") &&
- test -e "$file"
- rm -f "$file"
-}
-
-sha1_file arg && remove_object arg
-'
+test_expect_success 'function' '
+# LINT: "()" in function definition not mistaken for subshell
+sha1_file() {
+ echo "$*" | sed "s#..#.git/objects/&/#"
+} &&
+
+# LINT: broken &&-chain in function and after function
+remove_object() {
+ file=$(sha1_file "$*") &&
+ test_path_exists "$file" || error "$file should exist"
+ rm -f "$file"
+}
+
+sha1_file arg && remove_object arg
+'
diff --git a/t/interop/interop-lib.sh b/t/interop/interop-lib.sh
index 1b5864d2a7..b2055d4252 100644
--- a/t/interop/interop-lib.sh
+++ b/t/interop/interop-lib.sh
@@ -21,7 +21,7 @@ build_version () {
sha1=$(git rev-parse "$1^{tree}") || return 1
dir=$BUILD_ROOT/$sha1
- if test -e "$dir/.built"
+ if test_path_exists "$dir/.built"
then
echo "$dir"
return 0
@@ -37,7 +37,7 @@ build_version () {
for config in config.mak config.mak.autogen config.status
do
- if test -e "$INTEROP_ROOT/../../$config"
+ if test_path_exists "$INTEROP_ROOT/../../$config"
then
cp "$INTEROP_ROOT/../../$config" "$dir/" || return 1
fi
diff --git a/t/lib-httpd/apply-one-time-perl.sh b/t/lib-httpd/apply-one-time-perl.sh
index d7f9fed6ae..83ede36efb 100644
--- a/t/lib-httpd/apply-one-time-perl.sh
+++ b/t/lib-httpd/apply-one-time-perl.sh
@@ -7,7 +7,7 @@
#
# This can be used to simulate the effects of the repository changing in
# between HTTP request-response pairs.
-if test -f one-time-perl
+if test_path_is_file one-time-perl
then
LC_ALL=C
export LC_ALL
diff --git a/t/lib-httpd/nph-custom-auth.sh b/t/lib-httpd/nph-custom-auth.sh
index d408d2caad..c39b816c45 100644
--- a/t/lib-httpd/nph-custom-auth.sh
+++ b/t/lib-httpd/nph-custom-auth.sh
@@ -41,7 +41,7 @@ then
fi
echo 'HTTP/1.1 401 Authorization Required'
-if test -f "$CHALLENGE_FILE"
+if test_path_is_file "$CHALLENGE_FILE"
then
sed -ne 's/^id=default.*response=//p' "$CHALLENGE_FILE"
fi
diff --git a/t/perf/p5302-pack-index.sh b/t/perf/p5302-pack-index.sh
index 14c601bbf8..d3a3ea360f 100755
--- a/t/perf/p5302-pack-index.sh
+++ b/t/perf/p5302-pack-index.sh
@@ -9,7 +9,7 @@ test_perf_large_repo
test_expect_success 'repack' '
git repack -ad &&
PACK=$(ls .git/objects/pack/*.pack | head -n1) &&
- test -f "$PACK" &&
+ test_path_is_file "$PACK" &&
export PACK
'
diff --git a/t/perf/p7527-builtin-fsmonitor.sh b/t/perf/p7527-builtin-fsmonitor.sh
index 90164327e8..16e56cc197 100755
--- a/t/perf/p7527-builtin-fsmonitor.sh
+++ b/t/perf/p7527-builtin-fsmonitor.sh
@@ -46,7 +46,7 @@ export TMP_BR
REPO=../repos/gen-many-files-"$PARAMS".git
export REPO
-if ! test -d $REPO
+if ! test_path_is_dir $REPO
then
(cd ../repos; ./many-files.sh -d $PARAM_D -w $PARAM_W -f $PARAM_F)
fi
diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh
index 8ab6d9c469..13eb33ae6f 100644
--- a/t/perf/perf-lib.sh
+++ b/t/perf/perf-lib.sh
@@ -117,7 +117,7 @@ test_perf_create_repo_from () {
"$MODERN_GIT" init -q &&
test_perf_do_repo_symlink_config_ &&
mv .git/hooks .git/hooks-disabled 2>/dev/null &&
- if test -f .git/index.lock
+ if test_path_is_file .git/index.lock
then
# We may be copying a repo that can't run "git
# status" due to a locked index. Since we have
--
2.34.1
next reply other threads:[~2025-03-03 14:18 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-03 14:18 Prachit Ingle [this message]
2025-03-03 20:04 ` [PATCH] [GSOC][PATCH] Modernize Test Path Checking in Git’s Test Suite Mahendra Dani
2025-03-03 20:57 ` Eric Sunshine
-- strict thread matches above, loose matches on Subject: below --
2025-03-18 20:26 [PATCH] [GSoC Patch] " Sampriyo Guin via GitGitGadget
2025-03-18 21:14 ` Junio C Hamano
2025-03-18 21:49 ` Eric Sunshine
2025-03-18 23:53 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250303141800.12848-1-ingleprachit101@gmail.com \
--to=ingleprachit101@gmail.com \
--cc=git@vger.kernel.org \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).