On 06/21/2015 11:35 PM, Nobuhiko Tanibata wrote:
> From: Nobuhiko Tanibata <[email protected]>
> 
> These tests are implemented on test suite framework, which provides
> internal method validation.
> Following features are tested,
> - ivi-screen id
> - ivi-screen resolution
> - render order of ivi-layers in ivi-screen
> 
> Signed-off-by: Nobuhiko Tanibata <[email protected]>
> Reviewed-by: Pekka Paalanen <[email protected]>

Looks good.

Reviewed-by: Jon A. Cruz <[email protected]>

> ---
>  tests/ivi_layout-internal-test.c | 105 
> ++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 104 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/ivi_layout-internal-test.c 
> b/tests/ivi_layout-internal-test.c
> index befdf94..3e3ba7f 100644
> --- a/tests/ivi_layout-internal-test.c
> +++ b/tests/ivi_layout-internal-test.c
> @@ -63,7 +63,6 @@ iassert_fail(const char *cond, const char *file, int line,
>   * These are all internal ivi_layout API tests that do not require
>   * any client objects.
>   */
> -
>  static void
>  test_surface_bad_visibility(struct test_context *ctx)
>  {
> @@ -701,6 +700,106 @@ test_get_layer_after_destory_layer(struct test_context 
> *ctx)
>       iassert(ivilayer == NULL);
>  }
>  
> +static void
> +test_screen_id(struct test_context *ctx)
> +{
> +     const struct ivi_controller_interface *ctl = ctx->controller_interface;
> +     struct ivi_layout_screen **iviscrns;
> +     int32_t screen_length = 0;
> +     uint32_t id_screen;
> +     int32_t i;
> +
> +     iassert(ctl->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED);
> +     iassert(screen_length > 0);
> +
> +     for (i = 0; i < screen_length; ++i) {
> +             id_screen = ctl->get_id_of_screen(iviscrns[i]);
> +             iassert(ctl->get_screen_from_id(id_screen) == iviscrns[i]);
> +     }
> +
> +     if (screen_length > 0)
> +             free(iviscrns);
> +}
> +
> +static void
> +test_screen_resolution(struct test_context *ctx)
> +{
> +     const struct ivi_controller_interface *ctl = ctx->controller_interface;
> +     struct ivi_layout_screen **iviscrns;
> +     int32_t screen_length = 0;
> +     struct weston_output *output;
> +     int32_t width;
> +     int32_t height;
> +     int32_t i;
> +
> +     iassert(ctl->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED);
> +     iassert(screen_length > 0);
> +
> +     for (i = 0; i < screen_length; ++i) {
> +             output = ctl->screen_get_output(iviscrns[i]);
> +             iassert(output != NULL);
> +             iassert(ctl->get_screen_resolution(
> +                         iviscrns[i], &width, &height) == IVI_SUCCEEDED);
> +             iassert(width == output->current_mode->width);
> +             iassert(height == output->current_mode->height);
> +     }
> +
> +     if (screen_length > 0)
> +             free(iviscrns);
> +}
> +
> +static void
> +test_screen_render_order(struct test_context *ctx)
> +{
> +#define LAYER_NUM (3)
> +     const struct ivi_controller_interface *ctl = ctx->controller_interface;
> +     struct ivi_layout_screen **iviscrns;
> +     int32_t screen_length = 0;
> +     struct ivi_layout_screen *iviscrn;
> +     struct ivi_layout_layer *ivilayers[LAYER_NUM] = {};
> +     struct ivi_layout_layer **array;
> +     int32_t length = 0;
> +     uint32_t i;
> +
> +     iassert(ctl->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED);
> +     iassert(screen_length > 0);
> +
> +     if (screen_length <= 0)
> +             return;
> +
> +     iviscrn = iviscrns[0];
> +
> +     for (i = 0; i < LAYER_NUM; i++)
> +             ivilayers[i] = 
> ctl->layer_create_with_dimension(IVI_TEST_LAYER_ID(i), 200, 300);
> +
> +     iassert(ctl->screen_set_render_order(iviscrn, ivilayers, LAYER_NUM) == 
> IVI_SUCCEEDED);
> +
> +     ctl->commit_changes();
> +
> +     iassert(ctl->get_layers_on_screen(iviscrn, &length, &array) == 
> IVI_SUCCEEDED);
> +     iassert(length == LAYER_NUM);
> +     for (i = 0; i < LAYER_NUM; i++)
> +             iassert(array[i] == ivilayers[i]);
> +
> +     if (length > 0)
> +             free(array);
> +
> +     array = NULL;
> +
> +     iassert(ctl->screen_set_render_order(iviscrn, NULL, 0) == 
> IVI_SUCCEEDED);
> +
> +     ctl->commit_changes();
> +
> +     iassert(ctl->get_layers_on_screen(iviscrn, &length, &array) == 
> IVI_SUCCEEDED);
> +     iassert(length == 0 && array == NULL);
> +
> +     for (i = 0; i < LAYER_NUM; i++)
> +             ctl->layer_destroy(ivilayers[i]);
> +
> +     free(iviscrns);
> +#undef LAYER_NUM
> +}
> +
>  /************************ tests end ********************************/
>  
>  static void
> @@ -743,6 +842,10 @@ run_internal_tests(void *data)
>       test_layer_create_duplicate(ctx);
>       test_get_layer_after_destory_layer(ctx);
>  
> +     test_screen_id(ctx);
> +     test_screen_resolution(ctx);
> +     test_screen_render_order(ctx);
> +
>       weston_compositor_exit_with_code(ctx->compositor, EXIT_SUCCESS);
>       free(ctx);
>  }
> 

-- 
Jon A. Cruz - Senior Open Source Developer
Samsung Open Source Group
[email protected]
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to