diff mbox series

[06/13] bisect test: test exit codes on bad usage

Message ID patch-06.13-e2a69bf8f3b-20221104T132117Z-avarab@gmail.com (mailing list archive)
State New, archived
Headers show
Series bisect: v2.30.0 "run" regressions + make it built-in | expand

Commit Message

Ævar Arnfjörð Bjarmason Nov. 4, 2022, 1:22 p.m. UTC
Address a test blindspot, the "log" command is the odd one out because
"git-bisect.sh" ignores any arguments it receives. Let's test both the
exit codes we expect, and the stderr and stdout we're emitting.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/t6030-bisect-porcelain.sh | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
diff mbox series

Patch

diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index 69fad3f94f6..eace0af637e 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -34,6 +34,36 @@  HASH2=
 HASH3=
 HASH4=
 
+test_bisect_usage () {
+	local code="$1" &&
+	shift &&
+	cat >expect &&
+	test_expect_code $code "$@" >out 2>actual &&
+	test_must_be_empty out &&
+	test_cmp expect actual
+}
+
+test_expect_success 'bisect usage' '
+	test_bisect_usage 255 git bisect reset extra1 extra2 <<-\EOF &&
+	error: --bisect-reset requires either no argument or a commit
+	EOF
+	test_bisect_usage 255 git bisect terms extra1 extra2 <<-\EOF &&
+	error: --bisect-terms requires 0 or 1 argument
+	EOF
+	test_bisect_usage 255 git bisect next extra1 <<-\EOF &&
+	error: --bisect-next requires 0 arguments
+	EOF
+	test_bisect_usage 1 git bisect log extra1 <<-\EOF &&
+	error: We are not bisecting.
+	EOF
+	test_bisect_usage 255 git bisect replay <<-\EOF &&
+	error: no logfile given
+	EOF
+	test_bisect_usage 255 git bisect run <<-\EOF
+	error: bisect run failed: no command provided.
+	EOF
+'
+
 test_expect_success 'set up basic repo with 1 file (hello) and 4 commits' '
      add_line_into_file "1: Hello World" hello &&
      HASH1=$(git rev-parse --verify HEAD) &&