Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1376)

Side by Side Diff: ui/ozone/platform/drm/common/drm_util_unittest.cc

Issue 2930163002: Convert ozone/drm DisplaySnapshot_Param to DisplaySnapshotMojo (Closed)
Patch Set: review nits Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/ozone/platform/drm/common/drm_util.cc ('k') | ui/ozone/platform/drm/gpu/drm_thread.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/ozone/platform/drm/common/drm_util.h" 5 #include "ui/ozone/platform/drm/common/drm_util.h"
6
6 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/display/types/display_snapshot_mojo.h"
7 #include "ui/gfx/geometry/size.h" 9 #include "ui/gfx/geometry/size.h"
8 #include "ui/ozone/common/gpu/ozone_gpu_message_params.h" 10 #include "ui/ozone/common/gpu/ozone_gpu_message_params.h"
9 11
10 namespace ui { 12 namespace ui {
11 13
14 bool operator==(const ui::DisplayMode_Params& a,
15 const ui::DisplayMode_Params& b) {
16 return a.size == b.size && a.is_interlaced == b.is_interlaced &&
17 a.refresh_rate == b.refresh_rate;
18 }
19
20 bool operator==(const ui::DisplaySnapshot_Params& a,
21 const ui::DisplaySnapshot_Params& b) {
22 return a.display_id == b.display_id && a.origin == b.origin &&
23 a.physical_size == b.physical_size && a.type == b.type &&
24 a.is_aspect_preserving_scaling == b.is_aspect_preserving_scaling &&
25 a.has_overscan == b.has_overscan &&
26 a.has_color_correction_matrix == b.has_color_correction_matrix &&
27 a.display_name == b.display_name && a.sys_path == b.sys_path &&
28 std::equal(a.modes.cbegin(), a.modes.cend(), b.modes.cbegin()) &&
29 std::equal(a.edid.cbegin(), a.edid.cend(), a.edid.cbegin()) &&
30 a.has_current_mode == b.has_current_mode &&
31 a.current_mode == b.current_mode &&
32 a.has_native_mode == b.has_native_mode &&
33 a.native_mode == b.native_mode && a.product_id == b.product_id &&
34 a.string_representation == b.string_representation &&
35 a.maximum_cursor_size == b.maximum_cursor_size;
36 }
37
38 namespace {
39
40 DisplayMode_Params MakeDisplay(float refresh) {
41 DisplayMode_Params params;
42 params.size = gfx::Size(101, 42);
43 params.is_interlaced = true;
44 params.refresh_rate = refresh;
45 return params;
46 }
47
48 void DetailedCompare(const ui::DisplaySnapshot_Params& a,
49 const ui::DisplaySnapshot_Params& b) {
50 EXPECT_EQ(a.display_id, b.display_id);
51 EXPECT_EQ(a.origin, b.origin);
52 EXPECT_EQ(a.physical_size, b.physical_size);
53 EXPECT_EQ(a.type, b.type);
54 EXPECT_EQ(a.is_aspect_preserving_scaling, b.is_aspect_preserving_scaling);
55 EXPECT_EQ(a.has_overscan, b.has_overscan);
56 EXPECT_EQ(a.has_color_correction_matrix, b.has_color_correction_matrix);
57 EXPECT_EQ(a.display_name, b.display_name);
58 EXPECT_EQ(a.sys_path, b.sys_path);
59 EXPECT_EQ(a.modes, b.modes);
60 EXPECT_EQ(a.edid, b.edid);
61 EXPECT_EQ(a.has_current_mode, b.has_current_mode);
62 EXPECT_EQ(a.current_mode, b.current_mode);
63 EXPECT_EQ(a.has_native_mode, b.has_native_mode);
64 EXPECT_EQ(a.native_mode, b.native_mode);
65 EXPECT_EQ(a.product_id, b.product_id);
66 EXPECT_EQ(a.string_representation, b.string_representation);
67 EXPECT_EQ(a.maximum_cursor_size, b.maximum_cursor_size);
68 }
69
70 } // namespace
71
12 class DrmUtilTest : public testing::Test {}; 72 class DrmUtilTest : public testing::Test {};
13 73
14 TEST_F(DrmUtilTest, RoundTripEquivalence) { 74 TEST_F(DrmUtilTest, RoundTripEquivalence) {
15 DisplayMode_Params orig_params; 75 DisplayMode_Params orig_params = MakeDisplay(3.14);
16
17 orig_params.size = gfx::Size(101, 42);
18 orig_params.is_interlaced = true;
19 orig_params.refresh_rate = 3.14;
20 76
21 auto udm = CreateDisplayModeFromParams(orig_params); 77 auto udm = CreateDisplayModeFromParams(orig_params);
22 auto roundtrip_params = GetDisplayModeParams(*udm.get()); 78 auto roundtrip_params = GetDisplayModeParams(*udm.get());
23 79
24 EXPECT_EQ(orig_params.size.width(), roundtrip_params.size.width()); 80 EXPECT_EQ(orig_params.size.width(), roundtrip_params.size.width());
25 EXPECT_EQ(orig_params.size.height(), roundtrip_params.size.height()); 81 EXPECT_EQ(orig_params.size.height(), roundtrip_params.size.height());
26 EXPECT_EQ(orig_params.is_interlaced, roundtrip_params.is_interlaced); 82 EXPECT_EQ(orig_params.is_interlaced, roundtrip_params.is_interlaced);
27 EXPECT_EQ(orig_params.refresh_rate, roundtrip_params.refresh_rate); 83 EXPECT_EQ(orig_params.refresh_rate, roundtrip_params.refresh_rate);
28 } 84 }
29 85
86 TEST_F(DrmUtilTest, RoundTripDisplaySnapshot) {
87 std::vector<DisplaySnapshot_Params> orig_params;
88 DisplaySnapshot_Params fp, sp, ep;
89
90 fp.display_id = 101;
91 fp.origin = gfx::Point(101, 42);
92 fp.physical_size = gfx::Size(102, 43);
93 fp.type = display::DISPLAY_CONNECTION_TYPE_INTERNAL;
94 fp.is_aspect_preserving_scaling = true;
95 fp.has_overscan = true;
96 fp.has_color_correction_matrix = true;
97 fp.display_name = "bending glass";
98 fp.sys_path = base::FilePath("/bending");
99 fp.modes =
100 std::vector<DisplayMode_Params>({MakeDisplay(1.1), MakeDisplay(1.2)});
101 fp.edid = std::vector<uint8_t>({'f', 'p'});
102 fp.has_current_mode = true;
103 fp.current_mode = MakeDisplay(1.2);
104 fp.has_native_mode = true;
105 fp.native_mode = MakeDisplay(1.1);
106 fp.product_id = 7;
107 fp.string_representation = "bending glass display";
108 fp.maximum_cursor_size = gfx::Size(103, 44);
109
110 sp.display_id = 1002;
111 sp.origin = gfx::Point(500, 42);
112 sp.physical_size = gfx::Size(500, 43);
113 sp.type = display::DISPLAY_CONNECTION_TYPE_INTERNAL;
114 sp.is_aspect_preserving_scaling = true;
115 sp.has_overscan = true;
116 sp.has_color_correction_matrix = true;
117 sp.display_name = "rigid glass";
118 sp.sys_path = base::FilePath("/bending");
119 sp.modes =
120 std::vector<DisplayMode_Params>({MakeDisplay(500.1), MakeDisplay(500.2)});
121 sp.edid = std::vector<uint8_t>({'s', 'p'});
122 sp.has_current_mode = false;
123 sp.has_native_mode = true;
124 sp.native_mode = MakeDisplay(500.2);
125 sp.product_id = 8;
126 sp.string_representation = "rigid glass display";
127 sp.maximum_cursor_size = gfx::Size(500, 44);
128
129 ep.display_id = 2002;
130 ep.origin = gfx::Point(1000, 42);
131 ep.physical_size = gfx::Size(1000, 43);
132 ep.type = display::DISPLAY_CONNECTION_TYPE_INTERNAL;
133 ep.is_aspect_preserving_scaling = false;
134 ep.has_overscan = false;
135 ep.has_color_correction_matrix = false;
136 ep.display_name = "fluted glass";
137 ep.sys_path = base::FilePath("/bending");
138 ep.modes = std::vector<DisplayMode_Params>(
139 {MakeDisplay(1000.1), MakeDisplay(1000.2)});
140 ep.edid = std::vector<uint8_t>({'s', 'p'});
141 ep.has_current_mode = true;
142 ep.current_mode = MakeDisplay(1000.2);
143 ep.has_native_mode = false;
144 ep.product_id = 9;
145 ep.string_representation = "fluted glass display";
146 ep.maximum_cursor_size = gfx::Size(1000, 44);
147
148 orig_params.push_back(fp);
149 orig_params.push_back(sp);
150 orig_params.push_back(ep);
151
152 auto intermediate_snapshots =
153 CreateMovableDisplaySnapshotsFromParams(orig_params);
154
155 std::vector<DisplaySnapshot_Params> roundtrip_params =
156 CreateParamsFromSnapshot(intermediate_snapshots);
157
158 DetailedCompare(fp, roundtrip_params[0]);
159
160 EXPECT_EQ(fp, roundtrip_params[0]);
161 EXPECT_EQ(sp, roundtrip_params[1]);
162 EXPECT_EQ(ep, roundtrip_params[2]);
163 }
164
30 } // namespace ui 165 } // namespace ui
OLDNEW
« no previous file with comments | « ui/ozone/platform/drm/common/drm_util.cc ('k') | ui/ozone/platform/drm/gpu/drm_thread.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698