diff options
author | Lukas Fleischer <lfleischer@archlinux.org> | 2016-08-05 21:22:36 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2016-08-05 21:23:20 +0200 |
commit | 9a03c7fbdd9a1eff197d9c14301ab23aabc88109 (patch) | |
tree | 3c3e9bf8ce7536ea6610bd70000d92710a24e2b2 /git-interface/test | |
parent | 008eace8dbeb0343ae3908cb8373d669efcb8e63 (diff) | |
download | aur-9a03c7fbdd9a1eff197d9c14301ab23aabc88109.tar.gz aur-9a03c7fbdd9a1eff197d9c14301ab23aabc88109.tar.xz |
t0002: Add more git-serve tests
Add tests for common scenarios that should be detected/handled by the
git-serve script.
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
Diffstat (limited to 'git-interface/test')
-rw-r--r-- | git-interface/test/setup.sh | 19 | ||||
-rwxr-xr-x | git-interface/test/t0002-serve.sh | 62 |
2 files changed, 79 insertions, 2 deletions
diff --git a/git-interface/test/setup.sh b/git-interface/test/setup.sh index 45129782..cb1e2506 100644 --- a/git-interface/test/setup.sh +++ b/git-interface/test/setup.sh @@ -29,8 +29,8 @@ ssh-options = restrict [serve] repo-path = ./aur.git/ repo-regex = [a-z0-9][a-z0-9.+_-]*$ -git-shell-cmd = /usr/bin/git-shell -git-update-cmd = /srv/http/aurweb/git-interface/git-update.py +git-shell-cmd = ./git-shell.sh +git-update-cmd = ./update.sh ssh-cmdline = ssh aur@aur.archlinux.org [update] @@ -42,6 +42,21 @@ cat >notify.sh <<-EOF EOF chmod +x notify.sh +cat >git-shell.sh <<-\EOF +#!/bin/sh +echo $AUR_USER +echo $AUR_PKGBASE +echo $GIT_NAMESPACE +EOF +chmod +x git-shell.sh + +cat >update.sh <<-\EOF +#!/bin/sh +echo $AUR_USER +echo $AUR_PKGBASE +EOF +chmod +x update.sh + AUR_CONFIG=config export AUR_CONFIG diff --git a/git-interface/test/t0002-serve.sh b/git-interface/test/t0002-serve.sh index 7e17bcbc..f36f1d88 100755 --- a/git-interface/test/t0002-serve.sh +++ b/git-interface/test/t0002-serve.sh @@ -15,6 +15,8 @@ test_expect_success 'Test help.' ' test_expect_success 'Test setup-repo and list-repos.' ' SSH_ORIGINAL_COMMAND="setup-repo foobar" AUR_USER=user \ "$GIT_SERVE" 2>&1 && + SSH_ORIGINAL_COMMAND="setup-repo foobar2" AUR_USER=tu \ + "$GIT_SERVE" 2>&1 && cat >expected <<-EOF && *foobar EOF @@ -23,4 +25,64 @@ test_expect_success 'Test setup-repo and list-repos.' ' test_cmp expected actual ' +test_expect_success 'Test git-receive-pack.' ' + cat >expected <<-EOF && + user + foobar + foobar + EOF + SSH_ORIGINAL_COMMAND="git-receive-pack /foobar.git/" \ + AUR_USER=user AUR_PRIVILEGED=0 \ + "$GIT_SERVE" 2>&1 >actual && + test_cmp expected actual +' + +test_expect_success 'Test git-receive-pack with an invalid repository name.' ' + SSH_ORIGINAL_COMMAND="git-receive-pack /!.git/" \ + AUR_USER=user AUR_PRIVILEGED=0 \ + test_must_fail "$GIT_SERVE" 2>&1 >actual +' + +test_expect_success "Test git-upload-pack." ' + cat >expected <<-EOF && + user + foobar + foobar + EOF + SSH_ORIGINAL_COMMAND="git-upload-pack /foobar.git/" \ + AUR_USER=user AUR_PRIVILEGED=0 \ + "$GIT_SERVE" 2>&1 >actual && + test_cmp expected actual +' + +test_expect_success "Try to pull from someone else's repository." ' + cat >expected <<-EOF && + user + foobar2 + foobar2 + EOF + SSH_ORIGINAL_COMMAND="git-upload-pack /foobar2.git/" \ + AUR_USER=user AUR_PRIVILEGED=0 \ + "$GIT_SERVE" 2>&1 >actual && + test_cmp expected actual +' + +test_expect_success "Try to push to someone else's repository." ' + SSH_ORIGINAL_COMMAND="git-receive-pack /foobar2.git/" \ + AUR_USER=user AUR_PRIVILEGED=0 \ + test_must_fail "$GIT_SERVE" 2>&1 +' + +test_expect_success "Try to push to someone else's repository as Trusted User." ' + cat >expected <<-EOF && + tu + foobar + foobar + EOF + SSH_ORIGINAL_COMMAND="git-receive-pack /foobar.git/" \ + AUR_USER=tu AUR_PRIVILEGED=1 \ + "$GIT_SERVE" 2>&1 >actual && + test_cmp expected actual +' + test_done |