Rewrite apps test to ensure children are killed
authorColin Walters <walters@verbum.org>
Wed, 9 Jun 2010 01:43:16 +0000 (21:43 -0400)
committerColin Walters <walters@verbum.org>
Thu, 10 Jun 2010 17:14:29 +0000 (13:14 -0400)
commitcc19922183b18683da192cc7371a510cf648ec64
tree34c3faffde5843b2eade4b47f111aff9ff62f25e
parent8d3fea9cff848d1b45c0a6371ef448c11d992757
Rewrite apps test to ensure children are killed

Create a function run_with_application that both ensures the
app is running exactly while the test is running, which most
of the tests use.  We start it beforehand, and kill it after.
This avoids having any interdependence between the tests (and
there definitely was before, because we didn't wait for
the process to actually terminate after a kill() call).

Also, open a pipe between the two, and have the child app
monitor that pipe.  If it gets closed (e.g. because the parent
died), the child exits.  This is the most reliable way to
avoid stale children; before, if we failed an assertion, the
parent would abort, and not run kill().

https://bugzilla.gnome.org/show_bug.cgi?id=621034
gio/tests/testapp.c
gio/tests/testapps.c