Christian Hessetests: try with commit-graphadcc4f86 years agoHistory
180 lines · 3.8 KB · Shell
RawDownload
# 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 $# != 0do	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	shiftdone OLDIFS=$IFSIFS=$LFset -- $test_argvIFS=$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_VALGRINDelse	PATH="$(pwd)/../..:$PATH"fi FILTER_DIRECTORY=$(cd ../filters && pwd) if cgit --version | grep -F -q "[+] Lua scripting"; then	export CGIT_HAS_LUA=1else	export CGIT_HAS_LUA=0fi 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 <<EOFvirtual-root=/cache-root=$PWD/cache cache-size=1021snapshots=tar.gz tar.bz tar.lz tar.xz tar.zst zipenable-log-filecount=1enable-log-linecount=1summary-log=5summary-branches=5summary-tags=5clone-url=git://example.org/\$CGIT_REPO_URL.gitenable-filter-overrides=1 repo.url=foorepo.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=barrepo.path=$PWD/repos/bar/.gitrepo.desc=the bar repo repo.url=foo+barrepo.path=$PWD/repos/foo+bar/.gitrepo.desc=the foo+bar repo repo.url=with spacerepo.path=$PWD/repos/with space/.gitrepo.desc=spaced repo repo.url=filter-execrepo.path=$PWD/repos/filter/.gitrepo.desc=filtered reporepo.about-filter=exec:$FILTER_DIRECTORY/dump.shrepo.commit-filter=exec:$FILTER_DIRECTORY/dump.shrepo.email-filter=exec:$FILTER_DIRECTORY/dump.shrepo.source-filter=exec:$FILTER_DIRECTORY/dump.shrepo.readme=master:a+bEOF 	if [ $CGIT_HAS_LUA -eq 1 ]; then		cat >>cgitrc <<EOFrepo.url=filter-luarepo.path=$PWD/repos/filter/.gitrepo.desc=filtered reporepo.about-filter=lua:$FILTER_DIRECTORY/dump.luarepo.commit-filter=lua:$FILTER_DIRECTORY/dump.luarepo.email-filter=lua:$FILTER_DIRECTORY/dump.luarepo.source-filter=lua:$FILTER_DIRECTORY/dump.luarepo.readme=master:a+bEOF	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