]> git.ipfire.org Git - thirdparty/git.git/commitdiff
show-branch tests: modernize test code
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Mon, 14 Jun 2021 17:18:08 +0000 (19:18 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 15 Jun 2021 03:12:01 +0000 (12:12 +0900)
Modernize test code added in ce567d1867a (Add test to show that
show-branch misses out the 8th column, 2008-07-23) and
11ee57bc4c4 (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
334afbc76fb (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>
t/t3202-show-branch.sh

index 8cfbbf79c1b996ad628d8c523db2ae9c53633932..7b06048905a12d5d317f8b3d696aedb954d18683 100755 (executable)
@@ -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