summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-04-22 19:34:33 +0000
committerHavoc Pennington <hp@redhat.com>2003-04-22 19:34:33 +0000
commitb3a3969897930eeda308113acbbb3f98069ee1ab (patch)
tree5cd99199ea35eb1f61d5d3cda9013130af488270 /test
parent983200f912f41ba75a873c011bfbcd3b0285bf4c (diff)
2003-04-22 Havoc Pennington <hp@redhat.com>
* test/data/valid-messages/opposite-endian.message: fix test to use proper type for rply field * test/data/invalid-messages: add tests for below validation * dbus/dbus-message.c (decode_header_data): validate field types, and validate that named fields are valid names (decode_name_field): consider messages in the org.freedesktop.Local. namespace to be invalid. * dbus/dbus-string.c (_dbus_string_validate_name): new
Diffstat (limited to 'test')
-rw-r--r--test/break-loader.c14
-rw-r--r--test/data/invalid-messages/local-namespace.message12
-rw-r--r--test/data/invalid-messages/no-dot-in-name.message11
-rw-r--r--test/data/invalid-messages/overlong-name.message11
-rw-r--r--test/data/valid-messages/opposite-endian.message4
5 files changed, 48 insertions, 4 deletions
diff --git a/test/break-loader.c b/test/break-loader.c
index 1ddaec40..ebe2606b 100644
--- a/test/break-loader.c
+++ b/test/break-loader.c
@@ -499,6 +499,7 @@ find_breaks_based_on (const DBusString *filename,
goto failed;
}
+ printf (" changing one random byte 100 times\n");
i = 0;
while (i < 100)
{
@@ -508,6 +509,7 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
+ printf (" changing length 50 times\n");
i = 0;
while (i < 50)
{
@@ -516,7 +518,8 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
-
+
+ printf (" removing one byte 50 times\n");
i = 0;
while (i < 50)
{
@@ -526,6 +529,7 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
+ printf (" adding one byte 50 times\n");
i = 0;
while (i < 50)
{
@@ -535,6 +539,7 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
+ printf (" changing ints to boundary values 50 times\n");
i = 0;
while (i < 50)
{
@@ -544,6 +549,7 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
+ printf (" changing typecodes 50 times\n");
i = 0;
while (i < 50)
{
@@ -552,7 +558,8 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
-
+
+ printf (" changing message length 15 times\n");
i = 0;
while (i < 15)
{
@@ -562,6 +569,7 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
+ printf (" randomly making 2 of above modifications 42 times\n");
i = 0;
while (i < 42)
{
@@ -571,6 +579,7 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
+ printf (" randomly making 3 of above modifications 42 times\n");
i = 0;
while (i < 42)
{
@@ -580,6 +589,7 @@ find_breaks_based_on (const DBusString *filename,
++i;
}
+ printf (" randomly making 4 of above modifications 42 times\n");
i = 0;
while (i < 42)
{
diff --git a/test/data/invalid-messages/local-namespace.message b/test/data/invalid-messages/local-namespace.message
new file mode 100644
index 00000000..ceb3053d
--- /dev/null
+++ b/test/data/invalid-messages/local-namespace.message
@@ -0,0 +1,12 @@
+## a message that is in the org.freedesktop.Local. namespace and thus
+## invalid
+
+## VALID_HEADER includes a LENGTH Header and LENGTH Body
+VALID_HEADER
+FIELD_NAME name
+TYPE STRING
+STRING 'org.freedesktop.Local.Disconnect'
+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
new file mode 100644
index 00000000..4cde0d1f
--- /dev/null
+++ b/test/data/invalid-messages/no-dot-in-name.message
@@ -0,0 +1,11 @@
+## a message with dotless name
+
+## VALID_HEADER includes a LENGTH Header and LENGTH Body
+VALID_HEADER
+FIELD_NAME name
+TYPE STRING
+STRING 'NoNamespaceHere'
+ALIGN 8
+END_LENGTH Header
+START_LENGTH Body
+END_LENGTH Body
diff --git a/test/data/invalid-messages/overlong-name.message b/test/data/invalid-messages/overlong-name.message
new file mode 100644
index 00000000..0fdc7bc9
--- /dev/null
+++ b/test/data/invalid-messages/overlong-name.message
@@ -0,0 +1,11 @@
+## a message with too-long name field
+
+## VALID_HEADER includes a LENGTH Header and LENGTH Body
+VALID_HEADER
+FIELD_NAME name
+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'
+ALIGN 8
+END_LENGTH Header
+START_LENGTH Body
+END_LENGTH Body
diff --git a/test/data/valid-messages/opposite-endian.message b/test/data/valid-messages/opposite-endian.message
index dba8918d..f8975b8b 100644
--- a/test/data/valid-messages/opposite-endian.message
+++ b/test/data/valid-messages/opposite-endian.message
@@ -6,8 +6,8 @@ OPPOSITE_ENDIAN
VALID_HEADER
FIELD_NAME rply
-TYPE INT32
-INT32 10000
+TYPE UINT32
+UINT32 10000
FIELD_NAME name
TYPE STRING