(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ <'Test built-in diff output engine.\n'> <'\n'>)} spids: [13] ) ] ) (C {<.>} {<./test-lib.sh>}) (C {<.>} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) </diff-lib.sh>}) (command.Simple words: [{<echo>} {(SQ <'Line 1\n'> <'Line 2\n'> <'line 3'>)}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<path0>})] ) (command.Simple words: [{<cat>} {<path0>}] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<path1>})] ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<path1>}) (C {<test_expect_success>} {(SQ <'update-index --add two files with and without +x.'>)} {(SQ <'\n'> <'\tgit update-index --add path0 path1\n'>)} ) (C {<mv>} {<path0>} {<path0->}) (command.Simple words: [{<sed>} {<-e>} {(SQ <s/line/Line/>)}] redirects: [ (redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<path0->}) (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<path0>}) ] ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<path0>}) (C {<rm>} {<-f>} {<path1>}) (C {<test_expect_success>} {(SQ <'git diff-files -p after editing work tree.'>)} {(SQ <'\n'> <'\tgit diff-files -p >actual\n'>)} ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<git>} {<config>} {<--get>} {<core.filemode>})] ) ) ) } {<Id.Lit_Equals '='>} {<false>} {<Id.Lit_RBracket ']'>} ) ] action: [(C {<say>} {(SQ <'filemode disabled on the filesystem'>)}) (C {<test_done>})] spids: [117 139] ) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<expected>}) (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 181 stdin_parts: [ <'diff --git a/path0 b/path0\n'> <'old mode 100644\n'> <'new mode 100755\n'> <'--- a/path0\n'> <'+++ b/path0\n'> <'@@ -1,3 +1,3 @@\n'> <' Line 1\n'> <' Line 2\n'> <'-line 3\n'> <'+Line 3\n'> <'diff --git a/path1 b/path1\n'> <'deleted file mode 100755\n'> <'--- a/path1\n'> <'+++ /dev/null\n'> <'@@ -1,3 +0,0 @@\n'> <'-Line 1\n'> <'-Line 2\n'> <'-line 3\n'> ] ) ] ) (C {<test_expect_success>} {(SQ <'validate git diff-files -p output.'>)} {(SQ <'\n'> <'\tcompare_diff_patch expected actual\n'>)} ) (C {<test_expect_success>} {(SQ <'git diff-files -s after editing work tree'>)} { (SQ <'\n'> <'\tgit diff-files -s >actual 2>err &&\n'> <'\ttest_must_be_empty actual &&\n'> <'\ttest_must_be_empty err\n'> ) } ) (C {<test_expect_success>} {(SQ <'git diff-files --no-patch as synonym for -s'>)} { (SQ <'\n'> <'\tgit diff-files --no-patch >actual 2>err &&\n'> <'\ttest_must_be_empty actual &&\n'> <'\ttest_must_be_empty err\n'> ) } ) (C {<test_expect_success>} {(SQ <'git diff-files --no-patch --patch shows the patch'>)} { (SQ <'\n'> <'\tgit diff-files --no-patch --patch >actual &&\n'> <'\tcompare_diff_patch expected actual\n'> ) } ) (C {<test_expect_success>} {(SQ <'git diff-files --no-patch --patch-with-raw shows the patch and raw data'>)} { (SQ <'\n'> <'\tgit diff-files --no-patch --patch-with-raw >actual &&\n'> < '\tgrep -q "^:100644 100755 .* 0000000000000000000000000000000000000000 M\tpath0\\$" actual &&\n' > <'\ttail -n +4 actual >actual-patch &&\n'> <'\tcompare_diff_patch expected actual-patch\n'> ) } ) (C {<test_expect_success>} {(SQ <'git diff-files --patch --no-patch does not show the patch'>)} { (SQ <'\n'> <'\tgit diff-files --patch --no-patch >actual 2>err &&\n'> <'\ttest_must_be_empty actual &&\n'> <'\ttest_must_be_empty err\n'> ) } ) (C {<test_done>}) ] )