mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-05-20 05:28:13 +02:00
Add optional usage of gcov for test coverage
Use gcov to find how much code coverage our current testing gets. This can be enabled by passing --with-gcov to configure and running "make gcov". This is limited to gcc. Here's a run from the current code (for some reason, gcov insists on profiling gstring.h). /usr/bin/gcov pkg.h pkg.c parse.h parse.c main.c File 'pkg.c' Lines executed:73.16% of 611 pkg.c:creating 'pkg.c.gcov' File '/usr/include/glib-2.0/glib/gstring.h' Lines executed:100.00% of 6 /usr/include/glib-2.0/glib/gstring.h:creating 'gstring.h.gcov' File 'parse.c' Lines executed:79.67% of 492 parse.c:creating 'parse.c.gcov' File 'main.c' Lines executed:57.34% of 293 main.c:creating 'main.c.gcov'
This commit is contained in:
parent
a35c3fc95e
commit
e68baa7463
3 changed files with 31 additions and 0 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -6,6 +6,9 @@
|
|||
*.so
|
||||
*.exe
|
||||
*.orig
|
||||
*.gcda
|
||||
*.gcno
|
||||
*.gcov
|
||||
.deps/
|
||||
.libs/
|
||||
INSTALL
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ endif
|
|||
|
||||
AM_CFLAGS = \
|
||||
$(WARN_CFLAGS) \
|
||||
$(GCOV_CFLAGS) \
|
||||
$(GLIB_CFLAGS)
|
||||
|
||||
bin_PROGRAMS = pkg-config
|
||||
|
|
@ -42,6 +43,12 @@ dist_doc_DATA = pkg-config-guide.html
|
|||
dist_man_MANS = pkg-config.1
|
||||
EXTRA_DIST = README.win32
|
||||
|
||||
# gcov test coverage
|
||||
gcov:
|
||||
-$(MAKE) $(AM_MAKEFLAGS) -k check
|
||||
$(GCOV) $(pkg_config_SOURCES)
|
||||
CLEANFILES = *.gcda *.gcno *.gcov
|
||||
|
||||
# Since we can't always have glib in DIST_SUBDIRS, we need to make sure
|
||||
# glib is configured when we want to run dist. Unfortunately, there's no
|
||||
# DIST_CONFIGURE_FLAGS.
|
||||
|
|
|
|||
21
configure.ac
21
configure.ac
|
|
@ -182,6 +182,27 @@ fi
|
|||
AC_SUBST(GLIB_LIBS)
|
||||
AC_SUBST(GLIB_CFLAGS)
|
||||
|
||||
dnl
|
||||
dnl Optional gcov test coverage usage
|
||||
dnl
|
||||
AC_ARG_WITH([gcov],
|
||||
[AS_HELP_STRING([--with-gcov], [gcov test coverage @<:@default=no@:>@])],
|
||||
[],
|
||||
[with_gcov=no])
|
||||
if test "x$with_gcov" = xyes; then
|
||||
if test "$GCC" = no; then
|
||||
AC_MSG_ERROR([gcov test coverage can only be used with GCC])
|
||||
fi
|
||||
|
||||
AC_PATH_PROG([GCOV], [gcov], [AC_MSG_ERROR([could not find gcov program])])
|
||||
GCOV_CFLAGS="-fprofile-arcs -ftest-coverage"
|
||||
|
||||
# Ensure there's no optimizing since last -O wins and CFLAGS is used
|
||||
# at the end of COMPILE/LTCOMPILE.
|
||||
CFLAGS="${CFLAGS+$CFLAGS }-O0"
|
||||
fi
|
||||
AC_SUBST([GCOV_CFLAGS])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
check/Makefile
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue