about summary refs log tree commit diff
path: root/tests/setup.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtests/setup.sh130
1 files changed, 41 insertions, 89 deletions
diff --git a/tests/setup.sh b/tests/setup.sh
index e3c6c17..81e7220 100755
--- a/tests/setup.sh
+++ b/tests/setup.sh
@@ -15,46 +15,48 @@
 # run_test 'repo index' 'cgit_url "/" | tidy -e'
 # run_test 'repo summary' 'cgit_url "/foo" | tidy -e'
 
-unset CDPATH
+: ${TEST_DIRECTORY=$(pwd)/../git/t}
+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
-	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
-	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
-	mkrepo trash/repos/foo+bar 10 testplus >/dev/null
-	mkrepo "trash/repos/with space" 2 >/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
 
 cache-size=1021
 snapshots=tar.gz tar.bz zip
@@ -66,83 +68,33 @@ summary-tags=5
 clone-url=git://example.org/\$CGIT_REPO_URL.git
 
 repo.url=foo
-repo.path=$PWD/trash/repos/foo/.git
+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
 
 repo.url=foo+bar
-repo.path=$PWD/trash/repos/foo+bar/.git
+repo.path=$PWD/repos/foo+bar/.git
 repo.desc=the foo+bar repo
 
 repo.url=with space
-repo.path=$PWD/trash/repos/with space/.git
+repo.path=$PWD/repos/with space/.git
 repo.desc=spaced repo
 EOF
 }
 
-prepare_tests()
-{
-	setup_repos
-	rm -f test-output.log 2>/dev/null
-	test_count=0
-	test_failed=0
-	echo "[$0]" "$@" >test-output.log
-	echo "$@" "($0)"
-}
-
-tests_done()
-{
-	printf "\n"
-	if test $test_failed -gt 0
-	then
-		printf "test: *** %s failure(s), logfile=%s\n" \
-			$test_failed "$(pwd)/test-output.log"
-		false
-	fi
-}
-
-run_test()
-{
-	bug=0
-	if test "$1" = "BUG"
-	then
-		bug=1
-		shift
-	fi
-	desc=$1
-	script=$2
-	test_count=$(expr $test_count + 1)
-	printf "\ntest %d: name='%s'\n" $test_count "$desc" >>test-output.log
-	printf "test %d: eval='%s'\n" $test_count "$2" >>test-output.log
-	eval "$2" >>test-output.log 2>>test-output.log
-	res=$?
-	printf "test %d: exitcode=%d\n" $test_count $res >>test-output.log
-	if test $res = 0 -a $bug = 0
-	then
-		printf " %2d) %-60s [ok]\n" $test_count "$desc"
-	elif test $res = 0 -a $bug = 1
-	then
-		printf " %2d) %-60s [BUG FIXED]\n" $test_count "$desc"
-	elif test $bug = 1
-	then
-		printf " %2d) %-60s [KNOWN BUG]\n" $test_count "$desc"
-	else
-		test_failed=$(expr $test_failed + 1)
-		printf " %2d) %-60s [failed]\n" $test_count "$desc"
-	fi
-}
-
 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