(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'add -e basic tests'>)} spids: [13] ) ] ) (C {<.>} {<'./test-lib.sh'>}) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<file>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 46 stdin_parts: [ <'LO, praise of the prowess of people-kings\n'> <'of spear-armed Danes, in days long sped,\n'> <'we have heard, and what honor the athelings won!\n'> <'Oft Scyld the Scefing from squadroned foes,\n'> <'from many a tribe, the mead-bench tore,\n'> <'awing the earls. Since erst he lay\n'> <'friendless, a foundling, fate repaid him:\n'> <'for he waxed under welkin, in wealth he throve,\n'> <'till before him the folk, both far and near,\n'> <'who house by the whale-path, heard his mandate,\n'> <'gave him gifts: a good king he!\n'> ] ) ) ] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<second-part>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 65 stdin_parts: [ <'To him an heir was afterward born,\n'> <'a son in his halls, whom heaven sent\n'> <'to favor the folk, feeling their woe\n'> <'that erst they had lacked an earl for leader\n'> <'so long a while; the Lord endowed him,\n'> <'the Wielder of Wonder, with world\'s renown.\n'> ] ) ) ] do_fork: T ) (C {<test_expect_success>} {(SQ <setup>)} { (SQ <'\n'> <'\n'> <'\tgit add file &&\n'> <'\ttest_tick &&\n'> <'\tgit commit -m initial file\n'> <'\n'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected-patch>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 116 stdin_parts: [ <'diff --git a/file b/file\n'> <'index b9834b5..9020acb 100644\n'> <'--- a/file\n'> <'+++ b/file\n'> <'@@ -1,11 +1,6 @@\n'> <'-LO, praise of the prowess of people-kings\n'> <'-of spear-armed Danes, in days long sped,\n'> <'-we have heard, and what honor the athelings won!\n'> <'-Oft Scyld the Scefing from squadroned foes,\n'> <'-from many a tribe, the mead-bench tore,\n'> <'-awing the earls. Since erst he lay\n'> <'-friendless, a foundling, fate repaid him:\n'> <'-for he waxed under welkin, in wealth he throve,\n'> <'-till before him the folk, both far and near,\n'> <'-who house by the whale-path, heard his mandate,\n'> <'-gave him gifts: a good king he!\n'> <'+To him an heir was afterward born,\n'> <'+a son in his halls, whom heaven sent\n'> <'+to favor the folk, feeling their woe\n'> <'+that erst they had lacked an earl for leader\n'> <'+so long a while; the Lord endowed him,\n'> <'+the Wielder of Wonder, with world\'s renown.\n'> ] ) ) ] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<patch>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 141 stdin_parts: [ <'diff --git a/file b/file\n'> <'index b9834b5..ef6e94c 100644\n'> <'--- a/file\n'> <'+++ b/file\n'> <'@@ -3,1 +3,333 @@ of spear-armed Danes, in days long sped,\n'> <' we have heard, and what honor the athelings won!\n'> <'+\n'> <' Oft Scyld the Scefing from squadroned foes,\n'> <'@@ -2,7 +1,5 @@ awing the earls. Since erst he lay\n'> <' friendless, a foundling, fate repaid him:\n'> <'+\n'> <' for he waxed under welkin, in wealth he throve,\n'> ] ) ) ] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<EOF>} here_end_span_id: 171 stdin_parts: [ <'diff --git a/file b/file\n'> <'index b9834b5..ef6e94c 100644\n'> <'--- a/file\n'> <'+++ b/file\n'> <'@@ -1,10 +1,12 @@\n'> <' LO, praise of the prowess of people-kings\n'> <' of spear-armed Danes, in days long sped,\n'> <' we have heard, and what honor the athelings won!\n'> <'+\n'> <' Oft Scyld the Scefing from squadroned foes,\n'> <' from many a tribe, the mead-bench tore,\n'> <' awing the earls. Since erst he lay\n'> <' friendless, a foundling, fate repaid him:\n'> <'+\n'> <' for he waxed under welkin, in wealth he throve,\n'> <' till before him the folk, both far and near,\n'> <' who house by the whale-path, heard his mandate,\n'> ] ) ) ] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'#!'> ($ Id.VSub_DollarName '$SHELL_PATH'))}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<fake-editor.sh>})] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<fake-editor.sh>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 195 stdin_parts: [<'mv -f "$1" orig-patch &&\n'> <'mv -f patch "$1"\n'>] ) ) ] do_fork: T ) (C {<test_set_editor>} {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) <'/fake-editor.sh'>)} ) (C {<chmod>} {<a> <Id.Lit_Other '+'> <x>} {<fake-editor.sh>}) (C {<test_expect_success>} {(SQ <'add -e'>)} { (SQ <'\n'> <'\n'> <'\tcp second-part file &&\n'> <'\tgit add -e &&\n'> <'\ttest_cmp second-part file &&\n'> <'\ttest_cmp orig-patch expected-patch &&\n'> <'\tgit diff --cached > out &&\n'> <'\ttest_cmp out expected\n'> <'\n'> ) } ) (C {<test_expect_success>} {(SQ <'add -e notices editor failure'>)} { (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\techo change >>file &&\n'> <'\ttest_must_fail env GIT_EDITOR=false git add -e &&\n'> <'\ttest_expect_code 1 git diff --exit-code\n'> ) } ) (C {<test_done>}) ] )