Skip to content

Commit bd9a268

Browse files
committed
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
2 parents 0c529e4 + 3fc0dbf commit bd9a268

File tree

2 files changed

+98
-99
lines changed

2 files changed

+98
-99
lines changed

t/t6010-merge-base.sh

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,38 @@ test_description='Merge base and parent list computation.
88

99
. ./test-lib.sh
1010

11-
test_expect_success 'setup' '
12-
T=$(git write-tree) &&
11+
M=1130000000
12+
Z=+0000
1313

14-
M=1130000000 &&
15-
Z=+0000 &&
14+
15+
GIT_COMMITTER_NAME='C O Mmiter'
16+
GIT_AUTHOR_NAME='A U Thor'
17+
18+
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
1619

17-
18-
GIT_COMMITTER_NAME="C O Mmiter" &&
19-
GIT_AUTHOR_NAME="A U Thor" &&
20-
21-
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL &&
20+
doit () {
21+
OFFSET=$1 &&
22+
NAME=$2 &&
23+
shift 2 &&
2224

23-
doit() {
24-
OFFSET=$1 &&
25-
NAME=$2 &&
26-
shift 2 &&
25+
PARENTS= &&
26+
for P
27+
do
28+
PARENTS="${PARENTS}-p $P "
29+
done &&
2730

28-
PARENTS= &&
29-
for P
30-
do
31-
PARENTS="${PARENTS}-p $P "
32-
done &&
31+
GIT_COMMITTER_DATE="$(($M + $OFFSET)) $Z" &&
32+
GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE &&
33+
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE &&
3334

34-
GIT_COMMITTER_DATE="$(($M + $OFFSET)) $Z" &&
35-
GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE &&
36-
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE &&
35+
commit=$(echo $NAME | git commit-tree $T $PARENTS) &&
3736

38-
commit=$(echo $NAME | git commit-tree $T $PARENTS) &&
37+
echo $commit >.git/refs/tags/$NAME &&
38+
echo $commit
39+
}
3940

40-
echo $commit >.git/refs/tags/$NAME &&
41-
echo $commit
42-
}
41+
test_expect_success 'setup' '
42+
T=$(git mktree </dev/null)
4343
'
4444

4545
test_expect_success 'set up G and H' '

t/t7600-merge.sh

Lines changed: 73 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -28,80 +28,79 @@ Testing basic merge operations/option parsing.
2828

2929
. ./test-lib.sh
3030

