blob: faa1151c77b726f29ec4832745cd5c600a92f5cc [file] [log] [blame]
"""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_all_bluetooth_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()