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) && defined(MIPI_SYST_PCFG_ENABLE_DEFAULT_SCATTER_WRITE) && defined(MIPI_SYST_PCFG_ENABLE_CATID64_API)
42 
43 class MipiSysTFixtureCatId64 : public MipiSysTFixtureOutput
44 {
45 public:
SetUp()46 	void SetUp() {
47 		MipiSysTFixtureOutput::SetUp();
48 	}
49 
TearDown()50 	void TearDown(){
51 		MipiSysTFixtureOutput::TearDown();
52 	}
53 
mipi_syst_write_catalog64_message(struct mipi_syst_handle * svh,struct mipi_syst_msglocation * loc,enum mipi_syst_severity severity,mipi_syst_u64 catid)54 	const char * mipi_syst_write_catalog64_message(struct mipi_syst_handle* svh,
55 	struct mipi_syst_msglocation* loc,
56 		enum mipi_syst_severity severity,
57 		mipi_syst_u64 catid)
58 	{
59 		static std::string result;
60 
61 		::mipi_syst_write_catalog64_message(svh, loc, severity, catid);
62 		result = sstr.str();
63 		sstr.str("");
64 
65 		return result.c_str();
66 	}
67 };
68 
TEST_F(MipiSysTFixtureCatId64,syst_catid64_basic)69 TEST_F(MipiSysTFixtureCatId64, syst_catid64_basic)
70 {
71 	EXPECT_STREQ(
72 		xform(""),
73 		MIPI_SYST_CATALOG64_0(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE)
74 		);
75 	EXPECT_STREQ(
76 		xform(""),
77 		MIPI_SYST_CATALOG64_1(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE,1 )
78 		);
79 	EXPECT_STREQ(
80 		xform(""),
81 		MIPI_SYST_CATALOG64_2(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2 )
82 		);
83 	EXPECT_STREQ(
84 		xform(""),
85 		MIPI_SYST_CATALOG64_3(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3 )
86 		);
87 	EXPECT_STREQ(
88 		xform(""),
89 		MIPI_SYST_CATALOG64_4(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2, 3, 4 )
90 		);
91 	EXPECT_STREQ(
92 		xform(""),
93 		MIPI_SYST_CATALOG64_5(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2,3,4,5 )
94 		);
95 	EXPECT_STREQ(
96 		xform(""),
97 		MIPI_SYST_CATALOG64_6(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE, 1, 2,3,4,5,6 )
98 		);
99 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD)
100 
101 	EXPECT_STREQ(
102 		xform(""),
103 		MIPI_SYST_CATALOG64_0_LOC16(0,MIPI_SYST_SEVERITY_WARNING, 1, 0xCAFEBABE )
104 		);
105 	EXPECT_STREQ(
106 		xform(""),
107 		MIPI_SYST_CATALOG64_0_LOC32(0,MIPI_SYST_SEVERITY_WARNING, 1, 0xCAFEBABE )
108 		);
109 
110 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS)
111 	EXPECT_STREQ(
112 		xform(""),
113 		MIPI_SYST_CATALOG64_0_LOCADDR(0,MIPI_SYST_SEVERITY_WARNING, 0xCAFEBABE)
114 		);
115 #endif
116 #endif
117 }
118 
TEST_F(MipiSysTFixtureCatId64,syst_catid64_noloc_output)119 TEST_F(MipiSysTFixtureCatId64, syst_catid64_noloc_output)
120 {
121 	EXPECT_STREQ(
122 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0008<D64>000decafcafebabe<FLAG>"),
123 		MIPI_SYST_CATALOG64_0(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull)
124 		);
125 
126 	EXPECT_STREQ(
127 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
128 		MIPI_SYST_CATALOG64_1(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1)
129 		);
130 
131 	EXPECT_STREQ(
132 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
133 		MIPI_SYST_CATALOG64_2(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2)
134 		);
135 
136 	EXPECT_STREQ(
137 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
138 		MIPI_SYST_CATALOG64_3(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3)
139 		);
140 
141 	EXPECT_STREQ(
142 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
143 		MIPI_SYST_CATALOG64_4(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4)
144 		);
145 
146 	EXPECT_STREQ(
147 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
148 		MIPI_SYST_CATALOG64_5(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5)
149 		);
150 
151 	EXPECT_STREQ(
152 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
153 		MIPI_SYST_CATALOG64_6(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5, 6)
154 		);
155 }
156 
157 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD)
158 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS)
TEST_F(MipiSysTFixtureCatId64,syst_catid64_locaddr_output)159 TEST_F(MipiSysTFixtureCatId64, syst_catid64_locaddr_output)
160 {
161 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
162 	EXPECT_STREQ(
163 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0008<D64>000decafcafebabe<FLAG>"),
164 		MIPI_SYST_CATALOG64_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull)
165 		);
166 #else
167 	EXPECT_STREQ(
168 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0008<D64>000decafcafebabe<FLAG>"),
169 		MIPI_SYST_CATALOG64_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull)
170 		);
171 #endif
172 
173 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
174 	EXPECT_STREQ(
175 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
176 		MIPI_SYST_CATALOG64_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1)
177 		);
178 #else
179 	EXPECT_STREQ(
180 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
181 		MIPI_SYST_CATALOG64_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1)
182 		);
183 #endif
184 
185 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
186 	EXPECT_STREQ(
187 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
188 		MIPI_SYST_CATALOG64_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2)
189 		);
190 #else
191 	EXPECT_STREQ(
192 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
193 		MIPI_SYST_CATALOG64_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2)
194 		);
195 #endif
196 
197 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
198 	EXPECT_STREQ(
199 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
200 		MIPI_SYST_CATALOG64_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3)
201 		);
202 #else
203 	EXPECT_STREQ(
204 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
205 		MIPI_SYST_CATALOG64_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3)
206 		);
207 #endif
208 
209 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
210 	EXPECT_STREQ(
211 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
212 		MIPI_SYST_CATALOG64_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4)
213 		);
214 #else
215 	EXPECT_STREQ(
216 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
217 		MIPI_SYST_CATALOG64_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4)
218 		);
219 #endif
220 
221 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
222 	EXPECT_STREQ(
223 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
224 		MIPI_SYST_CATALOG64_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5)
225 		);
226 #else
227 	EXPECT_STREQ(
228 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
229 		MIPI_SYST_CATALOG64_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5)
230 		);
231 #endif
232 
233 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
234 	EXPECT_STREQ(
235 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
236 		MIPI_SYST_CATALOG64_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5, 6)
237 		);
238 #else
239 	EXPECT_STREQ(
240 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
241 		MIPI_SYST_CATALOG64_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5, 6)
242 		);
243 #endif
244 }
245 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS
246 
TEST_F(MipiSysTFixtureCatId64,syst_catid64_loc16_output)247 TEST_F(MipiSysTFixtureCatId64, syst_catid64_loc16_output)
248 {
249 	EXPECT_STREQ(
250 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0008<D64>000decafcafebabe<FLAG>"),
251 		MIPI_SYST_CATALOG64_0_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull)
252 		);
253 
254 	EXPECT_STREQ(
255 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
256 		MIPI_SYST_CATALOG64_1_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, 1)
257 		);
258 
259 	EXPECT_STREQ(
260 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
261 		MIPI_SYST_CATALOG64_2_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, 1, 2)
262 		);
263 
264 	EXPECT_STREQ(
265 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
266 		MIPI_SYST_CATALOG64_3_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, 1, 2, 3)
267 		);
268 
269 	EXPECT_STREQ(
270 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
271 		MIPI_SYST_CATALOG64_4_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, 1, 2, 3, 4)
272 		);
273 
274 	EXPECT_STREQ(
275 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
276 		MIPI_SYST_CATALOG64_5_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5)
277 		);
278 
279 	EXPECT_STREQ(
280 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
281 		MIPI_SYST_CATALOG64_6_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5, 6)
282 		);
283 }
284 
TEST_F(MipiSysTFixtureCatId64,syst_catid64_loc32_output)285 TEST_F(MipiSysTFixtureCatId64, syst_catid64_loc32_output)
286 {
287 	EXPECT_STREQ(
288 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0008<D64>000decafcafebabe<FLAG>"),
289 		MIPI_SYST_CATALOG64_0_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull)
290 		);
291 
292 	EXPECT_STREQ(
293 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
294 		MIPI_SYST_CATALOG64_1_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, 1)
295 		);
296 
297 	EXPECT_STREQ(
298 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
299 		MIPI_SYST_CATALOG64_2_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, 1, 2)
300 		);
301 
302 	EXPECT_STREQ(
303 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
304 		MIPI_SYST_CATALOG64_3_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, 1, 2, 3)
305 		);
306 
307 	EXPECT_STREQ(
308 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
309 		MIPI_SYST_CATALOG64_4_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, 1, 2, 3, 4)
310 		);
311 
312 	EXPECT_STREQ(
313 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
314 		MIPI_SYST_CATALOG64_5_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5)
315 		);
316 
317 	EXPECT_STREQ(
318 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
319 		MIPI_SYST_CATALOG64_6_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, 1, 2, 3, 4, 5, 6)
320 		);
321 }
322 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD
323 
324 
TEST_F(MipiSysTFixtureCatId64,syst_printf64_noloc_output)325 TEST_F(MipiSysTFixtureCatId64, syst_printf64_noloc_output)
326 {
327 	EXPECT_STREQ(
328 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0008<D64>000decafcafebabe<FLAG>"),
329 		MIPI_SYST_CATPRINTF64_0(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy")
330 		);
331 
332 	EXPECT_STREQ(
333 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
334 		MIPI_SYST_CATPRINTF64_1(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1)
335 		);
336 
337 	EXPECT_STREQ(
338 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
339 		MIPI_SYST_CATPRINTF64_2(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2)
340 		);
341 
342 	EXPECT_STREQ(
343 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
344 		MIPI_SYST_CATPRINTF64_3(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3)
345 		);
346 
347 	EXPECT_STREQ(
348 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
349 		MIPI_SYST_CATPRINTF64_4(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4)
350 		);
351 
352 	EXPECT_STREQ(
353 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
354 		MIPI_SYST_CATPRINTF64_5(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5)
355 		);
356 
357 	EXPECT_STREQ(
358 		xform("<D32TS>02012233[typ=3:2 mu=1:2 sev=3 len]<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
359 		MIPI_SYST_CATPRINTF64_6(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5, 6)
360 		);
361 }
362 
363 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD)
364 #if defined(MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS)
TEST_F(MipiSysTFixtureCatId64,syst_printf64_locaddr_output)365 TEST_F(MipiSysTFixtureCatId64, syst_printf64_locaddr_output)
366 {
367 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
368 	EXPECT_STREQ(
369 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0008<D64>000decafcafebabe<FLAG>"),
370 		MIPI_SYST_CATPRINTF64_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy")
371 		);
372 #else
373 	EXPECT_STREQ(
374 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0008<D64>000decafcafebabe<FLAG>"),
375 		MIPI_SYST_CATPRINTF64_0_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy")
376 		);
377 #endif
378 
379 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
380 	EXPECT_STREQ(
381 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
382 		MIPI_SYST_CATPRINTF64_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1)
383 		);
384 #else
385 	EXPECT_STREQ(
386 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
387 		MIPI_SYST_CATPRINTF64_1_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1)
388 		);
389 #endif
390 
391 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
392 	EXPECT_STREQ(
393 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
394 		MIPI_SYST_CATPRINTF64_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2)
395 		);
396 #else
397 	EXPECT_STREQ(
398 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
399 		MIPI_SYST_CATPRINTF64_2_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2)
400 		);
401 #endif
402 
403 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
404 	EXPECT_STREQ(
405 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
406 		MIPI_SYST_CATPRINTF64_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3)
407 		);
408 #else
409 	EXPECT_STREQ(
410 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
411 		MIPI_SYST_CATPRINTF64_3_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3)
412 		);
413 #endif
414 
415 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
416 	EXPECT_STREQ(
417 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
418 		MIPI_SYST_CATPRINTF64_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4)
419 		);
420 #else
421 	EXPECT_STREQ(
422 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
423 		MIPI_SYST_CATPRINTF64_4_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4)
424 		);
425 #endif
426 
427 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
428 	EXPECT_STREQ(
429 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
430 		MIPI_SYST_CATPRINTF64_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5)
431 		);
432 #else
433 	EXPECT_STREQ(
434 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
435 		MIPI_SYST_CATPRINTF64_5_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5)
436 		);
437 #endif
438 
439 #if defined(MIPI_SYST_PCFG_ENABLE_64BIT_ADDR)
440 	EXPECT_STREQ(
441 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>03<D64>12345678aabbccdd<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
442 		MIPI_SYST_CATPRINTF64_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5, 6)
443 		);
444 #else
445 	EXPECT_STREQ(
446 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>02<D32>12345678<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
447 		MIPI_SYST_CATPRINTF64_6_LOCADDR(ph, MIPI_SYST_SEVERITY_WARNING, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5, 6)
448 		);
449 #endif
450 }
451 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_ADDRESS
452 
TEST_F(MipiSysTFixtureCatId64,syst_printf64_loc16_output)453 TEST_F(MipiSysTFixtureCatId64, syst_printf64_loc16_output)
454 {
455 	EXPECT_STREQ(
456 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0008<D64>000decafcafebabe<FLAG>"),
457 		MIPI_SYST_CATPRINTF64_0_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, "dummy")
458 		);
459 
460 	EXPECT_STREQ(
461 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
462 		MIPI_SYST_CATPRINTF64_1_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, "dummy", 1)
463 		);
464 
465 	EXPECT_STREQ(
466 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
467 		MIPI_SYST_CATPRINTF64_2_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, "dummy", 1, 2)
468 		);
469 
470 	EXPECT_STREQ(
471 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
472 		MIPI_SYST_CATPRINTF64_3_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3)
473 		);
474 
475 	EXPECT_STREQ(
476 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
477 		MIPI_SYST_CATPRINTF64_4_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4)
478 		);
479 
480 	EXPECT_STREQ(
481 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
482 		MIPI_SYST_CATPRINTF64_5_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5)
483 		);
484 
485 	EXPECT_STREQ(
486 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>00<D32>5678abcd<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
487 		MIPI_SYST_CATPRINTF64_6_LOC16(ph, MIPI_SYST_SEVERITY_WARNING, 0xabcd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5, 6)
488 		);
489 }
490 
TEST_F(MipiSysTFixtureCatId64,syst_printf64_loc32_output)491 TEST_F(MipiSysTFixtureCatId64, syst_printf64_loc32_output)
492 {
493 	EXPECT_STREQ(
494 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0008<D64>000decafcafebabe<FLAG>"),
495 		MIPI_SYST_CATPRINTF64_0_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, "dummy")
496 		);
497 
498 	EXPECT_STREQ(
499 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>000c<D64>000decafcafebabe<D32>00000001<FLAG>"),
500 		MIPI_SYST_CATPRINTF64_1_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, "dummy", 1)
501 		);
502 
503 	EXPECT_STREQ(
504 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0010<D64>000decafcafebabe<D64>0000000200000001<FLAG>"),
505 		MIPI_SYST_CATPRINTF64_2_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, "dummy", 1, 2)
506 		);
507 
508 	EXPECT_STREQ(
509 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0014<D64>000decafcafebabe<D64>0000000200000001<D32>00000003<FLAG>"),
510 		MIPI_SYST_CATPRINTF64_3_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3)
511 		);
512 
513 	EXPECT_STREQ(
514 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0018<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<FLAG>"),
515 		MIPI_SYST_CATPRINTF64_4_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4)
516 		);
517 
518 	EXPECT_STREQ(
519 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>001c<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D32>00000005<FLAG>"),
520 		MIPI_SYST_CATPRINTF64_5_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5)
521 		);
522 
523 	EXPECT_STREQ(
524 		xform("<D32TS>02012333[typ=3:2 mu=1:2 sev=3 loc len]<D8>01<D64>12345678aabbccdd<D16>0020<D64>000decafcafebabe<D64>0000000200000001<D64>0000000400000003<D64>0000000600000005<FLAG>"),
525 		MIPI_SYST_CATPRINTF64_6_LOC32(ph, MIPI_SYST_SEVERITY_WARNING, 0xaabbccdd, 0xDECAFCAFEBABEull, "dummy", 1, 2, 3, 4, 5, 6)
526 		);
527 }
528 #endif //MIPI_SYST_PCFG_ENABLE_LOCATION_RECORD
529 
530 #endif //MIPI_SYST_PCFG_ENABLE_PLATFORM_STATE_DATA && MIPI_SYST_PCFG_ENABLE_DEFAULT_SCATTER_WRITE && MIPI_SYST_PCFG_ENABLE_CATID64_API