From d66a30794183e04f121fd1464d7bfcfbbcaf64ed Mon Sep 17 00:00:00 2001 From: Mark Adler Date: Sun, 9 Oct 2011 10:16:43 -0700 Subject: [PATCH] Add --cover option to ./configure for gcc coverage testing. This adds the -fprofile-arcs and -ftest-coverage options when compiling the source code for the static library. Those same options must then be used when linking the static library into an executable. This updates Makefile.in to remove and .gitignore to ignore the files generated when testing coverage. --- .gitignore | 4 ++++ Makefile.in | 1 + configure | 8 +++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 81d3ed29..8c6bce0b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,10 @@ *.o *.dylib +*.gcda +*.gcno +*.gcov + /example /example64 /examplesh diff --git a/Makefile.in b/Makefile.in index 1b8bf3f8..9ac04060 100644 --- a/Makefile.in +++ b/Makefile.in @@ -232,6 +232,7 @@ clean: libz.* foo.gz so_locations \ _match.s maketree contrib/infback9/*.o rm -rf objs + rm -f *.gcda *.gcno *.gcov maintainer-clean: distclean distclean: clean zconf zconf.h.cmakein docs diff --git a/configure b/configure index 672b24fe..d15c03b6 100755 --- a/configure +++ b/configure @@ -55,6 +55,7 @@ mandir=${mandir-'${prefix}/share/man'} shared_ext='.so' shared=1 solo=0 +cover=0 zprefix=0 build64=0 gcc=0 @@ -85,6 +86,7 @@ case "$1" in -s* | --shared | --enable-shared) shared=1; shift ;; -t | --static) shared=0; shift ;; --solo) solo=1; shift ;; + --cover) cover=1; shift ;; -z* | --zprefix) zprefix=1; shift ;; -6* | --64) build64=1; shift ;; -a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;; @@ -345,6 +347,10 @@ OBJC='$(OBJZ)' PIC_OBJC='$(PIC_OBJZ)' fi +if test $cover -eq 1; then + CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage" +fi + cat > $test.c < #include @@ -578,7 +584,7 @@ case $CFLAGS in fi ;; esac -rm -f $test.[co] $test $test$shared_ext +rm -f $test.[co] $test $test$shared_ext $test.gcno # udpate Makefile sed < Makefile.in "