Test that the cherry-pick command updates the work tree as expected (for
submodule changes which don't result in conflicts).

Set KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES
and KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR to
document that cherry-pick has the same --no-ff known failures merge has.

Implement the KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT switch to expect
the known failure that while cherry picking just a SHA-1 update for an
ignored submodule the commit incorrectly fails with "The previous
cherry-pick is now empty, possibly due to conflict resolution.".

Signed-off-by: Jens Lehmann <jens.lehm...@web.de>
---
 t/lib-submodule-update.sh        | 15 ++++++++++++---
 t/t3512-cherry-pick-submodule.sh | 13 +++++++++++++
 2 files changed, 25 insertions(+), 3 deletions(-)
 create mode 100755 t/t3512-cherry-pick-submodule.sh

diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh
index bc9415c..95e041b 100755
--- a/t/lib-submodule-update.sh
+++ b/t/lib-submodule-update.sh
@@ -392,7 +392,16 @@ test_submodule_switch () {

        ########################## Modified submodule #########################
        # Updating a submodule sha1 doesn't update the submodule's work tree
-       test_expect_success "$command: modified submodule does not update 
submodule work tree" '
+       if test "$KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT" = 1
+       then
+               # When cherry picking a SHA-1 update for an ignored submodule
+               # the commit incorrectly fails with "The previous cherry-pick
+               # is now empty, possibly due to conflict resolution."
+               RESULT="failure"
+       else
+               RESULT="success"
+       fi
+       test_expect_$RESULT "$command: modified submodule does not update 
submodule work tree" '
                prolog &&
                reset_work_tree_to add_sub1 &&
                (
@@ -408,7 +417,7 @@ test_submodule_switch () {

        # Updating a submodule to an invalid sha1 doesn't update the
        # submodule's work tree, subsequent update will fail
-       test_expect_success "$command: modified submodule does not update 
submodule work tree to invalid commit" '
+       test_expect_$RESULT "$command: modified submodule does not update 
submodule work tree to invalid commit" '
                prolog &&
                reset_work_tree_to add_sub1 &&
                (
@@ -423,7 +432,7 @@ test_submodule_switch () {
        '
        # Updating a submodule from an invalid sha1 doesn't update the
        # submodule's work tree, subsequent update will succeed
-       test_expect_success "$command: modified submodule does not update 
submodule work tree from invalid commit" '
+       test_expect_$RESULT "$command: modified submodule does not update 
submodule work tree from invalid commit" '
                prolog &&
                reset_work_tree_to invalid_sub1 &&
                (
diff --git a/t/t3512-cherry-pick-submodule.sh b/t/t3512-cherry-pick-submodule.sh
new file mode 100755
index 0000000..6863b7b
--- /dev/null
+++ b/t/t3512-cherry-pick-submodule.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+test_description='cherry-pick can handle submodules'
+
+. ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-submodule-update.sh
+
+KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
+KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1
+KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1
+test_submodule_switch "git cherry-pick"
+
+test_done
-- 
2.0.0.275.gc479268


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to