• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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