(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"diff --dirstat tests">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <setup>)} 
      {
        (SQ <"\n"> <"\tmkdir unchanged &&\n"> <"\tmkdir changed &&\n"> <"\tmkdir rearranged &&\n"> 
          <"\tmkdir src &&\n"> <"\tmkdir src/copy &&\n"> <"\tmkdir src/copy/unchanged &&\n"> <"\tmkdir src/copy/changed &&\n"> 
          <"\tmkdir src/copy/rearranged &&\n"> <"\tmkdir src/move &&\n"> <"\tmkdir src/move/unchanged &&\n"> <"\tmkdir src/move/changed &&\n"> 
          <"\tmkdir src/move/rearranged &&\n"> <"\tcat <<EOF >unchanged/text &&\n"> <"unchanged       line #0\n"> <"unchanged       line #1\n"> 
          <"unchanged       line #2\n"> <"unchanged       line #3\n"> <"unchanged       line #4\n"> <"unchanged       line #5\n"> 
          <"unchanged       line #6\n"> <"unchanged       line #7\n"> <"unchanged       line #8\n"> <"unchanged       line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >changed/text &&\n"> <"changed         line #0\n"> <"changed         line #1\n"> <"changed         line #2\n"> 
          <"changed         line #3\n"> <"changed         line #4\n"> <"changed         line #5\n"> <"changed         line #6\n"> 
          <"changed         line #7\n"> <"changed         line #8\n"> <"changed         line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >rearranged/text &&\n"> <"rearranged      line #0\n"> <"rearranged      line #1\n"> <"rearranged      line #2\n"> 
          <"rearranged      line #3\n"> <"rearranged      line #4\n"> <"rearranged      line #5\n"> <"rearranged      line #6\n"> 
          <"rearranged      line #7\n"> <"rearranged      line #8\n"> <"rearranged      line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >src/copy/unchanged/text &&\n"> <"copy  unchanged line #0\n"> <"copy  unchanged line #1\n"> <"copy  unchanged line #2\n"> 
          <"copy  unchanged line #3\n"> <"copy  unchanged line #4\n"> <"copy  unchanged line #5\n"> <"copy  unchanged line #6\n"> 
          <"copy  unchanged line #7\n"> <"copy  unchanged line #8\n"> <"copy  unchanged line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >src/copy/changed/text &&\n"> <"copy    changed line #0\n"> <"copy    changed line #1\n"> <"copy    changed line #2\n"> 
          <"copy    changed line #3\n"> <"copy    changed line #4\n"> <"copy    changed line #5\n"> <"copy    changed line #6\n"> 
          <"copy    changed line #7\n"> <"copy    changed line #8\n"> <"copy    changed line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >src/copy/rearranged/text &&\n"> <"copy rearranged line #0\n"> <"copy rearranged line #1\n"> <"copy rearranged line #2\n"> 
          <"copy rearranged line #3\n"> <"copy rearranged line #4\n"> <"copy rearranged line #5\n"> <"copy rearranged line #6\n"> 
          <"copy rearranged line #7\n"> <"copy rearranged line #8\n"> <"copy rearranged line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >src/move/unchanged/text &&\n"> <"move  unchanged line #0\n"> <"move  unchanged line #1\n"> <"move  unchanged line #2\n"> 
          <"move  unchanged line #3\n"> <"move  unchanged line #4\n"> <"move  unchanged line #5\n"> <"move  unchanged line #6\n"> 
          <"move  unchanged line #7\n"> <"move  unchanged line #8\n"> <"move  unchanged line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >src/move/changed/text &&\n"> <"move    changed line #0\n"> <"move    changed line #1\n"> <"move    changed line #2\n"> 
          <"move    changed line #3\n"> <"move    changed line #4\n"> <"move    changed line #5\n"> <"move    changed line #6\n"> 
          <"move    changed line #7\n"> <"move    changed line #8\n"> <"move    changed line #9\n"> <"EOF\n"> 
          <"\tcat <<EOF >src/move/rearranged/text &&\n"> <"move rearranged line #0\n"> <"move rearranged line #1\n"> <"move rearranged line #2\n"> 
          <"move rearranged line #3\n"> <"move rearranged line #4\n"> <"move rearranged line #5\n"> <"move rearranged line #6\n"> 
          <"move rearranged line #7\n"> <"move rearranged line #8\n"> <"move rearranged line #9\n"> <"EOF\n"> <"\tgit add . &&\n"> 
          <"\tgit commit -m \"initial\" &&\n"> <"\tmkdir dst &&\n"> <"\tmkdir dst/copy &&\n"> <"\tmkdir dst/copy/unchanged &&\n"> 
          <"\tmkdir dst/copy/changed &&\n"> <"\tmkdir dst/copy/rearranged &&\n"> <"\tmkdir dst/move &&\n"> <"\tmkdir dst/move/unchanged &&\n"> 
          <"\tmkdir dst/move/changed &&\n"> <"\tmkdir dst/move/rearranged &&\n"> <"\tcat <<EOF >changed/text &&\n"> <"CHANGED XXXXXXX line #0\n"> 
          <"changed         line #1\n"> <"changed         line #2\n"> <"changed         line #3\n"> <"changed         line #4\n"> 
          <"changed         line #5\n"> <"changed         line #6\n"> <"changed         line #7\n"> <"changed         line #8\n"> 
          <"changed         line #9\n"> <"EOF\n"> <"\tcat <<EOF >rearranged/text &&\n"> <"rearranged      line #1\n"> 
          <"rearranged      line #0\n"> <"rearranged      line #2\n"> <"rearranged      line #3\n"> <"rearranged      line #4\n"> 
          <"rearranged      line #5\n"> <"rearranged      line #6\n"> <"rearranged      line #7\n"> <"rearranged      line #8\n"> 
          <"rearranged      line #9\n"> <"EOF\n"> <"\tcat <<EOF >dst/copy/unchanged/text &&\n"> <"copy  unchanged line #0\n"> 
          <"copy  unchanged line #1\n"> <"copy  unchanged line #2\n"> <"copy  unchanged line #3\n"> <"copy  unchanged line #4\n"> 
          <"copy  unchanged line #5\n"> <"copy  unchanged line #6\n"> <"copy  unchanged line #7\n"> <"copy  unchanged line #8\n"> 
          <"copy  unchanged line #9\n"> <"EOF\n"> <"\tcat <<EOF >dst/copy/changed/text &&\n"> <"copy XXXCHANGED line #0\n"> 
          <"copy    changed line #1\n"> <"copy    changed line #2\n"> <"copy    changed line #3\n"> <"copy    changed line #4\n"> 
          <"copy    changed line #5\n"> <"copy    changed line #6\n"> <"copy    changed line #7\n"> <"copy    changed line #8\n"> 
          <"copy    changed line #9\n"> <"EOF\n"> <"\tcat <<EOF >dst/copy/rearranged/text &&\n"> <"copy rearranged line #1\n"> 
          <"copy rearranged line #0\n"> <"copy rearranged line #2\n"> <"copy rearranged line #3\n"> <"copy rearranged line #4\n"> 
          <"copy rearranged line #5\n"> <"copy rearranged line #6\n"> <"copy rearranged line #7\n"> <"copy rearranged line #8\n"> 
          <"copy rearranged line #9\n"> <"EOF\n"> <"\tcat <<EOF >dst/move/unchanged/text &&\n"> <"move  unchanged line #0\n"> 
          <"move  unchanged line #1\n"> <"move  unchanged line #2\n"> <"move  unchanged line #3\n"> <"move  unchanged line #4\n"> 
          <"move  unchanged line #5\n"> <"move  unchanged line #6\n"> <"move  unchanged line #7\n"> <"move  unchanged line #8\n"> 
          <"move  unchanged line #9\n"> <"EOF\n"> <"\tcat <<EOF >dst/move/changed/text &&\n"> <"move XXXCHANGED line #0\n"> 
          <"move    changed line #1\n"> <"move    changed line #2\n"> <"move    changed line #3\n"> <"move    changed line #4\n"> 
          <"move    changed line #5\n"> <"move    changed line #6\n"> <"move    changed line #7\n"> <"move    changed line #8\n"> 
          <"move    changed line #9\n"> <"EOF\n"> <"\tcat <<EOF >dst/move/rearranged/text &&\n"> <"move rearranged line #1\n"> 
          <"move rearranged line #0\n"> <"move rearranged line #2\n"> <"move rearranged line #3\n"> <"move rearranged line #4\n"> 
          <"move rearranged line #5\n"> <"move rearranged line #6\n"> <"move rearranged line #7\n"> <"move rearranged line #8\n"> 
          <"move rearranged line #9\n"> <"EOF\n"> <"\tgit add . &&\n"> <"\tgit rm -r src/move/unchanged &&\n"> 
          <"\tgit rm -r src/move/changed &&\n"> <"\tgit rm -r src/move/rearranged &&\n"> <"\tgit commit -m \"changes\" &&\n"> 
          <"\tgit config diff.renames false\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("1\t1\tchanged/text\n") ("10\t0\tdst/copy/changed/text\n") 
                ("10\t0\tdst/copy/rearranged/text\n") ("10\t0\tdst/copy/unchanged/text\n") ("10\t0\tdst/move/changed/text\n") 
                ("10\t0\tdst/move/rearranged/text\n") ("10\t0\tdst/move/unchanged/text\n") ("1\t1\trearranged/text\n") ("0\t10\tsrc/move/changed/text\n") 
                ("0\t10\tsrc/move/rearranged/text\n") ("0\t10\tsrc/move/unchanged/text\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [297]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_stat)} spids:[300])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("1\t1\tchanged/text\n") ("10\t0\tdst/copy/changed/text\n") 
                ("10\t0\tdst/copy/rearranged/text\n") ("10\t0\tdst/copy/unchanged/text\n") ("1\t1\t{src => dst}/move/changed/text\n") 
                ("1\t1\t{src => dst}/move/rearranged/text\n") ("0\t0\t{src => dst}/move/unchanged/text\n") ("1\t1\trearranged/text\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [317]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_stat_M)} spids:[320])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("1\t1\tchanged/text\n") ("1\t1\t{src => dst}/copy/changed/text\n") 
                ("1\t1\t{src => dst}/copy/rearranged/text\n") ("0\t0\t{src => dst}/copy/unchanged/text\n") ("1\t1\t{src => dst}/move/changed/text\n") 
                ("1\t1\t{src => dst}/move/rearranged/text\n") ("0\t0\t{src => dst}/move/unchanged/text\n") ("1\t1\trearranged/text\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [334]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_stat_CC)} spids:[337])
      ]
    )
    (C {(test_expect_success)} {(SQ <"sanity check setup (--numstat)">)} 
      {
        (SQ <"\n"> <"\tgit diff --numstat HEAD^..HEAD >actual_diff_stat &&\n"> 
          <"\ttest_cmp expect_diff_stat actual_diff_stat &&\n"> <"\tgit diff --numstat -M HEAD^..HEAD >actual_diff_stat_M &&\n"> 
          <"\ttest_cmp expect_diff_stat_M actual_diff_stat_M &&\n"> <"\tgit diff --numstat -C -C HEAD^..HEAD >actual_diff_stat_CC &&\n"> 
          <"\ttest_cmp expect_diff_stat_CC actual_diff_stat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  10.8% dst/copy/changed/\n") ("  10.8% dst/copy/rearranged/\n") 
                ("  10.8% dst/copy/unchanged/\n") ("  10.8% dst/move/changed/\n") ("  10.8% dst/move/rearranged/\n") ("  10.8% dst/move/unchanged/\n") 
                ("  10.8% src/move/changed/\n") ("  10.8% src/move/rearranged/\n") ("  10.8% src/move/unchanged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [371]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[374])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   5.8% changed/\n") ("  29.3% dst/copy/changed/\n") 
                ("  29.3% dst/copy/rearranged/\n") ("  29.3% dst/copy/unchanged/\n") ("   5.8% dst/move/changed/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [392]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[395])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  32.6% changed/\n") ("  32.6% dst/copy/changed/\n") 
                ("  32.6% dst/move/changed/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [409]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[412])
      ]
    )
    (C {(test_expect_success)} {(SQ <"various ways to misspell --dirstat">)} 
      {
        (SQ <"\n"> <"\ttest_must_fail git show --dirstat10 &&\n"> 
          <"\ttest_must_fail git show --dirstat10,files &&\n"> <"\ttest_must_fail git show -X=20 &&\n"> <"\ttest_must_fail git show -X=20,cumulative\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"vanilla --dirstat">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"vanilla -X">)} 
      {
        (SQ <"\n"> <"\tgit diff -X HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff -X -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff -X -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"explicit defaults: --dirstat=changes,noncumulative,3">)} 
      {
        (SQ <"\n"> 
          <"\tgit diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"explicit defaults: -Xchanges,noncumulative,3">)} 
      {
        (SQ <"\n"> <"\tgit diff -Xchanges,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff -Xchanges,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff -Xchanges,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"later options override earlier options:">)} 
      {
        (SQ <"\n"> 
          <
"\tgit diff --dirstat=files,10,cumulative,changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit diff --dirstat=files,10,cumulative,changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit diff --dirstat=files,10,cumulative,changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC &&\n"> 
          <
"\tgit diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"non-defaults in config overridden by explicit defaults on command line">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   2.1% changed/\n") ("  10.8% dst/copy/changed/\n") 
                ("  10.8% dst/copy/rearranged/\n") ("  10.8% dst/copy/unchanged/\n") ("  10.8% dst/move/changed/\n") ("  10.8% dst/move/rearranged/\n") 
                ("  10.8% dst/move/unchanged/\n") ("   0.0% rearranged/\n") ("  10.8% src/move/changed/\n") ("  10.8% src/move/rearranged/\n") 
                ("  10.8% src/move/unchanged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [544]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[547])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   5.8% changed/\n") ("  29.3% dst/copy/changed/\n") 
                ("  29.3% dst/copy/rearranged/\n") ("  29.3% dst/copy/unchanged/\n") ("   5.8% dst/move/changed/\n") ("   0.1% dst/move/rearranged/\n") 
                ("   0.1% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [564]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[567])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  32.6% changed/\n") ("  32.6% dst/copy/changed/\n") 
                ("   0.6% dst/copy/rearranged/\n") ("  32.6% dst/move/changed/\n") ("   0.6% dst/move/rearranged/\n") ("   0.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [580]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[583])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=0">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=0 HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=0 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <-X0>)} 
      {
        (SQ <"\n"> <"\tgit diff -X0 HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff -X0 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff -X0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=0">)} 
      {
        (SQ <"\n"> <"\tgit -c diff.dirstat=0 diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit -c diff.dirstat=0 diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit -c diff.dirstat=0 diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   2.1% changed/\n") ("  10.8% dst/copy/changed/\n") 
                ("  10.8% dst/copy/rearranged/\n") ("  10.8% dst/copy/unchanged/\n") ("  32.5% dst/copy/\n") ("  10.8% dst/move/changed/\n") 
                ("  10.8% dst/move/rearranged/\n") ("  10.8% dst/move/unchanged/\n") ("  32.5% dst/move/\n") ("  65.1% dst/\n") ("   0.0% rearranged/\n") 
                ("  10.8% src/move/changed/\n") ("  10.8% src/move/rearranged/\n") ("  10.8% src/move/unchanged/\n") ("  32.5% src/move/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [646]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[649])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   5.8% changed/\n") ("  29.3% dst/copy/changed/\n") 
                ("  29.3% dst/copy/rearranged/\n") ("  29.3% dst/copy/unchanged/\n") ("  88.0% dst/copy/\n") ("   5.8% dst/move/changed/\n") 
                ("   0.1% dst/move/rearranged/\n") ("   5.9% dst/move/\n") ("  94.0% dst/\n") ("   0.1% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [670]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[673])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  32.6% changed/\n") ("  32.6% dst/copy/changed/\n") 
                ("   0.6% dst/copy/rearranged/\n") ("  33.3% dst/copy/\n") ("  32.6% dst/move/changed/\n") ("   0.6% dst/move/rearranged/\n") 
                ("  33.3% dst/move/\n") ("  66.6% dst/\n") ("   0.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [689]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[692])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=0 --cumulative">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=0 --cumulative HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=0 --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=0 --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=0,cumulative">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=0,cumulative HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"-X0,cumulative">)} 
      {
        (SQ <"\n"> <"\tgit diff -X0,cumulative HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff -X0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff -X0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=0,cumulative">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=0,cumulative diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=0,cumulative diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=0,cumulative diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=0 & --dirstat=cumulative">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=0 diff --dirstat=cumulative HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=0 diff --dirstat=cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=0 diff --dirstat=cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   9.0% changed/\n") ("   9.0% dst/copy/changed/\n") 
                ("   9.0% dst/copy/rearranged/\n") ("   9.0% dst/copy/unchanged/\n") ("   9.0% dst/move/changed/\n") ("   9.0% dst/move/rearranged/\n") 
                ("   9.0% dst/move/unchanged/\n") ("   9.0% rearranged/\n") ("   9.0% src/move/changed/\n") ("   9.0% src/move/rearranged/\n") 
                ("   9.0% src/move/unchanged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [792]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[795])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  14.2% changed/\n") ("  14.2% dst/copy/changed/\n") 
                ("  14.2% dst/copy/rearranged/\n") ("  14.2% dst/copy/unchanged/\n") ("  14.2% dst/move/changed/\n") ("  14.2% dst/move/rearranged/\n") 
                ("  14.2% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [812]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[815])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  16.6% changed/\n") ("  16.6% dst/copy/changed/\n") 
                ("  16.6% dst/copy/rearranged/\n") ("  16.6% dst/move/changed/\n") ("  16.6% dst/move/rearranged/\n") ("  16.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [828]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[831])
      ]
    )
    (C {(test_expect_success)} {(SQ <--dirstat-by-file>)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat-by-file HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat-by-file -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat-by-file -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=files">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=files HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=files -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=files -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=files">)} 
      {
        (SQ <"\n"> 
          <"\tgit -c diff.dirstat=files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <"\tgit -c diff.dirstat=files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ("  27.2% dst/copy/\n") ("  27.2% dst/move/\n") ("  27.2% src/move/\n"))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [894]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[897])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  14.2% changed/\n") ("  14.2% dst/copy/changed/\n") 
                ("  14.2% dst/copy/rearranged/\n") ("  14.2% dst/copy/unchanged/\n") ("  14.2% dst/move/changed/\n") ("  14.2% dst/move/rearranged/\n") 
                ("  14.2% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [906]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[909])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  16.6% changed/\n") ("  16.6% dst/copy/changed/\n") 
                ("  16.6% dst/copy/rearranged/\n") ("  16.6% dst/move/changed/\n") ("  16.6% dst/move/rearranged/\n") ("  16.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [922]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[925])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat-by-file=10">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat-by-file=10 HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat-by-file=10 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat-by-file=10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=files,10">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=files,10 HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=files,10 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=files,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=10,files">)} 
      {
        (SQ <"\n"> 
          <"\tgit -c diff.dirstat=10,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=10,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=10,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   9.0% changed/\n") ("   9.0% dst/copy/changed/\n") 
                ("   9.0% dst/copy/rearranged/\n") ("   9.0% dst/copy/unchanged/\n") ("  27.2% dst/copy/\n") ("   9.0% dst/move/changed/\n") 
                ("   9.0% dst/move/rearranged/\n") ("   9.0% dst/move/unchanged/\n") ("  27.2% dst/move/\n") ("  54.5% dst/\n") ("   9.0% rearranged/\n") 
                ("   9.0% src/move/changed/\n") ("   9.0% src/move/rearranged/\n") ("   9.0% src/move/unchanged/\n") ("  27.2% src/move/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [988]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[991])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  14.2% changed/\n") ("  14.2% dst/copy/changed/\n") 
                ("  14.2% dst/copy/rearranged/\n") ("  14.2% dst/copy/unchanged/\n") ("  42.8% dst/copy/\n") ("  14.2% dst/move/changed/\n") 
                ("  14.2% dst/move/rearranged/\n") ("  28.5% dst/move/\n") ("  71.4% dst/\n") ("  14.2% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1012]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[1015])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  16.6% changed/\n") ("  16.6% dst/copy/changed/\n") 
                ("  16.6% dst/copy/rearranged/\n") ("  33.3% dst/copy/\n") ("  16.6% dst/move/changed/\n") ("  16.6% dst/move/rearranged/\n") 
                ("  33.3% dst/move/\n") ("  66.6% dst/\n") ("  16.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1031]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[1034])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat-by-file --cumulative">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat-by-file --cumulative HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat-by-file --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat-by-file --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=files,cumulative">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=files,cumulative HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=files,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=files,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=cumulative,files">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  27.2% dst/copy/\n") ("  27.2% dst/move/\n") ("  54.5% dst/\n") 
                ("  27.2% src/move/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1100]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[1103])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  14.2% changed/\n") ("  14.2% dst/copy/changed/\n") 
                ("  14.2% dst/copy/rearranged/\n") ("  14.2% dst/copy/unchanged/\n") ("  42.8% dst/copy/\n") ("  14.2% dst/move/changed/\n") 
                ("  14.2% dst/move/rearranged/\n") ("  28.5% dst/move/\n") ("  71.4% dst/\n") ("  14.2% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1113]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[1116])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  16.6% changed/\n") ("  16.6% dst/copy/changed/\n") 
                ("  16.6% dst/copy/rearranged/\n") ("  33.3% dst/copy/\n") ("  16.6% dst/move/changed/\n") ("  16.6% dst/move/rearranged/\n") 
                ("  33.3% dst/move/\n") ("  66.6% dst/\n") ("  16.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1132]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[1135])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=files,cumulative,10">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=files,cumulative,10 HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=files,cumulative,10 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=files,cumulative,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=10,cumulative,files">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=10,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=10,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=10,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  27.2% dst/copy/\n") ("  27.2% dst/move/\n") ("  54.5% dst/\n") 
                ("  27.2% src/move/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1184]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[1187])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ("  42.8% dst/copy/\n") ("  28.5% dst/move/\n") ("  71.4% dst/\n"))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1197]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[1200])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ("  33.3% dst/copy/\n") ("  33.3% dst/move/\n") ("  66.6% dst/\n"))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1209]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[1212])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=files,cumulative,16.7">)} 
      {
        (SQ <"\n"> 
          <"\tgit diff --dirstat=files,cumulative,16.7 HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <"\tgit diff --dirstat=files,cumulative,16.7 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit diff --dirstat=files,cumulative,16.7 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=16.7,cumulative,files">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=16.7,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=16.7,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=16.7,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=16.70,cumulative,files">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=16.70,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"
          > <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=16.70,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=16.70,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=files,cumulative,27.2">)} 
      {
        (SQ <"\n"> 
          <"\tgit diff --dirstat=files,cumulative,27.2 HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <"\tgit diff --dirstat=files,cumulative,27.2 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit diff --dirstat=files,cumulative,27.2 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=files,cumulative,27.09">)} 
      {
        (SQ <"\n"> 
          <"\tgit diff --dirstat=files,cumulative,27.09 HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit diff --dirstat=files,cumulative,27.09 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit diff --dirstat=files,cumulative,27.09 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  10.6% dst/copy/changed/\n") ("  10.6% dst/copy/rearranged/\n") 
                ("  10.6% dst/copy/unchanged/\n") ("  10.6% dst/move/changed/\n") ("  10.6% dst/move/rearranged/\n") ("  10.6% dst/move/unchanged/\n") 
                ("  10.6% src/move/changed/\n") ("  10.6% src/move/rearranged/\n") ("  10.6% src/move/unchanged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1306]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[1309])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   5.2% changed/\n") ("  26.3% dst/copy/changed/\n") 
                ("  26.3% dst/copy/rearranged/\n") ("  26.3% dst/copy/unchanged/\n") ("   5.2% dst/move/changed/\n") ("   5.2% dst/move/rearranged/\n") 
                ("   5.2% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1324]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[1327])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  16.6% changed/\n") ("  16.6% dst/copy/changed/\n") 
                ("  16.6% dst/copy/rearranged/\n") ("  16.6% dst/move/changed/\n") ("  16.6% dst/move/rearranged/\n") ("  16.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1340]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[1343])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=lines">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=lines HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=lines -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=lines -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=lines">)} 
      {
        (SQ <"\n"> 
          <"\tgit -c diff.dirstat=lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <"\tgit -c diff.dirstat=lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   2.1% changed/\n") ("  10.6% dst/copy/changed/\n") 
                ("  10.6% dst/copy/rearranged/\n") ("  10.6% dst/copy/unchanged/\n") ("  10.6% dst/move/changed/\n") ("  10.6% dst/move/rearranged/\n") 
                ("  10.6% dst/move/unchanged/\n") ("   2.1% rearranged/\n") ("  10.6% src/move/changed/\n") ("  10.6% src/move/rearranged/\n") 
                ("  10.6% src/move/unchanged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1389]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat)} spids:[1392])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("   5.2% changed/\n") ("  26.3% dst/copy/changed/\n") 
                ("  26.3% dst/copy/rearranged/\n") ("  26.3% dst/copy/unchanged/\n") ("   5.2% dst/move/changed/\n") ("   5.2% dst/move/rearranged/\n") 
                ("   5.2% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1409]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_M)} spids:[1412])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("  16.6% changed/\n") ("  16.6% dst/copy/changed/\n") 
                ("  16.6% dst/copy/rearranged/\n") ("  16.6% dst/move/changed/\n") ("  16.6% dst/move/rearranged/\n") ("  16.6% rearranged/\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [1425]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(expect_diff_dirstat_CC)} spids:[1428])
      ]
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=lines,0">)} 
      {
        (SQ <"\n"> <"\tgit diff --dirstat=lines,0 HEAD^..HEAD >actual_diff_dirstat &&\n"> 
          <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> <"\tgit diff --dirstat=lines,0 -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\tgit diff --dirstat=lines,0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=0,lines">)} 
      {
        (SQ <"\n"> 
          <"\tgit -c diff.dirstat=0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <
"\tgit -c diff.dirstat=0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&\n"
          > <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> 
          <
"\tgit -c diff.dirstat=0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&\n"
          > <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--dirstat=future_param,lines,0 should fail loudly">)} 
      {
        (SQ <"\n"> 
          <
"\ttest_must_fail git diff --dirstat=future_param,lines,0 HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&\n"
          > <"\ttest_debug \"cat actual_error\" &&\n"> <"\ttest_cmp /dev/null actual_diff_dirstat &&\n"> 
          <"\ttest_i18ngrep -q \"future_param\" actual_error &&\n"> <"\ttest_i18ngrep -q \"\\--dirstat\" actual_error\n">
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <"--dirstat=dummy1,cumulative,2dummy should report both unrecognized parameters">)} 
      {
        (SQ <"\n"> 
          <
"\ttest_must_fail git diff --dirstat=dummy1,cumulative,2dummy HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&\n"
          > <"\ttest_debug \"cat actual_error\" &&\n"> <"\ttest_cmp /dev/null actual_diff_dirstat &&\n"> 
          <"\ttest_i18ngrep -q \"dummy1\" actual_error &&\n"> <"\ttest_i18ngrep -q \"2dummy\" actual_error &&\n"> 
          <"\ttest_i18ngrep -q \"\\--dirstat\" actual_error\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"diff.dirstat=future_param,0,lines should warn, but still work">)} 
      {
        (SQ <"\n"> 
          <
"\tgit -c diff.dirstat=future_param,0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat 2>actual_error &&\n"
          > <"\ttest_debug \"cat actual_error\" &&\n"> <"\ttest_cmp expect_diff_dirstat actual_diff_dirstat &&\n"> 
          <"\ttest_i18ngrep -q \"future_param\" actual_error &&\n"> <"\ttest_i18ngrep -q \"diff\\\\.dirstat\" actual_error &&\n"> <"\n"> 
          <
"\tgit -c diff.dirstat=future_param,0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M 2>actual_error &&\n"
          > <"\ttest_debug \"cat actual_error\" &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&\n"> <"\ttest_i18ngrep -q \"future_param\" actual_error &&\n"> 
          <"\ttest_i18ngrep -q \"diff\\\\.dirstat\" actual_error &&\n"> <"\n"> 
          <
"\tgit -c diff.dirstat=future_param,0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC 2>actual_error &&\n"
          > <"\ttest_debug \"cat actual_error\" &&\n"> 
          <"\ttest_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC &&\n"> <"\ttest_i18ngrep -q \"future_param\" actual_error &&\n"> 
          <"\ttest_i18ngrep -q \"diff\\\\.dirstat\" actual_error\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"--shortstat --dirstat should output only one dirstat">)} 
      {
        (SQ <"\n"> <"\tgit diff --shortstat --dirstat=changes HEAD^..HEAD >out &&\n"> 
          <"\tgrep \" dst/copy/changed/$\" out >actual_diff_shortstat_dirstat_changes &&\n"> <"\ttest_line_count = 1 actual_diff_shortstat_dirstat_changes &&\n"> <"\n"> 
          <"\tgit diff --shortstat --dirstat=lines HEAD^..HEAD >out &&\n"> <"\tgrep \" dst/copy/changed/$\" out >actual_diff_shortstat_dirstat_lines &&\n"> 
          <"\ttest_line_count = 1 actual_diff_shortstat_dirstat_lines &&\n"> <"\n"> <"\tgit diff --shortstat --dirstat=files HEAD^..HEAD >out &&\n"> 
          <"\tgrep \" dst/copy/changed/$\" out >actual_diff_shortstat_dirstat_files &&\n"> <"\ttest_line_count = 1 actual_diff_shortstat_dirstat_files\n">
        )
      }
    )
    (C {(test_done)})
  ]
)