(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"common tail optimization">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:z) op:Equal rhs:{(zzzzzzzz)} spids:[15])] spids: [15] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:z) op: Equal rhs: { (DQ ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ) } spids: [22] ) ] spids: [22] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:z) op: Equal rhs: { (DQ ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ) } spids: [38] ) ] spids: [38] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:z) op: Equal rhs: {(DQ ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z") ($ VSub_Name "$z"))} spids: [54] ) ] spids: [54] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:z2047) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ ($ VSub_Name "$z"))} {(Lit_Other ":")} {(SQ <".\\(.*\\)">)}) ] ) left_token: <Left_CommandSub "$("> spids: [67 79] ) } spids: [66] ) ] spids: [66] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(zzzzzzzzzz)} spids:[87])] spids: [87] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:y) op: Equal rhs: { (DQ ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ($ VSub_Name "$x") ) } spids: [94] ) ] spids: [94] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:z) op: Equal rhs: { (DQ ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ($ VSub_Name "$y") ) } spids: [112] ) ] spids: [112] ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:z1000) op:Equal rhs:{($ VSub_Name "$z")} spids:[130])] spids: [130] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:z100) op:Equal rhs:{($ VSub_Name "$y")} spids:[133])] spids: [133] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:z10) op:Equal rhs:{($ VSub_Name "$x")} spids:[136])] spids: [136] ) (FuncDef name: zs body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [147] ) ] spids: [147] ) (While cond: [(C {(test)} {(DQ ($ VSub_Name "$count"))} {(-ge)} {(1000)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$count")}) right: (ArithWord w:{(Lit_Digits 1000)}) ) spids: [170 177] ) } spids: [169] ) ] spids: [169] ) (C {(printf)} {(DQ ("%s"))} {($ VSub_Name "$z1000")}) ] spids: [166 189] ) ) (While cond: [(C {(test)} {(DQ ($ VSub_Name "$count"))} {(-ge)} {(100)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$count")}) right: (ArithWord w:{(Lit_Digits 100)}) ) spids: [209 216] ) } spids: [208] ) ] spids: [208] ) (C {(printf)} {(DQ ("%s"))} {($ VSub_Name "$z100")}) ] spids: [205 228] ) ) (While cond: [(C {(test)} {(DQ ($ VSub_Name "$count"))} {(-ge)} {(10)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$count")}) right: (ArithWord w:{(Lit_Digits 10)}) ) spids: [248 255] ) } spids: [247] ) ] spids: [247] ) (C {(printf)} {(DQ ("%s"))} {($ VSub_Name "$z10")}) ] spids: [244 267] ) ) (While cond: [(C {(test)} {(DQ ($ VSub_Name "$count"))} {(-ge)} {(1)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$count")}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [287 294] ) } spids: [286] ) ] spids: [286] ) (C {(printf)} {(DQ (z))}) ] spids: [283 304] ) ) ] spids: [144] ) spids: [140 143] ) (FuncDef name: zc body: (BraceGroup children: [ (Sentence child: (C {(sed)} {(-e)} {(DQ ("/^index/d"))} {(-e)} {(DQ (s/) ($ VSub_Name "$z1000") (/Q/g))} {(-e)} {(DQ (s/QQQQQQQQQ/Z9000/g))} {(-e)} {(DQ (s/QQQQQQQQ/Z8000/g))} {(-e)} {(DQ (s/QQQQQQQ/Z7000/g))} {(-e)} {(DQ (s/QQQQQQ/Z6000/g))} {(-e)} {(DQ (s/QQQQQ/Z5000/g))} {(-e)} {(DQ (s/QQQQ/Z4000/g))} {(-e)} {(DQ (s/QQQ/Z3000/g))} {(-e)} {(DQ (s/QQ/Z2000/g))} {(-e)} {(DQ (s/Q/Z1000/g))} {(-e)} {(DQ (s/) ($ VSub_Name "$z100") (/Q/g))} {(-e)} {(DQ (s/QQQQQQQQQ/Z900/g))} {(-e)} {(DQ (s/QQQQQQQQ/Z800/g))} {(-e)} {(DQ (s/QQQQQQQ/Z700/g))} {(-e)} {(DQ (s/QQQQQQ/Z600/g))} {(-e)} {(DQ (s/QQQQQ/Z500/g))} {(-e)} {(DQ (s/QQQQ/Z400/g))} {(-e)} {(DQ (s/QQQ/Z300/g))} {(-e)} {(DQ (s/QQ/Z200/g))} {(-e)} {(DQ (s/Q/Z100/g))} {(-e)} {(DQ (s/000Z//g))} {(-e)} {(DQ (s/) ($ VSub_Name "$z10") (/Q/g))} {(-e)} {(DQ (s/QQQQQQQQQ/Z90/g))} {(-e)} {(DQ (s/QQQQQQQQ/Z80/g))} {(-e)} {(DQ (s/QQQQQQQ/Z70/g))} {(-e)} {(DQ (s/QQQQQQ/Z60/g))} {(-e)} {(DQ (s/QQQQQ/Z50/g))} {(-e)} {(DQ (s/QQQQ/Z40/g))} {(-e)} {(DQ (s/QQQ/Z30/g))} {(-e)} {(DQ (s/QQ/Z20/g))} {(-e)} {(DQ (s/Q/Z10/g))} {(-e)} {(DQ (s/00Z//g))} {(-e)} {(DQ (s/z/Q/g))} {(-e)} {(DQ (s/QQQQQQQQQ/Z9/g))} {(-e)} {(DQ (s/QQQQQQQQ/Z8/g))} {(-e)} {(DQ (s/QQQQQQQ/Z7/g))} {(-e)} {(DQ (s/QQQQQQ/Z6/g))} {(-e)} {(DQ (s/QQQQQ/Z5/g))} {(-e)} {(DQ (s/QQQQ/Z4/g))} {(-e)} {(DQ (s/QQQ/Z3/g))} {(-e)} {(DQ (s/QQ/Z2/g))} {(-e)} {(DQ (s/Q/Z1/g))} {(-e)} {(DQ (s/0Z//g))} ) terminator: <Op_Semi ";"> ) ] spids: [314] ) spids: [309 313] ) (FuncDef name: expect_pattern body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cnt) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [690] ) ] spids: [690] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("diff --git a/file-a") ($ VSub_Name "$cnt") (" b/file-a") ($ VSub_Name "$cnt") ("\n") ("--- a/file-a") ($ VSub_Name "$cnt") ("\n") ("+++ b/file-a") ($ VSub_Name "$cnt") ("\n") ("@@ -1 +1 @@\n") (-Z) (${ VSub_Name cnt) ("a\n") ("+Z") (${ VSub_Name cnt) ("A\n") ("diff --git a/file-b") ($ VSub_Name "$cnt") (" b/file-b") ($ VSub_Name "$cnt") ("\n") ("--- a/file-b") ($ VSub_Name "$cnt") ("\n") ("+++ b/file-b") ($ VSub_Name "$cnt") ("\n") ("@@ -1 +1 @@\n") ("-b\n") ("+B\n") ("diff --git a/file-c") ($ VSub_Name "$cnt") (" b/file-c") ($ VSub_Name "$cnt") ("\n") ("--- a/file-c") ($ VSub_Name "$cnt") ("\n") ("+++ b/file-c") ($ VSub_Name "$cnt") ("\n") ("@@ -1 +1 @@\n") (-cZ) ($ VSub_Name "$cnt") ("\n") (EscapedLiteralPart token:<Lit_EscapedChar "\\ ">) ("No newline at end of file\n") ("+CZ") ($ VSub_Name "$cnt") ("\n") (EscapedLiteralPart token:<Lit_EscapedChar "\\ ">) ("No newline at end of file\n") ("diff --git a/file-d") ($ VSub_Name "$cnt") (" b/file-d") ($ VSub_Name "$cnt") ("\n") ("--- a/file-d") ($ VSub_Name "$cnt") ("\n") ("+++ b/file-d") ($ VSub_Name "$cnt") ("\n") ("@@ -1 +1 @@\n") ("-d\n") ("+D\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [698] ) ] ) ] spids: [687] ) spids: [682 686] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sample) op: Equal rhs: {(SQ <"1023 1024 1025 2047 4095">)} spids: [776] ) ] spids: [776] ) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\n"> <"\tfor n in $sample\n"> <"\tdo\n"> <"\t\t( zs $n ; echo a ) >file-a$n &&\n"> <"\t\t( echo b; zs $n; echo ) >file-b$n &&\n"> <"\t\t( printf c; zs $n ) >file-c$n &&\n"> <"\t\t( echo d; zs $n ) >file-d$n &&\n"> <"\n"> <"\t\tgit add file-a$n file-b$n file-c$n file-d$n &&\n"> <"\n"> <"\t\t( zs $n ; echo A ) >file-a$n &&\n"> <"\t\t( echo B; zs $n; echo ) >file-b$n &&\n"> <"\t\t( printf C; zs $n ) >file-c$n &&\n"> <"\t\t( echo D; zs $n ) >file-d$n &&\n"> <"\n"> <"\t\texpect_pattern $n || return 1\n"> <"\n"> <"\tdone >expect\n"> ) } ) (C {(test_expect_success)} {(SQ <"diff -U0">)} { (SQ <"\n"> <"\n"> <"\tfor n in $sample\n"> <"\tdo\n"> <"\t\tgit diff -U0 file-?$n\n"> <"\tdone | zc >actual &&\n"> <"\ttest_cmp expect actual\n"> <"\n"> ) } ) (C {(test_done)}) ] )