Merge branch 'jk/combine-diff-binary-etc'
[gitweb.git] / t / t7300-clean.sh
index 7d8ed68befed0e85ad85f9f933a2b887125e38e8..800b5368a5248835bb9817c0e0c8409131306b3c 100755 (executable)
@@ -110,7 +110,7 @@ test_expect_success 'git clean with prefix' '
 
 '
 
-test_expect_success 'git clean with relative prefix' '
+test_expect_success C_LOCALE_OUTPUT 'git clean with relative prefix' '
 
        mkdir -p build docs &&
        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
@@ -125,7 +125,7 @@ test_expect_success 'git clean with relative prefix' '
        }
 '
 
-test_expect_success 'git clean with absolute path' '
+test_expect_success C_LOCALE_OUTPUT 'git clean with absolute path' '
 
        mkdir -p build docs &&
        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
@@ -179,11 +179,11 @@ test_expect_success 'git clean -d with prefix and path' '
 
 '
 
-test_expect_success 'git clean symbolic link' '
+test_expect_success SYMLINKS 'git clean symbolic link' '
 
        mkdir -p build docs &&
        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
-       ln -s docs/manual.txt src/part4.c
+       ln -s docs/manual.txt src/part4.c &&
        git clean &&
        test -f Makefile &&
        test -f README &&
@@ -377,7 +377,7 @@ test_expect_success 'clean.requireForce and -f' '
 
 '
 
-test_expect_success 'core.excludesfile' '
+test_expect_success C_LOCALE_OUTPUT 'core.excludesfile' '
 
        echo excludes >excludes &&
        echo included >included &&
@@ -388,16 +388,15 @@ test_expect_success 'core.excludesfile' '
 
 '
 
-test_expect_success 'removal failure' '
+test_expect_success SANITY 'removal failure' '
 
        mkdir foo &&
        touch foo/bar &&
        (exec <foo/bar &&
         chmod 0 foo &&
-        test_must_fail git clean -f -d)
-
+        test_must_fail git clean -f -d &&
+        chmod 755 foo)
 '
-chmod 755 foo
 
 test_expect_success 'nested git work tree' '
        rm -fr foo bar &&
@@ -438,4 +437,27 @@ test_expect_success 'force removal of nested git work tree' '
        ! test -d bar
 '
 
+test_expect_success 'git clean -e' '
+       rm -fr repo &&
+       mkdir repo &&
+       (
+               cd repo &&
+               git init &&
+               touch known 1 2 3 &&
+               git add known &&
+               git clean -f -e 1 -e 2 &&
+               test -e 1 &&
+               test -e 2 &&
+               ! (test -e 3) &&
+               test -e known
+       )
+'
+
+test_expect_success SANITY 'git clean -d with an unreadable empty directory' '
+       mkdir foo &&
+       chmod a= foo &&
+       git clean -dfx foo &&
+       ! test -d foo
+'
+
 test_done