diff options
author | Yong Bakos <ybakos@humanoriented.com> | 2016-11-03 13:42:54 -0700 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2016-11-10 17:12:04 +0200 |
commit | 9618087c6ad0b1e2de4037279f7370846c5f508c (patch) | |
tree | 93b2c91bee4e7c52851c0d38816a1ecc8c31af71 | |
parent | 66a26aeb2a4d76141938aab72113259c19e7ea17 (diff) |
tests: Test wl_message_count_arrays
message-test.c did not cover wl_message_count_arrays, so add one test that
specifically tests this method. Note that this exposes wl_message_count_arrays
in a private header (wayland-private.h), and removes the `static` modifier of
the implementation.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r-- | src/connection.c | 2 | ||||
-rw-r--r-- | src/wayland-private.h | 3 | ||||
-rw-r--r-- | tests/message-test.c | 37 |
3 files changed, 41 insertions, 1 deletions
diff --git a/src/connection.c b/src/connection.c index c3293a9..5c3d187 100644 --- a/src/connection.c +++ b/src/connection.c @@ -392,7 +392,7 @@ wl_connection_queue(struct wl_connection *connection, return wl_buffer_put(&connection->out, data, count); } -static int +int wl_message_count_arrays(const struct wl_message *message) { int i, arrays; diff --git a/src/wayland-private.h b/src/wayland-private.h index ef58ccf..676b181 100644 --- a/src/wayland-private.h +++ b/src/wayland-private.h @@ -163,6 +163,9 @@ int arg_count_for_signature(const char *signature); int +wl_message_count_arrays(const struct wl_message *message); + +int wl_message_get_since(const struct wl_message *message); void diff --git a/tests/message-test.c b/tests/message-test.c index cb08f90..389f788 100644 --- a/tests/message-test.c +++ b/tests/message-test.c @@ -51,3 +51,40 @@ TEST(message_version) messages[i].expected_version); } } + +TEST(message_count_arrays) +{ + unsigned int i; + struct wl_message fake_messages[] = { + { "empty", "", NULL }, + { "non_present", "iufsonh", NULL }, + { "leading", "aiufsonh", NULL}, + { "trailing", "iufsonha", NULL }, + { "middle", "iufasonh", NULL }, + { "multiple", "aaiufaasonhaa", NULL }, + { "leading_version", "2aaiufaasonhaa", NULL }, + { "among_nullables", "iufsa?oa?nah", NULL }, + { "all_mixed", "2aiufas?oa?na", NULL }, + }; + const struct { + const struct wl_message *message; + int expected_array_count; + } messages[] = { + { &wl_pointer_interface.events[WL_POINTER_ENTER], 0 }, + { &wl_keyboard_interface.events[WL_KEYBOARD_ENTER], 1 }, + { &fake_messages[0], 0 }, + { &fake_messages[1], 0 }, + { &fake_messages[2], 1 }, + { &fake_messages[3], 1 }, + { &fake_messages[4], 1 }, + { &fake_messages[5], 6 }, + { &fake_messages[6], 6 }, + { &fake_messages[7], 3 }, + { &fake_messages[8], 4 } + }; + + for (i = 0; i < ARRAY_LENGTH(messages); ++i) { + assert(wl_message_count_arrays(messages[i].message) == + messages[i].expected_array_count); + } +} |