-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Power Topology: add test scripts (#32114)
* Initial XML for Power Topology cluster * Regen * Restyled really wants newlines at the end of every JSON file * Rename LeafTopology to TreeTopology * [Feature] Power Topology server & all-clusters-app stub * Make endpointId a constructor arg for PowerTopologyDelegate * Change PowerTopologyDelegate to not return std::vectors * Remove unneeded entries in attributeAccessInterfaceAttributes for Power Topology cluster * Typo in python/chip/clusters/__init__.py * Format zcl.json * Add DynamicPowerFlow feature to PowerTopology stub * Add Power Topology to client * Set CI PICS values * Python test script for Power Topology * Linted python script * Add Power Topology python script test * Add PWRTL_1_1 to ciTests.json * Restyled * Regen * Format PICS.yaml
- Loading branch information
Showing
8 changed files
with
238 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
119 changes: 119 additions & 0 deletions
119
src/app/tests/suites/certification/Test_TC_PWRTL_1_1.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
# Copyright (c) 2021 Project CHIP Authors | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default | ||
|
||
name: 44.1.1. [TC-PWRTL-1.1] Global Attributes with DUT as Server | ||
|
||
PICS: | ||
- PWRTL.S | ||
|
||
config: | ||
nodeId: 0x12344321 | ||
cluster: "Power Topology" | ||
endpoint: 1 | ||
|
||
tests: | ||
- label: "Step 1: Wait for the commissioned device to be retrieved" | ||
cluster: "DelayCommands" | ||
command: "WaitForCommissionee" | ||
arguments: | ||
values: | ||
- name: "nodeId" | ||
value: nodeId | ||
|
||
- label: "Step 2: TH reads the ClusterRevision from DUT" | ||
command: "readAttribute" | ||
attribute: "ClusterRevision" | ||
response: | ||
value: 1 | ||
constraints: | ||
type: int16u | ||
|
||
- label: | ||
"Step 3a: Given PWRTL.S.F00(Node) ensure featuremap has the correct | ||
bit set" | ||
PICS: PWRTL.S.F00 | ||
command: "readAttribute" | ||
attribute: "FeatureMap" | ||
response: | ||
constraints: | ||
type: bitmap32 | ||
hasMasksSet: [0x1] | ||
hasMasksClear: [0x2, 0x4, 0x8] | ||
|
||
- label: | ||
"Step 3b: Given PWRTL.S.F01(Leaf) ensure featuremap has the correct | ||
bit set" | ||
PICS: PWRTL.S.F01 | ||
command: "readAttribute" | ||
attribute: "FeatureMap" | ||
response: | ||
constraints: | ||
type: bitmap32 | ||
hasMasksSet: [0x2] | ||
hasMasksClear: [0x1, 0x4, 0x8] | ||
|
||
- label: | ||
"Step 3c: Given PWRTL.S.F02(Set) ensure featuremap has the correct bit | ||
set" | ||
PICS: PWRTL.S.F02 | ||
command: "readAttribute" | ||
attribute: "FeatureMap" | ||
response: | ||
constraints: | ||
type: bitmap32 | ||
hasMasksSet: [0x4] | ||
hasMasksClear: [0x1, 0x2] | ||
|
||
- label: | ||
"Step 3d: Given PWRTL.S.F03(Dynamic Power Flow) ensure featuremap has | ||
the correct bit set" | ||
PICS: PWRTL.S.F03 | ||
command: "readAttribute" | ||
attribute: "FeatureMap" | ||
response: | ||
constraints: | ||
type: bitmap32 | ||
hasMasksSet: [0x4, 0x8] | ||
|
||
- label: "Step 4a: TH reads AttributeList from DUT" | ||
PICS: "!PICS_SF_SET && !PICS_SF_DYPF" | ||
command: "readAttribute" | ||
attribute: "AttributeList" | ||
response: | ||
constraints: | ||
type: list | ||
contains: [] | ||
|
||
- label: | ||
"Step 4b: TH reads feature dependent attribute(AvailableEndpoints) | ||
AttributeList from DUT" | ||
PICS: "PICS_SF_SET && !PICS_SF_DYPF" | ||
command: "readAttribute" | ||
attribute: "AttributeList" | ||
response: | ||
constraints: | ||
type: list | ||
contains: [0] | ||
|
||
- label: | ||
"Step 4c: TH reads feature dependent attribute(ActiveEndpoints) | ||
AttributeList from DUT" | ||
PICS: "PICS_SF_SET && PICS_SF_DYPF" | ||
command: "readAttribute" | ||
attribute: "AttributeList" | ||
response: | ||
constraints: | ||
type: list | ||
contains: [0, 1] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# | ||
# Copyright (c) 2024 Project CHIP Authors | ||
# All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
|
||
import logging | ||
|
||
import chip.clusters as Clusters | ||
from chip.clusters.Types import NullValue | ||
from matter_testing_support import MatterBaseTest, async_test_body, default_matter_test_main | ||
from mobly import asserts | ||
|
||
|
||
class TC_PWRTL_2_1(MatterBaseTest): | ||
|
||
def pics_TC_PWRTL_2_1(self) -> list[str]: | ||
return ["PWRTL.S"] | ||
|
||
@async_test_body | ||
async def test_TC_PWRTL_2_1(self): | ||
|
||
attributes = Clusters.PowerTopology.Attributes | ||
|
||
endpoint = self.user_params.get("endpoint", 1) | ||
|
||
self.print_step(1, "Commissioning, already done") | ||
|
||
if not self.check_pics("PWRTL.S.A0000"): | ||
logging.info("Test skipped because PICS PWRTL.S.A0000 is not set") | ||
return | ||
|
||
self.print_step(2, "Read AvailableAttributes attribute") | ||
available_endpoints = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=Clusters.Objects.PowerTopology, attribute=attributes.AvailableEndpoints) | ||
|
||
if available_endpoints == NullValue: | ||
logging.info("AvailableEndpoints is null") | ||
else: | ||
logging.info("AvailableEndpoints: %s" % (available_endpoints)) | ||
|
||
asserts.assert_less_equal(len(available_endpoints), 21, | ||
"AvailableEndpoints length %d must be less than 21!" % len(available_endpoints)) | ||
|
||
if not self.check_pics("PWRTL.S.A0001"): | ||
logging.info("Test skipped because PICS PWRTL.S.A0001 is not set") | ||
return | ||
|
||
self.print_step(3, "Read ActiveEndpoints attribute") | ||
active_endpoints = await self.read_single_attribute_check_success(endpoint=endpoint, cluster=Clusters.Objects.PowerTopology, attribute=attributes.ActiveEndpoints) | ||
logging.info("ActiveEndpoints: %s" % (active_endpoints)) | ||
|
||
if available_endpoints == NullValue: | ||
asserts.assert_true(active_endpoints == NullValue, | ||
"ActiveEndpoints should be null when AvailableEndpoints is null: %s" % active_endpoints) | ||
|
||
|
||
if __name__ == "__main__": | ||
default_matter_test_main() |