t7406: Fix submodule init config tests
authorStephen Boyd <bebarino@gmail.com>
Fri, 5 Mar 2010 08:20:38 +0000 (00:20 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 7 Mar 2010 04:00:02 +0000 (20:00 -0800)
These tests have been broken since they were introduced in commits
ca2cedb (git-submodule: add support for --rebase., 2009-04-24) and
42b4917 (git-submodule: add support for --merge., 2009-06-03).
'git submodule init' expects the submodules to exist in the index.
In this case, the submodules don't exist and therefore looking for
the submodules will always fail. To make matters worse, git submodule
fails visibly to the user by saying:

error: pathspec 'rebasing' did not match any file(s) known to git.
Did you forget to 'git add'?

but doesn't return an error code. This allows the test to fail silently.
Fix it by adding the submodules first.

Cc: Johan Herland <johan@herland.net>
Cc: Peter Hutterer <peter.hutterer@who-t.net>
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7406-submodule-update.sh

index 8e2449d24409bab14558f83617f651c3f7255627..1382a8e58a14c8fcc92889aad492d5883fd64f2b 100755 (executable)
@@ -28,6 +28,8 @@ test_expect_success 'setup a submodule tree' '
        git commit -m upstream
        git clone . super &&
        git clone super submodule &&
+       git clone super rebasing &&
+       git clone super merging &&
        (cd super &&
         git submodule add ../submodule submodule &&
         test_tick &&
@@ -45,6 +47,16 @@ test_expect_success 'setup a submodule tree' '
         ) &&
         git add submodule &&
         git commit -m "submodule update"
+       ) &&
+       (cd super &&
+        git submodule add ../rebasing rebasing &&
+        test_tick &&
+        git commit -m "rebasing"
+       ) &&
+       (cd super &&
+        git submodule add ../merging merging &&
+        test_tick &&
+        git commit -m "rebasing"
        )
 '
 
@@ -177,21 +189,17 @@ test_expect_success 'submodule update - checkout in .git/config' '
 
 test_expect_success 'submodule init picks up rebase' '
        (cd super &&
-        git config submodule.rebasing.url git://non-existing/git &&
-        git config submodule.rebasing.path does-not-matter &&
-        git config submodule.rebasing.update rebase &&
+        git config -f .gitmodules submodule.rebasing.update rebase &&
         git submodule init rebasing &&
-        test "rebase" = $(git config submodule.rebasing.update)
+        test "rebase" = "$(git config submodule.rebasing.update)"
        )
 '
 
 test_expect_success 'submodule init picks up merge' '
        (cd super &&
-        git config submodule.merging.url git://non-existing/git &&
-        git config submodule.merging.path does-not-matter &&
-        git config submodule.merging.update merge &&
+        git config -f .gitmodules submodule.merging.update merge &&
         git submodule init merging &&
-        test "merge" = $(git config submodule.merging.update)
+        test "merge" = "$(git config submodule.merging.update)"
        )
 '