Diffstat (limited to 'tests')
| -rw-r--r-- | tests/Makefile | 6 | ||||
| -rw-r--r-- | tests/filters/dump.lua | 17 | ||||
| -rwxr-xr-x | tests/filters/dump.sh | 4 | ||||
| -rwxr-xr-x | tests/setup.sh | 85 | ||||
| -rwxr-xr-x | tests/t0001-validate-git-versions.sh | 10 | ||||
| -rwxr-xr-x | tests/t0104-tree.sh | 4 | ||||
| -rwxr-xr-x | tests/t0105-commit.sh | 2 | ||||
| -rwxr-xr-x | tests/t0106-diff.sh | 61 | ||||
| -rwxr-xr-x | tests/t0107-snapshot.sh | 125 | ||||
| -rwxr-xr-x | tests/t0108-patch.sh | 30 | ||||
| -rwxr-xr-x | tests/t0109-gitconfig.sh | 16 | ||||
| -rwxr-xr-x | tests/t0110-rawdiff.sh | 42 | ||||
| -rwxr-xr-x | tests/t0111-filter.sh | 46 | ||||
| -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 | ||||
| -rwxr-xr-x | tests/valgrind/bin/cgit | 12 |
17 files changed, 23 insertions, 713 deletions
diff --git a/tests/Makefile b/tests/Makefile index 65e1117..8c6c236 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,15 +1,11 @@ -include ../git/config.mak.uname --include ../cgit.conf -SHELL_PATH ?= $(SHELL) -SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh) all: $(T) $(T): - @'$(SHELL_PATH_SQ)' $@ $(CGIT_TEST_OPTS) + @./$@ clean: $(RM) -rf trash diff --git a/tests/filters/dump.lua b/tests/filters/dump.lua deleted file mode 100644 index 1f15c93..0000000 --- a/tests/filters/dump.lua +++ /dev/null @@ -1,17 +0,0 @@ -function filter_open(...) - buffer = "" - for i = 1, select("#", ...) do - buffer = buffer .. select(i, ...) .. " " - end -end - -function filter_close() - html(buffer) - return 0 -end - -function filter_write(str) - buffer = buffer .. string.upper(str) -end - - diff --git a/tests/filters/dump.sh b/tests/filters/dump.sh deleted file mode 100755 index da6f7a1..0000000 --- a/tests/filters/dump.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -[ "$#" -gt 0 ] && printf "%s " "$*" -tr '[:lower:]' '[:upper:]' diff --git a/tests/setup.sh b/tests/setup.sh index 8db810f..1d8677a 100755 --- a/tests/setup.sh +++ b/tests/setup.sh @@ -15,56 +15,13 @@ # run_test 'repo index' 'cgit_url "/" | tidy -e' # run_test 'repo summary' 'cgit_url "/foo" | tidy -e' -# We don't want to run Git commands through Valgrind, so we filter out the -# --valgrind option here and handle it ourselves. We copy the arguments -# assuming that none contain a newline, although other whitespace is -# preserved. -LF=' -' -test_argv= - -while test $# != 0 -do - case "$1" in - --va|--val|--valg|--valgr|--valgri|--valgrin|--valgrind) - cgit_valgrind=t - test_argv="$test_argv${LF}--verbose" - ;; - *) - test_argv="$test_argv$LF$1" - ;; - esac - shift -done - -OLDIFS=$IFS -IFS=$LF -set -- $test_argv -IFS=$OLDIFS - : ${TEST_DIRECTORY=$(pwd)/../git/t} : ${TEST_OUTPUT_DIRECTORY=$(pwd)} TEST_NO_CREATE_REPO=YesPlease . "$TEST_DIRECTORY"/test-lib.sh # Prepend the directory containing cgit to PATH. -if test -n "$cgit_valgrind" -then - GIT_VALGRIND="$TEST_DIRECTORY/valgrind" - CGIT_VALGRIND=$(cd ../valgrind && pwd) - PATH="$CGIT_VALGRIND/bin:$PATH" - export GIT_VALGRIND CGIT_VALGRIND -else - PATH="$(pwd)/../..:$PATH" -fi - -FILTER_DIRECTORY=$(cd ../filters && pwd) - -if cgit --version | grep -F -q "[+] Lua scripting"; then - export CGIT_HAS_LUA=1 -else - export CGIT_HAS_LUA=0 -fi +PATH="$(pwd)/../..:$PATH" mkrepo() { name=$1 @@ -80,17 +37,13 @@ mkrepo() { git commit -m "commit $n" n=$(expr $n + 1) done - case "$3" in - testplus) + if test "$3" = "testplus" + then echo "hello" >a+b git add a+b git commit -m "add a+b" git branch "1+2" - ;; - commit-graph) - git commit-graph write - ;; - esac + fi ) } @@ -99,23 +52,21 @@ setup_repos() rm -rf cache mkdir -p cache mkrepo repos/foo 5 >/dev/null - mkrepo repos/bar 50 commit-graph >/dev/null + mkrepo repos/bar 50 >/dev/null mkrepo repos/foo+bar 10 testplus >/dev/null mkrepo "repos/with space" 2 >/dev/null - mkrepo repos/filter 5 testplus >/dev/null cat >cgitrc <<EOF virtual-root=/ cache-root=$PWD/cache cache-size=1021 -snapshots=tar.gz tar.bz tar.lz tar.xz tar.zst zip +snapshots=tar.gz tar.bz zip enable-log-filecount=1 enable-log-linecount=1 summary-log=5 summary-branches=5 summary-tags=5 clone-url=git://example.org/\$CGIT_REPO_URL.git -enable-filter-overrides=1 repo.url=foo repo.path=$PWD/repos/foo/.git @@ -134,29 +85,7 @@ repo.desc=the foo+bar repo repo.url=with space repo.path=$PWD/repos/with space/.git repo.desc=spaced repo - -repo.url=filter-exec -repo.path=$PWD/repos/filter/.git -repo.desc=filtered repo -repo.about-filter=exec:$FILTER_DIRECTORY/dump.sh -repo.commit-filter=exec:$FILTER_DIRECTORY/dump.sh -repo.email-filter=exec:$FILTER_DIRECTORY/dump.sh -repo.source-filter=exec:$FILTER_DIRECTORY/dump.sh -repo.readme=master:a+b -EOF - - if [ $CGIT_HAS_LUA -eq 1 ]; then - cat >>cgitrc <<EOF -repo.url=filter-lua -repo.path=$PWD/repos/filter/.git -repo.desc=filtered repo -repo.about-filter=lua:$FILTER_DIRECTORY/dump.lua -repo.commit-filter=lua:$FILTER_DIRECTORY/dump.lua -repo.email-filter=lua:$FILTER_DIRECTORY/dump.lua -repo.source-filter=lua:$FILTER_DIRECTORY/dump.lua -repo.readme=master:a+b EOF - fi } cgit_query() @@ -169,7 +98,7 @@ cgit_url() CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit } -strip_headers() { +strip_headers () { while read -r line do test -z "$line" && break diff --git a/tests/t0001-validate-git-versions.sh b/tests/t0001-validate-git-versions.sh index dd84fe3..a65b35e 100755 --- a/tests/t0001-validate-git-versions.sh +++ b/tests/t0001-validate-git-versions.sh @@ -1,9 +1,5 @@ #!/bin/sh -if [ "${CGIT_TEST_NO_GIT_VERSION}" = "YesPlease" ]; then - exit 0 -fi - test_description='Check Git version is correct' CGIT_TEST_NO_CREATE_REPOS=YesPlease . ./setup.sh @@ -33,11 +29,11 @@ test_expect_success 'test submodule version matches Makefile' ' else ( cd ../.. && - sm_oid=$(git ls-files --stage -- git | + sm_sha1=$(git ls-files --stage -- git | sed -e "s/^[0-9]* \\([0-9a-f]*\\) [0-9] .*$/\\1/") && cd git && - git describe --match "v[0-9]*" $sm_oid - ) | sed -e "s/^v//" -e "s/-/./" >sm_version && + git describe --match "v[0-9]*" $sm_sha1 + ) | sed -e "s/^v//" >sm_version && test_cmp sm_version makefile_version fi ' diff --git a/tests/t0104-tree.sh b/tests/t0104-tree.sh index 2e140f5..100b026 100755 --- a/tests/t0104-tree.sh +++ b/tests/t0104-tree.sh @@ -10,11 +10,11 @@ test_expect_success 'find file-50' 'grep "file-50" tmp' test_expect_success 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >tmp' test_expect_success 'find line 1' ' - grep "<a id=.n1. href=.#n1.>1</a>" tmp + grep "<a class=.no. id=.n1. name=.n1. href=.#n1.>1</a>" tmp ' test_expect_success 'no line 2' ' - ! grep "<a id=.n2. href=.#n2.>2</a>" tmp + ! grep "<a class=.no. id=.n2. name=.n2. href=.#n2.>2</a>" tmp ' test_expect_success 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >tmp' diff --git a/tests/t0105-commit.sh b/tests/t0105-commit.sh index 1a12ee3..9cdf55c 100755 --- a/tests/t0105-commit.sh +++ b/tests/t0105-commit.sh @@ -25,7 +25,7 @@ test_expect_success 'get root commit' ' ' test_expect_success 'root commit contains diffstat' ' - grep "<a href=./foo/diff/file-1.id=[0-9a-f]\{40,64\}.>file-1</a>" tmp + grep "<a href=./foo/diff/file-1.id=[0-9a-f]\{40\}.>file-1</a>" tmp ' test_expect_success 'root commit contains diff' ' diff --git a/tests/t0106-diff.sh b/tests/t0106-diff.sh index e4751e9..82b645e 100755 --- a/tests/t0106-diff.sh +++ b/tests/t0106-diff.sh @@ -16,65 +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 '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_done diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index 0811ec4..6cf7aaa 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' ' @@ -38,129 +38,6 @@ test_expect_success 'verify untarred file-5' ' test_line_count = 1 master/file-5 ' -if test -n "$(which lzip 2>/dev/null)"; then - test_set_prereq LZIP -else - say 'Skipping LZIP validation tests: lzip not found' -fi - -test_expect_success LZIP 'get foo/snapshot/master.tar.lz' ' - cgit_url "foo/snapshot/master.tar.lz" >tmp -' - -test_expect_success LZIP 'check html headers' ' - head -n 1 tmp | - grep "Content-Type: application/x-lzip" && - - head -n 2 tmp | - grep "Content-Disposition: inline; filename=.master.tar.lz." -' - -test_expect_success LZIP 'strip off the header lines' ' - strip_headers <tmp >master.tar.lz -' - -test_expect_success LZIP 'verify lzip format' ' - lzip --test master.tar.lz -' - -test_expect_success LZIP 'untar' ' - rm -rf master && - lzip -dc master.tar.lz | tar -xf - -' - -test_expect_success LZIP 'count files' ' - ls master/ >output && - test_line_count = 5 output -' - -test_expect_success LZIP 'verify untarred file-5' ' - grep "^5$" master/file-5 && - test_line_count = 1 master/file-5 -' - -if test -n "$(which xz 2>/dev/null)"; then - test_set_prereq XZ -else - say 'Skipping XZ validation tests: xz not found' -fi - -test_expect_success XZ 'get foo/snapshot/master.tar.xz' ' - cgit_url "foo/snapshot/master.tar.xz" >tmp -' - -test_expect_success XZ 'check html headers' ' - head -n 1 tmp | - grep "Content-Type: application/x-xz" && - - head -n 2 tmp | - grep "Content-Disposition: inline; filename=.master.tar.xz." -' - -test_expect_success XZ 'strip off the header lines' ' - strip_headers <tmp >master.tar.xz -' - -test_expect_success XZ 'verify xz format' ' - xz --test master.tar.xz -' - -test_expect_success XZ 'untar' ' - rm -rf master && - xz -dc master.tar.xz | tar -xf - -' - -test_expect_success XZ 'count files' ' - ls master/ >output && - test_line_count = 5 output -' - -test_expect_success XZ 'verify untarred file-5' ' - grep "^5$" master/file-5 && - test_line_count = 1 master/file-5 -' - -if test -n "$(which zstd 2>/dev/null)"; then - test_set_prereq ZSTD -else - say 'Skipping ZSTD validation tests: zstd not found' -fi - -test_expect_success ZSTD 'get foo/snapshot/master.tar.zst' ' - cgit_url "foo/snapshot/master.tar.zst" >tmp -' - -test_expect_success ZSTD 'check html headers' ' - head -n 1 tmp | - grep "Content-Type: application/x-zstd" && - - head -n 2 tmp | - grep "Content-Disposition: inline; filename=.master.tar.zst." -' - -test_expect_success ZSTD 'strip off the header lines' ' - strip_headers <tmp >master.tar.zst -' - -test_expect_success ZSTD 'verify zstd format' ' - zstd --test master.tar.zst -' - -test_expect_success ZSTD 'untar' ' - rm -rf master && - zstd -dc master.tar.zst | tar -xf - -' - -test_expect_success ZSTD 'count files' ' - ls master/ >output && - test_line_count = 5 output -' - -test_expect_success ZSTD 'verify untarred file-5' ' - grep "^5$" master/file-5 && - test_line_count = 1 master/file-5 -' - test_expect_success 'get foo/snapshot/master.zip' ' cgit_url "foo/snapshot/master.zip" >tmp ' diff --git a/tests/t0108-patch.sh b/tests/t0108-patch.sh index 013d680..3b5bae4 100755 --- a/tests/t0108-patch.sh +++ b/tests/t0108-patch.sh @@ -20,18 +20,11 @@ test_expect_success 'find `Subject:` line' ' ' test_expect_success 'find `cgit` signature' ' - tail -2 tmp | head -1 | grep "^cgit" -' - -test_expect_success 'compare with output of git-format-patch(1)' ' - CGIT_VERSION=$(sed -n "s/CGIT_VERSION = //p" ../../VERSION) && - git --git-dir="$PWD/repos/foo/.git" format-patch --subject-prefix="" --signature="cgit $CGIT_VERSION" --stdout HEAD^ >tmp2 && - strip_headers <tmp >tmp_ && - test_cmp tmp_ tmp2 + tail -1 tmp | grep "^cgit" ' test_expect_success 'find initial commit' ' - root=$(git --git-dir="$PWD/repos/foo/.git" rev-list --max-parents=0 HEAD) + root=$(git --git-dir="$PWD/repos/foo/.git" rev-list HEAD | tail -1) ' test_expect_success 'generate patch for initial commit' ' @@ -39,24 +32,7 @@ test_expect_success 'generate patch for initial commit' ' ' test_expect_success 'find `cgit` signature' ' - tail -2 tmp | head -1 | grep "^cgit" -' - -test_expect_success 'generate patches for multiple commits' ' - id=$(git --git-dir="$PWD/repos/foo/.git" rev-parse HEAD) && - id2=$(git --git-dir="$PWD/repos/foo/.git" rev-parse HEAD~3) && - cgit_query "url=foo/patch&id=$id&id2=$id2" >tmp -' - -test_expect_success 'find `cgit` signature' ' - tail -2 tmp | head -1 | grep "^cgit" -' - -test_expect_success 'compare with output of git-format-patch(1)' ' - CGIT_VERSION=$(sed -n "s/CGIT_VERSION = //p" ../../VERSION) && - git --git-dir="$PWD/repos/foo/.git" format-patch -N --subject-prefix="" --signature="cgit $CGIT_VERSION" --stdout HEAD~3..HEAD >tmp2 && - strip_headers <tmp >tmp_ && - test_cmp tmp_ tmp2 + tail -1 tmp | grep "^cgit" ' test_done diff --git a/tests/t0109-gitconfig.sh b/tests/t0109-gitconfig.sh index 189ef28..5a84258 100755 --- a/tests/t0109-gitconfig.sh +++ b/tests/t0109-gitconfig.sh @@ -9,23 +9,17 @@ test -n "$(which strace 2>/dev/null)" || { exit } -strace true 2>/dev/null || { - skip_all='Skipping access validation tests: strace not functional' - test_done - exit -} - test_no_home_access () { - non_existent_path="/path/to/some/place/that/does/not/possibly/exist" - while test -d "$non_existent_path"; do - non_existent_path="$non_existent_path/$(date +%N)" + non_existant_path="/path/to/some/place/that/does/not/possibly/exist" + while test -d "$non_existant_path"; do + non_existant_path="$non_existant_path/$(date +%N)" done && strace \ - -E HOME="$non_existent_path" \ + -E HOME="$non_existant_path" \ -E CGIT_CONFIG="$PWD/cgitrc" \ -E QUERY_STRING="url=$1" \ -e access -f -o strace.out cgit && - ! grep "$non_existent_path" strace.out + test_must_fail grep "$non_existant_path" strace.out } test_no_home_access_success() { diff --git a/tests/t0110-rawdiff.sh b/tests/t0110-rawdiff.sh deleted file mode 100755 index 66fa7d5..0000000 --- a/tests/t0110-rawdiff.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -test_description='Check content on rawdiff page' -. ./setup.sh - -test_expect_success 'generate foo/rawdiff' ' - cgit_query "url=foo/rawdiff" >tmp -' - -test_expect_success 'compare with output of git-diff(1)' ' - git --git-dir="$PWD/repos/foo/.git" diff HEAD^.. >tmp2 && - sed "1,4d" tmp >tmp_ && - cmp tmp_ tmp2 -' - -test_expect_success 'find initial commit' ' - root=$(git --git-dir="$PWD/repos/foo/.git" rev-list --max-parents=0 HEAD) -' - -test_expect_success 'generate diff for initial commit' ' - cgit_query "url=foo/rawdiff&id=$root" >tmp -' - -test_expect_success 'compare with output of git-diff-tree(1)' ' - git --git-dir="$PWD/repos/foo/.git" diff-tree -p --no-commit-id --root "$root" >tmp2 && - sed "1,4d" tmp >tmp_ && - cmp tmp_ tmp2 -' - -test_expect_success 'generate diff for multiple commits' ' - id=$(git --git-dir="$PWD/repos/foo/.git" rev-parse HEAD) && - id2=$(git --git-dir="$PWD/repos/foo/.git" rev-parse HEAD~3) && - cgit_query "url=foo/rawdiff&id=$id&id2=$id2" >tmp -' - -test_expect_success 'compare with output of git-diff(1)' ' - git --git-dir="$PWD/repos/foo/.git" diff HEAD~3..HEAD >tmp2 && - sed "1,4d" tmp >tmp_ && - cmp tmp_ tmp2 -' - -test_done diff --git a/tests/t0111-filter.sh b/tests/t0111-filter.sh deleted file mode 100755 index 2fdc366..0000000 --- a/tests/t0111-filter.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -test_description='Check filtered content' -. ./setup.sh - -prefixes="exec" -if [ $CGIT_HAS_LUA -eq 1 ]; then - prefixes="$prefixes lua" -fi - -for prefix in $prefixes -do - test_expect_success "generate filter-$prefix/tree/a%2bb" " - cgit_url 'filter-$prefix/tree/a%2bb' >tmp - " - - test_expect_success "check whether the $prefix source filter works" ' - grep "<code>a+b HELLO$" tmp - ' - - test_expect_success "generate filter-$prefix/about/" " - cgit_url 'filter-$prefix/about/' >tmp - " - - test_expect_success "check whether the $prefix about filter works" ' - grep "<div id='"'"'summary'"'"'>a+b HELLO$" tmp - ' - - test_expect_success "generate filter-$prefix/commit/" " - cgit_url 'filter-$prefix/commit/' >tmp - " - - test_expect_success "check whether the $prefix commit filter works" ' - grep "<div class='"'"'commit-subject'"'"'>ADD A+B" tmp - ' - - test_expect_success "check whether the $prefix email filter works for authors" ' - grep "<author@example.com> commit A U THOR <AUTHOR@EXAMPLE.COM>" tmp - ' - - test_expect_success "check whether the $prefix email filter works for committers" ' - grep "<committer@example.com> commit C O MITTER <COMMITTER@EXAMPLE.COM>" tmp - ' -done - -test_done 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 diff --git a/tests/valgrind/bin/cgit b/tests/valgrind/bin/cgit deleted file mode 100755 index dcdfbe5..0000000 --- a/tests/valgrind/bin/cgit +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# Note that we currently use Git's suppression file and there are variables -# $GIT_VALGRIND and $CGIT_VALGRIND which point to different places. -exec valgrind -q --error-exitcode=126 \ - --suppressions="$GIT_VALGRIND/default.supp" \ - --gen-suppressions=all \ - --leak-check=no \ - --track-origins=yes \ - --log-fd=4 \ - --input-fd=4 \ - "$CGIT_VALGRIND/../../cgit" "$@" |