]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t7406-submodule-update.sh
Sync with 2.23.1
[thirdparty/git.git] / t / t7406-submodule-update.sh
index df34c994d2f125e91db663b78412e1e04f637cc8..7478f7ab7eb8648a761111a9990d256fea15df58 100755 (executable)
@@ -406,12 +406,26 @@ test_expect_success 'submodule update - command in .git/config' '
        )
 '
 
-test_expect_success 'submodule update - command in .gitmodules is ignored' '
+test_expect_success 'submodule update - command in .gitmodules is rejected' '
        test_when_finished "git -C super reset --hard HEAD^" &&
        git -C super config -f .gitmodules submodule.submodule.update "!false" &&
        git -C super commit -a -m "add command to .gitmodules file" &&
        git -C super/submodule reset --hard $submodulesha1^ &&
-       git -C super submodule update submodule
+       test_must_fail git -C super submodule update submodule
+'
+
+test_expect_success 'fsck detects command in .gitmodules' '
+       git init command-in-gitmodules &&
+       (
+               cd command-in-gitmodules &&
+               git submodule add ../submodule submodule &&
+               test_commit adding-submodule &&
+
+               git config -f .gitmodules submodule.submodule.update "!false" &&
+               git add .gitmodules &&
+               test_commit configuring-update &&
+               test_must_fail git fsck
+       )
 '
 
 cat << EOF >expect
@@ -480,6 +494,9 @@ test_expect_success 'recursive submodule update - command in .git/config catches
 '
 
 test_expect_success 'submodule init does not copy command into .git/config' '
+       test_when_finished "git -C super update-index --force-remove submodule1" &&
+       test_when_finished git config -f super/.gitmodules \
+               --remove-section submodule.submodule1 &&
        (cd super &&
         git ls-files -s submodule >out &&
         H=$(cut -d" " -f2 out) &&
@@ -488,10 +505,9 @@ test_expect_success 'submodule init does not copy command into .git/config' '
         git config -f .gitmodules submodule.submodule1.path submodule1 &&
         git config -f .gitmodules submodule.submodule1.url ../submodule &&
         git config -f .gitmodules submodule.submodule1.update !false &&
-        git submodule init submodule1 &&
-        echo "none" >expect &&
-        git config submodule.submodule1.update >actual &&
-        test_cmp expect actual
+        test_must_fail git submodule init submodule1 &&
+        test_expect_code 1 git config submodule.submodule1.update >actual &&
+        test_must_be_empty actual
        )
 '