Update valgrind test support

tingping/wmclass
Alexander Larsson 2016-06-10 11:29:09 +02:00
parent 2e7d89a9c2
commit 528b150162
5 changed files with 587 additions and 205 deletions

View File

@ -1,4 +1,4 @@
TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \
TESTS_ENVIRONMENT += FLATPAK_TESTS_DEBUG=1 \
FLATPAK_TRIGGERSDIR=$$(cd $(top_srcdir) && pwd)/triggers \
FLATPAK_BWRAP=$$(cd $(top_builddir) && pwd)/flatpak-bwrap \
FLATPAK_DBUSPROXY=$$(cd $(top_builddir) && pwd)/flatpak-dbus-proxy \
@ -100,8 +100,8 @@ test_scripts = \
test_programs = testdb test-doc-portal
@VALGRIND_CHECK_RULES@
VALGRIND_SUPPRESSIONS_FILES=tests/flatpak-valgrind.supp
EXTRA_DIST += tests/flatpak-valgrind.supp
VALGRIND_SUPPRESSIONS_FILES=tests/flatpak.supp tests/glib.supp
EXTRA_DIST += tests/flatpak.supp tests/glib.supp
DISTCLEANFILES += \
tests/services/org.freedesktop.Flatpak.service \
tests/services/org.freedesktop.portal.Documents.service \

View File

@ -1,199 +0,0 @@
{
g_type_init_with_debug_flags calloc
Memcheck:Leak
fun:calloc
...
fun:g_type_init_with_debug_flags
...
}
{
g_type_add_interface_static malloc
Memcheck:Leak
fun:malloc
...
fun:g_type_add_interface_static
...
}
{
g_type_add_interface_dynamic malloc
Memcheck:Leak
fun:malloc
...
fun:g_type_add_interface_dynamic
...
}
{
g_type_class_ref malloc
Memcheck:Leak
fun:malloc
...
fun:g_type_class_ref
...
}
{
g_type_register_dynamic malloc
Memcheck:Leak
fun:malloc
...
fun:g_type_register_dynamic
...
}
{
g_type_init_with_debug_flags malloc
Memcheck:Leak
fun:malloc
...
fun:g_type_init_with_debug_flags
...
}
{
g_type_init_with_debug_flags realloc
Memcheck:Leak
fun:realloc
...
fun:g_type_init_with_debug_flags
...
}
{
g_test_add_vtable malloc
Memcheck:Leak
fun:malloc
...
fun:g_test_add_vtable
...
}
{
g_test_init
Memcheck:Leak
fun:malloc
...
fun:g_test_init
...
}
{
g_type_register_static malloc
Memcheck:Leak
fun:malloc
...
fun:g_type_register_static
...
}
{
g_type_register_static realloc
Memcheck:Leak
fun:realloc
...
fun:g_type_register_static
...
}
{
g_type_register_fundamental never freed
Memcheck:Leak
fun:malloc
...
fun:g_type_register_fundamental
...
}
{
g_type_class_ref never finalized
Memcheck:Leak
fun:calloc
...
fun:g_type_class_ref
...
}
{
DBusGValue qdata
Memcheck:Leak
fun:realloc
fun:g_realloc
fun:g_type_set_qdata
fun:_dbus_g_value_types_init
...
}
{
gettext conditional jump
Memcheck:Cond
fun:__GI___strcasecmp_l
fun:__gconv_open
fun:_nl_find_msg
fun:__dcigettext
...
}
{
gettext uninitialized value
Memcheck:Value8
fun:__GI___strcasecmp_l
fun:__gconv_open
fun:_nl_find_msg
fun:__dcigettext
...
}
{
font config invalid reads
Memcheck:Addr4
...
fun:FcConfigParseAndLoad
...
}
{
dynamic loader conditional jump
Memcheck:Cond
fun:index
fun:expand_dynamic_string_token
fun:_dl_map_object
fun:map_doit
fun:_dl_catch_error
fun:do_preload
fun:dl_main
...
}
{
g_vfs_get_local
Memcheck:Leak
...
fun:g_vfs_get_local
...
}
{
_g_io_modules_ensure_loaded
Memcheck:Leak
...
fun:_g_io_modules_ensure_loaded
...
}
{
_g_io_module_get_default
Memcheck:Leak
...
fun:_g_io_module_get_default
...
}
{
_dl_allocate_tls
Memcheck:Leak
...
fun:_dl_allocate_tls
...
}

