tests: test set for ivi-layer bad condition with helper-client
These tests are implemented on test suite framework, which provides
helper client.
Following features are tested,
- bad render order of ivi-surface on ivi-layer
- call commitchanges after a ivi_surface in render order is destoryed
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>
diff --git a/tests/ivi_layout-test.c b/tests/ivi_layout-test.c
index 051ded4..2ac67a4 100644
--- a/tests/ivi_layout-test.c
+++ b/tests/ivi_layout-test.c
@@ -210,6 +210,7 @@
const char * const render_order_test_names[] = {
"layer_render_order",
+ "layer_bad_render_order",
};
TEST_P(ivi_layout_runner, basic_test_names)
@@ -337,3 +338,52 @@
ivi_window_destroy(winds[2]);
runner_destroy(runner);
}
+
+TEST(destroy_surface_after_layer_render_order)
+{
+ struct client *client;
+ struct runner *runner;
+ struct ivi_window *winds[3];
+
+ client = create_client();
+ runner = client_create_runner(client);
+
+ winds[0] = client_create_ivi_window(client, IVI_TEST_SURFACE_ID(0));
+ winds[1] = client_create_ivi_window(client, IVI_TEST_SURFACE_ID(1));
+ winds[2] = client_create_ivi_window(client, IVI_TEST_SURFACE_ID(2));
+
+ runner_run(runner, "test_layer_render_order_destroy_one_surface_p1");
+
+ ivi_window_destroy(winds[1]);
+
+ runner_run(runner, "test_layer_render_order_destroy_one_surface_p2");
+
+ ivi_window_destroy(winds[0]);
+ ivi_window_destroy(winds[2]);
+ runner_destroy(runner);
+}
+
+TEST(commit_changes_after_render_order_set_surface_destroy)
+{
+ struct client *client;
+ struct runner *runner;
+ struct ivi_window *winds[3];
+
+ client = create_client();
+ runner = client_create_runner(client);
+
+ winds[0] = client_create_ivi_window(client, IVI_TEST_SURFACE_ID(0));
+ winds[1] = client_create_ivi_window(client, IVI_TEST_SURFACE_ID(1));
+ winds[2] = client_create_ivi_window(client, IVI_TEST_SURFACE_ID(2));
+
+ runner_run(runner, "commit_changes_after_render_order_set_surface_destroy");
+
+ ivi_window_destroy(winds[1]);
+
+ runner_run(runner, "ivi_layout_commit_changes");
+ runner_run(runner, "cleanup_layer");
+
+ ivi_window_destroy(winds[0]);
+ ivi_window_destroy(winds[2]);
+ runner_destroy(runner);
+}