merge(third_party/cgit): Import at master of 2020-01-11
Imported commit '723dc8fbcb' as
'third_party/cgit'.
This commit is contained in:
commit
5a069d5888
102 changed files with 15632 additions and 0 deletions
176
third_party/cgit/tests/setup.sh
vendored
Executable file
176
third_party/cgit/tests/setup.sh
vendored
Executable file
|
|
@ -0,0 +1,176 @@
|
|||
# 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
|
||||
if test "$3" = "testplus"
|
||||
then
|
||||
echo "hello" >a+b
|
||||
git add a+b
|
||||
git commit -m "add a+b"
|
||||
git branch "1+2"
|
||||
fi
|
||||
)
|
||||
}
|
||||
|
||||
setup_repos()
|
||||
{
|
||||
rm -rf cache
|
||||
mkdir -p cache
|
||||
mkrepo repos/foo 5 >/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 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue