diff options
Diffstat (limited to 'third_party/git/t/t7411-submodule-config.sh')
-rwxr-xr-x | third_party/git/t/t7411-submodule-config.sh | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/third_party/git/t/t7411-submodule-config.sh b/third_party/git/t/t7411-submodule-config.sh deleted file mode 100755 index ad28e9388053..000000000000 --- a/third_party/git/t/t7411-submodule-config.sh +++ /dev/null @@ -1,258 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2014 Heiko Voigt -# - -test_description='Test submodules config cache infrastructure - -This test verifies that parsing .gitmodules configurations directly -from the database and from the worktree works. -' - -TEST_NO_CREATE_REPO=1 -. ./test-lib.sh - -test_expect_success 'submodule config cache setup' ' - mkdir submodule && - (cd submodule && - git init && - echo a >a && - git add . && - git commit -ma - ) && - mkdir super && - (cd super && - git init && - git submodule add ../submodule && - git submodule add ../submodule a && - git commit -m "add as submodule and as a" && - git mv a b && - git commit -m "move a to b" - ) -' - -test_expect_success 'configuration parsing with error' ' - test_when_finished "rm -rf repo" && - test_create_repo repo && - cat >repo/.gitmodules <<-\EOF && - [submodule "s"] - path - ignore - EOF - ( - cd repo && - test_must_fail test-tool submodule-config "" s 2>actual && - test_i18ngrep "bad config" actual - ) -' - -cat >super/expect <<EOF -Submodule name: 'a' for path 'a' -Submodule name: 'a' for path 'b' -Submodule name: 'submodule' for path 'submodule' -Submodule name: 'submodule' for path 'submodule' -EOF - -test_expect_success 'test parsing and lookup of submodule config by path' ' - (cd super && - test-tool submodule-config \ - HEAD^ a \ - HEAD b \ - HEAD^ submodule \ - HEAD submodule \ - >actual && - test_cmp expect actual - ) -' - -test_expect_success 'test parsing and lookup of submodule config by name' ' - (cd super && - test-tool submodule-config --name \ - HEAD^ a \ - HEAD a \ - HEAD^ submodule \ - HEAD submodule \ - >actual && - test_cmp expect actual - ) -' - -cat >super/expect_error <<EOF -Submodule name: 'a' for path 'b' -Submodule name: 'submodule' for path 'submodule' -EOF - -test_expect_success 'error in history of one submodule config lets continue, stderr message contains blob ref' ' - ORIG=$(git -C super rev-parse HEAD) && - test_when_finished "git -C super reset --hard $ORIG" && - (cd super && - cp .gitmodules .gitmodules.bak && - echo " value = \"" >>.gitmodules && - git add .gitmodules && - mv .gitmodules.bak .gitmodules && - git commit -m "add error" && - sha1=$(git rev-parse HEAD) && - test-tool submodule-config \ - HEAD b \ - HEAD submodule \ - >actual \ - 2>actual_stderr && - test_cmp expect_error actual && - test_i18ngrep "submodule-blob $sha1:.gitmodules" actual_stderr >/dev/null - ) -' - -test_expect_success 'using different treeishs works' ' - ( - cd super && - git tag new_tag && - tree=$(git rev-parse HEAD^{tree}) && - commit=$(git rev-parse HEAD^{commit}) && - test-tool submodule-config $commit b >expect && - test-tool submodule-config $tree b >actual.1 && - test-tool submodule-config new_tag b >actual.2 && - test_cmp expect actual.1 && - test_cmp expect actual.2 - ) -' - -test_expect_success 'error in history in fetchrecursesubmodule lets continue' ' - ORIG=$(git -C super rev-parse HEAD) && - test_when_finished "git -C super reset --hard $ORIG" && - (cd super && - git config -f .gitmodules \ - submodule.submodule.fetchrecursesubmodules blabla && - git add .gitmodules && - git config --unset -f .gitmodules \ - submodule.submodule.fetchrecursesubmodules && - git commit -m "add error in fetchrecursesubmodules" && - test-tool submodule-config \ - HEAD b \ - HEAD submodule \ - >actual && - test_cmp expect_error actual - ) -' - -test_expect_success 'reading submodules config from the working tree with "submodule--helper config"' ' - (cd super && - echo "../submodule" >expect && - git submodule--helper config submodule.submodule.url >actual && - test_cmp expect actual - ) -' - -test_expect_success 'unsetting submodules config from the working tree with "submodule--helper config --unset"' ' - (cd super && - git submodule--helper config --unset submodule.submodule.url && - git submodule--helper config submodule.submodule.url >actual && - test_must_be_empty actual - ) -' - - -test_expect_success 'writing submodules config with "submodule--helper config"' ' - (cd super && - echo "new_url" >expect && - git submodule--helper config submodule.submodule.url "new_url" && - git submodule--helper config submodule.submodule.url >actual && - test_cmp expect actual - ) -' - -test_expect_success 'overwriting unstaged submodules config with "submodule--helper config"' ' - test_when_finished "git -C super checkout .gitmodules" && - (cd super && - echo "newer_url" >expect && - git submodule--helper config submodule.submodule.url "newer_url" && - git submodule--helper config submodule.submodule.url >actual && - test_cmp expect actual - ) -' - -test_expect_success 'writeable .gitmodules when it is in the working tree' ' - git -C super submodule--helper config --check-writeable -' - -test_expect_success 'writeable .gitmodules when it is nowhere in the repository' ' - ORIG=$(git -C super rev-parse HEAD) && - test_when_finished "git -C super reset --hard $ORIG" && - (cd super && - git rm .gitmodules && - git commit -m "remove .gitmodules from the current branch" && - git submodule--helper config --check-writeable - ) -' - -test_expect_success 'non-writeable .gitmodules when it is in the index but not in the working tree' ' - test_when_finished "git -C super checkout .gitmodules" && - (cd super && - rm -f .gitmodules && - test_must_fail git submodule--helper config --check-writeable - ) -' - -test_expect_success 'non-writeable .gitmodules when it is in the current branch but not in the index' ' - ORIG=$(git -C super rev-parse HEAD) && - test_when_finished "git -C super reset --hard $ORIG" && - (cd super && - git rm .gitmodules && - test_must_fail git submodule--helper config --check-writeable - ) -' - -test_expect_success 'reading submodules config from the index when .gitmodules is not in the working tree' ' - ORIG=$(git -C super rev-parse HEAD) && - test_when_finished "git -C super reset --hard $ORIG" && - (cd super && - git submodule--helper config submodule.submodule.url "staged_url" && - git add .gitmodules && - rm -f .gitmodules && - echo "staged_url" >expect && - git submodule--helper config submodule.submodule.url >actual && - test_cmp expect actual - ) -' - -test_expect_success 'reading submodules config from the current branch when .gitmodules is not in the index' ' - ORIG=$(git -C super rev-parse HEAD) && - test_when_finished "git -C super reset --hard $ORIG" && - (cd super && - git rm .gitmodules && - echo "../submodule" >expect && - git submodule--helper config submodule.submodule.url >actual && - test_cmp expect actual - ) -' - -test_expect_success 'reading nested submodules config' ' - (cd super && - git init submodule/nested_submodule && - echo "a" >submodule/nested_submodule/a && - git -C submodule/nested_submodule add a && - git -C submodule/nested_submodule commit -m "add a" && - git -C submodule submodule add ./nested_submodule && - git -C submodule add nested_submodule && - git -C submodule commit -m "added nested_submodule" && - git add submodule && - git commit -m "updated submodule" && - echo "./nested_submodule" >expect && - test-tool submodule-nested-repo-config \ - submodule submodule.nested_submodule.url >actual && - test_cmp expect actual - ) -' - -test_expect_success 'reading nested submodules config when .gitmodules is not in the working tree' ' - test_when_finished "git -C super/submodule checkout .gitmodules" && - (cd super && - echo "./nested_submodule" >expect && - rm submodule/.gitmodules && - test-tool submodule-nested-repo-config \ - submodule submodule.nested_submodule.url >actual 2>warning && - test_must_be_empty warning && - test_cmp expect actual - ) -' - -test_done |