diff options
author | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> | 2015-06-22 15:35:39 +0900 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2015-06-25 11:39:05 +0300 |
commit | 83c20bcbd5aaf579ee8d7d61cd090bcd0f9ecbc7 (patch) | |
tree | 422a88478c1a2402d64d0445370f66a0180f07f5 /tests | |
parent | e78a7afb6047eafaab737fa1ade85b4d3d4d92a7 (diff) |
tests: test set for ivi-screen with bad condition in server side
These tests are implemented on test suite framework, which provides
internal method validation,
Following features are tested,
- ivi-screen operation with bad parameter
- render order with bad parameter
- destroy ivi-layer in the ivi-screen and call commit_changes
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ivi_layout-internal-test.c | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/tests/ivi_layout-internal-test.c b/tests/ivi_layout-internal-test.c index 3e3ba7f4..b82e9cbb 100644 --- a/tests/ivi_layout-internal-test.c +++ b/tests/ivi_layout-internal-test.c @@ -800,6 +800,104 @@ test_screen_render_order(struct test_context *ctx) #undef LAYER_NUM } +static void +test_screen_bad_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 ivi_layout_screen *iviscrn; + int32_t width; + int32_t height; + + iassert(ctl->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED); + iassert(screen_length > 0); + + if (screen_length <= 0) + return; + + iviscrn = iviscrns[0]; + iassert(ctl->get_screen_resolution(NULL, &width, &height) == IVI_FAILED); + iassert(ctl->get_screen_resolution(iviscrn, NULL, &height) == IVI_FAILED); + iassert(ctl->get_screen_resolution(iviscrn, &width, NULL) == IVI_FAILED); + free(iviscrns); +} + +static void +test_screen_bad_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; + 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(NULL, ivilayers, LAYER_NUM) == IVI_FAILED); + + ctl->commit_changes(); + + iassert(ctl->get_layers_on_screen(NULL, &length, &array) == IVI_FAILED); + iassert(ctl->get_layers_on_screen(iviscrn, NULL, &array) == IVI_FAILED); + iassert(ctl->get_layers_on_screen(iviscrn, &length, NULL) == IVI_FAILED); + + for (i = 0; i < LAYER_NUM; i++) + ctl->layer_destroy(ivilayers[i]); + + free(iviscrns); +#undef LAYER_NUM +} + +static void +test_commit_changes_after_render_order_set_layer_destroy( + 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; + struct ivi_layout_screen *iviscrn; + struct ivi_layout_layer *ivilayers[LAYER_NUM] = {}; + 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->layer_destroy(ivilayers[1]); + + ctl->commit_changes(); + + ctl->layer_destroy(ivilayers[0]); + ctl->layer_destroy(ivilayers[2]); + + free(iviscrns); +#undef LAYER_NUM +} + /************************ tests end ********************************/ static void @@ -845,6 +943,10 @@ run_internal_tests(void *data) test_screen_id(ctx); test_screen_resolution(ctx); test_screen_render_order(ctx); + test_screen_bad_resolution(ctx); + test_screen_bad_render_order(ctx); + test_commit_changes_after_render_order_set_layer_destroy(ctx); + weston_compositor_exit_with_code(ctx->compositor, EXIT_SUCCESS); free(ctx); |