@@ -21,38 +21,62 @@ test_expect_success setup '
2121 git tag base
2222'
2323
24- test_expect_success ' auto fixup ' '
24+ test_auto_fixup () {
2525 git reset --hard base &&
2626 echo 1 > file1 &&
2727 git add -u &&
2828 test_tick &&
2929 git commit -m " fixup! first"
3030
31- git tag final-fixup &&
31+ git tag $1 &&
3232 test_tick &&
33- git rebase --autosquash -i HEAD^^^ &&
33+ git rebase $2 -i HEAD^^^ &&
3434 git log --oneline > actual &&
3535 test 3 = $( wc -l < actual) &&
36- git diff --exit-code final-fixup &&
36+ git diff --exit-code $1 &&
3737 test 1 = " $( git cat-file blob HEAD^:file1) " &&
3838 test 1 = $( git cat-file commit HEAD^ | grep first | wc -l)
39+ }
40+
41+ test_expect_success ' auto fixup (option)' '
42+ test_auto_fixup final-fixup-option --autosquash
43+ '
44+
45+ test_expect_success ' auto fixup (config)' '
46+ git config rebase.autosquash true &&
47+ test_auto_fixup final-fixup-config-true &&
48+ test_must_fail test_auto_fixup fixup-config-true-no --no-autosquash &&
49+ git config rebase.autosquash false &&
50+ test_must_fail test_auto_fixup final-fixup-config-false
3951'
4052
41- test_expect_success ' auto squash ' '
53+ test_auto_squash () {
4254 git reset --hard base &&
4355 echo 1 > file1 &&
4456 git add -u &&
4557 test_tick &&
4658 git commit -m " squash! first"
4759
48- git tag final-squash &&
60+ git tag $1 &&
4961 test_tick &&
50- git rebase --autosquash -i HEAD^^^ &&
62+ git rebase $2 -i HEAD^^^ &&
5163 git log --oneline > actual &&
5264 test 3 = $( wc -l < actual) &&
53- git diff --exit-code final-squash &&
65+ git diff --exit-code $1 &&
5466 test 1 = " $( git cat-file blob HEAD^:file1) " &&
5567 test 2 = $( git cat-file commit HEAD^ | grep first | wc -l)
68+ }
69+
70+ test_expect_success ' auto squash (option)' '
71+ test_auto_squash final-squash --autosquash
72+ '
73+
74+ test_expect_success ' auto squash (config)' '
75+ git config rebase.autosquash true &&
76+ test_auto_squash final-squash-config-true &&
77+ test_must_fail test_auto_squash squash-config-true-no --no-autosquash &&
78+ git config rebase.autosquash false &&
79+ test_must_fail test_auto_squash final-squash-config-false
5680'
5781
5882test_expect_success ' misspelled auto squash' '
0 commit comments