[thci] fix for ncs thci issues (#9328)

After recent reference device release, two THCI issues
have been found.

This commit adds `"` around command arguments that have
escapable characters (like `ot networkname aa\ bb`),
and skips lines containing only ANSI escape codes
in commissioning logs.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
This commit is contained in:
Maciej Baczmański
2023-07-31 19:18:08 +02:00
committed by GitHub
parent 29b87786cd
commit dc97b87376
+17 -9
View File
@@ -832,8 +832,15 @@ class OpenThreadTHCI(object):
[str]: The modified string with escaped characters.
"""
escapable_chars = '\\ \t\r\n'
escapable_chars_present = False
for char in escapable_chars:
string = string.replace(char, '\\%s' % char)
if char in string:
string = string.replace(char, '\\%s' % char)
escapable_chars_present = True
if self._cmdPrefix == ZEPHYR_PREFIX and escapable_chars_present:
string = '"' + string + '"'
return string
@API
@@ -2338,15 +2345,16 @@ class OpenThreadTHCI(object):
EncryptedPacket.TLVsLength = int(infoValue)
payloadLineCount = (int(infoValue) + bytesInEachLine - 1) / bytesInEachLine
while payloadLineCount > 0:
payloadLineCount = payloadLineCount - 1
payloadLine = rawLogs.get()
payloadSplit = payloadLine.split('|')
for block in range(1, 3):
payloadBlock = payloadSplit[block]
payloadValues = payloadBlock.split(' ')
for num in range(1, 9):
if '..' not in payloadValues[num]:
payload.append(int(payloadValues[num], 16))
if '|' in payloadLine:
payloadLineCount = payloadLineCount - 1
payloadSplit = payloadLine.split('|')
for block in range(1, 3):
payloadBlock = payloadSplit[block]
payloadValues = payloadBlock.split(' ')
for num in range(1, 9):
if '..' not in payloadValues[num]:
payload.append(int(payloadValues[num], 16))
EncryptedPacket.TLVs = (PlatformPackets.read(EncryptedPacket.Type, payload)
if payload != [] else [])