(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 revision walking api' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:26)
          fd: -1
          arg_word: {(run_twice_expected)}
        )
        (redir.HereDoc
          op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:29)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 39
          stdin_parts: [('1st\n') (' > add b\n') (' > add a\n') ('2nd\n') (' > add b\n') (' > add a\n')]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:44))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\techo a > a &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit add a &&\n' span_id:50) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "add a" &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\techo b > b &&\n' span_id:52) 
          (Token id:Id.Lit_Chars val:'\tgit add b &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\tgit commit -m "add b"\n' span_id:54)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'revision walking can be done twice' span_id:61))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:65) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest-revision-walking run-twice >run_twice_actual &&\n'
            span_id: 66
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp run_twice_expected run_twice_actual\n' span_id:67)
        )
      }
    )
    (C {(test_done)})
  ]
)