1#!/usr/bin/env python3 2# 3# Copyright (c) 2021, 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# 29import logging 30import unittest 31 32import thread_cert 33 34# Test description: 35# This test verifies `otbr-agent --radio-version` works. 36# 37# Topology: 38# ----------------(eth)-------------------- 39# | 40# BR 41# 42 43BR = 1 44 45 46class SingleBorderRouter(thread_cert.TestCase): 47 USE_MESSAGE_FACTORY = False 48 49 TOPOLOGY = { 50 BR: { 51 'name': 'BR', 52 'is_otbr': True, 53 'version': '1.2', 54 }, 55 } 56 57 def test(self): 58 br = self.nodes[BR] 59 rcp_version = br.get_rcp_version() 60 logging.info('RCP version: %s', rcp_version) 61 br.stop_otbr_service() 62 63 radio_version_output = br.bash("/usr/sbin/otbr-agent -d7 -v spinel+hdlc+uart:///dev/ttyUSB0 --radio-version") 64 logging.info("--radio-version output: %r", radio_version_output) 65 self.assertEqual(1, len(radio_version_output)) 66 self.assertEqual(rcp_version, radio_version_output[0].strip()) 67 68 69if __name__ == '__main__': 70 unittest.main() 71