]> git.cameronkatri.com Git - cgit.git/blobdiff - tests/setup.sh
git: update to v2.21.0
[cgit.git] / tests / setup.sh
index 1d8677a783ec5d5b877a8d2a259c88d36b96ff14..7590f04944116e00b8d4728333bf9caa043b6d18 100755 (executable)
 # 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.
-PATH="$(pwd)/../..:$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
@@ -55,6 +98,7 @@ setup_repos()
        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
@@ -67,6 +111,7 @@ 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
@@ -85,7 +130,29 @@ 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()
@@ -98,7 +165,7 @@ cgit_url()
        CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit
 }
 
-strip_headers () {
+strip_headers() {
        while read -r line
        do
                test -z "$line" && break