Home | History | Annotate | Download | only in tests
      1 #!/usr/bin/env python3.4
      2 #
      3 # Copyright (C) 2016 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
      6 # use this file except in compliance with the License. You may obtain a copy of
      7 # 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, WITHOUT
     13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     14 # License for the specific language governing permissions and limitations under
     15 # the License.
     16 
     17 import random
     18 from acts.base_test import BaseTestClass
     19 
     20 CONSERVATIVE_MAX_ATTEN_VALUE = 10
     21 MIN_ATTEN_VALUE = 0
     22 
     23 class AttenuatorSanityTest(BaseTestClass):
     24 
     25     def __init__(self, controllers):
     26         BaseTestClass.__init__(self, controllers)
     27         self.tests = (
     28             "test_attenuator_validation",
     29             "test_attenuator_get_max_value",
     30         )
     31         self.number_of_iteration = 2
     32 
     33     def test_attenuator_validation(self):
     34         """Validate attenuator set and get APIs works fine.
     35         """
     36         for atten in self.attenuators:
     37             self.log.info("Attenuator: {}".format(atten))
     38             try:
     39                 atten_max_value = atten.get_max_atten()
     40             except ValueError as e:
     41                 self.log.error(e)
     42                 self.log.info("Using conservative max value.")
     43                 atten_max_value = CONSERVATIVE_MAX_ATTEN_VALUE
     44 
     45             atten_value_list = [MIN_ATTEN_VALUE, atten_max_value]
     46             for i in range(0, self.number_of_iteration):
     47                 atten_value_list.append(int(random.uniform(0,atten_max_value)))
     48 
     49             for atten_val in atten_value_list:
     50                 self.log.info("Set atten to {}".format(atten_val))
     51                 atten.set_atten(atten_val)
     52                 current_atten = int(atten.get_atten())
     53                 self.log.info("Current atten = {}".format(current_atten))
     54                 assert atten_val == current_atten, "Setting attenuator failed."
     55 
     56         return True
     57 
     58     def test_attenuator_get_max_value(self):
     59         """Validate attenuator get_max_atten APIs works fine.
     60         """
     61         for atten in self.attenuators:
     62             try:
     63                 atten_max_value = atten.get_max_atten()
     64             except ValueError as e:
     65                 self.log.error(e)
     66                 return False
     67         return True
     68