Allows us to check that obviously incorrect data gets rejected as it should by the marshalling code.
Signed-off-by: Daniel Stone <[email protected]> --- tests/connection-test.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) v2: New, no functional changes. diff --git a/tests/connection-test.c b/tests/connection-test.c index 54ac423..d17a456 100644 --- a/tests/connection-test.c +++ b/tests/connection-test.c @@ -339,7 +339,7 @@ TEST(connection_demarshal) } static void -marshal_demarshal(struct marshal_data *data, +marshal_demarshal(unsigned int should_fail, struct marshal_data *data, void (*func)(void), int size, const char *format, ...) { struct wl_closure closure; @@ -356,6 +356,11 @@ marshal_demarshal(struct marshal_data *data, ret = wl_closure_vmarshal(&closure, &sender, opcode, ap, &message); va_end(ap); + if (should_fail) { + assert(ret != 0); + return; + } + assert(ret == 0); assert(wl_closure_send(&closure, data->write_connection) == 0); wl_closure_destroy(&closure); @@ -384,20 +389,20 @@ TEST(connection_marshal_demarshal) setup_marshal_data(&data); data.value.u = 889911; - marshal_demarshal(&data, (void *) validate_demarshal_u, + marshal_demarshal(0, &data, (void *) validate_demarshal_u, 12, "u", data.value.u); data.value.i = -13; - marshal_demarshal(&data, (void *) validate_demarshal_i, + marshal_demarshal(0, &data, (void *) validate_demarshal_i, 12, "i", data.value.i); data.value.s = "cookie robots"; - marshal_demarshal(&data, (void *) validate_demarshal_s, + marshal_demarshal(0, &data, (void *) validate_demarshal_s, 28, "s", data.value.s); data.value.h = mkstemp(f); assert(data.value.h >= 0); - marshal_demarshal(&data, (void *) validate_demarshal_h, + marshal_demarshal(0, &data, (void *) validate_demarshal_h, 8, "h", data.value.h); release_marshal_data(&data); @@ -418,7 +423,7 @@ TEST(connection_marshal_alot) strcpy(f, "/tmp/weston-tests-XXXXXX"); data.value.h = mkstemp(f); assert(data.value.h >= 0); - marshal_demarshal(&data, (void *) validate_demarshal_h, + marshal_demarshal(0, &data, (void *) validate_demarshal_h, 8, "h", data.value.h); } -- 1.7.10 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
