diff options
| author | Junio C Hamano <gitster@pobox.com> | 2013-06-09 11:29:20 -0700 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2013-06-09 16:45:14 -0700 | 
| commit | ca8d148daf3014577222c2562ca2c8170a866aa4 (patch) | |
| tree | d3225e86102154d591d8b25336eb4166c32efd0a /t | |
| parent | b1d04bfcf84cc3464d0bdf62b02443d0d55e3f2b (diff) | |
| download | git-ca8d148daf3014577222c2562ca2c8170a866aa4.tar.gz | |
test: test_must_be_empty helper
There are quite a lot places where an output file is expected to be
empty, and we fail the test when it is not.  The output from running
the test script with -i -v can be helped if we showed the unexpected
contents at that point.
We could of course do
    >expected.empty && test_cmp expected.empty actual
but this is commmon enough to be done with a dedicated helper.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
| -rwxr-xr-x | t/t0040-parse-options.sh | 46 | ||||
| -rwxr-xr-x | t/t3400-rebase.sh | 2 | ||||
| -rwxr-xr-x | t/t3903-stash.sh | 10 | ||||
| -rwxr-xr-x | t/t5521-pull-options.sh | 26 | ||||
| -rwxr-xr-x | t/t5702-clone-options.sh | 2 | ||||
| -rwxr-xr-x | t/t7102-reset.sh | 2 | ||||
| -rwxr-xr-x | t/t7400-submodule-basic.sh | 6 | ||||
| -rwxr-xr-x | t/t9402-git-cvsserver-refs.sh | 12 | ||||
| -rw-r--r-- | t/test-lib-functions.sh | 12 | 
9 files changed, 65 insertions, 53 deletions
diff --git a/t/t0040-parse-options.sh b/t/t0040-parse-options.sh index 244a43c920..65606df3ed 100755 --- a/t/t0040-parse-options.sh +++ b/t/t0040-parse-options.sh @@ -50,7 +50,7 @@ EOF  test_expect_success 'test help' '  	test_must_fail test-parse-options -h > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_i18ncmp expect output  ' @@ -75,7 +75,7 @@ check() {  	shift &&  	sed "s/^$what .*/$what $expect/" <expect.template >expect &&  	test-parse-options $* >output 2>output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  } @@ -86,7 +86,7 @@ check_i18n() {  	shift &&  	sed "s/^$what .*/$what $expect/" <expect.template >expect &&  	test-parse-options $* >output 2>output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_i18ncmp expect output  } @@ -99,7 +99,7 @@ check_unknown() {  	esac &&  	cat expect.err >>expect &&  	test_must_fail test-parse-options $* >output 2>output.err && -	test ! -s output && +	test_must_be_empty output &&  	test_cmp expect output.err  } @@ -112,7 +112,7 @@ check_unknown_i18n() {  	esac &&  	cat expect.err >>expect &&  	test_must_fail test-parse-options $* >output 2>output.err && -	test ! -s output && +	test_must_be_empty output &&  	test_i18ncmp expect output.err  } @@ -149,7 +149,7 @@ test_expect_success 'short options' '  	test-parse-options -s123 -b -i 1729 -b -vv -n -F my.file \  	> output 2> output.err &&  	test_cmp expect output && -	test ! -s output.err +	test_must_be_empty output.err  '  cat > expect << EOF @@ -168,7 +168,7 @@ test_expect_success 'long options' '  	test-parse-options --boolean --integer 1729 --boolean --string2=321 \  		--verbose --verbose --no-dry-run --abbrev=10 --file fi.le\  		--obsolete > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -199,7 +199,7 @@ EOF  test_expect_success 'intermingled arguments' '  	test-parse-options a1 --string 123 b1 --boolean -j 13 -- --boolean \  		> output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -217,13 +217,13 @@ EOF  test_expect_success 'unambiguously abbreviated option' '  	test-parse-options --int 2 --boolean --no-bo > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  '  test_expect_success 'unambiguously abbreviated option with "="' '  	test-parse-options --int=2 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -246,7 +246,7 @@ EOF  test_expect_success 'non ambiguous option (after two options it abbreviates)' '  	test-parse-options --st 123 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -256,7 +256,7 @@ EOF  test_expect_success 'detect possible typos' '  	test_must_fail test-parse-options -boolean > output 2> output.err && -	test ! -s output && +	test_must_be_empty output &&  	test_cmp typo.err output.err  ' @@ -266,7 +266,7 @@ EOF  test_expect_success 'detect possible typos' '  	test_must_fail test-parse-options -ambiguous > output 2> output.err && -	test ! -s output && +	test_must_be_empty output &&  	test_cmp typo.err output.err  ' @@ -285,7 +285,7 @@ EOF  test_expect_success 'keep some options as arguments' '  	test-parse-options --quux > output 2> output.err && -        test ! -s output.err && +	test_must_be_empty output.err &&          test_cmp expect output  ' @@ -305,7 +305,7 @@ EOF  test_expect_success 'OPT_DATE() and OPT_SET_PTR() work' '  	test-parse-options -t "1970-01-01 00:00:01 +0000" --default-string \  		foo -q > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -324,7 +324,7 @@ EOF  test_expect_success 'OPT_CALLBACK() and OPT_BIT() work' '  	test-parse-options --length=four -b -4 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -352,13 +352,13 @@ EOF  test_expect_success 'OPT_BIT() and OPT_SET_INT() work' '  	test-parse-options --set23 -bbbbb --no-or4 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  '  test_expect_success 'OPT_NEGBIT() and OPT_SET_INT() work' '  	test-parse-options --set23 -bbbbb --neg-or4 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -376,19 +376,19 @@ EOF  test_expect_success 'OPT_BIT() works' '  	test-parse-options -bb --or4 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  '  test_expect_success 'OPT_NEGBIT() works' '  	test-parse-options -bb --no-neg-or4 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  '  test_expect_success 'OPT_COUNTUP() with PARSE_OPT_NODASH works' '  	test-parse-options + + + + + + > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -406,7 +406,7 @@ EOF  test_expect_success 'OPT_NUMBER_CALLBACK() works' '  	test-parse-options -12345 > output 2> output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' @@ -424,7 +424,7 @@ EOF  test_expect_success 'negation of OPT_NONEG flags is not ambiguous' '  	test-parse-options --no-ambig >output 2>output.err && -	test ! -s output.err && +	test_must_be_empty output.err &&  	test_cmp expect output  ' diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh index 1de0ebda25..c1d2cbad2d 100755 --- a/t/t3400-rebase.sh +++ b/t/t3400-rebase.sh @@ -179,7 +179,7 @@ test_expect_success 'default to @{upstream} when upstream arg is missing' '  test_expect_success 'rebase -q is quiet' '  	git checkout -b quiet topic &&  	git rebase -q master >output.out 2>&1 && -	test ! -s output.out +	test_must_be_empty output.out  '  test_expect_success 'Rebase a commit that sprinkles CRs in' ' diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 5dfbda7491..5473e6196f 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -200,17 +200,17 @@ test_expect_success 'apply -q is quiet' '  	echo foo > file &&  	git stash &&  	git stash apply -q > output.out 2>&1 && -	test ! -s output.out +	test_must_be_empty output.out  '  test_expect_success 'save -q is quiet' '  	git stash save --quiet > output.out 2>&1 && -	test ! -s output.out +	test_must_be_empty output.out  '  test_expect_success 'pop -q is quiet' '  	git stash pop -q > output.out 2>&1 && -	test ! -s output.out +	test_must_be_empty output.out  '  test_expect_success 'pop -q --index works and is quiet' ' @@ -219,13 +219,13 @@ test_expect_success 'pop -q --index works and is quiet' '  	git stash save --quiet &&  	git stash pop -q --index > output.out 2>&1 &&  	test foo = "$(git show :file)" && -	test ! -s output.out +	test_must_be_empty output.out  '  test_expect_success 'drop -q is quiet' '  	git stash &&  	git stash drop -q > output.out 2>&1 && -	test ! -s output.out +	test_must_be_empty output.out  '  test_expect_success 'stash -k' ' diff --git a/t/t5521-pull-options.sh b/t/t5521-pull-options.sh index aa31abe32b..453aba53f4 100755 --- a/t/t5521-pull-options.sh +++ b/t/t5521-pull-options.sh @@ -15,19 +15,19 @@ test_expect_success 'git pull -q' '  	mkdir clonedq &&  	(cd clonedq && git init &&  	git pull -q "../parent" >out 2>err && -	test ! -s err && -	test ! -s out) +	test_must_be_empty err && +	test_must_be_empty out)  '  test_expect_success 'git pull -q --rebase' '  	mkdir clonedqrb &&  	(cd clonedqrb && git init &&  	git pull -q --rebase "../parent" >out 2>err && -	test ! -s err && -	test ! -s out && +	test_must_be_empty err && +	test_must_be_empty out &&  	git pull -q --rebase "../parent" >out 2>err && -	test ! -s err && -	test ! -s out) +	test_must_be_empty err && +	test_must_be_empty out)  '  test_expect_success 'git pull' ' @@ -35,7 +35,7 @@ test_expect_success 'git pull' '  	(cd cloned && git init &&  	git pull "../parent" >out 2>err &&  	test -s err && -	test ! -s out) +	test_must_be_empty out)  '  test_expect_success 'git pull --rebase' ' @@ -43,7 +43,7 @@ test_expect_success 'git pull --rebase' '  	(cd clonedrb && git init &&  	git pull --rebase "../parent" >out 2>err &&  	test -s err && -	test ! -s out) +	test_must_be_empty out)  '  test_expect_success 'git pull -v' ' @@ -51,7 +51,7 @@ test_expect_success 'git pull -v' '  	(cd clonedv && git init &&  	git pull -v "../parent" >out 2>err &&  	test -s err && -	test ! -s out) +	test_must_be_empty out)  '  test_expect_success 'git pull -v --rebase' ' @@ -59,22 +59,22 @@ test_expect_success 'git pull -v --rebase' '  	(cd clonedvrb && git init &&  	git pull -v --rebase "../parent" >out 2>err &&  	test -s err && -	test ! -s out) +	test_must_be_empty out)  '  test_expect_success 'git pull -v -q' '  	mkdir clonedvq &&  	(cd clonedvq && git init &&  	git pull -v -q "../parent" >out 2>err && -	test ! -s out && -	test ! -s err) +	test_must_be_empty out && +	test_must_be_empty err)  '  test_expect_success 'git pull -q -v' '  	mkdir clonedqv &&  	(cd clonedqv && git init &&  	git pull -q -v "../parent" >out 2>err && -	test ! -s out && +	test_must_be_empty out &&  	test -s err)  ' diff --git a/t/t5702-clone-options.sh b/t/t5702-clone-options.sh index 02cb024723..85cadfad6d 100755 --- a/t/t5702-clone-options.sh +++ b/t/t5702-clone-options.sh @@ -22,7 +22,7 @@ test_expect_success 'clone -o' '  test_expect_success 'redirected clone' '  	git clone "file://$(pwd)/parent" clone-redirected >out 2>err && -	test ! -s err +	test_must_be_empty err  '  test_expect_success 'redirected clone -v' ' diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh index df82ec9dda..300be86c38 100755 --- a/t/t7102-reset.sh +++ b/t/t7102-reset.sh @@ -457,7 +457,7 @@ test_expect_success 'disambiguation (1)' '  	test_must_fail git diff --quiet -- secondfile &&  	test -z "$(git diff --cached --name-only)" &&  	test -f secondfile && -	test ! -s secondfile +	test_must_be_empty secondfile  ' diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh index 2683cba7e3..0055da965c 100755 --- a/t/t7400-submodule-basic.sh +++ b/t/t7400-submodule-basic.sh @@ -78,7 +78,7 @@ test_expect_success 'submodule add' '  	(  		cd addtest &&  		git submodule add -q "$submodurl" submod >actual && -		test ! -s actual && +		test_must_be_empty actual &&  		echo "gitdir: ../.git/modules/submod" >expect &&  		test_cmp expect submod/.git &&  		( @@ -308,7 +308,7 @@ test_expect_success 'update should work when path is an empty dir' '  	mkdir init &&  	git submodule update -q >update.out && -	test ! -s update.out && +	test_must_be_empty update.out &&  	inspect init &&  	test_cmp expect head-sha1 @@ -696,7 +696,7 @@ test_expect_success 'submodule add --name allows to replace a submodule with ano  		rm -rf repo &&  		git rm repo &&  		git submodule add -q --name repo_new "$submodurl/bare.git" repo >actual && -		test ! -s actual && +		test_must_be_empty actual &&  		echo "gitdir: ../.git/modules/submod" >expect &&  		test_cmp expect submod/.git &&  		( diff --git a/t/t9402-git-cvsserver-refs.sh b/t/t9402-git-cvsserver-refs.sh index 735a018ecc..db69af2cff 100755 --- a/t/t9402-git-cvsserver-refs.sh +++ b/t/t9402-git-cvsserver-refs.sh @@ -330,7 +330,7 @@ test_expect_success 'validate result of edits [cvswork2]' '  test_expect_success 'validate basic diffs saved during above cvswork2 edits' '  	test $(grep Index: cvsEdit1.diff | wc -l) = 1 && -	test ! -s cvsEdit2-empty.diff && +	test_must_be_empty cvsEdit2-empty.diff &&  	test $(grep Index: cvsEdit2-N.diff | wc -l) = 1 &&  	test $(grep Index: cvsEdit3.diff | wc -l) = 3 &&  	rm -rf diffSandbox && @@ -456,20 +456,20 @@ test_expect_success 'cvs up -r $(git rev-parse v1)' '  test_expect_success 'cvs diff -r v1 -u' '  	( cd cvswork && cvs -f diff -r v1 -u ) >cvsDiff.out 2>cvs.log && -	test ! -s cvsDiff.out && -	test ! -s cvs.log +	test_must_be_empty cvsDiff.out && +	test_must_be_empty cvs.log  '  test_expect_success 'cvs diff -N -r v2 -u' '  	( cd cvswork && ! cvs -f diff -N -r v2 -u ) >cvsDiff.out 2>cvs.log && -	test ! -s cvs.log && +	test_must_be_empty cvs.log &&  	test -s cvsDiff.out &&  	check_diff cvsDiff.out v2 v1 >check_diff.out 2>&1  '  test_expect_success 'cvs diff -N -r v2 -r v1.2' '  	( cd cvswork && ! cvs -f diff -N -r v2 -r v1.2 -u ) >cvsDiff.out 2>cvs.log && -	test ! -s cvs.log && +	test_must_be_empty cvs.log &&  	test -s cvsDiff.out &&  	check_diff cvsDiff.out v2 v1.2 >check_diff.out 2>&1  ' @@ -488,7 +488,7 @@ test_expect_success 'apply early [cvswork3] diff to b3' '  test_expect_success 'check [cvswork3] diff' '  	( cd cvswork3 && ! cvs -f diff -N -u ) >"$WORKDIR/cvsDiff.out" 2>cvs.log && -	test ! -s cvs.log && +	test_must_be_empty cvs.log &&  	test -s cvsDiff.out &&  	test $(grep Index: cvsDiff.out | wc -l) = 3 &&  	test_cmp cvsDiff.out cvswork3edit.diff && diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 3fc9cc9288..a8e57f05c1 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -606,6 +606,18 @@ test_cmp() {  	$GIT_TEST_CMP "$@"  } +# Check if the file expected to be empty is indeed empty, and barfs +# otherwise. + +test_must_be_empty () { +	if test -s "$1" +	then +		echo "'$1' is not empty, it contains:" +		cat "$1" +		return 1 +	fi +} +  # Tests that its two parameters refer to the same revision  test_cmp_rev () {  	git rev-parse --verify "$1" >expect.rev &&  | 
