1*4a64e381SAndroid Build Coastguard Worker#!/bin/bash 2*4a64e381SAndroid Build Coastguard Worker# 3*4a64e381SAndroid Build Coastguard Worker# Copyright (c) 2020, The OpenThread Authors. 4*4a64e381SAndroid Build Coastguard Worker# All rights reserved. 5*4a64e381SAndroid Build Coastguard Worker# 6*4a64e381SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without 7*4a64e381SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions are met: 8*4a64e381SAndroid Build Coastguard Worker# 1. Redistributions of source code must retain the above copyright 9*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer. 10*4a64e381SAndroid Build Coastguard Worker# 2. Redistributions in binary form must reproduce the above copyright 11*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer in the 12*4a64e381SAndroid Build Coastguard Worker# documentation and/or other materials provided with the distribution. 13*4a64e381SAndroid Build Coastguard Worker# 3. Neither the name of the copyright holder nor the 14*4a64e381SAndroid Build Coastguard Worker# names of its contributors may be used to endorse or promote products 15*4a64e381SAndroid Build Coastguard Worker# derived from this software without specific prior written permission. 16*4a64e381SAndroid Build Coastguard Worker# 17*4a64e381SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18*4a64e381SAndroid Build Coastguard Worker# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19*4a64e381SAndroid Build Coastguard Worker# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20*4a64e381SAndroid Build Coastguard Worker# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21*4a64e381SAndroid Build Coastguard Worker# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22*4a64e381SAndroid Build Coastguard Worker# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23*4a64e381SAndroid Build Coastguard Worker# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*4a64e381SAndroid Build Coastguard Worker# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25*4a64e381SAndroid Build Coastguard Worker# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26*4a64e381SAndroid Build Coastguard Worker# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27*4a64e381SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE. 28*4a64e381SAndroid Build Coastguard Worker# 29*4a64e381SAndroid Build Coastguard Worker# Test otbr rest server 30*4a64e381SAndroid Build Coastguard Worker# 31*4a64e381SAndroid Build Coastguard Worker 32*4a64e381SAndroid Build Coastguard Workerset -euxo pipefail 33*4a64e381SAndroid Build Coastguard Worker 34*4a64e381SAndroid Build Coastguard Workeron_exit() 35*4a64e381SAndroid Build Coastguard Worker{ 36*4a64e381SAndroid Build Coastguard Worker local status=$? 37*4a64e381SAndroid Build Coastguard Worker 38*4a64e381SAndroid Build Coastguard Worker sudo killall otbr-agent || true 39*4a64e381SAndroid Build Coastguard Worker sudo killall expect || true 40*4a64e381SAndroid Build Coastguard Worker sudo killall ot-ctl || true 41*4a64e381SAndroid Build Coastguard Worker sudo killall ot-cli-ftd || true 42*4a64e381SAndroid Build Coastguard Worker sudo killall ot-cli-mtd || true 43*4a64e381SAndroid Build Coastguard Worker 44*4a64e381SAndroid Build Coastguard Worker return "${status}" 45*4a64e381SAndroid Build Coastguard Worker} 46*4a64e381SAndroid Build Coastguard Worker 47*4a64e381SAndroid Build Coastguard Workermain() 48*4a64e381SAndroid Build Coastguard Worker{ 49*4a64e381SAndroid Build Coastguard Worker sudo "${CMAKE_BINARY_DIR}"/src/agent/otbr-agent -d 7 -v -I wpan0 "spinel+hdlc+forkpty://$(command -v ot-rcp)?forkpty-arg=1" & 50*4a64e381SAndroid Build Coastguard Worker sleep 1 51*4a64e381SAndroid Build Coastguard Worker sudo expect <<EOF & 52*4a64e381SAndroid Build Coastguard Workerspawn ${CMAKE_BINARY_DIR}/third_party/openthread/repo/src/posix/ot-ctl 53*4a64e381SAndroid Build Coastguard Workersend "dataset init new\r\n" 54*4a64e381SAndroid Build Coastguard Workerexpect "Done" 55*4a64e381SAndroid Build Coastguard Workersend "dataset commit active\r\n" 56*4a64e381SAndroid Build Coastguard Workerexpect "Done" 57*4a64e381SAndroid Build Coastguard Workersend "ifconfig up\r\n" 58*4a64e381SAndroid Build Coastguard Workerexpect "Done" 59*4a64e381SAndroid Build Coastguard Workersend "thread start\r\n" 60*4a64e381SAndroid Build Coastguard Workerexpect "Done" 61*4a64e381SAndroid Build Coastguard Workersend "srp server disable\r\n" 62*4a64e381SAndroid Build Coastguard Workerexpect "Done" 63*4a64e381SAndroid Build Coastguard Workerwait 64*4a64e381SAndroid Build Coastguard WorkerEOF 65*4a64e381SAndroid Build Coastguard Worker trap on_exit EXIT 66*4a64e381SAndroid Build Coastguard Worker sleep 12 67*4a64e381SAndroid Build Coastguard Worker sudo python3 "${CMAKE_CURRENT_SOURCE_DIR}"/test_rest.py 68*4a64e381SAndroid Build Coastguard Worker} 69*4a64e381SAndroid Build Coastguard Worker 70*4a64e381SAndroid Build Coastguard Workermain "$@" 71