diff options
author | 2024-11-20 21:14:05 -0800 | |
---|---|---|
committer | 2024-11-25 09:28:01 -0800 | |
commit | 0f64ee12b10dbabb0da085188ce4fd674c7d9048 (patch) | |
tree | 6afbaaac5cb5e765c6985f6585cdc8af6618138a | |
parent | 05c364cfe06909fd94cd28532b0047a25f7adcb0 (diff) |
Logs firmware alert events
Adds these events to the capture buffer.
Flag: EXEMPT does not affect functionality.
Bug: 369386989
Test: New tests added.
Change-Id: Ia98bb173f58028f4ac3f43a8c92f49bce06752e6
-rw-r--r-- | service/java/com/android/server/wifi/WifiMetrics.java | 2 | ||||
-rw-r--r-- | service/proto/src/metrics.proto | 3 | ||||
-rw-r--r-- | service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java | 22 |
3 files changed, 27 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiMetrics.java b/service/java/com/android/server/wifi/WifiMetrics.java index 4e4b13ce3d..0e191468cf 100644 --- a/service/java/com/android/server/wifi/WifiMetrics.java +++ b/service/java/com/android/server/wifi/WifiMetrics.java @@ -4424,6 +4424,8 @@ public class WifiMetrics { public void logFirmwareAlert(String ifaceName, int errorCode) { incrementAlertReasonCount(errorCode); logWifiIsUnusableEvent(ifaceName, WifiIsUnusableEvent.TYPE_FIRMWARE_ALERT, errorCode); + logAsynchronousEvent(ifaceName, + WifiUsabilityStatsEntry.CAPTURE_EVENT_TYPE_FIRMWARE_ALERT, errorCode); } public static final String PROTO_DUMP_ARG = "wifiMetricsProto"; diff --git a/service/proto/src/metrics.proto b/service/proto/src/metrics.proto index 6c76136036..5f577b9afe 100644 --- a/service/proto/src/metrics.proto +++ b/service/proto/src/metrics.proto @@ -2599,6 +2599,9 @@ message WifiUsabilityStatsEntry { // IP reachability failure CAPTURE_EVENT_TYPE_IP_REACHABILITY_FAILURE = 6; + + // Firmware alert + CAPTURE_EVENT_TYPE_FIRMWARE_ALERT = 7; } // Absolute milliseconds from device boot when these stats were sampled diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java index 135ead7c86..34e2a32379 100644 --- a/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java +++ b/service/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java @@ -4503,6 +4503,28 @@ public class WifiMetricsTest extends WifiBaseTest { } /** + * Verify that firmware alerts appear in the ring buffer. + */ + @Test + public void testLogFirmwareAlert() throws Exception { + when(mClock.getElapsedSinceBootMillis()).thenReturn((long) 123); + + // Buffer starts out empty. + assertEquals(0, mWifiMetrics.mWifiUsabilityStatsEntriesRingBuffer.size()); + + // Add record + mWifiMetrics.logFirmwareAlert(TEST_IFACE_NAME, 789); + + // Confirm that exactly one record is added and with default subcode. + assertEquals(1, mWifiMetrics.mWifiUsabilityStatsEntriesRingBuffer.size()); + WifiUsabilityStatsEntry actual = mWifiMetrics.mWifiUsabilityStatsEntriesRingBuffer.get(0); + assertEquals(123, actual.timeStampMs); + assertEquals(WifiUsabilityStatsEntry.CAPTURE_EVENT_TYPE_FIRMWARE_ALERT, + actual.captureEventType); + assertEquals(789, actual.captureEventTypeSubcode); + } + + /** * Tests device mobility state metrics as states are changed. */ @Test |