Add Blackbox metrics to Wifi RSSI tests.
am: 059c5cfbbb
Test: Done
Bug: 65563975
Change-Id: I58670708150a568ddbd27f30012d140adb5de7e0
(cherry picked from commit 926d2bbd16e5fe6362ae98a73d5f4077727c777c)
diff --git a/acts/tests/google/wifi/WifiRssiTest.py b/acts/tests/google/wifi/WifiRssiTest.py
index 08bc325..8dd0b52 100644
--- a/acts/tests/google/wifi/WifiRssiTest.py
+++ b/acts/tests/google/wifi/WifiRssiTest.py
@@ -25,6 +25,7 @@
from acts import asserts
from acts import base_test
from acts import utils
+from acts.metrics.loggers.blackbox import BlackboxMetricLogger
from acts.test_decorators import test_tracker_info
from acts.test_utils.wifi import wifi_power_test_utils as wputils
from acts.test_utils.wifi import wifi_retail_ap as retail_ap
@@ -53,6 +54,19 @@
def __init__(self, controllers):
base_test.BaseTestClass.__init__(self, controllers)
+ test_metrics = [
+ "signal_poll_rssi_shift", "signal_poll_avg_rssi_shift",
+ "scan_rssi_shift", "chain_0_rssi_shift", "chain_1_rssi_shift",
+ "signal_poll_rssi_error", "signal_poll_avg_rssi_error",
+ "scan_rssi_error", "chain_0_rssi_error", "chain_1_rssi_error",
+ "signal_poll_rssi_stdev", "chain_0_rssi_stdev",
+ "chain_1_rssi_stdev"
+ ]
+ for metric in test_metrics:
+ setattr(
+ self,
+ "{}_metric".format(metric),
+ BlackboxMetricLogger.for_test_case(metric_name=metric))
def setup_class(self):
self.dut = self.android_devices[0]
@@ -85,6 +99,14 @@
Args:
postprocessed_results: compiled arrays of RSSI measurements
"""
+ # Set Blackbox metric values
+ self.signal_poll_rssi_stdev_metric.metric_value = max(
+ postprocessed_results["signal_poll_rssi"]["stdev"])
+ self.chain_0_rssi_stdev_metric.metric_value = max(
+ postprocessed_results["chain_0_rssi"]["stdev"])
+ self.chain_1_rssi_stdev_metric.metric_value = max(
+ postprocessed_results["chain_1_rssi"]["stdev"])
+ # Evaluate test pass/fail
test_failed = any([
stdev > self.test_params["stdev_tolerance"]
for stdev in postprocessed_results["signal_poll_rssi"]["stdev"]
@@ -147,6 +169,14 @@
else:
avg_error = RSSI_ERROR_VAL
avg_shift = RSSI_ERROR_VAL
+ # Set Blackbox metric values
+ setattr(
+ getattr(self, "{}_error_metric".format(key)),
+ "metric_value", avg_error)
+ setattr(
+ getattr(self, "{}_shift_metric".format(key)),
+ "metric_value", avg_shift)
+ # Evaluate test pass/fail
rssi_failure = (avg_error > self.test_params["abs_tolerance"]
) or math.isnan(avg_error)
if rssi_failure and key in rssi_under_test:
@@ -165,7 +195,6 @@
"{} passed ({} error = {:.2f} dB, "
"shift = {:.2f} dB)\n").format(key, error_type,
avg_error, avg_shift)
-
if test_failed:
asserts.fail(test_message)
asserts.explicit_pass(test_message)
@@ -909,7 +938,7 @@
class WifiRssi_2GHz_ActiveTraffic_Test(WifiRssiTest):
def __init__(self, controllers):
- base_test.BaseTestClass.__init__(self, controllers)
+ super().__init__(controllers)
self.tests = ("test_rssi_stability_ch1_VHT20_ActiveTraffic",
"test_rssi_vs_atten_ch1_VHT20_ActiveTraffic",
"test_rssi_stability_ch2_VHT20_ActiveTraffic",
@@ -924,7 +953,7 @@
class WifiRssi_5GHz_ActiveTraffic_Test(WifiRssiTest):
def __init__(self, controllers):
- base_test.BaseTestClass.__init__(self, controllers)
+ super().__init__(controllers)
self.tests = ("test_rssi_stability_ch36_VHT20_ActiveTraffic",
"test_rssi_vs_atten_ch36_VHT20_ActiveTraffic",
"test_rssi_stability_ch36_VHT40_ActiveTraffic",