mirror of
https://github.com/mirror/wget.git
synced 2025-04-17 06:50:34 +08:00
Add code coverage reporting
* configure.ac: Add AX_CODE_COVERAGE. * Makefile.am: Add rules 'check-coverage' and 'fuzz-coverage'. * fuzz/Makefile.am: Amend LDADD, AM_CFLAGS and AM_CPPFLAGS. * src/Makefile.am: Amend LDADD, AM_CFLAGS and AM_CPPFLAGS. This add a new configure option, --enable-code-coverage. With this option enabled, generate test code coverage with make code-coverage and generate coverage for the fuzz test corpora with make fuzz-coverage
This commit is contained in:
parent
6377ae1647
commit
238074e2b8
27
Makefile.am
27
Makefile.am
@ -80,3 +80,30 @@ gen-ChangeLog:
|
||||
|
||||
check-valgrind:
|
||||
TESTS_ENVIRONMENT="VALGRIND_TESTS=1" $(MAKE) check
|
||||
|
||||
LCOV_INFO=wget.info
|
||||
|
||||
clean-lcov:
|
||||
rm -rf $(LCOV_INFO) */*.gc?? */.libs/*.gc?? lcov/
|
||||
lcov --zerocounters --directory src/
|
||||
|
||||
check-coverage: clean clean-lcov
|
||||
$(MAKE) CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
|
||||
lcov --capture --initial --directory src/ --output-file $(LCOV_INFO)
|
||||
$(MAKE) CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage" VALGRIND_TESTS=0 check
|
||||
lcov --capture --directory src/ --output-file $(LCOV_INFO)
|
||||
lcov --remove $(LCOV_INFO) '/usr/include/*' '*/lib/*' -o $(LCOV_INFO)
|
||||
genhtml --prefix . --ignore-errors source $(LCOV_INFO) --legend --title "Wget" --output-directory=lcov
|
||||
@echo
|
||||
@echo "You can now view the coverage report with 'xdg-open lcov/index.html'"
|
||||
|
||||
fuzz-coverage: clean clean-lcov
|
||||
$(MAKE) -C lib
|
||||
$(MAKE) -C src CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
|
||||
$(MAKE) -C fuzz check CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
|
||||
lcov --capture --initial --directory fuzz --directory src --output-file $(LCOV_INFO)
|
||||
lcov --capture --directory fuzz --directory src --output-file $(LCOV_INFO)
|
||||
lcov --remove $(LCOV_INFO) '/usr/include/*' '*/lib/*' -o $(LCOV_INFO)
|
||||
genhtml --prefix . --ignore-errors source $(LCOV_INFO) --legend --title "Wget-fuzz" --output-directory=lcov
|
||||
@echo
|
||||
@echo "You can now view the coverage report with 'xdg-open lcov/index.html'"
|
||||
|
@ -344,6 +344,8 @@ AC_CHECK_TYPES(sig_atomic_t, [], [], [
|
||||
AM_ICONV
|
||||
gl_INIT
|
||||
|
||||
AX_CODE_COVERAGE
|
||||
|
||||
dnl
|
||||
dnl Checks for library functions.
|
||||
dnl
|
||||
|
@ -1,12 +1,13 @@
|
||||
AM_CFLAGS = -Wall -Wextra $(WERROR_CFLAGS) $(WARN_CFLAGS)
|
||||
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) $(CODE_COVERAGE_CFLAGS)
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir) -I$(top_builddir)/lib -I$(top_srcdir)/lib \
|
||||
$(CODE_COVERAGE_CPPFLAGS) \
|
||||
-DSRCDIR=\"$(abs_srcdir)\"
|
||||
LDADD = ../lib/libgnu.a \
|
||||
$(GETADDRINFO_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB) $(INET_PTON_LIB) \
|
||||
$(LIBSOCKET) $(LIB_CLOCK_GETTIME) $(LIB_CRYPTO) $(LIB_GETLOGIN) $(LIB_NANOSLEEP) $(LIB_POLL) \
|
||||
$(LIB_POSIX_SPAWN) $(LIB_PTHREAD_SIGMASK) $(LIB_SELECT) $(LIBICONV) $(LIBINTL) \
|
||||
$(LIBMULTITHREAD) $(LIBTHREAD) $(SERVENT_LIB) @INTL_MACOSX_LIBS@ \
|
||||
$(FUZZ_LIBS)
|
||||
$(FUZZ_LIBS) $(CODE_COVERAGE_LIBS)
|
||||
|
||||
WGET_TESTS = \
|
||||
wget_cookie_fuzzer$(EXEEXT) \
|
||||
|
@ -62,12 +62,12 @@ wget_SOURCES = connect.c convert.c cookies.c ftp.c \
|
||||
exits.h version.h metalink.h xattr.h
|
||||
nodist_wget_SOURCES = version.c
|
||||
EXTRA_wget_SOURCES = iri.c
|
||||
LDADD = $(LIBOBJS) ../lib/libgnu.a $(GETADDRINFO_LIB) $(HOSTENT_LIB)\
|
||||
LDADD = $(CODE_COVERAGE_LIBS) $(LIBOBJS) ../lib/libgnu.a $(GETADDRINFO_LIB) $(HOSTENT_LIB)\
|
||||
$(INET_NTOP_LIB) $(LIBSOCKET) $(LIB_CLOCK_GETTIME) $(LIB_CRYPTO)\
|
||||
$(LIB_NANOSLEEP) $(LIB_POSIX_SPAWN) $(LIB_SELECT) $(LIBICONV) $(LIBINTL)\
|
||||
$(LIBTHREAD) $(LIBUNISTRING) $(SERVENT_LIB)
|
||||
AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib
|
||||
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
|
||||
AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib $(CODE_COVERAGE_CPPFLAGS)
|
||||
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) $(CODE_COVERAGE_CFLAGS)
|
||||
|
||||
../lib/libgnu.a:
|
||||
cd ../lib && $(MAKE) $(AM_MAKEFLAGS)
|
||||
@ -104,7 +104,7 @@ distclean-local:
|
||||
check_LIBRARIES = libunittest.a
|
||||
libunittest_a_SOURCES = $(wget_SOURCES) build_info.c
|
||||
nodist_libunittest_a_SOURCES = version.c
|
||||
libunittest_a_CPPFLAGS = -DTESTING "-I$(top_builddir)/lib" "-I$(top_srcdir)/lib"
|
||||
libunittest_a_CPPFLAGS = -DTESTING "-I$(top_builddir)/lib" "-I$(top_srcdir)/lib" $(CODE_COVERAGE_CPPLAGS)
|
||||
libunittest_a_LIBADD = $(LIBOBJS)
|
||||
|
||||
CLEANFILES = *~ *.bak core core.[0-9]* build_info.c version.c
|
||||
|
Loading…
Reference in New Issue
Block a user