[mutter] tests/stage-view: Test that actors pick the right frame clock
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] tests/stage-view: Test that actors pick the right frame clock
- Date: Thu, 2 Jul 2020 20:55:06 +0000 (UTC)
commit 442f34b4de89a47f6b8a3e373e7b6edc7e780ca8
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Tue Jun 2 11:28:44 2020 +0200
tests/stage-view: Test that actors pick the right frame clock
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1285
src/tests/stage-view-tests.c | 83 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
---
diff --git a/src/tests/stage-view-tests.c b/src/tests/stage-view-tests.c
index f31f7ccff7..0533d0afa7 100644
--- a/src/tests/stage-view-tests.c
+++ b/src/tests/stage-view-tests.c
@@ -17,6 +17,8 @@
#include "config.h"
+#include "clutter/clutter.h"
+#include "clutter/clutter-stage-view-private.h"
#include "compositor/meta-plugin-manager.h"
#include "core/main-private.h"
#include "meta/main.h"
@@ -585,6 +587,85 @@ meta_test_actor_stage_views_hot_plug (void)
clutter_actor_destroy (actor_2);
}
+static void
+meta_test_actor_stage_views_frame_clock (void)
+{
+ MetaBackend *backend = meta_get_backend ();
+ MetaMonitorManager *monitor_manager =
+ meta_backend_get_monitor_manager (backend);
+ MetaMonitorManagerTest *monitor_manager_test =
+ META_MONITOR_MANAGER_TEST (monitor_manager);
+ ClutterActor *stage = meta_backend_get_stage (backend);
+ ClutterActor *actor_1;
+ ClutterActor *actor_2;
+ ClutterActor *actor_3;
+ GList *stage_views;
+ MonitorTestCaseSetup frame_clock_test_setup = initial_test_case_setup;
+ MetaMonitorTestSetup *test_setup;
+ ClutterFrameClock *frame_clock;
+
+ frame_clock_test_setup.modes[1].width = 1024;
+ frame_clock_test_setup.modes[1].height = 768;
+ frame_clock_test_setup.modes[1].refresh_rate = 30.0;
+ frame_clock_test_setup.n_modes = 2;
+ frame_clock_test_setup.outputs[1].modes[0] = 1;
+ frame_clock_test_setup.outputs[1].preferred_mode = 1;
+ test_setup = create_monitor_test_setup (&frame_clock_test_setup,
+ MONITOR_TEST_FLAG_NO_STORED);
+ meta_monitor_manager_test_emulate_hotplug (monitor_manager_test, test_setup);
+
+ stage_views = clutter_stage_peek_stage_views (CLUTTER_STAGE (stage));
+
+ g_assert_cmpfloat (clutter_stage_view_get_refresh_rate (stage_views->data),
+ ==,
+ 60.0);
+ g_assert_cmpfloat (clutter_stage_view_get_refresh_rate (stage_views->next->data),
+ ==,
+ 30.0);
+
+ actor_1 = clutter_actor_new ();
+ clutter_actor_set_size (actor_1, 100, 100);
+ clutter_actor_set_position (actor_1, 100, 100);
+ clutter_actor_add_child (stage, actor_1);
+
+ actor_2 = clutter_actor_new ();
+ clutter_actor_set_size (actor_2, 100, 100);
+ clutter_actor_set_position (actor_2, 1100, 100);
+ clutter_actor_add_child (stage, actor_2);
+
+ actor_3 = clutter_actor_new ();
+ clutter_actor_set_size (actor_3, 100, 100);
+ clutter_actor_set_position (actor_3, 1000, 400);
+ clutter_actor_add_child (stage, actor_3);
+
+ clutter_actor_show (stage);
+
+ wait_for_paint (stage);
+
+ is_on_stage_views (actor_1, 1, stage_views->data);
+ is_on_stage_views (actor_2, 1, stage_views->next->data);
+ is_on_stage_views (actor_3, 2,
+ stage_views->data,
+ stage_views->next->data);
+
+ frame_clock = clutter_actor_pick_frame_clock (actor_1);
+ g_assert_cmpfloat (clutter_frame_clock_get_refresh_rate (frame_clock),
+ ==,
+ 60.0);
+ frame_clock = clutter_actor_pick_frame_clock (actor_2);
+ g_assert_cmpfloat (clutter_frame_clock_get_refresh_rate (frame_clock),
+ ==,
+ 30.0);
+ frame_clock = clutter_actor_pick_frame_clock (actor_3);
+ g_assert_cmpfloat (clutter_frame_clock_get_refresh_rate (frame_clock),
+ ==,
+ 60.0);
+
+ clutter_actor_destroy (actor_1);
+ clutter_actor_destroy (actor_2);
+ clutter_actor_destroy (actor_3);
+}
+
static void
init_tests (int argc, char **argv)
{
@@ -602,6 +683,8 @@ init_tests (int argc, char **argv)
meta_test_actor_stage_views_hide_parent);
g_test_add_func ("/stage-views/actor-stage-views-hot-plug",
meta_test_actor_stage_views_hot_plug);
+ g_test_add_func ("/stage-views/actor-stage-views-frame-clock",
+ meta_test_actor_stage_views_frame_clock);
}
int
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]