[mutter] tests/monitor: Check that the CRTC "layout" is correct



commit 3bd0037fa1d93521a2fd807824a3b953f65b02c4
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Thu Oct 8 17:36:19 2020 +0200

    tests/monitor: Check that the CRTC "layout" is correct
    
    The layout should be the region of the stage the CRTC represents; check
    that.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1488>

 src/backends/meta-renderer.c   |  2 +-
 src/backends/meta-renderer.h   |  4 ++++
 src/tests/monitor-test-utils.c | 20 ++++++++++++++++++++
 3 files changed, 25 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/meta-renderer.c b/src/backends/meta-renderer.c
index 27ea7c38af..96c05a4341 100644
--- a/src/backends/meta-renderer.c
+++ b/src/backends/meta-renderer.c
@@ -172,7 +172,7 @@ meta_renderer_real_rebuild_views (MetaRenderer *renderer)
     }
 }
 
-static MetaRendererView *
+MetaRendererView *
 meta_renderer_get_view_for_crtc (MetaRenderer *renderer,
                                  MetaCrtc     *crtc)
 {
diff --git a/src/backends/meta-renderer.h b/src/backends/meta-renderer.h
index 134d23abf6..92b0727bbd 100644
--- a/src/backends/meta-renderer.h
+++ b/src/backends/meta-renderer.h
@@ -62,6 +62,10 @@ void meta_renderer_add_view (MetaRenderer     *renderer,
 GList * meta_renderer_get_views_for_monitor (MetaRenderer *renderer,
                                              MetaMonitor  *monitor);
 
+META_EXPORT_TEST
+MetaRendererView * meta_renderer_get_view_for_crtc (MetaRenderer *renderer,
+                                                    MetaCrtc     *crtc);
+
 META_EXPORT_TEST
 GList * meta_renderer_get_views (MetaRenderer *renderer);
 
diff --git a/src/tests/monitor-test-utils.c b/src/tests/monitor-test-utils.c
index 8a18e012aa..b9771ef1ac 100644
--- a/src/tests/monitor-test-utils.c
+++ b/src/tests/monitor-test-utils.c
@@ -325,6 +325,7 @@ void
 check_monitor_configuration (MonitorTestCaseExpect *expect)
 {
   MetaBackend *backend = meta_get_backend ();
+  MetaRenderer *renderer = meta_backend_get_renderer (backend);
   MetaMonitorManager *monitor_manager =
     meta_backend_get_monitor_manager (backend);
   MetaMonitorManagerTest *monitor_manager_test =
@@ -544,6 +545,8 @@ check_monitor_configuration (MonitorTestCaseExpect *expect)
         {
           MetaCrtcMode *expected_current_mode;
           const GList *l_output;
+          MetaRendererView *view;
+          cairo_rectangle_int_t view_layout;
 
           for (l_output = meta_crtc_get_outputs (crtc);
                l_output;
@@ -572,6 +575,23 @@ check_monitor_configuration (MonitorTestCaseExpect *expect)
           g_assert_cmpfloat_with_epsilon (crtc_config->layout.origin.y,
                                           expect->crtcs[i].y,
                                           FLT_EPSILON);
+
+          view = meta_renderer_get_view_for_crtc (renderer, crtc);
+          g_assert_nonnull (view);
+          clutter_stage_view_get_layout (CLUTTER_STAGE_VIEW (view),
+                                         &view_layout);
+          g_assert_cmpfloat_with_epsilon (crtc_config->layout.origin.x,
+                                          view_layout.x,
+                                          FLT_EPSILON);
+          g_assert_cmpfloat_with_epsilon (crtc_config->layout.origin.y,
+                                          view_layout.y,
+                                          FLT_EPSILON);
+          g_assert_cmpfloat_with_epsilon (crtc_config->layout.size.width,
+                                          view_layout.width,
+                                          FLT_EPSILON);
+          g_assert_cmpfloat_with_epsilon (crtc_config->layout.size.height,
+                                          view_layout.height,
+                                          FLT_EPSILON);
         }
     }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]