#/usr/bin/env python3.4 # # Copyright 2016 - 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. """ Sanity tests for voice tests in telephony """ import time from acts.test_utils.tel.anritsu_utils import make_ims_call from acts.test_utils.tel.anritsu_utils import tear_down_call from acts.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest from acts.test_utils.tel.TelephonyLabPowerTest import TelephonyLabPowerTest DEFAULT_CALL_NUMBER = "+11234567891" WAIT_TIME_VOLTE = 5 class TelLabPowerVoLTETest(TelephonyLabPowerTest): # TODO Keep if we want to add more in here for this class. def __init__(self, controllers): TelephonyLabPowerTest.__init__(self, controllers) def setup_class(self): self.log.info("entering setup_class TelLabPowerVoLTETest") TelephonyLabPowerTest.setup_class(self) self.log.info("Making MO VoLTE call") # make a VoLTE MO call self.log.info("DEFAULT_CALL_NUMBER = " + DEFAULT_CALL_NUMBER) if not make_ims_call(self.log, self.ad, self.anritsu, DEFAULT_CALL_NUMBER): self.log.error("Phone {} Failed to make volte call to {}" .format(self.ad.serial, DEFAULT_CALL_NUMBER)) return False self.log.info("wait for %d seconds" % WAIT_TIME_VOLTE) time.sleep(WAIT_TIME_VOLTE) return True def teardown_test(self): # check if the phone stay in call if not self.ad.droid.telecomIsInCall(): self.log.error("Call is already ended in the phone.") return False self.log.info("End of teardown_test()") return True def teardown_class(self): if not tear_down_call(self.log, self.ad, self.anritsu): self.log.error("Phone {} Failed to tear down" .format(self.ad.serial)) return False # Always take down the simulation TelephonyLabPowerTest.teardown_class(self) return True """ Tests Begin """ @TelephonyBaseTest.tel_test_wrap def test_volte_power_n40_n20(self): """ Measure power consumption of a VoLTE call with DL/UL -40/-20dBm Steps: 1. Assume a VoLTE call is already in place by Setup_Class. 2. Set DL/UL power and Dynamic scheduling 3. Measure power consumption. Expected Results: 1. power consumption measurement is successful 2. measurement results is saved accordingly Returns: True if pass; False if fail """ return self.power_test(-40, -20) @TelephonyBaseTest.tel_test_wrap def test_volte_power_n60_0(self): """ Measure power consumption of a VoLTE call with DL/UL -60/0dBm Steps: 1. Assume a VoLTE call is already in place by Setup_Class. 2. Set DL/UL power and Dynamic scheduling 3. Measure power consumption. Expected Results: 1. power consumption measurement is successful 2. measurement results is saved accordingly Returns: True if pass; False if fail """ return self.power_test(-60, 0) @TelephonyBaseTest.tel_test_wrap def test_volte_power_n80_20(self): """ Measure power consumption of a VoLTE call with DL/UL -80/+20dBm Steps: 1. Assume a VoLTE call is already in place by Setup_Class. 2. Set DL/UL power and Dynamic scheduling 3. Measure power consumption. Expected Results: 1. power consumption measurement is successful 2. measurement results is saved accordingly Returns: True if pass; False if fail """ return self.power_test(-80, 20) """ Tests End """