diff options
author | mukesh agrawal <quiche@google.com> | 2016-03-03 03:14:10 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-03-03 03:14:10 +0000 |
commit | 762e4ccc42148315dbd4c4c6aae14e0c45d78588 (patch) | |
tree | cc1221b8ea0c2db02a1a6e2fa44744d50a9c4762 /tests | |
parent | f19b89324583cf23eb5cea9b5f94810a5a5825c5 (diff) | |
parent | 84f44236019a1ae41739984c12eccdd14ca97e3f (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.java | 56 |
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]); + } } |