tests: eliminate unnecessary setup test assertions
Most of git's tests write files and define shell functions and variables that will last throughout a test script at the top of the script, before all test assertions: . ./test-lib.sh VAR='some value' export VAR >empty fn () { do something } test_expect_success 'setup' ' ... nontrivial commands go here ... ' Two scripts use a different style with this kind of trivial code enclosed by a test assertion; fix them. The usual style is easier to read since there is less indentation to keep track of and no need to worry about nested quotes; and on the other hand, because the commands in question are trivial, it should not make the test suite any worse at catching future bugs in git. While at it, make some other small tweaks: - spell function definitions with a space before () for consistency with other scripts; - use the self-contained command "git mktree </dev/null" in preference to "git write-tree" which looks at the index when writing an empty tree. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ec014eac0e
commit
73151df0cf
@ -8,38 +8,38 @@ test_description='Merge base and parent list computation.
|
|||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
M=1130000000
|
||||||
|
Z=+0000
|
||||||
|
|
||||||
|
GIT_COMMITTER_EMAIL=git@comm.iter.xz
|
||||||
|
GIT_COMMITTER_NAME='C O Mmiter'
|
||||||
|
GIT_AUTHOR_NAME='A U Thor'
|
||||||
|
GIT_AUTHOR_EMAIL=git@au.thor.xz
|
||||||
|
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
|
||||||
|
|
||||||
|
doit () {
|
||||||
|
OFFSET=$1 &&
|
||||||
|
NAME=$2 &&
|
||||||
|
shift 2 &&
|
||||||
|
|
||||||
|
PARENTS= &&
|
||||||
|
for P
|
||||||
|
do
|
||||||
|
PARENTS="${PARENTS}-p $P "
|
||||||
|
done &&
|
||||||
|
|
||||||
|
GIT_COMMITTER_DATE="$(($M + $OFFSET)) $Z" &&
|
||||||
|
GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE &&
|
||||||
|
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE &&
|
||||||
|
|
||||||
|
commit=$(echo $NAME | git commit-tree $T $PARENTS) &&
|
||||||
|
|
||||||
|
echo $commit >.git/refs/tags/$NAME &&
|
||||||
|
echo $commit
|
||||||
|
}
|
||||||
|
|
||||||
test_expect_success 'setup' '
|
test_expect_success 'setup' '
|
||||||
T=$(git write-tree) &&
|
T=$(git mktree </dev/null)
|
||||||
|
|
||||||
M=1130000000 &&
|
|
||||||
Z=+0000 &&
|
|
||||||
|
|
||||||
GIT_COMMITTER_EMAIL=git@comm.iter.xz &&
|
|
||||||
GIT_COMMITTER_NAME="C O Mmiter" &&
|
|
||||||
GIT_AUTHOR_NAME="A U Thor" &&
|
|
||||||
GIT_AUTHOR_EMAIL=git@au.thor.xz &&
|
|
||||||
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL &&
|
|
||||||
|
|
||||||
doit() {
|
|
||||||
OFFSET=$1 &&
|
|
||||||
NAME=$2 &&
|
|
||||||
shift 2 &&
|
|
||||||
|
|
||||||
PARENTS= &&
|
|
||||||
for P
|
|
||||||
do
|
|
||||||
PARENTS="${PARENTS}-p $P "
|
|
||||||
done &&
|
|
||||||
|
|
||||||
GIT_COMMITTER_DATE="$(($M + $OFFSET)) $Z" &&
|
|
||||||
GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE &&
|
|
||||||
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE &&
|
|
||||||
|
|
||||||
commit=$(echo $NAME | git commit-tree $T $PARENTS) &&
|
|
||||||
|
|
||||||
echo $commit >.git/refs/tags/$NAME &&
|
|
||||||
echo $commit
|
|
||||||
}
|
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'set up G and H' '
|
test_expect_success 'set up G and H' '
|
||||||
|
134
t/t7600-merge.sh
134
t/t7600-merge.sh
@ -28,80 +28,78 @@ Testing basic merge operations/option parsing.
|
|||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
test_expect_success 'set up test data and helpers' '
|
printf '%s\n' 1 2 3 4 5 6 7 8 9 >file
|
||||||
printf "%s\n" 1 2 3 4 5 6 7 8 9 >file &&
|
printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >file.1
|
||||||
printf "%s\n" "1 X" 2 3 4 5 6 7 8 9 >file.1 &&
|
printf '%s\n' 1 2 3 4 '5 X' 6 7 8 9 >file.5
|
||||||
printf "%s\n" 1 2 3 4 "5 X" 6 7 8 9 >file.5 &&
|
printf '%s\n' 1 2 3 4 5 6 7 8 '9 X' >file.9
|
||||||
printf "%s\n" 1 2 3 4 5 6 7 8 "9 X" >file.9 &&
|
printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >result.1
|
||||||
printf "%s\n" "1 X" 2 3 4 5 6 7 8 9 >result.1 &&
|
printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 9 >result.1-5
|
||||||
printf "%s\n" "1 X" 2 3 4 "5 X" 6 7 8 9 >result.1-5 &&
|
printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 '9 X' >result.1-5-9
|
||||||
printf "%s\n" "1 X" 2 3 4 "5 X" 6 7 8 "9 X" >result.1-5-9 &&
|
|
||||||
|
|
||||||
create_merge_msgs() {
|
create_merge_msgs () {
|
||||||
echo "Merge commit '\''c2'\''" >msg.1-5 &&
|
echo "Merge commit 'c2'" >msg.1-5 &&
|
||||||
echo "Merge commit '\''c2'\''; commit '\''c3'\''" >msg.1-5-9 &&
|
echo "Merge commit 'c2'; commit 'c3'" >msg.1-5-9 &&
|
||||||
{
|
{
|
||||||
echo "Squashed commit of the following:" &&
|
echo "Squashed commit of the following:" &&
|
||||||
echo &&
|
echo &&
|
||||||
git log --no-merges ^HEAD c1
|
git log --no-merges ^HEAD c1
|
||||||
} >squash.1 &&
|
} >squash.1 &&
|
||||||
{
|
{
|
||||||
echo "Squashed commit of the following:" &&
|
echo "Squashed commit of the following:" &&
|
||||||
echo &&
|
echo &&
|
||||||
git log --no-merges ^HEAD c2
|
git log --no-merges ^HEAD c2
|
||||||
} >squash.1-5 &&
|
} >squash.1-5 &&
|
||||||
{
|
{
|
||||||
echo "Squashed commit of the following:" &&
|
echo "Squashed commit of the following:" &&
|
||||||
echo &&
|
echo &&
|
||||||
git log --no-merges ^HEAD c2 c3
|
git log --no-merges ^HEAD c2 c3
|
||||||
} >squash.1-5-9 &&
|
} >squash.1-5-9 &&
|
||||||
echo >msg.nolog &&
|
echo >msg.nolog &&
|
||||||
{
|
{
|
||||||
echo "* commit '\''c3'\'':" &&
|
echo "* commit 'c3':" &&
|
||||||
echo " commit 3" &&
|
echo " commit 3" &&
|
||||||
echo
|
echo
|
||||||
} >msg.log
|
} >msg.log
|
||||||
} &&
|
}
|
||||||
|
|
||||||
verify_merge() {
|
verify_merge () {
|
||||||
test_cmp "$2" "$1" &&
|
test_cmp "$2" "$1" &&
|
||||||
git update-index --refresh &&
|
git update-index --refresh &&
|
||||||
git diff --exit-code &&
|
git diff --exit-code &&
|
||||||
if test -n "$3"
|
if test -n "$3"
|
||||||
then
|
then
|
||||||
git show -s --pretty=format:%s HEAD >msg.act &&
|
git show -s --pretty=format:%s HEAD >msg.act &&
|
||||||
test_cmp "$3" msg.act
|
test_cmp "$3" msg.act
|
||||||
fi
|
fi
|
||||||
} &&
|
}
|
||||||
|
|
||||||
verify_head() {
|
verify_head () {
|
||||||
echo "$1" >head.expected &&
|
echo "$1" >head.expected &&
|
||||||
git rev-parse HEAD >head.actual &&
|
git rev-parse HEAD >head.actual &&
|
||||||
test_cmp head.expected head.actual
|
test_cmp head.expected head.actual
|
||||||
} &&
|
}
|
||||||
|
|
||||||
verify_parents() {
|
verify_parents () {
|
||||||
printf "%s\n" "$@" >parents.expected &&
|
printf '%s\n' "$@" >parents.expected &&
|
||||||
>parents.actual &&
|
>parents.actual &&
|
||||||
i=1 &&
|
i=1 &&
|
||||||
while test $i -le $#
|
while test $i -le $#
|
||||||
do
|
do
|
||||||
git rev-parse HEAD^$i >>parents.actual &&
|
git rev-parse HEAD^$i >>parents.actual &&
|
||||||
i=$(expr $i + 1) ||
|
i=$(expr $i + 1) ||
|
||||||
return 1
|
return 1
|
||||||
done &&
|
done &&
|
||||||
test_cmp parents.expected parents.actual
|
test_cmp parents.expected parents.actual
|
||||||
} &&
|
}
|
||||||
|
|
||||||
verify_mergeheads() {
|
verify_mergeheads () {
|
||||||
printf "%s\n" "$@" >mergehead.expected &&
|
printf '%s\n' "$@" >mergehead.expected &&
|
||||||
test_cmp mergehead.expected .git/MERGE_HEAD
|
test_cmp mergehead.expected .git/MERGE_HEAD
|
||||||
} &&
|
}
|
||||||
|
|
||||||
verify_no_mergehead() {
|
verify_no_mergehead () {
|
||||||
! test -e .git/MERGE_HEAD
|
! test -e .git/MERGE_HEAD
|
||||||
}
|
}
|
||||||
'
|
|
||||||
|
|
||||||
test_expect_success 'setup' '
|
test_expect_success 'setup' '
|
||||||
git add file &&
|
git add file &&
|
||||||
|
Loading…
Reference in New Issue
Block a user