mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
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>
This commit is contained in:
parent
b1d04bfcf8
commit
ca8d148daf
|
@ -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
|
||||
'
|
||||
|
||||
|
|
|
@ -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' '
|
||||
|
|
|
@ -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' '
|
||||
|
|
|
@ -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)
|
||||
'
|
||||
|
||||
|
|
|
@ -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' '
|
||||
|
|
|
@ -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
|
||||
|
||||
'
|
||||
|
||||
|
|
|
@ -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 &&
|
||||
(
|
||||
|
|
|
@ -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 &&
|
||||
|
|
|
@ -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 &&
|
||||
|
|
Loading…
Reference in a new issue