Merge branch 'jt/send-email-validate-hook'
[gitweb.git] / t / lib-submodule-update.sh
index 22dd9e060cffae345ff90e21d0ebf5af45a6e879..58bd4aeb2c52c67831a1dced2ef6b09755d417d3 100755 (executable)
@@ -788,11 +788,6 @@ test_submodule_switch_recursing () {
        then
                RESULTDS=failure
        fi
-       RESULTR=success
-       if test "$KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTED" = 1
-       then
-               RESULTR=failure
-       fi
        RESULTOI=success
        if test "$KNOWN_FAILURE_SUBMODULE_OVERWRITE_IGNORED_UNTRACKED" = 1
        then
@@ -1004,7 +999,7 @@ test_submodule_switch_recursing () {
        '
 
        # recursing deeper than one level doesn't work yet.
-       test_expect_$RESULTR "$command: modified submodule updates submodule recursively" '
+       test_expect_success "$command: modified submodule updates submodule recursively" '
                prolog &&
                reset_work_tree_to_interested add_nested_sub &&
                (
@@ -1213,14 +1208,31 @@ test_submodule_forced_switch_recursing () {
                )
        '
        # Updating a submodule from an invalid sha1 updates
-       test_expect_success "$command: modified submodule does not update submodule work tree from invalid commit" '
+       test_expect_success "$command: modified submodule does update submodule work tree from invalid commit" '
                prolog &&
                reset_work_tree_to_interested invalid_sub1 &&
                (
                        cd submodule_update &&
                        git branch -t valid_sub1 origin/valid_sub1 &&
-                       test_must_fail $command valid_sub1 &&
-                       test_superproject_content origin/invalid_sub1
+                       $command valid_sub1 &&
+                       test_superproject_content origin/valid_sub1 &&
+                       test_submodule_content sub1 origin/valid_sub1
+               )
+       '
+
+       # Old versions of Git were buggy writing the .git link file
+       # (e.g. before f8eaa0ba98b and then moving the superproject repo
+       # whose submodules contained absolute paths)
+       test_expect_success "$command: updating submodules fixes .git links" '
+               prolog &&
+               reset_work_tree_to_interested add_sub1 &&
+               (
+                       cd submodule_update &&
+                       git branch -t modify_sub1 origin/modify_sub1 &&
+                       echo "gitdir: bogus/path" >sub1/.git &&
+                       $command modify_sub1 &&
+                       test_superproject_content origin/modify_sub1 &&
+                       test_submodule_content sub1 origin/modify_sub1
                )
        '
 }