(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 apply with weird postimage filenames' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\tvector=$TEST_DIRECTORY/t4135 &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\n' span_id:24) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:25) (Token id: Id.Lit_Chars val: '\tgit commit --allow-empty -m preimage &&\n' span_id: 26 ) (Token id:Id.Lit_Chars val:'\tgit tag preimage &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\n' span_id:28) (Token id:Id.Lit_Chars val:'\treset_preimage() {\n' span_id:29) (Token id:Id.Lit_Chars val:'\t\tgit checkout -f preimage^0 &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\t\tgit read-tree -u --reset HEAD &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\t\tgit update-index --refresh\n' span_id:32) (Token id:Id.Lit_Chars val:'\t} &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -f \\"tab\tembedded.txt\\"" &&\n' span_id: 35 ) (Token id:Id.Lit_Chars val:'\ttest_when_finished "rm -f ' span_id:36) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:38)) (SQ (Token id:Id.Lit_Chars val:'\\"quoteembedded\\".txt' span_id:40)) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:42)) (SQ (Token id:Id.Lit_Chars val:'" &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\tif test_have_prereq !MINGW &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\t\ttouch -- "tab\tembedded.txt" ' span_id:46) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:48)) (SQ (Token id:Id.Lit_Chars val:'"quoteembedded".txt' span_id:50)) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:"\\'" span_id:52)) (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\ttest_set_prereq FUNNYNAMES\n' span_id:56) (Token id:Id.Lit_Chars val:'\tfi\n' span_id:57) ) } ) (command.ShFunction name: try_filename body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:desc) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [68] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:postimage) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [72] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prereq) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Number val:3 span_id:78) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } spids: [76] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:exp1) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Number val:4 span_id:85) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(success)}) ) } spids: [83] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:exp2) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Number val:5 span_id:93) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(success)}) ) } spids: [91] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:exp3) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Number val:6 span_id:101) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(success)}) ) } spids: [99] ) ] ) (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: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:126) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:127)) (vector) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:129) ) ("/'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: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:159) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:160)) (vector) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:162) ) ("/'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: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:192) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:193)) (vector) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:195) ) ("/'add-") ($ Id.VSub_DollarName '$desc') (".diff' &&\n") ("\t\ttest_cmp expected '") ($ Id.VSub_DollarName '$postimage') ("'\n") ('\t') ) } ) ] ) ) (C {(try_filename)} {(SQ (Token id:Id.Lit_Chars val:plain span_id:211))} {(SQ (Token id:Id.Lit_Chars val:postimage.txt span_id:215))} ) (C {(try_filename)} {(SQ (Token id:Id.Lit_Chars val:'with spaces' span_id:221))} {(SQ (Token id:Id.Lit_Chars val:'post image.txt' span_id:225))} ) (C {(try_filename)} {(SQ (Token id:Id.Lit_Chars val:'with tab' span_id:231))} {(SQ (Token id:Id.Lit_Chars val:'post\timage.txt' span_id:235))} {(FUNNYNAMES)} ) (C {(try_filename)} {(SQ (Token id:Id.Lit_Chars val:'with backslash' span_id:243))} {(SQ (Token id:Id.Lit_Chars val:'post\\image.txt' span_id:247))} {(BSLASHPSPEC)} ) (C {(try_filename)} {(SQ (Token id:Id.Lit_Chars val:'with quote' span_id:255))} {(SQ (Token id:Id.Lit_Chars val:'"postimage".txt' span_id:259))} {(FUNNYNAMES)} {(success)} {(failure)} {(success)} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'whitespace-damaged traditional patch' span_id:274))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:278) (Token id:Id.Lit_Chars val:'\techo postimage >expected &&\n' span_id:279) (Token id:Id.Lit_Chars val:'\treset_preimage &&\n' span_id:280) (Token id:Id.Lit_Chars val:'\trm -f postimage.txt &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\tgit apply -v "$vector/damaged.diff" &&\n' span_id:282) (Token id:Id.Lit_Chars val:'\ttest_cmp expected postimage.txt\n' span_id:283) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'traditional patch with colon in timezone' span_id:290))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:294) (Token id:Id.Lit_Chars val:'\techo postimage >expected &&\n' span_id:295) (Token id:Id.Lit_Chars val:'\treset_preimage &&\n' span_id:296) (Token id:Id.Lit_Chars val:'\trm -f "post image.txt" &&\n' span_id:297) (Token id:Id.Lit_Chars val:'\tgit apply "$vector/funny-tz.diff" &&\n' span_id:298) (Token id:Id.Lit_Chars val:'\ttest_cmp expected "post image.txt"\n' span_id:299) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'traditional, whitespace-damaged, colon in timezone' span_id: 306 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:310) (Token id:Id.Lit_Chars val:'\techo postimage >expected &&\n' span_id:311) (Token id:Id.Lit_Chars val:'\treset_preimage &&\n' span_id:312) (Token id:Id.Lit_Chars val:'\trm -f "post image.txt" &&\n' span_id:313) (Token id:Id.Lit_Chars val:'\tgit apply "$vector/damaged-tz.diff" &&\n' span_id:314) (Token id:Id.Lit_Chars val:'\ttest_cmp expected "post image.txt"\n' span_id:315) ) } ) (C {(test_done)}) ] )