mirror of
https://github.com/espressif/openthread.git
synced 2026-08-08 11:47:46 +00:00
[tests] add test case Cert_9_2_02 (#3589)
1. Add new test case **Cert_9_2_02**. Since the test case contains 2 topologies, added 2 new files: - `Cert_9_2_02A_MGMTCommissionerSet.py`, - `Cert_9_2_02B_MGMTCommissionerSet.py`. 2. Add mesh_cop tlvs parsing. The corresponding file is `mesh_cop.py`. The mesh_cop tlvs are used in many cases. For example, `CommissionerSessionId` is used in both the parsing of **Commissioning Data**(in mle) and the parsing of **CoAP**. Collected all mesh_cop tlvs refered in Thread into this file with some unused tlvs unimplemented. 3. Reuse `SubTlvsFactory` in `network_data.py`. `SubTlvsFactory` are used to choose the corresponding factory of specific tlv and do the parsing of it. The `NetworkLayerTlvsFactory` in `network_layer.py` had exactly the same function with it (almost the same code). Moved the `SubTlvsFactory` into a new file `tlvs_parsing.py` and change the usage in `network_data.py` and `network_layer.py`. This helps us remove some redundant code. 4. Some format issues. Remove some trailing spaces.
This commit is contained in:
@@ -314,22 +314,3 @@ class ThreadNetworkDataFactory(object):
|
||||
tlvs = self._network_data_tlvs_factory.parse(data, message_info)
|
||||
return ThreadNetworkData(tlvs)
|
||||
|
||||
|
||||
class NetworkLayerTlvsFactory(object):
|
||||
|
||||
def __init__(self, tlvs_factories):
|
||||
self._tlvs_factories = tlvs_factories
|
||||
|
||||
def parse(self, data, message_info):
|
||||
tlvs = []
|
||||
|
||||
while data.tell() < len(data.getvalue()):
|
||||
_type = ord(data.read(1))
|
||||
length = ord(data.read(1))
|
||||
|
||||
factory = self._tlvs_factories[_type]
|
||||
tlv = factory.parse(io.BytesIO(data.read(length)), message_info)
|
||||
|
||||
tlvs.append(tlv)
|
||||
|
||||
return tlvs
|
||||
|
||||
Reference in New Issue
Block a user