xref: /aosp_15_r20/external/autotest/client/cros/bluetooth/hcitool_unittest.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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