(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: 
            {
              (SQ <'git rebase --whitespace=fix\n'> <'\n'> 
                <'This test runs git rebase --whitespace=fix and make sure that it works.\n'>
              )
            }
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(file)} spids:[22])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('a\n') ('b\n') ('c\n') ('\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [25]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect-first)} spids:[39])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('a\n') ('b\n') ('c\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [42]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(second)} spids:[55])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {(DQ ('a\n') ('b\n') ('c\n') ('\n') ('d\n') ('e\n') ('f\n') ('\n') ('\n') ('\n') ('\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [58]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect-second)} spids:[79])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('a\n') ('b\n') ('c\n') ('\n') ('d\n') ('e\n') ('f\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [82]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'blank line at end of file; extend at end of file'>)} 
      {
        (SQ <'\n'> <'\tgit commit --allow-empty -m "Initial empty commit" &&\n'> 
          <'\tgit add file && git commit -m first &&\n'> <'\tmv second file &&\n'> <'\tgit add file &&\tgit commit -m second &&\n'> 
          <'\tgit rebase --whitespace=fix HEAD^^ &&\n'> <'\tgit diff --exit-code HEAD^:file expect-first &&\n'> <'\ttest_cmp file expect-second\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(sed)} {(-e) (SQ <s/Z//>)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(third)} spids:[122])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('a\n') ('b\n') ('c\n') ('\n') ('d\n') ('e\n') ('f\n') ('    Z\n') (' Z\n') ('h\n') ('i\n') 
                ('j\n') ('k\n') ('l\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [125]
        )
      ]
    )
    (SimpleCommand
      words: [{(sed)} {(-e) (SQ <'s/ //g'>)}]
      redirects: [
        (Redir op_id:Redir_Less fd:-1 arg_word:{(third)} spids:[151])
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect-third)} spids:[154])
      ]
    )
    (C {(test_expect_success)} {(SQ <'two blanks line at end of file; extend at end of file'>)} 
      {
        (SQ <'\n'> <'\tcp third file && git add file && git commit -m third &&\n'> 
          <'\tgit rebase --whitespace=fix HEAD^^ &&\n'> <'\tgit diff --exit-code HEAD^:file expect-second &&\n'> <'\ttest_cmp file expect-third\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'same, but do not remove trailing spaces'>)} 
      {
        (SQ <'\n'> <'\tgit config core.whitespace "-blank-at-eol" &&\n'> 
          <'\tgit reset --hard HEAD^ &&\n'> <'\tcp third file && git add file && git commit -m third &&\n'> 
          <'\tgit rebase --whitespace=fix HEAD^^ &&\n'> <'\tgit diff --exit-code HEAD^:file expect-second &&\n'> <'\ttest_cmp file third\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(sed)} {(-e) (SQ <s/Z//>)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(beginning)} spids:[197])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('a\n') ('\t\t    Z\n') ('       Z\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [200]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect-beginning)} spids:[210])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('a\n') ('\n') ('\n') ('1\n') ('2\n') ('3\n') ('4\n') ('5\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [213]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'at beginning of file'>)} 
      {
        (SQ <'\n'> <'\tgit config core.whitespace "blank-at-eol" &&\n'> <'\tcp beginning file &&\n'> 
          <'\tgit commit -m beginning file &&\n'> <'\tfor i in 1 2 3 4 5; do\n'> <'\t\techo $i\n'> <'\tdone >> file &&\n'> 
          <'\tgit commit -m more file\t&&\n'> <'\tgit rebase --whitespace=fix HEAD^^ &&\n'> <'\ttest_cmp file expect-beginning\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)