(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 notices removal patches generated by GNU diff' span_id: 12 ) ) } spids: [10] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:26) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >c &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\tdiff -ruN a/file b/file\n' span_id:28) (Token id:Id.Lit_Chars val:'\t--- a/file\tTS0\n' span_id:29) (Token id:Id.Lit_Chars val:'\t+++ b/file\tTS1\n' span_id:30) (Token id:Id.Lit_Chars val:'\t@@ -0,0 +1 @@\n' span_id:31) (Token id:Id.Lit_Chars val:'\t+something\n' span_id:32) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:33) (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id:Id.Lit_Chars val:'\tcat <<-EOF >d &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tdiff -ruN a/file b/file\n' span_id:36) (Token id:Id.Lit_Chars val:'\t--- a/file\tTS0\n' span_id:37) (Token id:Id.Lit_Chars val:'\t+++ b/file\tTS1\n' span_id:38) (Token id:Id.Lit_Chars val:'\t@@ -1 +0,0 @@\n' span_id:39) (Token id:Id.Lit_Chars val:'\t-something\n' span_id:40) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:41) (Token id:Id.Lit_Chars val:'\n' span_id:42) (Token id: Id.Lit_Chars val: '\ttimeWest="1982-09-16 07:00:00.000000000 -0800" &&\n' span_id: 43 ) (Token id:Id.Lit_Chars val:'\t timeGMT="1982-09-16 15:00:00.000000000 +0000" &&\n' span_id:44) (Token id: Id.Lit_Chars val: '\ttimeEast="1982-09-17 00:00:00.000000000 +0900" &&\n' span_id: 45 ) (Token id:Id.Lit_Chars val:'\n' span_id:46) (Token id: Id.Lit_Chars val: '\tepocWest="1969-12-31 16:00:00.000000000 -0800" &&\n' span_id: 47 ) (Token id:Id.Lit_Chars val:'\t epocGMT="1970-01-01 00:00:00.000000000 +0000" &&\n' span_id:48) (Token id: Id.Lit_Chars val: '\tepocEast="1970-01-01 09:00:00.000000000 +0900" &&\n' span_id: 49 ) (Token id:Id.Lit_Chars val:'\tepocWest2="1969-12-31 16:00:00 -08:00" &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\n' span_id:51) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$epocWest/" -e "s/TS1/$timeWest/" <c >createWest.patch &&\n' span_id: 52 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$epocEast/" -e "s/TS1/$timeEast/" <c >createEast.patch &&\n' span_id: 53 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$epocGMT/" -e "s/TS1/$timeGMT/" <c >createGMT.patch &&\n' span_id: 54 ) (Token id:Id.Lit_Chars val:'\n' span_id:55) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeWest/" -e "s/TS1/$timeWest/" <c >addWest.patch &&\n' span_id: 56 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeEast/" -e "s/TS1/$timeEast/" <c >addEast.patch &&\n' span_id: 57 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeGMT/" -e "s/TS1/$timeGMT/" <c >addGMT.patch &&\n' span_id: 58 ) (Token id:Id.Lit_Chars val:'\n' span_id:59) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeWest/" -e "s/TS1/$timeWest/" <d >emptyWest.patch &&\n' span_id: 60 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeEast/" -e "s/TS1/$timeEast/" <d >emptyEast.patch &&\n' span_id: 61 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeGMT/" -e "s/TS1/$timeGMT/" <d >emptyGMT.patch &&\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\n' span_id:63) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeWest/" -e "s/TS1/$epocWest/" <d >removeWest.patch &&\n' span_id: 64 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeEast/" -e "s/TS1/$epocEast/" <d >removeEast.patch &&\n' span_id: 65 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeGMT/" -e "s/TS1/$epocGMT/" <d >removeGMT.patch &&\n' span_id: 66 ) (Token id: Id.Lit_Chars val: '\tsed -e "s/TS0/$timeWest/" -e "s/TS1/$epocWest2/" <d >removeWest2.patch &&\n' span_id: 67 ) (Token id:Id.Lit_Chars val:'\n' span_id:68) (Token id:Id.Lit_Chars val:'\techo something >something &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\t>empty\n' span_id:70) ) } ) (command.ForEach iter_name: patch iter_words: [{(Id.Lit_Star '*') (.patch)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(test_expect_success)} {(DQ ('test ') ($ Id.VSub_DollarName '$patch'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:94) (Token id: Id.Lit_Chars val: '\t\trm -f file .git/index &&\n' span_id: 95 ) (Token id:Id.Lit_Chars val:'\t\tcase "$patch" in\n' span_id:96) (Token id:Id.Lit_Chars val:'\t\tcreate*)\n' span_id:97) (Token id:Id.Lit_Chars val:'\t\t\t# must be able to create\n' span_id:98) (Token id: Id.Lit_Chars val: '\t\t\tgit apply --index $patch &&\n' span_id: 99 ) (Token id:Id.Lit_Chars val:'\t\t\ttest_cmp file something &&\n' span_id:100) (Token id: Id.Lit_Chars val: '\t\t\t# must notice the file is already there\n' span_id: 101 ) (Token id:Id.Lit_Chars val:'\t\t\t>file &&\n' span_id:102) (Token id:Id.Lit_Chars val:'\t\t\tgit add file &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\t\t\ttest_must_fail git apply $patch\n' span_id:104) (Token id:Id.Lit_Chars val:'\t\t\t;;\n' span_id:105) (Token id:Id.Lit_Chars val:'\t\tadd*)\n' span_id:106) (Token id: Id.Lit_Chars val: '\t\t\t# must be able to create or patch\n' span_id: 107 ) (Token id:Id.Lit_Chars val:'\t\t\tgit apply $patch &&\n' span_id:108) (Token id: Id.Lit_Chars val: '\t\t\ttest_cmp file something &&\n' span_id: 109 ) (Token id:Id.Lit_Chars val:'\t\t\t>file &&\n' span_id:110) (Token id: Id.Lit_Chars val: '\t\t\tgit apply $patch &&\n' span_id: 111 ) (Token id:Id.Lit_Chars val:'\t\t\ttest_cmp file something\n' span_id:112) (Token id:Id.Lit_Chars val:'\t\t\t;;\n' span_id:113) (Token id:Id.Lit_Chars val:'\t\tempty*)\n' span_id:114) (Token id: Id.Lit_Chars val: '\t\t\t# must leave an empty file\n' span_id: 115 ) (Token id:Id.Lit_Chars val:'\t\t\tcat something >file &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\t\t\tgit add file &&\n' span_id:117) (Token id:Id.Lit_Chars val:'\t\t\tgit apply --index $patch &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\t\t\ttest -f file &&\n' span_id:119) (Token id:Id.Lit_Chars val:'\t\t\ttest_cmp empty file\n' span_id:120) (Token id:Id.Lit_Chars val:'\t\t\t;;\n' span_id:121) (Token id:Id.Lit_Chars val:'\t\tremove*)\n' span_id:122) (Token id: Id.Lit_Chars val: '\t\t\t# must remove the file\n' span_id: 123 ) (Token id:Id.Lit_Chars val:'\t\t\tcat something >file &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\t\t\tgit add file &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\t\t\tgit apply --index $patch &&\n' span_id:126) (Token id:Id.Lit_Chars val:'\t\t\t! test -f file\n' span_id:127) (Token id:Id.Lit_Chars val:'\t\t\t;;\n' span_id:128) (Token id:Id.Lit_Chars val:'\t\tesac\n' span_id:129) (Token id:Id.Lit_Chars val:'\t' span_id:130) ) } ) ] ) ) (C {(test_done)}) ] )