300 lines
9.0 KiB
Plaintext
Executable File
300 lines
9.0 KiB
Plaintext
Executable File
#!/usr/bin/expect -f
|
|
#
|
|
# Copyright (c) 2020, 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"
|
|
source "tests/scripts/expect/_multinode.exp"
|
|
|
|
setup_two_nodes
|
|
|
|
switch_node 1
|
|
send "dataset active\n"
|
|
expect -re {Active Timestamp: \d+}
|
|
expect -re {Channel: (\d+)}
|
|
set channel $expect_out(1,string)
|
|
expect -re {Channel Mask: 0x[0-9a-f]{8}}
|
|
expect -re {Ext PAN ID: [0-9a-f]{16}}
|
|
expect -re {Mesh Local Prefix: ([0-9a-f]{1,4}:){3}[0-9a-f]{1,4}::\/64}
|
|
expect -re {Network Key: [0-9a-f]{32}}
|
|
expect -re {Network Name: [^\r\n]+}
|
|
expect -re {PAN ID: 0x[0-9a-f]{4}}
|
|
expect -re {PSKc: [0-9a-f]{32}}
|
|
expect -re {Security Policy: \d+ o?n?r?c?b?}
|
|
send "dataset pending\n"
|
|
expect "Error 23: NotFound"
|
|
send "dataset init active\n"
|
|
expect_line "Done"
|
|
send "dataset activetimestamp 100\n"
|
|
expect_line "Done"
|
|
send "dataset activetimestamp\n"
|
|
expect "100"
|
|
expect_line "Done"
|
|
if {$channel == 11} {
|
|
send "dataset channel 18\n"
|
|
expect_line "Done"
|
|
send "dataset channel\n"
|
|
expect "18"
|
|
expect_line "Done"
|
|
} else {
|
|
send "dataset channel 11\n"
|
|
expect_line "Done"
|
|
send "dataset channel\n"
|
|
expect "11"
|
|
expect_line "Done"
|
|
}
|
|
send "dataset channelmask 0x03fff800\n"
|
|
expect_line "Done"
|
|
send "dataset channelmask\n"
|
|
expect "0x03fff800"
|
|
expect_line "Done"
|
|
send "dataset extpanid aabbccddeeff0011\n"
|
|
expect_line "Done"
|
|
send "dataset extpanid\n"
|
|
expect "aabbccddeeff0011"
|
|
expect_line "Done"
|
|
send "dataset networkkey aabbccddeeff00112233445566778899\n"
|
|
expect_line "Done"
|
|
send "dataset networkkey\n"
|
|
expect "aabbccddeeff00112233445566778899"
|
|
expect_line "Done"
|
|
send "dataset meshlocalprefix fdde:4860::\n"
|
|
expect_line "Done"
|
|
send "dataset meshlocalprefix\n"
|
|
expect "fdde:4860:0:0::/64"
|
|
expect_line "Done"
|
|
send "dataset networkname OT-network\n"
|
|
expect_line "Done"
|
|
send "dataset networkname\n"
|
|
expect "OT-network"
|
|
expect_line "Done"
|
|
send "dataset panid 0xface\n"
|
|
expect_line "Done"
|
|
send "dataset panid\n"
|
|
expect "0xface"
|
|
expect_line "Done"
|
|
send "dataset pskc 00112233445566778899aabbccddeeff\n"
|
|
expect_line "Done"
|
|
send "dataset pskc\n"
|
|
expect "00112233445566778899aabbccddeeff"
|
|
expect_line "Done"
|
|
send "dataset securitypolicy 678 onrc\n"
|
|
expect_line "Done"
|
|
send "dataset securitypolicy\n"
|
|
expect "678 onrc"
|
|
expect_line "Done"
|
|
send "dataset pendingtimestamp 100\n"
|
|
expect_line "Done"
|
|
send "dataset pendingtimestamp\n"
|
|
expect "100"
|
|
expect_line "Done"
|
|
send "dataset delay 30000\n"
|
|
expect_line "Done"
|
|
send "dataset delay\n"
|
|
expect "30000"
|
|
expect_line "Done"
|
|
send "dataset commit pending\n"
|
|
expect_line "Done"
|
|
send "dataset pending\n"
|
|
expect "Pending Timestamp: 100"
|
|
expect "Active Timestamp: 100"
|
|
if {$channel == 11} {
|
|
expect "Channel: 18"
|
|
} else {
|
|
expect "Channel: 11"
|
|
}
|
|
expect "Channel Mask: 0x03fff800"
|
|
expect -re {Delay: \d+}
|
|
expect "Ext PAN ID: aabbccddeeff0011"
|
|
expect "Mesh Local Prefix: fdde:4860:0:0::/64"
|
|
expect "Network Key: aabbccddeeff00112233445566778899"
|
|
expect "Network Name: OT-network"
|
|
expect "PAN ID: 0xface"
|
|
expect "PSKc: 00112233445566778899aabbccddeeff"
|
|
expect "Security Policy: 678 onrc"
|
|
expect_line "Done"
|
|
send "dataset pending -x\n"
|
|
expect "dataset pending -x"
|
|
set dataset_tlvs [expect_line {([0-9a-f]+)}]
|
|
expect_line "Done"
|
|
send "dataset clear\n"
|
|
expect_line "Done"
|
|
send "dataset init tlvs $dataset_tlvs\n"
|
|
expect_line "Done"
|
|
send "dataset\n"
|
|
expect "Pending Timestamp: 100"
|
|
expect "Active Timestamp: 100"
|
|
if {$channel == 11} {
|
|
expect "Channel: 18"
|
|
} else {
|
|
expect "Channel: 11"
|
|
}
|
|
expect "Channel Mask: 0x03fff800"
|
|
expect -re {Delay: \d+}
|
|
expect "Ext PAN ID: aabbccddeeff0011"
|
|
expect "Mesh Local Prefix: fdde:4860:0:0::/64"
|
|
expect "Network Key: aabbccddeeff00112233445566778899"
|
|
expect "Network Name: OT-network"
|
|
expect "PAN ID: 0xface"
|
|
expect "PSKc: 00112233445566778899aabbccddeeff"
|
|
expect "Security Policy: 678 onrc"
|
|
expect_line "Done"
|
|
|
|
sleep 30
|
|
|
|
switch_node 2
|
|
wait_for "dataset active" "Active Timestamp: 100"
|
|
expect_line "Done"
|
|
send "dataset active\n"
|
|
expect "Active Timestamp: 100"
|
|
if {$channel == 11} {
|
|
expect "Channel: 18"
|
|
} else {
|
|
expect "Channel: 11"
|
|
}
|
|
expect "Channel Mask: 0x03fff800"
|
|
expect "Ext PAN ID: aabbccddeeff0011"
|
|
expect "Mesh Local Prefix: fdde:4860:0:0::/64"
|
|
expect "Network Key: aabbccddeeff00112233445566778899"
|
|
expect "Network Name: OT-network"
|
|
expect "PAN ID: 0xface"
|
|
expect "PSKc: 00112233445566778899aabbccddeeff"
|
|
expect "Security Policy: 678 onrc"
|
|
expect_line "Done"
|
|
send "dataset clear\n"
|
|
expect_line "Done"
|
|
send "dataset init active\n"
|
|
expect_line "Done"
|
|
send "dataset\n"
|
|
expect "Active Timestamp: 100"
|
|
if {$channel == 11} {
|
|
expect "Channel: 18"
|
|
} else {
|
|
expect "Channel: 11"
|
|
}
|
|
expect "Channel Mask: 0x03fff800"
|
|
expect "Ext PAN ID: aabbccddeeff0011"
|
|
expect "Mesh Local Prefix: fdde:4860:0:0::/64"
|
|
expect "Network Key: aabbccddeeff00112233445566778899"
|
|
expect "Network Name: OT-network"
|
|
expect "PAN ID: 0xface"
|
|
expect "PSKc: 00112233445566778899aabbccddeeff"
|
|
expect "Security Policy: 678 onrc"
|
|
expect_line "Done"
|
|
send "dataset init pending\n"
|
|
expect "Error 23: NotFound"
|
|
|
|
switch_node 1
|
|
set addr [get_ipaddr mleid]
|
|
|
|
switch_node 2
|
|
send "dataset mgmtgetcommand active \
|
|
activetimestamp pendingtimestamp networkkey networkname extpanid \
|
|
localprefix delaytimer panid channel \
|
|
-x 000102030405060708090a0b0e0f0c333435 \
|
|
address $addr\n"
|
|
expect_line "Done"
|
|
send "dataset mgmtgetcommand pending \
|
|
activetimestamp pendingtimestamp networkkey networkname extpanid \
|
|
localprefix delaytimer panid channel \
|
|
-x 000102030405060708090a0b0e0f0c333435 \
|
|
address $addr\n"
|
|
expect_line "Done"
|
|
|
|
switch_node 1
|
|
send "dataset init active\n"
|
|
expect_line "Done"
|
|
send "dataset networkname Thread\\ 网络\n"
|
|
expect_line "Done"
|
|
send "dataset commit active\n"
|
|
expect_line "Done"
|
|
send "dataset active -x\n"
|
|
expect "54687265616420e7bd91e7bb9c" ;# UTF-8 of "Thread 网络"
|
|
expect_line "Done"
|
|
send "dataset active -x\n"
|
|
expect "dataset active -x"
|
|
expect -re {([0-9a-f]+)[\r\n]+Done}
|
|
set binary $expect_out(1,string)
|
|
send "dataset set pending $binary\n"
|
|
expect_line "Done"
|
|
send "dataset pending -x\n"
|
|
expect $binary
|
|
expect_line "Done"
|
|
send "dataset pending\n"
|
|
expect "Network Name: Thread 网络"
|
|
expect_line "Done"
|
|
send "dataset set active $binary\n"
|
|
expect_line "Done"
|
|
send "dataset mgmtsetcommand active activetimestamp 200 -x 030d54687265616420e7bd91e7bb9c\n"
|
|
expect_line "Done"
|
|
send "dataset active\n"
|
|
expect "Network Name: Thread 网络"
|
|
expect_line "Done"
|
|
send "dataset mgmtsetcommand active activetimestamp 210 -x 0301ff\n"
|
|
expect_line "Done"
|
|
send "dataset active\n"
|
|
expect "Active Timestamp: 200"
|
|
expect "Network Name: Thread 网络"
|
|
expect_line "Done"
|
|
send "dataset set active 03023432\n"
|
|
expect_line "Done"
|
|
send "dataset active\n"
|
|
expect "Network Name: 42"
|
|
expect_line "Done"
|
|
send "dataset set active 0301bf\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset help\n"
|
|
expect_line "Done"
|
|
send "dataset\n"
|
|
expect_line "Done"
|
|
send "dataset init something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset active something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset pending something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset commit something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset mgmtsetcommand something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset mgmtsetcommand active something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset mgmtgetcommand something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset mgmtgetcommand active something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset pskc -p 123456\n"
|
|
expect_line "Done"
|
|
send "dataset securitypolicy 678 something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset set something_invalid 00\n"
|
|
expect "Error 7: InvalidArgs"
|
|
send "dataset init tlvs something_invalid\n"
|
|
expect "Error 7: InvalidArgs"
|
|
|
|
dispose_all
|