(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'Test for "git log --decorate" colors'>)}
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.FuncDef
      name: get_color
      body: 
        (command.BraceGroup
          children: [(C {(git)} {(config)} {(--get-color)} {(no.such.slot)} {(DQ ($ VSub_Number '$1'))})]
        )
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <'\n'> <'\tgit config diff.color.commit yellow &&\n'> 
          <'\tgit config color.decorate.branch green &&\n'> <'\tgit config color.decorate.remoteBranch red &&\n'> 
          <'\tgit config color.decorate.tag "reverse bold yellow" &&\n'> <'\tgit config color.decorate.stash magenta &&\n'> <'\tgit config color.decorate.HEAD cyan &&\n'> 
          <'\n'> <'\tc_reset=$(get_color reset) &&\n'> <'\n'> <'\tc_commit=$(get_color yellow) &&\n'> 
          <'\tc_branch=$(get_color green) &&\n'> <'\tc_remoteBranch=$(get_color red) &&\n'> <'\tc_tag=$(get_color "reverse bold yellow") &&\n'> 
          <'\tc_stash=$(get_color magenta) &&\n'> <'\tc_HEAD=$(get_color cyan) &&\n'> <'\n'> <'\ttest_commit A &&\n'> <'\tgit clone . other &&\n'> 
          <'\t(\n'> <'\t\tcd other &&\n'> <'\t\ttest_commit A1\n'> <'\t) &&\n'> <'\n'> 
          <'\tgit remote add -f other ./other &&\n'> <'\ttest_commit B &&\n'> <'\tgit tag v1.0 &&\n'> <'\techo >>A.t &&\n'> 
          <'\tgit stash save Changes to A.t\n'>
        )
      }
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expected)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 267
          stdin_parts: [
            (${ VSub_Name c_commit)
            (COMMIT_ID)
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (' (')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_HEAD)
            ('HEAD ->')
            (' ')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_branch)
            (master)
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (',')
            (' ')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_tag)
            ('tag: v1.0')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (',')
            (' ')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_tag)
            ('tag: B')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (')')
            (${ VSub_Name c_reset)
            (' B\n')
            (${ VSub_Name c_commit)
            (COMMIT_ID)
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (' (')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_tag)
            ('tag: A1')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (',')
            (' ')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_remoteBranch)
            (other/master)
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (')')
            (${ VSub_Name c_reset)
            (' A1\n')
            (${ VSub_Name c_commit)
            (COMMIT_ID)
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (' (')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_stash)
            (refs/stash)
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (')')
            (${ VSub_Name c_reset)
            (' On master: Changes to A.t\n')
            (${ VSub_Name c_commit)
            (COMMIT_ID)
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (' (')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_tag)
            ('tag: A')
            (${ VSub_Name c_reset)
            (${ VSub_Name c_commit)
            (')')
            (${ VSub_Name c_reset)
            (' A\n')
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Commit Decorations Colored Correctly'>)} 
      {
        (SQ <'\n'> 
          <'\tgit log --first-parent --abbrev=10 --all --decorate --oneline --color=always |\n'> <'\tsed "s/[0-9a-f]\\{10,10\\}/COMMIT_ID/" >out &&\n'> <'\ttest_cmp expected out\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)