67 lines
2.4 KiB
Python
67 lines
2.4 KiB
Python
#!/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
|