| #!/usr/bin/env python3 |
| # |
| # Copyright (C) 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. |
| |
| import random |
| from acts.base_test import BaseTestClass |
| |
| CONSERVATIVE_MAX_ATTEN_VALUE = 10 |
| MIN_ATTEN_VALUE = 0 |
| |
| |
| class AttenuatorSanityTest(BaseTestClass): |
| def __init__(self, controllers): |
| BaseTestClass.__init__(self, controllers) |
| self.tests = ("test_attenuator_validation", |
| "test_attenuator_get_max_value", ) |
| self.number_of_iteration = 2 |
| |
| def test_attenuator_validation(self): |
| """Validate attenuator set and get APIs works fine. |
| """ |
| for atten in self.attenuators: |
| self.log.info("Attenuator: {}".format(atten)) |
| try: |
| atten_max_value = atten.get_max_atten() |
| except ValueError as e: |
| self.log.error(e) |
| self.log.info("Using conservative max value.") |
| atten_max_value = CONSERVATIVE_MAX_ATTEN_VALUE |
| |
| atten_value_list = [MIN_ATTEN_VALUE, atten_max_value] |
| for i in range(0, self.number_of_iteration): |
| atten_value_list.append( |
| int(random.uniform(0, atten_max_value))) |
| |
| for atten_val in atten_value_list: |
| self.log.info("Set atten to {}".format(atten_val)) |
| atten.set_atten(atten_val) |
| current_atten = int(atten.get_atten()) |
| self.log.info("Current atten = {}".format(current_atten)) |
| assert atten_val == current_atten, "Setting attenuator failed." |
| |
| return True |
| |
| def test_attenuator_get_max_value(self): |
| """Validate attenuator get_max_atten APIs works fine. |
| """ |
| for atten in self.attenuators: |
| try: |
| atten_max_value = atten.get_max_atten() |
| except ValueError as e: |
| self.log.error(e) |
| return False |
| return True |