(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 unique sha1 abbreviation on "index from..to" line'
                  span_id: 6
                )
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:16)
          fd: -1
          arg_word: {(expect_initial)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:19)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 24
          stdin_parts: [('100644 blob 51d2738463ea4ca66f8691c91e33ce64b7d41bb1\tfoo\n')]
        )
      ]
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:28)
          fd: -1
          arg_word: {(expect_update)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:31)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 36
          stdin_parts: [('100644 blob 51d2738efb4ad8a1e40bed839ab8e116f0a15e47\tfoo\n')]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:41))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\techo 4827 > foo &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:47) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "initial" &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\tgit cat-file -p HEAD: > actual &&\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect_initial actual &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\techo 11742 > foo &&\n' span_id:51) 
          (Token id:Id.Lit_Chars val:'\tgit commit -a -m "update" &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\tgit cat-file -p HEAD: > actual &&\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect_update actual\n' span_id:54)
        )
      }
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:60) fd:-1 arg_word:{(expect)})
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:63)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 68
          stdin_parts: [('index 51d27384..51d2738e 100644\n')]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'diff does not produce ambiguous index line' span_id:73))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:77) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit diff HEAD^..HEAD | grep index > actual &&\n'
            span_id: 78
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:79)
        )
      }
    )
    (C {(test_done)})
  ]
)