31-
test_expect_success 'set up test data and helpers' '
32-
printf "%s\n" 1 2 3 4 5 6 7 8 9 >file &&
33-
printf "%s\n" "1 X" 2 3 4 5 6 7 8 9 >file.1 &&
34-
printf "%s\n" 1 2 3 4 "5 X" 6 7 8 9 >file.5 &&
35-
printf "%s\n" 1 2 3 4 5 6 7 8 "9 X" >file.9 &&
36-
printf "%s\n" "1 X" 2 3 4 5 6 7 8 9 >result.1 &&
37-
printf "%s\n" "1 X" 2 3 4 "5 X" 6 7 8 9 >result.1-5 &&
38-
printf "%s\n" "1 X" 2 3 4 "5 X" 6 7 8 "9 X" >result.1-5-9 &&
39-
40-
create_merge_msgs() {
41-
echo "Merge commit '\''c2'\''" >msg.1-5 &&
42-
echo "Merge commit '\''c2'\''; commit '\''c3'\''" >msg.1-5-9 &&
43-
{
44-
echo "Squashed commit of the following:" &&
45-
echo &&
46-
git log --no-merges ^HEAD c1
47-
} >squash.1 &&
48-
{
49-
echo "Squashed commit of the following:" &&
50-
echo &&
51-
git log --no-merges ^HEAD c2
52-
} >squash.1-5 &&
53-
{
54-
echo "Squashed commit of the following:" &&
55-
echo &&
56-
git log --no-merges ^HEAD c2 c3
57-
} >squash.1-5-9 &&
58-
echo >msg.nolog &&
59-
{
60-
echo "* commit '\''c3'\'':" &&
61-
echo " commit 3" &&
62-
echo
63-
} >msg.log
64-
} &&
65-
66-
verify_merge() {
67-
test_cmp "$2" "$1" &&
68-
git update-index --refresh &&
69-
git diff --exit-code &&
70-
if test -n "$3"
71-
then
72-
git show -s --pretty=format:%s HEAD >msg.act &&
73-
test_cmp "$3" msg.act
74-
fi
75-
} &&
76-
77-
verify_head() {
78-
echo "$1" >head.expected &&
79-
git rev-parse HEAD >head.actual &&
80-
test_cmp head.expected head.actual
81-
} &&
82-
83-
verify_parents() {
84-
printf "%s\n" "$@" >parents.expected &&
85-
>parents.actual &&
86-
i=1 &&
87-
while test $i -le $#
88-
do
89-
git rev-parse HEAD^$i >>parents.actual &&
90-
i=$(expr $i + 1) ||
91-
return 1
92-
done &&
93-
test_cmp parents.expected parents.actual
94-
} &&
95-
96-
verify_mergeheads() {
97-
printf "%s\n" "$@" >mergehead.expected &&
98-
test_cmp mergehead.expected .git/MERGE_HEAD
99-
} &&
100-
101-
verify_no_mergehead() {
102-
! test -e .git/MERGE_HEAD
103-
}
104-
'
31+
printf '%s\n' 1 2 3 4 5 6 7 8 9 >file
32+
printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >file.1
33+
printf '%s\n' 1 2 3 4 '5 X' 6 7 8 9 >file.5
34+
printf '%s\n' 1 2 3 4 5 6 7 8 '9 X' >file.9
35+
printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >result.1
36+
printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 9 >result.1-5
37+
printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 '9 X' >result.1-5-9
38+
39+
create_merge_msgs () {
40+
echo "Merge commit 'c2'" >msg.1-5 &&
41+
echo "Merge commit 'c2'; commit 'c3'" >msg.1-5-9 &&
42+
{
43+
echo "Squashed commit of the following:" &&
44+
echo &&
45+
git log --no-merges ^HEAD c1
46+
} >squash.1 &&
47+
{
48+
echo "Squashed commit of the following:" &&
49+
echo &&
50+
git log --no-merges ^HEAD c2
51+
} >squash.1-5 &&
52+
{
53+
echo "Squashed commit of the following:" &&
54+
echo &&
55+
git log --no-merges ^HEAD c2 c3
56+
} >squash.1-5-9 &&
57+
echo >msg.nolog &&
58+
{
59+
echo "* commit 'c3':" &&
60+
echo " commit 3" &&
61+
echo
62+
} >msg.log
63+
}
64+
65+
verify_merge () {
66+
test_cmp "$2" "$1" &&
67+
git update-index --refresh &&
68+
git diff --exit-code &&
69+
if test -n "$3"
70+
then
71+
git show -s --pretty=format:%s HEAD >msg.act &&
72+
test_cmp "$3" msg.act
73+
fi
74+
}
75+
76+
verify_head () {
77+
echo "$1" >head.expected &&
78+
git rev-parse HEAD >head.actual &&
79+
test_cmp head.expected head.actual
80+
}
81+
82+
verify_parents () {
83+
printf '%s\n' "$@" >parents.expected &&
84+
>parents.actual &&
85+
i=1 &&
86+
while test $i -le $#
87+
do
88+
git rev-parse HEAD^$i >>parents.actual &&
89+
i=$(expr $i + 1) ||
90+
return 1
91+
done &&
92+
test_must_fail git rev-parse --verify "HEAD^$i" &&
93+
test_cmp parents.expected parents.actual
94+
}
95+
96+
verify_mergeheads () {
97+
printf '%s\n' "$@" >mergehead.expected &&
98+
test_cmp mergehead.expected .git/MERGE_HEAD
99+
}
100+
101+
verify_no_mergehead () {
102+
! test -e .git/MERGE_HEAD
103+
}
105104

106105
test_expect_success 'setup' '
107106
git add file &&

0 commit comments

Comments
 (0)