(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:'git rebase preserve merges\n' span_id:15) 
                (Token id:Id.Lit_Chars val:'\n' span_id:16) 
                (Token
                  id: Id.Lit_Chars
                  val: 'This test runs git rebase with preserve merges and ensures commits\n'
                  span_id: 17
                ) 
                (Token
                  id: Id.Lit_Chars
                  val: 'dropped by the --cherry-pick flag have their childrens parents\n'
                  span_id: 18
                ) (Token id:Id.Lit_Chars val:'rewritten.\n' span_id:19)
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:58))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'\ttest_commit A file1 &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\ttest_commit B file1 1 &&\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\ttest_commit C file2 &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\ttest_commit D file1 2 &&\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\ttest_commit E file3 &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\tgit checkout A &&\n' span_id:68) 
          (Token id:Id.Lit_Chars val:'\ttest_commit F file4 &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\ttest_commit G file1 3 &&\n' span_id:70) 
          (Token id:Id.Lit_Chars val:'\ttest_commit H file5 &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit checkout F &&\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\ttest_commit I file6\n' span_id:73)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'skip same-resolution merges with -p' span_id:98))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:102) 
          (Token id:Id.Lit_Chars val:'\tgit checkout H &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge E &&\n' span_id:104) 
          (Token id:Id.Lit_Chars val:'\ttest_commit L file1 23 &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\tgit checkout I &&\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\ttest_commit G2 file1 3 &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge E &&\n' span_id:108) 
          (Token id:Id.Lit_Chars val:'\ttest_commit J file1 23 &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\ttest_commit K file7 file7 &&\n' span_id:110) 
          (Token id:Id.Lit_Chars val:'\tgit rebase -i -p L &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\ttest $(git rev-parse HEAD^^) = $(git rev-parse L) &&\n' span_id:112) 
          (Token id:Id.Lit_Chars val:'\ttest "23" = "$(cat file1)" &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\ttest "I" = "$(cat file6)" &&\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\ttest "file7" = "$(cat file7)"\n' span_id:115)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'keep different-resolution merges with -p' span_id:140))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:144) 
          (Token id:Id.Lit_Chars val:'\tgit checkout H &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge E &&\n' span_id:146) 
          (Token id:Id.Lit_Chars val:'\ttest_commit L2 file1 23 &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\tgit checkout I &&\n' span_id:148) 
          (Token id:Id.Lit_Chars val:'\ttest_commit G3 file1 4 &&\n' span_id:149) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge E &&\n' span_id:150) 
          (Token id:Id.Lit_Chars val:'\ttest_commit J2 file1 24 &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\ttest_commit K2 file7 file7 &&\n' span_id:152) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rebase -i -p L2 &&\n'
            span_id: 153
          ) (Token id:Id.Lit_Chars val:'\techo 234 > file1 &&\n' span_id:154) 
          (Token id:Id.Lit_Chars val:'\tgit add file1 &&\n' span_id:155) (Token id:Id.Lit_Chars val:'\tgit rebase --continue &&\n' span_id:156) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git rev-parse HEAD^^^) = $(git rev-parse L2) &&\n'
            span_id: 157
          ) (Token id:Id.Lit_Chars val:'\ttest "234" = "$(cat file1)" &&\n' span_id:158) 
          (Token id:Id.Lit_Chars val:'\ttest "I" = "$(cat file6)" &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\ttest "file7" = "$(cat file7)"\n' span_id:160)
        )
      }
    )
    (C {(test_done)})
  ]
)