Skip to content

Commit

Permalink
Add --cover option to ./configure for gcc coverage testing.
Browse files Browse the repository at this point in the history
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
madler committed Oct 9, 2011
1 parent 1bd2fa1 commit d66a307
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
4 changes: 4 additions & 0 deletions .gitignore
Expand Up @@ -9,6 +9,10 @@
*.o
*.dylib

*.gcda
*.gcno
*.gcov

/example
/example64
/examplesh
Expand Down
1 change: 1 addition & 0 deletions Makefile.in
Expand Up @@ -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
Expand Down
8 changes: 7 additions & 1 deletion configure
Expand Up @@ -55,6 +55,7 @@ mandir=${mandir-'${prefix}/share/man'}
shared_ext='.so'
shared=1
solo=0
cover=0
zprefix=0
build64=0
gcc=0
Expand Down Expand Up @@ -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 ;;
Expand Down Expand Up @@ -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>
Expand Down Expand Up @@ -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 "
Expand Down

0 comments on commit d66a307

Please sign in to comment.