diff --git a/configure b/configure index 3bace2b188..15f7d7fad1 100755 --- a/configure +++ b/configure @@ -269,6 +269,9 @@ Developer options (useful when working on FFmpeg itself): --disable-optimizations disable compiler optimizations --enable-extra-warnings enable more compiler warnings --disable-stripping disable stripping of executables and shared libraries + --valgrind=VALGRIND run "make fate" tests through valgrind to detect memory + leaks and errors, using the specified valgrind binary. + Cannot be combined with --target-exec --samples=PATH location of test samples for FATE, if not set use \$FATE_SAMPLES at make invocation time. @@ -1315,6 +1318,7 @@ CMDLINE_SET=" target_exec target_os target_path + valgrind " CMDLINE_APPEND=" @@ -3239,6 +3243,7 @@ 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" +test -n "$valgrind" && target_exec="$valgrind --error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=tests/fate-valgrind.supp" # add some useful compiler flags if supported check_cflags -Wdeclaration-after-statement diff --git a/tests/fate-valgrind.supp b/tests/fate-valgrind.supp new file mode 100644 index 0000000000..db72c54b7f --- /dev/null +++ b/tests/fate-valgrind.supp @@ -0,0 +1,31 @@ +# seems fixed in newer versions +# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=577135 +{ + zlib-inflate + Memcheck:Cond + fun:inflateReset2 + fun:inflateInit2_ +} +# libc overreads on purpose +# http://sourceware.org/bugzilla/show_bug.cgi?id=12424 +{ + eval-strtod + Memcheck:Addr8 + fun:__GI___strncasecmp_l + fun:____strtod_l_internal + fun:av_strtod +} +{ + eval-strtod + Memcheck:Value8 + fun:__GI___strncasecmp_l + fun:____strtod_l_internal + fun:av_strtod +} +{ + eval-strtod + Memcheck:Cond + fun:__GI___strncasecmp_l + fun:____strtod_l_internal + fun:av_strtod +}