diff options
author | xshu <xshu@google.com> | 2020-04-20 17:29:53 -0700 |
---|---|---|
committer | xshu <xshu@google.com> | 2020-04-30 17:50:00 -0700 |
commit | 7ab314bb0e004d138a11ef3e3e3dbfa7670cc4d8 (patch) | |
tree | 12f9ddaf2aa0c634a69920bc902faebe91f1af7d /tests | |
parent | 11f1b3d49fc0c96e73eae0c993edda46228bba13 (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')
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()); } /** |