| #!/bin/sh | |
| test_description='git clean -i basic tests' | |
| . ./test-lib.sh | |
| test_expect_success 'setup' ' | |
| mkdir -p src && | |
| touch src/part1.c Makefile && | |
| echo build >.gitignore && | |
| echo \*.o >>.gitignore && | |
| git add . && | |
| git commit -m setup && | |
| touch src/part2.c README && | |
| git add . | |
| ' | |
| test_expect_success 'git clean -i (c: clean hotkey)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| echo c | git clean -i && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test ! -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -i (cl: clean prefix)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| echo cl | git clean -i && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test ! -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -i (quit)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| echo quit | git clean -i && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -i (Ctrl+D)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| echo "\04" | git clean -i && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (filter all)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo f; echo "*"; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (filter patterns)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo f; echo "part3.* *.out"; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test ! -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test ! -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (filter patterns 2)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo f; echo "* !*.out"; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (select - all)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo "*"; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test ! -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test ! -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (select - none)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (select - number)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo 3; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (select - number 2)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo 2 3; echo 5; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test ! -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (select - number 3)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo 3,4 5; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (select - filenames)' ' | |
| mkdir -p build docs && | |
| touch a.out foo.txt bar.txt baz.txt && | |
| (echo s; echo a.out fo ba bar; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test ! -f a.out && | |
| test ! -f foo.txt && | |
| test ! -f bar.txt && | |
| test -f baz.txt && | |
| rm baz.txt | |
| ' | |
| test_expect_success 'git clean -id (select - range)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo 1,3-4; echo 2; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test ! -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test ! -f docs/manual.txt && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (select - range 2)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo 4- 1; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test ! -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (inverse select)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo s; echo "*"; echo -5- 1 -2; echo; echo c) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (ask)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo a; echo Y; echo y; echo no; echo yes; echo bad; echo) | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test ! -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id (ask - Ctrl+D)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (echo a; echo Y; echo no; echo yes; echo "\04") | \ | |
| git clean -id && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id with prefix and path (filter)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (cd build/ && \ | |
| (echo f; echo "docs"; echo "*.h"; echo ; echo c) | \ | |
| git clean -id ..) && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id with prefix and path (select by name)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (cd build/ && \ | |
| (echo s; echo "../docs/"; echo "../src/part3.c"; \ | |
| echo "../src/part4.c"; echo; echo c) | \ | |
| git clean -id ..) && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test -f a.out && | |
| test ! -f docs/manual.txt && | |
| test ! -f src/part3.c && | |
| test -f src/part3.h && | |
| test ! -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_expect_success 'git clean -id with prefix and path (ask)' ' | |
| mkdir -p build docs && | |
| touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \ | |
| docs/manual.txt obj.o build/lib.so && | |
| (cd build/ && \ | |
| (echo a; echo Y; echo y; echo no; echo yes; echo bad; echo) | \ | |
| git clean -id ..) && | |
| test -f Makefile && | |
| test -f README && | |
| test -f src/part1.c && | |
| test -f src/part2.c && | |
| test ! -f a.out && | |
| test ! -f docs/manual.txt && | |
| test -f src/part3.c && | |
| test ! -f src/part3.h && | |
| test -f src/part4.c && | |
| test -f src/part4.h && | |
| test -f obj.o && | |
| test -f build/lib.so | |
| ' | |
| test_done |