1import site 2 3site.main() 4 5import argparse 6import logging 7import os 8import sys 9 10from argparse import Namespace 11from mobly import suite_runner 12from typing import List, Tuple 13 14_BUMBLE_BTSNOOP_FMT = 'bumble_btsnoop_{pid}_{instance}.log' 15 16import a2dp_test 17 18# Import test cases modules. 19import aics_test 20import asha_test 21import avatar.cases.host_test 22import avatar.cases.le_host_test 23import avatar.cases.le_security_test 24import avatar.cases.security_test 25import gatt_test 26import hap_test 27import hfpclient_test 28from pairing import _test_class_list as _pairing_test_class_list 29import sdp_test 30 31_TEST_CLASSES_LIST = [ 32 avatar.cases.host_test.HostTest, 33 avatar.cases.le_host_test.LeHostTest, 34 avatar.cases.security_test.SecurityTest, 35 avatar.cases.le_security_test.LeSecurityTest, 36 a2dp_test.A2dpTest, 37 aics_test.AicsTest, 38 sdp_test.SdpTest, 39 gatt_test.GattTest, 40 hap_test.HapTest, 41 asha_test.AshaTest, 42 hfpclient_test.HfpClientTest, 43] + _pairing_test_class_list 44 45 46def _parse_cli_args() -> Tuple[Namespace, List[str]]: 47 parser = argparse.ArgumentParser(description='Avatar test runner.') 48 parser.add_argument( 49 '-o', 50 '--log_path', 51 type=str, 52 metavar='<PATH>', 53 help='Path to the test configuration file.', 54 ) 55 return parser.parse_known_args() 56 57 58if __name__ == '__main__': 59 logging.basicConfig(level=logging.INFO) 60 61 # This is a hack for `tradefed` because of `b/166468397`. 62 if '--' in sys.argv: 63 index = sys.argv.index('--') 64 sys.argv = sys.argv[:1] + sys.argv[index + 1:] 65 66 # Enable bumble snoop logger. 67 ns, argv = _parse_cli_args() 68 if ns.log_path: 69 os.environ.setdefault('BUMBLE_SNOOPER', f'btsnoop:file:{ns.log_path}/{_BUMBLE_BTSNOOP_FMT}') 70 71 # Run the test suite. 72 suite_runner.run_suite(_TEST_CLASSES_LIST, argv) # type: ignore 73