From 77b90f0cd0b702b9ffff55d8612ef8b487705fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= Date: Fri, 20 Jan 2012 20:42:31 +0100 Subject: [PATCH] Add a --valgrind configure option. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If specified runs "make fate" through valgrind using the given valgrind binary. Signed-off-by: Reimar Döffinger --- configure | 5 +++++ tests/fate-valgrind.supp | 31 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/fate-valgrind.supp 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 +}