(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'Quoting paths in diff output.\n'>)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:P0) op:Equal rhs:{(SQ <pathname>)} spids:[24])]
      spids: [24]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:P1)
          op: Equal
          rhs: {(SQ <'pathname\twith HT'>)}
          spids: [29]
        )
      ]
      spids: [29]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:P2) op:Equal rhs:{(SQ <'pathname with SP'>)} spids:[34])]
      spids: [34]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:P3)
          op: Equal
          rhs: {(SQ <'pathname\n'> <'with LF'>)}
          spids: [39]
        )
      ]
      spids: [39]
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp Op_DAmp Op_DPipe]
      children: [
        (C {(test_have_prereq)} {(KW_Bang '!') (MINGW)})
        (SimpleCommand
          words: [{(echo)}]
          redirects: [
            (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[54])
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$P1'))}
              spids: [57]
            )
          ]
        )
        (C {(test)} {(-f)} {(DQ ($ VSub_Name '$P1'))})
        (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$P1'))})
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip_all)
                  op: Equal
                  rhs: {(SQ <'Your filesystem does not allow tabs in filenames'>)}
                  spids: [87]
                )
              ]
              spids: [87]
            )
            (C {(test_done)})
          ]
          spids: [84]
        )
      ]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <'\n'> <'\techo P0.0 >"$P0.0" &&\n'> <'\techo P0.1 >"$P0.1" &&\n'> 
          <'\techo P0.2 >"$P0.2" &&\n'> <'\techo P0.3 >"$P0.3" &&\n'> <'\techo P1.0 >"$P1.0" &&\n'> <'\techo P1.2 >"$P1.2" &&\n'> 
          <'\techo P1.3 >"$P1.3" &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m initial &&\n'> <'\tgit mv "$P0.0" "R$P0.0" &&\n'> 
          <'\tgit mv "$P0.1" "R$P1.0" &&\n'> <'\tgit mv "$P0.2" "R$P2.0" &&\n'> <'\tgit mv "$P0.3" "R$P3.0" &&\n'> 
          <'\tgit mv "$P1.0" "R$P0.1" &&\n'> <'\tgit mv "$P1.2" "R$P2.1" &&\n'> <'\tgit mv "$P1.3" "R$P3.1" &&\n'> <'\t:\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'setup expected files'>)} 
      {
        (SQ <'\n'> <'cat >expect <<\\EOF\n'> <' rename pathname.1 => "Rpathname\\twith HT.0" (100%)\n'> 
          <' rename pathname.3 => "Rpathname\\nwith LF.0" (100%)\n'> <' rename "pathname\\twith HT.3" => "Rpathname\\nwith LF.1" (100%)\n'> 
          <' rename pathname.2 => Rpathname with SP.0 (100%)\n'> <' rename "pathname\\twith HT.2" => Rpathname with SP.1 (100%)\n'> 
          <' rename pathname.0 => Rpathname.0 (100%)\n'> <' rename "pathname\\twith HT.0" => Rpathname.1 (100%)\n'> <'EOF\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --summary -M HEAD'>)} 
      {(SQ <'\n'> <'\tgit diff --summary -M HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff --numstat -M HEAD'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\t0\t0\tpathname.1 => "Rpathname\\twith HT.0"\n'> 
          <'\t0\t0\tpathname.3 => "Rpathname\\nwith LF.0"\n'> <'\t0\t0\t"pathname\\twith HT.3" => "Rpathname\\nwith LF.1"\n'> 
          <'\t0\t0\tpathname.2 => Rpathname with SP.0\n'> <'\t0\t0\t"pathname\\twith HT.2" => Rpathname with SP.1\n'> <'\t0\t0\tpathname.0 => Rpathname.0\n'> 
          <'\t0\t0\t"pathname\\twith HT.0" => Rpathname.1\n'> <'\tEOF\n'> <'\tgit diff --numstat -M HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --stat -M HEAD'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> 
          <'\t pathname.1 => "Rpathname\\twith HT.0"            | 0\n'> <'\t pathname.3 => "Rpathname\\nwith LF.0"            | 0\n'> 
          <'\t "pathname\\twith HT.3" => "Rpathname\\nwith LF.1" | 0\n'> <'\t pathname.2 => Rpathname with SP.0               | 0\n'> 
          <'\t "pathname\\twith HT.2" => Rpathname with SP.1    | 0\n'> <'\t pathname.0 => Rpathname.0                       | 0\n'> 
          <'\t "pathname\\twith HT.0" => Rpathname.1            | 0\n'> <'\t 7 files changed, 0 insertions(+), 0 deletions(-)\n'> <'\tEOF\n'> 
          <'\tgit diff --stat -M HEAD >actual &&\n'> <'\ttest_i18ncmp expect actual\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)