summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authormukesh agrawal <quiche@google.com>2016-03-03 03:14:10 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-03-03 03:14:10 +0000
commit762e4ccc42148315dbd4c4c6aae14e0c45d78588 (patch)
treecc1221b8ea0c2db02a1a6e2fa44744d50a9c4762 /tests
parentf19b89324583cf23eb5cea9b5f94810a5a5825c5 (diff)
parent84f44236019a1ae41739984c12eccdd14ca97e3f (diff)
Merge "WifiLogger: manage ring buffers by bytes" into mm-wireless-dev
am: 84f4423601 * commit '84f44236019a1ae41739984c12eccdd14ca97e3f': WifiLogger: manage ring buffers by bytes
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiLoggerTest.java56
1 files changed, 53 insertions, 3 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiLoggerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiLoggerTest.java
index 6ff51c007..83f49762f 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiLoggerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiLoggerTest.java
@@ -18,6 +18,8 @@ package com.android.server.wifi;
import android.test.suitebuilder.annotation.SmallTest;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.verify;
@@ -40,6 +42,16 @@ public class WifiLoggerTest {
WifiLogger mWifiLogger;
private static final String FAKE_RING_BUFFER_NAME = "fake-ring-buffer";
+ private WifiNative.RingBufferStatus mFakeRbs;
+
+ /**
+ * Returns the data that we would dump in a bug report, for our ring buffer.
+ * @return a 2-D byte array, where the first dimension is the record number, and the second
+ * dimension is the byte index within that record.
+ */
+ private final byte[][] getLoggerRingBufferData() throws Exception {
+ return mWifiLogger.getBugReports().get(0).ringBuffers.get(FAKE_RING_BUFFER_NAME);
+ }
/**
* Initializes common state (e.g. mocks) needed by test cases.
@@ -47,13 +59,15 @@ public class WifiLoggerTest {
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
+ mFakeRbs = new WifiNative.RingBufferStatus();
+ mFakeRbs.name = FAKE_RING_BUFFER_NAME;
- WifiNative.RingBufferStatus fakeRbs = new WifiNative.RingBufferStatus();
WifiNative.RingBufferStatus[] ringBufferStatuses = new WifiNative.RingBufferStatus[] {
- fakeRbs
+ mFakeRbs
};
- fakeRbs.name = FAKE_RING_BUFFER_NAME;
+
when(mWifiNative.getRingBufferStatus()).thenReturn(ringBufferStatuses);
+ when(mWifiNative.readKernelLog()).thenReturn("");
mWifiLogger = new WifiLogger(mWsm, mWifiNative);
}
@@ -76,4 +90,40 @@ public class WifiLoggerTest {
eq(WifiLogger.VERBOSE_NORMAL_LOG), anyInt(), anyInt(), anyInt(),
eq(FAKE_RING_BUFFER_NAME));
}
+
+ /**
+ * Verifies that we capture ring-buffer data.
+ */
+ @Test
+ public void canCaptureAndStoreRingBufferData() throws Exception {
+ final boolean verbosityToggle = false;
+ mWifiLogger.startLogging(verbosityToggle);
+
+ final byte[] data = new byte[WifiLogger.MAX_RING_BUFFER_SIZE_BYTES];
+ mWifiLogger.onRingBufferData(mFakeRbs, data);
+ mWifiLogger.captureBugReportData(WifiLogger.REPORT_REASON_NONE);
+
+ byte[][] ringBufferData = getLoggerRingBufferData();
+ assertEquals(1, ringBufferData.length);
+ assertArrayEquals(data, ringBufferData[0]);
+ }
+
+ /**
+ * Verifies that we discard extraneous ring-buffer data.
+ */
+ @Test
+ public void loggerDiscardsExtraneousData() throws Exception {
+ final boolean verbosityToggle = false;
+ mWifiLogger.startLogging(verbosityToggle);
+
+ final byte[] data1 = new byte[WifiLogger.MAX_RING_BUFFER_SIZE_BYTES];
+ final byte[] data2 = {1, 2, 3};
+ mWifiLogger.onRingBufferData(mFakeRbs, data1);
+ mWifiLogger.onRingBufferData(mFakeRbs, data2);
+ mWifiLogger.captureBugReportData(WifiLogger.REPORT_REASON_NONE);
+
+ byte[][] ringBufferData = getLoggerRingBufferData();
+ assertEquals(1, ringBufferData.length);
+ assertArrayEquals(data2, ringBufferData[0]);
+ }
}