72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
|
"""Suite collecting bluetooth test classes for acceptance testing."""
|
||
|
|
||
|
import logging
|
||
|
|
||
|
from mobly import test_runner_suite
|
||
|
|
||
|
from blueberry.tests.a2dp import bluetooth_a2dp_test
|
||
|
from blueberry.tests.avrcp import bluetooth_avrcp_test
|
||
|
from blueberry.tests.connectivity import ble_pairing_test
|
||
|
from blueberry.tests.connectivity import bluetooth_pairing_test
|
||
|
from blueberry.tests.hfp import bluetooth_hfp_test
|
||
|
from blueberry.tests.map import bluetooth_map_test
|
||
|
from blueberry.tests.opp import bluetooth_opp_test
|
||
|
from blueberry.tests.pan import bluetooth_pan_test
|
||
|
from blueberry.tests.pbap import bluetooth_pbap_test
|
||
|
|
||
|
# Test classes for the Bluetooth acceptance suite.
|
||
|
TEST_CLASSES = [
|
||
|
bluetooth_pairing_test.BluetoothPairingTest,
|
||
|
ble_pairing_test.BlePairingTest,
|
||
|
bluetooth_a2dp_test.BluetoothA2dpTest,
|
||
|
bluetooth_avrcp_test.BluetoothAvrcpTest,
|
||
|
bluetooth_hfp_test.BluetoothHfpTest,
|
||
|
bluetooth_map_test.BluetoothMapTest,
|
||
|
bluetooth_pbap_test.BluetoothPbapTest,
|
||
|
bluetooth_opp_test.BluetoothOppTest,
|
||
|
bluetooth_pan_test.BluetoothPanTest
|
||
|
]
|
||
|
|
||
|
|
||
|
class BluetoothAcceptanceSuite(mobly_g3_suite.BaseSuite):
|
||
|
"""Bluetooth Acceptance Suite.
|
||
|
|
||
|
Usage of Test selector:
|
||
|
Add the parameter "acceptance_test_selector" in the Mobly configuration, it's
|
||
|
value is like "test_method_1,test_method_2,...". If this parameter is not
|
||
|
used, all tests will be running.
|
||
|
"""
|
||
|
|
||
|
def setup_suite(self, config):
|
||
|
selected_tests = None
|
||
|
selector = config.user_params.get('acceptance_test_selector')
|
||
|
if selector:
|
||
|
selected_tests = selector.split(',')
|
||
|
logging.info('Selected tests: %s', ' '.join(selected_tests))
|
||
|
# Enable all Bluetooth logging in the first test.
|
||
|
first_test_config = config.copy()
|
||
|
first_test_config.user_params.update({
|
||
|
'enable_hci_snoop_logging': 1,
|
||
|
})
|
||
|
for index, clazz in enumerate(TEST_CLASSES):
|
||
|
if selected_tests:
|
||
|
matched_tests = None
|
||
|
# Gets the same elements between selected_tests and dir(clazz).
|
||
|
matched_tests = list(set(selected_tests) & set(dir(clazz)))
|
||
|
# Adds the test class if it contains the selected tests.
|
||
|
if matched_tests:
|
||
|
self.add_test_class(
|
||
|
clazz=clazz,
|
||
|
config=first_test_config if index == 0 else config,
|
||
|
tests=matched_tests)
|
||
|
logging.info('Added the tests of "%s": %s', clazz.__name__,
|
||
|
' '.join(matched_tests))
|
||
|
else:
|
||
|
self.add_test_class(
|
||
|
clazz=clazz,
|
||
|
config=first_test_config if index == 0 else config)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
mobly_g3_suite.main()
|