diff options
Diffstat (limited to 'third_party/git/t/lib-proto-disable.sh')
-rw-r--r-- | third_party/git/t/lib-proto-disable.sh | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/third_party/git/t/lib-proto-disable.sh b/third_party/git/t/lib-proto-disable.sh deleted file mode 100644 index 83babe57d959..000000000000 --- a/third_party/git/t/lib-proto-disable.sh +++ /dev/null @@ -1,220 +0,0 @@ -# Test routines for checking protocol disabling. - -# Test clone/fetch/push with GIT_ALLOW_PROTOCOL whitelist -test_whitelist () { - desc=$1 - proto=$2 - url=$3 - - test_expect_success "clone $desc (enabled)" ' - rm -rf tmp.git && - ( - GIT_ALLOW_PROTOCOL=$proto && - export GIT_ALLOW_PROTOCOL && - git clone --bare "$url" tmp.git - ) - ' - - test_expect_success "fetch $desc (enabled)" ' - ( - cd tmp.git && - GIT_ALLOW_PROTOCOL=$proto && - export GIT_ALLOW_PROTOCOL && - git fetch - ) - ' - - test_expect_success "push $desc (enabled)" ' - ( - cd tmp.git && - GIT_ALLOW_PROTOCOL=$proto && - export GIT_ALLOW_PROTOCOL && - git push origin HEAD:pushed - ) - ' - - test_expect_success "push $desc (disabled)" ' - ( - cd tmp.git && - GIT_ALLOW_PROTOCOL=none && - export GIT_ALLOW_PROTOCOL && - test_must_fail git push origin HEAD:pushed - ) - ' - - test_expect_success "fetch $desc (disabled)" ' - ( - cd tmp.git && - GIT_ALLOW_PROTOCOL=none && - export GIT_ALLOW_PROTOCOL && - test_must_fail git fetch - ) - ' - - test_expect_success "clone $desc (disabled)" ' - rm -rf tmp.git && - ( - GIT_ALLOW_PROTOCOL=none && - export GIT_ALLOW_PROTOCOL && - test_must_fail git clone --bare "$url" tmp.git - ) - ' - - test_expect_success "clone $desc (env var has precedence)" ' - rm -rf tmp.git && - ( - GIT_ALLOW_PROTOCOL=none && - export GIT_ALLOW_PROTOCOL && - test_must_fail git -c protocol.allow=always clone --bare "$url" tmp.git && - test_must_fail git -c protocol.$proto.allow=always clone --bare "$url" tmp.git - ) - ' -} - -test_config () { - desc=$1 - proto=$2 - url=$3 - - # Test clone/fetch/push with protocol.<type>.allow config - test_expect_success "clone $desc (enabled with config)" ' - rm -rf tmp.git && - git -c protocol.$proto.allow=always clone --bare "$url" tmp.git - ' - - test_expect_success "fetch $desc (enabled)" ' - git -C tmp.git -c protocol.$proto.allow=always fetch - ' - - test_expect_success "push $desc (enabled)" ' - git -C tmp.git -c protocol.$proto.allow=always push origin HEAD:pushed - ' - - test_expect_success "push $desc (disabled)" ' - test_must_fail git -C tmp.git -c protocol.$proto.allow=never push origin HEAD:pushed - ' - - test_expect_success "fetch $desc (disabled)" ' - test_must_fail git -C tmp.git -c protocol.$proto.allow=never fetch - ' - - test_expect_success "clone $desc (disabled)" ' - rm -rf tmp.git && - test_must_fail git -c protocol.$proto.allow=never clone --bare "$url" tmp.git - ' - - # Test clone/fetch/push with protocol.user.allow and its env var - test_expect_success "clone $desc (enabled)" ' - rm -rf tmp.git && - git -c protocol.$proto.allow=user clone --bare "$url" tmp.git - ' - - test_expect_success "fetch $desc (enabled)" ' - git -C tmp.git -c protocol.$proto.allow=user fetch - ' - - test_expect_success "push $desc (enabled)" ' - git -C tmp.git -c protocol.$proto.allow=user push origin HEAD:pushed - ' - - test_expect_success "push $desc (disabled)" ' - ( - cd tmp.git && - GIT_PROTOCOL_FROM_USER=0 && - export GIT_PROTOCOL_FROM_USER && - test_must_fail git -c protocol.$proto.allow=user push origin HEAD:pushed - ) - ' - - test_expect_success "fetch $desc (disabled)" ' - ( - cd tmp.git && - GIT_PROTOCOL_FROM_USER=0 && - export GIT_PROTOCOL_FROM_USER && - test_must_fail git -c protocol.$proto.allow=user fetch - ) - ' - - test_expect_success "clone $desc (disabled)" ' - rm -rf tmp.git && - ( - GIT_PROTOCOL_FROM_USER=0 && - export GIT_PROTOCOL_FROM_USER && - test_must_fail git -c protocol.$proto.allow=user clone --bare "$url" tmp.git - ) - ' - - # Test clone/fetch/push with protocol.allow user defined default - test_expect_success "clone $desc (enabled)" ' - rm -rf tmp.git && - test_config_global protocol.allow always && - git clone --bare "$url" tmp.git - ' - - test_expect_success "fetch $desc (enabled)" ' - test_config_global protocol.allow always && - git -C tmp.git fetch - ' - - test_expect_success "push $desc (enabled)" ' - test_config_global protocol.allow always && - git -C tmp.git push origin HEAD:pushed - ' - - test_expect_success "push $desc (disabled)" ' - test_config_global protocol.allow never && - test_must_fail git -C tmp.git push origin HEAD:pushed - ' - - test_expect_success "fetch $desc (disabled)" ' - test_config_global protocol.allow never && - test_must_fail git -C tmp.git fetch - ' - - test_expect_success "clone $desc (disabled)" ' - rm -rf tmp.git && - test_config_global protocol.allow never && - test_must_fail git clone --bare "$url" tmp.git - ' -} - -# test cloning a particular protocol -# $1 - description of the protocol -# $2 - machine-readable name of the protocol -# $3 - the URL to try cloning -test_proto () { - test_whitelist "$@" - - test_config "$@" -} - -# set up an ssh wrapper that will access $host/$repo in the -# trash directory, and enable it for subsequent tests. -setup_ssh_wrapper () { - test_expect_success 'setup ssh wrapper' ' - write_script ssh-wrapper <<-\EOF && - echo >&2 "ssh: $*" - host=$1; shift - cd "$TRASH_DIRECTORY/$host" && - eval "$*" - EOF - GIT_SSH="$PWD/ssh-wrapper" && - export GIT_SSH && - export TRASH_DIRECTORY - ' -} - -# set up a wrapper that can be used with remote-ext to -# access repositories in the "remote" directory of trash-dir, -# like "ext::fake-remote %S repo.git" -setup_ext_wrapper () { - test_expect_success 'setup ext wrapper' ' - write_script fake-remote <<-\EOF && - echo >&2 "fake-remote: $*" - cd "$TRASH_DIRECTORY/remote" && - eval "$*" - EOF - PATH=$TRASH_DIRECTORY:$PATH && - export TRASH_DIRECTORY - ' -} |