diff options
Diffstat (limited to 'tools/test-networkmanager-service.py')
-rwxr-xr-x | tools/test-networkmanager-service.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py index 5f1f613766..08a06f3f04 100755 --- a/tools/test-networkmanager-service.py +++ b/tools/test-networkmanager-service.py @@ -858,6 +858,9 @@ class Settings(dbus.service.Object): ################################################################### +def stdin_cb(io, condition): + mainloop.quit() + def quit_cb(user_data): mainloop.quit() @@ -872,7 +875,12 @@ def main(): if not bus.request_name("org.freedesktop.NetworkManager"): sys.exit(1) - # quit after inactivity to ensure we don't stick around if tests fail + if len(sys.argv) > 1 and sys.argv[1] == '--exit-with-parent': + # Watch stdin; if it closes, assume our parent has crashed, and exit + io = GLib.IOChannel.unix_new(0) + io.add_watch(GLib.IOCondition.IN | GLib.IOCondition.HUP, stdin_cb) + + # also quit after inactivity to ensure we don't stick around if the above fails somehow GLib.timeout_add_seconds(20, quit_cb, None) try: |