[mutter] tests/color: Test that we handle devices with no GAMMA_LUT
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] tests/color: Test that we handle devices with no GAMMA_LUT
- Date: Sat, 3 Sep 2022 15:05:49 +0000 (UTC)
commit b1a687ae571e534b032f43df23d92ed5d4377eb9
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Sat Sep 3 15:49:52 2022 +0200
tests/color: Test that we handle devices with no GAMMA_LUT
We should create the color device etc, but we shouldn't attempt to set
the GAMMA_LUT.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2611>
src/backends/meta-monitor.h | 1 +
src/tests/color-management-tests.c | 58 ++++++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+)
---
diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h
index 5ce98c3a15..387938b3b9 100644
--- a/src/backends/meta-monitor.h
+++ b/src/backends/meta-monitor.h
@@ -303,6 +303,7 @@ gboolean meta_monitor_set_privacy_screen_enabled (MetaMonitor *monitor,
gboolean enabled,
GError **error);
+META_EXPORT_TEST
size_t meta_monitor_get_gamma_lut_size (MetaMonitor *monitor);
void meta_monitor_set_gamma_lut (MetaMonitor *monitor,
diff --git a/src/tests/color-management-tests.c b/src/tests/color-management-tests.c
index d1aaec69fc..c486fd2d68 100644
--- a/src/tests/color-management-tests.c
+++ b/src/tests/color-management-tests.c
@@ -472,6 +472,62 @@ meta_test_color_management_device_basic (void)
}
}
+static void
+meta_test_color_management_device_no_gamma (void)
+{
+ MetaBackend *backend = meta_context_get_backend (test_context);
+ MetaMonitorManager *monitor_manager =
+ meta_backend_get_monitor_manager (backend);
+ MetaMonitorManagerTest *monitor_manager_test =
+ META_MONITOR_MANAGER_TEST (monitor_manager);
+ MetaColorManager *color_manager =
+ meta_backend_get_color_manager (backend);
+ MonitorTestCaseSetup test_case_setup = base_monitor_setup;
+ MetaMonitorTestSetup *test_setup;
+ GList *monitors;
+ MetaMonitor *monitor;
+ MetaColorDevice *color_device;
+ MetaColorProfile *color_profile;
+ const char *profile_id;
+ const char *color_profiles[1];
+
+ test_case_setup.outputs[0].edid_info = CALTECH_MONITOR_EDID;
+ test_case_setup.outputs[0].has_edid_info = TRUE;
+ test_case_setup.crtcs[0].disable_gamma_lut = TRUE;
+
+ test_case_setup.n_outputs = 1;
+ test_case_setup.n_crtcs = 1;
+ test_setup = meta_create_monitor_test_setup (backend, &test_case_setup,
+ MONITOR_TEST_FLAG_NO_STORED);
+ meta_monitor_manager_test_emulate_hotplug (monitor_manager_test, test_setup);
+
+ monitors = meta_monitor_manager_get_monitors (monitor_manager);
+ g_assert_cmpuint (g_list_length (monitors), ==, 1);
+ g_assert_cmpuint (g_list_length (monitors),
+ ==,
+ meta_color_manager_get_num_color_devices (color_manager));
+
+ monitor = META_MONITOR (monitors->data);
+ g_assert_cmpint (meta_monitor_get_gamma_lut_size (monitor), ==, 0);
+
+ color_device = meta_color_manager_get_color_device (color_manager, monitor);
+ g_assert_nonnull (color_device);
+ g_assert (meta_color_device_get_monitor (color_device) == monitor);
+
+ while (!meta_color_device_is_ready (color_device))
+ g_main_context_iteration (NULL, TRUE);
+
+ color_profile = meta_color_device_get_device_profile (color_device);
+ g_assert_nonnull (color_profile);
+
+ profile_id = meta_color_profile_get_id (color_profile);
+ color_profiles[0] = profile_id;
+ set_colord_device_profiles (meta_color_device_get_id (color_device),
+ color_profiles, G_N_ELEMENTS (color_profiles));
+
+ wait_for_profile_assigned (color_device, profile_id);
+}
+
static void
meta_test_color_management_profile_device (void)
{
@@ -1287,6 +1343,8 @@ init_tests (void)
add_color_test ("/color-management/device/basic",
meta_test_color_management_device_basic);
+ add_color_test ("/color-management/device/no-gamma",
+ meta_test_color_management_device_no_gamma);
add_color_test ("/color-management/profile/device",
meta_test_color_management_profile_device);
add_color_test ("/color-management/profile/system",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]