summaryrefslogtreecommitdiff
path: root/t/t5815-submodule-protos.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-09-28 15:33:56 -0700
committerJunio C Hamano <gitster@pobox.com>2015-09-28 15:33:56 -0700
commit11a458befcd7662fbe6d2d53c76d49ae2b0fe219 (patch)
treede4cf6a8a43cb30b53f924ed8820de09409f0afd /t/t5815-submodule-protos.sh
parentee6ad5f4d56e697c972af86cbefdf269b386e470 (diff)
parenta2558fb8e1e387b630312311e1d22c95663da5d0 (diff)
downloadgit-11a458befcd7662fbe6d2d53c76d49ae2b0fe219.tar.gz
Sync with 2.4.10
Diffstat (limited to 't/t5815-submodule-protos.sh')
-rwxr-xr-xt/t5815-submodule-protos.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/t/t5815-submodule-protos.sh b/t/t5815-submodule-protos.sh
new file mode 100755
index 0000000000..06f55a1b8a
--- /dev/null
+++ b/t/t5815-submodule-protos.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+test_description='test protocol whitelisting with submodules'
+. ./test-lib.sh
+. "$TEST_DIRECTORY"/lib-proto-disable.sh
+
+setup_ext_wrapper
+setup_ssh_wrapper
+
+test_expect_success 'setup repository with submodules' '
+ mkdir remote &&
+ git init remote/repo.git &&
+ (cd remote/repo.git && test_commit one) &&
+ # submodule-add should probably trust what we feed it on the cmdline,
+ # but its implementation is overly conservative.
+ GIT_ALLOW_PROTOCOL=ssh git submodule add remote:repo.git ssh-module &&
+ GIT_ALLOW_PROTOCOL=ext git submodule add "ext::fake-remote %S repo.git" ext-module &&
+ git commit -m "add submodules"
+'
+
+test_expect_success 'clone with recurse-submodules fails' '
+ test_must_fail git clone --recurse-submodules . dst
+'
+
+test_expect_success 'setup individual updates' '
+ rm -rf dst &&
+ git clone . dst &&
+ git -C dst submodule init
+'
+
+test_expect_success 'update of ssh allowed' '
+ git -C dst submodule update ssh-module
+'
+
+test_expect_success 'update of ext not allowed' '
+ test_must_fail git -C dst submodule update ext-module
+'
+
+test_expect_success 'user can override whitelist' '
+ GIT_ALLOW_PROTOCOL=ext git -C dst submodule update ext-module
+'
+
+test_done