]> git.ipfire.org Git - thirdparty/git.git/commitdiff
submodule tests: test for init and update failure output
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sat, 5 Mar 2022 00:13:49 +0000 (16:13 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 5 Mar 2022 00:39:11 +0000 (16:39 -0800)
Amend some submodule tests to test for the failure output of "git
submodule [update|init]". The lack of such tests hid a regression in
an earlier version of a subsequent commit.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7406-submodule-update.sh
t/t7408-submodule-reference.sh

index 11cccbb333b127436aebea313e0270acea812e87..7764c1c3cb6e601abd4678e2482f9b7787245938 100755 (executable)
@@ -205,8 +205,18 @@ test_expect_success 'submodule update should fail due to local changes' '
         (cd submodule &&
          compare_head
         ) &&
-        test_must_fail git submodule update submodule
-       )
+        test_must_fail git submodule update submodule 2>../actual.raw
+       ) &&
+       sed "s/^> //" >expect <<-\EOF &&
+       > error: Your local changes to the following files would be overwritten by checkout:
+       >       file
+       > Please commit your changes or stash them before you switch branches.
+       > Aborting
+       > fatal: Unable to checkout OID in submodule path '\''submodule'\''
+       EOF
+       sed -e "s/checkout $SQ[^$SQ]*$SQ/checkout OID/" <actual.raw >actual &&
+       test_cmp expect actual
+
 '
 test_expect_success 'submodule update should throw away changes with --force ' '
        (cd super &&
index a3892f494b68c866b150fdead376942bff47541b..c3a45455106f0961d7d80813cff55988caedd9bc 100755 (executable)
@@ -193,7 +193,19 @@ test_expect_success 'missing nested submodule alternate fails clone and submodul
                cd supersuper-clone &&
                check_that_two_of_three_alternates_are_used &&
                # update of the submodule fails
-               test_must_fail git submodule update --init --recursive
+               cat >expect <<-\EOF &&
+               fatal: submodule '\''sub'\'' cannot add alternate: path ... does not exist
+               Failed to clone '\''sub'\''. Retry scheduled
+               fatal: submodule '\''sub-dissociate'\'' cannot add alternate: path ... does not exist
+               Failed to clone '\''sub-dissociate'\''. Retry scheduled
+               fatal: submodule '\''sub'\'' cannot add alternate: path ... does not exist
+               Failed to clone '\''sub'\'' a second time, aborting
+               fatal: Failed to recurse into submodule path ...
+               EOF
+               test_must_fail git submodule update --init --recursive 2>err &&
+               grep -e fatal: -e ^Failed err >actual.raw &&
+               sed -e "s/path $SQ[^$SQ]*$SQ/path .../" <actual.raw >actual &&
+               test_cmp expect actual
        )
 '