# run_test 'repo index' 'cgit_url "/" | tidy -e'
# run_test 'repo summary' 'cgit_url "/foo" | tidy -e'
+: ${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.
+PATH="$(pwd)/../..:$PATH"
mkrepo() {
name=$1
count=$2
- dir=$PWD
- test -d $name && return
- printf "Creating testrepo %s\n" $name
- mkdir -p $name
- cd $name
- git init
- for ((n=1; n<=count; n++))
- do
- echo $n >file-$n
- git add file-$n
- git commit -m "commit $n"
- done
- cd $dir
+ 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 trash/cache
- mkdir -p trash/cache
- mkrepo trash/repos/foo 5 >/dev/null
- mkrepo trash/repos/bar 50 >/dev/null
- cat >trash/cgitrc <<EOF
+ 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
+ cat >cgitrc <<EOF
virtual-root=/
-cache-root=$PWD/trash/cache
+cache-root=$PWD/cache
-nocache=0
+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
repo.url=foo
-repo.path=$PWD/trash/repos/foo/.git
-repo.desc=the foo repo
+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/trash/repos/bar/.git
+repo.path=$PWD/repos/bar/.git
repo.desc=the bar repo
-EOF
-}
-
-prepare_tests()
-{
- setup_repos
- test_count=0
- test_failed=0
- echo "$@" "($0)"
-}
-tests_done()
-{
- printf "\n"
- if test $test_failed -gt 0
- then
- printf "[%s of %s tests failed]\n" $test_failed $test_count
- false
- fi
-}
+repo.url=foo+bar
+repo.path=$PWD/repos/foo+bar/.git
+repo.desc=the foo+bar repo
-run_test()
-{
- desc=$1
- script=$2
- ((test_count++))
- eval "$2" >test-output.log
- res=$?
- if test $res = 0
- then
- printf " %s: ok - %s\n" $test_count "$desc"
- else
- ((test_failed++))
- printf " %s: fail - %s\n" $test_count "$desc"
- fi
+repo.url=with space
+repo.path=$PWD/repos/with space/.git
+repo.desc=spaced repo
+EOF
}
cgit_query()
{
- CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="$1" "$PWD/../cgit"
+ CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="$1" cgit
}
cgit_url()
{
- CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="url=$1" "$PWD/../cgit"
+ CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit
}
+test -z "$CGIT_TEST_NO_CREATE_REPOS" && setup_repos