View File

@ -0,0 +1 @@
# Use this to suppress "possibly lost" for global statics

580
tests/glib.supp 100644
View File

@ -0,0 +1,580 @@
# Based on the libhif supressions
{
gobject_init_1
Memcheck:Leak
...
fun:gobject_init
}
{
g_type_register_static_1
Memcheck:Leak
...
fun:g_type_register_static
}
{
g_type_register_fundamental
Memcheck:Leak
...
fun:g_type_register_fundamental
}
{
g_type_register_dynamic_1
Memcheck:Leak
...
fun:g_type_register_dynamic
}
{
g_type_init_with_debug_flags
Memcheck:Leak
...
fun:g_type_init_with_debug_flags
}
{
g_type_class_ref_1
Memcheck:Leak
...
fun:type_iface_vtable_base_init_Wm
...
fun:g_type_class_ref
}
{
g_type_class_ref_2
Memcheck:Leak
...
fun:type_class_init_Wm
...
fun:g_type_class_ref
}
{
g_type_add_interface_static
Memcheck:Leak
...
fun:g_type_add_interface_static
}
{
g_param_spec_internal
Memcheck:Leak
...
fun:g_type_class_ref
fun:g_type_create_instance
fun:g_param_spec_internal
}
{
g_param_spec_enum
Memcheck:Leak
...
fun:g_type_class_ref
fun:g_param_spec_enum
}
{
g_param_spec_flags
Memcheck:Leak
...
fun:g_type_class_ref
fun:g_param_spec_flags
}
{
g_quark_from_static_string
Memcheck:Leak
...
fun:g_quark_from_static_string
}
{
g_quark_from_string
Memcheck:Leak
...
fun:g_quark_from_string
}
{
g_value_register_transform_func
Memcheck:Leak
...
fun:g_value_register_transform_func
}
{
test_run_seed
Memcheck:Leak
...
fun:g_rand_new_with_seed_array
fun:test_run_seed
...
fun:g_test_run_suite
}
{
g_test_init
Memcheck:Leak
...
fun:g_rand_new_with_seed_array
...
fun:g_test_init
}
{
g_intern_static_string
Memcheck:Leak
...
fun:g_intern_static_string
}
{
g_main_context_push_thread_default
Memcheck:Leak
...
fun:g_queue_new
fun:g_main_context_push_thread_default
}
{
g_main_context_push_thread_default_inlined
Memcheck:Leak
...
fun:g_slice_alloc0
fun:g_main_context_push_thread_default
}
{
g_dbus_error_register_error
Memcheck:Leak
...
fun:g_dbus_error_register_error
}
{
g_param_spec_pool_insert
Memcheck:Leak
...
fun:g_param_spec_pool_insert
}
{
g_main_context_default
Memcheck:Leak
...
fun:g_main_context_default
}
{
g_main_context_check
Memcheck:Leak
...
fun:g_ptr_array_add
fun:g_main_context_check
}
{
g_test_run_suite
Memcheck:Leak
...
fun:g_slist_copy
fun:g_test_run_suite_internal
fun:g_test_run_suite
}
{
g_dbus_interface_info_cache_build
Memcheck:Leak
...
fun:g_dbus_interface_info_cache_build
}
{
g_cancellable_push_current
Memcheck:Leak
...
fun:thread_memory_from_self
...
fun:g_cancellable_push_current
}
{
_g_io_module_get_default
Memcheck:Leak
...
fun:g_io_module_new
fun:g_io_modules_scan_all_in_directory_with_scope
fun:_g_io_modules_ensure_loaded
fun:_g_io_module_get_default
}
{
g_io_scheduler_push_job
Memcheck:Leak
...
fun:init_scheduler
fun:g_once_impl
fun:g_io_scheduler_push_job
}
{
g_io_scheduler_push_job_2
Memcheck:Leak
...
fun:g_system_thread_new
...
fun:g_io_scheduler_push_job
}
{
g_bus_get_sync__available_connections
Memcheck:Leak
...
fun:g_hash_table_new
fun:initable_init
fun:g_initable_init
fun:g_bus_get_sync
}
{
g_socket_connection_factory_register_type
Memcheck:Leak
...
fun:g_socket_connection_factory_register_type
}
{
g_test_add_vtable
Memcheck:Leak
...
fun:g_test_add_vtable
}
{
g_mutex_lock
Memcheck:Leak
...
fun:g_mutex_impl_new
fun:g_mutex_get_impl
fun:g_mutex_lock
}
{
g_thread_self
Memcheck:Leak
...
fun:g_thread_self
}
{
g_rec_mutex_lock
Memcheck:Leak
...
fun:g_rec_mutex_impl_new
fun:g_rec_mutex_get_impl
fun:g_rec_mutex_lock
}
{
test_case_run
Memcheck:Leak
...
fun:g_malloc0
fun:test_case_run
...
fun:g_test_run_suite
}
{
g_get_charset
Memcheck:Leak
...
fun:g_get_charset
}
{
g_test_run_suite__timer_new
Memcheck:Leak
...
fun:g_timer_new
fun:test_case_run
...
fun:g_test_run_suite
}
{
g_test_run_suite__timer_new2
Memcheck:Leak
...
fun:g_timer_new
fun:test_case_run_suite_internal
...
fun:g_test_run_suite
}
{
g_test_run_suite__strconcat
Memcheck:Leak
...
fun:g_strconcat
fun:test_case_run
...
fun:g_test_run_suite
fun:g_test_run
}
{
g_type_interface_add_prerequisite
Memcheck:Leak
...
fun:g_type_interface_add_prerequisite
}
{
<insert_a_suppression_name_here>
Memcheck:Leak
...
fun:g_slist_copy
fun:g_test_run_suite_internal
...
fun:g_test_run_suite
}
{
g_set_prgname
Memcheck:Leak
...
fun:g_set_prgname
}
{
g_test_run_suite__strconcat_2
Memcheck:Leak
...
fun:g_strconcat
fun:g_test_run_suite_internal
}
{
g_test_run_suite__strdup
Memcheck:Leak
...
fun:g_strdup
fun:g_test_run_suite_internal
}
{
g_private_get
Memcheck:Leak
...
fun:g_private_get
}
{
g_private_set
Memcheck:Leak
...
fun:g_private_set
}
{
g_static_mutex_get_mutex_impl
Memcheck:Leak
...
fun:g_static_mutex_get_mutex_impl
}
{
g_variant_type_info_unref
Memcheck:Leak
...
fun:g_hash_table_remove
fun:g_variant_type_info_unref
}
{
g_rw_lock_reader_lock
Memcheck:Leak
...
fun:g_rw_lock_impl_new
fun:g_rw_lock_get_impl
fun:g_rw_lock_reader_lock
}
{
g_child_watch_finalize__rt_sigaction
Memcheck:Param
rt_sigaction(act->sa_flags)
fun:__libc_sigaction
...
fun:g_child_watch_finalize
}
{
g_dbus_worker_new
Memcheck:Leak
fun:calloc
...
fun:_g_dbus_worker_new
}
{
gdbus_shared_thread_func
Memcheck:Leak
match-leak-kinds: definite
...
fun:g_malloc
...
fun:gdbus_shared_thread_func
}
{
g_task_start_task_thread
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
...
fun:g_thread_pool_push
fun:g_task_start_task_thread
}
{
g_get_language_names
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
fun:g_get_language_names
}
{
g_get_filename_charsets
Memcheck:Leak
match-leak-kinds: definite
...
fun:g_get_filename_charsets
fun:g_filename_display_name
}
{
g_main_current_source
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
...
fun:g_main_current_source
fun:g_task_return
fun:g_task_thread_pool_thread
}
{
g_once_init_enter
Memcheck:Leak
match-leak-kinds: definite
...
fun:g_once_init_enter
}
{
g_child_watch_source_new
Memcheck:Leak
match-leak-kinds: definite
...
fun:g_thread_new
...
fun:g_child_watch_source_new
}
{
continue_writing_in_idle_cb
Memcheck:Leak
match-leak-kinds: definite
...
fun:g_task_new
...
fun:continue_writing_in_idle_cb
fun:g_main_context_dispatch
}
{
g_main_current_source
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:g_main_current_source
}
{
g_thread_pool_push
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:g_thread_pool_push
}
{
leak_test_dbus_dispose
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
...
fun:g_main_loop_run
fun:g_test_dbus_down
}
{
leak_test_dbus_down
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
fun:g_main_loop_new
fun:g_test_dbus_down
}
{
leak_socket_client_connect
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_slice_alloc
fun:g_slice_alloc0
fun:g_socket_client_connect_async
fun:g_socket_client_connect_to_uri_async
}
{
leak_signal_handlers_disconnect_matched
Memcheck:Leak
match-leak-kinds: definite
fun:calloc
fun:g_malloc0
...
fun:g_slice_alloc
...
fun:g_signal_handlers_disconnect_matched
}
{
g_tls_connection_gnutls_init_priorities
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_strdup
fun:g_tls_connection_gnutls_init_priorities
}
{
g_tls_connection_gnutls_heisenbug_likely_same_as_above
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
fun:g_strdup
...
fun:g_tls_client_connection_new
}
{
g_unix_signal_add_full
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:g_malloc
...
fun:g_thread_new
...
fun:g_unix_signal_add_full
}
{
glib_worker_1
Memcheck:Leak
...
fun:glib_worker_main
}
{
glib_dispatch_1
Memcheck:Leak
fun:malloc
fun:g_malloc
...
fun:get_dispatch
fun:g_main_dispatch
}
{
glib_dispatch_2
Memcheck:Leak
fun:calloc
fun:g_malloc0
...
fun:get_dispatch
fun:g_main_current_source
}
{
glib_dlopen_1
Memcheck:Leak
fun:calloc
fun:_dlerror_run
fun:dlopen*
...
fun:g_module_open
}
{
libc_tls
Memcheck:Leak
fun:calloc
fun:_dl_allocate_tls
fun:pthread_create*
}
{
soup_callback_1
Memcheck:Leak
fun:malloc
fun:g_malloc
fun:g_source_set_callback
fun:soup_add_completion_reffed
fun:soup_session_real_kick_queue
}

View File

@ -57,12 +57,12 @@ export G_DEBUG=fatal-warnings
# tarballs are predictable, except we don't want this in our tests.
unset TAR_OPTIONS
if test -n "${OT_TESTS_DEBUG:-}"; then
if test -n "${FLATPAK_TESTS_DEBUG:-}"; then
set -x
fi
if test -n "${OT_TESTS_VALGRIND:-}"; then
CMD_PREFIX="env G_SLICE=always-malloc valgrind -q --leak-check=full --num-callers=30 --suppressions=${test_srcdir}/flatpak-valgrind.supp"
if test -n "${FLATPAK_TESTS_VALGRIND:-}"; then
CMD_PREFIX="env G_SLICE=always-malloc valgrind -q --leak-check=full --error-exitcode=1 --num-callers=30 --suppressions=${test_srcdir}/flatpak.supp --suppressions=${test_srcdir}/glib.supp"
else
CMD_PREFIX=""
fi