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…
Reference in New Issue
Block a user