All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"SZEDER Gábor" <szeder.dev@gmail.com>,
	"Jiang Xin" <zhiyou.jx@alibaba-inc.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 10/12] test-lib-functions: remove bug-inducing "diagnostics" helper param
Date: Tue,  9 Feb 2021 22:41:57 +0100	[thread overview]
Message-ID: <20210209214159.22815-11-avarab@gmail.com> (raw)
In-Reply-To: <20210209214159.22815-1-avarab@gmail.com>

Remove the optional "diagnostics" parameter of the
test_path_is_{file,dir,missing} functions.

We have a lot of uses of these functions, but the only legitimate use
of the diagnostics parameter is from when the functions themselves
were introduced in 2caf20c52b7 (test-lib: user-friendly alternatives
to test [-d|-f|-e], 2010-08-10).

But as the the rest of this diff demonstrates its presence did more to
silently introduce bugs in our tests. Fix such bugs in the tests added
in ae4e89e549b (gc: add --keep-largest-pack option, 2018-04-15), and
c04ba51739a (t6046: testcases checking whether updates can be skipped
in a merge, 2018-04-19).

Let's also assert that those functions are called with exactly one
parameter, a follow-up commit will add similar asserts to other
functions in test-lib-functions.sh that we didn't have existing misuse
of.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/README                               |  8 ++++----
 t/t3404-rebase-interactive.sh          |  3 ++-
 t/t6426-merge-skip-unneeded-updates.sh | 16 ++++++++++++----
 t/t6500-gc.sh                          |  4 ++--
 t/test-lib-functions.sh                | 11 ++++++-----
 5 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/t/README b/t/README
index c730a707705..df38d8d6be3 100644
--- a/t/README
+++ b/t/README
@@ -917,13 +917,13 @@ library for your script to use.
 
    Check whether a file has the length it is expected to.
 
- - test_path_is_file <path> [<diagnosis>]
-   test_path_is_dir <path> [<diagnosis>]
-   test_path_is_missing <path> [<diagnosis>]
+ - test_path_is_file <path>
+   test_path_is_dir <path>
+   test_path_is_missing <path>
 
    Check if the named path is a file, if the named path is a
    directory, or if the named path does not exist, respectively,
-   and fail otherwise, showing the <diagnosis> text.
+   and fail otherwise.
 
  - test_when_finished <script>
 
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 1e738df81d5..28c2d15d807 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -101,7 +101,8 @@ test_expect_success 'rebase -i with the exec command' '
 	) &&
 	test_path_is_file touch-one &&
 	test_path_is_file touch-two &&
-	test_path_is_missing touch-three " (should have stopped before)" &&
+	# Missing because we should have stopped by now.
+	test_path_is_missing touch-three &&
 	test_cmp_rev C HEAD &&
 	git rebase --continue &&
 	test_path_is_file touch-three &&
diff --git a/t/t6426-merge-skip-unneeded-updates.sh b/t/t6426-merge-skip-unneeded-updates.sh
index d7eeee43106..7b5f1c1dcd1 100755
--- a/t/t6426-merge-skip-unneeded-updates.sh
+++ b/t/t6426-merge-skip-unneeded-updates.sh
@@ -492,7 +492,9 @@ test_expect_success '3a-L: bq_1->foo/bq_2 on A, foo/->bar/ on B' '
 		test_cmp expect actual &&
 
 		test_must_fail git rev-parse HEAD:bq HEAD:foo/bq &&
-		test_path_is_missing bq foo/bq foo/whatever
+		test_path_is_missing bq &&
+		test_path_is_missing foo/bq &&
+		test_path_is_missing foo/whatever
 	)
 '
 
@@ -522,7 +524,9 @@ test_expect_success '3a-R: bq_1->foo/bq_2 on A, foo/->bar/ on B' '
 		test_cmp expect actual &&
 
 		test_must_fail git rev-parse HEAD:bq HEAD:foo/bq &&
-		test_path_is_missing bq foo/bq foo/whatever
+		test_path_is_missing bq &&
+		test_path_is_missing foo/bq &&
+		test_path_is_missing foo/whatever
 	)
 '
 
@@ -588,7 +592,9 @@ test_expect_success '3b-L: bq_1->foo/bq_2 on A, foo/->bar/ on B' '
 		test_cmp expect actual &&
 
 		test_must_fail git rev-parse HEAD:bq HEAD:foo/bq &&
-		test_path_is_missing bq foo/bq foo/whatever
+		test_path_is_missing bq &&
+		test_path_is_missing foo/bq &&
+		test_path_is_missing foo/whatever
 	)
 '
 
@@ -618,7 +624,9 @@ test_expect_success '3b-R: bq_1->foo/bq_2 on A, foo/->bar/ on B' '
 		test_cmp expect actual &&
 
 		test_must_fail git rev-parse HEAD:bq HEAD:foo/bq &&
-		test_path_is_missing bq foo/bq foo/whatever
+		test_path_is_missing bq &&
+		test_path_is_missing foo/bq &&
+		test_path_is_missing foo/whatever
 	)
 '
 
diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh
index 4a3b8f48ac6..7879a6b8c51 100755
--- a/t/t6500-gc.sh
+++ b/t/t6500-gc.sh
@@ -78,7 +78,7 @@ test_expect_success 'gc --keep-largest-pack' '
 		git gc &&
 		( cd .git/objects/pack && ls *.pack ) >pack-list &&
 		test_line_count = 1 pack-list &&
-		BASE_PACK=.git/objects/pack/pack-*.pack &&
+		cp pack-list base-pack-list &&
 		test_commit four &&
 		git repack -d &&
 		test_commit five &&
@@ -90,7 +90,7 @@ test_expect_success 'gc --keep-largest-pack' '
 		test_line_count = 2 pack-list &&
 		awk "/^P /{print \$2}" <.git/objects/info/packs >pack-info &&
 		test_line_count = 2 pack-info &&
-		test_path_is_file $BASE_PACK &&
+		test_path_is_file .git/objects/pack/$(cat base-pack-list) &&
 		git fsck
 	)
 '
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index f228647c2b8..109d1b548ce 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -717,12 +717,12 @@ test_external_without_stderr () {
 }
 
 # debugging-friendly alternatives to "test [-f|-d|-e]"
-# The commands test the existence or non-existence of $1. $2 can be
-# given to provide a more precise diagnosis.
+# The commands test the existence or non-existence of $1
 test_path_is_file () {
+	test "$#" -ne 1 && BUG "1 param"
 	if ! test -f "$1"
 	then
-		echo "File $1 doesn't exist. $2"
+		echo "File $1 doesn't exist"
 		false
 	fi
 }
@@ -730,15 +730,16 @@ test_path_is_file () {
 test_path_is_dir () {
 	if ! test -d "$1"
 	then
-		echo "Directory $1 doesn't exist. $2"
+		echo "Directory $1 doesn't exist"
 		false
 	fi
 }
 
 test_path_exists () {
+	test "$#" -ne 1 && BUG "1 param"
 	if ! test -e "$1"
 	then
-		echo "Path $1 doesn't exist. $2"
+		echo "Path $1 doesn't exist"
 		false
 	fi
 }
-- 
2.30.0.284.gd98b1dd5eaa7


  parent reply	other threads:[~2021-02-09 23:03 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-09 21:41 [PATCH 00/12] test-lib: misc improvements Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 01/12] test-lib: remove check_var_migration Ævar Arnfjörð Bjarmason
2021-02-10 22:06   ` Junio C Hamano
2021-02-09 21:41 ` [PATCH 02/12] test lib: change "error" to "BUG" as appropriate Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 03/12] test-lib-functions: move test_set_index_version() to its user Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 04/12] test-lib-functions: remove generate_zero_bytes() wrapper Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 05/12] test libs: rename bundle helper to "lib-bundle.sh" Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 06/12] test libs: rename gitweb-lib.sh to lib-gitweb.sh Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 07/12] test-lib-functions: move function to lib-bitmap.sh Ævar Arnfjörð Bjarmason
2021-02-10 20:56   ` SZEDER Gábor
2021-02-10 21:10     ` Jeff King
2021-02-11 19:38       ` SZEDER Gábor
2021-02-09 21:41 ` [PATCH 08/12] t/.gitattributes: sort lines Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 09/12] test libs: rename "diff-lib" to "lib-diff" Ævar Arnfjörð Bjarmason
2021-02-10 21:56   ` Junio C Hamano
2021-02-11 22:13   ` Johannes Schindelin
2021-02-11 22:45     ` Junio C Hamano
2021-02-09 21:41 ` Ævar Arnfjörð Bjarmason [this message]
2021-02-09 21:41 ` [PATCH 11/12] test-lib-functions: assert correct parameter count Ævar Arnfjörð Bjarmason
2021-02-09 21:41 ` [PATCH 12/12] test-lib-functions: split out {debug,path,text} helpers Ævar Arnfjörð Bjarmason
2021-02-09 23:37   ` Denton Liu
2021-02-10  0:06   ` Junio C Hamano
2021-02-11 19:27     ` SZEDER Gábor
2021-02-11 22:18     ` Johannes Schindelin
2021-02-13 14:39       ` Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 00/11] test-lib: misc improvements Ævar Arnfjörð Bjarmason
2021-02-12 22:35   ` Junio C Hamano
2021-02-12 13:29 ` [PATCH v2 01/11] test-lib: remove check_var_migration Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 02/11] test lib: change "error" to "BUG" as appropriate Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 03/11] test-lib-functions: move test_set_index_version() to its user Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 04/11] test-lib-functions: remove generate_zero_bytes() wrapper Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 05/11] test libs: rename bundle helper to "lib-bundle.sh" Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 06/11] test libs: rename gitweb-lib.sh to lib-gitweb.sh Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 07/11] test-lib-functions: move function to lib-bitmap.sh Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 08/11] t/.gitattributes: sort lines Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 09/11] test libs: rename "diff-lib" to "lib-diff" Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 10/11] test-lib-functions: remove bug-inducing "diagnostics" helper param Ævar Arnfjörð Bjarmason
2021-02-12 13:29 ` [PATCH v2 11/11] test-lib-functions: assert correct parameter count Ævar Arnfjörð Bjarmason

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=20210209214159.22815-11-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=szeder.dev@gmail.com \
    --cc=zhiyou.jx@alibaba-inc.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.