diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-11-29 20:35:48 +0100 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-12-05 20:04:48 +0100 |
commit | 840ecc9e075a0268884141eb25e4f2dc3f35d9dc (patch) | |
tree | dc823dbda33966f995142f0f50b848c2f4d5ed46 | |
parent | 51177b1fe93297d2dbb87802ef9bc18afc72fc21 (diff) | |
download | ffmpeg-840ecc9e075a0268884141eb25e4f2dc3f35d9dc.tar.gz |
Add coverage support.
Adds --enable-coverage to configure and a "coverage-html" make target.
The dependency stuff in the Makefile is a bit questionable, but the
best I could think of so far.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | common.mak | 2 | ||||
-rwxr-xr-x | configure | 3 |
3 files changed, 15 insertions, 1 deletions
@@ -137,6 +137,8 @@ clean:: $(RM) $(CLEANSUFFIXES) $(RM) $(TOOLS) $(RM) $(CLEANSUFFIXES:%=tools/%) + $(RM) coverage.info + $(RM) -r coverage-html distclean:: $(RM) $(DISTCLEANSUFFIXES) @@ -145,6 +147,15 @@ distclean:: config: $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION) +# Without the sed genthml thinks "libavutil" and "./libavutil" are two different things +coverage.info: $(wildcard *.gcda *.gcno */*.gcda */*.gcno */*/*.gcda */*/*.gcno) + $(Q)lcov -c -d . -b . | sed -e 's#/./#/#g' > $@ + +coverage-html: coverage.info + $(Q)mkdir -p $@ + $(Q)genhtml -o $@ $< + $(Q)touch $@ + include $(SRC_PATH)/doc/Makefile include $(SRC_PATH)/tests/Makefile diff --git a/common.mak b/common.mak index 14c79f0e47..b7786c5c67 100644 --- a/common.mak +++ b/common.mak @@ -113,7 +113,7 @@ $(TOOLOBJS): | tools OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS)) -CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver +CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver *.gcno *.gcda DISTCLEANSUFFIXES = *.pc LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp @@ -260,6 +260,7 @@ Advanced options (experts only): --optflags override optimization-related compiler flags Developer options (useful when working on FFmpeg itself): + --enable-coverage build with test coverage instrumentation --disable-debug disable debugging symbols --enable-debug=LEVEL set the debug level [$debuglevel] --disable-optimizations disable compiler optimizations @@ -1242,6 +1243,7 @@ CMDLINE_SELECT=" $CONFIG_LIST $THREADS_LIST asm + coverage cross_compile debug extra_warnings @@ -3194,6 +3196,7 @@ check_cpp_condition \ fi enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" +enabled coverage && add_cflags "-fprofile-arcs -ftest-coverage" && add_ldflags "-fprofile-arcs -ftest-coverage" # add some useful compiler flags if supported check_cflags -Wdeclaration-after-statement |