(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:'Quoting paths in diff output.\n' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:P0)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:pathname span_id:26))}
          spids: [24]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:P1)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'pathname\twith HT' span_id:31))}
          spids: [29]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:P2)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'pathname with SP' span_id:36))}
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:P3)
          op: assign_op.Equal
          rhs: 
            {
              (SQ (Token id:Id.Lit_Chars val:'pathname\n' span_id:41) 
                (Token id:Id.Lit_Chars val:'with LF' span_id:42)
              )
            }
          spids: [39]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
      children: [
        (C {(test_have_prereq)} {(Id.KW_Bang '!') (MINGW)})
        (command.Simple
          words: [{(echo)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'2>' span_id:54)
              fd: 2
              arg_word: {(/dev/null)}
            )
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:57)
              fd: -1
              arg_word: {(DQ ($ Id.VSub_DollarName '$P1'))}
            )
          ]
        )
        (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$P1'))})
        (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$P1'))})
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:skip_all)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SQ 
                        (Token
                          id: Id.Lit_Chars
                          val: 'Your filesystem does not allow tabs in filenames'
                          span_id: 89
                        )
                      )
                    }
                  spids: [87]
                )
              ]
            )
            (C {(test_done)})
          ]
        )
      ]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:103) 
          (Token id:Id.Lit_Chars val:'\techo P0.0 >"$P0.0" &&\n' span_id:104) (Token id:Id.Lit_Chars val:'\techo P0.1 >"$P0.1" &&\n' span_id:105) 
          (Token id:Id.Lit_Chars val:'\techo P0.2 >"$P0.2" &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\techo P0.3 >"$P0.3" &&\n' span_id:107) 
          (Token id:Id.Lit_Chars val:'\techo P1.0 >"$P1.0" &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\techo P1.2 >"$P1.2" &&\n' span_id:109) 
          (Token id:Id.Lit_Chars val:'\techo P1.3 >"$P1.3" &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:111) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m initial &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\tgit mv "$P0.0" "R$P0.0" &&\n' span_id:113) 
          (Token id:Id.Lit_Chars val:'\tgit mv "$P0.1" "R$P1.0" &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\tgit mv "$P0.2" "R$P2.0" &&\n' span_id:115) 
          (Token id:Id.Lit_Chars val:'\tgit mv "$P0.3" "R$P3.0" &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\tgit mv "$P1.0" "R$P0.1" &&\n' span_id:117) 
          (Token id:Id.Lit_Chars val:'\tgit mv "$P1.2" "R$P2.1" &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\tgit mv "$P1.3" "R$P3.1" &&\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\t:\n' span_id:120)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup expected files' span_id:127))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:131) 
          (Token id:Id.Lit_Chars val:'cat >expect <<\\EOF\n' span_id:132) (Token id:Id.Lit_Chars val:' rename pathname.1 => "Rpathname\\twith HT.0" (100%)\n' span_id:133) 
          (Token
            id: Id.Lit_Chars
            val: ' rename pathname.3 => "Rpathname\\nwith LF.0" (100%)\n'
            span_id: 134
          ) 
          (Token
            id: Id.Lit_Chars
            val: ' rename "pathname\\twith HT.3" => "Rpathname\\nwith LF.1" (100%)\n'
            span_id: 135
          ) (Token id:Id.Lit_Chars val:' rename pathname.2 => Rpathname with SP.0 (100%)\n' span_id:136) 
          (Token
            id: Id.Lit_Chars
            val: ' rename "pathname\\twith HT.2" => Rpathname with SP.1 (100%)\n'
            span_id: 137
          ) (Token id:Id.Lit_Chars val:' rename pathname.0 => Rpathname.0 (100%)\n' span_id:138) 
          (Token
            id: Id.Lit_Chars
            val: ' rename "pathname\\twith HT.0" => Rpathname.1 (100%)\n'
            span_id: 139
          ) (Token id:Id.Lit_Chars val:'EOF\n' span_id:140)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff --summary -M HEAD' span_id:147))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:151) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit diff --summary -M HEAD >actual &&\n'
            span_id: 152
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:153)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff --numstat -M HEAD' span_id:160))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:164) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\t0\t0\tpathname.1 => "Rpathname\\twith HT.0"\n' span_id:166) 
          (Token
            id: Id.Lit_Chars
            val: '\t0\t0\tpathname.3 => "Rpathname\\nwith LF.0"\n'
            span_id: 167
          ) (Token id:Id.Lit_Chars val:'\t0\t0\t"pathname\\twith HT.3" => "Rpathname\\nwith LF.1"\n' span_id:168) 
          (Token
            id: Id.Lit_Chars
            val: '\t0\t0\tpathname.2 => Rpathname with SP.0\n'
            span_id: 169
          ) (Token id:Id.Lit_Chars val:'\t0\t0\t"pathname\\twith HT.2" => Rpathname with SP.1\n' span_id:170) 
          (Token id:Id.Lit_Chars val:'\t0\t0\tpathname.0 => Rpathname.0\n' span_id:171) (Token id:Id.Lit_Chars val:'\t0\t0\t"pathname\\twith HT.0" => Rpathname.1\n' span_id:172) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:173) (Token id:Id.Lit_Chars val:'\tgit diff --numstat -M HEAD >actual &&\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:175)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff --stat -M HEAD' span_id:182))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:186) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:187) (Token id:Id.Lit_Chars val:'\t pathname.1 => "Rpathname\\twith HT.0"            | 0\n' span_id:188) 
          (Token
            id: Id.Lit_Chars
            val: '\t pathname.3 => "Rpathname\\nwith LF.0"            | 0\n'
            span_id: 189
          ) (Token id:Id.Lit_Chars val:'\t "pathname\\twith HT.3" => "Rpathname\\nwith LF.1" | 0\n' span_id:190) 
          (Token
            id: Id.Lit_Chars
            val: '\t pathname.2 => Rpathname with SP.0               | 0\n'
            span_id: 191
          ) (Token id:Id.Lit_Chars val:'\t "pathname\\twith HT.2" => Rpathname with SP.1    | 0\n' span_id:192) 
          (Token
            id: Id.Lit_Chars
            val: '\t pathname.0 => Rpathname.0                       | 0\n'
            span_id: 193
          ) (Token id:Id.Lit_Chars val:'\t "pathname\\twith HT.0" => Rpathname.1            | 0\n' span_id:194) 
          (Token
            id: Id.Lit_Chars
            val: '\t 7 files changed, 0 insertions(+), 0 deletions(-)\n'
            span_id: 195
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:196) 
          (Token id:Id.Lit_Chars val:'\tgit diff --stat -M HEAD >actual &&\n' span_id:197) (Token id:Id.Lit_Chars val:'\ttest_i18ncmp expect actual\n' span_id:198)
        )
      }
    )
    (C {(test_done)})
  ]
)