All tests: switch to a calling convention that does not rely on leaking
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Mon, 18 Mar 2013 12:52:40 +0000 (12:52 +0000)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Mon, 18 Mar 2013 19:11:17 +0000 (19:11 +0000)
commitafb97caf1afd2e78daf43b702da9a64172151216
treea9a9fe98aa71216d12cf47888aec91eed81a4ea3
parent452035512b3b7a78779a9e85ea9b215e7557930b
All tests: switch to a calling convention that does not rely on leaking

The standard main() used in each test relied on the fact that
get_suite() kept a ref to the TestCase subclass instance, which would
be stored in the global variables of the GTest infrastructure,
resulting in the TestCase never being freed and its final_teardown()
never being executed.

That's undesirable if final_teardown() is going to do something
significant, like terminating a temporary session bus. As a first
step towards that, run the tests with the TestCase subclass instance
globally referenced (so that the version passed to GTest can eventually
be a weak reference), and explicitly run final_tear_down() so that
even if there is a ref leak (as there is now), it gets executed.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
108 files changed:
tests/eds/add-contacts-stress-test.vala
tests/eds/add-persona.vala
tests/eds/anti-linking.vala
tests/eds/avatar-details.vala
tests/eds/create-remove-stores.vala
tests/eds/email-details.vala
tests/eds/enable-disable-stores.vala
tests/eds/im-details.vala
tests/eds/individual-retrieval.vala
tests/eds/link-personas-diff-stores.vala
tests/eds/link-personas.vala
tests/eds/linkable-properties.vala
tests/eds/name-details.vala
tests/eds/persona-store-tests.vala
tests/eds/phone-details.vala
tests/eds/postal-address-details.vala
tests/eds/remove-persona.vala
tests/eds/removing-contacts.vala
tests/eds/set-avatar.vala
tests/eds/set-birthday.vala
tests/eds/set-emails.vala
tests/eds/set-gender.vala
tests/eds/set-im-addresses.vala
tests/eds/set-is-favourite.vala
tests/eds/set-names.vala
tests/eds/set-notes.vala
tests/eds/set-phones.vala
tests/eds/set-postal-addresses.vala
tests/eds/set-properties-race.vala
tests/eds/set-roles.vala
tests/eds/set-structured-name.vala
tests/eds/set-urls.vala
tests/eds/store-removed.vala
tests/eds/updating-contacts.vala
tests/folks/abstract-field-details.vala
tests/folks/aggregation.vala
tests/folks/async-locking.vala
tests/folks/avatar-cache.vala
tests/folks/backend-loading.vala
tests/folks/init.vala
tests/folks/object-cache.vala
tests/folks/utils.vala
tests/key-file/individual-retrieval.vala
tests/lib/test-case.vala
tests/libsocialweb/aggregation.vala
tests/libsocialweb/dummy-lsw.vala
tests/telepathy/individual-properties.vala
tests/telepathy/individual-retrieval.vala
tests/telepathy/init.vala
tests/telepathy/persona-store-capabilities.vala
tests/tracker/add-contact.vala
tests/tracker/add-persona.vala
tests/tracker/additional-names-updates.vala
tests/tracker/avatar-details-interface.vala
tests/tracker/avatar-updates.vala
tests/tracker/birthday-details-interface.vala
tests/tracker/birthday-updates.vala
tests/tracker/default-contact.vala
tests/tracker/duplicated-emails.vala
tests/tracker/duplicated-phones.vala
tests/tracker/email-details-interface.vala
tests/tracker/emails-updates.vala
tests/tracker/family-name-updates.vala
tests/tracker/favourite-details-interface.vala
tests/tracker/favourite-updates.vala
tests/tracker/fullname-updates.vala
tests/tracker/gender-details-interface.vala
tests/tracker/given-name-updates.vala
tests/tracker/im-details-interface.vala
tests/tracker/imaddresses-updates.vala
tests/tracker/individual-retrieval.vala
tests/tracker/link-personas-via-local-ids.vala
tests/tracker/link-personas.vala
tests/tracker/match-all.vala
tests/tracker/match-email-addresses.vala
tests/tracker/match-im-addresses.vala
tests/tracker/match-known-emails.vala
tests/tracker/match-name.vala
tests/tracker/match-phone-number.vala
tests/tracker/name-details-interface.vala
tests/tracker/nickname-updates.vala
tests/tracker/note-details-interface.vala
tests/tracker/phone-details-interface.vala
tests/tracker/phones-updates.vala
tests/tracker/postal-address-details-interface.vala
tests/tracker/prefix-name-updates.vala
tests/tracker/remove-contact.vala
tests/tracker/remove-persona.vala
tests/tracker/role-details-interface.vala
tests/tracker/set-avatar.vala
tests/tracker/set-birthday.vala
tests/tracker/set-duplicate-email.vala
tests/tracker/set-emails.vala
tests/tracker/set-favourite.vala
tests/tracker/set-full-name.vala
tests/tracker/set-gender.vala
tests/tracker/set-im-addresses.vala
tests/tracker/set-nickname.vala
tests/tracker/set-notes.vala
tests/tracker/set-null-avatar.vala
tests/tracker/set-phones.vala
tests/tracker/set-postal-addresses.vala
tests/tracker/set-roles.vala
tests/tracker/set-structured-name.vala
tests/tracker/set-urls.vala
tests/tracker/suffix-name-updates.vala
tests/tracker/url-details-interface.vala
tests/tracker/website-updates.vala