summaryrefslogtreecommitdiffstats
path: root/test/break-loader.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-10-12 00:55:11 +0000
committerHavoc Pennington <hp@redhat.com>2003-10-12 00:55:11 +0000
commit56cc4ae1a241d36b64dbe26de89714f7771f6e78 (patch)
treeb0180844a5d5ead62328f02071936a111ebf32d5 /test/break-loader.c
parenta4d928b7a0e9619e0cc7d69e7eec427cec1dc725 (diff)
2003-10-11 Havoc Pennington <hp@pobox.com>
* test/decode-gcov.c (function_solve_graph): make broken block graph a nonfatal error since it seems to be broken. Need to debug this. * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we can't just check type > INVALID < LAST anymore * dbus/dbus-message.c (dbus_message_get_signature): new function (dbus_message_has_signature): new function (struct DBusMessage): add signature field (right now it isn't sent over the wire, just generated on the fly) (dbus_message_copy): copy the signature, and init strings to proper length to avoid some reallocs (dbus_message_iter_init_array_iterator): return void, since it can't fail (dbus_message_iter_init_dict_iterator): return void since it can't fail (_dbus_message_loader_queue_messages): add silly temporary hack to fill in message->signature on load * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII characters, so they are relatively human-readable.
Diffstat (limited to 'test/break-loader.c')
-rw-r--r--test/break-loader.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/test/break-loader.c b/test/break-loader.c
index 3771d7cc..5a0c61f2 100644
--- a/test/break-loader.c
+++ b/test/break-loader.c
@@ -392,6 +392,31 @@ randomly_set_extreme_ints (const DBusString *orig_data,
extreme_ints[which]);
}
+static int
+random_type (void)
+{
+ const char types[] = {
+ DBUS_TYPE_INVALID,
+ DBUS_TYPE_NIL,
+ DBUS_TYPE_BYTE,
+ DBUS_TYPE_BOOLEAN,
+ DBUS_TYPE_INT32,
+ DBUS_TYPE_UINT32,
+ DBUS_TYPE_INT64,
+ DBUS_TYPE_UINT64,
+ DBUS_TYPE_DOUBLE,
+ DBUS_TYPE_STRING,
+ DBUS_TYPE_NAMED,
+ DBUS_TYPE_ARRAY,
+ DBUS_TYPE_DICT,
+ DBUS_TYPE_OBJECT_PATH
+ };
+
+ _dbus_assert (_DBUS_N_ELEMENTS (types) == DBUS_NUMBER_OF_TYPES + 1);
+
+ return types[ random_int_in_range (0, _DBUS_N_ELEMENTS (types)) ];
+}
+
static void
randomly_change_one_type (const DBusString *orig_data,
DBusString *mutated)
@@ -420,11 +445,9 @@ randomly_change_one_type (const DBusString *orig_data,
{
int b;
b = _dbus_string_get_byte (mutated, i);
- if (b > DBUS_TYPE_INVALID && b <= DBUS_TYPE_LAST)
+ if (_dbus_type_is_valid (b))
{
- _dbus_string_set_byte (mutated, i,
- random_int_in_range (DBUS_TYPE_INVALID,
- DBUS_TYPE_LAST + 1));
+ _dbus_string_set_byte (mutated, i, random_type ());
return;
}
++i;