diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2012-02-24 20:35:13 -0500 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2012-02-24 20:46:36 -0500 |
commit | 4395cebd5a8e10397a5249311208a846a4f1d347 (patch) | |
tree | 156de1fe32867cf2e1b35ca1af109aff33848893 | |
parent | 65707a304bb55a546d79be737d9145cd4b891da9 (diff) |
Add valgrind suppressions
-rw-r--r-- | tests/suppressions/rakia.supp | 47 | ||||
-rw-r--r-- | tests/suppressions/tp-glib.supp | 250 | ||||
-rw-r--r-- | tests/twisted/tools/Makefile.am | 3 | ||||
-rw-r--r-- | 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 |