summaryrefslogtreecommitdiff
path: root/t/t5815-submodule-protos.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-09-28 19:16:54 -0700
committerJunio C Hamano <gitster@pobox.com>2015-09-28 19:16:54 -0700
commit3adc4ec7b9e1d2118501728a75a5b93d971974fa (patch)
tree807d65746060e9967d6d016b230730ef5fd24334 /t/t5815-submodule-protos.sh
parentbe08dee9738eaaa0423885ed189c2b6ad8368cf0 (diff)
parent24358560c3c0ab51c9ef8178d99f46711716f6c0 (diff)
downloadgit-3adc4ec7b9e1d2118501728a75a5b93d971974fa.tar.gz
Sync with v2.5.4
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