diff --git a/tests/scripts/expect/cli-channel.exp b/tests/scripts/expect/cli-channel.exp new file mode 100755 index 000000000..21ed1625a --- /dev/null +++ b/tests/scripts/expect/cli-channel.exp @@ -0,0 +1,93 @@ +#!/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" + +spawn $env(OT_COMMAND) 1 +set timeout 1 +expect_after { + timeout { exit 1 } +} + +send "ifconfig up\n" +expect "Done" +send "thread start\n" +expect "Done" + +send "channel monitor stop\n" +expect "Done" +send "channel monitor\n" +expect "enabled: 0" +expect "Done" +send "channel monitor start\n" +expect "Done" +send "channel monitor\n" +expect "enabled: 1" +expect -re {interval: \d+} +expect -re {threshold: -?\d+} +expect -re {window: \d+} +expect -re {count: \d+} +expect "occupancies:" +for {set i 11} {$i <= 26} {incr i} { + expect -re "ch $i \\(0x\[0-9a-f\]{4}\\) +\\d+\\.\\d+% busy" +} +expect "Done" +send "channel monitor something_invalid\n" +expect "Error 7: InvalidArgs" + +send "channel manager change 15\n" +expect "Done" +send "channel manager\n" +expect "channel: 15" +expect "auto: 0" +expect "Done" +send "channel manager select 1\n" +expect "Error 13: InvalidState" # Because of insufficient channel monitor samples +send "channel manager delay 200\n" +expect "Done" +send "channel manager interval 20000\n" +expect "Done" +send "channel manager supported 0x7fff800\n" +expect "Done" +send "channel manager favored 0x7fff800\n" +expect "Done" +send "channel manager auto 1\n" +expect "Done" +send "channel manager\n" +expect "channel: 15" +expect "auto: 1" +expect "delay: 200" +expect "interval: 20000" +expect "supported: { 11-26}" +expect "favored: { 11-26}" +expect "Done" +send "channel manager something_invalid\n" +expect "Error 7: InvalidArgs" + +dispose diff --git a/tests/scripts/expect/cli-coex.exp b/tests/scripts/expect/cli-coex.exp new file mode 100755 index 000000000..9eeae2914 --- /dev/null +++ b/tests/scripts/expect/cli-coex.exp @@ -0,0 +1,74 @@ +#!/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" + +spawn $env(OT_COMMAND) 1 +set timeout 1 +expect_after { + timeout { exit 1 } +} + +send "coex disable\n" +expect "Done" +send "coex\n" +expect "Disabled" +expect "Done" +send "coex enable\n" +expect "Done" +send "coex\n" +expect "Enabled" +expect "Done" +send "coex metrics\n" +expect -re {Stopped: (true|false)} +expect -re {Grant Glitch: \d+} +expect "Transmit metrics" +expect -re { Request: \d+} +expect -re { Grant Immediate: \d+} +expect -re { Grant Wait: \d+} +expect -re { Grant Wait Activated: \d+} +expect -re { Grant Wait Timeout: \d+} +expect -re { Grant Deactivated During Request: \d+} +expect -re { Delayed Grant: \d+} +expect -re { Average Request To Grant Time: \d+} +expect "Receive metrics" +expect -re { Request: \d+} +expect -re { Grant Immediate: \d+} +expect -re { Grant Wait: \d+} +expect -re { Grant Wait Activated: \d+} +expect -re { Grant Wait Timeout: \d+} +expect -re { Grant Deactivated During Request: \d+} +expect -re { Delayed Grant: \d+} +expect -re { Average Request To Grant Time: \d+} +expect -re { Grant None: \d+} +expect "Done" +send "coex something_invalid\n" +expect "Error 7: InvalidArgs" + +dispose diff --git a/tests/scripts/expect/cli-scan.exp b/tests/scripts/expect/cli-scan-discover.exp similarity index 86% rename from tests/scripts/expect/cli-scan.exp rename to tests/scripts/expect/cli-scan-discover.exp index 27cd7bcf9..16f8b3d96 100755 --- a/tests/scripts/expect/cli-scan.exp +++ b/tests/scripts/expect/cli-scan-discover.exp @@ -77,6 +77,17 @@ for {set i 11} {$i <= 26} {incr i} { } expect "Done" +set spawn_id $spawn_3 +send "ifconfig up\n" +expect "Done" +send "discover $channel\n" +expect "| J | Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI |" +expect "+---+------------------+------------------+------+------------------+----+-----+-----+" +wait_for "" "\\| \\d \\| $network +\\| $extpan \\| $pan \\| $extaddr \\| +$channel \\| +-?\\d+ \\| +\\d \\|" +wait_for "" "Done" +send "discover something_invalid\n" +expect "Error 7: InvalidArgs" + set spawn_id $spawn_3 dispose