Skip to content

Commit 1883599

Browse files
andy31415andreilitvinrestyled-commitsbzbarsky-apple
authored
Json tracing updates and fixes (enable in all clusters, fix lists and large payloads) (#28022)
* Fix json tracing * Increase the buffer size for json tracing as well * Full json trace decoding for all clusters app on linux * Better formatting of lists - make indices make sense * Restyle * Updated comments based on code review * Restyled by whitespace * Add error logging when exit container fails * Fix typo * Update src/tracing/json/json_tracing.cpp Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * rename [] to Anonymous<> for lists * Rename exit to end for containers * Use a `@` format instead of - * One more anonymous update * Fix unit tests --------- Co-authored-by: Andrei Litvin <andreilitvin@google.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
1 parent 8847f21 commit 1883599

File tree

8 files changed

+131
-51
lines changed

8 files changed

+131
-51
lines changed

examples/all-clusters-app/linux/args.gni

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ chip_project_config_include_dirs =
2525
chip_project_config_include_dirs += [ "${chip_root}/config/standalone" ]
2626

2727
matter_enable_tracing_support = true
28+
matter_log_json_payload_decode_full = true
29+
matter_log_json_payload_hex = true
2830

2931
# Perfetto requires C++17
3032
cpp_standard = "gnu++17"

scripts/py_matter_idl/matter_idl/generators/cpp/tlvmeta/TLVMetaData_cpp.jinja

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const Entry<ItemInfo> _all_clusters[] = {
2525

2626
// For any non-structure list like u64[] or similar.
2727
const Entry<ItemInfo> _primitive_type_list[] = {
28-
{ { AnonymousTag(), "[]", ItemType::kDefault }, kInvalidNodeIndex },
28+
{ { AnonymousTag(), "Anonymous<>", ItemType::kDefault }, kInvalidNodeIndex },
2929
};
3030

3131
} // namespace

scripts/py_matter_idl/matter_idl/generators/cpp/tlvmeta/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def GenerateTables(self) -> Generator[Table, None, None]:
187187
entries=[
188188
TableEntry(
189189
code="AnonymousTag()",
190-
name="[]",
190+
name="Anonymous<>",
191191
reference=name,
192192
real_type="%s[]" % name,
193193
)

scripts/py_matter_idl/matter_idl/tests/outputs/cluster_struct_attribute/cpp-tlvmeta/clusters_meta.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const Entry<ItemInfo> _DemoCluster_ArmFailSafeRequest[] = {
1919
};
2020

2121
const Entry<ItemInfo> _DemoCluster_ArmFailSafeRequest_list_[] = {
22-
{ { AnonymousTag(), "[]", ItemType::kDefault }, 3 }, // DemoCluster_ArmFailSafeRequest[]
22+
{ { AnonymousTag(), "Anonymous<>", ItemType::kDefault }, 3 }, // DemoCluster_ArmFailSafeRequest[]
2323
};
2424

2525
const Entry<ItemInfo> _all_clusters[] = {
@@ -29,7 +29,7 @@ const Entry<ItemInfo> _all_clusters[] = {
2929

3030
// For any non-structure list like u64[] or similar.
3131
const Entry<ItemInfo> _primitive_type_list[] = {
32-
{ { AnonymousTag(), "[]", ItemType::kDefault }, kInvalidNodeIndex },
32+
{ { AnonymousTag(), "Anonymous<>", ItemType::kDefault }, kInvalidNodeIndex },
3333
};
3434

3535
} // namespace

scripts/py_matter_idl/matter_idl/tests/outputs/cluster_with_commands/cpp-tlvmeta/clusters_meta.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const Entry<ItemInfo> _all_clusters[] = {
5555

5656
// For any non-structure list like u64[] or similar.
5757
const Entry<ItemInfo> _primitive_type_list[] = {
58-
{ { AnonymousTag(), "[]", ItemType::kDefault }, kInvalidNodeIndex },
58+
{ { AnonymousTag(), "Anonymous<>", ItemType::kDefault }, kInvalidNodeIndex },
5959
};
6060

6161
} // namespace

src/lib/format/protocol_decoder.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,15 @@ void PayloadDecoderBase::ExitContainer(PayloadEntry & entry)
292292
{
293293
mPayloadPosition.Exit();
294294
}
295-
mReader.ExitContainer(mNestingEnters[--mCurrentNesting]);
295+
CHIP_ERROR err = mReader.ExitContainer(mNestingEnters[--mCurrentNesting]);
296+
if (err != CHIP_NO_ERROR)
297+
{
298+
mValueBuilder.AddFormat("ERROR: %" CHIP_ERROR_FORMAT, err.Format());
299+
mNameBuilder.AddFormat("END CONTAINER");
300+
entry = PayloadEntry::SimpleValue(mNameBuilder.c_str(), mValueBuilder.c_str());
301+
mState = State::kDone;
302+
return;
303+
}
296304
}
297305

298306
if (mCurrentNesting == 0)

src/lib/format/tests/TestDecoding.cpp

+41-41
Original file line numberDiff line numberDiff line change
@@ -174,82 +174,82 @@ void TestFullDataDecoding(nlTestSuite * inSuite, void * inContext)
174174
TestSampleData(inSuite, params, im_protocol_read_request,
175175
"read_request\n"
176176
" attribute_requests\n"
177-
" []\n"
177+
" Anonymous<>\n"
178178
" cluster_id: 49 == 'NetworkCommissioning'\n"
179179
" attribute_id: 65532 == 'featureMap'\n"
180-
" []\n"
180+
" Anonymous<>\n"
181181
" endpoint_id: 0\n"
182182
" cluster_id: 48 == 'GeneralCommissioning'\n"
183183
" attribute_id: 0 == 'breadcrumb'\n"
184-
" []\n"
184+
" Anonymous<>\n"
185185
" endpoint_id: 0\n"
186186
" cluster_id: 48 == 'GeneralCommissioning'\n"
187187
" attribute_id: 1 == 'basicCommissioningInfo'\n"
188-
" []\n"
188+
" Anonymous<>\n"
189189
" endpoint_id: 0\n"
190190
" cluster_id: 48 == 'GeneralCommissioning'\n"
191191
" attribute_id: 2 == 'regulatoryConfig'\n"
192-
" []\n"
192+
" Anonymous<>\n"
193193
" endpoint_id: 0\n"
194194
" cluster_id: 48 == 'GeneralCommissioning'\n"
195195
" attribute_id: 3 == 'locationCapability'\n"
196-
" []\n"
196+
" Anonymous<>\n"
197197
" endpoint_id: 0\n"
198198
" cluster_id: 40 == 'BasicInformation'\n"
199199
" attribute_id: 2 == 'vendorID'\n"
200-
" []\n"
200+
" Anonymous<>\n"
201201
" endpoint_id: 0\n"
202202
" cluster_id: 40 == 'BasicInformation'\n"
203203
" attribute_id: 4 == 'productID'\n"
204-
" []\n"
204+
" Anonymous<>\n"
205205
" cluster_id: 49 == 'NetworkCommissioning'\n"
206206
" attribute_id: 3 == 'connectMaxTimeSeconds'\n"
207207
" fabric_filtered: false\n"
208208
" interaction_model_revison: 1\n");
209209
TestSampleData(inSuite, params, im_protocol_report_data,
210210
"report_data\n"
211211
" attribute_reports\n"
212-
" []\n"
212+
" Anonymous<>\n"
213213
" attribute_data\n"
214214
" data_version: 28559721\n"
215215
" path\n"
216216
" endpoint_id: 0\n"
217217
" cluster_id: 49 == 'NetworkCommissioning'\n"
218218
" attribute_id: 3 == 'connectMaxTimeSeconds'\n"
219219
" NetworkCommissioning::connectMaxTimeSeconds: 0\n"
220-
" []\n"
220+
" Anonymous<>\n"
221221
" attribute_data\n"
222222
" data_version: 664978787\n"
223223
" path\n"
224224
" endpoint_id: 0\n"
225225
" cluster_id: 40 == 'BasicInformation'\n"
226226
" attribute_id: 4 == 'productID'\n"
227227
" BasicInformation::productID: 32769\n"
228-
" []\n"
228+
" Anonymous<>\n"
229229
" attribute_data\n"
230230
" data_version: 664978787\n"
231231
" path\n"
232232
" endpoint_id: 0\n"
233233
" cluster_id: 40 == 'BasicInformation'\n"
234234
" attribute_id: 2 == 'vendorID'\n"
235235
" BasicInformation::vendorID: 65521\n"
236-
" []\n"
236+
" Anonymous<>\n"
237237
" attribute_data\n"
238238
" data_version: 1414030794\n"
239239
" path\n"
240240
" endpoint_id: 0\n"
241241
" cluster_id: 48 == 'GeneralCommissioning'\n"
242242
" attribute_id: 3 == 'locationCapability'\n"
243243
" GeneralCommissioning::locationCapability: 2 == kIndoorOutdoor\n"
244-
" []\n"
244+
" Anonymous<>\n"
245245
" attribute_data\n"
246246
" data_version: 1414030794\n"
247247
" path\n"
248248
" endpoint_id: 0\n"
249249
" cluster_id: 48 == 'GeneralCommissioning'\n"
250250
" attribute_id: 2 == 'regulatoryConfig'\n"
251251
" GeneralCommissioning::regulatoryConfig: 0 == kIndoor\n"
252-
" []\n"
252+
" Anonymous<>\n"
253253
" attribute_data\n"
254254
" data_version: 1414030794\n"
255255
" path\n"
@@ -259,15 +259,15 @@ void TestFullDataDecoding(nlTestSuite * inSuite, void * inContext)
259259
" GeneralCommissioning::basicCommissioningInfo\n"
260260
" failSafeExpiryLengthSeconds: 60\n"
261261
" maxCumulativeFailsafeSeconds: 900\n"
262-
" []\n"
262+
" Anonymous<>\n"
263263
" attribute_data\n"
264264
" data_version: 1414030794\n"
265265
" path\n"
266266
" endpoint_id: 0\n"
267267
" cluster_id: 48 == 'GeneralCommissioning'\n"
268268
" attribute_id: 0 == 'breadcrumb'\n"
269269
" GeneralCommissioning::breadcrumb: 0\n"
270-
" []\n"
270+
" Anonymous<>\n"
271271
" attribute_data\n"
272272
" data_version: 28559721\n"
273273
" path\n"
@@ -282,19 +282,19 @@ void TestFullDataDecoding(nlTestSuite * inSuite, void * inContext)
282282
TestSampleData(inSuite, params, im_protocol_report_data_acl,
283283
"report_data\n"
284284
" attribute_reports\n"
285-
" []\n"
285+
" Anonymous<>\n"
286286
" attribute_data\n"
287287
" data_version: 3420147058\n"
288288
" path\n"
289289
" endpoint_id: 0\n"
290290
" cluster_id: 31 == 'AccessControl'\n"
291291
" attribute_id: 0 == 'acl'\n"
292292
" AccessControl::acl\n"
293-
" []\n"
293+
" Anonymous<>\n"
294294
" privilege: 5 == kAdminister\n"
295295
" authMode: 2 == kCASE\n"
296296
" subjects\n"
297-
" []: 112233\n"
297+
" Anonymous<>: 112233\n"
298298
" targets: NULL\n"
299299
" fabricIndex: 1\n"
300300
" suppress_response: true\n"
@@ -304,7 +304,7 @@ void TestFullDataDecoding(nlTestSuite * inSuite, void * inContext)
304304
inSuite, params, im_protocol_report_data_window_covering,
305305
"report_data\n"
306306
" attribute_reports\n"
307-
" []\n"
307+
" Anonymous<>\n"
308308
" attribute_data\n"
309309
" data_version: 2054986218\n"
310310
" path\n"
@@ -320,7 +320,7 @@ void TestFullDataDecoding(nlTestSuite * inSuite, void * inContext)
320320
" suppress_response: false\n"
321321
" timed_request: false\n"
322322
" invoke_requests\n"
323-
" []\n"
323+
" Anonymous<>\n"
324324
" path\n"
325325
" endpoint_id: 1\n"
326326
" cluster_id: 6 == 'OnOff'\n"
@@ -332,7 +332,7 @@ void TestFullDataDecoding(nlTestSuite * inSuite, void * inContext)
332332
"invoke_response\n"
333333
" suppress_response: false\n"
334334
" invoke_responses\n"
335-
" []\n"
335+
" Anonymous<>\n"
336336
" status\n"
337337
" path\n"
338338
" endpoint_id: 1\n"
@@ -347,7 +347,7 @@ void TestFullDataDecoding(nlTestSuite * inSuite, void * inContext)
347347
" suppress_response: false\n"
348348
" timed_request: false\n"
349349
" invoke_requests\n"
350-
" []\n"
350+
" Anonymous<>\n"
351351
" path\n"
352352
" endpoint_id: 1\n"
353353
" cluster_id: 1284 == 'Channel'\n"
@@ -375,98 +375,98 @@ void TestMetaDataOnlyDecoding(nlTestSuite * inSuite, void * inContext)
375375
TestSampleData(inSuite, params, im_protocol_read_request,
376376
"read_request\n"
377377
" attribute_requests\n"
378-
" []\n"
378+
" Anonymous<>\n"
379379
" cluster_id: 49\n"
380380
" attribute_id: 65532\n"
381-
" []\n"
381+
" Anonymous<>\n"
382382
" endpoint_id: 0\n"
383383
" cluster_id: 48\n"
384384
" attribute_id: 0\n"
385-
" []\n"
385+
" Anonymous<>\n"
386386
" endpoint_id: 0\n"
387387
" cluster_id: 48\n"
388388
" attribute_id: 1\n"
389-
" []\n"
389+
" Anonymous<>\n"
390390
" endpoint_id: 0\n"
391391
" cluster_id: 48\n"
392392
" attribute_id: 2\n"
393-
" []\n"
393+
" Anonymous<>\n"
394394
" endpoint_id: 0\n"
395395
" cluster_id: 48\n"
396396
" attribute_id: 3\n"
397-
" []\n"
397+
" Anonymous<>\n"
398398
" endpoint_id: 0\n"
399399
" cluster_id: 40\n"
400400
" attribute_id: 2\n"
401-
" []\n"
401+
" Anonymous<>\n"
402402
" endpoint_id: 0\n"
403403
" cluster_id: 40\n"
404404
" attribute_id: 4\n"
405-
" []\n"
405+
" Anonymous<>\n"
406406
" cluster_id: 49\n"
407407
" attribute_id: 3\n"
408408
" fabric_filtered: false\n"
409409
" interaction_model_revison: 1\n");
410410
TestSampleData(inSuite, params, im_protocol_report_data,
411411
"report_data\n"
412412
" attribute_reports\n"
413-
" []\n"
413+
" Anonymous<>\n"
414414
" attribute_data\n"
415415
" data_version: 28559721\n"
416416
" path\n"
417417
" endpoint_id: 0\n"
418418
" cluster_id: 49\n"
419419
" attribute_id: 3\n"
420420
" ATTRIBUTE: 49/3\n"
421-
" []\n"
421+
" Anonymous<>\n"
422422
" attribute_data\n"
423423
" data_version: 664978787\n"
424424
" path\n"
425425
" endpoint_id: 0\n"
426426
" cluster_id: 40\n"
427427
" attribute_id: 4\n"
428428
" ATTRIBUTE: 40/4\n"
429-
" []\n"
429+
" Anonymous<>\n"
430430
" attribute_data\n"
431431
" data_version: 664978787\n"
432432
" path\n"
433433
" endpoint_id: 0\n"
434434
" cluster_id: 40\n"
435435
" attribute_id: 2\n"
436436
" ATTRIBUTE: 40/2\n"
437-
" []\n"
437+
" Anonymous<>\n"
438438
" attribute_data\n"
439439
" data_version: 1414030794\n"
440440
" path\n"
441441
" endpoint_id: 0\n"
442442
" cluster_id: 48\n"
443443
" attribute_id: 3\n"
444444
" ATTRIBUTE: 48/3\n"
445-
" []\n"
445+
" Anonymous<>\n"
446446
" attribute_data\n"
447447
" data_version: 1414030794\n"
448448
" path\n"
449449
" endpoint_id: 0\n"
450450
" cluster_id: 48\n"
451451
" attribute_id: 2\n"
452452
" ATTRIBUTE: 48/2\n"
453-
" []\n"
453+
" Anonymous<>\n"
454454
" attribute_data\n"
455455
" data_version: 1414030794\n"
456456
" path\n"
457457
" endpoint_id: 0\n"
458458
" cluster_id: 48\n"
459459
" attribute_id: 1\n"
460460
" ATTRIBUTE: 48/1\n"
461-
" []\n"
461+
" Anonymous<>\n"
462462
" attribute_data\n"
463463
" data_version: 1414030794\n"
464464
" path\n"
465465
" endpoint_id: 0\n"
466466
" cluster_id: 48\n"
467467
" attribute_id: 0\n"
468468
" ATTRIBUTE: 48/0\n"
469-
" []\n"
469+
" Anonymous<>\n"
470470
" attribute_data\n"
471471
" data_version: 28559721\n"
472472
" path\n"
@@ -481,7 +481,7 @@ void TestMetaDataOnlyDecoding(nlTestSuite * inSuite, void * inContext)
481481
TestSampleData(inSuite, params, im_protocol_report_data_acl,
482482
"report_data\n"
483483
" attribute_reports\n"
484-
" []\n"
484+
" Anonymous<>\n"
485485
" attribute_data\n"
486486
" data_version: 3420147058\n"
487487
" path\n"
@@ -503,7 +503,7 @@ void TestEmptyClusterMetaDataDecode(nlTestSuite * inSuite, void * inContext)
503503
TestSampleData(inSuite, params, im_protocol_report_data_acl,
504504
"report_data\n"
505505
" attribute_reports\n"
506-
" []\n"
506+
" Anonymous<>\n"
507507
" attribute_data\n"
508508
" data_version: 3420147058\n"
509509
" path\n"

0 commit comments

Comments
 (0)