diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-04-06 12:13:13 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-04-06 12:13:13 +0000 |
commit | c4a5da3e597e5ff782b52e48bc8ed2996ea90fa0 (patch) | |
tree | c3199e3b7afcc16a2d327feae559656f1ce5f5d1 /dbus/dbus-message-util.c | |
parent | 54eabbe892f34d794daf990138480f98f84ea82f (diff) |
dbus/dbus-message-util.c, dbus/dbus-message.c, dbus/dbus-message.h:
Add API to convert a DBusMessage to/from a byte array.
Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>, approved by
Havoc Pennington.
Diffstat (limited to 'dbus/dbus-message-util.c')
-rw-r--r-- | dbus/dbus-message-util.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/dbus/dbus-message-util.c b/dbus/dbus-message-util.c index 67cfffdc..fb6fad8f 100644 --- a/dbus/dbus-message-util.c +++ b/dbus/dbus-message-util.c @@ -1222,6 +1222,46 @@ _dbus_message_test (const char *test_data_dir) verify_test_message (message); + { + /* Marshal and demarshal the message. */ + + DBusMessage *message2; + DBusError error; + char *marshalled = NULL; + int len = 0; + + dbus_error_init (&error); + + if (!dbus_message_marshal (message, &marshalled, &len)) + _dbus_assert_not_reached ("failed to marshal message"); + + _dbus_assert (len != 0); + _dbus_assert (marshalled != NULL); + + message2 = dbus_message_demarshal (marshalled, len, &error); + + _dbus_assert (message2 != NULL); + _dbus_assert (!dbus_error_is_set (&error)); + verify_test_message (message2); + + dbus_message_unref (message2); + dbus_free (marshalled); + + /* Demarshal invalid message. */ + + message2 = dbus_message_demarshal ("invalid", 7, &error); + _dbus_assert (message2 == NULL); + _dbus_assert (dbus_error_is_set (&error)); + dbus_error_free (&error); + + /* Demarshal invalid (empty) message. */ + + message2 = dbus_message_demarshal ("", 0, &error); + _dbus_assert (message2 == NULL); + _dbus_assert (dbus_error_is_set (&error)); + dbus_error_free (&error); + } + dbus_message_unref (message); _dbus_message_loader_unref (loader); |