diff --git a/libfwupd/fwupd-self-test.c b/libfwupd/fwupd-self-test.c index 5dccd4f29..351d2a14b 100644 --- a/libfwupd/fwupd-self-test.c +++ b/libfwupd/fwupd-self-test.c @@ -193,6 +193,19 @@ fwupd_client_updates_func (void) g_assert_cmpstr (fwupd_result_get_device_id (res), !=, NULL); } +static gboolean +valid_dbus(void) +{ + GDBusConnection *conn; + conn = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL); + if (conn != NULL) { + g_object_unref (conn); + return TRUE; + } + g_debug("D-Bus system bus unavailable, skipping tests."); + return FALSE; +} + int main (int argc, char **argv) { @@ -204,8 +217,9 @@ main (int argc, char **argv) /* tests go here */ g_test_add_func ("/fwupd/enums", fwupd_enums_func); g_test_add_func ("/fwupd/result", fwupd_result_func); - g_test_add_func ("/fwupd/client{devices}", fwupd_client_devices_func); - g_test_add_func ("/fwupd/client{updates}", fwupd_client_updates_func); + if (valid_dbus()) { + g_test_add_func ("/fwupd/client{devices}", fwupd_client_devices_func); + g_test_add_func ("/fwupd/client{updates}", fwupd_client_updates_func); + } return g_test_run (); } -