(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 --whitespace=fix\n' span_id:6) (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id: Id.Lit_Chars val: 'This test runs git rebase --whitespace=fix and make sure that it works.\n' span_id: 8 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:22) fd:-1 arg_word:{(file)}) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:25) fd: -1 here_begin: {(EOF)} here_end_span_id: 33 stdin_parts: [('a\n') ('b\n') ('c\n') ('\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:40) fd: -1 arg_word: {(expect-first)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:43) fd: -1 here_begin: {(EOF)} here_end_span_id: 50 stdin_parts: [('a\n') ('b\n') ('c\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:57) fd:-1 arg_word:{(second)}) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:60) fd: -1 here_begin: {(EOF)} here_end_span_id: 75 stdin_parts: [('a\n') ('b\n') ('c\n') ('\n') ('d\n') ('e\n') ('f\n') ('\n') ('\n') ('\n') ('\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:82) fd: -1 arg_word: {(expect-second)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:85) fd: -1 here_begin: {(EOF)} here_end_span_id: 96 stdin_parts: [('a\n') ('b\n') ('c\n') ('\n') ('d\n') ('e\n') ('f\n')] ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'blank line at end of file; extend at end of file' span_id: 101 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:105) (Token id: Id.Lit_Chars val: '\tgit commit --allow-empty -m "Initial empty commit" &&\n' span_id: 106 ) (Token id:Id.Lit_Chars val:'\tgit add file && git commit -m first &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tmv second file &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\tgit add file &&\tgit commit -m second &&\n' span_id:109) (Token id: Id.Lit_Chars val: '\tgit rebase --whitespace=fix HEAD^^ &&\n' span_id: 110 ) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code HEAD^:file expect-first &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\ttest_cmp file expect-second\n' span_id:112) ) } ) (command.Simple words: [{(sed)} {(-e) (SQ (Token id:Id.Lit_Chars val:s/Z// span_id:123))}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:126) fd:-1 arg_word:{(third)}) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:129) fd: -1 here_begin: {(EOF)} here_end_span_id: 147 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.Simple words: [{(sed)} {(-e) (SQ (Token id:Id.Lit_Chars val:'s/ //g' span_id:153))}] redirects: [ (redir.Redir op:(Token id:Id.Redir_Less val:'<' span_id:156) fd:-1 arg_word:{(third)}) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:159) fd: -1 arg_word: {(expect-third)} ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'two blanks line at end of file; extend at end of file' span_id: 166 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:170) (Token id: Id.Lit_Chars val: '\tcp third file && git add file && git commit -m third &&\n' span_id: 171 ) (Token id:Id.Lit_Chars val:'\tgit rebase --whitespace=fix HEAD^^ &&\n' span_id:172) (Token id: Id.Lit_Chars val: '\tgit diff --exit-code HEAD^:file expect-second &&\n' span_id: 173 ) (Token id:Id.Lit_Chars val:'\ttest_cmp file expect-third\n' span_id:174) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'same, but do not remove trailing spaces' span_id:181))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:185) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "-blank-at-eol" &&\n' span_id: 186 ) (Token id:Id.Lit_Chars val:'\tgit reset --hard HEAD^ &&\n' span_id:187) (Token id: Id.Lit_Chars val: '\tcp third file && git add file && git commit -m third &&\n' span_id: 188 ) (Token id:Id.Lit_Chars val:'\tgit rebase --whitespace=fix HEAD^^ &&\n' span_id:189) (Token id: Id.Lit_Chars val: '\tgit diff --exit-code HEAD^:file expect-second &&\n' span_id: 190 ) (Token id:Id.Lit_Chars val:'\ttest_cmp file third\n' span_id:191) ) } ) (command.Simple words: [{(sed)} {(-e) (SQ (Token id:Id.Lit_Chars val:s/Z// span_id:199))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:202) fd: -1 arg_word: {(beginning)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:205) fd: -1 here_begin: {(EOF)} here_end_span_id: 212 stdin_parts: [('a\n') ('\t\t Z\n') (' Z\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:216) fd: -1 arg_word: {(expect-beginning)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:219) fd: -1 here_begin: {(EOF)} here_end_span_id: 231 stdin_parts: [('a\n') ('\n') ('\n') ('1\n') ('2\n') ('3\n') ('4\n') ('5\n')] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'at beginning of file' span_id:236))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:240) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "blank-at-eol" &&\n' span_id: 241 ) (Token id:Id.Lit_Chars val:'\tcp beginning file &&\n' span_id:242) (Token id:Id.Lit_Chars val:'\tgit commit -m beginning file &&\n' span_id:243) (Token id:Id.Lit_Chars val:'\tfor i in 1 2 3 4 5; do\n' span_id:244) (Token id:Id.Lit_Chars val:'\t\techo $i\n' span_id:245) (Token id:Id.Lit_Chars val:'\tdone >> file &&\n' span_id:246) (Token id:Id.Lit_Chars val:'\tgit commit -m more file\t&&\n' span_id:247) (Token id:Id.Lit_Chars val:'\tgit rebase --whitespace=fix HEAD^^ &&\n' span_id:248) (Token id:Id.Lit_Chars val:'\ttest_cmp file expect-beginning\n' span_id:249) ) } ) (C {(test_done)}) ] )