(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 -p handling.' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:29) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\techo A >sub/file1 &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\tcp sub/file1 file1.saved &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\tgit add sub/file1 &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\techo B >sub/file1 &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tgit diff >patch.file &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tgit checkout -- sub/file1 &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\tgit mv sub s\xc3\xbcb &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\techo B >s\xc3\xbcb/file1 &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tgit diff >patch.escaped &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tgrep "[\\]" patch.escaped &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\trm s\xc3\xbcb/file1 &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\trmdir s\xc3\xbcb\n' span_id:42) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply git diff with -p2' span_id:49))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:53) (Token id:Id.Lit_Chars val:'\tcp file1.saved file1 &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\tgit apply -p2 patch.file\n' span_id:55) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply with too large -p' span_id:62))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\tcp file1.saved file1 &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\ttest_must_fail git apply --stat -p3 patch.file 2>err &&\n' span_id:68) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep "removing 3 leading" err\n' span_id: 69 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'apply (-p2) traditional diff with funny filenames' span_id: 76 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id:Id.Lit_Chars val:'\tcat >patch.quotes <<-\\EOF &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\tdiff -u "a/"sub/file1 "b/"sub/file1\n' span_id:82) (Token id:Id.Lit_Chars val:'\t--- "a/"sub/file1\n' span_id:83) (Token id:Id.Lit_Chars val:'\t+++ "b/"sub/file1\n' span_id:84) (Token id:Id.Lit_Chars val:'\t@@ -1 +1 @@\n' span_id:85) (Token id:Id.Lit_Chars val:'\t-A\n' span_id:86) (Token id:Id.Lit_Chars val:'\t+B\n' span_id:87) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:88) (Token id:Id.Lit_Chars val:'\techo B >expected &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\n' span_id:90) (Token id:Id.Lit_Chars val:'\tcp file1.saved file1 &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\tgit apply -p2 patch.quotes &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\ttest_cmp expected file1\n' span_id:93) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply with too large -p and fancy filename' span_id:100))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:104) (Token id:Id.Lit_Chars val:'\tcp file1.saved file1 &&\n' span_id:105) (Token id: Id.Lit_Chars val: '\ttest_must_fail git apply --stat -p3 patch.escaped 2>err &&\n' span_id: 106 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep "removing 3 leading" err\n' span_id:107) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply (-p2) diff, mode change only' span_id:114))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:118) (Token id:Id.Lit_Chars val:'\tcat >patch.chmod <<-\\EOF &&\n' span_id:119) (Token id:Id.Lit_Chars val:'\tdiff --git a/sub/file1 b/sub/file1\n' span_id:120) (Token id:Id.Lit_Chars val:'\told mode 100644\n' span_id:121) (Token id:Id.Lit_Chars val:'\tnew mode 100755\n' span_id:122) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:123) (Token id:Id.Lit_Chars val:'\ttest_chmod -x file1 &&\n' span_id:124) (Token id: Id.Lit_Chars val: '\tgit apply --index -p2 patch.chmod &&\n' span_id: 125 ) (Token id: Id.Lit_Chars val: '\tcase $(git ls-files -s file1) in 100755*) : good;; *) false;; esac\n' span_id: 126 ) ) } ) (C {(test_expect_success)} {(FILEMODE)} {(SQ (Token id:Id.Lit_Chars val:'file mode was changed' span_id:135))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:139) (Token id:Id.Lit_Chars val:'\ttest -x file1\n' span_id:140) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply (-p2) diff, rename' span_id:147))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:151) (Token id:Id.Lit_Chars val:'\tcat >patch.rename <<-\\EOF &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\tdiff --git a/sub/file1 b/sub/file2\n' span_id:153) (Token id:Id.Lit_Chars val:'\tsimilarity index 100%\n' span_id:154) (Token id:Id.Lit_Chars val:'\trename from sub/file1\n' span_id:155) (Token id:Id.Lit_Chars val:'\trename to sub/file2\n' span_id:156) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:157) (Token id:Id.Lit_Chars val:'\techo A >expected &&\n' span_id:158) (Token id:Id.Lit_Chars val:'\n' span_id:159) (Token id:Id.Lit_Chars val:'\tcp file1.saved file1 &&\n' span_id:160) (Token id:Id.Lit_Chars val:'\trm -f file2 &&\n' span_id:161) (Token id:Id.Lit_Chars val:'\tgit apply -p2 patch.rename &&\n' span_id:162) (Token id:Id.Lit_Chars val:'\ttest_cmp expected file2\n' span_id:163) ) } ) (C {(test_done)}) ] )