You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	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>
This commit is contained in:
		
							
								
								
									
										11
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								Makefile
									
									
									
									
									
								
							| @@ -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 | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user