[mutter] monitor-unit-tests: Test starting with lid closed
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] monitor-unit-tests: Test starting with lid closed
- Date: Wed, 25 Jan 2017 08:38:06 +0000 (UTC)
commit 81923410f6e49ff3f2e393ed29e74253eb5e6931
Author: Jonas Ådahl <jadahl gmail com>
Date: Tue Jan 10 13:18:46 2017 +0800
monitor-unit-tests: Test starting with lid closed
Add a test case that checks that configuration works when the lid is
initialy closed then later opened. This test case is disabled when the
legacy configuration is used as it does not handle that situation.
https://bugzilla.gnome.org/show_bug.cgi?id=777732
src/tests/monitor-unit-tests.c | 141 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 141 insertions(+), 0 deletions(-)
---
diff --git a/src/tests/monitor-unit-tests.c b/src/tests/monitor-unit-tests.c
index 31cdd1e..54a77cd 100644
--- a/src/tests/monitor-unit-tests.c
+++ b/src/tests/monitor-unit-tests.c
@@ -1494,6 +1494,145 @@ meta_test_monitor_lid_switch_config (void)
check_monitor_configuration (&test_case);
}
+static void
+meta_test_monitor_lid_opened_config (void)
+{
+ MonitorTestCase test_case = {
+ .setup = {
+ .modes = {
+ {
+ .width = 1024,
+ .height = 768,
+ .refresh_rate = 60.0
+ }
+ },
+ .n_modes = 1,
+ .outputs = {
+ {
+ .crtc = 0,
+ .modes = { 0 },
+ .n_modes = 1,
+ .preferred_mode = 0,
+ .possible_crtcs = { 0 },
+ .n_possible_crtcs = 1,
+ .width_mm = 222,
+ .height_mm = 125,
+ .is_laptop_panel = TRUE
+ },
+ {
+ .crtc = 1,
+ .modes = { 0 },
+ .n_modes = 1,
+ .preferred_mode = 0,
+ .possible_crtcs = { 1 },
+ .n_possible_crtcs = 1,
+ .width_mm = 220,
+ .height_mm = 124
+ }
+ },
+ .n_outputs = 2,
+ .crtcs = {
+ {
+ .current_mode = 0
+ },
+ {
+ .current_mode = 0
+ }
+ },
+ .n_crtcs = 2
+ },
+
+ .expect = {
+ .monitors = {
+ {
+ .outputs = { 0 },
+ .n_outputs = 1,
+ .modes = {
+ {
+ .width = 1024,
+ .height = 768,
+ .crtc_modes = {
+ {
+ .output = 0,
+ .crtc_mode = 0
+ }
+ }
+ }
+ },
+ .n_modes = 1,
+ .current_mode = -1,
+ .width_mm = 222,
+ .height_mm = 125
+ },
+ {
+ .outputs = { 1 },
+ .n_outputs = 1,
+ .modes = {
+ {
+ .width = 1024,
+ .height = 768,
+ .crtc_modes = {
+ {
+ .output = 1,
+ .crtc_mode = 0
+ }
+ }
+ }
+ },
+ .n_modes = 1,
+ .current_mode = 0,
+ .width_mm = 220,
+ .height_mm = 124
+ }
+ },
+ .n_monitors = 2,
+ .logical_monitors = {
+ {
+ .layout = { .x = 0, .y = 0, .width = 1024, .height = 768 },
+ .scale = 1
+ },
+ {
+ .layout = { .x = 1024, .y = 0, .width = 1024, .height = 768 },
+ .scale = 1
+ }
+ },
+ .n_logical_monitors = 1, /* Second one checked after lid opened. */
+ .n_outputs = 2,
+ .n_crtcs = 2,
+ .n_tiled_monitors = 0,
+ .screen_width = 1024,
+ .screen_height = 768
+ }
+ };
+ MetaMonitorTestSetup *test_setup;
+ MetaBackend *backend = meta_get_backend ();
+ MetaMonitorManager *monitor_manager =
+ meta_backend_get_monitor_manager (backend);
+ MetaMonitorManagerTest *monitor_manager_test =
+ META_MONITOR_MANAGER_TEST (monitor_manager);
+
+ if (!monitor_manager->config_manager)
+ {
+ g_test_skip ("Only the new monitor config manager handles this case.");
+ return;
+ }
+
+ test_setup = create_monitor_test_setup (&test_case);
+ meta_monitor_manager_test_set_is_lid_closed (monitor_manager_test, TRUE);
+
+ emulate_hotplug (test_setup);
+ check_monitor_configuration (&test_case);
+
+ meta_monitor_manager_test_set_is_lid_closed (monitor_manager_test, FALSE);
+ meta_monitor_manager_lid_is_closed_changed (monitor_manager);
+
+ test_case.expect.n_logical_monitors = 2;
+ test_case.expect.screen_width = 1024 * 2;
+ test_case.expect.monitors[0].current_mode = 0;
+
+ check_monitor_configuration (&test_case);
+}
+
void
init_monitor_tests (void)
{
@@ -1520,4 +1659,6 @@ init_monitor_tests (void)
meta_test_monitor_limited_crtcs);
g_test_add_func ("/backends/monitor/lid-switch-config",
meta_test_monitor_lid_switch_config);
+ g_test_add_func ("/backends/monitor/lid-opened-config",
+ meta_test_monitor_lid_opened_config);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]