diff --git a/src/backends/native/meta-kms-update.h b/src/backends/native/meta-kms-update.h index deadbd5fc..08abf4cf9 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 87e131d47..882f61de5 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