summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2010-12-13 18:42:05 +0000
committerWill Thompson <will.thompson@collabora.co.uk>2010-12-13 18:43:12 +0000
commita956c87b288a609589c76f0b647caf4d22b5226e (patch)
tree6b33d5afaa90300407e4b93bb38a353e93bf5ea2
parent45ebc5fce121c294829e2c8beb358e5d3b71745f (diff)
message tests: split out abandon_container() test.fix-the-tests
This would have been a bit easier to read if it was in a separate function. I'm allergic to 500-line functions, even test cases.
-rw-r--r--dbus/dbus-message-util.c65
1 files changed, 34 insertions, 31 deletions
diff --git a/dbus/dbus-message-util.c b/dbus/dbus-message-util.c
index 6cd3162a..32c83287 100644
--- a/dbus/dbus-message-util.c
+++ b/dbus/dbus-message-util.c
@@ -942,6 +942,39 @@ verify_test_message (DBusMessage *message)
_dbus_assert_not_reached ("Didn't reach end of arguments");
}
+static void
+_dbus_message_test_abandon_container ()
+{
+ DBusMessage *message;
+ DBusMessageIter iter, array_iter, struct_iter;
+ const char *s = "peaches";
+ dbus_bool_t success;
+
+ message = dbus_message_new_method_call ("org.freedesktop.DBus.TestService",
+ "/org/freedesktop/TestPath",
+ "Foo.TestInterface",
+ "Method");
+
+ dbus_message_iter_init_append (message, &iter);
+
+ success = dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY,
+ "(ss)", &array_iter);
+ _dbus_assert (success);
+
+ success = dbus_message_iter_open_container (&array_iter, DBUS_TYPE_STRUCT,
+ NULL, &struct_iter);
+ _dbus_assert (success);
+
+ success = dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &s);
+ _dbus_assert (success);
+
+ /* uh-oh, error, try and unwind */
+ dbus_message_iter_abandon_container (&array_iter, &struct_iter);
+ dbus_message_iter_abandon_container (&array_iter, &iter);
+
+ dbus_message_unref (message);
+}
+
/**
* @ingroup DBusMessageInternals
* Unit test for DBusMessage.
@@ -995,7 +1028,6 @@ _dbus_message_test (const char *test_data_dir)
unsigned char v_BYTE;
unsigned char v2_BYTE;
dbus_bool_t v_BOOLEAN;
- DBusMessageIter iter, array_iter, struct_iter;
#ifdef HAVE_UNIX_FD_PASSING
int v_UNIX_FD;
#endif
@@ -1397,36 +1429,7 @@ _dbus_message_test (const char *test_data_dir)
check_memleaks ();
_dbus_check_fdleaks();
- /* Check that we can abandon a container */
- message = dbus_message_new_method_call ("org.freedesktop.DBus.TestService",
- "/org/freedesktop/TestPath",
- "Foo.TestInterface",
- "Method");
-
- dbus_message_iter_init_append (message, &iter);
-
- success = dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY,
- (DBUS_STRUCT_BEGIN_CHAR_AS_STRING
- DBUS_TYPE_STRING_AS_STRING
- DBUS_TYPE_STRING_AS_STRING
- DBUS_STRUCT_END_CHAR_AS_STRING),
- &array_iter);
- _dbus_assert (success);
-
- success = dbus_message_iter_open_container (&array_iter, DBUS_TYPE_STRUCT,
- NULL, &struct_iter);
- _dbus_assert (success);
-
- s = "peaches";
- success = dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_STRING, &s);
- _dbus_assert (success);
-
- /* uh-oh, error, try and unwind */
-
- dbus_message_iter_abandon_container (&array_iter, &struct_iter);
- dbus_message_iter_abandon_container (&array_iter, &iter);
-
- dbus_message_unref (message);
+ _dbus_message_test_abandon_container ();
/* Load all the sample messages from the message factory */
{