Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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.
  • Loading branch information...
commit d66a30794183e04f121fd1464d7bfcfbbcaf64ed 1 parent 1bd2fa1
@madler authored
Showing with 12 additions and 1 deletion.
  1. +4 −0 .gitignore
  2. +1 −0  Makefile.in
  3. +7 −1 configure
View
4 .gitignore
@@ -9,6 +9,10 @@
*.o
*.dylib
+*.gcda
+*.gcno
+*.gcov
+
/example
/example64
/examplesh
View
1  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
View
8 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 <<EOF
#include <stdio.h>
#include <stdarg.h>
@@ -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 "
Please sign in to comment.
Something went wrong with that request. Please try again.