summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2012-03-05 21:53:38 -0500
committerKristian Høgsberg <krh@bitplanet.net>2012-03-05 21:53:38 -0500
commitb2afde6f184dfe1c3cca656dc1f9862a45bfa24d (patch)
treed98df0dc13ddaf7b3c1cfd3dfdc51a2bb6fe6945
parentd86718fc33d22a8719f0d0773aad5edaa495d36c (diff)
tests: Add more marshal tests
-rw-r--r--tests/connection-test.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/connection-test.c b/tests/connection-test.c
index 5915857..b45532f 100644
--- a/tests/connection-test.c
+++ b/tests/connection-test.c
@@ -177,6 +177,9 @@ marshal(struct marshal_data *data, const char *format, int size, ...)
TEST(connection_marshal)
{
struct marshal_data data;
+ struct wl_object object;
+ struct wl_array array;
+ static const char text[] = "curry";
data.connection = setup(data.s, &data.mask);
@@ -190,6 +193,25 @@ TEST(connection_marshal)
assert(data.buffer[2] == 7);
assert(strcmp((char *) &data.buffer[3], "frappo") == 0);
+ object.id = 557799;
+ marshal(&data, "o", 12, &object);
+ assert(data.buffer[2] == object.id);
+
+ marshal(&data, "o", 12, NULL);
+ assert(data.buffer[2] == 0);
+
+ marshal(&data, "n", 12, &object);
+ assert(data.buffer[2] == object.id);
+
+ marshal(&data, "n", 12, NULL);
+ assert(data.buffer[2] == 0);
+
+ array.data = (void *) text;
+ array.size = sizeof text;
+ marshal(&data, "a", 20, &array);
+ assert(data.buffer[2] == array.size);
+ assert(memcmp(&data.buffer[3], text, array.size) == 0);
+
wl_connection_destroy(data.connection);
close(data.s[1]);
}