• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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