Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 1 | #!/usr/bin/env python3.4 |
| 2 | # |
| 3 | # Copyright 2017 - The Android Open Source Project |
| 4 | # |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 5 | # Licensed under the Apache License, Version 2.0 (the 'License'); |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 6 | # you may not use this file except in compliance with the License. |
| 7 | # You may obtain a copy of the License at |
| 8 | # |
| 9 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | # |
| 11 | # Unless required by applicable law or agreed to in writing, software |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 12 | # distributed under the License is distributed on an 'AS IS' BASIS, |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | # See the License for the specific language governing permissions and |
| 15 | # limitations under the License. |
| 16 | |
| 17 | import logging |
| 18 | import os |
| 19 | import time |
| 20 | from acts import base_test |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 21 | from acts import utils |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 22 | from acts.controllers.ap_lib import hostapd_constants as hc |
| 23 | from acts.test_decorators import test_tracker_info |
| 24 | from acts.test_utils.wifi import wifi_test_utils as wutils |
| 25 | from acts.test_utils.wifi import wifi_power_test_utils as wputils |
| 26 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 27 | UNLOCK_SCREEN = 'input keyevent 82' |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 28 | |
| 29 | |
| 30 | class PowerscanTest(base_test.BaseTestClass): |
| 31 | def __init__(self, controllers): |
| 32 | |
| 33 | base_test.BaseTestClass.__init__(self, controllers) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 34 | |
| 35 | def setup_class(self): |
| 36 | |
| 37 | self.log = logging.getLogger() |
| 38 | self.dut = self.android_devices[0] |
| 39 | self.access_point = self.access_points[0] |
Qi Jiang | 9bbaee6 | 2018-03-23 00:03:18 +0000 | [diff] [blame] | 40 | req_params = ['scantest_params', 'custom_files'] |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 41 | self.unpack_userparams(req_params) |
| 42 | self.unpack_testparams(self.scantest_params) |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 43 | self.mon_data_path = os.path.join(self.log_path, 'Monsoon') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 44 | self.mon = self.monsoons[0] |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 45 | self.mon.set_max_current(8.0) |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 46 | self.mon.set_voltage(4.2) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 47 | self.mon.attach_device(self.dut) |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 48 | self.mon_info = wputils.create_monsoon_info(self) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 49 | self.num_atten = self.attenuators[0].instrument.num_atten |
Qi Jiang | 9bbaee6 | 2018-03-23 00:03:18 +0000 | [diff] [blame] | 50 | for file in self.custom_files: |
Qi Jiang | 6441fb2 | 2018-04-19 20:26:27 +0000 | [diff] [blame] | 51 | if 'pass_fail_threshold' in file: |
Qi Jiang | 9bbaee6 | 2018-03-23 00:03:18 +0000 | [diff] [blame] | 52 | self.threshold_file = file |
| 53 | elif 'attenuator_setting' in file: |
| 54 | self.attenuation_file = file |
| 55 | elif 'network_config' in file: |
| 56 | self.network_file = file |
| 57 | self.threshold = wputils.unpack_custom_file(self.threshold_file, |
| 58 | self.TAG) |
| 59 | self.atten_level = wputils.unpack_custom_file(self.attenuation_file, |
| 60 | self.TAG) |
| 61 | self.networks = wputils.unpack_custom_file(self.network_file) |
| 62 | self.main_network = self.networks['main_network'] |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 63 | |
| 64 | def unpack_testparams(self, bulk_params): |
| 65 | """Unpack all the test specific parameters. |
| 66 | |
| 67 | Args: |
| 68 | bulk_params: dict with all test specific params in the config file |
| 69 | """ |
| 70 | for key in bulk_params.keys(): |
| 71 | setattr(self, key, bulk_params[key]) |
| 72 | |
| 73 | def setup_test(self): |
| 74 | |
| 75 | self.SINGLE_SHOT_SCAN = ( |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 76 | 'am instrument -w -r -e min_scan_count \"700\"' |
| 77 | ' -e WifiScanTest-testWifiSingleShotScan %d' |
| 78 | ' -e class com.google.android.platform.powertests.' |
| 79 | 'WifiScanTest#testWifiSingleShotScan' |
| 80 | ' com.google.android.platform.powertests/' |
| 81 | 'android.test.InstrumentationTestRunner > /dev/null &' % |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 82 | (self.mon_duration + self.mon_offset + 10)) |
| 83 | self.BACKGROUND_SCAN = ( |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 84 | 'am instrument -w -r -e min_scan_count \"1\" -e ' |
| 85 | 'WifiScanTest-testWifiBackgroundScan %d -e class ' |
| 86 | 'com.google.android.platform.powertests.WifiScan' |
| 87 | 'Test#testWifiBackgroundScan com.google.android.' |
| 88 | 'platform.powertests/android.test.Instrumentation' |
| 89 | 'TestRunner > /dev/null &' % |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 90 | (self.mon_duration + self.mon_offset + 10)) |
| 91 | self.WIFI_SCAN = ( |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 92 | 'am instrument -w -r -e min_scan_count \"1\" -e ' |
| 93 | 'WifiScanTest-testWifiScan %d -e class ' |
| 94 | 'com.google.android.platform.powertests.WifiScanTest#' |
| 95 | 'testWifiScan com.google.android.platform.powertests/' |
| 96 | 'android.test.InstrumentationTestRunner > /dev/null &' % |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 97 | (self.mon_duration + self.mon_offset + 10)) |
| 98 | |
Qi Jiang | f1fbbf3 | 2017-11-08 08:47:50 +0000 | [diff] [blame] | 99 | def teardown_test(self): |
| 100 | """Tear down necessary objects after test case is finished. |
| 101 | |
Qi Jiang | 9279b9a | 2018-02-07 04:50:29 +0000 | [diff] [blame] | 102 | Bring down the AP interface and connect device back online |
Qi Jiang | f1fbbf3 | 2017-11-08 08:47:50 +0000 | [diff] [blame] | 103 | """ |
Qi Jiang | 9279b9a | 2018-02-07 04:50:29 +0000 | [diff] [blame] | 104 | self.log.info('Tearing down the test case') |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 105 | self.access_point.bridge.teardown(self.brconfigs) |
Qi Jiang | f1fbbf3 | 2017-11-08 08:47:50 +0000 | [diff] [blame] | 106 | self.access_point.close() |
Qi Jiang | 9279b9a | 2018-02-07 04:50:29 +0000 | [diff] [blame] | 107 | self.mon.usb('on') |
Qi Jiang | f1fbbf3 | 2017-11-08 08:47:50 +0000 | [diff] [blame] | 108 | |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 109 | def teardown_class(self): |
| 110 | |
Qi Jiang | 9279b9a | 2018-02-07 04:50:29 +0000 | [diff] [blame] | 111 | self.log.info('Tearing down the test class') |
| 112 | self.access_point.close() |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 113 | self.mon.usb('on') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 114 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 115 | def powrapk_scan_test_func(self, scan_command, band): |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 116 | """Test function for power.apk triggered scans. |
| 117 | Args: |
| 118 | scan_command: the adb shell command to trigger scans |
| 119 | |
| 120 | """ |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 121 | network = self.main_network[band] |
| 122 | self.brconfigs = wputils.ap_setup(self.access_point, network) |
| 123 | self.log.info('Set attenuation to get high RSSI at {}'.format(band)) |
| 124 | [ |
| 125 | self.attenuators[i].set_atten( |
| 126 | self.atten_level[self.current_test_name][i]) |
| 127 | for i in range(self.num_atten) |
| 128 | ] |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 129 | self.mon_info['offset'] == 0 |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 130 | # Initialize the dut to rock-bottom state |
| 131 | wputils.dut_rockbottom(self.dut) |
| 132 | wutils.wifi_toggle_state(self.dut, True) |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 133 | self.log.info('Wait for {} seconds'.format(self.settle_wait_time)) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 134 | time.sleep(self.settle_wait_time) |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 135 | self.log.info('Running power apk command to trigger scans') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 136 | self.dut.adb.shell_nb(scan_command) |
| 137 | self.dut.droid.goToSleepNow() |
| 138 | # Collect power data and plot |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 139 | begin_time = utils.get_current_epoch_time() |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 140 | file_path, avg_current = wputils.monsoon_data_collect_save( |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 141 | self.dut, self.mon_info, self.current_test_name) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 142 | wputils.monsoon_data_plot(self.mon_info, file_path) |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 143 | # Take Bugreport |
| 144 | if bool(self.bug_report) == True: |
| 145 | self.dut.take_bug_report(self.test_name, begin_time) |
Qi Jiang | a4fcfdc | 2017-09-18 20:05:26 +0000 | [diff] [blame] | 146 | # Path fail check |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 147 | wputils.pass_fail_check(self, avg_current) |
| 148 | |
| 149 | # Test cases |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 150 | @test_tracker_info(uuid='e5539b01-e208-43c6-bebf-6f1e73d8d8cb') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 151 | def test_single_shot_scan_2g_highRSSI(self): |
| 152 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 153 | self.powrapk_scan_test_func(self.SINGLE_SHOT_SCAN, hc.BAND_2G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 154 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 155 | @test_tracker_info(uuid='14c5a762-95bc-40ea-9fd4-27126df7d86c') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 156 | def test_single_shot_scan_2g_lowRSSI(self): |
| 157 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 158 | self.powrapk_scan_test_func(self.SINGLE_SHOT_SCAN, hc.BAND_2G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 159 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 160 | @test_tracker_info(uuid='a6506600-c567-43b5-9c25-86b505099b97') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 161 | def test_single_shot_scan_2g_noAP(self): |
| 162 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 163 | self.powrapk_scan_test_func(self.SINGLE_SHOT_SCAN, hc.BAND_2G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 164 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 165 | @test_tracker_info(uuid='1a458248-1159-4c8e-a39f-92fc9e69c4dd') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 166 | def test_single_shot_scan_5g_highRSSI(self): |
| 167 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 168 | self.powrapk_scan_test_func(self.SINGLE_SHOT_SCAN, hc.BAND_5G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 169 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 170 | @test_tracker_info(uuid='bd4da426-a621-4131-9f89-6e5a77f321d2') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 171 | def test_single_shot_scan_5g_lowRSSI(self): |
| 172 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 173 | self.powrapk_scan_test_func(self.SINGLE_SHOT_SCAN, hc.BAND_5G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 174 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 175 | @test_tracker_info(uuid='288b3add-8925-4803-81c0-53debf157ffc') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 176 | def test_single_shot_scan_5g_noAP(self): |
| 177 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 178 | self.powrapk_scan_test_func(self.SINGLE_SHOT_SCAN, hc.BAND_5G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 179 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 180 | @test_tracker_info(uuid='f401c66c-e515-4f51-8ef2-2a03470d8ff2') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 181 | def test_background_scan(self): |
| 182 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 183 | self.powrapk_scan_test_func(self.BACKGROUND_SCAN, hc.BAND_5G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 184 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 185 | @test_tracker_info(uuid='fe38c1c7-937c-42c0-9381-98356639df8f') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 186 | def test_wifi_scan_2g(self): |
| 187 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 188 | self.powrapk_scan_test_func(self.WIFI_SCAN, hc.BAND_2G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 189 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 190 | @test_tracker_info(uuid='8eedefd1-3a08-4ac2-ba55-5eb438def3d4') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 191 | def test_wifi_scan_5g(self): |
| 192 | |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 193 | self.powrapk_scan_test_func(self.WIFI_SCAN, hc.BAND_5G) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 194 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 195 | @test_tracker_info(uuid='ff5ea952-ee31-4968-a190-82935ce7a8cb') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 196 | def test_scan_wifidisconnected_turnonscreen(self): |
| 197 | |
| 198 | # Initialize the dut to rock-bottom state |
| 199 | wputils.dut_rockbottom(self.dut) |
| 200 | wutils.wifi_toggle_state(self.dut, True) |
| 201 | self.dut.droid.goToSleepNow() |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 202 | self.log.info('Screen is OFF') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 203 | time.sleep(5) |
| 204 | self.dut.droid.wakeUpNow() |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 205 | self.log.info('Now turn on screen to trigger scans') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 206 | self.dut.adb.shell(UNLOCK_SCREEN) |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 207 | begin_time = utils.get_current_epoch_time() |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 208 | file_path, avg_current = wputils.monsoon_data_collect_save( |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 209 | self.dut, self.mon_info, self.current_test_name) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 210 | wputils.monsoon_data_plot(self.mon_info, file_path) |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 211 | # Take Bugreport |
| 212 | if bool(self.bug_report) == True: |
| 213 | self.dut.take_bug_report(self.test_name, begin_time) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 214 | wputils.pass_fail_check(self, avg_current) |
| 215 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 216 | @test_tracker_info(uuid='9a836e5b-8128-4dd2-8e96-e79177810bdd') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 217 | def test_scan_wificonnected_turnonscreen(self): |
| 218 | |
| 219 | network = self.main_network[hc.BAND_2G] |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 220 | self.brconfigs = wputils.ap_setup(self.access_point, network) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 221 | # Initialize the dut to rock-bottom state |
| 222 | wputils.dut_rockbottom(self.dut) |
| 223 | wutils.wifi_toggle_state(self.dut, True) |
| 224 | # Set attenuators to connect main AP |
| 225 | [ |
| 226 | self.attenuators[i].set_atten( |
| 227 | self.atten_level[self.current_test_name][i]) |
| 228 | for i in range(self.num_atten) |
| 229 | ] |
| 230 | wutils.wifi_connect(self.dut, network) |
| 231 | time.sleep(10) |
| 232 | self.dut.droid.goToSleepNow() |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 233 | self.log.info('Screen is OFF') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 234 | time.sleep(5) |
| 235 | self.dut.droid.wakeUpNow() |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 236 | self.log.info('Now turn on screen to trigger scans') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 237 | self.dut.adb.shell(UNLOCK_SCREEN) |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 238 | begin_time = utils.get_current_epoch_time() |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 239 | file_path, avg_current = wputils.monsoon_data_collect_save( |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 240 | self.dut, self.mon_info, self.current_test_name) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 241 | wputils.monsoon_data_plot(self.mon_info, file_path) |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 242 | # Take Bugreport |
| 243 | if bool(self.bug_report) == True: |
| 244 | self.dut.take_bug_report(self.test_name, begin_time) |
Qi Jiang | a4fcfdc | 2017-09-18 20:05:26 +0000 | [diff] [blame] | 245 | # Path fail check |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 246 | wputils.pass_fail_check(self, avg_current) |
| 247 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 248 | @test_tracker_info(uuid='51e3c4f1-742b-45af-afd5-ae3552a03272') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 249 | def test_scan_screenoff_below_rssi_threshold(self): |
| 250 | |
| 251 | network = self.main_network[hc.BAND_2G] |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 252 | self.brconfigs = wputils.ap_setup(self.access_point, network) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 253 | # Initialize the dut to rock-bottom state |
| 254 | wputils.dut_rockbottom(self.dut) |
| 255 | wutils.wifi_toggle_state(self.dut, True) |
| 256 | # Set attenuator and add main network to the phone |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 257 | self.log.info('Set attenuation so device connection has medium RSSI') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 258 | [ |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 259 | self.attenuators[i].set_atten(self.atten_level['zero_atten'][i]) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 260 | for i in range(self.num_atten) |
| 261 | ] |
| 262 | wutils.wifi_connect(self.dut, network) |
| 263 | self.dut.droid.goToSleepNow() |
| 264 | time.sleep(20) |
| 265 | # Set attenuator to make RSSI below threshold |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 266 | self.log.info('Set attenuation to drop RSSI below threhold') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 267 | [ |
| 268 | self.attenuators[i].set_atten( |
| 269 | self.atten_level[self.current_test_name][i]) |
| 270 | for i in range(self.num_atten) |
| 271 | ] |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 272 | begin_time = utils.get_current_epoch_time() |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 273 | file_path, avg_current = wputils.monsoon_data_collect_save( |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 274 | self.dut, self.mon_info, self.current_test_name) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 275 | wputils.monsoon_data_plot(self.mon_info, file_path) |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 276 | # Take Bugreport |
| 277 | if bool(self.bug_report) == True: |
| 278 | self.dut.take_bug_report(self.test_name, begin_time) |
Qi Jiang | a4fcfdc | 2017-09-18 20:05:26 +0000 | [diff] [blame] | 279 | # Path fail check |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 280 | wputils.pass_fail_check(self, avg_current) |
| 281 | |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 282 | @test_tracker_info(uuid='a16ae337-326f-4d09-990f-42232c3c0dc4') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 283 | def test_scan_screenoff_lost_wificonnection(self): |
| 284 | |
| 285 | network = self.main_network[hc.BAND_5G] |
Qi Jiang | 7f6dc98 | 2018-02-24 01:29:29 +0000 | [diff] [blame] | 286 | self.brconfigs = wputils.ap_setup(self.access_point, network) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 287 | # Initialize the dut to rock-bottom state |
| 288 | wputils.dut_rockbottom(self.dut) |
| 289 | wutils.wifi_toggle_state(self.dut, True) |
| 290 | # Set attenuator and add main network to the phone |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 291 | self.log.info('Set attenuation so device connection has medium RSSI') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 292 | [ |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 293 | self.attenuators[i].set_atten(self.atten_level['zero_atten'][i]) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 294 | for i in range(self.num_atten) |
| 295 | ] |
| 296 | wutils.wifi_connect(self.dut, network) |
| 297 | self.dut.droid.goToSleepNow() |
| 298 | time.sleep(5) |
| 299 | # Set attenuator to make RSSI below threshold |
Qi Jiang | 0f280b0 | 2017-10-12 01:31:41 +0000 | [diff] [blame] | 300 | self.log.info('Set attenuation so device loses connection') |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 301 | [ |
| 302 | self.attenuators[i].set_atten( |
| 303 | self.atten_level[self.current_test_name][i]) |
| 304 | for i in range(self.num_atten) |
| 305 | ] |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 306 | begin_time = utils.get_current_epoch_time() |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 307 | file_path, avg_current = wputils.monsoon_data_collect_save( |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 308 | self.dut, self.mon_info, self.current_test_name) |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 309 | wputils.monsoon_data_plot(self.mon_info, file_path) |
Qi Jiang | c64e51b | 2018-02-09 04:02:47 +0000 | [diff] [blame] | 310 | # Take Bugreport |
| 311 | if bool(self.bug_report) == True: |
| 312 | self.dut.take_bug_report(self.test_name, begin_time) |
Qi Jiang | a4fcfdc | 2017-09-18 20:05:26 +0000 | [diff] [blame] | 313 | # Path fail check |
Qi Jiang | 8f9c758 | 2017-09-06 21:00:14 +0000 | [diff] [blame] | 314 | wputils.pass_fail_check(self, avg_current) |