1#!/usr/bin/expect -f 2# 3# Copyright (c) 2020, The OpenThread Authors. 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 3. Neither the name of the copyright holder nor the 14# names of its contributors may be used to endorse or promote products 15# derived from this software without specific prior written permission. 16# 17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27# POSSIBILITY OF SUCH DAMAGE. 28# 29 30source "tests/scripts/expect/_common.exp" 31 32spawn_node 1 33 34send "ifconfig up\n" 35expect_line "Done" 36send "thread start\n" 37expect_line "Done" 38 39send "channel monitor stop\n" 40expect_line "Done" 41send "channel monitor\n" 42expect "enabled: 0" 43expect_line "Done" 44send "channel monitor start\n" 45expect_line "Done" 46send "channel monitor\n" 47expect "enabled: 1" 48expect -re {interval: \d+} 49expect -re {threshold: -?\d+} 50expect -re {window: \d+} 51expect -re {count: \d+} 52expect "occupancies:" 53for {set i 11} {$i <= 26} {incr i} { 54 expect -re "ch $i \\(0x\[0-9a-f\]{4}\\) +\\d+\\.\\d+% busy" 55} 56expect_line "Done" 57send "channel monitor something_invalid\n" 58expect "Error 7: InvalidArgs" 59 60send "channel manager change 15\n" 61expect_line "Done" 62send "channel manager\n" 63expect "channel: 15" 64expect "auto: 0" 65expect_line "Done" 66send "channel manager select 1\n" 67expect "Error 13: InvalidState" # Because of insufficient channel monitor samples 68send "channel manager delay 200\n" 69expect_line "Done" 70send "channel manager interval 20000\n" 71expect_line "Done" 72send "channel manager supported 0x7fff800\n" 73expect_line "Done" 74send "channel manager favored 0x7fff800\n" 75expect_line "Done" 76send "channel manager auto 1\n" 77expect_line "Done" 78send "channel manager\n" 79expect "channel: 15" 80expect "auto: 1" 81expect "delay: 200" 82expect "interval: 20000" 83expect "supported: { 11-26 }" 84expect "favored: { 11-26 }" 85expect_line "Done" 86send "channel manager something_invalid\n" 87expect "Error 7: InvalidArgs" 88 89dispose_all 90