(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'test show-branch with more than 8 heads' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:numbers)
          op: assign_op.Equal
          rhs: {(DQ ('1 2 3 4 5 6 7 8 9 10'))}
          spids: [15]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:24))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:28) (Token id:Id.Lit_Chars val:'\n' span_id:29) 
          (Token id:Id.Lit_Chars val:'\t> file &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:31) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tgit commit -m initial &&\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id:Id.Lit_Chars val:'\tfor i in $numbers\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\tdo\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\tgit checkout -b branch$i master &&\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\t\t> file$i &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t\tgit add file$i &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\t\ttest_tick &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\t\tgit commit -m branch$i || return 1\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\tdone\n' span_id:42) (Token id:Id.Lit_Chars val:'\n' span_id:43)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:49) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:53)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 80
          stdin_parts: [
            ('! [branch1] branch1\n')
            (' ! [branch2] branch2\n')
            ('  ! [branch3] branch3\n')
            ('   ! [branch4] branch4\n')
            ('    ! [branch5] branch5\n')
            ('     ! [branch6] branch6\n')
            ('      ! [branch7] branch7\n')
            ('       ! [branch8] branch8\n')
            ('        ! [branch9] branch9\n')
            ('         * [branch10] branch10\n')
            ('----------\n')
            ('         * [branch10] branch10\n')
            ('        +  [branch9] branch9\n')
            ('       +   [branch8] branch8\n')
            ('      +    [branch7] branch7\n')
            ('     +     [branch6] branch6\n')
            ('    +      [branch5] branch5\n')
            ('   +       [branch4] branch4\n')
            ('  +        [branch3] branch3\n')
            (' +         [branch2] branch2\n')
            ('+          [branch1] branch1\n')
            ('+++++++++* [branch10^] initial\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'show-branch with more than 8 branches' span_id:85))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:89) (Token id:Id.Lit_Chars val:'\n' span_id:90) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit show-branch $(for i in $numbers; do echo branch$i; done) > out &&\n'
            span_id: 91
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\n' span_id:93)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'show-branch with showbranch.default' span_id:100))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:104) 
          (Token id:Id.Lit_Chars val:'\tfor i in $numbers; do\n' span_id:105) (Token id:Id.Lit_Chars val:'\t\tgit config --add showbranch.default branch$i\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit show-branch >out &&\n' span_id:108) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect out\n' span_id:109)
        )
      }
    )
    (C {(test_done)})
  ]
)