(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git clean basic tests'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <git>
      more_env: []
      words: [{<git>} {<config>} {<clean.requireForce>} {<no>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <setup>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p src &&\n'> <'\ttouch src/part1.c Makefile &&\n'> 
            <'\techo build >.gitignore &&\n'> <'\techo \\*.o >>.gitignore &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m setup &&\n'> 
            <'\ttouch src/part2.c README &&\n'> <'\tgit add .\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean with skip-worktree .gitignore'>)}
        {
          (SQ <'\n'> <'\tgit update-index --skip-worktree .gitignore &&\n'> <'\trm .gitignore &&\n'> 
            <'\tmkdir -p build docs &&\n'> <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean &&\n'> 
            <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> 
            <'\ttest ! -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> 
            <'\ttest -f build/lib.so &&\n'> <'\tgit update-index --no-skip-worktree .gitignore &&\n'> <'\tgit checkout .gitignore\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest ! -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean src/'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean src/ &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean src/ src/'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean src/ src/ &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean with prefix'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs src/test &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so src/test/1.c &&\n'> <'\t(cd src/ && git clean) &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest -f src/test/1.c &&\n'> <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<C_LOCALE_OUTPUT>}
        {(SQ <'git clean with relative prefix'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\twould_clean=$(\n'> <'\t\tcd docs &&\n'> <'\t\tgit clean -n ../src |\n'> 
            <'\t\tsed -n -e "s|^Would remove ||p"\n'> <'\t) &&\n'> <'\tverbose test "$would_clean" = ../src/part3.c\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<C_LOCALE_OUTPUT>}
        {(SQ <'git clean with absolute path'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\twould_clean=$(\n'> <'\t\tcd docs &&\n'> <'\t\tgit clean -n "$(pwd)/../src" |\n'> 
            <'\t\tsed -n -e "s|^Would remove ||p"\n'> <'\t) &&\n'> <'\tverbose test "$would_clean" = ../src/part3.c\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean with out of work tree relative path'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\t(\n'> <'\t\tcd docs &&\n'> <'\t\ttest_must_fail git clean -n ../..\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean with out of work tree absolute path'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tdd=$(cd .. && pwd) &&\n'> <'\t(\n'> <'\t\tcd docs &&\n'> <'\t\ttest_must_fail git clean -n $dd\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d with prefix and path'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs src/feature &&\n'> 
            <'\ttouch a.out src/part3.c src/feature/file.c docs/manual.txt obj.o build/lib.so &&\n'> <'\t(cd src/ && git clean -d feature/) &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest -f src/part3.c &&\n'> 
            <'\ttest ! -f src/feature/file.c &&\n'> <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<SYMLINKS>}
        {(SQ <'git clean symbolic link'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tln -s docs/manual.txt src/part4.c &&\n'> <'\tgit clean &&\n'> <'\ttest -f Makefile &&\n'> 
            <'\ttest -f README &&\n'> <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest ! -f a.out &&\n'> 
            <'\ttest ! -f src/part3.c &&\n'> <'\ttest ! -f src/part4.c &&\n'> <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> 
            <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean with wildcard'>)}
        {
          (SQ <'\n'> <'\n'> <'\ttouch a.clean b.clean other.c &&\n'> <'\tgit clean "*.clean" &&\n'> 
            <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> 
            <'\ttest ! -f a.clean &&\n'> <'\ttest ! -f b.clean &&\n'> <'\ttest -f other.c\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -n'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -n &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -d &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest ! -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest ! -d docs &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d src/ examples/'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs examples &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so examples/1.c &&\n'> <'\tgit clean -d src/ examples/ &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest ! -f examples/1.c &&\n'> <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -x'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -x &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest ! -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest ! -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d -x'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -d -x &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest ! -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest ! -d docs &&\n'> <'\ttest ! -f obj.o &&\n'> <'\ttest ! -d build\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d -x with ignored tracked directory'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -d -x -e src &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest ! -f a.out &&\n'> <'\ttest -f src/part3.c &&\n'> 
            <'\ttest ! -d docs &&\n'> <'\ttest ! -f obj.o &&\n'> <'\ttest ! -d build\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -X'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -X &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest ! -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d -X'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -d -X &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest ! -f obj.o &&\n'> <'\ttest ! -d build\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d -X with ignored tracked directory'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -d -X -e src &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest ! -f obj.o &&\n'> <'\ttest ! -d build\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'clean.requireForce defaults to true'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit config --unset clean.requireForce &&\n'> 
            <'\ttest_must_fail git clean\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <clean.requireForce>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit config clean.requireForce true &&\n'> 
            <'\ttest_must_fail git clean\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'clean.requireForce and -n'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir -p build docs &&\n'> 
            <'\ttouch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&\n'> <'\tgit clean -n &&\n'> <'\ttest -f Makefile &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest -f a.out &&\n'> <'\ttest -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'clean.requireForce and -f'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit clean -f &&\n'> <'\ttest -f README &&\n'> 
            <'\ttest -f src/part1.c &&\n'> <'\ttest -f src/part2.c &&\n'> <'\ttest ! -f a.out &&\n'> <'\ttest ! -f src/part3.c &&\n'> 
            <'\ttest -f docs/manual.txt &&\n'> <'\ttest -f obj.o &&\n'> <'\ttest -f build/lib.so\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<C_LOCALE_OUTPUT>}
        {(SQ <core.excludesfile>)}
        {
          (SQ <'\n'> <'\n'> <'\techo excludes >excludes &&\n'> <'\techo included >included &&\n'> 
            <'\tgit config core.excludesfile excludes &&\n'> <'\toutput=$(git clean -n excludes included 2>&1) &&\n'> 
            <'\texpr "$output" : ".*included" >/dev/null &&\n'> <'\t! expr "$output" : ".*excludes" >/dev/null\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<SANITY>}
        {(SQ <'removal failure'>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir foo &&\n'> <'\ttouch foo/bar &&\n'> 
            <'\ttest_when_finished "chmod 755 foo" &&\n'> <'\t(exec <foo/bar &&\n'> <'\t chmod 0 foo &&\n'> <'\t test_must_fail git clean -f -d)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'nested git work tree'>)}
        {
          (SQ <'\n'> <'\trm -fr foo bar baz &&\n'> <'\tmkdir -p foo bar baz/boo &&\n'> <'\t(\n'> 
            <'\t\tcd foo &&\n'> <'\t\tgit init &&\n'> <'\t\ttest_commit nested hello.world\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd bar &&\n'> 
            <'\t\t>goodbye.people\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd baz/boo &&\n'> <'\t\tgit init &&\n'> 
            <'\t\ttest_commit deeply.nested deeper.world\n'> <'\t) &&\n'> <'\tgit clean -f -d &&\n'> <'\ttest -f foo/.git/index &&\n'> 
            <'\ttest -f foo/hello.world &&\n'> <'\ttest -f baz/boo/.git/index &&\n'> <'\ttest -f baz/boo/deeper.world &&\n'> <'\t! test -d bar\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'should clean things that almost look like git but are not'>)}
        {
          (SQ <'\n'> <'\trm -fr almost_git almost_bare_git almost_submodule &&\n'> 
            <'\tmkdir -p almost_git/.git/objects &&\n'> <'\tmkdir -p almost_git/.git/refs &&\n'> <'\tcat >almost_git/.git/HEAD <<-\\EOF &&\n'> <'\tgarbage\n'> 
            <'\tEOF\n'> <'\tcp -r almost_git/.git/ almost_bare_git &&\n'> <'\tmkdir almost_submodule/ &&\n'> 
            <'\tcat >almost_submodule/.git <<-\\EOF &&\n'> <'\tgarbage\n'> <'\tEOF\n'> <'\ttest_when_finished "rm -rf almost_*" &&\n'> <'\tgit clean -f -d &&\n'> 
            <'\ttest_path_is_missing almost_git &&\n'> <'\ttest_path_is_missing almost_bare_git &&\n'> <'\ttest_path_is_missing almost_submodule\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'should not clean submodules'>)}
        {
          (SQ <'\n'> <'\trm -fr repo to_clean sub1 sub2 &&\n'> <'\tmkdir repo to_clean &&\n'> <'\t(\n'> 
            <'\t\tcd repo &&\n'> <'\t\tgit init &&\n'> <'\t\ttest_commit msg hello.world\n'> <'\t) &&\n'> 
            <'\tgit submodule add ./repo/.git sub1 &&\n'> <'\tgit commit -m "sub1" &&\n'> <'\tgit branch before_sub2 &&\n'> 
            <'\tgit submodule add ./repo/.git sub2 &&\n'> <'\tgit commit -m "sub2" &&\n'> <'\tgit checkout before_sub2 &&\n'> 
            <'\t>to_clean/should_clean.this &&\n'> <'\tgit clean -f -d &&\n'> <'\ttest_path_is_file repo/.git/index &&\n'> 
            <'\ttest_path_is_file repo/hello.world &&\n'> <'\ttest_path_is_file sub1/.git &&\n'> <'\ttest_path_is_file sub1/hello.world &&\n'> 
            <'\ttest_path_is_file sub2/.git &&\n'> <'\ttest_path_is_file sub2/hello.world &&\n'> <'\ttest_path_is_missing to_clean\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<POSIXPERM> <Id.Lit_Comma ','> <SANITY>}
        {(SQ <'should avoid cleaning possible submodules'>)}
        {
          (SQ <'\n'> <'\trm -fr to_clean possible_sub1 &&\n'> <'\tmkdir to_clean possible_sub1 &&\n'> 
            <'\ttest_when_finished "rm -rf possible_sub*" &&\n'> <'\techo "gitdir: foo" >possible_sub1/.git &&\n'> <'\t>possible_sub1/hello.world &&\n'> 
            <'\tchmod 0 possible_sub1/.git &&\n'> <'\t>to_clean/should_clean.this &&\n'> <'\tgit clean -f -d &&\n'> 
            <'\ttest_path_is_file possible_sub1/.git &&\n'> <'\ttest_path_is_file possible_sub1/hello.world &&\n'> <'\ttest_path_is_missing to_clean\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'nested (empty) git should be kept'>)}
        {
          (SQ <'\n'> <'\trm -fr empty_repo to_clean &&\n'> <'\tgit init empty_repo &&\n'> 
            <'\tmkdir to_clean &&\n'> <'\t>to_clean/should_clean.this &&\n'> <'\tgit clean -f -d &&\n'> 
            <'\ttest_path_is_file empty_repo/.git/HEAD &&\n'> <'\ttest_path_is_missing to_clean\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'nested bare repositories should be cleaned'>)}
        {
          (SQ <'\n'> <'\trm -fr bare1 bare2 subdir &&\n'> <'\tgit init --bare bare1 &&\n'> 
            <'\tgit clone --local --bare . bare2 &&\n'> <'\tmkdir subdir &&\n'> <'\tcp -r bare2 subdir/bare3 &&\n'> <'\tgit clean -f -d &&\n'> 
            <'\ttest_path_is_missing bare1 &&\n'> <'\ttest_path_is_missing bare2 &&\n'> <'\ttest_path_is_missing subdir\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_failure>
      more_env: []
      words: [
        {<test_expect_failure>}
        {(SQ <'nested (empty) bare repositories should be cleaned even when in .git'>)}
        {
          (SQ <'\n'> <'\trm -fr strange_bare &&\n'> <'\tmkdir strange_bare &&\n'> 
            <'\tgit init --bare strange_bare/.git &&\n'> <'\tgit clean -f -d &&\n'> <'\ttest_path_is_missing strange_bare\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_failure>
      more_env: []
      words: [
        {<test_expect_failure>}
        {(SQ <'nested (non-empty) bare repositories should be cleaned even when in .git'>)}
        {
          (SQ <'\n'> <'\trm -fr strange_bare &&\n'> <'\tmkdir strange_bare &&\n'> 
            <'\tgit clone --local --bare . strange_bare/.git &&\n'> <'\tgit clean -f -d &&\n'> <'\ttest_path_is_missing strange_bare\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'giving path in nested git work tree will remove it'>)}
        {
          (SQ <'\n'> <'\trm -fr repo &&\n'> <'\tmkdir repo &&\n'> <'\t(\n'> <'\t\tcd repo &&\n'> 
            <'\t\tgit init &&\n'> <'\t\tmkdir -p bar/baz &&\n'> <'\t\ttest_commit msg bar/baz/hello.world\n'> <'\t) &&\n'> 
            <'\tgit clean -f -d repo/bar/baz &&\n'> <'\ttest_path_is_file repo/.git/HEAD &&\n'> <'\ttest_path_is_dir repo/bar/ &&\n'> 
            <'\ttest_path_is_missing repo/bar/baz\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'giving path to nested .git will not remove it'>)}
        {
          (SQ <'\n'> <'\trm -fr repo &&\n'> <'\tmkdir repo untracked &&\n'> <'\t(\n'> 
            <'\t\tcd repo &&\n'> <'\t\tgit init &&\n'> <'\t\ttest_commit msg hello.world\n'> <'\t) &&\n'> 
            <'\tgit clean -f -d repo/.git &&\n'> <'\ttest_path_is_file repo/.git/HEAD &&\n'> <'\ttest_path_is_dir repo/.git/refs &&\n'> 
            <'\ttest_path_is_dir repo/.git/objects &&\n'> <'\ttest_path_is_dir untracked/\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'giving path to nested .git/ will remove contents'>)}
        {
          (SQ <'\n'> <'\trm -fr repo untracked &&\n'> <'\tmkdir repo untracked &&\n'> <'\t(\n'> 
            <'\t\tcd repo &&\n'> <'\t\tgit init &&\n'> <'\t\ttest_commit msg hello.world\n'> <'\t) &&\n'> 
            <'\tgit clean -f -d repo/.git/ &&\n'> <'\ttest_path_is_dir repo/.git &&\n'> <'\ttest_dir_is_empty repo/.git &&\n'> 
            <'\ttest_path_is_dir untracked/\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'force removal of nested git work tree'>)}
        {
          (SQ <'\n'> <'\trm -fr foo bar baz &&\n'> <'\tmkdir -p foo bar baz/boo &&\n'> <'\t(\n'> 
            <'\t\tcd foo &&\n'> <'\t\tgit init &&\n'> <'\t\ttest_commit nested hello.world\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd bar &&\n'> 
            <'\t\t>goodbye.people\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd baz/boo &&\n'> <'\t\tgit init &&\n'> 
            <'\t\ttest_commit deeply.nested deeper.world\n'> <'\t) &&\n'> <'\tgit clean -f -f -d &&\n'> <'\t! test -d foo &&\n'> <'\t! test -d bar &&\n'> 
            <'\t! test -d baz\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -e'>)}
        {
          (SQ <'\n'> <'\trm -fr repo &&\n'> <'\tmkdir repo &&\n'> <'\t(\n'> <'\t\tcd repo &&\n'> 
            <'\t\tgit init &&\n'> <'\t\ttouch known 1 2 3 &&\n'> <'\t\tgit add known &&\n'> <'\t\tgit clean -f -e 1 -e 2 &&\n'> 
            <'\t\ttest -e 1 &&\n'> <'\t\ttest -e 2 &&\n'> <'\t\t! (test -e 3) &&\n'> <'\t\ttest -e known\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<SANITY>}
        {(SQ <'git clean -d with an unreadable empty directory'>)}
        {
          (SQ <'\n'> <'\tmkdir foo &&\n'> <'\tchmod a= foo &&\n'> <'\tgit clean -dfx foo &&\n'> 
            <'\t! test -d foo\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d respects pathspecs (dir is prefix of pathspec)'>)}
        {
          (SQ <'\n'> <'\tmkdir -p foo &&\n'> <'\tmkdir -p foobar &&\n'> <'\tgit clean -df foobar &&\n'> 
            <'\ttest_path_is_dir foo &&\n'> <'\ttest_path_is_missing foobar\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'git clean -d respects pathspecs (pathspec is prefix of dir)'>)}
        {
          (SQ <'\n'> <'\tmkdir -p foo &&\n'> <'\tmkdir -p foobar &&\n'> <'\tgit clean -df foo &&\n'> 
            <'\ttest_path_is_missing foo &&\n'> <'\ttest_path_is_dir foobar\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)