tests: Add more marshal tests
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 6 Mar 2012 02:53:38 +0000 (21:53 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 6 Mar 2012 02:53:38 +0000 (21:53 -0500)
tests/connection-test.c

index 5915857..b45532f 100644 (file)
@@ -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]);
 }