telepathy-rakia: Add valgrind suppressions

Olivier Crête tester at kemper.freedesktop.org
Tue May 8 10:03:01 PDT 2012


Module: telepathy-rakia
Branch: master
Commit: 4395cebd5a8e10397a5249311208a846a4f1d347
URL:    http://cgit.freedesktop.org/telepathy/telepathy-rakia/commit/?id=4395cebd5a8e10397a5249311208a846a4f1d347

Author: Olivier Crête <olivier.crete at collabora.com>
Date:   Fri Feb 24 20:35:13 2012 -0500

Add valgrind suppressions

---

 tests/suppressions/rakia.supp           |   47 ++++++
 tests/suppressions/tp-glib.supp         |  250 +++++++++++++++++++++++++++++++
 tests/twisted/tools/Makefile.am         |    3 +-
 tests/twisted/tools/exec-with-log.sh.in |    3 +
 4 files changed, 302 insertions(+), 1 deletions(-)

diff --git a/tests/suppressions/rakia.supp b/tests/suppressions/rakia.supp
new file mode 100644
index 0000000..2052a1c
--- /dev/null
+++ b/tests/suppressions/rakia.supp
@@ -0,0 +1,47 @@
+# GObject
+
+{
+   GType keeps its memory forever
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+}
+{
+   GType keeps its memory forever
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_add_interface_static
+}
+{
+   GType keeps its memory forever
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_init_with_debug_flags
+}
+
+# Sofia SIP
+
+{
+   Ignore all errors inside sofia sip
+   Memcheck:Addr8
+   fun:__strspn_sse42
+   ...
+   fun:nua_stack_respond
+}
+{
+   Ignore all errors inside sofia sip   
+   Memcheck:Addr8
+   fun:__strspn_sse42
+   ...
+   fun:sdp_parse
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Addr8
+   fun:__strspn_sse42
+   ...
+   fun:nua_client_init_request
+}
diff --git a/tests/suppressions/tp-glib.supp b/tests/suppressions/tp-glib.supp
new file mode 100644
index 0000000..18d0dac
--- /dev/null
+++ b/tests/suppressions/tp-glib.supp
@@ -0,0 +1,250 @@
+# Valgrind error suppression file
+
+# ============================= libc ==================================
+
+{
+   ld.so initialization + selinux
+   Memcheck:Leak
+   ...
+   fun:_dl_init
+   obj:/lib/ld-*.so
+}
+
+{
+   dlopen initialization, triggered by handle-leak-debug code
+   Memcheck:Leak
+   ...
+   fun:__libc_dlopen_mode
+   fun:init
+   fun:backtrace
+   fun:handle_leak_debug_bt
+   fun:dynamic_ensure_handle
+   fun:tp_handle_ensure
+}
+
+# ============================= GLib ==================================
+
+{
+   g_set_prgname copies its argument
+   Memcheck:Leak
+   ...
+   fun:g_set_prgname
+}
+
+{
+   one g_get_charset per child^Wprocess
+   Memcheck:Leak
+   ...
+   fun:g_get_charset
+}
+
+{
+   GQuarks can't be freed
+   Memcheck:Leak
+   ...
+   fun:g_quark_from_static_string
+}
+
+{
+   GQuarks can't be freed
+   Memcheck:Leak
+   ...
+   fun:g_quark_from_string
+}
+
+{
+   interned strings can't be freed
+   Memcheck:Leak
+   ...
+   fun:g_intern_string
+}
+
+{
+   interned strings can't be freed
+   Memcheck:Leak
+   ...
+   fun:g_intern_static_string
+}
+
+{
+   shared global default g_main_context
+   Memcheck:Leak
+   ...
+   fun:g_main_context_new
+   fun:g_main_context_default
+}
+
+{
+   GTest initialization
+   Memcheck:Leak
+   ...
+   fun:g_test_init
+   fun:main
+}
+
+{
+   GTest admin
+   Memcheck:Leak
+   ...
+   fun:g_test_add_vtable
+}
+
+{
+   GTest pseudorandomness
+   Memcheck:Leak
+   ...
+   fun:g_rand_new_with_seed_array
+   fun:test_run_seed
+   ...
+   fun:g_test_run
+}
+
+{
+   GSLice initialization
+   Memcheck:Leak
+   ...
+   fun:g_malloc0
+   fun:g_slice_init_nomessage
+   fun:g_slice_alloc
+}
+
+# ============================= GObject ===============================
+
+{
+   g_type_init
+   Memcheck:Leak
+   ...
+   fun:g_type_init
+}
+
+{
+   g_type_register_static
+   Memcheck:Leak
+   ...
+   fun:g_type_register_static
+}
+
+# ============================= dbus-glib =============================
+
+{
+   dbus-glib, https://bugs.freedesktop.org/show_bug.cgi?id=14125
+   Memcheck:Addr4
+   fun:g_hash_table_foreach
+   obj:/usr/lib/libdbus-glib-1.so.2.1.0
+   fun:g_object_run_dispose
+}
+
+{
+   registering marshallers is permanent
+   Memcheck:Leak
+   ...
+   fun:dbus_g_object_register_marshaller_array
+   fun:dbus_g_object_register_marshaller
+}
+
+{
+   dbus-glib specialized GTypes are permanent
+   Memcheck:Leak
+   ...
+   fun:dbus_g_type_specialized_init
+}
+
+{
+   libdbus shared connection
+   Memcheck:Leak
+   ...
+   fun:dbus_g_bus_get
+}
+
+{
+   dbus-gobject registrations aren't freed unless we fall off the bus
+   Memcheck:Leak
+   ...
+   fun:g_slist_append
+   fun:dbus_g_connection_register_g_object
+}
+
+{
+   DBusGProxy slots aren't freed unless we fall off the bus
+   Memcheck:Leak
+   ...
+   fun:dbus_connection_allocate_data_slot
+   ...
+   fun:dbus_g_proxy_constructor
+}
+
+{
+   error registrations are for life, not just for Christmas
+   Memcheck:Leak
+   ...
+   fun:dbus_g_error_domain_register
+}
+
+# ============================= telepathy-glib ========================
+
+{
+   tp_dbus_daemon_constructor @daemons once per DBusConnection
+   Memcheck:Leak
+   ...
+   fun:g_slice_alloc
+   fun:tp_dbus_daemon_constructor
+}
+
+{
+   tp_proxy_subclass_add_error_mapping refs the enum
+   Memcheck:Leak
+   ...
+   fun:g_type_class_ref
+   fun:tp_proxy_subclass_add_error_mapping
+}
+
+{
+   tp_proxy_or_subclass_hook_on_interface_add never frees its list
+   Memcheck:Leak
+   ...
+   fun:tp_proxy_or_subclass_hook_on_interface_add
+}
+
+{
+   tp_dbus_daemon_constructor filter not freed til we fall off the bus
+   Memcheck:Leak
+   ...
+   fun:dbus_connection_add_filter
+   fun:tp_dbus_daemon_constructor
+}
+
+# ============================= unclassified ==========================
+
+{
+   creating param specs in tp_proxy_class_intern_init
+   Memcheck:Leak
+   fun:memalign
+   fun:posix_memalign
+   fun:slab_allocator_alloc_chunk
+   fun:g_slice_alloc
+   fun:g_slice_alloc0
+   fun:g_type_create_instance
+   fun:g_param_spec_internal
+   fun:g_param_spec_string
+}
+
+{
+   ld.so initialization on glibc 2.9
+   Memcheck:Cond
+   fun:_dl_relocate_object
+   fun:dl_main
+   fun:_dl_sysdep_start
+   fun:_dl_start
+   obj:/lib/ld-2.9.so
+}
+
+{
+   ld.so initialization on glibc 2.9
+   Memcheck:Cond
+   fun:strlen
+   fun:_dl_init_paths
+   fun:dl_main
+   fun:_dl_sysdep_start
+   fun:_dl_start
+   obj:/lib/ld-2.9.so
+}
diff --git a/tests/twisted/tools/Makefile.am b/tests/twisted/tools/Makefile.am
index 9dab883..dd2d2b9 100644
--- a/tests/twisted/tools/Makefile.am
+++ b/tests/twisted/tools/Makefile.am
@@ -1,5 +1,6 @@
 exec-with-log.sh: exec-with-log.sh.in
