1 // Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <stdint.h>
6 #include <stdio.h>
7 #include <gtest/gtest.h>
8
9 #include "cras_util.h"
10 #include "edid_utils.h"
11
12 namespace {
13
14 class EDIDTestSuite : public testing::Test{
15 protected:
SetUp()16 virtual void SetUp() {
17 static const uint8_t header[] = {
18 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
19 };
20
21 memcpy(edid_, header, sizeof(header));
22 SetChecksum();
23 }
24
SetChecksum()25 void SetChecksum() {
26 uint8_t sum = 0;
27
28 for (unsigned int i = 0; i < 127; i++)
29 sum += edid_[i];
30
31 edid_[127] = 256 - sum;
32 }
33
34 uint8_t edid_[2048];
35 };
36
TEST_F(EDIDTestSuite,EDIDValid)37 TEST_F(EDIDTestSuite, EDIDValid) {
38 EXPECT_TRUE(edid_valid(edid_));
39 }
40
TEST_F(EDIDTestSuite,EDIDBadHeader)41 TEST_F(EDIDTestSuite, EDIDBadHeader) {
42 static const uint8_t bad_header[] = {
43 0x00, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0x00,
44 };
45
46 memcpy(edid_, bad_header, sizeof(bad_header));
47 SetChecksum();
48
49 EXPECT_FALSE(edid_valid(edid_));
50 }
51
52 // Actual EDIDs read from sinks.
53
54 static const uint8_t test_no_aud_edid1[256] = {
55 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
56 0x06, 0xaf, 0x5c, 0x20, 0x00, 0x00, 0x00, 0x00,
57 0x01, 0x12, 0x01, 0x03, 0x80, 0x1a, 0x0e, 0x78,
58 0x0a, 0x99, 0x85, 0x95, 0x55, 0x56, 0x92, 0x28,
59 0x22, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
60 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
61 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x96, 0x19,
62 0x56, 0x28, 0x50, 0x00, 0x08, 0x30, 0x18, 0x10,
63 0x24, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x18,
64 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00,
65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66 0x00, 0x20, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x41,
67 0x55, 0x4f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
68 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfe,
69 0x00, 0x42, 0x31, 0x31, 0x36, 0x58, 0x57, 0x30,
70 0x32, 0x20, 0x56, 0x30, 0x20, 0x0a, 0x00, 0xf8
71 };
72
73 static const uint8_t test_no_aud_edid2[256] = {
74 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
75 0x30, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
76 0x00, 0x14, 0x01, 0x03, 0x80, 0x1a, 0x0e, 0x78,
77 0x0a, 0xbf, 0x45, 0x95, 0x58, 0x52, 0x8a, 0x28,
78 0x25, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
79 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
80 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x84, 0x1c,
81 0x56, 0xa8, 0x50, 0x00, 0x19, 0x30, 0x30, 0x20,
82 0x35, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x1b,
83 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x4c,
86 0x47, 0x20, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61,
87 0x79, 0x0a, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
88 0x00, 0x4c, 0x50, 0x31, 0x31, 0x36, 0x57, 0x48,
89 0x31, 0x2d, 0x54, 0x4c, 0x4e, 0x31, 0x00, 0x4e
90 };
91
92 /* Has DTD that is too wide */
93 static const uint8_t test_no_aud_edid3[256] = {
94 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
95 0x10, 0xac, 0x63, 0x40, 0x4c, 0x35, 0x31, 0x33,
96 0x0c, 0x15, 0x01, 0x03, 0x80, 0x40, 0x28, 0x78,
97 0xea, 0x8d, 0x85, 0xad, 0x4f, 0x35, 0xb1, 0x25,
98 0x0e, 0x50, 0x54, 0xa5, 0x4b, 0x00, 0x71, 0x4f,
99 0x81, 0x00, 0x81, 0x80, 0xa9, 0x40, 0xd1, 0x00,
100 0xd1, 0x40, 0x01, 0x01, 0x01, 0x01, 0xe2, 0x68,
101 0x00, 0xa0, 0xa0, 0x40, 0x2e, 0x60, 0x30, 0x20,
102 0x36, 0x00, 0x81, 0x91, 0x21, 0x00, 0x00, 0x1a,
103 0x00, 0x00, 0x00, 0xff, 0x00, 0x50, 0x48, 0x35,
104 0x4e, 0x59, 0x31, 0x33, 0x4d, 0x33, 0x31, 0x35,
105 0x4c, 0x0a, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x44,
106 0x45, 0x4c, 0x4c, 0x20, 0x55, 0x33, 0x30, 0x31,
107 0x31, 0x0a, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd,
108 0x00, 0x31, 0x56, 0x1d, 0x71, 0x1c, 0x00, 0x0a,
109 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0xb0
110 };
111
112 static const uint8_t test_edid1[256] = {
113 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
114 0x4d, 0xd9, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
115 0x00, 0x11, 0x01, 0x03, 0x80, 0x00, 0x00, 0x78,
116 0x0a, 0x0d, 0xc9, 0xa0, 0x57, 0x47, 0x98, 0x27,
117 0x12, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01,
118 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
119 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d,
120 0x80, 0xd0, 0x72, 0x1c, 0x16, 0x20, 0x10, 0x2c,
121 0x25, 0x80, 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x9e,
122 0x01, 0x1d, 0x80, 0x18, 0x71, 0x1c, 0x16, 0x20,
123 0x58, 0x2c, 0x25, 0x00, 0xc4, 0x8e, 0x21, 0x00,
124 0x00, 0x9e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x48,
125 0x44, 0x4d, 0x49, 0x20, 0x4c, 0x4c, 0x43, 0x0a,
126 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd,
127 0x00, 0x3b, 0x3d, 0x0f, 0x2d, 0x08, 0x00, 0x0a,
128 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0xc0,
129 0x02, 0x03, 0x1e, 0x47, 0x4f, 0x94, 0x13, 0x05,
130 0x03, 0x04, 0x02, 0x01, 0x16, 0x15, 0x07, 0x06,
131 0x11, 0x10, 0x12, 0x1f, 0x23, 0x09, 0x07, 0x01,
132 0x65, 0x03, 0x0c, 0x00, 0x10, 0x00, 0x8c, 0x0a,
133 0xd0, 0x90, 0x20, 0x40, 0x31, 0x20, 0x0c, 0x40,
134 0x55, 0x00, 0x13, 0x8e, 0x21, 0x00, 0x00, 0x18,
135 0x01, 0x1d, 0x00, 0xbc, 0x52, 0xd0, 0x1e, 0x20,
136 0xb8, 0x28, 0x55, 0x40, 0xc4, 0x8e, 0x21, 0x00,
137 0x00, 0x1e, 0x8c, 0x0a, 0xd0, 0x8a, 0x20, 0xe0,
138 0x2d, 0x10, 0x10, 0x3e, 0x96, 0x00, 0xc4, 0x8e,
139 0x21, 0x00, 0x00, 0x18, 0x01, 0x1d, 0x00, 0x72,
140 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x28, 0x55, 0x00,
141 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x1e, 0x8c, 0x0a,
142 0xd0, 0x8a, 0x20, 0xe0, 0x2d, 0x10, 0x10, 0x3e,
143 0x96, 0x00, 0x13, 0x8e, 0x21, 0x00, 0x00, 0x18,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb
145 };
146
147 static const uint8_t test_edid2[256] = {
148 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
149 0x4c, 0x2d, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00,
150 0x31, 0x0f, 0x01, 0x03, 0x80, 0x10, 0x09, 0x8c,
151 0x0a, 0xe2, 0xbd, 0xa1, 0x5b, 0x4a, 0x98, 0x24,
152 0x15, 0x47, 0x4a, 0x20, 0x00, 0x00, 0x01, 0x01,
153 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
154 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d,
155 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x28,
156 0x55, 0x00, 0xa0, 0x5a, 0x00, 0x00, 0x00, 0x1e,
157 0x01, 0x1d, 0x80, 0x18, 0x71, 0x1c, 0x16, 0x20,
158 0x58, 0x2c, 0x25, 0x00, 0xa0, 0x5a, 0x00, 0x00,
159 0x00, 0x9e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b,
160 0x3d, 0x1e, 0x2e, 0x08, 0x00, 0x0a, 0x20, 0x20,
161 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
162 0x00, 0x53, 0x41, 0x4d, 0x53, 0x55, 0x4e, 0x47,
163 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x8d,
164 0x02, 0x03, 0x16, 0x71, 0x43, 0x84, 0x05, 0x03,
165 0x23, 0x09, 0x07, 0x07, 0x83, 0x01, 0x00, 0x00,
166 0x65, 0x03, 0x0c, 0x00, 0x20, 0x00, 0x8c, 0x0a,
167 0xd0, 0x8a, 0x20, 0xe0, 0x2d, 0x10, 0x10, 0x3e,
168 0x96, 0x00, 0xa0, 0x5a, 0x00, 0x00, 0x00, 0x18,
169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
170 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
171 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
172 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
174 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30
180 };
181
182 static const uint8_t test_edid3[256] = {
183 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
184 0x3d, 0xcb, 0x61, 0x07, 0x00, 0x00, 0x00, 0x00,
185 0x00, 0x11, 0x01, 0x03, 0x80, 0x00, 0x00, 0x78,
186 0x0a, 0x0d, 0xc9, 0xa0, 0x57, 0x47, 0x98, 0x27,
187 0x12, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01,
188 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
189 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d,
190 0x80, 0x18, 0x71, 0x1c, 0x16, 0x20, 0x58, 0x2c,
191 0x25, 0x00, 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x9e,
192 0x01, 0x1d, 0x80, 0xd0, 0x72, 0x1c, 0x16, 0x20,
193 0x10, 0x2c, 0x25, 0x80, 0xc4, 0x8e, 0x21, 0x00,
194 0x00, 0x9e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x54,
195 0x58, 0x2d, 0x53, 0x52, 0x36, 0x30, 0x35, 0x0a,
196 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd,
197 0x00, 0x17, 0xf0, 0x0f, 0x7e, 0x11, 0x00, 0x0a,
198 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x93,
199 0x02, 0x03, 0x3b, 0x72, 0x55, 0x85, 0x04, 0x03,
200 0x02, 0x0e, 0x0f, 0x07, 0x23, 0x24, 0x10, 0x94,
201 0x13, 0x12, 0x11, 0x1d, 0x1e, 0x16, 0x25, 0x26,
202 0x01, 0x1f, 0x35, 0x09, 0x7f, 0x07, 0x0f, 0x7f,
203 0x07, 0x17, 0x07, 0x50, 0x3f, 0x06, 0xc0, 0x57,
204 0x06, 0x00, 0x5f, 0x7e, 0x01, 0x67, 0x5e, 0x00,
205 0x83, 0x4f, 0x00, 0x00, 0x66, 0x03, 0x0c, 0x00,
206 0x20, 0x00, 0x80, 0x8c, 0x0a, 0xd0, 0x8a, 0x20,
207 0xe0, 0x2d, 0x10, 0x10, 0x3e, 0x96, 0x00, 0xc4,
208 0x8e, 0x21, 0x00, 0x00, 0x18, 0x8c, 0x0a, 0xd0,
209 0x90, 0x20, 0x40, 0x31, 0x20, 0x0c, 0x40, 0x55,
210 0x00, 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x18, 0x01,
211 0x1d, 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e,
212 0x28, 0x55, 0x00, 0xc4, 0x8e, 0x21, 0x00, 0x00,
213 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
214 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd
215 };
216
217 static const uint8_t test_edid4[256] = {
218 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
219 0x04, 0x72, 0x30, 0x02, 0x01, 0x00, 0x00, 0x00,
220 0x18, 0x14, 0x01, 0x03, 0x80, 0x33, 0x1d, 0x78,
221 0x0a, 0xdc, 0x55, 0xa3, 0x59, 0x48, 0x9e, 0x24,
222 0x11, 0x50, 0x54, 0xbf, 0x6f, 0x00, 0x71, 0x4f,
223 0x81, 0xc0, 0xd1, 0xc0, 0xb3, 0x00, 0x81, 0x80,
224 0x95, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3a,
225 0x80, 0x18, 0x71, 0x38, 0x2d, 0x40, 0x58, 0x2c,
226 0x45, 0x00, 0xfe, 0x22, 0x11, 0x00, 0x00, 0x18,
227 0x01, 0x1d, 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20,
228 0x6e, 0x28, 0x55, 0x00, 0xfe, 0x22, 0x11, 0x00,
229 0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x38,
230 0x4c, 0x1e, 0x4b, 0x0f, 0x00, 0x0a, 0x20, 0x20,
231 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
232 0x00, 0x4d, 0x32, 0x33, 0x30, 0x41, 0x0a, 0x20,
233 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0xf0,
234 0x02, 0x03, 0x18, 0x74, 0x45, 0x04, 0x05, 0x90,
235 0x03, 0x01, 0x23, 0x09, 0x17, 0x07, 0x83, 0x01,
236 0x00, 0x00, 0x65, 0x03, 0x0c, 0x00, 0x30, 0x00,
237 0x01, 0x1d, 0x80, 0x18, 0x71, 0x1c, 0x16, 0x20,
238 0x58, 0x2c, 0x25, 0x00, 0xfe, 0x22, 0x11, 0x00,
239 0x00, 0x9e, 0x8c, 0x0a, 0xd0, 0x8a, 0x20, 0xe0,
240 0x2d, 0x10, 0x10, 0x3e, 0x96, 0x00, 0xfe, 0x22,
241 0x11, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00,
242 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
245 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
248 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0,
250 };
251
252 static const uint8_t test_monitor_edid[256] = {
253 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
254 0x4d, 0xd9, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
255 0x00, 0x11, 0x01, 0x03, 0x80, 0x00, 0x00, 0x78,
256 0x0a, 0x0d, 0xc9, 0xa0, 0x57, 0x47, 0x98, 0x27,
257 0x12, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01,
258 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
259 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d,
260 0x80, 0xd0, 0x72, 0x1c, 0x16, 0x20, 0x10, 0x2c,
261 0x25, 0x80, 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x9e,
262 0x01, 0x1d, 0x80, 0x18, 0x71, 0x1c, 0x16, 0x20,
263 0x58, 0x2c, 0x25, 0x00, 0xc4, 0x8e, 0x21, 0x00,
264 0x00, 0x9e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x48,
265 0x44, 0x4d, 0x49, 0x20, 0x4c, 0x4c, 0x43, 0x20,
266 0x41, 0x42, 0x43, 0x44, 0x00, 0x00, 0x00, 0xfd,
267 0x00, 0x3b, 0x3d, 0x0f, 0x2d, 0x08, 0x00, 0x0a,
268 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0xc0,
269 0x02, 0x03, 0x1e, 0x47, 0x4f, 0x94, 0x13, 0x05,
270 0x03, 0x04, 0x02, 0x01, 0x16, 0x15, 0x07, 0x06,
271 0x11, 0x10, 0x12, 0x1f, 0x23, 0x09, 0x07, 0x01,
272 0x65, 0x03, 0x0c, 0x00, 0x10, 0x00, 0x8c, 0x0a,
273 0xd0, 0x90, 0x20, 0x40, 0x31, 0x20, 0x0c, 0x40,
274 0x55, 0x00, 0x13, 0x8e, 0x21, 0x00, 0x00, 0x18,
275 0x01, 0x1d, 0x00, 0xbc, 0x52, 0xd0, 0x1e, 0x20,
276 0xb8, 0x28, 0x55, 0x40, 0xc4, 0x8e, 0x21, 0x00,
277 0x00, 0x1e, 0x8c, 0x0a, 0xd0, 0x8a, 0x20, 0xe0,
278 0x2d, 0x10, 0x10, 0x3e, 0x96, 0x00, 0xc4, 0x8e,
279 0x21, 0x00, 0x00, 0x18, 0x01, 0x1d, 0x00, 0x72,
280 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x28, 0x55, 0x00,
281 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x1e, 0x8c, 0x0a,
282 0xd0, 0x8a, 0x20, 0xe0, 0x2d, 0x10, 0x10, 0x3e,
283 0x96, 0x00, 0x13, 0x8e, 0x21, 0x00, 0x00, 0x18,
284 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb
285 };
286
287 static const uint8_t *test_no_aud_edids[] = {
288 test_no_aud_edid1,
289 test_no_aud_edid2,
290 test_no_aud_edid3,
291 };
292
293 static const uint8_t *test_edids[] = {
294 test_edid1,
295 test_edid2,
296 test_edid3,
297 test_edid4,
298 };
299
300 static const char *monitor_names[] = {
301 "HDMI LLC",
302 "SAMSUNG",
303 "TX-SR605",
304 "M230A",
305 };
306
TEST_F(EDIDTestSuite,NoAudEDID)307 TEST_F(EDIDTestSuite, NoAudEDID) {
308 unsigned int i;
309
310 for (i = 0; i < ARRAY_SIZE(test_no_aud_edids); i++) {
311 EXPECT_TRUE(edid_valid(test_no_aud_edids[i]));
312 EXPECT_FALSE(edid_lpcm_support(test_no_aud_edids[i], 1));
313 }
314 }
315
TEST_F(EDIDTestSuite,AudEDID)316 TEST_F(EDIDTestSuite, AudEDID) {
317 unsigned int i;
318
319 for (i = 0; i < ARRAY_SIZE(test_edids); i++) {
320 EXPECT_TRUE(edid_valid(test_edids[i]));
321 EXPECT_TRUE(edid_lpcm_support(test_edids[i], 1));
322 }
323 }
324
TEST_F(EDIDTestSuite,EDIDMonitorName)325 TEST_F(EDIDTestSuite, EDIDMonitorName) {
326 unsigned int i;
327 char buf[DTD_SIZE];
328
329 for (i = 0; i < ARRAY_SIZE(test_edids); i++) {
330 EXPECT_EQ(0, edid_get_monitor_name(test_edids[i], buf, DTD_SIZE));
331 EXPECT_STREQ(monitor_names[i], buf);
332 }
333
334 EXPECT_EQ(0, edid_get_monitor_name(test_monitor_edid, buf, DTD_SIZE));
335 EXPECT_STREQ("HDMI LLC ABCD", buf);
336 EXPECT_EQ(0, edid_get_monitor_name(test_monitor_edid, buf, 11));
337 EXPECT_STREQ("HDMI LLC A", buf);
338 }
339
340 } // namespace
341
main(int argc,char ** argv)342 int main(int argc, char **argv) {
343 ::testing::InitGoogleTest(&argc, argv);
344 return RUN_ALL_TESTS();
345 }
346