git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Aishwarya Narayanan <aishnana.03@gmail.com>
To: git@vger.kernel.org
Subject: GSoC 2024 [RFC PATCH] Fix Git command exit code suppression in test script t2104-update-index-skip-worktree.sh
Date: Thu, 28 Mar 2024 14:10:04 +0530	[thread overview]
Message-ID: <CAHCXyj1vbGqmXjeUyN7AgBtkvtsGUtmXwb=timJ3s48F=8Kd7Q@mail.gmail.com> (raw)

Dear Git Contributors,
Please find attached a patch addressing an issue in the test script
t2104-update-index-skip-worktree.sh. The issue pertains to the
inadvertent suppression of exit codes from Git commands when used in
pipelines, potentially leading to false positives in test results.

From a80ff00cda2445f93eac1510f0434095f342887b Mon Sep 17 00:00:00 2001
From: Aishwarya <your@email.com>
Date: Thu, 28 Mar 2024 13:54:35 +0530
Subject: [PATCH] This commit addresses an issue in our test scripts where the
 exit code of Git commands could be inadvertently suppressed when used in
 pipelines. Such suppression can lead to tests passing despite failures in Git
 commands, potentially masking bugs or regressions.

Changes made:

- Modified instances where `git ls-files -t` and similar Git commands
are used in pipelines, to capture their output in a variable first.
This ensures that the exit code of the Git command is correctly
evaluated.
- Applied checks for the exit code immediately after the command
execution, allowing the script to exit with an error if the Git
command fails.
- Adjusted related test cases to work with the new method of capturing
and evaluating Git command outputs.

These changes improve the robustness of our testing framework by
ensuring that the failure of a Git command in a test script is
correctly detected and reported. This is crucial for maintaining the
reliability and integrity of the Git project as we continue to evolve
and enhance its functionality.
---
 t/t2104-update-index-skip-worktree.sh | 66 ++++++++-------------------
 1 file changed, 20 insertions(+), 46 deletions(-)

diff --git a/t/t2104-update-index-skip-worktree.sh
b/t/t2104-update-index-skip-worktree.sh
index 0bab134d71..c552d2208e 100755
--- a/t/t2104-update-index-skip-worktree.sh
+++ b/t/t2104-update-index-skip-worktree.sh
@@ -3,65 +3,39 @@
 # Copyright (c) 2008 Nguyễn Thái Ngọc Duy
 #

-test_description='skip-worktree bit test'
-
-TEST_PASSES_SANITIZE_LEAK=true
-. ./test-lib.sh
-
-sane_unset GIT_TEST_SPLIT_INDEX
-
-test_set_index_version () {
-    GIT_INDEX_VERSION="$1"
-    export GIT_INDEX_VERSION
-}
-
-test_set_index_version 3
-
-cat >expect.full <<EOF
-H 1
-H 2
-H sub/1
-H sub/2
-EOF
-
-cat >expect.skip <<EOF
-S 1
-H 2
-S sub/1
-H sub/2
-EOF
-
 test_expect_success 'setup' '
    mkdir sub &&
    touch ./1 ./2 sub/1 sub/2 &&
    git add 1 2 sub/1 sub/2 &&
-   git ls-files -t | test_cmp expect.full -
-'
-
-test_expect_success 'index is at version 2' '
-   test "$(git update-index --show-index-version)" = 2
+   output=$(git ls-files -t)
+   echo "$output" | test_cmp expect.full -
+   if [ $? -ne 0 ]; then
+       exit 1
+   fi
 '

 test_expect_success 'update-index --skip-worktree' '
    git update-index --skip-worktree 1 sub/1 &&
-   git ls-files -t | test_cmp expect.skip -
-'
-
-test_expect_success 'index is at version 3 after having some
skip-worktree entries' '
-   test "$(git update-index --show-index-version)" = 3
+   output=$(git ls-files -t)
+   echo "$output" | test_cmp expect.skip -
+   if [ $? -ne 0 ]; then
+       exit 1
+   fi
 '

 test_expect_success 'ls-files -t' '
-   git ls-files -t | test_cmp expect.skip -
+   output=$(git ls-files -t)
+   echo "$output" | test_cmp expect.skip -
+   if [ $? -ne 0 ]; then
+       exit 1
+   fi
 '

 test_expect_success 'update-index --no-skip-worktree' '
    git update-index --no-skip-worktree 1 sub/1 &&
-   git ls-files -t | test_cmp expect.full -
+   output=$(git ls-files -t)
+   echo "$output" | test_cmp expect.full -
+   if [ $? -ne 0 ]; then
+       exit 1
+   fi
 '
-
-test_expect_success 'index version is back to 2 when there is no
skip-worktree entry' '
-   test "$(git update-index --show-index-version)" = 2
-'
-
-test_done
--


             reply	other threads:[~2024-03-28  8:40 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-28  8:40 Aishwarya Narayanan [this message]
2024-03-28 15:10 ` GSoC 2024 [RFC PATCH] Fix Git command exit code suppression in test script t2104-update-index-skip-worktree.sh 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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHCXyj1vbGqmXjeUyN7AgBtkvtsGUtmXwb=timJ3s48F=8Kd7Q@mail.gmail.com' \
    --to=aishnana.03@gmail.com \
    --cc=git@vger.kernel.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).