show-branch tests: modernize test code

Modernize test code added in ce567d1867 (Add test to show that
show-branch misses out the 8th column, 2008-07-23) and
11ee57bc4c (sort_in_topological_order(): avoid setting a commit flag,
2008-07-23) to use test helpers.

I'm renaming "out" to "actual" for consistency with other tests, and
introducing a "branches.sorted" file in the setup, to make it clear
that it's important that the list be sorted in this particular way.

The "show-branch" output is indented with spaces, which would cause
complaints under "git show --check" with an indented here-doc
block. Let's prefix the lines with "> " to work around that, and to
make it clear that the leading whitespace is important.

We can also get rid of the hardcoding of "main" added here in
334afbc76f (tests: mark tests relying on the current default for
`init.defaultBranch`, 2020-11-18). For this test we're setting up an
"initial" commit anyway, and now that we've moved over to test_commit
we can reference that instead.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2021-06-14 19:18:08 +02:00 committed by Junio C Hamano
parent 4f5ce122ac
commit 9b6e74a9c0

View file

@ -2,69 +2,57 @@
test_description='test show-branch'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
numbers="1 2 3 4 5 6 7 8 9 10"
test_expect_success 'setup' '
> file &&
git add file &&
test_tick &&
git commit -m initial &&
for i in $numbers
test_commit initial &&
for i in $(test_seq 1 10)
do
git checkout -b branch$i main &&
> file$i &&
git add file$i &&
test_tick &&
git commit -m branch$i || return 1
done
git checkout -b branch$i initial &&
test_commit --no-tag branch$i
done &&
git for-each-ref \
--sort=version:refname \
--format="%(refname:strip=2)" \
"refs/heads/branch*" >branches.sorted &&
sed "s/^> //" >expect <<-\EOF
> ! [branch1] branch1
> ! [branch2] branch2
> ! [branch3] branch3
> ! [branch4] branch4
> ! [branch5] branch5
> ! [branch6] branch6
> ! [branch7] branch7
> ! [branch8] branch8
> ! [branch9] branch9
> * [branch10] branch10
> ----------
> * [branch10] branch10
> + [branch9] branch9
> + [branch8] branch8
> + [branch7] branch7
> + [branch6] branch6
> + [branch5] branch5
> + [branch4] branch4
> + [branch3] branch3
> + [branch2] branch2
> + [branch1] branch1
> +++++++++* [branch10^] initial
EOF
'
cat > expect << EOF
! [branch1] branch1
! [branch2] branch2
! [branch3] branch3
! [branch4] branch4
! [branch5] branch5
! [branch6] branch6
! [branch7] branch7
! [branch8] branch8
! [branch9] branch9
* [branch10] branch10
----------
* [branch10] branch10
+ [branch9] branch9
+ [branch8] branch8
+ [branch7] branch7
+ [branch6] branch6
+ [branch5] branch5
+ [branch4] branch4
+ [branch3] branch3
+ [branch2] branch2
+ [branch1] branch1
+++++++++* [branch10^] initial
EOF
test_expect_success 'show-branch with more than 8 branches' '
git show-branch $(for i in $numbers; do echo branch$i; done) > out &&
test_cmp expect out
git show-branch $(cat branches.sorted) >actual &&
test_cmp expect actual
'
test_expect_success 'show-branch with showbranch.default' '
for i in $numbers; do
git config --add showbranch.default branch$i
for branch in $(cat branches.sorted)
do
test_config showbranch.default $branch --add
done &&
git show-branch >out &&
test_cmp expect out
git show-branch >actual &&
test_cmp expect actual
'
test_done