This patch can be used to generate a report showing what C source lines are executed when the testsuite is run. gcc is required. After applying this patch do: $ ./configure --enable-gcov $ make check $ make gcov Now look at gcov-report.html and the annotated source files it links to. See also gcov(1), gcc(1). Index: Makefile.in =================================================================== --- Makefile.in (revision 8987) +++ Makefile.in (working copy) @@ -326,6 +326,36 @@ @$(MAKE) check \ BASE_URL=svn+ssh://localhost`pwd`/subversion/tests/clients/cmdline +gcov: + @echo -n "Collecting source files ..." ; \ + FILES=`find subversion/ -path '*/tests/*' -prune -o \ + -name '*.c' -print`; \ + echo "Done." ; \ + echo "Coverage report Subversion r`svnversion .`
" \ + echo "`date`
" \ + > gcov-report.html; \ + echo `uname -o -r -m` "
" \ + >> gcov-report.html; \ + (for file in $$FILES; do \ + echo $$file 1>&2 ; \ + base=`echo $$file | sed -e 's/.c$$//' `; \ + if [ -f "$$base.da" ] ; then \ + obj=$$base.o; \ + else \ + obj=`dirname $$base`/.libs/`basename $$base`.o; \ + fi; \ + stats=`gcov --preserve-paths \ + --object-directory=$$obj \ + $$file | sed -e "s/Creating.*//" | \ + sed -s "s|$$PWD/||"` \ + mangled=`echo $$base | tr '/' '#'`; \ + fixed=`echo $$base | tr '/' '_'`; \ + mv *$$mangled.c.gcov $$fixed.c.gcov; \ + echo -n $$stats | \ + sed -e "s/in file/in file /"; \ + echo "
"; \ + done) | sort -g >> gcov-report.html + check-clean: rm -rf subversion/tests/clients/cmdline/repositories \ subversion/tests/clients/cmdline/working_copies \ Index: configure.in =================================================================== --- configure.in (revision 8987) +++ configure.in (working copy) @@ -323,6 +323,15 @@ fi ]) +AC_ARG_ENABLE(gcov, +AC_HELP_STRING([--enable-gcov], + [Turn on coverage testing (GCC only).]), +[ + if test "$enableval" = "yes" ; then + CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" + fi +]) + AC_ARG_WITH(editor, AC_HELP_STRING([--with-editor=PATH], [Specify a default editor for the subversion client.]),