| # |
| # Copyright 2021 - 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. |
| |
| import acts.utils as utils |
| import acts_contrib.test_utils.wifi.wifi_test_utils as wutils |
| from acts_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest |
| from ..WifiStaConcurrencyNetworkRequestTest import WifiStaConcurrencyNetworkRequestTest |
| |
| |
| class WifiStaConcurrencyNetworkRequest11axTest( |
| WifiStaConcurrencyNetworkRequestTest): |
| """Tests for STA concurrency network request 11ax. |
| |
| Test Bed Requirement: |
| One Android device, 2 Asus AXE11000 Access Points. |
| """ |
| |
| def __init__(self, configs): |
| super().__init__(configs) |
| self.tests = ( |
| "test_connect_to_2g_p2p_while_connected_to_5g_internet", |
| "test_connect_to_2g_internet_while_connected_to_5g_p2p", |
| "test_connect_to_2g_internet_while_connected_to_2g_p2p", |
| "test_connect_to_5g_internet_while_connected_to_5g_p2p", |
| "test_connect_to_5g_dfs_internet_while_connected_to_5g_dfs_p2p", |
| "test_connect_to_2g_internet_while_connected_to_2g_p2p_same_ssid", |
| "test_connect_to_5g_p2p_while_connected_to_5g_internet_same_ssid", |
| ) |
| |
| def setup_class(self): |
| WifiBaseTest.setup_class(self) |
| |
| self.dut = self.android_devices[0] |
| wutils.wifi_test_device_init(self.dut) |
| req_params = ["sta_concurrency_supported_models", "wifi6_models"] |
| self.unpack_userparams(req_param_names=req_params,) |
| self.ap1 = self.access_points[0] |
| self.ap2 = self.access_points[1] |
| |
| def teardown_test(self): |
| WifiBaseTest.teardown_test(self) |
| self.disconnect_both() |
| self.dut.droid.wakeLockRelease() |
| self.dut.droid.goToSleepNow() |
| self.dut.droid.wifiDisconnect() |
| wutils.reset_wifi(self.dut) |
| # Ensure we disconnected from the current network before the next test. |
| if self.dut.droid.wifiGetConnectionInfo( |
| )["supplicant_state"] != "disconnected": |
| wutils.wait_for_disconnect(self.dut) |
| wutils.wifi_toggle_state(self.dut, False) |
| self.dut.ed.clear_all_events() |
| |
| def configure_ap(self, |
| channel_2g=None, |
| channel_5g=None, |
| channel_2g_ap2=None, |
| channel_5g_ap2=None, |
| mirror_ap=False, |
| ap_count=1): |
| """Configure AP based on test case requirements.""" |
| if ap_count == 1: |
| self.ap1.set_channel_and_apply("2g", channel_2g) |
| self.ap1.set_channel_and_apply("5g", channel_5g) |
| elif ap_count == 2 and channel_2g_ap2: |
| ssid1 = "test_2g_1" |
| ssid2 = "test_2g_2" |
| if mirror_ap: |
| ssid1 = "test_%s" % utils.rand_ascii_str(4) |
| ssid2 = ssid1 |
| self.ap1.set_channel_and_apply("2g", channel_2g) |
| self.ap2.set_channel_and_apply("2g", channel_2g_ap2) |
| self.ap1.configure_ap({"2g": {"ssid": ssid1},}) |
| self.ap2.configure_ap({"2g": {"ssid": ssid2},}) |
| elif ap_count == 2 and channel_5g_ap2: |
| ssid1 = "test_5g_1" |
| ssid2 = "test_5g_2" |
| if mirror_ap: |
| ssid1 = "test_%s" % utils.rand_ascii_str(4) |
| ssid2 = ssid1 |
| self.ap1.set_channel_and_apply("5g", channel_5g) |
| self.ap2.set_channel_and_apply("5g", channel_5g_ap2) |
| self.ap1.configure_ap({"5g": {"ssid": ssid1},}) |
| self.ap2.configure_ap({"5g": {"ssid": ssid2},}) |
| |