Trygve Aaberge reported the current git bisect breakage on [1]. After starting bisection with --term-new and --term-old arguments to git bisect start, skipping with git bisect skip does not change HEAD as expected. Let's add the test to catch this breakage. [1]: https://lore.kernel.org/git/20210418151459.GC10839@xxxxxxxxxxx/ Signed-off-by: Bagas Sanjaya <bagasdotme@xxxxxxxxx> --- Changes from v1: * style changes requested by Junio * rename test script and edit test description to be more descriptive * remove exec </dev/null (I don't know what it means) * repo initialization is now on test_expect_success block (as requested by Junio) t/t6031-bisect-skip-with-term.sh | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 t/t6031-bisect-skip-with-term.sh diff --git a/t/t6031-bisect-skip-with-term.sh b/t/t6031-bisect-skip-with-term.sh new file mode 100755 index 0000000000..f1e1c4c1a2 --- /dev/null +++ b/t/t6031-bisect-skip-with-term.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# +# Copyright (c) 2021 Bagas Sanjaya +# + +test_description='Tests skipping bisect which the bisection is started with --term* arguments' + +GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main +export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME + +. ./test-lib.sh + +# hash variables to be used in bisection test +HASH_SKIPPED_FROM= +HASH_SKIPPED_TO= + +# test repo initialization +test_expect_success 'initialize testing repo with 20 commits' ' + for i in $(test_seq 1 20); do + echo $i >>test && + git add test && git commit -m "commit $i" && + test_tick + done +' + +# actual bisection test +test_expect_success 'test moving HEAD when skip bisecting' ' + git bisect start --term-new=ok --term-old=whoops HEAD HEAD~9 && + 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_done base-commit: b0c09ab8796fb736efa432b8e817334f3e5ee75a -- 2.25.1