[mutter] tests/kms-update: Add mode setting sanity tests



commit 4276e9ddd3ebfd005f842b4378ed472522658fca
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Wed Jun 16 14:17:47 2021 +0200

    tests/kms-update: Add mode setting sanity tests
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2159>

 src/backends/native/meta-kms-update.h |  1 +
 src/tests/native-kms-updates.c        | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)
---
diff --git a/src/backends/native/meta-kms-update.h b/src/backends/native/meta-kms-update.h
index deadbd5fcc..08abf4cf90 100644
--- a/src/backends/native/meta-kms-update.h
+++ b/src/backends/native/meta-kms-update.h
@@ -109,6 +109,7 @@ void meta_kms_update_set_privacy_screen (MetaKmsUpdate    *update,
 
 void meta_kms_update_set_power_save (MetaKmsUpdate *update);
 
+META_EXPORT_TEST
 void meta_kms_update_mode_set (MetaKmsUpdate *update,
                                MetaKmsCrtc   *crtc,
                                GList         *connectors,
diff --git a/src/tests/native-kms-updates.c b/src/tests/native-kms-updates.c
index 87e131d477..882f61de5d 100644
--- a/src/tests/native-kms-updates.c
+++ b/src/tests/native-kms-updates.c
@@ -209,6 +209,39 @@ meta_test_kms_update_fixed16 (void)
   g_assert_cmpint (rect16.height, ==, 26214400);
 }
 
+static void
+meta_test_kms_update_mode_sets (void)
+{
+  MetaKmsDevice *device;
+  MetaKmsUpdate *update;
+  MetaKmsCrtc *crtc;
+  MetaKmsConnector *connector;
+  MetaKmsMode *mode;
+  GList *mode_sets;
+  MetaKmsModeSet *mode_set;
+
+  device = meta_get_test_kms_device (test_context);
+  update = meta_kms_update_new (device);
+  crtc = meta_get_test_kms_crtc (device);
+  connector = meta_get_test_kms_connector (device);
+  mode = get_preferred_mode (connector);
+
+  meta_kms_update_mode_set (update, crtc,
+                            g_list_append (NULL, connector),
+                            mode);
+
+  mode_sets = meta_kms_update_get_mode_sets (update);
+  g_assert_cmpuint (g_list_length (mode_sets), ==, 1);
+  mode_set = mode_sets->data;
+
+  g_assert (mode_set->crtc == crtc);
+  g_assert_cmpuint (g_list_length (mode_set->connectors), ==, 1);
+  g_assert (mode_set->connectors->data == connector);
+  g_assert (mode_set->mode == mode);
+
+  meta_kms_update_free (update);
+}
+
 static void
 init_tests (void)
 {
@@ -218,6 +251,8 @@ init_tests (void)
                    meta_test_kms_update_fixed16);
   g_test_add_func ("/backends/native/kms/update/plane-assignments",
                    meta_test_kms_update_plane_assignments);
+  g_test_add_func ("/backends/native/kms/update/mode-sets",
+                   meta_test_kms_update_mode_sets);
 }
 
 int


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