blob: adb1379b0b6a0db41e60b6d6f219752fd2431f25 [file] [log] [blame]
tturney1bdf77d2015-12-28 17:46:13 -08001#!/usr/bin/env python3.4
Ang Li73697b32015-12-03 00:41:53 +00002#
tturney1bdf77d2015-12-28 17:46:13 -08003# Copyright 2016 - Google
Ang Li73697b32015-12-03 00:41:53 +00004#
5# Licensed under the Apache License, Version 2.0 (the "License");
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
12# distributed under the License is distributed on an "AS IS" BASIS,
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 Test Script for Telephony Pre Flight check.
18"""
19
20import time
Ang Li73697b32015-12-03 00:41:53 +000021from queue import Empty
Betty Zhou158c3332017-06-02 17:08:09 -070022
23from acts.test_decorators import test_tracker_info
Yang Liu52cc0202015-12-28 14:08:52 -080024from acts.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
Ang Li73697b32015-12-03 00:41:53 +000025from acts.test_utils.tel.tel_defines import AOSP_PREFIX
26from acts.test_utils.tel.tel_defines import CAPABILITY_PHONE
27from acts.test_utils.tel.tel_defines import CAPABILITY_VOLTE
28from acts.test_utils.tel.tel_defines import CAPABILITY_VT
29from acts.test_utils.tel.tel_defines import CAPABILITY_WFC
30from acts.test_utils.tel.tel_defines import CAPABILITY_MSIM
31from acts.test_utils.tel.tel_defines import CAPABILITY_OMADM
Nathan Harold05a6c272016-10-17 13:55:53 -070032from acts.test_utils.tel.tel_defines import INVALID_SUB_ID
Yang Liudf164e32016-01-07 16:49:32 -080033from acts.test_utils.tel.tel_defines import MAX_WAIT_TIME_NW_SELECTION
Ang Li73697b32015-12-03 00:41:53 +000034from acts.test_utils.tel.tel_defines import PRECISE_CALL_STATE_LISTEN_LEVEL_BACKGROUND
35from acts.test_utils.tel.tel_defines import PRECISE_CALL_STATE_LISTEN_LEVEL_FOREGROUND
36from acts.test_utils.tel.tel_defines import PRECISE_CALL_STATE_LISTEN_LEVEL_RINGING
37from acts.test_utils.tel.tel_defines import WAIT_TIME_AFTER_REBOOT
Ang Li73697b32015-12-03 00:41:53 +000038from acts.test_utils.tel.tel_lookup_tables import device_capabilities
39from acts.test_utils.tel.tel_lookup_tables import operator_capabilities
Betty Zhou5534e672017-03-07 13:47:10 -080040from acts.test_utils.tel.tel_test_utils import abort_all_tests
Yang Liu52cc0202015-12-28 14:08:52 -080041from acts.test_utils.tel.tel_test_utils import ensure_phones_default_state
Betty Zhou7f45f552017-03-15 19:12:52 -070042from acts.test_utils.tel.tel_test_utils import ensure_phone_subscription
Yang Liud7727092016-05-24 14:38:36 -070043from acts.test_utils.tel.tel_test_utils import ensure_wifi_connected
Yang Liu52cc0202015-12-28 14:08:52 -080044from acts.test_utils.tel.tel_test_utils import get_operator_name
Yang Liu52cc0202015-12-28 14:08:52 -080045from acts.test_utils.tel.tel_test_utils import setup_droid_properties
46from acts.test_utils.tel.tel_test_utils import set_phone_screen_on
47from acts.test_utils.tel.tel_test_utils import set_phone_silent_mode
48from acts.test_utils.tel.tel_test_utils import toggle_airplane_mode
Yang Liud7727092016-05-24 14:38:36 -070049from acts.test_utils.tel.tel_test_utils import verify_http_connection
Yang Liu52cc0202015-12-28 14:08:52 -080050from acts.test_utils.tel.tel_test_utils import wait_for_voice_attach_for_subscription
Yang Liud7727092016-05-24 14:38:36 -070051from acts.test_utils.tel.tel_test_utils import wait_for_wifi_data_connection
Betty Zhouf987b8f2017-03-09 16:34:00 -080052from acts.test_utils.tel.tel_test_utils import wifi_toggle_state
Yang Liu52cc0202015-12-28 14:08:52 -080053from acts.test_utils.tel.tel_voice_utils import phone_setup_volte
Yang Liud7727092016-05-24 14:38:36 -070054from acts.asserts import abort_all
Betty Zhouec8378f2016-12-21 17:28:48 -080055from acts.asserts import fail
Ang Li73697b32015-12-03 00:41:53 +000056
Ang Li73697b32015-12-03 00:41:53 +000057
Nathan Harold0f76cf22015-12-30 16:33:25 -080058class TelLivePreflightTest(TelephonyBaseTest):
Ang Li73697b32015-12-03 00:41:53 +000059 def __init__(self, controllers):
60 TelephonyBaseTest.__init__(self, controllers)
Ang Li73697b32015-12-03 00:41:53 +000061
Betty Zhou061ae082016-12-01 15:26:24 -080062 self.wifi_network_ssid = self.user_params.get(
Betty Zhou158c3332017-06-02 17:08:09 -070063 "wifi_network_ssid") or self.user_params.get("wifi_network_ssid_2g")
Betty Zhou061ae082016-12-01 15:26:24 -080064 self.wifi_network_pass = self.user_params.get(
Betty Zhou158c3332017-06-02 17:08:09 -070065 "wifi_network_pass") or self.user_params.get("wifi_network_pass_2g")
Yang Liud7727092016-05-24 14:38:36 -070066
Betty Zhou43a51352017-07-22 01:54:06 +000067 def setup_class(self):
68 pass
69
70 def setup_test(self):
71 pass
72
Ang Li73697b32015-12-03 00:41:53 +000073 """ Tests Begin """
Nathan Haroldb1487af2016-07-19 16:05:37 -070074
Betty Zhou158c3332017-06-02 17:08:09 -070075 @test_tracker_info(uuid="8390a2eb-a744-4cda-bade-f94a2cc83f02")
Yang Liud7727092016-05-24 14:38:36 -070076 @TelephonyBaseTest.tel_test_wrap
77 def test_check_environment(self):
78 ad = self.android_devices[0]
79 # Check WiFi environment.
80 # 1. Connect to WiFi.
81 # 2. Check WiFi have Internet access.
Betty Zhou061ae082016-12-01 15:26:24 -080082 toggle_airplane_mode(self.log, ad, False, strict_checking=False)
Yang Liud7727092016-05-24 14:38:36 -070083 try:
84 if not ensure_wifi_connected(self.log, ad, self.wifi_network_ssid,
85 self.wifi_network_pass):
Betty Zhou5534e672017-03-07 13:47:10 -080086 abort_all_tests(ad.log, "WiFi connect fail")
Yang Liud7727092016-05-24 14:38:36 -070087 if (not wait_for_wifi_data_connection(self.log, ad, True) or
88 not verify_http_connection(self.log, ad)):
Betty Zhou5534e672017-03-07 13:47:10 -080089 abort_all_tests(ad.log, "Data not available on WiFi")
Yang Liud7727092016-05-24 14:38:36 -070090 finally:
Betty Zhouf987b8f2017-03-09 16:34:00 -080091 wifi_toggle_state(self.log, ad, False)
Yang Liud7727092016-05-24 14:38:36 -070092 # TODO: add more environment check here.
93 return True
Nathan Harold0f76cf22015-12-30 16:33:25 -080094
Betty Zhou158c3332017-06-02 17:08:09 -070095 @test_tracker_info(uuid="7bb23ac7-6b7b-4d5e-b8d6-9dd10032b9ad")
Ang Li73697b32015-12-03 00:41:53 +000096 @TelephonyBaseTest.tel_test_wrap
97 def test_pre_flight_check(self):
Nathan Haroldb1487af2016-07-19 16:05:37 -070098 for ad in self.android_devices:
Ang Li73697b32015-12-03 00:41:53 +000099 #check for sim and service
Betty Zhou7f45f552017-03-15 19:12:52 -0700100 if not ensure_phone_subscription(self.log, ad):
101 abort_all_tests(ad.log, "Unable to find a valid subscription!")
Ang Li73697b32015-12-03 00:41:53 +0000102 return True
Nathan Harold0f76cf22015-12-30 16:33:25 -0800103
Betty Zhou158c3332017-06-02 17:08:09 -0700104 @test_tracker_info(uuid="1070b160-902b-43bf-92a0-92cc2d05bb13")
Betty Zhouec8378f2016-12-21 17:28:48 -0800105 @TelephonyBaseTest.tel_test_wrap
106 def test_check_crash(self):
107 for ad in self.android_devices:
Betty Zhou8aa6db82017-06-28 00:28:40 +0000108 ad.crash_report_preflight = ad.check_crash_report(
109 self.test_id, None, True)
Betty Zhou7f45f552017-03-15 19:12:52 -0700110 if ad.crash_report_preflight:
111 msg = "Find crash reports %s before test starts" % (
112 ad.crash_report_preflight)
113 ad.log.warn(msg)
Betty Zhoubf8f9d52016-12-30 09:46:51 -0800114 return True