Lukas Fleischertests/: Add t0111-filter.sh77ac38212 years agoHistory
157 lines · 3.3 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) 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 <<EOFvirtual-root=/cache-root=$PWD/cache cache-size=1021snapshots=tar.gz tar.bz 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=filterrepo.path=$PWD/repos/filter/.gitrepo.desc=filtered reporepo.about-filter=exec:$FILTER_DIRECTORY/capitalize-stdin.shrepo.commit-filter=exec:$FILTER_DIRECTORY/capitalize-stdin.shrepo.email-filter=exec:$FILTER_DIRECTORY/capitalize-argv1.shrepo.source-filter=exec:$FILTER_DIRECTORY/capitalize-stdin.shrepo.readme=master:a+bEOF} 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