33
33
import click
34
34
import coloredlogs
35
35
import tabulate
36
+ import yaml
36
37
37
38
# We compile for the local architecture. Figure out what platform we need
38
39
@@ -43,12 +44,12 @@ def _get_native_machine_target():
43
44
"""
44
45
current_system_info = platform .uname ()
45
46
arch = current_system_info .machine
46
- if arch == ' x86_64' :
47
- arch = ' x64'
48
- elif arch == ' i386' or arch == ' i686' :
49
- arch = ' x86'
50
- elif arch in (' aarch64' , ' aarch64_be' , ' armv8b' , ' armv8l' ):
51
- arch = ' arm64'
47
+ if arch == " x86_64" :
48
+ arch = " x64"
49
+ elif arch == " i386" or arch == " i686" :
50
+ arch = " x86"
51
+ elif arch in (" aarch64" , " aarch64_be" , " armv8b" , " armv8l" ):
52
+ arch = " arm64"
52
53
53
54
return f"{ current_system_info .system .lower ()} -{ arch } "
54
55
@@ -165,14 +166,17 @@ def _do_build_apps():
165
166
f"{ target_prefix } -all-clusters-no-ble-clang-boringssl" ,
166
167
f"{ target_prefix } -bridge-no-ble-clang-boringssl" ,
167
168
f"{ target_prefix } -energy-management-no-ble-clang-boringssl" ,
169
+ f"{ target_prefix } -fabric-admin-rpc-ipv6only-clang-boringssl" ,
170
+ f"{ target_prefix } -fabric-bridge-rpc-ipv6only-clang-boringssl" ,
171
+ f"{ target_prefix } -light-data-model-no-unique-id-ipv6only-no-ble-no-wifi-clang" ,
168
172
f"{ target_prefix } -lit-icd-no-ble-clang-boringssl" ,
169
173
f"{ target_prefix } -lock-no-ble-clang-boringssl" ,
170
174
f"{ target_prefix } -microwave-oven-no-ble-clang-boringssl" ,
175
+ f"{ target_prefix } -network-manager-ipv6only-no-ble-clang-boringssl" ,
171
176
f"{ target_prefix } -ota-provider-no-ble-clang-boringssl" ,
172
177
f"{ target_prefix } -ota-requestor-no-ble-clang-boringssl" ,
173
178
f"{ target_prefix } -rvc-no-ble-clang-boringssl" ,
174
179
f"{ target_prefix } -tv-app-no-ble-clang-boringssl" ,
175
- f"{ target_prefix } -network-manager-ipv6only-no-ble-clang-boringssl" ,
176
180
]
177
181
178
182
cmd = ["./scripts/build/build_examples.py" ]
@@ -354,6 +358,11 @@ def as_runner(path):
354
358
CHIP_RVC_APP: { as_runner (f'out/{ target_prefix } -rvc-no-ble-clang-boringssl/chip-rvc-app' )}
355
359
NETWORK_MANAGEMENT_APP: {
356
360
as_runner (f'out/{ target_prefix } -network-manager-ipv6only-no-ble-clang-boringssl/matter-network-manager-app' )}
361
+ FABRIC_ADMIN_APP: {
362
+ as_runner (f'out/{ target_prefix } -fabric-admin-rpc-ipv6only-clang-boringssl/fabric-admin' )}
363
+ FABRIC_BRIDGE_APP: {
364
+ as_runner (f'out/{ target_prefix } -fabric-bridge-rpc-ipv6only-clang-boringssl/fabric-bridge-app' )}
365
+ LIGHTING_APP_NO_UNIQUE_ID: { as_runner (f'out/{ target_prefix } -light-data-model-no-unique-id-ipv6only-no-ble-no-wifi-clang/chip-lighting-app' )}
357
366
TRACE_APP: out/trace_data/app-{{SCRIPT_BASE_NAME}}
358
367
TRACE_TEST_JSON: out/trace_data/test-{{SCRIPT_BASE_NAME}}
359
368
TRACE_TEST_PERFETTO: out/trace_data/test-{{SCRIPT_BASE_NAME}}
@@ -382,58 +391,11 @@ def as_runner(path):
382
391
if not os .path .exists ("out/trace_data" ):
383
392
os .mkdir ("out/trace_data" )
384
393
385
- # IGNORES are taken out of `src/python_testing/execute_python_tests.py` in the SDK
386
- excluded_patterns = {
387
- "MinimalRepresentation.py" ,
388
- "TC_CNET_4_4.py" ,
389
- "TC_CCTRL_2_1.py" ,
390
- "TC_CCTRL_2_2.py" ,
391
- "TC_CCTRL_2_3.py" ,
392
- "TC_DGGEN_3_2.py" ,
393
- "TC_EEVSE_Utils.py" ,
394
- "TC_ECOINFO_2_1.py" ,
395
- "TC_ECOINFO_2_2.py" ,
396
- "TC_EWATERHTRBase.py" ,
397
- "TC_EWATERHTR_2_1.py" ,
398
- "TC_EWATERHTR_2_2.py" ,
399
- "TC_EWATERHTR_2_3.py" ,
400
- "TC_EnergyReporting_Utils.py" ,
401
- "TC_OpstateCommon.py" ,
402
- "TC_pics_checker.py" ,
403
- "TC_TMP_2_1.py" ,
404
- "TC_MCORE_FS_1_1.py" ,
405
- "TC_MCORE_FS_1_2.py" ,
406
- "TC_MCORE_FS_1_3.py" ,
407
- "TC_MCORE_FS_1_4.py" ,
408
- "TC_MCORE_FS_1_5.py" ,
409
- "TC_OCC_3_1.py" ,
410
- "TC_OCC_3_2.py" ,
411
- "TC_BRBINFO_4_1.py" ,
412
- "TestCommissioningTimeSync.py" ,
413
- "TestConformanceSupport.py" ,
414
- "TestChoiceConformanceSupport.py" ,
415
- "TC_DEMTestBase.py" ,
416
- "choice_conformance_support.py" ,
417
- "TestConformanceTest.py" , # Unit test of the conformance test (TC_DeviceConformance) - does not run against an app.
418
- "TestIdChecks.py" ,
419
- "TestSpecParsingDeviceType.py" ,
420
- "TestMatterTestingSupport.py" ,
421
- "TestSpecParsingSupport.py" ,
422
- "TestTimeSyncTrustedTimeSource.py" ,
423
- "basic_composition_support.py" ,
424
- "conformance_support.py" ,
425
- "drlk_2_x_common.py" ,
426
- "execute_python_tests.py" ,
427
- "global_attribute_ids.py" ,
428
- "hello_external_runner.py" ,
429
- "hello_test.py" ,
430
- "matter_testing_support.py" ,
431
- "pics_support.py" ,
432
- "spec_parsing_support.py" ,
433
- "taglist_and_topology_test_support.py" ,
434
- "test_plan_support.py" ,
435
- "test_plan_table_generator.py" ,
436
- }
394
+ metadata = yaml .full_load (open ("src/python_testing/test_metadata.yaml" ))
395
+ excluded_patterns = set ([item ["name" ] for item in metadata ["not_automated" ]])
396
+
397
+ # NOTE: for slow tests. we add logs to not get impatient
398
+ slow_test_duration = dict ([(item ["name" ], item ["duration" ]) for item in metadata ["slow_tests" ]])
437
399
438
400
if not os .path .isdir ("src/python_testing" ):
439
401
raise Exception (
@@ -448,31 +410,6 @@ def as_runner(path):
448
410
test_scripts .append ("src/controller/python/test/test_scripts/mobile-device-test.py" )
449
411
test_scripts .sort () # order consistent
450
412
451
- # NOTE: VERY slow tests. we add logs to not get impatient
452
- slow_test_duration = {
453
- "mobile-device-test.py" : "3 minutes" ,
454
- "TC_AccessChecker.py" : "1.5 minutes" ,
455
- "TC_CADMIN_1_9.py" : "40 seconds" ,
456
- "TC_CC_2_2.py" : "1.5 minutes" ,
457
- "TC_DEM_2_10.py" : "40 seconds" ,
458
- "TC_DeviceBasicComposition.py" : "25 seconds" ,
459
- "TC_DRLK_2_12.py" : "30 seconds" ,
460
- "TC_DRLK_2_3.py" : "30 seconds" ,
461
- "TC_EEVSE_2_6.py" : "30 seconds" ,
462
- "TC_FAN_3_1.py" : "15 seconds" ,
463
- "TC_OPSTATE_2_5.py" : "1.25 minutes" ,
464
- "TC_OPSTATE_2_6.py" : "35 seconds" ,
465
- "TC_PS_2_3.py" : "30 seconds" ,
466
- "TC_RR_1_1.py" : "25 seconds" ,
467
- "TC_SWTCH.py" : "1 minute" ,
468
- "TC_TIMESYNC_2_10.py" : "20 seconds" ,
469
- "TC_TIMESYNC_2_11.py" : "30 seconds" ,
470
- "TC_TIMESYNC_2_12.py" : "20 seconds" ,
471
- "TC_TIMESYNC_2_7.py" : "20 seconds" ,
472
- "TC_TIMESYNC_2_8.py" : "1.5 minutes" ,
473
- "TC_ICDM_5_1.py" : "TODO" ,
474
- }
475
-
476
413
execution_times = []
477
414
try :
478
415
to_run = []
@@ -698,7 +635,10 @@ def chip_tool_tests(target, target_glob, include_tags, expected_failures, runner
698
635
699
636
target_prefix = _get_native_machine_target ()
700
637
cmd .extend (
701
- ["--chip-tool" , f"./out/{ target_prefix } -chip-tool-no-ble-clang-boringssl/chip-tool" ]
638
+ [
639
+ "--chip-tool" ,
640
+ f"./out/{ target_prefix } -chip-tool-no-ble-clang-boringssl/chip-tool" ,
641
+ ]
702
642
)
703
643
704
644
if target is not None :
0 commit comments