(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description) op: assign_op.Equal rhs: {(SQ <'git apply with weird postimage filenames'>)} spids: [4] ) ] redirects: [] ) (C {<.>} {<'./test-lib.sh'>}) (C {<test_expect_success>} {(SQ <setup>)} { (SQ <'\n'> <'\tvector=$TEST_DIRECTORY/t4135 &&\n'> <'\n'> <'\ttest_tick &&\n'> <'\tgit commit --allow-empty -m preimage &&\n'> <'\tgit tag preimage &&\n'> <'\n'> <'\treset_preimage() {\n'> <'\t\tgit checkout -f preimage^0 &&\n'> <'\t\tgit read-tree -u --reset HEAD &&\n'> <'\t\tgit update-index --refresh\n'> <'\t} &&\n'> <'\n'> <'\ttest_when_finished "rm -f \\"tab\tembedded.txt\\"" &&\n'> <'\ttest_when_finished "rm -f '> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'\\"quoteembedded\\".txt'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'" &&\n'> <'\tif test_have_prereq !MINGW &&\n'> <'\t\ttouch -- "tab\tembedded.txt" '>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'"quoteembedded".txt'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'\n'> <'\tthen\n'> <'\t\ttest_set_prereq FUNNYNAMES\n'> <'\tfi\n'>) } ) (command.ShFunction name: try_filename body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'desc='> name:desc) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [68] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'postimage='> name:postimage) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [72] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prereq='> name:prereq) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } spids: [76] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exp1='> name:exp1) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 4> var_name: 4 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<success>}) right: <Id.Right_DollarBrace '}'> ) } spids: [83] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exp2='> name:exp2) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 5> var_name: 5 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<success>}) right: <Id.Right_DollarBrace '}'> ) } spids: [91] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exp3='> name:exp3) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 6> var_name: 6 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<success>}) right: <Id.Right_DollarBrace '}'> ) } spids: [99] ) ] redirects: [] ) (C {<test_expect_> ($ Id.VSub_DollarName exp1)} {($ Id.VSub_DollarName prereq)} {(DQ ($ Id.VSub_DollarName desc) <', git-style file creation patch'>)} { (DQ <'\n'> <'\t\techo postimage >expected &&\n'> <'\t\treset_preimage &&\n'> <'\t\trm -f \''> ($ Id.VSub_DollarName postimage) <'\' &&\n'> <'\t\tgit apply -v '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <vector> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'/\'git-'> ($ Id.VSub_DollarName desc) <'.diff\' &&\n'> <'\t\ttest_cmp expected \''> ($ Id.VSub_DollarName postimage) <'\'\n'> <'\t'> ) } ) (C {<test_expect_> ($ Id.VSub_DollarName exp2)} {($ Id.VSub_DollarName prereq)} {(DQ ($ Id.VSub_DollarName desc) <', traditional patch'>)} { (DQ <'\n'> <'\t\techo postimage >expected &&\n'> <'\t\treset_preimage &&\n'> <'\t\techo preimage >\''> ($ Id.VSub_DollarName postimage) <'\' &&\n'> <'\t\tgit apply -v '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <vector> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'/\'diff-'> ($ Id.VSub_DollarName desc) <'.diff\' &&\n'> <'\t\ttest_cmp expected \''> ($ Id.VSub_DollarName postimage) <'\'\n'> <'\t'> ) } ) (C {<test_expect_> ($ Id.VSub_DollarName exp3)} {($ Id.VSub_DollarName prereq)} {(DQ ($ Id.VSub_DollarName desc) <', traditional file creation patch'>)} { (DQ <'\n'> <'\t\techo postimage >expected &&\n'> <'\t\treset_preimage &&\n'> <'\t\trm -f \''> ($ Id.VSub_DollarName postimage) <'\' &&\n'> <'\t\tgit apply -v '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <vector> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'/\'add-'> ($ Id.VSub_DollarName desc) <'.diff\' &&\n'> <'\t\ttest_cmp expected \''> ($ Id.VSub_DollarName postimage) <'\'\n'> <'\t'> ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<try_filename>} {(SQ <plain>)} {(SQ <postimage.txt>)}) (C {<try_filename>} {(SQ <'with spaces'>)} {(SQ <'post image.txt'>)}) (C {<try_filename>} {(SQ <'with tab'>)} {(SQ <'post\timage.txt'>)} {<FUNNYNAMES>}) (C {<try_filename>} {(SQ <'with backslash'>)} {(SQ <'post\\image.txt'>)} {<BSLASHPSPEC>}) (C {<try_filename>} {(SQ <'with quote'>)} {(SQ <'"postimage".txt'>)} {<FUNNYNAMES>} {<success>} {<failure>} {<success>} ) (C {<test_expect_success>} {(SQ <'whitespace-damaged traditional patch'>)} { (SQ <'\n'> <'\techo postimage >expected &&\n'> <'\treset_preimage &&\n'> <'\trm -f postimage.txt &&\n'> <'\tgit apply -v "$vector/damaged.diff" &&\n'> <'\ttest_cmp expected postimage.txt\n'> ) } ) (C {<test_expect_success>} {(SQ <'traditional patch with colon in timezone'>)} { (SQ <'\n'> <'\techo postimage >expected &&\n'> <'\treset_preimage &&\n'> <'\trm -f "post image.txt" &&\n'> <'\tgit apply "$vector/funny-tz.diff" &&\n'> <'\ttest_cmp expected "post image.txt"\n'> ) } ) (C {<test_expect_success>} {(SQ <'traditional, whitespace-damaged, colon in timezone'>)} { (SQ <'\n'> <'\techo postimage >expected &&\n'> <'\treset_preimage &&\n'> <'\trm -f "post image.txt" &&\n'> <'\tgit apply "$vector/damaged-tz.diff" &&\n'> <'\ttest_cmp expected "post image.txt"\n'> ) } ) (C {<test_done>}) ] )