1 /*
2 Copyright (c) 2018, MIPI Alliance, Inc.
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions
7 are met:
8 
9 * Redistributions of source code must retain the above copyright
10   notice, this list of conditions and the following disclaimer.
11 
12 * Redistributions in binary form must reproduce the above copyright
13   notice, this list of conditions and the following disclaimer in
14   the documentation and/or other materials provided with the
15   distribution.
16 
17 * Neither the name of the copyright holder nor the names of its
18   contributors may be used to endorse or promote products derived
19   from this software without specific prior written permission.
20 
21 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33 
34 /*
35  * Contributors:
36  * Norbert Schulz (Intel Corporation) - Initial API and implementation
37  */
38 
39 #include "mipi_syst_gtest.h"
40 
41 #if defined(MIPI_SYST_PCFG_ENABLE_PLATFORM_STATE_DATA) &&\
42 	defined(MIPI_SYST_PCFG_ENABLE_DEFAULT_SCATTER_WRITE) &&\
43 	defined(MIPI_SYST_PCFG_ENABLE_CATID32_API)
44 
45 class MipiSysTFixtureCatId32 : public MipiSysTFixtureOutput
46 {
47 public:
SetUp()48 	void SetUp() {
49 		MipiSysTFixtureOutput::SetUp();
50 	}
51 
TearDown()52 	void TearDown(){
53 		MipiSysTFixtureOutput::TearDown();
54 	}
55 
mipi_syst_write_catalog32_message(struct mipi_syst_handle * svh,struct mipi_syst_msglocation * loc,enum mipi_syst_severity severity,mipi_syst_u32 catid)56 	const char * mipi_syst_write_catalog32_message(struct mipi_syst_handle* svh,
57 	struct mipi_syst_msglocation* loc,
58 		enum mipi_syst_severity severity,
59 		mipi_syst_u32 catid)
60 	{
61 		static std::string result;
62 
63 		::mipi_syst_write_catalog32_message(svh, loc, severity, catid);
64 		result = sstr.str();
65 		sstr.str("");
66 
67 		return result.c_str();
68 	}
69 };
70 
TEST_F(MipiSysTFixtureCatId32,syst_catid32_basic)71 TEST_F(MipiSysTFixtureCatId32, syst_catid32_basic)
72 {
73 	EXPECT_STREQ(
74 		xform(""),
75 		MIPI_SYST_CATALOG32_0(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE)
76 		);
77 	EXPECT_STREQ(
78 		xform(""),
79 		MIPI_SYST_CATALOG32_1(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE,1 )
80 		);
81 	EXPECT_STREQ(
82 		xform(""),
83 		MIPI_SYST_CATALOG32_2(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2 )
84 		);
85 	EXPECT_STREQ(
86 		xform(""),
87 		MIPI_SYST_CATALOG32_3(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3 )
88 		);
89 	EXPECT_STREQ(
90 		xform(""),
91 		MIPI_SYST_CATALOG32_4(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4 )
92 		);
93 	EXPECT_STREQ(
94 		xform(""),
95 		MIPI_SYST_CATALOG32_5(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2,3,4,5 )
96 		);
97 	EXPECT_STREQ(
98 		xform(""),
99 		MIPI_SYST_CATALOG32_6(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2,3,4,5,6 )
100 		);
101 
102 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD)
103 
104 	EXPECT_STREQ(
105 		xform(""),
106 		MIPI_SYST_CATALOG32_0_LOC16(0,MIPI_SYST_SEVERITY_WARNING, 1, 0xCAFEBABE )
107 		);
108 	EXPECT_STREQ(
109 		xform(""),
110 		MIPI_SYST_CATALOG32_0_LOC32(0,MIPI_SYST_SEVERITY_WARNING, 1, 0xCAFEBABE )
111 		);
112 
113 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS)
114 	EXPECT_STREQ(
115 		xform(""),
116 		MIPI_SYST_CATALOG32_0_LOCADDR(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE)
117 		);
118 #endif
119 #endif
120 }
121 
TEST_F(MipiSysTFixtureCatId32,syst_catid32_noloc_output)122 TEST_F(MipiSysTFixtureCatId32, syst_catid32_noloc_output)
123 {
124 	EXPECT_STREQ(
125 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0004<D32>cafebabe<FLAG>"),
126 		MIPI_SYST_CATALOG32_0(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE)
127 		);
128 
129 	EXPECT_STREQ(
130 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
131 		MIPI_SYST_CATALOG32_1(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1)
132 		);
133 
134 	EXPECT_STREQ(
135 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
136 		MIPI_SYST_CATALOG32_2(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2)
137 		);
138 
139 	EXPECT_STREQ(
140 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
141 		MIPI_SYST_CATALOG32_3(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3)
142 		);
143 
144 	EXPECT_STREQ(
145 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
146 		MIPI_SYST_CATALOG32_4(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4)
147 		);
148 
149 	EXPECT_STREQ(
150 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
151 		MIPI_SYST_CATALOG32_5(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4, 5)
152 		);
153 
154 	EXPECT_STREQ(
155 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
156 		MIPI_SYST_CATALOG32_6(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4, 5, 6)
157 		);
158 }
159 
160 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD)
161 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS)
TEST_F(MipiSysTFixtureCatId32,syst_catid32_locaddr_output)162 TEST_F(MipiSysTFixtureCatId32, syst_catid32_locaddr_output)
163 {
164 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
165 	EXPECT_STREQ(
166 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0004<D32>cafebabe<FLAG>"),
167 		MIPI_SYST_CATALOG32_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE)
168 		);
169 #else
170 	EXPECT_STREQ(
171 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0004<D32>cafebabe<FLAG>"),
172 		MIPI_SYST_CATALOG32_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE)
173 		);
174 #endif
175 
176 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
177 	EXPECT_STREQ(
178 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
179 		MIPI_SYST_CATALOG32_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1)
180 		);
181 #else
182 	EXPECT_STREQ(
183 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
184 		MIPI_SYST_CATALOG32_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1)
185 		);
186 #endif
187 
188 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
189 	EXPECT_STREQ(
190 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
191 		MIPI_SYST_CATALOG32_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2)
192 		);
193 #else
194 	EXPECT_STREQ(
195 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
196 		MIPI_SYST_CATALOG32_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2)
197 		);
198 #endif
199 
200 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
201 	EXPECT_STREQ(
202 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
203 		MIPI_SYST_CATALOG32_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3)
204 		);
205 #else
206 	EXPECT_STREQ(
207 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
208 		MIPI_SYST_CATALOG32_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3)
209 		);
210 #endif
211 
212 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
213 	EXPECT_STREQ(
214 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
215 		MIPI_SYST_CATALOG32_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4)
216 		);
217 #else
218 	EXPECT_STREQ(
219 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
220 		MIPI_SYST_CATALOG32_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4)
221 		);
222 #endif
223 
224 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
225 	EXPECT_STREQ(
226 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
227 		MIPI_SYST_CATALOG32_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4, 5)
228 		);
229 #else
230 	EXPECT_STREQ(
231 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
232 		MIPI_SYST_CATALOG32_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4, 5)
233 		);
234 #endif
235 
236 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
237 	EXPECT_STREQ(
238 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
239 		MIPI_SYST_CATALOG32_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4, 5, 6)
240 		);
241 #else
242 	EXPECT_STREQ(
243 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
244 		MIPI_SYST_CATALOG32_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4, 5, 6)
245 		);
246 #endif
247 }
248 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS
249 
TEST_F(MipiSysTFixtureCatId32,syst_catid32_loc16_output)250 TEST_F(MipiSysTFixtureCatId32, syst_catid32_loc16_output)
251 {
252 	EXPECT_STREQ(
253 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0004<D32>cafebabe<FLAG>"),
254 		MIPI_SYST_CATALOG32_0_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE)
255 		);
256 
257 	EXPECT_STREQ(
258 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
259 		MIPI_SYST_CATALOG32_1_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, 1)
260 		);
261 
262 	EXPECT_STREQ(
263 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
264 		MIPI_SYST_CATALOG32_2_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, 1, 2)
265 		);
266 
267 	EXPECT_STREQ(
268 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
269 		MIPI_SYST_CATALOG32_3_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, 1, 2, 3)
270 		);
271 
272 	EXPECT_STREQ(
273 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
274 		MIPI_SYST_CATALOG32_4_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, 1, 2, 3, 4)
275 		);
276 
277 	EXPECT_STREQ(
278 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
279 		MIPI_SYST_CATALOG32_5_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, 1, 2, 3, 4, 5)
280 		);
281 
282 	EXPECT_STREQ(
283 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
284 		MIPI_SYST_CATALOG32_6_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, 1, 2, 3, 4, 5, 6)
285 		);
286 }
287 
TEST_F(MipiSysTFixtureCatId32,syst_catid32_loc32_output)288 TEST_F(MipiSysTFixtureCatId32, syst_catid32_loc32_output)
289 {
290 	EXPECT_STREQ(
291 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0004<D32>cafebabe<FLAG>"),
292 		MIPI_SYST_CATALOG32_0_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE)
293 		);
294 
295 	EXPECT_STREQ(
296 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
297 		MIPI_SYST_CATALOG32_1_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, 1)
298 		);
299 
300 	EXPECT_STREQ(
301 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
302 		MIPI_SYST_CATALOG32_2_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, 1, 2)
303 		);
304 
305 	EXPECT_STREQ(
306 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
307 		MIPI_SYST_CATALOG32_3_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, 1, 2, 3)
308 		);
309 
310 	EXPECT_STREQ(
311 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
312 		MIPI_SYST_CATALOG32_4_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, 1, 2, 3, 4)
313 		);
314 
315 	EXPECT_STREQ(
316 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
317 		MIPI_SYST_CATALOG32_5_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, 1, 2, 3, 4, 5)
318 		);
319 
320 	EXPECT_STREQ(
321 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
322 		MIPI_SYST_CATALOG32_6_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, 1, 2, 3, 4, 5, 6)
323 		);
324 }
325 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD
326 
327 
TEST_F(MipiSysTFixtureCatId32,syst_catprintf32_noloc_output)328 TEST_F(MipiSysTFixtureCatId32, syst_catprintf32_noloc_output)
329 {
330 	EXPECT_STREQ(
331 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0004<D32>cafebabe<FLAG>"),
332 		MIPI_SYST_CATPRINTF32_0(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy" )
333 		);
334 
335 	EXPECT_STREQ(
336 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
337 		MIPI_SYST_CATPRINTF32_1(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1)
338 		);
339 
340 	EXPECT_STREQ(
341 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
342 		MIPI_SYST_CATPRINTF32_2(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2)
343 		);
344 
345 	EXPECT_STREQ(
346 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
347 		MIPI_SYST_CATPRINTF32_3(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3)
348 		);
349 
350 	EXPECT_STREQ(
351 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
352 		MIPI_SYST_CATPRINTF32_4(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4)
353 		);
354 
355 	EXPECT_STREQ(
356 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
357 		MIPI_SYST_CATPRINTF32_5(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5)
358 		);
359 
360 	EXPECT_STREQ(
361 		xform("<D32TS>01012233[typ=3:1 mu=1:2 sev=3 len]<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
362 		MIPI_SYST_CATPRINTF32_6(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5, 6)
363 		);
364 }
365 
366 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD)
367 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS)
TEST_F(MipiSysTFixtureCatId32,syst_catprintf32_locaddr_output)368 TEST_F(MipiSysTFixtureCatId32, syst_catprintf32_locaddr_output)
369 {
370 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
371 	EXPECT_STREQ(
372 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0004<D32>cafebabe<FLAG>"),
373 		MIPI_SYST_CATPRINTF32_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy")
374 		);
375 #else
376 	EXPECT_STREQ(
377 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0004<D32>cafebabe<FLAG>"),
378 		MIPI_SYST_CATPRINTF32_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy")
379 		);
380 #endif
381 
382 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
383 	EXPECT_STREQ(
384 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
385 		MIPI_SYST_CATPRINTF32_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1)
386 		);
387 #else
388 	EXPECT_STREQ(
389 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
390 		MIPI_SYST_CATPRINTF32_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1)
391 		);
392 #endif
393 
394 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
395 	EXPECT_STREQ(
396 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
397 		MIPI_SYST_CATPRINTF32_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2)
398 		);
399 #else
400 	EXPECT_STREQ(
401 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
402 		MIPI_SYST_CATPRINTF32_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2)
403 		);
404 #endif
405 
406 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
407 	EXPECT_STREQ(
408 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
409 		MIPI_SYST_CATPRINTF32_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3)
410 		);
411 #else
412 	EXPECT_STREQ(
413 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
414 		MIPI_SYST_CATPRINTF32_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3)
415 		);
416 #endif
417 
418 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
419 	EXPECT_STREQ(
420 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
421 		MIPI_SYST_CATPRINTF32_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4)
422 		);
423 #else
424 	EXPECT_STREQ(
425 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
426 		MIPI_SYST_CATPRINTF32_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4)
427 		);
428 #endif
429 
430 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
431 	EXPECT_STREQ(
432 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
433 		MIPI_SYST_CATPRINTF32_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5)
434 		);
435 #else
436 	EXPECT_STREQ(
437 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
438 		MIPI_SYST_CATPRINTF32_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5)
439 		);
440 #endif
441 
442 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
443 	EXPECT_STREQ(
444 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
445 		MIPI_SYST_CATPRINTF32_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5, 6)
446 		);
447 #else
448 	EXPECT_STREQ(
449 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
450 		MIPI_SYST_CATPRINTF32_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5, 6)
451 		);
452 #endif
453 }
454 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS
455 
TEST_F(MipiSysTFixtureCatId32,syst_catprintf2_loc16_output)456 TEST_F(MipiSysTFixtureCatId32, syst_catprintf2_loc16_output)
457 {
458 	EXPECT_STREQ(
459 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0004<D32>cafebabe<FLAG>"),
460 		MIPI_SYST_CATPRINTF32_0_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, "dummy")
461 		);
462 
463 	EXPECT_STREQ(
464 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
465 		MIPI_SYST_CATPRINTF32_1_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, "dummy", 1)
466 		);
467 
468 	EXPECT_STREQ(
469 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
470 		MIPI_SYST_CATPRINTF32_2_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, "dummy", 1, 2)
471 		);
472 
473 	EXPECT_STREQ(
474 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
475 		MIPI_SYST_CATPRINTF32_3_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, "dummy", 1, 2, 3)
476 		);
477 
478 	EXPECT_STREQ(
479 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
480 		MIPI_SYST_CATPRINTF32_4_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, "dummy", 1, 2, 3, 4)
481 		);
482 
483 	EXPECT_STREQ(
484 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
485 		MIPI_SYST_CATPRINTF32_5_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5)
486 		);
487 
488 	EXPECT_STREQ(
489 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
490 		MIPI_SYST_CATPRINTF32_6_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5, 6)
491 		);
492 }
493 
TEST_F(MipiSysTFixtureCatId32,syst_catprintf32_loc32_output)494 TEST_F(MipiSysTFixtureCatId32, syst_catprintf32_loc32_output)
495 {
496 	EXPECT_STREQ(
497 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0004<D32>cafebabe<FLAG>"),
498 		MIPI_SYST_CATPRINTF32_0_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, "dummy")
499 		);
500 
501 	EXPECT_STREQ(
502 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0008<D32>cafebabe<D32>00000001<FLAG>"),
503 		MIPI_SYST_CATPRINTF32_1_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, "dummy", 1)
504 		);
505 
506 	EXPECT_STREQ(
507 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>000c<D32>cafebabe<D64>0000000200000001<FLAG>"),
508 		MIPI_SYST_CATPRINTF32_2_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, "dummy", 1, 2)
509 		);
510 
511 	EXPECT_STREQ(
512 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0010<D32>cafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
513 		MIPI_SYST_CATPRINTF32_3_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, "dummy", 1, 2, 3)
514 		);
515 
516 	EXPECT_STREQ(
517 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0014<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
518 		MIPI_SYST_CATPRINTF32_4_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, "dummy", 1, 2, 3, 4)
519 		);
520 
521 	EXPECT_STREQ(
522 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0018<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
523 		MIPI_SYST_CATPRINTF32_5_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5)
524 		);
525 
526 	EXPECT_STREQ(
527 		xform("<D32TS>01012333[typ=3:1 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>001c<D32>cafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
528 		MIPI_SYST_CATPRINTF32_6_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xCAFEBABE, "dummy", 1, 2, 3, 4, 5, 6)
529 		);
530 }
531 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD
532 #endif //MIPI_SYST_PCFG_ENABLE_PLATFORM_STATE_DATA && MIPI_SYST_PCFG_ENABLE_DEFAULT_SCATTER_WRITE && MIPI_SYST_PCFG_ENABLE_CATID32_API