diff --git a/validate/Makefile.am b/validate/Makefile.am index 93486e1c0c..5e3d7cdb66 100644 --- a/validate/Makefile.am +++ b/validate/Makefile.am @@ -14,7 +14,9 @@ SUBDIRS = \ DIST_SUBDIRS = $(SUBDIRS) suppsdir=${datadir}/gstreamer-$(GST_API_VERSION)/validate/ -supps_DATA = common/gst.supp +supps_DATA = \ + common/gst.supp \ + data/gstvalidate.supp EXTRA_DIST = \ ChangeLog autogen.sh depcomp \ diff --git a/validate/data/gstvalidate.supp b/validate/data/gstvalidate.supp new file mode 100644 index 0000000000..9bcd706851 --- /dev/null +++ b/validate/data/gstvalidate.supp @@ -0,0 +1,34 @@ +### This file contains either validate specific suppressions or bugs that we +### can't easily address because they are lower in the stack. +### All the other suppressions should be added ton common/gst.supp + +{ + Leak in mesa fixed with http://lists.freedesktop.org/archives/mesa-dev/2015-April/082101.html + Memcheck:Leak + fun:malloc + fun:read_packet + fun:_xcb_in_read + fun:_xcb_conn_wait + fun:wait_for_reply + fun:xcb_wait_for_reply + fun:dri3_open + fun:dri3_create_screen + fun:AllocAndFetchScreenConfigs + fun:__glXInitialize + fun:glXQueryVersion +} + +{ + Leak in mesa fixed with http://lists.freedesktop.org/archives/mesa-dev/2015-April/082100.html + Memcheck:Leak + fun:malloc + fun:realloc + fun:udev_list_entry_add + fun:udev_enumerate_add_match_subsystem + fun:get_render_node_from_id_path_tag + fun:loader_get_user_preferred_fd + fun:dri3_create_screen + fun:AllocAndFetchScreenConfigs + fun:__glXInitialize + fun:glXQueryVersion +} diff --git a/validate/launcher/baseclasses.py b/validate/launcher/baseclasses.py index 71b743df01..299bd6828a 100644 --- a/validate/launcher/baseclasses.py +++ b/validate/launcher/baseclasses.py @@ -291,7 +291,7 @@ class Test(Loggable): self.queue.put(None) def get_valgrind_suppressions(self): - return None + return [self.get_valgrind_suppression_file('data', 'gstvalidate.supp')] def use_valgrind(self): vglogsfile = self.logfile + '.valgrind' @@ -307,9 +307,8 @@ class Test(Loggable): ('error-exitcode', str(VALGRIND_ERROR_CODE)), ] - supps = self.get_valgrind_suppressions() - if supps: - vg_args.append(('suppressions', supps)) + for supp in self.get_valgrind_suppressions(): + vg_args.append(('suppressions', supp)) self.command = "valgrind %s %s" % (' '.join(map(lambda x: '--%s=%s' % (x[0], x[1]), vg_args)), self.command) @@ -619,21 +618,23 @@ class GstValidateTest(Test): return position - def get_valgrind_suppressions(self): + def get_valgrind_suppression_file(self, subdir, name): # Are we running from sources? root_dir = os.path.abspath(os.path.dirname(os.path.join(os.path.dirname(os.path.abspath(__file__))))) - p = os.path.join(root_dir, 'common', 'gst.supp') + p = os.path.join(root_dir, subdir, name) if os.path.exists(p): return p # Look in system data dirs - p = os.path.join(config.DATADIR, 'gstreamer-1.0', 'validate', 'gst.supp') + p = os.path.join(config.DATADIR, 'gstreamer-1.0', 'validate', name) if os.path.exists(p): return p - self.error("Could not find any gst.sup file") + self.error("Could not find any %s file" % name) - return None + def get_valgrind_suppressions(self): + result = super(GstValidateTest, self).get_valgrind_suppressions() + return result + [self.get_valgrind_suppression_file('common', 'gst.supp')] class GstValidateEncodingTestInterface(object):