mirror of
https://github.com/git/git.git
synced 2026-01-12 13:53:11 +09:00
t3415: increase granularity of test_auto_{fixup,squash}()
We are using `test_must_fail test_auto_{fixup,squash}` which would
ensure that the function failed. However, this is a little ham-fisted as
there is no way of ensuring that the expected part of the function
actually fails.
Increase the granularity by accepting an optional `!` first argument
which will check that the rebase does not squash in any commits by
ensuring that there are still 4 commits. If `!` is not provided, the old
logic is run.
This patch may be better reviewed with `--ignore-all-space`.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a781cd6fef
commit
c232ffa83c
@ -25,6 +25,13 @@ test_expect_success setup '
|
||||
'
|
||||
|
||||
test_auto_fixup () {
|
||||
no_squash= &&
|
||||
if test "x$1" = 'x!'
|
||||
then
|
||||
no_squash=true
|
||||
shift
|
||||
fi &&
|
||||
|
||||
git reset --hard base &&
|
||||
echo 1 >file1 &&
|
||||
git add -u &&
|
||||
@ -35,14 +42,19 @@ test_auto_fixup () {
|
||||
test_tick &&
|
||||
git rebase $2 -i HEAD^^^ &&
|
||||
git log --oneline >actual &&
|
||||
test_line_count = 3 actual &&
|
||||
git diff --exit-code $1 &&
|
||||
echo 1 >expect &&
|
||||
git cat-file blob HEAD^:file1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
git cat-file commit HEAD^ >commit &&
|
||||
grep first commit >actual &&
|
||||
test_line_count = 1 actual
|
||||
if test -n "$no_squash"
|
||||
then
|
||||
test_line_count = 4 actual
|
||||
else
|
||||
test_line_count = 3 actual &&
|
||||
git diff --exit-code $1 &&
|
||||
echo 1 >expect &&
|
||||
git cat-file blob HEAD^:file1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
git cat-file commit HEAD^ >commit &&
|
||||
grep first commit >actual &&
|
||||
test_line_count = 1 actual
|
||||
fi
|
||||
}
|
||||
|
||||
test_expect_success 'auto fixup (option)' '
|
||||
@ -52,12 +64,19 @@ test_expect_success 'auto fixup (option)' '
|
||||
test_expect_success 'auto fixup (config)' '
|
||||
git config rebase.autosquash true &&
|
||||
test_auto_fixup final-fixup-config-true &&
|
||||
test_must_fail test_auto_fixup fixup-config-true-no --no-autosquash &&
|
||||
test_auto_fixup ! fixup-config-true-no --no-autosquash &&
|
||||
git config rebase.autosquash false &&
|
||||
test_must_fail test_auto_fixup final-fixup-config-false
|
||||
test_auto_fixup ! final-fixup-config-false
|
||||
'
|
||||
|
||||
test_auto_squash () {
|
||||
no_squash= &&
|
||||
if test "x$1" = 'x!'
|
||||
then
|
||||
no_squash=true
|
||||
shift
|
||||
fi &&
|
||||
|
||||
git reset --hard base &&
|
||||
echo 1 >file1 &&
|
||||
git add -u &&
|
||||
@ -68,14 +87,19 @@ test_auto_squash () {
|
||||
test_tick &&
|
||||
git rebase $2 -i HEAD^^^ &&
|
||||
git log --oneline >actual &&
|
||||
test_line_count = 3 actual &&
|
||||
git diff --exit-code $1 &&
|
||||
echo 1 >expect &&
|
||||
git cat-file blob HEAD^:file1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
git cat-file commit HEAD^ >commit &&
|
||||
grep first commit >actual &&
|
||||
test_line_count = 2 actual
|
||||
if test -n "$no_squash"
|
||||
then
|
||||
test_line_count = 4 actual
|
||||
else
|
||||
test_line_count = 3 actual &&
|
||||
git diff --exit-code $1 &&
|
||||
echo 1 >expect &&
|
||||
git cat-file blob HEAD^:file1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
git cat-file commit HEAD^ >commit &&
|
||||
grep first commit >actual &&
|
||||
test_line_count = 2 actual
|
||||
fi
|
||||
}
|
||||
|
||||
test_expect_success 'auto squash (option)' '
|
||||
@ -85,9 +109,9 @@ test_expect_success 'auto squash (option)' '
|
||||
test_expect_success 'auto squash (config)' '
|
||||
git config rebase.autosquash true &&
|
||||
test_auto_squash final-squash-config-true &&
|
||||
test_must_fail test_auto_squash squash-config-true-no --no-autosquash &&
|
||||
test_auto_squash ! squash-config-true-no --no-autosquash &&
|
||||
git config rebase.autosquash false &&
|
||||
test_must_fail test_auto_squash final-squash-config-false
|
||||
test_auto_squash ! final-squash-config-false
|
||||
'
|
||||
|
||||
test_expect_success 'misspelled auto squash' '
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user