 aebd23506e
			
		
	
	aebd23506e
	
	
	
		
			
			* jk/ui-color-always-to-auto-maint: color: make "always" the same as "auto" in config provide --color option for all ref-filter users t3205: use --color instead of color.branch=always t3203: drop "always" color test t6006: drop "always" color config tests t7502: use diff.noprefix for --verbose test t7508: use test_terminal for color output t3701: use test-terminal to collect color output t4015: prefer --color to -c color.diff=always test-terminal: set TERM=vt100
		
			
				
	
	
		
			487 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			487 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='git clean -i basic tests'
 | |
| 
 | |
| . ./test-lib.sh
 | |
| . "$TEST_DIRECTORY"/lib-terminal.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_expect_success TTY 'git clean -i paints the header in HEADER color' '
 | |
| 	>a.out &&
 | |
| 	echo q |
 | |
| 	test_terminal git clean -i |
 | |
| 	test_decode_color |
 | |
| 	head -n 1 >header &&
 | |
| 	# not i18ngrep
 | |
| 	grep "^<BOLD>" header
 | |
| '
 | |
| 
 | |
| test_done
 |