[PATCH weston] ivi-shell: Added tests for screen-remove-layer API
Teyfel, Michael (ADITG/ESB)
mteyfel at de.adit-jv.com
Wed Jul 26 12:25:08 UTC 2017
Hi Pekka,
thank you for reviewing and also your remarks. I adjusted my patch accordingly and resent it to ML.
Best regards
Michael Teyfel
Engineering Software Base (ADITG/ESB)
Tel. +49 5121 49 6932
-----Original Message-----
From: Pekka Paalanen [mailto:ppaalanen at gmail.com]
Sent: Mittwoch, 26. Juli 2017 11:18
To: Teyfel, Michael (ADITG/ESB)
Cc: wayland-devel at lists.freedesktop.org; Ucan, Emre (ADITG/ESB); Friedrich, Eugen (ADITG/ESB)
Subject: Re: [PATCH weston] ivi-shell: Added tests for screen-remove-layer API
On Tue, 25 Jul 2017 15:59:06 +0200
Michael Teyfel <mteyfel at de.adit-jv.com> wrote:
> Two cases are tested: success and fail case of the screen-remove-layer API.
>
> Signed-off-by: Michael Teyfel <mteyfel at de.adit-jv.com>
> ---
> tests/ivi_layout-internal-test.c | 62
> ++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 62 insertions(+)
Hi Michael,
thanks for these, they look mostly good, just some polishing required.
Comments inline.
>
> diff --git a/tests/ivi_layout-internal-test.c
> b/tests/ivi_layout-internal-test.c
> index 37a2356..64380ec 100644
> --- a/tests/ivi_layout-internal-test.c
> +++ b/tests/ivi_layout-internal-test.c
> @@ -341,6 +341,66 @@ test_layer_source_rectangle(struct test_context
> *ctx) }
>
> static void
> +test_screen_remove_layer(struct test_context *ctx) {
> + const struct ivi_layout_interface *lyt = ctx->layout_interface;
> + struct ivi_layout_layer *ivilayer;
> + struct weston_output *output;
> + struct ivi_layout_layer **array;
> + int32_t length = 0;
> +
> + ivilayer = lyt->layer_create_with_dimension(IVI_TEST_LAYER_ID(0), 200, 300);
> + iassert(ivilayer != NULL);
> +
> + if (wl_list_empty(&ctx->compositor->output_list))
> + return;
This leaks the ivilayer, possibly affecting also further tests. Move the check before the layer creation.
> +
> + output = wl_container_of(ctx->compositor->output_list.next, output,
> +link);
> +
> + iassert(lyt->screen_add_layer(output, ivilayer) == IVI_SUCCEEDED);
> + lyt->commit_changes();
> +
> + iassert(lyt->get_layers_on_screen(output, &length, &array) == IVI_SUCCEEDED);
> + iassert(length == 1);
> + iassert(array[0] == ivilayer);
> +
> + iassert(lyt->screen_remove_layer(output ,ivilayer) ==
> +IVI_SUCCEEDED);
Space on the wrong side of comma.
> + lyt->commit_changes();
> +
'array' gets leaked.
> + iassert(lyt->get_layers_on_screen(output, &length, &array) == IVI_SUCCEEDED);
> + iassert(length == 0);
'array' would get leaked if there were any layers, but since we fail the test in that case, it doesn't matter.
> +
> + lyt->layer_destroy(ivilayer);
> +}
> +
> +static void
> +test_screen_bad_remove_layer(struct test_context *ctx) {
> + const struct ivi_layout_interface *lyt = ctx->layout_interface;
> + struct ivi_layout_layer *ivilayer;
> + struct weston_output *output;
> +
> + ivilayer = lyt->layer_create_with_dimension(IVI_TEST_LAYER_ID(0), 200, 300);
> + iassert(ivilayer != NULL);
> +
> + if (wl_list_empty(&ctx->compositor->output_list))
> + return;
The same leak of ivilayer as before.
> +
> + output = wl_container_of(ctx->compositor->output_list.next, output,
> +link);
> +
> + iassert(lyt->screen_remove_layer(NULL, ivilayer) == IVI_FAILED);
> + lyt->commit_changes();
> +
> + iassert(lyt->screen_remove_layer(output, NULL) == IVI_FAILED);
> + lyt->commit_changes();
> +
> + iassert(lyt->screen_remove_layer(NULL, NULL) == IVI_FAILED);
> + lyt->commit_changes();
> +
> + lyt->layer_destroy(ivilayer);
> +}
> +
> +static void
> test_layer_bad_remove(struct test_context *ctx) {
> const struct ivi_layout_interface *lyt = ctx->layout_interface; @@
> -951,6 +1011,8 @@ run_internal_tests(void *data)
> test_layer_position(ctx);
> test_layer_destination_rectangle(ctx);
> test_layer_source_rectangle(ctx);
> + test_screen_remove_layer(ctx);
> + test_screen_bad_remove_layer(ctx);
These two would be better grouped with the other screen tests, I think.
> test_layer_bad_remove(ctx);
> test_layer_bad_visibility(ctx);
> test_layer_bad_opacity(ctx);
Thanks,
pq
More information about the wayland-devel
mailing list