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 16# Import test modules. 17import asha_test 18import classic_ssp_test 19import example 20import gatt_test 21import le_advertising_test 22import smp_test 23 24_TEST_CLASSES_LIST = [ 25 example.ExampleTest, 26 asha_test.ASHATest, 27 gatt_test.GattTest, 28 le_advertising_test.LeAdvertisingTest, 29 smp_test.SmpTest, 30 classic_ssp_test.ClassicSspTest, 31] 32 33 34def _parse_cli_args() -> Tuple[Namespace, List[str]]: 35 parser = argparse.ArgumentParser(description='Avatar test runner.') 36 parser.add_argument('-o', '--log_path', type=str, metavar='<PATH>', help='Path to the test configuration file.') 37 return parser.parse_known_args() 38 39 40if __name__ == "__main__": 41 logging.basicConfig(level=logging.INFO) 42 43 # This is a hack for `tradefed` because of `b/166468397`. 44 if '--' in sys.argv: 45 index = sys.argv.index('--') 46 sys.argv = sys.argv[:1] + sys.argv[index + 1 :] 47 48 # Enable bumble snoop logger. 49 ns, argv = _parse_cli_args() 50 if ns.log_path: 51 os.environ.setdefault('BUMBLE_SNOOPER', f'btsnoop:file:{ns.log_path}/{_BUMBLE_BTSNOOP_FMT}') 52 53 # Run the test suite. 54 suite_runner.run_suite(_TEST_CLASSES_LIST, argv) # type: ignore 55