Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/t0106-diff.sh | 129 | ||||
| -rwxr-xr-x | tests/t0107-snapshot.sh | 8 | ||||
| -rw-r--r-- | tests/t0112-ci.sh | 127 | ||||
| -rw-r--r-- | tests/t0113-ci-lua.sh | 78 | ||||
| -rw-r--r-- | tests/t0114-broken-repo.sh | 71 |
5 files changed, 4 insertions, 409 deletions
diff --git a/tests/t0106-diff.sh b/tests/t0106-diff.sh index 0e45087..82b645e 100755 --- a/tests/t0106-diff.sh +++ b/tests/t0106-diff.sh @@ -16,133 +16,4 @@ test_expect_success 'find added line' ' grep "<div class=.add.>+5</div>" tmp ' -test_expect_success 'ref picker: from: select present' ' - grep "<select name=.id2." tmp -' - -test_expect_success 'ref picker: to: select present' ' - grep "<select name=.id." tmp -' - -test_expect_success 'ref picker: from: label present' ' - grep "from:" tmp -' - -test_expect_success 'ref picker: to: label present' ' - grep "to:" tmp -' - -test_expect_success 'ref pickers live in a separate refs panel' ' - grep "<b>diff refs</b>" tmp && - grep "<b>diff options</b>" tmp -' - -test_expect_success 'ref picker: master branch listed' ' - grep "master" tmp -' - -test_expect_success 'ref picker: auto-submit on change' ' - grep "onchange=.this.form.submit()." tmp -' - -test_expect_success 'flip link present' ' - grep "<a title=.swap from and to. class=.button. href=./foo/diff/?" tmp -' - -test_expect_success 'flip link swaps the default refs' ' - grep "/foo/diff/?id2=master&idoff=1" tmp -' - -test_expect_success 'compare two refs: foo/diff?id=master&id2=HEAD' ' - cgit_query "url=foo/diff&id=master&id2=HEAD" >tmp -' - -test_expect_success 'diff with explicit refs shows diffstat' ' - grep "diffstat" tmp -' - -test_expect_success 'diff with oid2 parameter uses it for old ref' ' - cgit_query "url=foo/diff&id=master&id2=HEAD" >tmp && - grep "from:" tmp -' - -test_expect_success 'ref picker: to: shows master when id=master' ' - cgit_query "url=foo/diff&id=master" >tmp && - grep "master" tmp -' - -test_expect_success 'ref picker: from: empty when no id2' ' - cgit_query "url=foo/diff" >tmp && - grep "<select name=.id2." tmp -' - -test_expect_success 'compare initial commit with HEAD' ' - root=$(git --git-dir="$PWD/repos/foo/.git" rev-list --max-parents=0 HEAD) && - cgit_query "url=foo/diff&id=HEAD&id2=$root" >tmp -' - -test_expect_success 'diff with HEAD and root shows content' ' - grep "diffstat" tmp -' - -test_expect_success 'flip link swaps explicit refs' ' - cgit_query "url=foo/diff&id=master&id2=HEAD" >tmp && - grep "/foo/diff/?id=HEAD&id2=master" tmp -' - -test_expect_success 'flip link omits id for a diff against a root commit' ' - root=$(git --git-dir="$PWD/repos/foo/.git" rev-list --max-parents=0 HEAD) && - cgit_query "url=foo/diff&id=$root" >tmp && - grep "href=./foo/diff/?id2=$root." tmp -' - -test_expect_success 'offset input: to: present' ' - grep "name=.idoff." tmp -' - -test_expect_success 'offset input: from: present' ' - grep "name=.id2off." tmp -' - -test_expect_success 'apply button present' ' - grep "value=.apply." tmp -' - -test_expect_success 'offset: idoff steps back the to ref' ' - cgit_query "url=foo/diff&id=master&idoff=1" >tmp && - grep "a/file-4 b/file-4" tmp -' - -test_expect_success 'offset: id2off steps back the from ref' ' - cgit_query "url=foo/diff&id=master&id2=master&id2off=2" >tmp && - grep "a/file-5 b/file-5" tmp -' - -test_expect_success 'offset: filled input and hidden field' ' - cgit_query "url=foo/diff&id=master&idoff=1" >tmp && - grep "title=.N commits back from the selected ref. value=.1.>" tmp && - grep "type=.hidden. name=.idoff. value=.1./>" tmp -' - -test_expect_success 'offset: too large 404s with the stepped rev' ' - cgit_query "url=foo/diff&id=master&id2=master&id2off=9" >tmp && - grep "Bad object name: master~9" tmp -' - -test_expect_success 'empty id2 does not 404' ' - cgit_query "url=foo/diff&id=master&id2=" >tmp && - grep "diffstat" tmp && - ! grep "Bad object name" tmp -' - -test_expect_success 'file link carries the offsets' ' - cgit_query "url=foo/diff&id=master&id2=master&id2off=2" >tmp && - grep "/foo/diff/file-5?id2=master&id2off=2" tmp -' - -test_expect_success 'flip link carries the offsets' ' - cgit_query "url=foo/diff&id=master&id2=master&idoff=1&id2off=2" >tmp && - grep "/foo/diff/?id2=master&idoff=2&id2off=1" tmp -' - test_done diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index 0811ec4..89b9159 100755 --- a/tests/t0107-snapshot.sh +++ b/tests/t0107-snapshot.sh @@ -25,7 +25,7 @@ test_expect_success 'verify gzip format' ' test_expect_success 'untar' ' rm -rf master && - gzip -dc master.tar.gz | tar -xf - + tar -xzf master.tar.gz ' test_expect_success 'count files' ' @@ -66,7 +66,7 @@ test_expect_success LZIP 'verify lzip format' ' test_expect_success LZIP 'untar' ' rm -rf master && - lzip -dc master.tar.lz | tar -xf - + tar --lzip -xf master.tar.lz ' test_expect_success LZIP 'count files' ' @@ -107,7 +107,7 @@ test_expect_success XZ 'verify xz format' ' test_expect_success XZ 'untar' ' rm -rf master && - xz -dc master.tar.xz | tar -xf - + tar --xz -xf master.tar.xz ' test_expect_success XZ 'count files' ' @@ -148,7 +148,7 @@ test_expect_success ZSTD 'verify zstd format' ' test_expect_success ZSTD 'untar' ' rm -rf master && - zstd -dc master.tar.zst | tar -xf - + tar --zstd -xf master.tar.zst ' test_expect_success ZSTD 'count files' ' diff --git a/tests/t0112-ci.sh b/tests/t0112-ci.sh deleted file mode 100644 index 33609d6..0000000 --- a/tests/t0112-ci.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh - -test_description='Check content on ci page' -. ./setup.sh - -# The ci settings are only inherited by repositories which are declared -# after them, which is used below to get a repository with no ci url and -# one with a tag-only ci url. -cat >cgitrc.ci <<EOF -virtual-root=/ -cache-root=$PWD/cache -cache-size=0 -enable-filter-overrides=1 - -repo.url=tagonly -repo.path=$PWD/repos/foo/.git -repo.ci-tag-url=https://ci.example.org/tagonly/\$ref - -ci-branch-url=https://ci.example.org/job/\$slug/job/\$ref -ci-tag-url=https://ci.example.org/job/\$slug/view/tags/job/\$ref - -repo.url=foo -repo.path=$PWD/repos/foo/.git - -repo.url=sayauz/web.git -repo.path=$PWD/repos/foo/.git - -repo.url=override -repo.path=$PWD/repos/foo/.git -repo.ci-url=https://ci.example.org/override/\$repo/\$\$/\$ref - -repo.url=filtered -repo.path=$PWD/repos/foo/.git -repo.ci-filter=exec:$PWD/ci-filter.sh -EOF - -# Records its arguments and only accepts tags. -cat >ci-filter.sh <<EOF -#!/bin/sh -printf '%s|%s|%s\n' "\$1" "\$2" "\$3" >>"$PWD/ci-filter.log" -test "\$2" = tag -EOF -chmod +x ci-filter.sh - -git --git-dir="$PWD/repos/foo/.git" tag v0.17.3.2 master - -cgit_ci() -{ - CGIT_CONFIG="$PWD/cgitrc.ci" QUERY_STRING="url=$1" cgit -} - -test_expect_success 'redirect to the branch ci url' ' - cgit_ci "foo/ci&h=master" >tmp && - grep "^Status: 302 Found$" tmp && - grep "^Location: https://ci.example.org/job/foo/job/master$" tmp -' - -test_expect_success 'redirect to the tag ci url' ' - cgit_ci "foo/ci&h=v0.17.3.2" >tmp && - grep "^Status: 302 Found$" tmp && - grep "^Location: https://ci.example.org/job/foo/view/tags/job/v0.17.3.2$" tmp -' - -test_expect_success 'redirect to the default branch ci url' ' - cgit_ci "foo/ci" >tmp && - grep "^Location: https://ci.example.org/job/foo/job/master$" tmp -' - -test_expect_success '$slug strips ".git" and replaces slashes' ' - cgit_ci "sayauz/web.git/ci&h=v0.17.3.2" >tmp && - grep "^Location: https://ci.example.org/job/sayauz-web/view/tags/job/v0.17.3.2$" tmp -' - -test_expect_success 'repo.ci-url overrides and expands $repo and $$' ' - cgit_ci "override/ci&h=master" >tmp && - grep -F "Location: https://ci.example.org/override/override/\$/master" tmp -' - -test_expect_success 'repo.ci-tag-url does not apply to branches' ' - cgit_ci "tagonly/ci&h=v0.17.3.2" >tmp && - grep "^Location: https://ci.example.org/tagonly/v0.17.3.2$" tmp && - cgit_ci "tagonly/ci&h=master" >tmp && - grep "^Status: 404 Not found$" tmp -' - -test_expect_success 'find ci tab' ' - cgit_ci "foo/refs&h=master" >tmp && - grep "href=./foo/ci/.>ci</a>" tmp -' - -test_expect_success 'no ci tab without a ci url' ' - cgit_url "foo/refs" >tmp && - ! grep ">ci</a>" tmp -' - -test_expect_success 'ci filter accepts a tag' ' - rm -f ci-filter.log && - cgit_ci "filtered/ci&h=v0.17.3.2" >tmp && - grep "^Location: https://ci.example.org/job/filtered/view/tags/job/v0.17.3.2$" tmp && - echo "v0.17.3.2|tag|https://ci.example.org/job/filtered/view/tags/job/v0.17.3.2" >expected && - test_cmp expected ci-filter.log -' - -test_expect_success 'ci filter rejects a branch' ' - rm -f ci-filter.log && - cgit_ci "filtered/ci&h=master" >tmp && - grep "^Status: 404 Not found$" tmp && - echo "master|branch|https://ci.example.org/job/filtered/job/master" >expected && - test_cmp expected ci-filter.log -' - -test_expect_success "ci filter hides the tab and is consulted once" ' - rm -f ci-filter.log && - cgit_ci "filtered/refs&h=master" >tmp && - ! grep ">ci</a>" tmp && - test_line_count = 1 ci-filter.log && - cgit_ci "filtered/refs&h=v0.17.3.2" >tmp && - grep "href=./filtered/ci/?h=v0.17.3.2.>ci</a>" tmp -' - -test_expect_success 'ci filter is not consulted without a ci url' ' - rm -f ci-filter.log && - cgit_url "foo/refs" >tmp && - test_path_is_missing ci-filter.log -' - -test_done diff --git a/tests/t0113-ci-lua.sh b/tests/t0113-ci-lua.sh deleted file mode 100644 index 1e095b1..0000000 --- a/tests/t0113-ci-lua.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -test_description='Check ci filter written in Lua' -. ./setup.sh - -if test $CGIT_HAS_LUA -ne 1 -then - skip_all='Skipping Lua ci filter tests: Lua support not compiled in' - test_done - exit -fi - -cat >cgitrc.cilua <<EOF -virtual-root=/ -cache-root=$PWD/cache -cache-size=0 - -ci-url=https://ci.example.org/job/\$slug/job/\$ref -ci-filter=lua:$PWD/ci-filter.lua - -repo.url=foo -repo.path=$PWD/repos/foo/.git -EOF - -# Accepts tags only, and records its arguments. -cat >ci-filter.lua <<EOF -function filter_open(ref, refkind, url) - local log = io.open("$PWD/ci-filter.log", "a") - log:write(ref .. "|" .. refkind .. "|" .. url .. "\n") - log:close() - accepted = (refkind == "tag") -end - -function filter_write(buffer) -end - -function filter_close() - if accepted then - return 0 - end - return 1 -end -EOF - -git --git-dir="$PWD/repos/foo/.git" tag v1.0 master - -cgit_ci() -{ - CGIT_CONFIG="$PWD/cgitrc.cilua" QUERY_STRING="url=$1" cgit -} - -test_expect_success 'Lua ci filter accepts a tag' ' - rm -f ci-filter.log && - cgit_ci "foo/ci&h=v1.0" >tmp && - grep "^Location: https://ci.example.org/job/foo/job/v1.0$" tmp && - echo "v1.0|tag|https://ci.example.org/job/foo/job/v1.0" >expected && - test_cmp expected ci-filter.log -' - -test_expect_success 'Lua ci filter rejects a branch' ' - cgit_ci "foo/ci&h=master" >tmp && - grep "^Status: 404 Not found$" tmp -' - -test_expect_success 'Lua ci filter controls the tab' ' - cgit_ci "foo/refs&h=v1.0" >tmp && - grep "href=./foo/ci/?h=v1.0.>ci</a>" tmp && - cgit_ci "foo/refs&h=master" >tmp && - ! grep ">ci</a>" tmp -' - -test_expect_success 'page is still rendered correctly around the filter' ' - cgit_ci "foo/refs&h=v1.0" >tmp && - grep "</html>" tmp && - ! grep "|tag|" tmp -' - -test_done diff --git a/tests/t0114-broken-repo.sh b/tests/t0114-broken-repo.sh deleted file mode 100644 index 61367e6..0000000 --- a/tests/t0114-broken-repo.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/sh - -test_description='Check that a misconfigured repo.path is reported' -. ./setup.sh - -mkdir -p plaindir - -cat >cgitrc.broken <<EOF -virtual-root=/ -cache-root=$PWD/cache -cache-size=0 - -ci-branch-url=https://ci.example.org/job/\$slug/job/\$ref - -repo.url=missing -repo.path=$PWD/no/such/repo.git - -repo.url=notarepo -repo.path=$PWD/plaindir -EOF - -# cgit used to spin forever on these requests, so give it a deadline and -# report a failure rather than hanging the test suite. -cgit_broken() -{ - CGIT_CONFIG="$PWD/cgitrc.broken" QUERY_STRING="url=$1" perl -e ' - my $pid = fork(); - if ($pid == 0) { - exec("cgit") or die "exec: $!"; - } - eval { - local $SIG{ALRM} = sub { die "timeout\n" }; - alarm(20); - waitpid($pid, 0); - alarm(0); - }; - if ($@) { - kill "KILL", $pid; - print STDERR "cgit did not terminate\n"; - exit 1; - } - ' </dev/null -} - -test_expect_success 'report a repo.path that does not exist' ' - cgit_broken "missing/&h=master" >tmp && - grep "Failed to open missing" tmp -' - -test_expect_success 'report a repo.path that is not a repository' ' - cgit_broken "notarepo/&h=master" >tmp && - grep "Failed to open notarepo" tmp -' - -test_expect_success 'report an unknown page for a broken repo' ' - cgit_broken "missing/nosuchpage/&h=master" >tmp && - grep "^Status: 404 Not found$" tmp && - grep "Invalid request" tmp -' - -test_expect_success 'no ci tab for a broken repo' ' - cgit_broken "missing/nosuchpage/&h=master" >tmp && - ! grep ">ci</a>" tmp -' - -test_expect_success 'report a broken repo on the ci page' ' - cgit_broken "missing/ci/&h=master" >tmp && - grep "Failed to open missing" tmp -' - -test_done |