summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorxshu <xshu@google.com>2020-04-20 17:29:53 -0700
committerxshu <xshu@google.com>2020-04-30 17:50:00 -0700
commit7ab314bb0e004d138a11ef3e3e3dbfa7670cc4d8 (patch)
tree12f9ddaf2aa0c634a69920bc902faebe91f1af7d /tests
parent11f1b3d49fc0c96e73eae0c993edda46228bba13 (diff)
Metered stats metrics
Count the number of saved and ephemeral networks observed as metered vs unmetered. Also, notice the metered status before network selection, when possible. Bug: 142322164 Test: com.android.server.wifi Change-Id: Ifeff1522720764d00967534317d431d40335fd5f
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java2
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java60
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java1
3 files changed, 63 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java b/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
index 8f36770e6..77f9bf910 100644
--- a/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
@@ -1028,6 +1028,8 @@ public class ClientModeImplTest extends WifiBaseTest {
injectDhcpSuccess(dhcpResults);
mLooper.dispatchAll();
+ // Verify WifiMetrics logging for metered metrics based on DHCP results
+ verify(mWifiMetrics).addMeteredStat(any(), anyBoolean());
WifiInfo wifiInfo = mCmi.getWifiInfo();
assertNotNull(wifiInfo);
assertEquals(sBSSID, wifiInfo.getBSSID());
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
index d374dc9ce..d2c292221 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java
@@ -4468,6 +4468,66 @@ public class WifiMetricsTest extends WifiBaseTest {
assertEquals(4, mDecodedProto.wifiToggleStats.numToggleOffNormal);
}
+ /**
+ * Verify metered stats are counted properly for saved and ephemeral networks.
+ */
+ @Test
+ public void testMeteredNetworkMetrics() throws Exception {
+ // Test without metered override
+ WifiConfiguration config = WifiConfigurationTestUtil.createPskNetwork();
+ WifiConfiguration config1 = WifiConfigurationTestUtil.createPskNetwork();
+ config.fromWifiNetworkSuggestion = false;
+ config1.fromWifiNetworkSuggestion = true;
+ mWifiMetrics.addMeteredStat(config, false);
+ mWifiMetrics.addMeteredStat(config1, true);
+ dumpProtoAndDeserialize();
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSaved.numMetered);
+ assertEquals(1, mDecodedProto.meteredNetworkStatsSaved.numUnmetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSaved.numOverrideMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSaved.numOverrideUnmetered);
+ assertEquals(1, mDecodedProto.meteredNetworkStatsSuggestion.numMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numUnmetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numOverrideMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numOverrideUnmetered);
+
+ // Test with metered override
+ config = WifiConfigurationTestUtil.createPskNetwork();
+ config1 = WifiConfigurationTestUtil.createPskNetwork();
+ config.meteredOverride = WifiConfiguration.METERED_OVERRIDE_METERED;
+ config1.meteredOverride = WifiConfiguration.METERED_OVERRIDE_NOT_METERED;
+ mWifiMetrics.addMeteredStat(config, true);
+ mWifiMetrics.addMeteredStat(config1, true);
+ dumpProtoAndDeserialize();
+ assertEquals(1, mDecodedProto.meteredNetworkStatsSaved.numMetered);
+ assertEquals(1, mDecodedProto.meteredNetworkStatsSaved.numUnmetered);
+ assertEquals(1, mDecodedProto.meteredNetworkStatsSaved.numOverrideMetered);
+ assertEquals(1, mDecodedProto.meteredNetworkStatsSaved.numOverrideUnmetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numUnmetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numOverrideMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numOverrideUnmetered);
+ }
+
+ /**
+ * Verify that the same network does not get counted twice
+ */
+ @Test
+ public void testMeteredNetworkMetricsNoDoubleCount() throws Exception {
+ WifiConfiguration config = new WifiConfiguration();
+ config.ephemeral = false;
+ mWifiMetrics.addMeteredStat(config, false);
+ mWifiMetrics.addMeteredStat(config, true);
+ mWifiMetrics.addMeteredStat(config, true);
+ dumpProtoAndDeserialize();
+ assertEquals(1, mDecodedProto.meteredNetworkStatsSaved.numMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSaved.numUnmetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSaved.numOverrideMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSaved.numOverrideUnmetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numUnmetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numOverrideMetered);
+ assertEquals(0, mDecodedProto.meteredNetworkStatsSuggestion.numOverrideUnmetered);
+ }
/**
* Create a test to verify data collection logic triggered by score breaching low
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
index 7c5ff1f3f..f8c47a2f6 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
@@ -596,6 +596,7 @@ public class WifiNetworkSelectorTest extends WifiBaseTest {
verify(mWifiConfigManager, times(savedConfigs.length)).tryEnableNetwork(anyInt());
verify(mWifiConfigManager, times(savedConfigs.length))
.clearNetworkCandidateScanResult(anyInt());
+ verify(mWifiMetrics, atLeastOnce()).addMeteredStat(any(), anyBoolean());
}
/**