mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-02 17:26:17 +01:00
gdbus-serialization: use check_serialization() instead of dbus-daemon
This test originally did not connect to the bus, which meant it was omitted from commits like415a8d81
that made sure none of GLib tests rely on the presence of an existing session bus. (In particular, Debian autobuilders don't have a session bus.) When test_double_array() was added, environments like the Debian autobuilders didn't catch the fact that this test relied on having a session bus, because it is often skipped in minimal environments due to its libdbus-1 dependency. We don't actually need to connect to a dbus-daemon here: it's enough to convert the message from GVariant to D-Bus serialization, and back into an in-memory representation through libdbus. That's what check_serialization() does, and I've verified that when I re-introduce bug #732754 by reverting commits627b49b
and2268628
locally, this test still fails. Bug: https://bugzilla.gnome.org/show_bug.cgi?id=744895 Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Reviewed-by: Colin Walters <walters@verbum.org>
This commit is contained in:
parent
23a5352cd8
commit
f42d2c1b54
@ -1060,33 +1060,23 @@ message_parse_empty_arrays_of_arrays (void)
|
||||
static void
|
||||
test_double_array (void)
|
||||
{
|
||||
GDBusConnection *conn;
|
||||
GError *error = NULL;
|
||||
GVariantBuilder builder;
|
||||
GVariant *body;
|
||||
|
||||
g_test_bug ("732754");
|
||||
|
||||
conn = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
|
||||
g_assert_no_error (error);
|
||||
|
||||
g_variant_builder_init (&builder, G_VARIANT_TYPE ("ad"));
|
||||
g_variant_builder_add (&builder, "d", (gdouble)0.0);
|
||||
g_variant_builder_add (&builder, "d", (gdouble)8.0);
|
||||
g_variant_builder_add (&builder, "d", (gdouble)22.0);
|
||||
g_variant_builder_add (&builder, "d", (gdouble)0.0);
|
||||
|
||||
/*
|
||||
* Some versions of glib encoded arrays of doubles wrong. Here we send such
|
||||
* a message and check that we didn't get bumped from the connection.
|
||||
*/
|
||||
g_dbus_connection_call_sync (conn, "org.freedesktop.DBus", "/path",
|
||||
"org.freedesktop.DBus", "InvalidNonExistantMethod",
|
||||
g_variant_new ("(@ad)", g_variant_builder_end (&builder)),
|
||||
NULL, G_DBUS_CALL_FLAGS_NO_AUTO_START, -1, NULL, &error);
|
||||
g_assert_error (error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD);
|
||||
g_error_free (error);
|
||||
|
||||
g_object_unref (conn);
|
||||
body = g_variant_new ("(@ad)", g_variant_builder_end (&builder));
|
||||
check_serialization (body,
|
||||
"value 0: array:\n"
|
||||
" double: 0.000000\n"
|
||||
" double: 8.000000\n"
|
||||
" double: 22.000000\n"
|
||||
" double: 0.000000\n");
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
Loading…
Reference in New Issue
Block a user