-	sed -e "s|[@]abs_top_builddir[@]|@abs_top_builddir@|g" $< > $@
+	sed -e "s|[@]abs_top_builddir[@]|@abs_top_builddir@|g" \
+		-e "s|[@]abs_top_srcdir[@]|@abs_top_srcdir@|g" $< > $@
 	chmod +x $@
 
 %.conf: %.conf.in
diff --git a/tests/twisted/tools/exec-with-log.sh.in b/tests/twisted/tools/exec-with-log.sh.in
index c3baef1..16dae59 100644
--- a/tests/twisted/tools/exec-with-log.sh.in
+++ b/tests/twisted/tools/exec-with-log.sh.in
@@ -11,6 +11,9 @@ if test -n "$RAKIA_TEST_VALGRIND"; then
 	export G_DEBUG=gc-friendly
 	export G_SLICE=always-malloc
 	RAKIA_WRAPPER="valgrind --leak-check=full"
+#	RAKIA_WRAPPER="$RAKIA_WRAPPER --gen-suppressions=all"
+	RAKIA_WRAPPER="$RAKIA_WRAPPER --suppressions=@abs_top_srcdir@/tests/suppressions/tp-glib.supp"
+	RAKIA_WRAPPER="$RAKIA_WRAPPER --suppressions=@abs_top_srcdir@/tests/suppressions/rakia.supp"
 fi
 
 exec $RAKIA_WRAPPER @abs_top_builddir@/src/telepathy-rakia



More information about the telepathy-commits mailing list