All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, chriscool@tuxfamily.org,
	pranit.bauva@gmail.com, ramsay@ramsayjones.plus.com,
	Bagas Sanjaya <bagasdotme@gmail.com>,
	Trygve Aaberge <trygveaa@gmail.com>
Subject: [PATCH v3] t6030: add test for git bisect skip started with --term* arguments
Date: Wed, 28 Apr 2021 18:38:06 +0700	[thread overview]
Message-ID: <20210428113805.109528-1-bagasdotme@gmail.com> (raw)

Trygve Aaberge reported git bisect breakage when the bisection
is started with --term* arguments (--term-new and --term-old).

For example, suppose that we have repository with 10 commits, and we
start the bisection from HEAD to first commit (HEAD~9) with:

  $ git bisect start --term-new=fixed --term-old=unfixed HEAD HEAD~9

The bisection then stopped at HEAD~5 (fifth commit), and we choose
to skip (git bisect skip). The HEAD should now at HEAD~4 (sixth commit).
In the breakage, however, the HEAD after skipping stayed at HEAD~5
(not changed).

The breakage is caused by forgetting to read '.git/BISECT_TERMS' during
implementation of `'bisect skip' subcommand in C.

Let's add the test to catch the breakage. Now that the corresponding
fix had been integrated, flip the switch to test_expect_success.

Reported-by: Trygve Aaberge <trygveaa@gmail.com>
Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---

 Changes from v2 [1]:
   * remove double quotes inside test name
   * double-quote HASH_SKIPPED_FROM and HASH_SKIPPED_TO in the
     test comparison line
   * rename test name to be simpler
   * commit message now includes proper explanation why git bisect skip
     is currently broken
   * because the fix to the breakage had just been landed on seen, flip
     the switch to test_expect_success.
   * give credit to Trygve in form of Reported-by

[1]: https://lore.kernel.org/git/20210425080508.154159-1-bagasdotme@gmail.com/

 t/t6030-bisect-porcelain.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index 32bb66e1ed..ca3a1de433 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -922,6 +922,17 @@ test_expect_success 'bisect start takes options and revs in any order' '
 	test_cmp expected actual
 '
 
+# Bisect is started with --term-new and --term-old arguments,
+# then skip. The HEAD should be changed.
+test_expect_success 'bisect skip works with --term*' '
+	git bisect reset &&
+	git bisect start --term-new=fixed --term-old=unfixed HEAD $HASH1 &&
+	HASH_SKIPPED_FROM=$(git rev-parse --verify HEAD) &&
+	git bisect skip &&
+	HASH_SKIPPED_TO=$(git rev-parse --verify HEAD) &&
+	test "$HASH_SKIPPED_FROM" != "$HASH_SKIPPED_TO"
+'
+
 test_expect_success 'git bisect reset cleans bisection state properly' '
 	git bisect reset &&
 	git bisect start &&

base-commit: 311531c9de557d25ac087c1637818bd2aad6eb3a
-- 
2.25.1


             reply	other threads:[~2021-04-28 11:39 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-28 11:38 Bagas Sanjaya [this message]
2021-04-28 16:55 ` [PATCH v3] t6030: add test for git bisect skip started with --term* arguments Eric Sunshine

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=20210428113805.109528-1-bagasdotme@gmail.com \
    --to=bagasdotme@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pranit.bauva@gmail.com \
    --cc=ramsay@ramsayjones.plus.com \
    --cc=trygveaa@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.