| 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 32484) |
| +++ Makefile.in (working copy) |
| @@ -443,6 +443,36 @@ |
| @$(MAKE) check \ |
| BASE_URL=svn+ssh://localhost`pwd`/subversion/tests/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 .`<br>" \ |
| + echo "`date`<br>" \ |
| + > gcov-report.html; \ |
| + echo `uname -o -r -m` "<br>" \ |
| + >> 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 <a href=\"$$fixed.c.gcov\">/"; \ |
| + echo "</a><br>"; \ |
| + done) | sort -g >> gcov-report.html |
| + |
| bdbcheck: |
| @$(MAKE) check FS_TYPE=bdb |
| |
| Index: configure.ac |
| =================================================================== |
| --- configure.ac (revision 32484) |
| +++ configure.ac (working copy) |
| @@ -684,6 +684,14 @@ |
| # # do nothing |
| 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, |
| AS_HELP_STRING([--with-editor=PATH], |