From 9c5d01f0fe1ba855c0f7518c4f27d75a609b8faa Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 2 Aug 2003 03:39:35 +0000 Subject: 2003-08-01 Havoc Pennington * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock): implement * dbus/dbus-message.c (dbus_message_get_type): new function * doc/dbus-specification.sgml: add "type" byte to messages --- test/data/invalid-messages/bad-endian.message | 2 +- test/data/valid-messages/simplest-manual.message | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/data/invalid-messages/bad-endian.message b/test/data/invalid-messages/bad-endian.message index 7a7b75d1..b1432359 100644 --- a/test/data/invalid-messages/bad-endian.message +++ b/test/data/invalid-messages/bad-endian.message @@ -1,7 +1,7 @@ ## message with invalid endianness tag BYTE 'i' -BYTE 0 +BYTE 1 BYTE 0 BYTE 0 LENGTH Header diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index 8eed1e5f..f0ecccdd 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -3,7 +3,7 @@ LITTLE_ENDIAN BYTE 'l' -BYTE 0 +BYTE 1 BYTE 0 BYTE 0 LENGTH Header -- cgit From b29ea9115ea3277354b7ccbe442026279220f4ac Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Mon, 11 Aug 2003 02:11:58 +0000 Subject: 2003-08-10 Havoc Pennington * tools/dbus-send.c (main): add --type argument, for now supporting only method_call and signal types. * tools/dbus-print-message.c: print message type * dbus/dbus-connection.c (_dbus_connection_new_for_transport): init connection->objects * doc/dbus-specification.sgml: fix sgml * bus/*.c: port over to object-instance API changes * test/test-service.c: ditto * dbus/dbus-message.c (dbus_message_create_header): allow #NULL name, we will have to fix up the rest of the code to also handle this (dbus_message_new): generic message-creation call (set_string_field): allow appending name field --- test/decode-gcov.c | 4 ++++ test/test-service.c | 16 +++++----------- 2 files changed, 9 insertions(+), 11 deletions(-) (limited to 'test') diff --git a/test/decode-gcov.c b/test/decode-gcov.c index d13340e3..a7a4478b 100644 --- a/test/decode-gcov.c +++ b/test/decode-gcov.c @@ -38,6 +38,10 @@ #include #include +#ifndef DBUS_HAVE_INT64 +#error "gcov support can't be built without 64-bit integer support" +#endif + static void die (const char *message) { diff --git a/test/test-service.c b/test/test-service.c index c2757acc..0771f33c 100644 --- a/test/test-service.c +++ b/test/test-service.c @@ -37,9 +37,9 @@ handle_echo (DBusConnection *connection, DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID)) { - reply = dbus_message_new_error_reply (message, - error.name, - error.message); + reply = dbus_message_new_error (message, + error.name, + error.message); if (reply == NULL) die ("No memory\n"); @@ -52,7 +52,7 @@ handle_echo (DBusConnection *connection, return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; } - reply = dbus_message_new_reply (message); + reply = dbus_message_new_method_return (message); if (reply == NULL) die ("No memory\n"); @@ -99,11 +99,6 @@ main (int argc, DBusConnection *connection; DBusError error; DBusMessageHandler *handler; - const char *to_handle[] = { - "org.freedesktop.DBus.TestSuiteEcho", - "org.freedesktop.DBus.TestSuiteExit", - DBUS_MESSAGE_LOCAL_DISCONNECT, - }; int result; dbus_error_init (&error); @@ -127,8 +122,7 @@ main (int argc, if (handler == NULL) die ("No memory"); - if (!dbus_connection_register_handler (connection, handler, to_handle, - _DBUS_N_ELEMENTS (to_handle))) + if (!dbus_connection_add_filter (connection, handler)) die ("No memory"); result = dbus_bus_acquire_service (connection, "org.freedesktop.DBus.TestSuiteEchoService", -- cgit From 5c1a8e44903bd1dedc8cbefad78b0c8b61daada5 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Tue, 12 Aug 2003 02:43:50 +0000 Subject: 2003-08-11 Havoc Pennington * bus/test.c (client_disconnect_handler): change to return HANDLED (would have been REMOVE_MESSAGE) * dbus/dbus-object.h (enum DBusHandlerResult): rename to HANDLED/NOT_YET_HANDLED instead of REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it should be used. --- test/test-service.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/test-service.c b/test/test-service.c index 0771f33c..fffe4187 100644 --- a/test/test-service.c +++ b/test/test-service.c @@ -49,7 +49,7 @@ handle_echo (DBusConnection *connection, dbus_message_unref (reply); - return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } reply = dbus_message_new_method_return (message); @@ -68,7 +68,7 @@ handle_echo (DBusConnection *connection, dbus_message_unref (reply); - return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } static DBusHandlerResult @@ -84,11 +84,11 @@ filter_func (DBusMessageHandler *handler, { dbus_connection_disconnect (connection); quit (); - return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + return DBUS_HANDLER_RESULT_HANDLED; } else { - return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } } -- cgit From 68a3c593b9e77b33614726363c7b6fd85d113021 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Mon, 18 Aug 2003 22:43:30 +0000 Subject: 2003-08-18 Havoc Pennington * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix dumb bug created earlier (wrong order of args to decode_header_data()) * tools/dbus-send.c: port * tools/dbus-print-message.c (print_message): port * test/data/*messages: port all messages over * dbus/dbus-message-builder.c: support including message type * bus/driver.c: port over * bus/dispatch.c: port over to new stuff * dbus/dbus-connection.c (_dbus_connection_new_for_transport): rename disconnect signal to "Disconnected" --- test/data/incomplete-messages/missing-body.message | 7 +++++-- test/data/invalid-messages/array-of-nil.message | 9 +++++++-- test/data/invalid-messages/array-with-mixed-types.message | 9 +++++++-- test/data/invalid-messages/bad-boolean-array.message | 9 +++++++-- test/data/invalid-messages/bad-boolean.message | 9 +++++++-- test/data/invalid-messages/bad-endian.message | 14 ++++++++++++-- test/data/invalid-messages/local-namespace.message | 11 ++++++++--- test/data/invalid-messages/no-dot-in-name.message | 13 +++++++++---- test/data/invalid-messages/not-nul-header-padding.message | 10 +++++++++- test/data/invalid-messages/overlong-name.message | 9 +++++++-- .../invalid-messages/too-little-header-padding.message | 10 +++++++++- .../too-much-header-padding-by-far.message | 10 +++++++++- test/data/invalid-messages/too-much-header-padding.message | 10 +++++++++- test/data/invalid-messages/too-short-dict.message | 13 ++++++++++--- test/data/valid-messages/array-of-array-of-uint32.message | 7 +++++-- test/data/valid-messages/dict-simple.message | 7 +++++-- test/data/valid-messages/dict.message | 7 +++++-- test/data/valid-messages/emptiness.message | 7 +++++-- test/data/valid-messages/lots-of-arguments.message | 7 +++++-- test/data/valid-messages/no-padding.message | 7 +++++-- test/data/valid-messages/opposite-endian.message | 11 +++++------ test/data/valid-messages/recursive-types.message | 7 +++++-- test/data/valid-messages/simplest-manual.message | 7 ++++++- test/data/valid-messages/simplest.message | 9 +++++++-- test/data/valid-messages/standard-acquire-service.message | 9 ++++++--- test/data/valid-messages/standard-hello.message | 9 ++++++--- test/data/valid-messages/standard-list-services.message | 9 ++++++--- test/data/valid-messages/standard-service-exists.message | 9 ++++++--- test/data/valid-messages/unknown-header-field.message | 7 +++++-- test/test-service.c | 12 +++++++++--- 30 files changed, 206 insertions(+), 68 deletions(-) (limited to 'test') diff --git a/test/data/incomplete-messages/missing-body.message b/test/data/incomplete-messages/missing-body.message index 71ac5abc..69e371e0 100644 --- a/test/data/incomplete-messages/missing-body.message +++ b/test/data/incomplete-messages/missing-body.message @@ -1,9 +1,12 @@ ## message that's missing an expected body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 diff --git a/test/data/invalid-messages/array-of-nil.message b/test/data/invalid-messages/array-of-nil.message index e86e6a10..4810d318 100644 --- a/test/data/invalid-messages/array-of-nil.message +++ b/test/data/invalid-messages/array-of-nil.message @@ -1,9 +1,14 @@ # Message with an array of NIL (not allowed) -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/invalid-messages/array-with-mixed-types.message b/test/data/invalid-messages/array-with-mixed-types.message index 763a6c29..1bdd549b 100644 --- a/test/data/invalid-messages/array-with-mixed-types.message +++ b/test/data/invalid-messages/array-with-mixed-types.message @@ -1,10 +1,15 @@ # Message with an array of array where the child arrays are of # different types -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/invalid-messages/bad-boolean-array.message b/test/data/invalid-messages/bad-boolean-array.message index c045b978..e4df1903 100644 --- a/test/data/invalid-messages/bad-boolean-array.message +++ b/test/data/invalid-messages/bad-boolean-array.message @@ -1,10 +1,15 @@ ## a message with an invalid boolean array ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/bad-boolean.message b/test/data/invalid-messages/bad-boolean.message index 00a29626..7b518d57 100644 --- a/test/data/invalid-messages/bad-boolean.message +++ b/test/data/invalid-messages/bad-boolean.message @@ -1,10 +1,15 @@ ## a message with an invalid boolean value ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/bad-endian.message b/test/data/invalid-messages/bad-endian.message index b1432359..c08f0188 100644 --- a/test/data/invalid-messages/bad-endian.message +++ b/test/data/invalid-messages/bad-endian.message @@ -4,10 +4,20 @@ BYTE 'i' BYTE 1 BYTE 0 BYTE 0 + LENGTH Header LENGTH Body -## client serial -INT32 7 + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + +ALIGN 8 + END_LENGTH Header + START_LENGTH Body END_LENGTH Body diff --git a/test/data/invalid-messages/local-namespace.message b/test/data/invalid-messages/local-namespace.message index ceb3053d..f485d70c 100644 --- a/test/data/invalid-messages/local-namespace.message +++ b/test/data/invalid-messages/local-namespace.message @@ -2,10 +2,15 @@ ## invalid ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Local' +FIELD_NAME mebr TYPE STRING -STRING 'org.freedesktop.Local.Disconnect' +STRING 'Disconnected' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/no-dot-in-name.message b/test/data/invalid-messages/no-dot-in-name.message index 4cde0d1f..53e288d0 100644 --- a/test/data/invalid-messages/no-dot-in-name.message +++ b/test/data/invalid-messages/no-dot-in-name.message @@ -1,10 +1,15 @@ -## a message with dotless name +## a message with dotless interface ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'NoDotInHere' +FIELD_NAME mebr TYPE STRING -STRING 'NoNamespaceHere' +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/not-nul-header-padding.message b/test/data/invalid-messages/not-nul-header-padding.message index 1172af4b..f98812c2 100644 --- a/test/data/invalid-messages/not-nul-header-padding.message +++ b/test/data/invalid-messages/not-nul-header-padding.message @@ -1,7 +1,15 @@ ## has one non-nul byte in header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/overlong-name.message b/test/data/invalid-messages/overlong-name.message index 0fdc7bc9..4108a037 100644 --- a/test/data/invalid-messages/overlong-name.message +++ b/test/data/invalid-messages/overlong-name.message @@ -1,10 +1,15 @@ ## a message with too-long name field ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.foo.bar.this.is.really.long 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200' + +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/too-little-header-padding.message b/test/data/invalid-messages/too-little-header-padding.message index cf73be68..f6e7af4b 100644 --- a/test/data/invalid-messages/too-little-header-padding.message +++ b/test/data/invalid-messages/too-little-header-padding.message @@ -1,7 +1,15 @@ ## has one byte missing from header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/too-much-header-padding-by-far.message b/test/data/invalid-messages/too-much-header-padding-by-far.message index a60aca88..6cc5b391 100644 --- a/test/data/invalid-messages/too-much-header-padding-by-far.message +++ b/test/data/invalid-messages/too-much-header-padding-by-far.message @@ -1,7 +1,15 @@ ## has one byte extra header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/too-much-header-padding.message b/test/data/invalid-messages/too-much-header-padding.message index ebf154eb..6cf004b9 100644 --- a/test/data/invalid-messages/too-much-header-padding.message +++ b/test/data/invalid-messages/too-much-header-padding.message @@ -1,7 +1,15 @@ ## has one byte extra header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call + +FIELD_NAME ifce +TYPE STRING +STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + FIELD_NAME unkn TYPE STRING STRING 'a' diff --git a/test/data/invalid-messages/too-short-dict.message b/test/data/invalid-messages/too-short-dict.message index ba200461..59621126 100644 --- a/test/data/invalid-messages/too-short-dict.message +++ b/test/data/invalid-messages/too-short-dict.message @@ -1,11 +1,18 @@ # Message with lots of different argument types -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' -END_LENGTH Header +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 + +END_LENGTH Header + START_LENGTH Body TYPE DICT LENGTH Dict diff --git a/test/data/valid-messages/array-of-array-of-uint32.message b/test/data/valid-messages/array-of-array-of-uint32.message index 82b8273d..4fea3d25 100644 --- a/test/data/valid-messages/array-of-array-of-uint32.message +++ b/test/data/valid-messages/array-of-array-of-uint32.message @@ -1,9 +1,12 @@ # Message with an array of array of uint32 -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict-simple.message b/test/data/valid-messages/dict-simple.message index 34fb47d9..9450ef14 100644 --- a/test/data/valid-messages/dict-simple.message +++ b/test/data/valid-messages/dict-simple.message @@ -1,9 +1,12 @@ # A simple dict -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict.message b/test/data/valid-messages/dict.message index 6b9d004e..6b15c627 100644 --- a/test/data/valid-messages/dict.message +++ b/test/data/valid-messages/dict.message @@ -1,9 +1,12 @@ # Dict with different values -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/emptiness.message b/test/data/valid-messages/emptiness.message index 87196b16..edc7a6cb 100644 --- a/test/data/valid-messages/emptiness.message +++ b/test/data/valid-messages/emptiness.message @@ -1,9 +1,12 @@ # Empty arrays and strings -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/lots-of-arguments.message b/test/data/valid-messages/lots-of-arguments.message index 6549646e..36cad4cd 100644 --- a/test/data/valid-messages/lots-of-arguments.message +++ b/test/data/valid-messages/lots-of-arguments.message @@ -1,9 +1,12 @@ # Message with lots of different argument types -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/no-padding.message b/test/data/valid-messages/no-padding.message index b47dca78..0241c364 100644 --- a/test/data/valid-messages/no-padding.message +++ b/test/data/valid-messages/no-padding.message @@ -1,11 +1,14 @@ ## Message with no header padding ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call -FIELD_NAME name +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' ## this byte array is filled with zeros to the natural length ## of the header diff --git a/test/data/valid-messages/opposite-endian.message b/test/data/valid-messages/opposite-endian.message index f8975b8b..b225f013 100644 --- a/test/data/valid-messages/opposite-endian.message +++ b/test/data/valid-messages/opposite-endian.message @@ -3,15 +3,14 @@ OPPOSITE_ENDIAN ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call -FIELD_NAME rply -TYPE UINT32 -UINT32 10000 - -FIELD_NAME name +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' FIELD_NAME unkn TYPE INT32 diff --git a/test/data/valid-messages/recursive-types.message b/test/data/valid-messages/recursive-types.message index 2ac6ad13..a8ef0441 100644 --- a/test/data/valid-messages/recursive-types.message +++ b/test/data/valid-messages/recursive-types.message @@ -1,11 +1,14 @@ ## Message with recursive types ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER +VALID_HEADER method_call -FIELD_NAME name +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index f0ecccdd..533c1179 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -10,9 +10,14 @@ LENGTH Header LENGTH Body ## client serial INT32 7 -FIELD_NAME name + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest.message b/test/data/valid-messages/simplest.message index 7bb1872d..868d270e 100644 --- a/test/data/valid-messages/simplest.message +++ b/test/data/valid-messages/simplest.message @@ -1,10 +1,15 @@ ## simplest possible valid message ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call + +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' + ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/standard-acquire-service.message b/test/data/valid-messages/standard-acquire-service.message index 5056d8df..081473f0 100644 --- a/test/data/valid-messages/standard-acquire-service.message +++ b/test/data/valid-messages/standard-acquire-service.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.AcquireService message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.AcquireService' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'AcquireService' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-hello.message b/test/data/valid-messages/standard-hello.message index f3f65961..ed9ff9e7 100644 --- a/test/data/valid-messages/standard-hello.message +++ b/test/data/valid-messages/standard-hello.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.Hello message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.Hello' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'Hello' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-list-services.message b/test/data/valid-messages/standard-list-services.message index 9dfb72e3..9a6f1d87 100644 --- a/test/data/valid-messages/standard-list-services.message +++ b/test/data/valid-messages/standard-list-services.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.ListServices message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.ListServices' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'ListServices' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-service-exists.message b/test/data/valid-messages/standard-service-exists.message index 6755fea6..c53319b6 100644 --- a/test/data/valid-messages/standard-service-exists.message +++ b/test/data/valid-messages/standard-service-exists.message @@ -1,9 +1,12 @@ # Standard org.freedesktop.DBus.ServiceExists message -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING -STRING 'org.freedesktop.DBus.ServiceExists' +STRING 'org.freedesktop.DBus' +FIELD_NAME mebr +TYPE STRING +STRING 'ServiceExists' FIELD_NAME srvc TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 18ab379c..17ae116a 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -1,10 +1,13 @@ ## message with a 'name' header field and unknown 'unkn' field ## VALID_HEADER includes a LENGTH Header and LENGTH Body -VALID_HEADER -FIELD_NAME name +VALID_HEADER method_call +FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' +FIELD_NAME mebr +TYPE STRING +STRING 'Bar' FIELD_NAME unkn TYPE INT32 INT32 0xfeeb diff --git a/test/test-service.c b/test/test-service.c index fffe4187..533f94ae 100644 --- a/test/test-service.c +++ b/test/test-service.c @@ -77,10 +77,16 @@ filter_func (DBusMessageHandler *handler, DBusMessage *message, void *user_data) { - if (dbus_message_has_name (message, "org.freedesktop.DBus.TestSuiteEcho")) + if (dbus_message_is_method_call (message, + "org.freedesktop.TestSuite", + "Echo")) return handle_echo (connection, message); - else if (dbus_message_has_name (message, "org.freedesktop.DBus.TestSuiteExit") || - dbus_message_has_name (message, DBUS_MESSAGE_LOCAL_DISCONNECT)) + else if (dbus_message_is_method_call (message, + "org.freedesktop.TestSuite", + "Exit") || + dbus_message_is_signal (message, + DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL, + "Disconnected")) { dbus_connection_disconnect (connection); quit (); -- cgit From d0c588575e3e2911eacb098fac26f02d1010cbfd Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 20 Aug 2003 14:48:04 +0000 Subject: 2003-08-19 Havoc Pennington * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER (dbus_message_is_error): fix this function * bus/dbus-daemon-1.1: clarify logic on when / rules match * bus/policy.c (bus_client_policy_check_can_receive): fix code to reflect clarified man page (bus_client_policy_check_can_send): ditto * bus/session.conf.in: fixup * bus/system.conf.in: fixup --- test/data/valid-config-files/debug-allow-all-sha1.conf.in | 4 ++-- test/data/valid-config-files/debug-allow-all.conf.in | 4 ++-- test/data/valid-config-files/system.d/test.conf | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/test/data/valid-config-files/debug-allow-all-sha1.conf.in b/test/data/valid-config-files/debug-allow-all-sha1.conf.in index 6db93f0c..7fb76c55 100644 --- a/test/data/valid-config-files/debug-allow-all-sha1.conf.in +++ b/test/data/valid-config-files/debug-allow-all-sha1.conf.in @@ -8,8 +8,8 @@ @TEST_SERVICE_DIR@ DBUS_COOKIE_SHA1 - - + + diff --git a/test/data/valid-config-files/debug-allow-all.conf.in b/test/data/valid-config-files/debug-allow-all.conf.in index 0dd8ed4a..ea1aec8c 100644 --- a/test/data/valid-config-files/debug-allow-all.conf.in +++ b/test/data/valid-config-files/debug-allow-all.conf.in @@ -7,8 +7,8 @@ unix:tmpdir=@TEST_SOCKET_DIR@ @TEST_SERVICE_DIR@ - - + + diff --git a/test/data/valid-config-files/system.d/test.conf b/test/data/valid-config-files/system.d/test.conf index a683679e..3d1b2f54 100644 --- a/test/data/valid-config-files/system.d/test.conf +++ b/test/data/valid-config-files/system.d/test.conf @@ -9,12 +9,12 @@ this user can only send the one kind of message --> - + - + -- cgit From 5fd1e389e1c1c12ad4a55c2af6abdc8e7a2f6d41 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sun, 31 Aug 2003 01:51:44 +0000 Subject: 2003-08-30 Havoc Pennington * test/data/valid-config-files/system.d/test.conf: change to root for the user so warnings don't get printed * dbus/dbus-message.c: add dbus_message_get_path, dbus_message_set_path * dbus/dbus-object-tree.c (do_test_dispatch): add test of dispatching to a path * dbus/dbus-string.c (_dbus_string_validate_path): add * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement (_dbus_marshal_object_path): implement * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field to contain the path to the target object (DBUS_HEADER_FIELD_SENDER_SERVICE): rename DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service --- test/data/valid-config-files/system.d/test.conf | 4 ++-- test/data/valid-messages/array-of-array-of-uint32.message | 7 +------ test/data/valid-messages/dict-simple.message | 7 +------ test/data/valid-messages/dict.message | 7 +------ test/data/valid-messages/emptiness.message | 7 +------ test/data/valid-messages/lots-of-arguments.message | 7 +------ test/data/valid-messages/no-padding.message | 7 +------ test/data/valid-messages/opposite-endian.message | 7 +------ test/data/valid-messages/recursive-types.message | 7 +------ test/data/valid-messages/simplest-manual.message | 3 +++ test/data/valid-messages/simplest.message | 8 +------- test/data/valid-messages/standard-acquire-service.message | 3 +++ test/data/valid-messages/standard-hello.message | 3 +++ test/data/valid-messages/standard-list-services.message | 3 +++ test/data/valid-messages/standard-service-exists.message | 3 +++ test/data/valid-messages/unknown-header-field.message | 7 +------ 16 files changed, 27 insertions(+), 63 deletions(-) (limited to 'test') diff --git a/test/data/valid-config-files/system.d/test.conf b/test/data/valid-config-files/system.d/test.conf index 3d1b2f54..10a79847 100644 --- a/test/data/valid-config-files/system.d/test.conf +++ b/test/data/valid-config-files/system.d/test.conf @@ -5,9 +5,9 @@ policy so that a particular user can own a service, and other connections can get messages from it --> - - + diff --git a/test/data/valid-messages/array-of-array-of-uint32.message b/test/data/valid-messages/array-of-array-of-uint32.message index 4fea3d25..692eca06 100644 --- a/test/data/valid-messages/array-of-array-of-uint32.message +++ b/test/data/valid-messages/array-of-array-of-uint32.message @@ -1,12 +1,7 @@ # Message with an array of array of uint32 VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict-simple.message b/test/data/valid-messages/dict-simple.message index 9450ef14..6986d439 100644 --- a/test/data/valid-messages/dict-simple.message +++ b/test/data/valid-messages/dict-simple.message @@ -1,12 +1,7 @@ # A simple dict VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/dict.message b/test/data/valid-messages/dict.message index 6b15c627..0f997b1f 100644 --- a/test/data/valid-messages/dict.message +++ b/test/data/valid-messages/dict.message @@ -1,12 +1,7 @@ # Dict with different values VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/emptiness.message b/test/data/valid-messages/emptiness.message index edc7a6cb..dbf531ca 100644 --- a/test/data/valid-messages/emptiness.message +++ b/test/data/valid-messages/emptiness.message @@ -1,12 +1,7 @@ # Empty arrays and strings VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/lots-of-arguments.message b/test/data/valid-messages/lots-of-arguments.message index 36cad4cd..993755ab 100644 --- a/test/data/valid-messages/lots-of-arguments.message +++ b/test/data/valid-messages/lots-of-arguments.message @@ -1,12 +1,7 @@ # Message with lots of different argument types VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header ALIGN 8 START_LENGTH Body diff --git a/test/data/valid-messages/no-padding.message b/test/data/valid-messages/no-padding.message index 0241c364..e6d27d9d 100644 --- a/test/data/valid-messages/no-padding.message +++ b/test/data/valid-messages/no-padding.message @@ -3,12 +3,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS ## this byte array is filled with zeros to the natural length ## of the header diff --git a/test/data/valid-messages/opposite-endian.message b/test/data/valid-messages/opposite-endian.message index b225f013..c638b7b0 100644 --- a/test/data/valid-messages/opposite-endian.message +++ b/test/data/valid-messages/opposite-endian.message @@ -5,12 +5,7 @@ OPPOSITE_ENDIAN ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS FIELD_NAME unkn TYPE INT32 diff --git a/test/data/valid-messages/recursive-types.message b/test/data/valid-messages/recursive-types.message index a8ef0441..192fd9b7 100644 --- a/test/data/valid-messages/recursive-types.message +++ b/test/data/valid-messages/recursive-types.message @@ -3,12 +3,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index 533c1179..9779234b 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -11,6 +11,9 @@ LENGTH Body ## client serial INT32 7 +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/foo' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.Foo' diff --git a/test/data/valid-messages/simplest.message b/test/data/valid-messages/simplest.message index 868d270e..b9ddaf6b 100644 --- a/test/data/valid-messages/simplest.message +++ b/test/data/valid-messages/simplest.message @@ -2,13 +2,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call - -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS ALIGN 8 END_LENGTH Header diff --git a/test/data/valid-messages/standard-acquire-service.message b/test/data/valid-messages/standard-acquire-service.message index 081473f0..f313061f 100644 --- a/test/data/valid-messages/standard-acquire-service.message +++ b/test/data/valid-messages/standard-acquire-service.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.AcquireService message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-hello.message b/test/data/valid-messages/standard-hello.message index ed9ff9e7..795ede74 100644 --- a/test/data/valid-messages/standard-hello.message +++ b/test/data/valid-messages/standard-hello.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.Hello message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-list-services.message b/test/data/valid-messages/standard-list-services.message index 9a6f1d87..4c9c7c66 100644 --- a/test/data/valid-messages/standard-list-services.message +++ b/test/data/valid-messages/standard-list-services.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.ListServices message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/standard-service-exists.message b/test/data/valid-messages/standard-service-exists.message index c53319b6..ce14811a 100644 --- a/test/data/valid-messages/standard-service-exists.message +++ b/test/data/valid-messages/standard-service-exists.message @@ -1,6 +1,9 @@ # Standard org.freedesktop.DBus.ServiceExists message VALID_HEADER method_call +FIELD_NAME path +TYPE OBJECT_PATH +OBJECT_PATH '/org/freedesktop/DBus' FIELD_NAME ifce TYPE STRING STRING 'org.freedesktop.DBus' diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 17ae116a..5d95f812 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -2,12 +2,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce -TYPE STRING -STRING 'org.freedesktop.Foo' -FIELD_NAME mebr -TYPE STRING -STRING 'Bar' +REQUIRED_FIELDS FIELD_NAME unkn TYPE INT32 INT32 0xfeeb -- cgit From 1dd3f1788f1b4c9af2f4fa744abdb7892d0a14b9 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sun, 31 Aug 2003 03:25:24 +0000 Subject: 2003-08-30 Havoc Pennington * dbus/dbus-connection.c: purge DBusMessageHandler * dbus/dbus-message-handler.c: remove DBusMessageHandler, just use callbacks everywhere --- test/test-service.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'test') diff --git a/test/test-service.c b/test/test-service.c index 533f94ae..f22b1753 100644 --- a/test/test-service.c +++ b/test/test-service.c @@ -72,8 +72,7 @@ handle_echo (DBusConnection *connection, } static DBusHandlerResult -filter_func (DBusMessageHandler *handler, - DBusConnection *connection, +filter_func (DBusConnection *connection, DBusMessage *message, void *user_data) { @@ -104,7 +103,6 @@ main (int argc, { DBusConnection *connection; DBusError error; - DBusMessageHandler *handler; int result; dbus_error_init (&error); @@ -124,11 +122,8 @@ main (int argc, if (!test_connection_setup (loop, connection)) die ("No memory\n"); - handler = dbus_message_handler_new (filter_func, NULL, NULL); - if (handler == NULL) - die ("No memory"); - - if (!dbus_connection_add_filter (connection, handler)) + if (!dbus_connection_add_filter (connection, + filter_func, NULL, NULL)) die ("No memory"); result = dbus_bus_acquire_service (connection, "org.freedesktop.DBus.TestSuiteEchoService", @@ -145,10 +140,10 @@ main (int argc, _dbus_loop_run (loop); test_connection_shutdown (loop, connection); + + dbus_connection_remove_filter (connection, filter_func, NULL); dbus_connection_unref (connection); - - dbus_message_handler_unref (handler); _dbus_loop_unref (loop); loop = NULL; -- cgit From 636be6f92d4d8effd392ad1f894738849ec7af76 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Thu, 4 Sep 2003 00:21:36 +0000 Subject: 2003-09-03 Havoc Pennington * test/glib/Makefile.am: add this with random glib-linked test programs * glib/Makefile.am: remove the random test programs from here, leave only the unit tests * glib/dbus-gobject.c (_dbus_gobject_test): add test for uscore/javacaps conversion, and fix (get_object_property, set_object_property): change to .NET convention for mapping props to methods, set_FooBar/get_FooBar, since one language has such a convention we may as well copy it. Plus real methods in either getFooBar or get_foo_bar style won't collide with this convention. --- test/Makefile.am | 7 ++ test/glib/Makefile.am | 44 ++++++++ test/glib/test-dbus-glib.c | 52 ++++++++++ test/glib/test-profile.c | 226 +++++++++++++++++++++++++++++++++++++++++ test/glib/test-thread-client.c | 98 ++++++++++++++++++ test/glib/test-thread-server.c | 209 +++++++++++++++++++++++++++++++++++++ test/glib/test-thread.h | 1 + 7 files changed, 637 insertions(+) create mode 100644 test/glib/Makefile.am create mode 100644 test/glib/test-dbus-glib.c create mode 100644 test/glib/test-profile.c create mode 100644 test/glib/test-thread-client.c create mode 100644 test/glib/test-thread-server.c create mode 100644 test/glib/test-thread.h (limited to 'test') diff --git a/test/Makefile.am b/test/Makefile.am index 04df3510..ab04496e 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,6 +1,13 @@ +if HAVE_GLIB + GLIB_SUBDIR=glib +endif + +SUBDIRS=$(GLIB_SUBDIR) + INCLUDES=-I$(top_srcdir) $(DBUS_TEST_CFLAGS) + if DBUS_BUILD_TESTS TEST_BINARIES=test-service unbase64 break-loader spawn-test test-segfault test-exit test-sleep-forever else diff --git a/test/glib/Makefile.am b/test/glib/Makefile.am new file mode 100644 index 00000000..9f900b13 --- /dev/null +++ b/test/glib/Makefile.am @@ -0,0 +1,44 @@ +INCLUDES=-I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) $(DBUS_GLIB_CFLAGS) -I$(top_srcdir)/glib + +if DBUS_BUILD_TESTS + +if HAVE_GLIB_THREADS +THREAD_APPS=test-thread-server test-thread-client test-profile + +test_thread_server_SOURCES= \ + test-thread-server.c \ + test-thread.h + +test_thread_server_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la + +test_thread_client_SOURCES= \ + test-thread-client.c \ + test-thread.h + +test_thread_client_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la +endif + +## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we +## build even when not doing "make check" +noinst_PROGRAMS= test-dbus-glib $(THREAD_APPS) + +test_dbus_glib_SOURCES= \ + test-dbus-glib.c + +test_dbus_glib_LDADD= $(top_builddir)/glib/libdbus-glib-1.la + +else +### not building tests + +if HAVE_GLIB_THREADS +noinst_PROGRAMS=test-profile +endif + +endif + +if HAVE_GLIB_THREADS +test_profile_SOURCES= \ + test-profile.c + +test_profile_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la +endif \ No newline at end of file diff --git a/test/glib/test-dbus-glib.c b/test/glib/test-dbus-glib.c new file mode 100644 index 00000000..beda0a7a --- /dev/null +++ b/test/glib/test-dbus-glib.c @@ -0,0 +1,52 @@ +/* -*- mode: C; c-file-style: "gnu" -*- */ +#include "dbus-glib.h" +#include + +int +main (int argc, char **argv) +{ + DBusConnection *connection; + DBusMessage *message, *reply; + GMainLoop *loop; + DBusError error; + + if (argc < 2) + { + g_printerr ("Give the server address as an argument\n"); + return 1; + } + + loop = g_main_loop_new (NULL, FALSE); + + dbus_error_init (&error); + connection = dbus_connection_open (argv[1], &error); + if (connection == NULL) + { + g_printerr ("Failed to open connection to %s: %s\n", argv[1], + error.message); + dbus_error_free (&error); + return 1; + } + + dbus_connection_setup_with_g_main (connection, NULL); + + message = dbus_message_new_method_call (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS, + DBUS_PATH_ORG_FREEDESKTOP_DBUS, + DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS, + "Hello"); + + dbus_error_init (&error); + reply = dbus_connection_send_with_reply_and_block (connection, message, -1, &error); + if (reply == NULL) + { + g_printerr ("Error on hello message: %s\n", error.message); + dbus_error_free (&error); + return 1; + } + + g_print ("reply received\n"); + + g_main_loop_run (loop); + + return 0; +} diff --git a/test/glib/test-profile.c b/test/glib/test-profile.c new file mode 100644 index 00000000..6d9d8e7f --- /dev/null +++ b/test/glib/test-profile.c @@ -0,0 +1,226 @@ +/* -*- mode: C; c-file-style: "gnu" -*- */ +/* test-profile.c Program that does basic message-response for timing + * + * Copyright (C) 2003 Red Hat Inc. + * + * Licensed under the Academic Free License version 1.2 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* FIXME this test is wacky since both client and server keep + * sending each other method calls, but nobody sends + * a DBUS_MESSAGE_TYPE_METHOD_RETURN + */ + +#include +#include +#include "dbus-glib.h" +#include + +#define N_CLIENT_THREADS 1 +#define N_ITERATIONS 1000 +#define PAYLOAD_SIZE 30 +#define ECHO_PATH "/org/freedesktop/EchoTest" +#define ECHO_INTERFACE "org.freedesktop.EchoTest" +#define ECHO_METHOD "EchoProfile" + +static const char *address; +static unsigned char *payload; + +static void +send_echo_message (DBusConnection *connection) +{ + DBusMessage *message; + + message = dbus_message_new_method_call (NULL, ECHO_PATH, + ECHO_INTERFACE, ECHO_METHOD); + dbus_message_append_args (message, + DBUS_TYPE_STRING, "Hello World!", + DBUS_TYPE_INT32, 123456, +#if 1 + DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, + payload, PAYLOAD_SIZE, +#endif + DBUS_TYPE_INVALID); + + dbus_connection_send (connection, message, NULL); + dbus_message_unref (message); + dbus_connection_flush (connection); +} + +static DBusHandlerResult +client_filter (DBusConnection *connection, + DBusMessage *message, + void *user_data) +{ + int *iterations = user_data; + + if (dbus_message_is_signal (message, + DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL, + "Disconnected")) + { + g_printerr ("Client thread disconnected\n"); + exit (1); + } + else if (dbus_message_is_method_call (message, + ECHO_INTERFACE, ECHO_METHOD)) + { + *iterations += 1; + if (*iterations >= N_ITERATIONS) + { + g_print ("Completed %d iterations\n", N_ITERATIONS); + exit (0); + } + send_echo_message (connection); + return DBUS_HANDLER_RESULT_HANDLED; + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static void* +thread_func (void *data) +{ + DBusError error; + GMainContext *context; + GMainLoop *loop; + DBusConnection *connection; + int iterations; + + g_printerr ("Starting client thread\n"); + + dbus_error_init (&error); + connection = dbus_connection_open (address, &error); + if (connection == NULL) + { + g_printerr ("could not open connection: %s\n", error.message); + dbus_error_free (&error); + exit (1); + } + + iterations = 1; + + if (!dbus_connection_add_filter (connection, + client_filter, &iterations, NULL)) + g_error ("no memory"); + + context = g_main_context_new (); + loop = g_main_loop_new (context, FALSE); + + dbus_connection_setup_with_g_main (connection, context); + + g_printerr ("Client thread sending message to prime pingpong\n"); + send_echo_message (connection); + g_printerr ("Client thread sent message\n"); + + g_printerr ("Client thread entering main loop\n"); + g_main_loop_run (loop); + g_printerr ("Client thread exiting main loop\n"); + + g_main_loop_unref (loop); + g_main_context_unref (context); + + return NULL; +} + +static DBusHandlerResult +server_filter (DBusConnection *connection, + DBusMessage *message, + void *user_data) +{ + if (dbus_message_is_signal (message, + DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL, + "Disconnected")) + { + g_printerr ("Server thread disconnected\n"); + exit (1); + } + else if (dbus_message_is_method_call (message, + ECHO_INTERFACE, + ECHO_METHOD)) + { + send_echo_message (connection); + return DBUS_HANDLER_RESULT_HANDLED; + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static void +new_connection_callback (DBusServer *server, + DBusConnection *new_connection, + void *user_data) +{ + dbus_connection_ref (new_connection); + dbus_connection_setup_with_g_main (new_connection, NULL); + + if (!dbus_connection_add_filter (new_connection, + server_filter, NULL, NULL)) + g_error ("no memory"); + + + /* FIXME we leak the handler */ +} + +int +main (int argc, char *argv[]) +{ + GMainLoop *loop; + DBusError error; + DBusServer *server; + int i; + + g_thread_init (NULL); + dbus_gthread_init (); + + dbus_error_init (&error); + server = dbus_server_listen ("unix:tmpdir="DBUS_TEST_SOCKET_DIR, + &error); + if (server == NULL) + { + g_printerr ("Could not start server: %s\n", + error.message); + return 1; + } + + address = dbus_server_get_address (server); + payload = g_malloc (PAYLOAD_SIZE); + + dbus_server_set_new_connection_function (server, + new_connection_callback, + NULL, NULL); + + loop = g_main_loop_new (NULL, FALSE); + + dbus_server_setup_with_g_main (server, NULL); + + for (i = 0; i < N_CLIENT_THREADS; i++) + { + g_thread_create (thread_func, NULL, FALSE, NULL); + } + + g_printerr ("Server thread entering main loop\n"); + g_main_loop_run (loop); + g_printerr ("Server thread exiting main loop\n"); + + dbus_server_unref (server); + + g_main_loop_unref (loop); + + return 0; +} + diff --git a/test/glib/test-thread-client.c b/test/glib/test-thread-client.c new file mode 100644 index 00000000..d51d4e6a --- /dev/null +++ b/test/glib/test-thread-client.c @@ -0,0 +1,98 @@ +#include +#include "dbus-glib.h" +#include +#include +#include + +#include "test-thread.h" + +DBusConnection *connection; + +static gpointer +thread_func (gpointer data) +{ + gint32 threadnr = GPOINTER_TO_INT (data); + guint32 counter = 0; + DBusMessageIter iter; + DBusMessage *message; + char *str; + + while (1) + { + message = dbus_message_new_method_call (NULL, + "/org/freedesktop/ThreadTest", + "org.freedesktop.ThreadTest", + "TestMethod"); + + dbus_message_append_iter_init (message, &iter); + + if (!dbus_message_iter_append_int32 (&iter, threadnr)) + { + g_print ("thread %d: append threadnr failed\n", threadnr); + } + + if (!dbus_message_iter_append_uint32 (&iter, counter)) + { + g_print ("thread %d: append counter (%d) failed\n", threadnr, counter); + } + + str = g_strdup_printf ("Thread %d-%d\n", threadnr, counter); + if (!dbus_message_iter_append_string (&iter, str)) + { + g_print ("thread %d: append string (%s) failed\n", threadnr, str); + } + g_free (str); + + if (!dbus_connection_send (connection, + message, + NULL)) + { + g_print ("thread %d: send message failed\n", threadnr); + } + + dbus_message_unref (message); + + counter ++; + } + + return NULL; +} + +int +main (int argc, char *argv[]) +{ + GMainLoop *loop; + DBusError error; + int i; + + g_thread_init (NULL); + dbus_gthread_init (); + + if(argc < 2) + { + g_error("Need an address as argv[1]\n"); + return 1; + } + + dbus_error_init (&error); + connection = dbus_connection_open (argv[1], &error); + if (connection == NULL) + { + g_printerr ("could not open connection: %s\n", error.message); + dbus_error_free (&error); + return 1; + } + + dbus_connection_setup_with_g_main (connection, NULL); + + for (i = 0; i < N_TEST_THREADS; i++) + { + g_thread_create (thread_func, GINT_TO_POINTER (i), FALSE, NULL); + } + + loop = g_main_loop_new (NULL, FALSE); + g_main_run (loop); + + return 0; +} + diff --git a/test/glib/test-thread-server.c b/test/glib/test-thread-server.c new file mode 100644 index 00000000..8898ca7f --- /dev/null +++ b/test/glib/test-thread-server.c @@ -0,0 +1,209 @@ +#include +#include "dbus-glib.h" +#include +#include + +#include "test-thread.h" + +typedef struct { + guint32 counters[N_TEST_THREADS]; +} ThreadTestData; + +static ThreadTestData * +thread_test_data_new (void) +{ + ThreadTestData *data; + + data = g_new0 (ThreadTestData, 1); + + return data; +} + +static void +thread_test_data_free (ThreadTestData *data) +{ + g_free (data); +} + +static DBusHandlerResult +filter_test_message (DBusConnection *connection, + DBusMessage *message, + void *user_data) +{ + ThreadTestData *data = user_data; + DBusMessageIter iter; + gint32 threadnr; + guint32 counter; + char *str, *expected_str; + GString *counter_str; + int i; + + if (!dbus_message_is_method_call (message, "org.freedesktop.ThreadTest", + "TestMethod")) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + dbus_message_iter_init (message, &iter); + + if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INT32) + { + g_print ("First arg not right type\n"); + goto out; + } + threadnr = dbus_message_iter_get_int32 (&iter); + if (threadnr < 0 || threadnr >= N_TEST_THREADS) + { + g_print ("Invalid thread nr\n"); + goto out; + } + + if (! dbus_message_iter_next (&iter)) + { + g_print ("Couldn't get second arg\n"); + goto out; + } + + if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_UINT32) + { + g_print ("Second arg not right type\n"); + goto out; + } + + counter = dbus_message_iter_get_uint32 (&iter); + + if (counter != data->counters[threadnr]) + { + g_print ("Thread %d, counter %d, expected %d\n", threadnr, counter, data->counters[threadnr]); + goto out; + } + data->counters[threadnr]++; + + if (! dbus_message_iter_next (&iter)) + { + g_print ("Couldn't get third arg\n"); + goto out; + } + + if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) + { + g_print ("Third arg not right type\n"); + goto out; + } + + str = dbus_message_iter_get_string (&iter); + + if (str == NULL) + { + g_print ("No third arg\n"); + goto out; + } + + expected_str = g_strdup_printf ("Thread %d-%d\n", threadnr, counter); + if (strcmp (expected_str, str) != 0) + { + g_print ("Wrong string '%s', expected '%s'\n", str, expected_str); + goto out; + } + g_free (str); + g_free (expected_str); + + if (dbus_message_iter_next (&iter)) + { + g_print ("Extra args on end of message\n"); + goto out; + } + + dbus_connection_flush (connection); + + counter_str = g_string_new (""); + for (i = 0; i < N_TEST_THREADS; i++) + { + g_string_append_printf (counter_str, "%d ", data->counters[i]); + } + g_print ("%s\r", counter_str->str); + g_string_free (counter_str, TRUE); + + out: + return DBUS_HANDLER_RESULT_HANDLED; +} + +static DBusHandlerResult +filter_disconnect (DBusConnection *connection, + DBusMessage *message, + void *user_data) +{ + if (!dbus_message_is_signal (message, DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL, + "Disconnected")) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + g_print ("connection disconnected\n"); + dbus_connection_unref (connection); + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static void +new_connection_callback (DBusServer *server, + DBusConnection *new_connection, + void *user_data) +{ + ThreadTestData * data; + + g_print ("new_connection_callback\n"); + + dbus_connection_ref (new_connection); + dbus_connection_setup_with_g_main (new_connection, NULL); + + data = thread_test_data_new (); + + if (!dbus_connection_add_filter (new_connection, + filter_test_message, data, + (DBusFreeFunction) thread_test_data_free)) + goto nomem; + + if (!dbus_connection_add_filter (new_connection, + filter_disconnect, NULL, NULL)) + goto nomem; + + return; + + nomem: + g_error ("no memory to setup new connection"); +} + +int +main (int argc, char *argv[]) +{ + GMainLoop *loop; + DBusServer *server; + DBusError error; + + g_thread_init (NULL); + dbus_gthread_init (); + + if (argc < 2) + { + fprintf (stderr, "Give the server address as an argument\n"); + return 1; + } + + dbus_error_init (&error); + server = dbus_server_listen (argv[1], &error); + if (server == NULL) + { + fprintf (stderr, "Failed to start server on %s: %s\n", + argv[1], error.message); + dbus_error_free (&error); + return 1; + } + + dbus_server_set_new_connection_function (server, + new_connection_callback, + NULL, NULL); + + dbus_server_setup_with_g_main (server, NULL); + + loop = g_main_loop_new (NULL, FALSE); + g_main_run (loop); + + return 0; +} diff --git a/test/glib/test-thread.h b/test/glib/test-thread.h new file mode 100644 index 00000000..8c78fba2 --- /dev/null +++ b/test/glib/test-thread.h @@ -0,0 +1 @@ +#define N_TEST_THREADS 5 -- cgit From 83e41dff82abe99e1a35e70ca0bb60672204ffcd Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 6 Sep 2003 21:12:11 +0000 Subject: 2003-09-06 Havoc Pennington * doc/dbus-specification.sgml: partial updates * bus/dbus-daemon-1.1.in: fix the config file docs for the zillionth time; hopefully I edited the right file this time. * bus/config-parser.c (append_rule_from_element): support send_type, send_path, receive_type, receive_path * bus/policy.c: add message type and path to the list of things that can be "firewalled" --- test/data/valid-config-files/many-rules.conf | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 test/data/valid-config-files/many-rules.conf (limited to 'test') diff --git a/test/data/valid-config-files/many-rules.conf b/test/data/valid-config-files/many-rules.conf new file mode 100644 index 00000000..57ea5ec9 --- /dev/null +++ b/test/data/valid-config-files/many-rules.conf @@ -0,0 +1,57 @@ + + + mybususer + unix:path=/foo/bar + tcp:port=1234 + basic.d + /usr/share/foo + nonexistent.conf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5000 + 5000 + 300 + 5000 + 6000 + 50 + 80 + 64 + 64 + 256 + + -- cgit From 42c7c17953840ee12e482f6716c4ff03c136f6b5 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Sun, 7 Sep 2003 14:22:25 +0000 Subject: Add this --- test/glib/.cvsignore | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 test/glib/.cvsignore (limited to 'test') diff --git a/test/glib/.cvsignore b/test/glib/.cvsignore new file mode 100644 index 00000000..2e6b67f0 --- /dev/null +++ b/test/glib/.cvsignore @@ -0,0 +1,9 @@ +.deps +.libs +Makefile +Makefile.in +test-dbus-glib +test-profile +test-thread-server +test-thread-client + -- cgit From 583994cb3b7f5562fb7b8c37b4cb0d5af78e4ce2 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 17 Sep 2003 03:52:07 +0000 Subject: 2003-09-15 Havoc Pennington * dbus/dbus-pending-call.c: add the get/set object data boilerplate as for DBusConnection, etc. Use generic object data for the notify callback. * glib/dbus-gparser.c (parse_node): parse child nodes * tools/dbus-viewer.c: more hacking on the dbus-viewer * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to contain functions shared between the convenience lib and the installed lib * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add -export-symbols-regex to the GLib library * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock): fix the locking in here, and add a default handler for Introspect() that just returns sub-nodes. 2003-09-14 Havoc Pennington * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo rather than gfoo consistent * glib/dbus-gproxy.h: delete for now, move contents to dbus-glib.h, because the include files don't work right since we aren't in the dbus/ subdir. * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing (dbus_gproxy_end_call): finish (dbus_gproxy_begin_call): finish * glib/dbus-gmain.c (dbus_set_g_error): new * glib/dbus-gobject.c (handle_introspect): include information about child nodes in the introspection * dbus/dbus-connection.c (dbus_connection_list_registered): new function to help in implementation of introspection * dbus/dbus-object-tree.c (_dbus_object_tree_list_registered_and_unlock): new function 2003-09-12 Havoc Pennington * glib/dbus-gidl.h: add common base class for all the foo_info types * tools/dbus-viewer.c: add GTK-based introspection UI thingy similar to kdcop * test/Makefile.am: try test srcdir -ef . in addition to test srcdir = ., one of them should work (yeah lame) * glib/Makefile.am: build the "idl" parser stuff as a convenience library * glib/dbus-gparser.h: make description_load routines return NodeInfo* not Parser* * Makefile.am (SUBDIRS): build test dir after all library dirs * configure.in: add GTK+ detection --- test/Makefile.am | 2 +- test/glib/test-profile.c | 2 +- test/glib/test-thread-client.c | 2 +- test/glib/test-thread-server.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/Makefile.am b/test/Makefile.am index ab04496e..84089517 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -89,7 +89,7 @@ all-local: for D in $(TESTDIRS); do \ test -d $(top_builddir)/test/$$D || mkdir $(top_builddir)/test/$$D || exit 1 ; \ done ; \ - if test $(srcdir) != . ; then \ + if ! (test $(srcdir) = . || test $(srcdir) -ef .) ; then \ FILES=`(cd $(srcdir) && $(FIND_TESTS))` ; \ for F in $$FILES; do \ SRC=$(srcdir)/$$F ; \ diff --git a/test/glib/test-profile.c b/test/glib/test-profile.c index 6d9d8e7f..23547a1f 100644 --- a/test/glib/test-profile.c +++ b/test/glib/test-profile.c @@ -185,7 +185,7 @@ main (int argc, char *argv[]) int i; g_thread_init (NULL); - dbus_gthread_init (); + dbus_g_thread_init (); dbus_error_init (&error); server = dbus_server_listen ("unix:tmpdir="DBUS_TEST_SOCKET_DIR, diff --git a/test/glib/test-thread-client.c b/test/glib/test-thread-client.c index d51d4e6a..122c839a 100644 --- a/test/glib/test-thread-client.c +++ b/test/glib/test-thread-client.c @@ -66,7 +66,7 @@ main (int argc, char *argv[]) int i; g_thread_init (NULL); - dbus_gthread_init (); + dbus_g_thread_init (); if(argc < 2) { diff --git a/test/glib/test-thread-server.c b/test/glib/test-thread-server.c index 8898ca7f..dd560328 100644 --- a/test/glib/test-thread-server.c +++ b/test/glib/test-thread-server.c @@ -178,7 +178,7 @@ main (int argc, char *argv[]) DBusError error; g_thread_init (NULL); - dbus_gthread_init (); + dbus_g_thread_init (); if (argc < 2) { -- cgit From daf8d6579e1ae0ea748810b63180bd5eea2ab9c4 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Sun, 21 Sep 2003 18:43:20 +0000 Subject: 2003-09-21 Mark McLoughlin * doc/dbus-specification.sgml: Change the header field name to be an enum and update the rest of the spec to reference the fields using the conventinal name. * dbus/dbus-protocol.h: update to reflect the spec. * doc/TODO: add item to remove the 4 byte alignment requirement. * dbus/dbus-message.c: Remove the code to generalise the header/body length and serial number header fields as named header fields so we can reference field names using the protocol values. (append_int_field), (append_uint_field), (append_string_field): Append the field name as a byte rather than four chars. (delete_int_or_uint_field), (delete_string_field): reflect the fact that the field name and typecode now occupy 4 bytes instead of 8. (decode_string_field), (decode_header_data): update to reflect protocol changes and move the field specific encoding from decode_string_field() back into decode_header_data(). * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string): Add utility to aid debugging. * dbus/dbus-message-builder.c: (append_string_field), (_dbus_message_data_load): Update to reflect protocol changes; Change the FIELD_NAME directive to HEADER_FIELD and allow it to take the field's conventional name rather than the actual value. * test/data/*/*.message: Update to use HEADER_FIELD instead of FIELD_NAME; Always align the header on an 8 byte boundary *before* updating the header length. --- test/data/incomplete-messages/missing-body.message | 6 +++--- test/data/invalid-messages/array-of-nil.message | 7 ++++--- test/data/invalid-messages/array-with-mixed-types.message | 7 ++++--- test/data/invalid-messages/bad-boolean-array.message | 5 +++-- test/data/invalid-messages/bad-boolean.message | 5 +++-- test/data/invalid-messages/bad-endian.message | 5 ++--- test/data/invalid-messages/local-namespace.message | 5 +++-- test/data/invalid-messages/no-dot-in-name.message | 4 ++-- test/data/invalid-messages/not-nul-header-padding.message | 6 +++--- test/data/invalid-messages/overlong-name.message | 4 ++-- test/data/invalid-messages/too-little-header-padding.message | 6 +++--- test/data/invalid-messages/too-much-header-padding-by-far.message | 6 +++--- test/data/invalid-messages/too-much-header-padding.message | 6 +++--- test/data/invalid-messages/too-short-dict.message | 4 ++-- test/data/valid-messages/array-of-array-of-uint32.message | 2 +- test/data/valid-messages/dict-simple.message | 2 +- test/data/valid-messages/emptiness.message | 2 +- test/data/valid-messages/lots-of-arguments.message | 2 +- test/data/valid-messages/no-padding.message | 2 +- test/data/valid-messages/opposite-endian.message | 2 +- test/data/valid-messages/recursive-types.message | 1 + test/data/valid-messages/simplest-manual.message | 6 +++--- test/data/valid-messages/standard-acquire-service.message | 8 ++++---- test/data/valid-messages/standard-hello.message | 8 ++++---- test/data/valid-messages/standard-list-services.message | 8 ++++---- test/data/valid-messages/standard-service-exists.message | 8 ++++---- test/data/valid-messages/unknown-header-field.message | 2 +- 27 files changed, 67 insertions(+), 62 deletions(-) (limited to 'test') diff --git a/test/data/incomplete-messages/missing-body.message b/test/data/incomplete-messages/missing-body.message index 69e371e0..138e9ea5 100644 --- a/test/data/incomplete-messages/missing-body.message +++ b/test/data/incomplete-messages/missing-body.message @@ -1,14 +1,14 @@ ## message that's missing an expected body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -END_LENGTH Header ALIGN 8 +END_LENGTH Header ## create the body, then chop it off START_LENGTH Body diff --git a/test/data/invalid-messages/array-of-nil.message b/test/data/invalid-messages/array-of-nil.message index 4810d318..7f0ac718 100644 --- a/test/data/invalid-messages/array-of-nil.message +++ b/test/data/invalid-messages/array-of-nil.message @@ -2,15 +2,16 @@ VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -END_LENGTH Header ALIGN 8 +END_LENGTH Header + START_LENGTH Body TYPE ARRAY TYPE NIL diff --git a/test/data/invalid-messages/array-with-mixed-types.message b/test/data/invalid-messages/array-with-mixed-types.message index 1bdd549b..4455c898 100644 --- a/test/data/invalid-messages/array-with-mixed-types.message +++ b/test/data/invalid-messages/array-with-mixed-types.message @@ -3,15 +3,16 @@ VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -END_LENGTH Header ALIGN 8 +END_LENGTH Header + START_LENGTH Body TYPE ARRAY diff --git a/test/data/invalid-messages/bad-boolean-array.message b/test/data/invalid-messages/bad-boolean-array.message index e4df1903..91ad5ef1 100644 --- a/test/data/invalid-messages/bad-boolean-array.message +++ b/test/data/invalid-messages/bad-boolean-array.message @@ -3,15 +3,16 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' ALIGN 8 END_LENGTH Header + START_LENGTH Body TYPE ARRAY TYPE BOOLEAN diff --git a/test/data/invalid-messages/bad-boolean.message b/test/data/invalid-messages/bad-boolean.message index 7b518d57..cd588ad8 100644 --- a/test/data/invalid-messages/bad-boolean.message +++ b/test/data/invalid-messages/bad-boolean.message @@ -3,15 +3,16 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' ALIGN 8 END_LENGTH Header + START_LENGTH Body TYPE BOOLEAN BYTE 3 diff --git a/test/data/invalid-messages/bad-endian.message b/test/data/invalid-messages/bad-endian.message index c08f0188..8d609244 100644 --- a/test/data/invalid-messages/bad-endian.message +++ b/test/data/invalid-messages/bad-endian.message @@ -8,15 +8,14 @@ BYTE 0 LENGTH Header LENGTH Body -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' ALIGN 8 - END_LENGTH Header START_LENGTH Body diff --git a/test/data/invalid-messages/local-namespace.message b/test/data/invalid-messages/local-namespace.message index f485d70c..dad98a77 100644 --- a/test/data/invalid-messages/local-namespace.message +++ b/test/data/invalid-messages/local-namespace.message @@ -4,14 +4,15 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Local' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Disconnected' ALIGN 8 END_LENGTH Header + START_LENGTH Body END_LENGTH Body diff --git a/test/data/invalid-messages/no-dot-in-name.message b/test/data/invalid-messages/no-dot-in-name.message index 53e288d0..131be05d 100644 --- a/test/data/invalid-messages/no-dot-in-name.message +++ b/test/data/invalid-messages/no-dot-in-name.message @@ -3,10 +3,10 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'NoDotInHere' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' diff --git a/test/data/invalid-messages/not-nul-header-padding.message b/test/data/invalid-messages/not-nul-header-padding.message index f98812c2..a12c0fa7 100644 --- a/test/data/invalid-messages/not-nul-header-padding.message +++ b/test/data/invalid-messages/not-nul-header-padding.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/overlong-name.message b/test/data/invalid-messages/overlong-name.message index 4108a037..4fd7025e 100644 --- a/test/data/invalid-messages/overlong-name.message +++ b/test/data/invalid-messages/overlong-name.message @@ -2,11 +2,11 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.foo.bar.this.is.really.long 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' diff --git a/test/data/invalid-messages/too-little-header-padding.message b/test/data/invalid-messages/too-little-header-padding.message index f6e7af4b..894e4c3e 100644 --- a/test/data/invalid-messages/too-little-header-padding.message +++ b/test/data/invalid-messages/too-little-header-padding.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/too-much-header-padding-by-far.message b/test/data/invalid-messages/too-much-header-padding-by-far.message index 6cc5b391..b74f559b 100644 --- a/test/data/invalid-messages/too-much-header-padding-by-far.message +++ b/test/data/invalid-messages/too-much-header-padding-by-far.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/too-much-header-padding.message b/test/data/invalid-messages/too-much-header-padding.message index 6cf004b9..01111b63 100644 --- a/test/data/invalid-messages/too-much-header-padding.message +++ b/test/data/invalid-messages/too-much-header-padding.message @@ -3,14 +3,14 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE STRING STRING 'a' ALIGN 8 diff --git a/test/data/invalid-messages/too-short-dict.message b/test/data/invalid-messages/too-short-dict.message index 59621126..fde88850 100644 --- a/test/data/invalid-messages/too-short-dict.message +++ b/test/data/invalid-messages/too-short-dict.message @@ -2,10 +2,10 @@ VALID_HEADER method_call -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' diff --git a/test/data/valid-messages/array-of-array-of-uint32.message b/test/data/valid-messages/array-of-array-of-uint32.message index 692eca06..e12186b1 100644 --- a/test/data/valid-messages/array-of-array-of-uint32.message +++ b/test/data/valid-messages/array-of-array-of-uint32.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE ARRAY diff --git a/test/data/valid-messages/dict-simple.message b/test/data/valid-messages/dict-simple.message index 6986d439..fa6927df 100644 --- a/test/data/valid-messages/dict-simple.message +++ b/test/data/valid-messages/dict-simple.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE DICT LENGTH Dict diff --git a/test/data/valid-messages/emptiness.message b/test/data/valid-messages/emptiness.message index dbf531ca..32042c01 100644 --- a/test/data/valid-messages/emptiness.message +++ b/test/data/valid-messages/emptiness.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE STRING INT32 0 diff --git a/test/data/valid-messages/lots-of-arguments.message b/test/data/valid-messages/lots-of-arguments.message index 993755ab..d3f6a4ee 100644 --- a/test/data/valid-messages/lots-of-arguments.message +++ b/test/data/valid-messages/lots-of-arguments.message @@ -2,8 +2,8 @@ VALID_HEADER method_call REQUIRED_FIELDS -END_LENGTH Header ALIGN 8 +END_LENGTH Header START_LENGTH Body TYPE NIL TYPE BYTE diff --git a/test/data/valid-messages/no-padding.message b/test/data/valid-messages/no-padding.message index e6d27d9d..94df4d45 100644 --- a/test/data/valid-messages/no-padding.message +++ b/test/data/valid-messages/no-padding.message @@ -7,7 +7,7 @@ REQUIRED_FIELDS ## this byte array is filled with zeros to the natural length ## of the header -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE ARRAY TYPE BYTE ALIGN 4 diff --git a/test/data/valid-messages/opposite-endian.message b/test/data/valid-messages/opposite-endian.message index c638b7b0..90949dd2 100644 --- a/test/data/valid-messages/opposite-endian.message +++ b/test/data/valid-messages/opposite-endian.message @@ -7,7 +7,7 @@ VALID_HEADER method_call REQUIRED_FIELDS -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE INT32 INT32 0xfeeb diff --git a/test/data/valid-messages/recursive-types.message b/test/data/valid-messages/recursive-types.message index 192fd9b7..e306fd1f 100644 --- a/test/data/valid-messages/recursive-types.message +++ b/test/data/valid-messages/recursive-types.message @@ -5,6 +5,7 @@ VALID_HEADER method_call REQUIRED_FIELDS +ALIGN 8 END_LENGTH Header START_LENGTH Body diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message index 9779234b..5a5b4105 100644 --- a/test/data/valid-messages/simplest-manual.message +++ b/test/data/valid-messages/simplest-manual.message @@ -11,13 +11,13 @@ LENGTH Body ## client serial INT32 7 -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/foo' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.Foo' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Bar' diff --git a/test/data/valid-messages/standard-acquire-service.message b/test/data/valid-messages/standard-acquire-service.message index f313061f..a42a639c 100644 --- a/test/data/valid-messages/standard-acquire-service.message +++ b/test/data/valid-messages/standard-acquire-service.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.AcquireService message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'AcquireService' -FIELD_NAME srvc +HEADER_FIELD SERVICE TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/standard-hello.message b/test/data/valid-messages/standard-hello.message index 795ede74..50d4e0ff 100644 --- a/test/data/valid-messages/standard-hello.message +++ b/test/data/valid-messages/standard-hello.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.Hello message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'Hello' -FIELD_NAME srvc +HEADER_FIELD SERVICE TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/standard-list-services.message b/test/data/valid-messages/standard-list-services.message index 4c9c7c66..10c9a2f7 100644 --- a/test/data/valid-messages/standard-list-services.message +++ b/test/data/valid-messages/standard-list-services.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.ListServices message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'ListServices' -FIELD_NAME srvc +HEADER_FIELD SERVICES TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/standard-service-exists.message b/test/data/valid-messages/standard-service-exists.message index ce14811a..c3b715bc 100644 --- a/test/data/valid-messages/standard-service-exists.message +++ b/test/data/valid-messages/standard-service-exists.message @@ -1,16 +1,16 @@ # Standard org.freedesktop.DBus.ServiceExists message VALID_HEADER method_call -FIELD_NAME path +HEADER_FIELD PATH TYPE OBJECT_PATH OBJECT_PATH '/org/freedesktop/DBus' -FIELD_NAME ifce +HEADER_FIELD INTERFACE TYPE STRING STRING 'org.freedesktop.DBus' -FIELD_NAME mebr +HEADER_FIELD MEMBER TYPE STRING STRING 'ServiceExists' -FIELD_NAME srvc +HEADER_FIELD SERVICE TYPE STRING STRING 'org.freedesktop.DBus' ALIGN 8 diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 5d95f812..973def68 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -3,7 +3,7 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call REQUIRED_FIELDS -FIELD_NAME unkn +HEADER_FIELD UNKNOWN TYPE INT32 INT32 0xfeeb ALIGN 8 -- cgit From a683a80c409cc4f2e57ba6a3e60d52f91b8657d0 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sun, 21 Sep 2003 19:53:56 +0000 Subject: 2003-09-21 Havoc Pennington Get matching rules mostly working in the bus; only actually parsing the rule text remains. However, the client side of "signal connections" hasn't been started, this patch is only the bus side. * dbus/dispatch.c: fix for the matching rules changes * bus/driver.c (bus_driver_handle_remove_match) (bus_driver_handle_add_match): send an ack reply from these method calls * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of arguments, reported by Seth Nickell * bus/config-parser.c (append_rule_from_element): support eavesdrop=true|false attribute on policies so match rules can be prevented from snooping on the system bus. * bus/dbus-daemon-1.1.in: consistently use terminology "sender" and "destination" in attribute names; fix some docs bugs; add eavesdrop=true|false attribute * bus/driver.c (bus_driver_handle_add_match) (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch messages * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get rid of broadcast service concept, signals are just always broadcast * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c: mostly implement matching rules stuff (currently only exposed as signal connections) --- test/data/valid-config-files/many-rules.conf | 16 ++++++++-------- test/data/valid-config-files/system.d/test.conf | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/data/valid-config-files/many-rules.conf b/test/data/valid-config-files/many-rules.conf index 57ea5ec9..f68430e5 100644 --- a/test/data/valid-config-files/many-rules.conf +++ b/test/data/valid-config-files/many-rules.conf @@ -13,16 +13,16 @@ - - + + - - + + @@ -31,16 +31,16 @@ - - + + - - + + 5000 diff --git a/test/data/valid-config-files/system.d/test.conf b/test/data/valid-config-files/system.d/test.conf index 10a79847..5b60a1fc 100644 --- a/test/data/valid-config-files/system.d/test.conf +++ b/test/data/valid-config-files/system.d/test.conf @@ -15,6 +15,6 @@ - + -- cgit From f4cffc0e49d48a8dbf158230d7e816d8713566da Mon Sep 17 00:00:00 2001 From: Seth Nickell Date: Mon, 22 Sep 2003 05:45:59 +0000 Subject: 2003-09-21 Seth Nickell First checkin of the Python bindings. * python/.cvsignore: * python/Makefile.am: * python/dbus_bindings.pyx.in: * python/dbus_h_wrapper.h: Pieces for Pyrex to operate on, building a dbus_bindings.so python module for low-level access to the DBus APIs. * python/dbus.py: High-level Python module for accessing DBus objects. * configure.in: * Makefile.am: Build stuff for the python bindings. * acinclude.m4: Extra macro needed for finding the Python C header files. --- test/test-service.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/test-service.c b/test/test-service.c index f22b1753..d07575e2 100644 --- a/test/test-service.c +++ b/test/test-service.c @@ -106,7 +106,7 @@ main (int argc, int result; dbus_error_init (&error); - connection = dbus_bus_get (DBUS_BUS_ACTIVATION, &error); + connection = dbus_bus_get (DBUS_BUS_SESSION, &error); if (connection == NULL) { _dbus_verbose ("*** Failed to open connection to activating message bus: %s\n", @@ -126,10 +126,13 @@ main (int argc, filter_func, NULL, NULL)) die ("No memory"); + printf ("Acquiring service\n"); + result = dbus_bus_acquire_service (connection, "org.freedesktop.DBus.TestSuiteEchoService", 0, &error); if (dbus_error_is_set (&error)) { + printf ("Error %s", error.message); _dbus_verbose ("*** Failed to acquire service: %s\n", error.message); dbus_error_free (&error); -- cgit From 46c072e1136ca101aefd5fdae35c457899d55bbb Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Thu, 25 Sep 2003 08:50:14 +0000 Subject: 2003-09-25 Mark McLoughlin * doc/dbus-specification.sgml: don't require header fields to be 4-byte aligned and specify that fields should be distinguished from padding by the fact that zero is not a valid field name. * doc/TODO: remove re-alignment item and add item to doc the OBJECT_PATH type. * dbus/dbus-message.c: (HeaderField): rename the original member to value_offset and introduce a name_offset member to keep track of where the field actually begins. (adjust_field_offsets): remove. (append_int_field), (append_uint_field), (append_string_field): don't align the start of the header field to a 4-byte boundary. (get_next_field): impl finding the next marhsalled field after a given field. (re_align_field_recurse): impl re-aligning a number of already marshalled fields. (delete_field): impl deleting a field of any type and re-aligning any following fields. (delete_int_or_uint_field), (delete_string_field): remove. (set_int_field), (set_uint_field): no need to re-check that we have the correct type for the field. (set_string_field): ditto and impl re-aligning any following fields. (decode_header_data): update to take into account that the fields aren't 4-byte aligned any more and the new way to distinguish padding from header fields. Also, don't exit when there is too much header padding. (process_test_subdir): print the directory. (_dbus_message_test): add test to make sure a following field is re-aligned correctly after field deletion. * dbus/dbus-string.[ch]: (_dbus_string_insert_bytes): rename from insert_byte and allow the insert of multiple bytes. (_dbus_string_test): test inserting multiple bytes. * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add warning note to docs about having to re-align any marshalled values following the string. * dbus/dbus-message-builder.c: (append_string_field), (_dbus_message_data_load): don't align the header field. * dbus/dbus-auth.c: (process_test_subdir): print the directory. * test/break-loader.c: (randomly_add_one_byte): upd. for insert_byte change. * test/data/invalid-messages/bad-header-field-alignment.message: new test case. * test/data/valid-messages/unknown-header-field.message: shove a dict in the unknown field. --- test/break-loader.c | 4 +-- .../bad-header-field-alignment.message | 34 ++++++++++++++++++++++ .../valid-messages/unknown-header-field.message | 9 +++++- 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 test/data/invalid-messages/bad-header-field-alignment.message (limited to 'test') diff --git a/test/break-loader.c b/test/break-loader.c index ebe2606b..3771d7cc 100644 --- a/test/break-loader.c +++ b/test/break-loader.c @@ -287,8 +287,8 @@ randomly_add_one_byte (const DBusString *orig_data, i = random_int_in_range (0, _dbus_string_get_length (mutated)); - _dbus_string_insert_byte (mutated, i, - random_int_in_range (0, 256)); + _dbus_string_insert_bytes (mutated, i, 1, + random_int_in_range (0, 256)); } static void diff --git a/test/data/invalid-messages/bad-header-field-alignment.message b/test/data/invalid-messages/bad-header-field-alignment.message new file mode 100644 index 00000000..75776a37 --- /dev/null +++ b/test/data/invalid-messages/bad-header-field-alignment.message @@ -0,0 +1,34 @@ +## last field incorrectly aligned to 4 bytes + +## VALID_HEADER includes a LENGTH Header and LENGTH Body +VALID_HEADER method_call + +HEADER_FIELD INTERFACE +TYPE STRING +STRING 'org.freedesktop.Foo' + +HEADER_FIELD MEMBER +TYPE STRING +STRING 'Bar' + +HEADER_FIELD UNKNOWN +TYPE STRING +STRING 'a' + +ALIGN 4 + +HEADER_FIELD UNKNOWN +TYPE ARRAY +TYPE BYTE +ALIGN 4 +LENGTH ThisByteArray +START_LENGTH ThisByteArray +BYTE 1 +BYTE 2 +END_LENGTH ThisByteArray + + +ALIGN 8 +END_LENGTH Header +START_LENGTH Body +END_LENGTH Body diff --git a/test/data/valid-messages/unknown-header-field.message b/test/data/valid-messages/unknown-header-field.message index 973def68..ac7d624c 100644 --- a/test/data/valid-messages/unknown-header-field.message +++ b/test/data/valid-messages/unknown-header-field.message @@ -3,9 +3,16 @@ ## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER method_call REQUIRED_FIELDS + HEADER_FIELD UNKNOWN +TYPE DICT +LENGTH Dict +START_LENGTH Dict +STRING 'int32' TYPE INT32 -INT32 0xfeeb +INT32 0x12345678 +END_LENGTH Dict + ALIGN 8 END_LENGTH Header START_LENGTH Body -- cgit