mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Remove the formatting of the usage text and add code to columnize it automatically instead. Also, add more strict tests for the usage output. These new tests ensure that the usage header is printed, commands are indented properly and no overly long lines are produced. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
113 lines
2.7 KiB
Bash
Executable file
113 lines
2.7 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='git-serve tests'
|
|
|
|
. ./setup.sh
|
|
|
|
test_expect_success 'Test interactive shell.' '
|
|
"$GIT_SERVE" 2>&1 | grep -q "Interactive shell is disabled."
|
|
'
|
|
|
|
test_expect_success 'Test help.' '
|
|
SSH_ORIGINAL_COMMAND=help "$GIT_SERVE" 2>actual &&
|
|
save_IFS=$IFS
|
|
IFS=
|
|
while read -r line; do
|
|
echo $line | grep -q "^Commands:$" && continue
|
|
echo $line | grep -q "^ [a-z]" || return 1
|
|
[ ${#line} -le 80 ] || return 1
|
|
done <actual
|
|
IFS=$save_IFS
|
|
'
|
|
|
|
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
|
|
SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=user \
|
|
"$GIT_SERVE" 2>&1 >actual &&
|
|
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_expect_success "Test restore." '
|
|
echo "DELETE FROM PackageBases WHERE Name = \"foobar\";" | \
|
|
sqlite3 aur.db &&
|
|
cat >expected <<-EOF &&
|
|
user
|
|
foobar
|
|
EOF
|
|
SSH_ORIGINAL_COMMAND="restore foobar" AUR_USER=user AUR_PRIVILEGED=0 \
|
|
"$GIT_SERVE" 2>&1 >actual
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_expect_success "Try to restore an existing package base." '
|
|
SSH_ORIGINAL_COMMAND="restore foobar2" AUR_USER=user AUR_PRIVILEGED=0 \
|
|
test_must_fail "$GIT_SERVE" 2>&1
|
|
'
|
|
|
|
test_done
|