(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_description spids:[12])
          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: [12]
        )
      ]
      spids: [12]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(file)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 41
          stdin_parts: [('a\n') ('b\n') ('c\n') ('\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect-first)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 58
          stdin_parts: [('a\n') ('b\n') ('c\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(second)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 83
          stdin_parts: [('a\n') ('b\n') ('c\n') ('\n') ('d\n') ('e\n') ('f\n') ('\n') ('\n') ('\n') ('\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect-second)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 104
          stdin_parts: [('a\n') ('b\n') ('c\n') ('\n') ('d\n') ('e\n') ('f\n')]
        )
      ]
    )
    (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'>
        )
      }
    )
    (command.SimpleCommand
      words: [{(sed)} {(-e) (SQ <s/Z//>)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(third)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 155
          stdin_parts: [
            ('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')
          ]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(sed)} {(-e) (SQ <'s/ //g'>)}]
      redirects: [
        (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(third)})
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect-third)})
      ]
    )
    (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'>
        )
      }
    )
    (command.SimpleCommand
      words: [{(sed)} {(-e) (SQ <s/Z//>)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(beginning)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 220
          stdin_parts: [('a\n') ('\t\t    Z\n') ('       Z\n')]
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cat)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect-beginning)})
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 239
          stdin_parts: [('a\n') ('\n') ('\n') ('1\n') ('2\n') ('3\n') ('4\n') ('5\n')]
        )
      ]
    )
    (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)})
  ]
)