[mutter] tests: Also make test case verification declarative
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] tests: Also make test case verification declarative
- Date: Wed, 25 Jan 2017 08:33:24 +0000 (UTC)
commit d920eaba4a122520cef964d6f291d8c0ec694398
Author: Jonas Ådahl <jadahl gmail com>
Date: Wed Dec 7 14:18:28 2016 +0800
tests: Also make test case verification declarative
Set up the expected result in a declarative way in the same place as
the test case setup is declared. This way we have a completely
declarative way to create test cases.
https://bugzilla.gnome.org/show_bug.cgi?id=777732
src/tests/monitor-unit-tests.c | 89 +++++++++++++++++++++++++++++----------
1 files changed, 66 insertions(+), 23 deletions(-)
---
diff --git a/src/tests/monitor-unit-tests.c b/src/tests/monitor-unit-tests.c
index 01cc1b7..9a14f3c 100644
--- a/src/tests/monitor-unit-tests.c
+++ b/src/tests/monitor-unit-tests.c
@@ -67,9 +67,26 @@ typedef struct _MonitorTestCaseSetup
int n_crtcs;
} MonitorTestCaseSetup;
+typedef struct _MonitorTestCaseLogicalMonitor
+{
+ MetaRectangle layout;
+ int scale;
+} MonitorTestCaseLogicalMonitor;
+
+typedef struct _MonitorTestCaseExpect
+{
+ MonitorTestCaseLogicalMonitor logical_monitors[MAX_N_LOGICAL_MONITORS];
+ int n_logical_monitors;
+ int n_outputs;
+ int n_crtcs;
+ int screen_width;
+ int screen_height;
+} MonitorTestCaseExpect;
+
typedef struct _MonitorTestCase
{
MonitorTestCaseSetup setup;
+ MonitorTestCaseExpect expect;
} MonitorTestCase;
static MonitorTestCase initial_test_case = {
@@ -114,44 +131,64 @@ static MonitorTestCase initial_test_case = {
}
},
.n_crtcs = 2
+ },
+
+ .expect = {
+ .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 = 2,
+ .n_outputs = 2,
+ .n_crtcs = 2,
+ .screen_width = 1024 * 2,
+ .screen_height = 768
}
};
static void
-meta_test_monitor_linear_config (void)
+check_monitor_configuration (MonitorTestCase *test_case)
{
MetaBackend *backend = meta_get_backend ();
MetaMonitorManager *monitor_manager =
meta_backend_get_monitor_manager (backend);
- GList *logical_monitors, *l;
- int n_logical_monitors, i;
- MetaRectangle expected_rects[] = {
- { .x = 0, .y = 0, .width = 1024, .height = 768 },
- { .x = 1024, .y = 0, .width = 1024, .height = 768 },
- };
-
- g_assert (monitor_manager->screen_width == 1024 * 2);
- g_assert (monitor_manager->screen_height == 768);
- g_assert (monitor_manager->n_outputs == 2);
- g_assert (monitor_manager->n_crtcs == 2);
+ GList *logical_monitors;
+ int n_logical_monitors;
+ GList *l;
+ int i;
+
+ g_assert (monitor_manager->screen_width == test_case->expect.screen_width);
+ g_assert (monitor_manager->screen_height == test_case->expect.screen_height);
+ g_assert ((int) monitor_manager->n_outputs == test_case->expect.n_outputs);
+ g_assert ((int) monitor_manager->n_crtcs == test_case->expect.n_crtcs);
n_logical_monitors =
meta_monitor_manager_get_num_logical_monitors (monitor_manager);
- g_assert (n_logical_monitors == 2);
+ g_assert (n_logical_monitors == test_case->expect.n_logical_monitors);
logical_monitors =
meta_monitor_manager_get_logical_monitors (monitor_manager);
- i = 0;
- for (l = logical_monitors; l; l = l->next)
+ for (l = logical_monitors, i = 0; l; l = l->next, i++)
{
MetaLogicalMonitor *logical_monitor = l->data;
-
- g_assert (logical_monitor->rect.x == expected_rects[i].x);
- g_assert (logical_monitor->rect.y == expected_rects[i].y);
- g_assert (logical_monitor->rect.width == expected_rects[i].width);
- g_assert (logical_monitor->rect.height == expected_rects[i].height);
- i++;
+ MonitorTestCaseLogicalMonitor *test_logical_monitor =
+ &test_case->expect.logical_monitors[i];
+
+ g_assert (logical_monitor->rect.x == test_logical_monitor->layout.x);
+ g_assert (logical_monitor->rect.y == test_logical_monitor->layout.y);
+ g_assert (logical_monitor->rect.width ==
+ test_logical_monitor->layout.width);
+ g_assert (logical_monitor->rect.height ==
+ test_logical_monitor->layout.height);
+ g_assert (logical_monitor->scale == test_logical_monitor->scale);
}
+ g_assert (n_logical_monitors == i);
}
static MetaMonitorTestSetup *
@@ -270,6 +307,12 @@ create_monitor_test_setup (MonitorTestCase *test_case)
return test_setup;
}
+static void
+meta_test_monitor_initial_linear_config (void)
+{
+ check_monitor_configuration (&initial_test_case);
+}
+
void
init_monitor_tests (void)
{
@@ -278,6 +321,6 @@ init_monitor_tests (void)
initial_test_setup = create_monitor_test_setup (&initial_test_case);
meta_monitor_manager_test_init_test_setup (initial_test_setup);
- g_test_add_func ("/backends/monitor/linear-config",
- meta_test_monitor_linear_config);
+ g_test_add_func ("/backends/monitor/initial-linear-config",
+ meta_test_monitor_initial_linear_config);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]