summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2012-02-24 20:35:13 -0500
committerOlivier CrĂȘte <olivier.crete@collabora.com>2012-02-24 20:46:36 -0500
commit4395cebd5a8e10397a5249311208a846a4f1d347 (patch)
tree156de1fe32867cf2e1b35ca1af109aff33848893 /tests
parent65707a304bb55a546d79be737d9145cd4b891da9 (diff)
Add valgrind suppressions
Diffstat (limited to 'tests')
-rw-r--r--tests/suppressions/rakia.supp47
-rw-r--r--tests/suppressions/tp-glib.supp250
-rw-r--r--tests/twisted/tools/Makefile.am3
-rw-r--r--tests/twisted/tools/exec-with-log.sh.in3
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