aboutsummaryrefslogtreecommitdiff
path: root/tests
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/.gitignore2
-rw-r--r--tests/Makefile17
-rw-r--r--tests/filters/dump.lua17
-rwxr-xr-xtests/filters/dump.sh4
-rwxr-xr-xtests/setup.sh180
-rwxr-xr-xtests/t0001-validate-git-versions.sh45
-rwxr-xr-xtests/t0010-validate-html.sh40
-rwxr-xr-xtests/t0020-validate-cache.sh78
-rwxr-xr-xtests/t0101-index.sh17
-rwxr-xr-xtests/t0102-summary.sh25
-rwxr-xr-xtests/t0103-log.sh24
-rwxr-xr-xtests/t0104-tree.sh32
-rwxr-xr-xtests/t0105-commit.sh36
-rwxr-xr-xtests/t0106-diff.sh19
-rwxr-xr-xtests/t0107-snapshot.sh205
-rwxr-xr-xtests/t0108-patch.sh62
-rwxr-xr-xtests/t0109-gitconfig.sh48
-rwxr-xr-xtests/t0110-rawdiff.sh42
-rwxr-xr-xtests/t0111-filter.sh46
-rw-r--r--tests/t0112-ci.sh127
-rw-r--r--tests/t0113-ci-lua.sh78
-rw-r--r--tests/t0114-broken-repo.sh71
-rwxr-xr-xtests/valgrind/bin/cgit12
23 files changed, 0 insertions, 1227 deletions
diff --git a/tests/.gitignore b/tests/.gitignore
deleted file mode 100644
index 3fd2e96..0000000
--- a/tests/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-trash\ directory.t*
-test-results
diff --git a/tests/Makefile b/tests/Makefile
deleted file mode 100644
index 65e1117..0000000
--- a/tests/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-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
-
-.PHONY: $(T) clean
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
deleted file mode 100755
index 8db810f..0000000
--- a/tests/setup.sh
+++ /dev/null
@@ -1,180 +0,0 @@
-# This file should be sourced by all test-scripts
-#
-# Main functions:
-# prepare_tests(description) - setup for testing, i.e. create repos+config
-# run_test(description, script) - run one test, i.e. eval script
-#
-# Helper functions
-# cgit_query(querystring) - call cgit with the specified querystring
-# cgit_url(url) - call cgit with the specified virtual url
-#
-# Example script:
-#
-# . setup.sh
-# prepare_tests "html validation"
-# 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
-
-mkrepo() {
- name=$1
- count=$2
- test_create_repo "$name"
- (
- cd "$name"
- n=1
- while test $n -le $count
- do
- echo $n >file-$n
- git add file-$n
- git commit -m "commit $n"
- n=$(expr $n + 1)
- done
- case "$3" in
- testplus)
- 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
- )
-}
-
-setup_repos()
-{
- rm -rf cache
- mkdir -p cache
- mkrepo repos/foo 5 >/dev/null
- mkrepo repos/bar 50 commit-graph >/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
-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
-# Do not specify a description for this repo, as it then will be assigned
-# the constant value "[no description]" (which actually used to cause a
-# segfault).
-
-repo.url=bar
-repo.path=$PWD/repos/bar/.git
-repo.desc=the bar repo
-
-repo.url=foo+bar
-repo.path=$PWD/repos/foo+bar/.git
-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()
-{
- CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="$1" cgit
-}
-
-cgit_url()
-{
- CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit
-}
-
-strip_headers() {
- while read -r line
- do
- test -z "$line" && break
- done
- cat
-}
-
-test -z "$CGIT_TEST_NO_CREATE_REPOS" && setup_repos
diff --git a/tests/t0001-validate-git-versions.sh b/tests/t0001-validate-git-versions.sh
deleted file mode 100755
index dd84fe3..0000000
--- a/tests/t0001-validate-git-versions.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/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
-
-test_expect_success 'extract Git version from Makefile' '
- sed -n -e "/^GIT_VER[ ]*=/ {
- s/^GIT_VER[ ]*=[ ]*//
- p
- }" ../../Makefile >makefile_version
-'
-
-# Note that Git's GIT-VERSION-GEN script applies "s/-/./g" to the version
-# string to produce the internal version in the GIT-VERSION-FILE, so we
-# must apply the same transformation to the version in the Makefile before
-# comparing them.
-test_expect_success 'test Git version matches Makefile' '
- ( cat ../../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) |
- sed -e "s/GIT_VERSION[ ]*=[ ]*//" -e "s/\\.dirty$//" >git_version &&
- sed -e "s/-/./g" makefile_version >makefile_git_version &&
- test_cmp git_version makefile_git_version
-'
-
-test_expect_success 'test submodule version matches Makefile' '
- if ! test -e ../../git/.git
- then
- echo "git/ is not a Git repository" >&2
- else
- (
- cd ../.. &&
- sm_oid=$(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 &&
- test_cmp sm_version makefile_version
- fi
-'
-
-test_done
diff --git a/tests/t0010-validate-html.sh b/tests/t0010-validate-html.sh
deleted file mode 100755
index ca08d69..0000000
--- a/tests/t0010-validate-html.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-
-test_description='Validate html with tidy'
-. ./setup.sh
-
-
-test_url()
-{
- tidy_opt="-eq"
- test -z "$NO_TIDY_WARNINGS" || tidy_opt+=" --show-warnings no"
- cgit_url "$1" >tidy-$test_count.tmp || return
- sed -e "1,4d" tidy-$test_count.tmp >tidy-$test_count || return
- "$tidy" $tidy_opt tidy-$test_count
- rc=$?
-
- # tidy returns with exitcode 1 on warnings, 2 on error
- if test $rc = 2
- then
- false
- else
- :
- fi
-}
-
-tidy=`which tidy 2>/dev/null`
-test -n "$tidy" || {
- skip_all='Skipping html validation tests: tidy not found'
- test_done
- exit
-}
-
-test_expect_success 'index page' 'test_url ""'
-test_expect_success 'foo' 'test_url "foo"'
-test_expect_success 'foo/log' 'test_url "foo/log"'
-test_expect_success 'foo/tree' 'test_url "foo/tree"'
-test_expect_success 'foo/tree/file-1' 'test_url "foo/tree/file-1"'
-test_expect_success 'foo/commit' 'test_url "foo/commit"'
-test_expect_success 'foo/diff' 'test_url "foo/diff"'
-
-test_done
diff --git a/tests/t0020-validate-cache.sh b/tests/t0020-validate-cache.sh
deleted file mode 100755
index 657765d..0000000
--- a/tests/t0020-validate-cache.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/sh
-
-test_description='Validate cache'
-. ./setup.sh
-
-test_expect_success 'verify cache-size=0' '
-
- rm -f cache/* &&
- sed -e "s/cache-size=1021$/cache-size=0/" cgitrc >cgitrc.tmp &&
- mv -f cgitrc.tmp cgitrc &&
- cgit_url "" &&
- cgit_url "foo" &&
- cgit_url "foo/refs" &&
- cgit_url "foo/tree" &&
- cgit_url "foo/log" &&
- cgit_url "foo/diff" &&
- cgit_url "foo/patch" &&
- cgit_url "bar" &&
- cgit_url "bar/refs" &&
- cgit_url "bar/tree" &&
- cgit_url "bar/log" &&
- cgit_url "bar/diff" &&
- cgit_url "bar/patch" &&
- ls cache >output &&
- test_line_count = 0 output
-'
-
-test_expect_success 'verify cache-size=1' '
-
- rm -f cache/* &&
- sed -e "s/cache-size=0$/cache-size=1/" cgitrc >cgitrc.tmp &&
- mv -f cgitrc.tmp cgitrc &&
- cgit_url "" &&
- cgit_url "foo" &&
- cgit_url "foo/refs" &&
- cgit_url "foo/tree" &&
- cgit_url "foo/log" &&
- cgit_url "foo/diff" &&
- cgit_url "foo/patch" &&
- cgit_url "bar" &&
- cgit_url "bar/refs" &&
- cgit_url "bar/tree" &&
- cgit_url "bar/log" &&
- cgit_url "bar/diff" &&
- cgit_url "bar/patch" &&
- ls cache >output &&
- test_line_count = 1 output
-'
-
-test_expect_success 'verify cache-size=1021' '
-
- rm -f cache/* &&
- sed -e "s/cache-size=1$/cache-size=1021/" cgitrc >cgitrc.tmp &&
- mv -f cgitrc.tmp cgitrc &&
- cgit_url "" &&
- cgit_url "foo" &&
- cgit_url "foo/refs" &&
- cgit_url "foo/tree" &&
- cgit_url "foo/log" &&
- cgit_url "foo/diff" &&
- cgit_url "foo/patch" &&
- cgit_url "bar" &&
- cgit_url "bar/refs" &&
- cgit_url "bar/tree" &&
- cgit_url "bar/log" &&
- cgit_url "bar/diff" &&
- cgit_url "bar/patch" &&
- ls cache >output &&
- test_line_count = 13 output &&
- cgit_url "foo/ls_cache" >output.full &&
- strip_headers <output.full >output &&
- test_line_count = 13 output &&
- # Check that ls_cache output is cached correctly
- cgit_url "foo/ls_cache" >output.second &&
- test_cmp output.full output.second
-'
-
-test_done
diff --git a/tests/t0101-index.sh b/tests/t0101-index.sh
deleted file mode 100755
index 82ef9b0..0000000
--- a/tests/t0101-index.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-test_description='Check content on index page'
-. ./setup.sh
-
-test_expect_success 'generate index page' 'cgit_url "" >tmp'
-test_expect_success 'find foo repo' 'grep "foo" tmp'
-test_expect_success 'find foo description' 'grep "\[no description\]" tmp'
-test_expect_success 'find bar repo' 'grep "bar" tmp'
-test_expect_success 'find bar description' 'grep "the bar repo" tmp'
-test_expect_success 'find foo+bar repo' 'grep ">foo+bar<" tmp'
-test_expect_success 'verify foo+bar link' 'grep "/foo+bar/" tmp'
-test_expect_success 'verify "with%20space" link' 'grep "/with%20space/" tmp'
-test_expect_success 'no tree-link' '! grep "foo/tree" tmp'
-test_expect_success 'no log-link' '! grep "foo/log" tmp'
-
-test_done
diff --git a/tests/t0102-summary.sh b/tests/t0102-summary.sh
deleted file mode 100755
index b8864cb..0000000
--- a/tests/t0102-summary.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-test_description='Check content on summary page'
-. ./setup.sh
-
-test_expect_success 'generate foo summary' 'cgit_url "foo" >tmp'
-test_expect_success 'find commit 1' 'grep "commit 1" tmp'
-test_expect_success 'find commit 5' 'grep "commit 5" tmp'
-test_expect_success 'find branch master' 'grep "master" tmp'
-test_expect_success 'no tags' '! grep "tags" tmp'
-test_expect_success 'clone-url expanded correctly' '
- grep "git://example.org/foo.git" tmp
-'
-
-test_expect_success 'generate bar summary' 'cgit_url "bar" >tmp'
-test_expect_success 'no commit 45' '! grep "commit 45" tmp'
-test_expect_success 'find commit 46' 'grep "commit 46" tmp'
-test_expect_success 'find commit 50' 'grep "commit 50" tmp'
-test_expect_success 'find branch master' 'grep "master" tmp'
-test_expect_success 'no tags' '! grep "tags" tmp'
-test_expect_success 'clone-url expanded correctly' '
- grep "git://example.org/bar.git" tmp
-'
-
-test_done
diff --git a/tests/t0103-log.sh b/tests/t0103-log.sh
deleted file mode 100755
index bdf1435..0000000
--- a/tests/t0103-log.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-test_description='Check content on log page'
-. ./setup.sh
-
-test_expect_success 'generate foo/log' 'cgit_url "foo/log" >tmp'
-test_expect_success 'find commit 1' 'grep "commit 1" tmp'
-test_expect_success 'find commit 5' 'grep "commit 5" tmp'
-
-test_expect_success 'generate bar/log' 'cgit_url "bar/log" >tmp'
-test_expect_success 'find commit 1' 'grep "commit 1" tmp'
-test_expect_success 'find commit 50' 'grep "commit 50" tmp'
-
-test_expect_success 'generate "with%20space/log?qt=grep&q=commit+1"' '
- cgit_url "with+space/log&qt=grep&q=commit+1" >tmp
-'
-test_expect_success 'find commit 1' 'grep "commit 1" tmp'
-test_expect_success 'find link with %20 in path' 'grep "/with%20space/log/?qt=grep" tmp'
-test_expect_success 'find link with + in arg' 'grep "/log/?qt=grep&amp;q=commit+1" tmp'
-test_expect_success 'no links with space in path' '! grep "href=./with space/" tmp'
-test_expect_success 'no links with space in arg' '! grep "q=commit 1" tmp'
-test_expect_success 'commit 2 is not visible' '! grep "commit 2" tmp'
-
-test_done
diff --git a/tests/t0104-tree.sh b/tests/t0104-tree.sh
deleted file mode 100755
index 2e140f5..0000000
--- a/tests/t0104-tree.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-test_description='Check content on tree page'
-. ./setup.sh
-
-test_expect_success 'generate bar/tree' 'cgit_url "bar/tree" >tmp'
-test_expect_success 'find file-1' 'grep "file-1" tmp'
-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
-'
-
-test_expect_success 'no line 2' '
- ! grep "<a id=.n2. href=.#n2.>2</a>" tmp
-'
-
-test_expect_success 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >tmp'
-
-test_expect_success 'verify a+b link' '
- grep "/foo+bar/tree/a+b" tmp
-'
-
-test_expect_success 'generate foo+bar/tree?h=1+2' 'cgit_url "foo%2bbar/tree&h=1%2b2" >tmp'
-
-test_expect_success 'verify a+b?h=1+2 link' '
- grep "/foo+bar/tree/a+b?h=1%2b2" tmp
-'
-
-test_done
diff --git a/tests/t0105-commit.sh b/tests/t0105-commit.sh
deleted file mode 100755
index 1a12ee3..0000000
--- a/tests/t0105-commit.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-test_description='Check content on commit page'
-. ./setup.sh
-
-test_expect_success 'generate foo/commit' 'cgit_url "foo/commit" >tmp'
-test_expect_success 'find tree link' 'grep "<a href=./foo/tree/.>" tmp'
-test_expect_success 'find parent link' 'grep -E "<a href=./foo/commit/\?id=.+>" tmp'
-
-test_expect_success 'find commit subject' '
- grep "<div class=.commit-subject.>commit 5<" tmp
-'
-
-test_expect_success 'find commit msg' 'grep "<div class=.commit-msg.></div>" tmp'
-test_expect_success 'find diffstat' 'grep "<table summary=.diffstat. class=.diffstat.>" tmp'
-
-test_expect_success 'find diff summary' '
- grep "1 files changed, 1 insertions, 0 deletions" tmp
-'
-
-test_expect_success 'get root commit' '
- root=$(cd repos/foo && git rev-list --reverse HEAD | head -1) &&
- cgit_url "foo/commit&id=$root" >tmp &&
- grep "</html>" tmp
-'
-
-test_expect_success 'root commit contains diffstat' '
- grep "<a href=./foo/diff/file-1.id=[0-9a-f]\{40,64\}.>file-1</a>" tmp
-'
-
-test_expect_success 'root commit contains diff' '
- grep ">diff --git a/file-1 b/file-1<" tmp &&
- grep "<div class=.add.>+1</div>" tmp
-'
-
-test_done
diff --git a/tests/t0106-diff.sh b/tests/t0106-diff.sh
deleted file mode 100755
index 82b645e..0000000
--- a/tests/t0106-diff.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-test_description='Check content on diff page'
-. ./setup.sh
-
-test_expect_success 'generate foo/diff' 'cgit_url "foo/diff" >tmp'
-test_expect_success 'find diff header' 'grep "a/file-5 b/file-5" tmp'
-test_expect_success 'find blob link' 'grep "<a href=./foo/tree/file-5?id=" tmp'
-test_expect_success 'find added file' 'grep "new file mode 100644" tmp'
-
-test_expect_success 'find hunk header' '
- grep "<div class=.hunk.>@@ -0,0 +1 @@</div>" tmp
-'
-
-test_expect_success 'find added line' '
- grep "<div class=.add.>+5</div>" tmp
-'
-
-test_done
diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
deleted file mode 100755
index 0811ec4..0000000
--- a/tests/t0107-snapshot.sh
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/bin/sh
-
-test_description='Verify snapshot'
-. ./setup.sh
-
-test_expect_success 'get foo/snapshot/master.tar.gz' '
- cgit_url "foo/snapshot/master.tar.gz" >tmp
-'
-
-test_expect_success 'check html headers' '
- head -n 1 tmp |
- grep "Content-Type: application/x-gzip" &&
-
- head -n 2 tmp |
- grep "Content-Disposition: inline; filename=.master.tar.gz."
-'
-
-test_expect_success 'strip off the header lines' '
- strip_headers <tmp >master.tar.gz
-'
-
-test_expect_success 'verify gzip format' '
- gunzip --test master.tar.gz
-'
-
-test_expect_success 'untar' '
- rm -rf master &&
- gzip -dc master.tar.gz | tar -xf -
-'
-
-test_expect_success 'count files' '
- ls master/ >output &&
- test_line_count = 5 output
-'
-
-test_expect_success 'verify untarred file-5' '
- grep "^5$" master/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
-'
-
-test_expect_success 'check HTML headers (zip)' '
- head -n 1 tmp |
- grep "Content-Type: application/x-zip" &&
-
- head -n 2 tmp |
- grep "Content-Disposition: inline; filename=.master.zip."
-'
-
-test_expect_success 'strip off the header lines (zip)' '
- strip_headers <tmp >master.zip
-'
-
-if test -n "$(which unzip 2>/dev/null)"; then
- test_set_prereq UNZIP
-else
- say 'Skipping ZIP validation tests: unzip not found'
-fi
-
-test_expect_success UNZIP 'verify zip format' '
- unzip -t master.zip
-'
-
-test_expect_success UNZIP 'unzip' '
- rm -rf master &&
- unzip master.zip
-'
-
-test_expect_success UNZIP 'count files (zip)' '
- ls master/ >output &&
- test_line_count = 5 output
-'
-
-test_expect_success UNZIP 'verify unzipped file-5' '
- grep "^5$" master/file-5 &&
- test_line_count = 1 master/file-5
-'
-
-test_done
diff --git a/tests/t0108-patch.sh b/tests/t0108-patch.sh
deleted file mode 100755
index 013d680..0000000
--- a/tests/t0108-patch.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-
-test_description='Check content on patch page'
-. ./setup.sh
-
-test_expect_success 'generate foo/patch' '
- cgit_query "url=foo/patch" >tmp
-'
-
-test_expect_success 'find `From:` line' '
- grep "^From: " tmp
-'
-
-test_expect_success 'find `Date:` line' '
- grep "^Date: " tmp
-'
-
-test_expect_success 'find `Subject:` line' '
- grep "^Subject: commit 5" 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 --subject-prefix="" --signature="cgit $CGIT_VERSION" --stdout HEAD^ >tmp2 &&
- strip_headers <tmp >tmp_ &&
- test_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 patch for initial commit' '
- cgit_query "url=foo/patch&id=$root" >tmp
-'
-
-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
-'
-
-test_done
diff --git a/tests/t0109-gitconfig.sh b/tests/t0109-gitconfig.sh
deleted file mode 100755
index 189ef28..0000000
--- a/tests/t0109-gitconfig.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-
-test_description='Ensure that git does not access $HOME'
-. ./setup.sh
-
-test -n "$(which strace 2>/dev/null)" || {
- skip_all='Skipping access validation tests: strace not found'
- test_done
- 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)"
- done &&
- strace \
- -E HOME="$non_existent_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_no_home_access_success() {
- test_expect_success "do not access \$HOME: $1" "
- test_no_home_access '$1'
- "
-}
-
-test_no_home_access_success
-test_no_home_access_success foo
-test_no_home_access_success foo/refs
-test_no_home_access_success foo/log
-test_no_home_access_success foo/tree
-test_no_home_access_success foo/tree/file-1
-test_no_home_access_success foo/commit
-test_no_home_access_success foo/diff
-test_no_home_access_success foo/patch
-test_no_home_access_success foo/snapshot/master.tar.gz
-
-test_done
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 &LT;AUTHOR@EXAMPLE.COM&GT;" tmp
- '
-
- test_expect_success "check whether the $prefix email filter works for committers" '
- grep "<committer@example.com> commit C O MITTER &LT;COMMITTER@EXAMPLE.COM&GT;" 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" "$@"