From 14cea595a30abdda55876b3c410cd59fda95ff77 Mon Sep 17 00:00:00 2001 From: Zach Johnson Date: Wed, 26 Feb 2020 13:24:48 -0800 Subject: [PATCH] Simplify cert test setup Pass the dut_module and cert_module as arguments to setting up the class. Use named arguments for clarity. Test: cert/run --host Change-Id: Ica71783bee2fac28fdc60b8e6e48d84890821384 --- gd/cert/cert_self_test.py | 4 ++-- gd/cert/gd_base_test_facade_only.py | 24 ++++++++++++++++++++++- gd/hal/cert/simple_hal_test.py | 31 +++++++++--------------------- gd/hci/cert/acl_manager_test.py | 21 ++------------------ gd/hci/cert/controller_test.py | 21 +++----------------- gd/hci/cert/direct_hci_test.py | 21 ++++---------------- gd/hci/cert/le_acl_manager_test.py | 20 ++----------------- gd/hci/cert/le_advertising_manager_test.py | 20 ++----------------- gd/hci/cert/le_scanning_manager_test.py | 21 +++----------------- gd/l2cap/classic/cert/l2cap_test.py | 21 ++++---------------- gd/neighbor/cert/neighbor_test.py | 20 ++----------------- gd/security/cert/simple_security_test.py | 18 ++++------------- gd/shim/cert/stack_test.py | 16 ++------------- 13 files changed, 62 insertions(+), 196 deletions(-) diff --git a/gd/cert/cert_self_test.py b/gd/cert/cert_self_test.py index 86edb4c2c..4d0fc1658 100644 --- a/gd/cert/cert_self_test.py +++ b/gd/cert/cert_self_test.py @@ -19,7 +19,7 @@ import time from mobly import asserts from datetime import datetime, timedelta -from cert.gd_base_test_facade_only import GdFacadeOnlyBaseTestClass +from acts.base_test import BaseTestClass from cert.event_callback_stream import EventCallbackStream from cert.event_asserts import EventAsserts @@ -86,7 +86,7 @@ class FetchEvents: return None -class CertSelfTest(GdFacadeOnlyBaseTestClass): +class CertSelfTest(BaseTestClass): def setup_test(self): return True diff --git a/gd/cert/gd_base_test_facade_only.py b/gd/cert/gd_base_test_facade_only.py index 7842044d3..8c8eddc98 100644 --- a/gd/cert/gd_base_test_facade_only.py +++ b/gd/cert/gd_base_test_facade_only.py @@ -15,6 +15,7 @@ # limitations under the License. from acts.base_test import BaseTestClass +from facade import rootservice_pb2 as facade_rootservice import importlib import logging @@ -27,7 +28,9 @@ ANDROID_BUILD_TOP = os.environ.get('ANDROID_BUILD_TOP') class GdFacadeOnlyBaseTestClass(BaseTestClass): - def setup_class(self): + def setup_class(self, dut_module, cert_module): + self.dut_module = dut_module + self.cert_module = cert_module gd_devices = self.controller_configs.get("GdDevice") @@ -71,3 +74,22 @@ class GdFacadeOnlyBaseTestClass(BaseTestClass): logging.error( "rootcanal stopped with code: %d" % rootcanal_return_code) return False + + def setup_test(self): + self.device_under_test.rootservice.StartStack( + facade_rootservice.StartStackRequest( + module_under_test=facade_rootservice.BluetoothModule.Value( + self.dut_module),)) + self.cert_device.rootservice.StartStack( + facade_rootservice.StartStackRequest( + module_under_test=facade_rootservice.BluetoothModule.Value( + self.cert_module),)) + + self.device_under_test.wait_channel_ready() + self.cert_device.wait_channel_ready() + + def teardown_test(self): + self.device_under_test.rootservice.StopStack( + facade_rootservice.StopStackRequest()) + self.cert_device.rootservice.StopStack( + facade_rootservice.StopStackRequest()) diff --git a/gd/hal/cert/simple_hal_test.py b/gd/hal/cert/simple_hal_test.py index 7094787f3..320fbd3b6 100644 --- a/gd/hal/cert/simple_hal_test.py +++ b/gd/hal/cert/simple_hal_test.py @@ -28,6 +28,15 @@ import bluetooth_packets_python3 as bt_packets class SimpleHalTest(GdFacadeOnlyBaseTestClass): + def setup_class(self): + super().setup_class(dut_module='HAL', cert_module='HAL') + + def setup_test(self): + super().setup_test() + + self.send_dut_hci_command(hci_packets.ResetBuilder()) + self.send_cert_hci_command(hci_packets.ResetBuilder()) + def send_cert_hci_command(self, command): self.cert_device.hal.SendHciCommand( hal_facade_pb2.HciCommandPacket(payload=bytes(command.Serialize()))) @@ -60,28 +69,6 @@ class SimpleHalTest(GdFacadeOnlyBaseTestClass): self.device_under_test.hal.SendHciAcl( hal_facade_pb2.HciAclPacket(payload=concatenated)) - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice_pb2.StartStackRequest( - module_under_test=facade_rootservice_pb2.BluetoothModule.Value( - 'HAL'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice_pb2.StartStackRequest( - module_under_test=facade_rootservice_pb2.BluetoothModule.Value( - 'HAL'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() - - self.send_dut_hci_command(hci_packets.ResetBuilder()) - self.send_cert_hci_command(hci_packets.ResetBuilder()) - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice_pb2.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice_pb2.StopStackRequest()) - def test_none_event(self): with EventCallbackStream( self.device_under_test.hal.FetchHciEvent( diff --git a/gd/hci/cert/acl_manager_test.py b/gd/hci/cert/acl_manager_test.py index 1f25c7d51..39d1d8654 100644 --- a/gd/hci/cert/acl_manager_test.py +++ b/gd/hci/cert/acl_manager_test.py @@ -22,7 +22,6 @@ from cert.gd_base_test_facade_only import GdFacadeOnlyBaseTestClass from cert.event_callback_stream import EventCallbackStream from cert.event_asserts import EventAsserts from google.protobuf import empty_pb2 as empty_proto -from facade import rootservice_pb2 as facade_rootservice from hci.facade import acl_manager_facade_pb2 as acl_manager_facade from neighbor.facade import facade_pb2 as neighbor_facade from hci.facade import controller_facade_pb2 as controller_facade @@ -33,24 +32,8 @@ from bluetooth_packets_python3 import hci_packets class AclManagerTest(GdFacadeOnlyBaseTestClass): - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) + def setup_class(self): + super().setup_class(dut_module='HCI_INTERFACES', cert_module='HCI') def register_for_event(self, event_code): msg = hci_facade.EventCodeMsg(code=int(event_code)) diff --git a/gd/hci/cert/controller_test.py b/gd/hci/cert/controller_test.py index 4d10c8443..9933339b7 100644 --- a/gd/hci/cert/controller_test.py +++ b/gd/hci/cert/controller_test.py @@ -25,24 +25,9 @@ from hci.facade import controller_facade_pb2 as controller_facade class ControllerTest(GdFacadeOnlyBaseTestClass): - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) + def setup_class(self): + super().setup_class( + dut_module='HCI_INTERFACES', cert_module='HCI_INTERFACES') def test_get_addresses(self): cert_address_response = self.cert_device.hci_controller.GetMacAddress( diff --git a/gd/hci/cert/direct_hci_test.py b/gd/hci/cert/direct_hci_test.py index b9d86426d..bcfedf98c 100644 --- a/gd/hci/cert/direct_hci_test.py +++ b/gd/hci/cert/direct_hci_test.py @@ -32,29 +32,16 @@ import bluetooth_packets_python3 as bt_packets class DirectHciTest(GdFacadeOnlyBaseTestClass): + def setup_class(self): + super().setup_class(dut_module='HCI', cert_module='HAL') + def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HAL'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() + super().setup_test() self.cert_device.hal.SendHciCommand( hal_facade.HciCommandPacket( payload=bytes(hci_packets.ResetBuilder().Serialize()))) - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - def register_for_event(self, event_code): msg = hci_facade.EventCodeMsg(code=int(event_code)) self.device_under_test.hci.RegisterEventHandler(msg) diff --git a/gd/hci/cert/le_acl_manager_test.py b/gd/hci/cert/le_acl_manager_test.py index 1abf0a20a..c103b9a27 100644 --- a/gd/hci/cert/le_acl_manager_test.py +++ b/gd/hci/cert/le_acl_manager_test.py @@ -29,24 +29,8 @@ from bluetooth_packets_python3 import hci_packets class LeAclManagerTest(GdFacadeOnlyBaseTestClass): - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) + def setup_class(self): + super().setup_class(dut_module='HCI_INTERFACES', cert_module='HCI') def register_for_event(self, event_code): msg = hci_facade.EventCodeMsg(code=int(event_code)) diff --git a/gd/hci/cert/le_advertising_manager_test.py b/gd/hci/cert/le_advertising_manager_test.py index 7d163bfac..219f25505 100644 --- a/gd/hci/cert/le_advertising_manager_test.py +++ b/gd/hci/cert/le_advertising_manager_test.py @@ -32,24 +32,8 @@ from facade import common_pb2 as common class LeAdvertisingManagerTest(GdFacadeOnlyBaseTestClass): - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) + def setup_class(self): + super().setup_class(dut_module='HCI_INTERFACES', cert_module='HCI') def register_for_event(self, event_code): msg = hci_facade.EventCodeMsg(code=int(event_code)) diff --git a/gd/hci/cert/le_scanning_manager_test.py b/gd/hci/cert/le_scanning_manager_test.py index 5946a22a6..db7c1ff8a 100644 --- a/gd/hci/cert/le_scanning_manager_test.py +++ b/gd/hci/cert/le_scanning_manager_test.py @@ -32,24 +32,9 @@ from facade import common_pb2 as common class LeScanningManagerTest(GdFacadeOnlyBaseTestClass): - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) + def setup_class(self): + super().setup_class( + dut_module='HCI_INTERFACES', cert_module='HCI_INTERFACES') def register_for_event(self, event_code): msg = hci_facade.EventCodeMsg(code=int(event_code)) diff --git a/gd/l2cap/classic/cert/l2cap_test.py b/gd/l2cap/classic/cert/l2cap_test.py index 05771884a..2ea9fe4f2 100644 --- a/gd/l2cap/classic/cert/l2cap_test.py +++ b/gd/l2cap/classic/cert/l2cap_test.py @@ -35,18 +35,11 @@ SAMPLE_PACKET = l2cap_packets.CommandRejectNotUnderstoodBuilder(1) class L2capTest(GdFacadeOnlyBaseTestClass): + def setup_class(self): + super().setup_class(dut_module='L2CAP', cert_module='HCI_INTERFACES') + def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'L2CAP'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() + super().setup_test() self.device_under_test.address = self.device_under_test.hci_controller.GetMacAddress( empty_proto.Empty()).address @@ -255,12 +248,6 @@ class L2capTest(GdFacadeOnlyBaseTestClass): information_response = l2cap_packets.InformationResponseView( l2cap_control_view) - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - def _handle_control_packet(self, l2cap_packet): packet_bytes = l2cap_packet.payload l2cap_view = l2cap_packets.BasicFrameView( diff --git a/gd/neighbor/cert/neighbor_test.py b/gd/neighbor/cert/neighbor_test.py index e6003c2c1..ebc466b1b 100644 --- a/gd/neighbor/cert/neighbor_test.py +++ b/gd/neighbor/cert/neighbor_test.py @@ -32,24 +32,8 @@ import bluetooth_packets_python3 as bt_packets class NeighborTest(GdFacadeOnlyBaseTestClass): - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI_INTERFACES'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'HCI'),)) - - self.device_under_test.wait_channel_ready() - self.cert_device.wait_channel_ready() - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice.StopStackRequest()) + def setup_class(self): + super().setup_class(dut_module='HCI_INTERFACES', cert_module='HCI') def register_for_dut_event(self, event_code): msg = hci_facade.EventCodeMsg(code=int(event_code)) diff --git a/gd/security/cert/simple_security_test.py b/gd/security/cert/simple_security_test.py index ff7228e07..54db71222 100644 --- a/gd/security/cert/simple_security_test.py +++ b/gd/security/cert/simple_security_test.py @@ -37,15 +37,11 @@ import bluetooth_packets_python3 as bt_packets class SimpleSecurityTest(GdFacadeOnlyBaseTestClass): + def setup_class(self): + super().setup_class(dut_module='SECURITY', cert_module='L2CAP') + def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice_pb2.StartStackRequest( - module_under_test=facade_rootservice_pb2.BluetoothModule.Value( - 'SECURITY'),)) - self.cert_device.rootservice.StartStack( - facade_rootservice_pb2.StartStackRequest( - module_under_test=facade_rootservice_pb2.BluetoothModule.Value( - 'L2CAP'),)) + super().setup_test() self.device_under_test.address = self.device_under_test.controller_read_only_property.ReadLocalAddress( empty_proto.Empty()).address @@ -80,12 +76,6 @@ class SimpleSecurityTest(GdFacadeOnlyBaseTestClass): self.device_under_test.hci_controller.WriteLocalName( controller_facade.NameMsg(name=self.dut_name)) - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice_pb2.StopStackRequest()) - self.cert_device.rootservice.StopStack( - facade_rootservice_pb2.StopStackRequest()) - def tmp_register_for_event(self, event_code): msg = hci_facade.EventCodeMsg(code=int(event_code)) self.device_under_test.hci.RegisterEventHandler(msg) diff --git a/gd/shim/cert/stack_test.py b/gd/shim/cert/stack_test.py index ad4fb9b3d..2c9315a80 100644 --- a/gd/shim/cert/stack_test.py +++ b/gd/shim/cert/stack_test.py @@ -18,24 +18,12 @@ import os import sys from cert.gd_base_test_facade_only import GdFacadeOnlyBaseTestClass -from google.protobuf import empty_pb2 as empty_proto -from facade import rootservice_pb2 as facade_rootservice -from hci.facade import controller_facade_pb2 as controller_facade class StackTest(GdFacadeOnlyBaseTestClass): - def setup_test(self): - self.device_under_test.rootservice.StartStack( - facade_rootservice.StartStackRequest( - module_under_test=facade_rootservice.BluetoothModule.Value( - 'SHIM'),)) - - self.device_under_test.wait_channel_ready() - - def teardown_test(self): - self.device_under_test.rootservice.StopStack( - facade_rootservice.StopStackRequest()) + def setup_class(self): + super().setup_class(dut_module='SHIM', cert_module='SHIM') def test_test(self): return True -- 2.11.0