git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Denton Liu <liu.denton@gmail.com>
To: Git Mailing List <git@vger.kernel.org>
Cc: Eric Sunshine <sunshine@sunshineco.com>,
	Jakub Narebski <jnareb@gmail.com>, Johannes Sixt <j6t@kdbg.org>,
	Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v2 11/16] t3415: increase granularity of test_auto_{fixup,squash}()
Date: Mon,  6 Jan 2020 23:53:08 -0500	[thread overview]
Message-ID: <8b716c6a8198edb6a7f060cff797cb1085fdceab.1578372682.git.liu.denton@gmail.com> (raw)
In-Reply-To: <cover.1578372682.git.liu.denton@gmail.com>

We are using `test_must_fail test_auto_{fixup,squash}` which would
ensure that the function failed. However, this is a little ham-fisted as
there is no way of ensuring that the expected part of the function
actually fails.

Increase the granularity by accepting an optional `!` first argument
which will check that the rebase does not squash in any commits by
ensuring that there are still 4 commits. If `!` is not provided, the old
logic is run.

This patch may be better reviewed with `--ignore-all-space`.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
---
 t/t3415-rebase-autosquash.sh | 64 +++++++++++++++++++++++++-----------
 1 file changed, 44 insertions(+), 20 deletions(-)

diff --git a/t/t3415-rebase-autosquash.sh b/t/t3415-rebase-autosquash.sh
index b0add36f82..093de9005b 100755
--- a/t/t3415-rebase-autosquash.sh
+++ b/t/t3415-rebase-autosquash.sh
@@ -25,6 +25,13 @@ test_expect_success setup '
 '
 
 test_auto_fixup () {
+	no_squash= &&
+	if test "x$1" = 'x!'
+	then
+		no_squash=true
+		shift
+	fi &&
+
 	git reset --hard base &&
 	echo 1 >file1 &&
 	git add -u &&
@@ -35,14 +42,19 @@ test_auto_fixup () {
 	test_tick &&
 	git rebase $2 -i HEAD^^^ &&
 	git log --oneline >actual &&
-	test_line_count = 3 actual &&
-	git diff --exit-code $1 &&
-	echo 1 >expect &&
-	git cat-file blob HEAD^:file1 >actual &&
-	test_cmp expect actual &&
-	git cat-file commit HEAD^ >commit &&
-	grep first commit >actual &&
-	test_line_count = 1 actual
+	if test -n "$no_squash"
+	then
+		test_line_count = 4 actual
+	else
+		test_line_count = 3 actual &&
+		git diff --exit-code $1 &&
+		echo 1 >expect &&
+		git cat-file blob HEAD^:file1 >actual &&
+		test_cmp expect actual &&
+		git cat-file commit HEAD^ >commit &&
+		grep first commit >actual &&
+		test_line_count = 1 actual
+	fi
 }
 
 test_expect_success 'auto fixup (option)' '
@@ -52,12 +64,19 @@ test_expect_success 'auto fixup (option)' '
 test_expect_success 'auto fixup (config)' '
 	git config rebase.autosquash true &&
 	test_auto_fixup final-fixup-config-true &&
-	test_must_fail test_auto_fixup fixup-config-true-no --no-autosquash &&
+	test_auto_fixup ! fixup-config-true-no --no-autosquash &&
 	git config rebase.autosquash false &&
-	test_must_fail test_auto_fixup final-fixup-config-false
+	test_auto_fixup ! final-fixup-config-false
 '
 
 test_auto_squash () {
+	no_squash= &&
+	if test "x$1" = 'x!'
+	then
+		no_squash=true
+		shift
+	fi &&
+
 	git reset --hard base &&
 	echo 1 >file1 &&
 	git add -u &&
@@ -68,14 +87,19 @@ test_auto_squash () {
 	test_tick &&
 	git rebase $2 -i HEAD^^^ &&
 	git log --oneline >actual &&
-	test_line_count = 3 actual &&
-	git diff --exit-code $1 &&
-	echo 1 >expect &&
-	git cat-file blob HEAD^:file1 >actual &&
-	test_cmp expect actual &&
-	git cat-file commit HEAD^ >commit &&
-	grep first commit >actual &&
-	test_line_count = 2 actual
+	if test -n "$no_squash"
+	then
+		test_line_count = 4 actual
+	else
+		test_line_count = 3 actual &&
+		git diff --exit-code $1 &&
+		echo 1 >expect &&
+		git cat-file blob HEAD^:file1 >actual &&
+		test_cmp expect actual &&
+		git cat-file commit HEAD^ >commit &&
+		grep first commit >actual &&
+		test_line_count = 2 actual
+	fi
 }
 
 test_expect_success 'auto squash (option)' '
@@ -85,9 +109,9 @@ test_expect_success 'auto squash (option)' '
 test_expect_success 'auto squash (config)' '
 	git config rebase.autosquash true &&
 	test_auto_squash final-squash-config-true &&
-	test_must_fail test_auto_squash squash-config-true-no --no-autosquash &&
+	test_auto_squash ! squash-config-true-no --no-autosquash &&
 	git config rebase.autosquash false &&
-	test_must_fail test_auto_squash final-squash-config-false
+	test_auto_squash ! final-squash-config-false
 '
 
 test_expect_success 'misspelled auto squash' '
-- 
2.25.0.rc1.180.g49a268d3eb


  parent reply	other threads:[~2020-01-07  4:53 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-27 13:47 [PATCH 00/16] t: replace incorrect test_must_fail usage (part 2) Denton Liu
2019-12-27 13:47 ` [PATCH 01/16] t2018: remove trailing space from test description Denton Liu
2019-12-27 13:47 ` [PATCH 02/16] t2018: add space between function name and () Denton Liu
2019-12-27 21:03   ` Eric Sunshine
2019-12-27 13:47 ` [PATCH 03/16] t2018: use test_must_fail for failing git commands Denton Liu
2019-12-28  7:55   ` Eric Sunshine
2019-12-30 20:30   ` Jakub Narebski
2019-12-27 13:47 ` [PATCH 04/16] t2018: teach do_checkout() to accept `!` arg Denton Liu
2019-12-28  8:34   ` Eric Sunshine
2019-12-27 13:47 ` [PATCH 05/16] t2018: don't lose return code of git commands Denton Liu
2019-12-27 21:42   ` Eric Sunshine
2020-01-01  8:48     ` Denton Liu
2020-01-01  9:21       ` Eric Sunshine
2020-01-02 18:26       ` Junio C Hamano
2019-12-27 13:47 ` [PATCH 06/16] t2018: replace "sha" with "oid" Denton Liu
2019-12-27 13:47 ` [PATCH 07/16] t3030: use test_path_is_missing() Denton Liu
2019-12-27 13:47 ` [PATCH 08/16] t3310: extract common no_notes_merge_left() Denton Liu
2019-12-28  7:20   ` Eric Sunshine
2019-12-30 20:38     ` Jakub Narebski
2019-12-27 13:47 ` [PATCH 09/16] t3415: stop losing return codes of git commands Denton Liu
2019-12-27 13:47 ` [PATCH 10/16] t3415: increase granularity of test_auto_{fixup,squash}() Denton Liu
2019-12-27 13:47 ` [PATCH 11/16] t3419: stop losing return code of git command Denton Liu
2019-12-27 13:47 ` [PATCH 12/16] t3504: don't use `test_must_fail test_cmp` Denton Liu
2019-12-27 20:39   ` Johannes Sixt
2019-12-27 22:48     ` Junio C Hamano
2019-12-27 13:47 ` [PATCH 13/16] t3507: fix indentation Denton Liu
2019-12-27 13:47 ` [PATCH 14/16] t3507: use test_path_is_missing() Denton Liu
2019-12-27 13:47 ` [PATCH 15/16] t4124: only mark git command with test_must_fail Denton Liu
2019-12-27 13:47 ` [PATCH 16/16] t4124: let sed open its own files Denton Liu
2019-12-30 22:52   ` Jakub Narebski
2019-12-30 23:27     ` Junio C Hamano
2020-01-01  8:24       ` Denton Liu
2020-01-01  8:33         ` Eric Sunshine
2020-01-01  8:53           ` Denton Liu
2020-01-07  4:52 ` [PATCH v2 00/16] t: replace incorrect test_must_fail usage (part 2) Denton Liu
2020-01-07  4:52   ` [PATCH v2 01/16] t2018: remove trailing space from test description Denton Liu
2020-01-07  4:52   ` [PATCH v2 02/16] t2018: add space between function name and () Denton Liu
2020-01-07  4:53   ` [PATCH v2 03/16] t2018: improve style of if-statement Denton Liu
2020-01-07  4:53   ` [PATCH v2 04/16] t2018: use test_expect_code for failing git commands Denton Liu
2020-01-12 10:50     ` Eric Sunshine
2020-01-26 20:23     ` [PATCH v3] t2018: be more discerning when checking for expected exit codes Denton Liu
2020-01-07  4:53   ` [PATCH v2 05/16] t2018: teach do_checkout() to accept `!` arg Denton Liu
2020-01-07  4:53   ` [PATCH v2 06/16] t2018: don't lose return code of git commands Denton Liu
2020-01-07  4:53   ` [PATCH v2 07/16] t2018: replace "sha" with "oid" Denton Liu
2020-01-07  4:53   ` [PATCH v2 08/16] t3030: use test_path_is_missing() Denton Liu
2020-01-07  4:53   ` [PATCH v2 09/16] t3310: extract common notes_merge_files_gone() Denton Liu
2020-01-07  4:53   ` [PATCH v2 10/16] t3415: stop losing return codes of git commands Denton Liu
2020-01-07  4:53   ` Denton Liu [this message]
2020-01-07  4:53   ` [PATCH v2 12/16] t3419: stop losing return code of git command Denton Liu
2020-01-07  4:53   ` [PATCH v2 13/16] t3504: do check for conflict marker after failed cherry-pick Denton Liu
2020-01-07  4:53   ` [PATCH v2 14/16] t3507: fix indentation Denton Liu
2020-01-07  4:53   ` [PATCH v2 15/16] t3507: use test_path_is_missing() Denton Liu
2020-01-07  4:53   ` [PATCH v2 16/16] t4124: only mark git command with test_must_fail Denton Liu
2020-01-10 21:45   ` [PATCH v2 00/16] t: replace incorrect test_must_fail usage (part 2) 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

  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=8b716c6a8198edb6a7f060cff797cb1085fdceab.1578372682.git.liu.denton@gmail.com \
    --to=liu.denton@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j6t@kdbg.org \
    --cc=jnareb@gmail.com \
    --cc=sunshine@sunshineco.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.
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).