(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 --onto A...B' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY') (/lib-rebase.sh))})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\ttest_commit A &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\ttest_commit B &&\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\tgit branch side &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\ttest_commit C &&\n' span_id:68) 
          (Token id:Id.Lit_Chars val:'\tgit branch topic &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:70) 
          (Token id:Id.Lit_Chars val:'\ttest_commit H &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit merge H &&\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\tgit tag D &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\ttest_commit E &&\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\tgit checkout topic &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\ttest_commit F &&\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\ttest_commit G &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:80) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\tgit merge C &&\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\tgit tag I &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\ttest_commit J &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\ttest_commit K\n' span_id:85)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rebase --onto master...topic' span_id:92))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:96) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\tgit checkout topic &&\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard G &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\n' span_id:100) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit rebase --onto master...topic F &&\n'
            span_id: 101
          ) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD^1 >actual &&\n' span_id:102) 
          (Token id:Id.Lit_Chars val:'\tgit rev-parse C^0 >expect &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:104)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rebase --onto master...' span_id:111))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:115) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\tgit checkout topic &&\n' span_id:117) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard G &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\tgit rebase --onto master... F &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD^1 >actual &&\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\tgit rev-parse C^0 >expect &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:123)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rebase --onto master...side' span_id:130))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:134) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:136) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard K &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\n' span_id:138) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rebase --onto master...side J\n'
            span_id: 139
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rebase -i --onto master...topic' span_id:146))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:150) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\tgit checkout topic &&\n' span_id:152) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard G &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\tset_fake_editor &&\n' span_id:154) 
          (Token
            id: Id.Lit_Chars
            val: '\tEXPECT_COUNT=1 git rebase -i --onto master...topic F &&\n'
            span_id: 155
          ) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD^1 >actual &&\n' span_id:156) 
          (Token id:Id.Lit_Chars val:'\tgit rev-parse C^0 >expect &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:158)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rebase -i --onto master...' span_id:165))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:169) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\tgit checkout topic &&\n' span_id:171) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard G &&\n' span_id:172) (Token id:Id.Lit_Chars val:'\tset_fake_editor &&\n' span_id:173) 
          (Token
            id: Id.Lit_Chars
            val: '\tEXPECT_COUNT=1 git rebase -i --onto master... F &&\n'
            span_id: 174
          ) (Token id:Id.Lit_Chars val:'\tgit rev-parse HEAD^1 >actual &&\n' span_id:175) 
          (Token id:Id.Lit_Chars val:'\tgit rev-parse C^0 >expect &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:177)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'rebase -i --onto master...side' span_id:184))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:190) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard K &&\n' span_id:191) (Token id:Id.Lit_Chars val:'\n' span_id:192) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git rebase -i --onto master...side J\n'
            span_id: 193
          )
        )
      }
    )
    (C {(test_done)})
  ]
)