tests: add Valgrind support
Now running tests with the "--valgrind" option will run cgit under Valgrind instead of all Git commands. Signed-off-by: John Keeping <john@keeping.me.uk>
This commit is contained in:
parent
382ecf152e
commit
1b1974c45e
@ -15,13 +15,48 @@
|
|||||||
# run_test 'repo index' 'cgit_url "/" | tidy -e'
|
# run_test 'repo index' 'cgit_url "/" | tidy -e'
|
||||||
# run_test 'repo summary' 'cgit_url "/foo" | 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_DIRECTORY=$(pwd)/../git/t}
|
||||||
: ${TEST_OUTPUT_DIRECTORY=$(pwd)}
|
: ${TEST_OUTPUT_DIRECTORY=$(pwd)}
|
||||||
TEST_NO_CREATE_REPO=YesPlease
|
TEST_NO_CREATE_REPO=YesPlease
|
||||||
. "$TEST_DIRECTORY"/test-lib.sh
|
. "$TEST_DIRECTORY"/test-lib.sh
|
||||||
|
|
||||||
# Prepend the directory containing cgit to PATH.
|
# 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
|
||||||
|
|
||||||
mkrepo() {
|
mkrepo() {
|
||||||
name=$1
|
name=$1
|
||||||
|
12
tests/valgrind/bin/cgit
Executable file
12
tests/valgrind/bin/cgit
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Note that we currently use Git's suppression file and there are variables
|
||||||
|
# $GIT_VALGRIND and $CGIT_VALGRIND which point to different places.
|
||||||
|
exec valgrind -q --error-exitcode=126 \
|
||||||
|
--suppressions="$GIT_VALGRIND/default.supp" \
|
||||||
|
--gen-suppressions=all \
|
||||||
|
--leak-check=no \
|
||||||
|
--track-origins=yes \
|
||||||
|
--log-fd=4 \
|
||||||
|
--input-fd=4 \
|
||||||
|
"$CGIT_VALGRIND/../../cgit" "$@"
|
Loading…
Reference in New Issue
Block a user