mirror of
https://github.com/espressif/openthread.git
synced 2026-09-17 14:40:07 +00:00
[tcat] implementation of TCAT general class commands (#10700)
Commit introduces implementation of missing general class commands: - PresentPskdHash - PresentPskcHash - PresentInstallCodeHash - RequestRandomNumChallenge - RequestPskdHash Also include minor fixes in Tcat python client and refactoring of expect tests for tcat.
This commit is contained in:
@@ -266,4 +266,35 @@ proc fail {message} {
|
||||
error $message
|
||||
}
|
||||
|
||||
proc spawn_tcat_client_for_node {id} {
|
||||
global tcat_ids
|
||||
global spawn_id
|
||||
|
||||
switch_node $id
|
||||
|
||||
send "tcat start\n"
|
||||
expect_line "Done"
|
||||
|
||||
spawn python "tools/tcat_ble_client/bbtc.py" --simulation $id --cert_path "tools/tcat_ble_client/auth"
|
||||
expect_line "Done"
|
||||
|
||||
set tcat_ids($id) $spawn_id
|
||||
|
||||
return $spawn_id
|
||||
}
|
||||
|
||||
proc switch_tcat_client_for_node {id} {
|
||||
global tcat_ids
|
||||
global spawn_id
|
||||
|
||||
send_user "\n# ${id}\n"
|
||||
set spawn_id $tcat_ids($id)
|
||||
}
|
||||
|
||||
proc dispose_tcat_client {id} {
|
||||
switch_tcat_client_for_node $id
|
||||
send "exit\n"
|
||||
expect eof
|
||||
}
|
||||
|
||||
set timeout 10
|
||||
|
||||
@@ -31,7 +31,6 @@ source "tests/scripts/expect/_common.exp"
|
||||
|
||||
spawn_node 1 "cli"
|
||||
|
||||
switch_node 1
|
||||
send "tcat advid ianapen f378\n"
|
||||
expect_line "Done"
|
||||
|
||||
@@ -89,3 +88,5 @@ expect_line "Done"
|
||||
|
||||
send "tcat devid\n"
|
||||
expect_line "Done"
|
||||
|
||||
dispose_all
|
||||
|
||||
@@ -31,13 +31,8 @@ source "tests/scripts/expect/_common.exp"
|
||||
|
||||
spawn_node 1 "cli"
|
||||
|
||||
switch_node 1
|
||||
send "tcat start\n"
|
||||
expect_line "Done"
|
||||
spawn_tcat_client_for_node 1
|
||||
|
||||
spawn python "tools/tcat_ble_client/bbtc.py" --simulation 1 --cert_path "tools/tcat_ble_client/auth"
|
||||
set py_client "$spawn_id"
|
||||
expect_line "Done"
|
||||
send "commission\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x00"
|
||||
@@ -49,8 +44,7 @@ expect_line "\tVALUE:\t0x00"
|
||||
send "decommission\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
|
||||
send "exit\n"
|
||||
expect eof
|
||||
dispose_tcat_client 1
|
||||
|
||||
switch_node 1
|
||||
send "tcat stop\n"
|
||||
@@ -62,3 +56,5 @@ expect_line "Error 23: NotFound"
|
||||
send "networkkey\n"
|
||||
expect_line "00000000000000000000000000000000"
|
||||
expect_line "Done"
|
||||
|
||||
dispose_all
|
||||
|
||||
Executable
+83
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/expect -f
|
||||
#
|
||||
# Copyright (c) 2024, The OpenThread Authors.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. Neither the name of the copyright holder nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
source "tests/scripts/expect/_common.exp"
|
||||
|
||||
spawn_node 1 "cli"
|
||||
|
||||
spawn_tcat_client_for_node 1
|
||||
|
||||
send "commission\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x00"
|
||||
|
||||
send "random_challenge\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_PAYLOAD"
|
||||
expect_line "\tLEN:\t8"
|
||||
|
||||
send "peer_pskd_hash JJJJJJ\n"
|
||||
expect_line "Requested hash is valid."
|
||||
expect_line "\tTYPE:\tRESPONSE_W_PAYLOAD"
|
||||
expect_line "\tLEN:\t32"
|
||||
|
||||
send "present_hash pskd JJJJJJ\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x00"
|
||||
|
||||
send "present_hash pskd AAAA\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x07"
|
||||
|
||||
send "present_hash install InstallCode\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x00"
|
||||
|
||||
send "present_hash install Code\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x07"
|
||||
|
||||
send "present_hash pskc 5e9b9b360f80b88be2603fb0135c8d65\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x00"
|
||||
|
||||
send "present_hash pskc aaaa\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
expect_line "\tVALUE:\t0x07"
|
||||
|
||||
dispose_tcat_client 1
|
||||
|
||||
switch_node 1
|
||||
send "tcat stop\n"
|
||||
expect_line "Done"
|
||||
|
||||
send "networkkey\n"
|
||||
expect_line "fda7c771a27202e232ecd04cf934f476"
|
||||
expect_line "Done"
|
||||
|
||||
dispose_all
|
||||
@@ -31,13 +31,7 @@ source "tests/scripts/expect/_common.exp"
|
||||
|
||||
spawn_node 1 "cli"
|
||||
|
||||
switch_node 1
|
||||
send "tcat start\n"
|
||||
expect_line "Done"
|
||||
|
||||
spawn python "tools/tcat_ble_client/bbtc.py" --simulation 1 --cert_path "tools/tcat_ble_client/auth"
|
||||
set py_client "$spawn_id"
|
||||
expect_line "Done"
|
||||
spawn_tcat_client_for_node 1
|
||||
|
||||
send "network_name\n"
|
||||
expect_line "\tTYPE:\tRESPONSE_W_STATUS"
|
||||
@@ -83,8 +77,7 @@ expect_line "\tTYPE:\tRESPONSE_W_PAYLOAD"
|
||||
expect_line "\tLEN:\t9"
|
||||
expect_line "\tVALUE:\t0x64756d6d795f75726c"
|
||||
|
||||
send "exit\n"
|
||||
expect eof
|
||||
dispose_tcat_client 1
|
||||
|
||||
switch_node 1
|
||||
send "tcat stop\n"
|
||||
@@ -96,3 +89,5 @@ expect_line "Done"
|
||||
|
||||
wait_for "state" "leader"
|
||||
expect_line "Done"
|
||||
|
||||
dispose_all
|
||||
|
||||
Reference in New Issue
Block a user