1*9c5db199SXin Li# Lint as: python3 2*9c5db199SXin Li# Copyright 2022 The Chromium OS Authors. All rights reserved. 3*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be 4*9c5db199SXin Li# found in the LICENSE file. 5*9c5db199SXin Li 6*9c5db199SXin Liimport unittest 7*9c5db199SXin Lifrom autotest_lib.client.cros.bluetooth.hcitool import HciToolParser 8*9c5db199SXin Li 9*9c5db199SXin Li 10*9c5db199SXin Liclass HciToolParserTest(unittest.TestCase): 11*9c5db199SXin Li """Unit test for class HciToolParser.""" 12*9c5db199SXin Li 13*9c5db199SXin Li def test_parse_output(self): 14*9c5db199SXin Li VALID_OUTPUT = ('< HCI Command: ogf 0x04, ocf 0x0003, plen 0\n' 15*9c5db199SXin Li '> HCI Event: 0x0e plen 12\n' 16*9c5db199SXin Li ' 01 03 10 00 BF FE 0F FE DB FF 7B 87') 17*9c5db199SXin Li 18*9c5db199SXin Li VALID_EVENT_TYPE = '0x0e' 19*9c5db199SXin Li VALID_PLEN_VALUE = 9 20*9c5db199SXin Li VALID_PASS_STATUS_CODE = 0 21*9c5db199SXin Li VALID_PAYLOAD = bytearray.fromhex('00 BF FE 0F FE DB FF 7B 87') 22*9c5db199SXin Li 23*9c5db199SXin Li parser_output = HciToolParser.parse_output(VALID_OUTPUT) 24*9c5db199SXin Li event_type, plen_value, status, payload = parser_output 25*9c5db199SXin Li self.assertEqual(event_type, VALID_EVENT_TYPE) 26*9c5db199SXin Li self.assertEqual(plen_value, VALID_PLEN_VALUE) 27*9c5db199SXin Li self.assertEqual(status, VALID_PASS_STATUS_CODE) 28*9c5db199SXin Li self.assertEqual(payload, VALID_PAYLOAD) 29