(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:'diff --stat-count' span_id:9))} spids: [7] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:20))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:24) (Token id:Id.Lit_Chars val:'\t>a &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\t>b &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\t>c &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\t>d &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tgit add a b c d &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\tgit commit -m initial\n' span_id:30) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'mode-only change show as a 0-line change' span_id:37))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:41) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\ttest_chmod +x b d &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\techo a >a &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\techo c >c &&\n' span_id:45) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\t a | 1 +\n' span_id:47) (Token id:Id.Lit_Chars val:'\t b | 0\n' span_id:48) (Token id:Id.Lit_Chars val:'\t ...\n' span_id:49) (Token id:Id.Lit_Chars val:'\t 4 files changed, 2 insertions(+)\n' span_id:50) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:51) (Token id: Id.Lit_Chars val: '\tgit diff --stat --stat-count=2 HEAD >actual &&\n' span_id: 52 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect actual\n' span_id:53) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'binary changes do not count in lines' span_id:60))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:64) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\techo a >a &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\techo c >c &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\tcat "$TEST_DIRECTORY"/test-binary-1.png >d &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\t a | 1 +\n' span_id:70) (Token id:Id.Lit_Chars val:'\t c | 1 +\n' span_id:71) (Token id:Id.Lit_Chars val:'\t ...\n' span_id:72) (Token id:Id.Lit_Chars val:'\t 3 files changed, 2 insertions(+)\n' span_id:73) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:74) (Token id: Id.Lit_Chars val: '\tgit diff --stat --stat-count=2 >actual &&\n' span_id: 75 ) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect actual\n' span_id:76) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'exclude unmerged entries from total file count' span_id:83))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:87) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\techo a >a &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\techo b >b &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\tgit ls-files -s a >x &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\tgit rm -f d &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\tfor stage in 1 2 3\n' span_id:93) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:94) (Token id:Id.Lit_Chars val:'\t\tsed -e "s/ 0\ta/ $stage\td/" x\n' span_id:95) (Token id:Id.Lit_Chars val:'\tdone |\n' span_id:96) (Token id:Id.Lit_Chars val:'\tgit update-index --index-info &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\techo d >d &&\n' span_id:98) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\t a | 1 +\n' span_id:100) (Token id:Id.Lit_Chars val:'\t b | 1 +\n' span_id:101) (Token id:Id.Lit_Chars val:'\t ...\n' span_id:102) (Token id:Id.Lit_Chars val:'\t 3 files changed, 3 insertions(+)\n' span_id:103) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:104) (Token id:Id.Lit_Chars val:'\tgit diff --stat --stat-count=2 >actual &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect actual\n' span_id:106) ) } ) (C {(test_done)}) ] )