Skip to content

Commit e05d08e

Browse files
authored
TC-RR-1.1: Allow proper commissioning from TH (#32468)
* TC-RR-1.1: Allow proper commissioning from TH This test set required commissioning parameters in the command line runner, which weren't being picked up by the test harness when it commissioned. I have moved these to be default so that we can commission once and run all the tests. Also removed the ability to set parameters in this way because it will always result in test harness weirdness. * Add back argv for parsing config params Supports TH implementation.
1 parent 7aa7748 commit e05d08e

File tree

2 files changed

+11
-19
lines changed

2 files changed

+11
-19
lines changed

src/python_testing/TC_RR_1_1.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -871,4 +871,4 @@ async def read_heap_statistics(self, dev_ctrl):
871871

872872

873873
if __name__ == "__main__":
874-
default_matter_test_main(maximize_cert_chains=True, controller_cat_tags=[0x0001_0001])
874+
default_matter_test_main()

src/python_testing/matter_testing_support.py

+10-18
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,9 @@ class MatterTestConfig:
374374
discriminators: Optional[List[int]] = None
375375
setup_passcodes: Optional[List[int]] = None
376376
commissionee_ip_address_just_for_testing: Optional[str] = None
377-
maximize_cert_chains: bool = False
377+
# By default, we start with maximized cert chains, as required for RR-1.1.
378+
# This allows cert tests to be run without re-commissioning for RR-1.1.
379+
maximize_cert_chains: bool = True
378380

379381
qr_code_content: Optional[str] = None
380382
manual_code: Optional[str] = None
@@ -390,7 +392,10 @@ class MatterTestConfig:
390392
# Node ID to use for controller/commissioner
391393
controller_node_id: int = _DEFAULT_CONTROLLER_NODE_ID
392394
# CAT Tags for default controller/commissioner
393-
controller_cat_tags: List[int] = field(default_factory=list)
395+
# By default, we commission with CAT tags specified for RR-1.1
396+
# so the cert tests can be run without re-commissioning the device
397+
# for this one test. This can be overwritten from the command line
398+
controller_cat_tags: List[int] = field(default_factory=lambda: [0x0001_0001])
394399

395400
# Fabric ID which to use
396401
fabric_id: int = 1
@@ -1416,7 +1421,7 @@ def convert_args_to_matter_config(args: argparse.Namespace) -> MatterTestConfig:
14161421
return config
14171422

14181423

1419-
def parse_matter_test_args(argv: List[str]) -> MatterTestConfig:
1424+
def parse_matter_test_args(argv: Optional[List[str]] = None) -> MatterTestConfig:
14201425
parser = argparse.ArgumentParser(description='Matter standalone Python test')
14211426

14221427
basic_group = parser.add_argument_group(title="Basic arguments", description="Overall test execution arguments")
@@ -1613,7 +1618,7 @@ def _commission_device(self, i) -> bool:
16131618
raise ValueError("Invalid commissioning method %s!" % conf.commissioning_method)
16141619

16151620

1616-
def default_matter_test_main(argv=None, **kwargs):
1621+
def default_matter_test_main():
16171622
"""Execute the test class in a test module.
16181623
This is the default entry point for running a test script file directly.
16191624
In this case, only one test class in a test script is allowed.
@@ -1623,26 +1628,13 @@ def default_matter_test_main(argv=None, **kwargs):
16231628
...
16241629
if __name__ == '__main__':
16251630
default_matter_test_main.main()
1626-
Args:
1627-
argv: A list that is then parsed as command line args. If None, defaults to sys.argv
16281631
"""
16291632

1630-
matter_test_config = parse_matter_test_args(argv)
1631-
1632-
# Allow override of command line from optional arguments
1633-
if not matter_test_config.controller_cat_tags and "controller_cat_tags" in kwargs:
1634-
matter_test_config.controller_cat_tags = kwargs["controller_cat_tags"]
1633+
matter_test_config = parse_matter_test_args()
16351634

16361635
# Find the test class in the test script.
16371636
test_class = _find_test_class()
16381637

1639-
# This is required in case we need any testing with maximized certificate chains.
1640-
# We need *all* issuers from the start, even for default controller, to use
1641-
# maximized chains, before MatterStackState init, others some stale certs
1642-
# may not chain properly.
1643-
if "maximize_cert_chains" in kwargs:
1644-
matter_test_config.maximize_cert_chains = kwargs["maximize_cert_chains"]
1645-
16461638
hooks = InternalTestRunnerHooks()
16471639

16481640
run_tests(test_class, matter_test_config, hooks)

0 commit comments

Comments
 (0)