blob: 4292c05459de42e4ed2a1dae82dd3218d7d9dbc1 [file] [log] [blame]
#!/usr/bin/env python3
#
# Copyright 2022 - The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from blueberry.tests.gd.cert.truth import assertThat
from blueberry.tests.topshim.lib.topshim_base_test import TopshimBaseTest
from blueberry.tests.topshim.lib.adapter_client import AdapterClient
from mobly import test_runner
class SuspendTest(TopshimBaseTest):
def __verify_no_wake_suspend(self):
# Start suspend work
self.dut().clear_event_mask()
self.dut().clear_event_filter()
self.dut().clear_filter_accept_list()
self.dut().stop_advertising()
self.dut().stop_scanning()
self.dut().disconnect_all_acls()
self.dut().le_rand()
def __verify_no_wake_resume(self):
# Start resume work
self.dut().set_default_event_mask_except(0, 0)
self.dut().set_event_filter_inquiry_result_all_devices()
self.dut().set_event_filter_connection_setup_all_devices()
self.dut().le_rand()
def __verify_wakeful_suspend(self, is_a2dp_connected):
self.dut().clear_event_mask()
self.dut().clear_event_filter()
self.dut().clear_filter_accept_list()
self.dut().stop_advertising()
self.dut().stop_scanning()
if is_a2dp_connected:
# self.media_server.disconnect_a2dp()
pass
self.dut().disconnect_all_acls()
self.dut().allow_wake_by_hid()
self.dut().le_rand()
def __verify_wakeful_resume(self, was_a2dp_connected):
# Start resume work
self.dut().set_default_event_mask_except(0, 0)
self.dut().set_event_filter_inquiry_result_all_devices()
self.dut().set_event_filter_connection_setup_all_devices()
if was_a2dp_connected:
# restore filter accept list?
self.dut().restore_filter_accept_list()
# reconnect a2dp
# self.media_server.reconnect_last_a2dp()
# self.gatt.restart_all_previous_advertising()
self.dut().start_advertising()
self.dut().le_rand()
def test_no_wake_suspend(self):
self.__verify_no_wake_suspend()
def test_no_wake_resume(self):
self.__verify_no_wake_resume()
def test_no_wake_suspend_then_resume(self):
self.__verify_no_wake_suspend()
self.__verify_no_wake_resume()
def test_no_wake_suspend_then_resume_then_suspend(self):
self.__verify_no_wake_suspend()
self.__verify_no_wake_resume()
self.__verify_no_wake_suspend()
def test_wakeful_suspend_no_a2dp(self):
self.__verify_wakeful_suspend(False)
def test_wakeful_resume_no_a2dp(self):
self.__verify_wakeful_resume(False)
def test_wakeful_suspend_then_resume_no_a2dp(self):
self.__verify_wakeful_suspend(False)
self.__verify_wakeful_resume(False)
def test_wakeful_suspend_then_resume_then_suspend_no_a2dp(self):
self.__verify_wakeful_suspend(False)
self.__verify_wakeful_resume(False)
self.__verify_wakeful_suspend(False)
if __name__ == "__main__":
test_runner.main()