[PATCH 2/2] t7500: add tests of commit --fixup/--squash
Signed-off-by: Pat Notz <patnotz@gmail.com>
---
t/t7500-commit.sh | 39 +++++++++++++++++++++++++++++++++++++++
1 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/t/t7500-commit.sh b/t/t7500-commit.sh
index aa9c577..cd21f67 100755
--- a/t/t7500-commit.sh
+++ b/t/t7500-commit.sh
@@ -215,4 +215,43 @@ test_expect_success 'Commit a message with --allow-empty-message' '
commit_msg_is "hello there"
'
+commit_for_rebase_autosquash_setup() {
+ echo "first content for testing commit messages for rebase --autosquash" >>foo &&
+ git add foo &&
+ cat >log <<EOF
+target message subject line
+
+target message body line 1
+target message body line 2
+EOF
+ git commit -F log &&
+ echo "second content for testing commit messages for rebase --autosquash" >>foo &&
+ git add foo &&
+ git commit -m "intermediate commit" &&
+ echo "third content for testing commit messages for rebase --autosquash" >>foo &&
+ git add foo
+}
+
+test_expect_success 'commit --fixup provides correct one-line commit message' '
+ commit_for_rebase_autosquash_setup &&
+ git commit --fixup HEAD~1 &&
+ commit_msg_is "fixup! target message subject line"
+'
+test_expect_success 'commit --squash provides correct one-line commit message' '
+ commit_for_rebase_autosquash_setup &&
+ git commit --squash HEAD~1 &&
+ commit_msg_is "squash! target message subject line"
+'
+
+test_expect_success 'multiple commit message options must fail' '
+ echo changes >>foo &&
+ echo "message" >log &&
+ git add foo &&
+ test_must_fail git commit --fixup HEAD~1 --squash HEAD~1 &&
+ test_must_fail git commit --fixup HEAD~1 -m "cmdline message" &&
+ test_must_fail git commit --fixup HEAD~1 -F log &&
+ test_must_fail git commit --squash HEAD~1 -C HEAD~2 &&
+ test_must_fail git commit --squash HEAD~1 -c HEAD~2
+'
+
test_done
--
1.7.2.3