(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 stripspace' span_id:15))} spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:t40) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'A quick brown fox jumps over the lazy do' span_id:26))} spids: [24] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s40) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:' ' span_id:31))} spids: [29] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sss) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ($ Id.VSub_DollarName '$s40') ) } spids: [34] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ttt) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ($ Id.VSub_DollarName '$t40') ) } spids: [51] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'long lines without spaces should be unchanged' span_id:74))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id:Id.Lit_Chars val:' echo "$ttt" >expect &&\n' span_id:79) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:80) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\n' span_id:82) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt" >expect &&\n' span_id:83) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:84) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\n' span_id:86) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt$ttt" >expect &&\n' span_id:87) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:88) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\n' span_id:90) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt$ttt$ttt" >expect &&\n' span_id:91) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:92) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:93) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'lines with spaces at the beginning should be unchanged' span_id: 102 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:106) (Token id:Id.Lit_Chars val:' echo "$sss$ttt" >expect &&\n' span_id:107) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:108) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\n' span_id:110) (Token id:Id.Lit_Chars val:' echo "$sss$sss$ttt" >expect &&\n' span_id:111) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:112) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\n' span_id:114) (Token id: Id.Lit_Chars val: ' echo "$sss$sss$sss$ttt" >expect &&\n' span_id: 115 ) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:116) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:117) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'lines with intermediate spaces should be unchanged' span_id: 126 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:130) (Token id:Id.Lit_Chars val:' echo "$ttt$sss$ttt" >expect &&\n' span_id:131) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:132) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\n' span_id:134) (Token id: Id.Lit_Chars val: ' echo "$ttt$sss$sss$ttt" >expect &&\n' span_id: 135 ) (Token id:Id.Lit_Chars val:' git stripspace <expect >actual &&\n' span_id:136) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:137) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'consecutive blank lines should be unified' span_id:146))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:150) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n$ttt\\n" > expect &&\n' span_id: 151 ) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n\\n\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 152 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\n' span_id:154) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt\\n\\n$ttt\\n" > expect &&\n' span_id:155) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt\\n\\n\\n\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 156 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\n' span_id:158) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$ttt\\n\\n$ttt\\n" > expect &&\n' span_id:159) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt$ttt\\n\\n\\n\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 160 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:161) (Token id:Id.Lit_Chars val:'\n' span_id:162) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n$ttt\\n" > expect &&\n' span_id:163) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n\\n\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 164 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\n' span_id:166) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n$ttt$ttt\\n" > expect &&\n' span_id:167) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n\\n\\n\\n$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 168 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\n' span_id:170) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n$ttt$ttt$ttt\\n" > expect &&\n' span_id:171) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n\\n\\n\\n$ttt$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 172 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\n' span_id:174) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n$ttt\\n" > expect &&\n' span_id:175) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\t\\n \\n\\n \\t\\t\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 176 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\n' span_id:178) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt\\n\\n$ttt\\n" > expect &&\n' span_id:179) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt\\n\\t\\n \\n\\n \\t\\t\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 180 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:181) (Token id:Id.Lit_Chars val:'\n' span_id:182) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$ttt\\n\\n$ttt\\n" > expect &&\n' span_id:183) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt$ttt\\n\\t\\n \\n\\n \\t\\t\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 184 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:185) (Token id:Id.Lit_Chars val:'\n' span_id:186) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n$ttt\\n" > expect &&\n' span_id:187) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\t\\n \\n\\n \\t\\t\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 188 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\n' span_id:190) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n$ttt$ttt\\n" > expect &&\n' span_id:191) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\t\\n \\n\\n \\t\\t\\n$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 192 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:193) (Token id:Id.Lit_Chars val:'\n' span_id:194) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n$ttt$ttt$ttt\\n" > expect &&\n' span_id:195) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\t\\n \\n\\n \\t\\t\\n$ttt$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 196 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:197) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'only consecutive blank lines should be completely removed' span_id: 206 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:210) (Token id:Id.Lit_Chars val:' > expect &&\n' span_id:211) (Token id:Id.Lit_Chars val:'\n' span_id:212) (Token id: Id.Lit_Chars val: ' printf "\\n" | git stripspace >actual &&\n' span_id: 213 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:214) (Token id:Id.Lit_Chars val:'\n' span_id:215) (Token id:Id.Lit_Chars val:' printf "\\n\\n\\n" | git stripspace >actual &&\n' span_id:216) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:217) (Token id:Id.Lit_Chars val:'\n' span_id:218) (Token id: Id.Lit_Chars val: ' printf "$sss\\n$sss\\n$sss\\n" | git stripspace >actual &&\n' span_id: 219 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:220) (Token id:Id.Lit_Chars val:'\n' span_id:221) (Token id: Id.Lit_Chars val: ' printf "$sss$sss\\n$sss\\n\\n" | git stripspace >actual &&\n' span_id: 222 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:223) (Token id:Id.Lit_Chars val:'\n' span_id:224) (Token id: Id.Lit_Chars val: ' printf "\\n$sss\\n$sss$sss\\n" | git stripspace >actual &&\n' span_id: 225 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:226) (Token id:Id.Lit_Chars val:'\n' span_id:227) (Token id: Id.Lit_Chars val: ' printf "$sss$sss$sss$sss\\n\\n\\n" | git stripspace >actual &&\n' span_id: 228 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:229) (Token id:Id.Lit_Chars val:'\n' span_id:230) (Token id: Id.Lit_Chars val: ' printf "\\n$sss$sss$sss$sss\\n\\n" | git stripspace >actual &&\n' span_id: 231 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:232) (Token id:Id.Lit_Chars val:'\n' span_id:233) (Token id: Id.Lit_Chars val: ' printf "\\n\\n$sss$sss$sss$sss\\n" | git stripspace >actual &&\n' span_id: 234 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:235) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'consecutive blank lines at the beginning should be removed' span_id: 244 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:248) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" > expect &&\n' span_id:249) (Token id:Id.Lit_Chars val:' printf "\\n$ttt\\n" | git stripspace >actual &&\n' span_id:250) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:251) (Token id:Id.Lit_Chars val:'\n' span_id:252) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" > expect &&\n' span_id:253) (Token id:Id.Lit_Chars val:' printf "\\n\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id:254) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:255) (Token id:Id.Lit_Chars val:'\n' span_id:256) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt\\n" > expect &&\n' span_id:257) (Token id: Id.Lit_Chars val: ' printf "\\n\\n\\n$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 258 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:259) (Token id:Id.Lit_Chars val:'\n' span_id:260) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$ttt\\n" > expect &&\n' span_id:261) (Token id: Id.Lit_Chars val: ' printf "\\n\\n\\n$ttt$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 262 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:263) (Token id:Id.Lit_Chars val:'\n' span_id:264) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$ttt$ttt\\n" > expect &&\n' span_id:265) (Token id: Id.Lit_Chars val: ' printf "\\n\\n\\n$ttt$ttt$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 266 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:267) (Token id:Id.Lit_Chars val:'\n' span_id:268) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" > expect &&\n' span_id:269) (Token id:Id.Lit_Chars val:'\n' span_id:270) (Token id: Id.Lit_Chars val: ' printf "$sss\\n$sss\\n$sss\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 271 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:272) (Token id:Id.Lit_Chars val:'\n' span_id:273) (Token id: Id.Lit_Chars val: ' printf "\\n$sss\\n$sss$sss\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 274 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:275) (Token id:Id.Lit_Chars val:'\n' span_id:276) (Token id: Id.Lit_Chars val: ' printf "$sss$sss\\n$sss\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 277 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:278) (Token id:Id.Lit_Chars val:'\n' span_id:279) (Token id: Id.Lit_Chars val: ' printf "$sss$sss$sss\\n\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 280 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\n' span_id:282) (Token id: Id.Lit_Chars val: ' printf "\\n$sss$sss$sss\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 283 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:284) (Token id:Id.Lit_Chars val:'\n' span_id:285) (Token id: Id.Lit_Chars val: ' printf "\\n\\n$sss$sss$sss\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 286 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:287) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'consecutive blank lines at the end should be removed' span_id: 296 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:300) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" > expect &&\n' span_id:301) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n" | git stripspace >actual &&\n' span_id:302) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:303) (Token id:Id.Lit_Chars val:'\n' span_id:304) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" > expect &&\n' span_id:305) (Token id:Id.Lit_Chars val:' printf "$ttt\\n\\n\\n\\n" | git stripspace >actual &&\n' span_id:306) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:307) (Token id:Id.Lit_Chars val:'\n' span_id:308) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt\\n" > expect &&\n' span_id:309) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt\\n\\n\\n\\n" | git stripspace >actual &&\n' span_id: 310 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:311) (Token id:Id.Lit_Chars val:'\n' span_id:312) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$ttt\\n" > expect &&\n' span_id:313) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt$ttt\\n\\n\\n\\n" | git stripspace >actual &&\n' span_id: 314 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:315) (Token id:Id.Lit_Chars val:'\n' span_id:316) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$ttt$ttt\\n" > expect &&\n' span_id:317) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt$ttt$ttt\\n\\n\\n\\n" | git stripspace >actual &&\n' span_id: 318 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:319) (Token id:Id.Lit_Chars val:'\n' span_id:320) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" > expect &&\n' span_id:321) (Token id:Id.Lit_Chars val:'\n' span_id:322) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$sss\\n$sss\\n$sss\\n" | git stripspace >actual &&\n' span_id: 323 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:324) (Token id:Id.Lit_Chars val:'\n' span_id:325) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n$sss\\n$sss$sss\\n" | git stripspace >actual &&\n' span_id: 326 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:327) (Token id:Id.Lit_Chars val:'\n' span_id:328) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$sss$sss\\n$sss\\n\\n" | git stripspace >actual &&\n' span_id: 329 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:330) (Token id:Id.Lit_Chars val:'\n' span_id:331) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$sss$sss$sss\\n\\n\\n" | git stripspace >actual &&\n' span_id: 332 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:333) (Token id:Id.Lit_Chars val:'\n' span_id:334) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n$sss$sss$sss\\n\\n" | git stripspace >actual &&\n' span_id: 335 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:336) (Token id:Id.Lit_Chars val:'\n' span_id:337) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n\\n\\n$sss$sss$sss\\n" | git stripspace >actual &&\n' span_id: 338 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:339) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'text without newline at end should end with newline' span_id: 348 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:352) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt" | git stripspace | wc -l) -gt 0 &&\n' span_id: 353 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$ttt" | git stripspace | wc -l) -gt 0 &&\n' span_id: 354 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0 &&\n' span_id: 355 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0\n' span_id: 356 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'text plus spaces without newline at end should end with newline' span_id: 369 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:373) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$sss" | git stripspace | wc -l) -gt 0 &&\n' span_id: 374 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 &&\n' span_id: 375 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 &&\n' span_id: 376 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$sss$sss" | git stripspace | wc -l) -gt 0 &&\n' span_id: 377 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$ttt$sss$sss" | git stripspace | wc -l) -gt 0 &&\n' span_id: 378 ) (Token id: Id.Lit_Chars val: ' test $(printf "$ttt$sss$sss$sss" | git stripspace | wc -l) -gt 0\n' span_id: 379 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'text plus spaces without newline at end should not show spaces' span_id: 388 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:392) (Token id: Id.Lit_Chars val: ' ! (printf "$ttt$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 393 ) (Token id: Id.Lit_Chars val: ' ! (printf "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 394 ) (Token id: Id.Lit_Chars val: ' ! (printf "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 395 ) (Token id: Id.Lit_Chars val: ' ! (printf "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 396 ) (Token id: Id.Lit_Chars val: ' ! (printf "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 397 ) (Token id: Id.Lit_Chars val: ' ! (printf "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null)\n' span_id: 398 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'text plus spaces without newline should show the correct lines' span_id: 407 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:411) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" >expect &&\n' span_id:412) (Token id:Id.Lit_Chars val:' printf "$ttt$sss" | git stripspace >actual &&\n' span_id:413) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:414) (Token id:Id.Lit_Chars val:'\n' span_id:415) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" >expect &&\n' span_id:416) (Token id:Id.Lit_Chars val:' printf "$ttt$sss$sss" | git stripspace >actual &&\n' span_id:417) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:418) (Token id:Id.Lit_Chars val:'\n' span_id:419) (Token id:Id.Lit_Chars val:' printf "$ttt\\n" >expect &&\n' span_id:420) (Token id:Id.Lit_Chars val:' printf "$ttt$sss$sss$sss" | git stripspace >actual &&\n' span_id:421) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:422) (Token id:Id.Lit_Chars val:'\n' span_id:423) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt\\n" >expect &&\n' span_id:424) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$sss" | git stripspace >actual &&\n' span_id:425) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:426) (Token id:Id.Lit_Chars val:'\n' span_id:427) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt\\n" >expect &&\n' span_id:428) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$sss$sss" | git stripspace >actual &&\n' span_id:429) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:430) (Token id:Id.Lit_Chars val:'\n' span_id:431) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt$ttt\\n" >expect &&\n' span_id: 432 ) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt$ttt$sss" | git stripspace >actual &&\n' span_id:433) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:434) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'text plus spaces at end should not show spaces' span_id:443))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:447) (Token id: Id.Lit_Chars val: ' ! (echo "$ttt$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 448 ) (Token id: Id.Lit_Chars val: ' ! (echo "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 449 ) (Token id: Id.Lit_Chars val: ' ! (echo "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 450 ) (Token id: Id.Lit_Chars val: ' ! (echo "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 451 ) (Token id: Id.Lit_Chars val: ' ! (echo "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 452 ) (Token id: Id.Lit_Chars val: ' ! (echo "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null)\n' span_id: 453 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'text plus spaces at end should be cleaned and newline must remain' span_id: 462 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:466) (Token id:Id.Lit_Chars val:' echo "$ttt" >expect &&\n' span_id:467) (Token id:Id.Lit_Chars val:' echo "$ttt$sss" | git stripspace >actual &&\n' span_id:468) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:469) (Token id:Id.Lit_Chars val:'\n' span_id:470) (Token id:Id.Lit_Chars val:' echo "$ttt" >expect &&\n' span_id:471) (Token id:Id.Lit_Chars val:' echo "$ttt$sss$sss" | git stripspace >actual &&\n' span_id:472) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:473) (Token id:Id.Lit_Chars val:'\n' span_id:474) (Token id:Id.Lit_Chars val:' echo "$ttt" >expect &&\n' span_id:475) (Token id:Id.Lit_Chars val:' echo "$ttt$sss$sss$sss" | git stripspace >actual &&\n' span_id:476) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:477) (Token id:Id.Lit_Chars val:'\n' span_id:478) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt" >expect &&\n' span_id:479) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt$sss" | git stripspace >actual &&\n' span_id:480) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:481) (Token id:Id.Lit_Chars val:'\n' span_id:482) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt" >expect &&\n' span_id:483) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt$sss$sss" | git stripspace >actual &&\n' span_id:484) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:485) (Token id:Id.Lit_Chars val:'\n' span_id:486) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt$ttt" >expect &&\n' span_id:487) (Token id:Id.Lit_Chars val:' echo "$ttt$ttt$ttt$sss" | git stripspace >actual &&\n' span_id:488) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:489) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'spaces with newline at end should be replaced with empty string' span_id: 502 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:506) (Token id:Id.Lit_Chars val:' printf "" >expect &&\n' span_id:507) (Token id:Id.Lit_Chars val:'\n' span_id:508) (Token id:Id.Lit_Chars val:' echo | git stripspace >actual &&\n' span_id:509) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:510) (Token id:Id.Lit_Chars val:'\n' span_id:511) (Token id:Id.Lit_Chars val:' echo "$sss" | git stripspace >actual &&\n' span_id:512) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:513) (Token id:Id.Lit_Chars val:'\n' span_id:514) (Token id: Id.Lit_Chars val: ' echo "$sss$sss" | git stripspace >actual &&\n' span_id: 515 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:516) (Token id:Id.Lit_Chars val:'\n' span_id:517) (Token id:Id.Lit_Chars val:' echo "$sss$sss$sss" | git stripspace >actual &&\n' span_id:518) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:519) (Token id:Id.Lit_Chars val:'\n' span_id:520) (Token id: Id.Lit_Chars val: ' echo "$sss$sss$sss$sss" | git stripspace >actual &&\n' span_id: 521 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:522) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'spaces without newline at end should not show spaces' span_id: 531 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:535) (Token id: Id.Lit_Chars val: ' ! (printf "" | git stripspace | grep " " >/dev/null) &&\n' span_id: 536 ) (Token id: Id.Lit_Chars val: ' ! (printf "$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 537 ) (Token id: Id.Lit_Chars val: ' ! (printf "$sss$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 538 ) (Token id: Id.Lit_Chars val: ' ! (printf "$sss$sss$sss" | git stripspace | grep " " >/dev/null) &&\n' span_id: 539 ) (Token id: Id.Lit_Chars val: ' ! (printf "$sss$sss$sss$sss" | git stripspace | grep " " >/dev/null)\n' span_id: 540 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'spaces without newline at end should be replaced with empty string' span_id: 549 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:553) (Token id:Id.Lit_Chars val:' printf "" >expect &&\n' span_id:554) (Token id:Id.Lit_Chars val:'\n' span_id:555) (Token id: Id.Lit_Chars val: ' printf "" | git stripspace >actual &&\n' span_id: 556 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:557) (Token id:Id.Lit_Chars val:'\n' span_id:558) (Token id:Id.Lit_Chars val:' printf "$sss$sss" | git stripspace >actual &&\n' span_id:559) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:560) (Token id:Id.Lit_Chars val:'\n' span_id:561) (Token id: Id.Lit_Chars val: ' printf "$sss$sss$sss" | git stripspace >actual &&\n' span_id: 562 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:563) (Token id:Id.Lit_Chars val:'\n' span_id:564) (Token id:Id.Lit_Chars val:' printf "$sss$sss$sss$sss" | git stripspace >actual &&\n' span_id:565) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:566) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'consecutive text lines should be unchanged' span_id:575))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:579) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt\\n$ttt\\n" >expect &&\n' span_id: 580 ) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 581 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:582) (Token id:Id.Lit_Chars val:'\n' span_id:583) (Token id:Id.Lit_Chars val:' printf "$ttt\\n$ttt$ttt\\n$ttt\\n" >expect &&\n' span_id:584) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$ttt$ttt\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 585 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:586) (Token id:Id.Lit_Chars val:'\n' span_id:587) (Token id:Id.Lit_Chars val:' printf "$ttt\\n$ttt\\n$ttt\\n$ttt$ttt\\n" >expect &&\n' span_id:588) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$ttt\\n$ttt\\n$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 589 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:590) (Token id:Id.Lit_Chars val:'\n' span_id:591) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$ttt\\n\\n$ttt$ttt\\n$ttt\\n" >expect &&\n' span_id: 592 ) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$ttt\\n\\n$ttt$ttt\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 593 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:594) (Token id:Id.Lit_Chars val:'\n' span_id:595) (Token id:Id.Lit_Chars val:' printf "$ttt$ttt\\n\\n$ttt\\n$ttt$ttt\\n" >expect &&\n' span_id:596) (Token id: Id.Lit_Chars val: ' printf "$ttt$ttt\\n\\n$ttt\\n$ttt$ttt\\n" | git stripspace >actual &&\n' span_id: 597 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual &&\n' span_id:598) (Token id:Id.Lit_Chars val:'\n' span_id:599) (Token id:Id.Lit_Chars val:' printf "$ttt\\n$ttt$ttt\\n\\n$ttt\\n" >expect &&\n' span_id:600) (Token id: Id.Lit_Chars val: ' printf "$ttt\\n$ttt$ttt\\n\\n$ttt\\n" | git stripspace >actual &&\n' span_id: 601 ) (Token id:Id.Lit_Chars val:' test_cmp expect actual\n' span_id:602) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'strip comments, too' span_id:609))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:613) (Token id: Id.Lit_Chars val: '\ttest ! -z "$(echo "# comment" | git stripspace)" &&\n' span_id: 614 ) (Token id:Id.Lit_Chars val:'\ttest -z "$(echo "# comment" | git stripspace -s)"\n' span_id:615) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'strip comments with changed comment char' span_id:622))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:626) (Token id: Id.Lit_Chars val: '\ttest ! -z "$(echo "; comment" | git -c core.commentchar=";" stripspace)" &&\n' span_id: 627 ) (Token id: Id.Lit_Chars val: '\ttest -z "$(echo "; comment" | git -c core.commentchar=";" stripspace -s)"\n' span_id: 628 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-c with single line' span_id:635))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:639) (Token id:Id.Lit_Chars val:'\tprintf "# foo\\n" >expect &&\n' span_id:640) (Token id:Id.Lit_Chars val:'\tprintf "foo" | git stripspace -c >actual &&\n' span_id:641) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:642) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-c with single line followed by empty line' span_id:649))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:653) (Token id:Id.Lit_Chars val:'\tprintf "# foo\\n#\\n" >expect &&\n' span_id:654) (Token id:Id.Lit_Chars val:'\tprintf "foo\\n\\n" | git stripspace -c >actual &&\n' span_id:655) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:656) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-c with newline only' span_id:663))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:667) (Token id:Id.Lit_Chars val:'\tprintf "#\\n" >expect &&\n' span_id:668) (Token id:Id.Lit_Chars val:'\tprintf "\\n" | git stripspace -c >actual &&\n' span_id:669) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:670) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--comment-lines with single line' span_id:677))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:681) (Token id:Id.Lit_Chars val:'\tprintf "# foo\\n" >expect &&\n' span_id:682) (Token id:Id.Lit_Chars val:'\tprintf "foo" | git stripspace -c >actual &&\n' span_id:683) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:684) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'-c with changed comment char' span_id:691))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:695) (Token id:Id.Lit_Chars val:'\tprintf "; foo\\n" >expect &&\n' span_id:696) (Token id: Id.Lit_Chars val: '\tprintf "foo" | git -c core.commentchar=";" stripspace -c >actual &&\n' span_id: 697 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:698) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'avoid SP-HT sequence in commented line' span_id:705))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:709) (Token id: Id.Lit_Chars val: '\tprintf "#\\tone\\n#\\n# two\\n" >expect &&\n' span_id: 710 ) (Token id: Id.Lit_Chars val: '\tprintf "\\tone\\n\\ntwo\\n" | git stripspace -c >actual &&\n' span_id: 711 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:712) ) } ) (C {(test_done)}) ] )