Merge branch 'jn/maint-test-merge-verify-parents'
* jn/maint-test-merge-verify-parents: tests: teach verify_parents to check for extra parents tests: eliminate unnecessary setup test assertions
This commit is contained in:
commit
bd9a268845
@ -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' '
|
||||||
|
135
t/t7600-merge.sh
135
t/t7600-merge.sh
@ -28,80 +28,79 @@ 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_must_fail git rev-parse --verify "HEAD^$i" &&
|
||||||
} &&
|
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