| Index: chrome/android/junit/src/org/chromium/chrome/browser/crash/LogcatExtractionCallableTest.java
|
| diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/crash/LogcatExtractionCallableTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/crash/LogcatExtractionCallableTest.java
|
| index e527f05213f4730cf7ddd56acb819f5dc6d88eb5..51d7840e2d86f84372c59f2e884f99704028a936 100644
|
| --- a/chrome/android/junit/src/org/chromium/chrome/browser/crash/LogcatExtractionCallableTest.java
|
| +++ b/chrome/android/junit/src/org/chromium/chrome/browser/crash/LogcatExtractionCallableTest.java
|
| @@ -130,10 +130,11 @@ public class LogcatExtractionCallableTest {
|
| public void testLogcatEmpty() {
|
| final String original = "";
|
| List<String> expected = new LinkedList<>();
|
| - List<String> logcat = null;
|
| + List<String> logcat = new LinkedList<>();
|
| try {
|
| - logcat = LogcatExtractionCallable.extractLogcatFromReader(
|
| - new BufferedReader(new StringReader(original)), MAX_LINES);
|
| + boolean inMicrodump = LogcatExtractionCallable.extractLogcatChunkFromReader(
|
| + new BufferedReader(new StringReader(original)), MAX_LINES, false, logcat);
|
| + assertEquals(false, inMicrodump);
|
| } catch (Exception e) {
|
| fail(e.toString());
|
| }
|
| @@ -149,8 +150,8 @@ public class LogcatExtractionCallableTest {
|
|
|
| @Test
|
| public void testLogcatWithoutBeginOrEnd_largeLogcat() {
|
| - final List<String> original = Arrays.asList("Line 1", "Line 2", "Line 3", "Line 4",
|
| - "Line 5", "Redundant Line 1", "Redundant Line 2");
|
| + final List<String> original = Arrays.asList("Trimmed Line 1", "Trimmed Line 2", "Line 1",
|
| + "Line 2", "Line 3", "Line 4", "Line 5");
|
| final List<String> expected = Arrays.asList("Line 1", "Line 2", "Line 3", "Line 4",
|
| "Line 5");
|
| assertLogcatLists(expected, original);
|
| @@ -208,14 +209,62 @@ public class LogcatExtractionCallableTest {
|
| assertLogcatLists(expected, original);
|
| }
|
|
|
| + @Test
|
| + public void testLogcatReadInMultipleChunks() {
|
| + final List<String> originalChunk1 = Arrays.asList("Line 1", "Line 2", "Line 3", "Line 4");
|
| + final List<String> originalChunk2 = Arrays.asList("Line 5", "Line 6", "Line 7", "Line 8");
|
| + final List<String> expected =
|
| + Arrays.asList("Line 4", "Line 5", "Line 6", "Line 7", "Line 8");
|
| + List<String> actualLogcat = new LinkedList<>();
|
| + boolean inMicrodump = false;
|
| + try {
|
| + // Simulate a file reader to test whether the extraction process successfully strips
|
| + // microdump from logcat.
|
| + inMicrodump = LogcatExtractionCallable.extractLogcatChunkFromReader(
|
| + new BufferedReader(new StringReader(TextUtils.join("\n", originalChunk1))),
|
| + MAX_LINES, inMicrodump, actualLogcat);
|
| + LogcatExtractionCallable.extractLogcatChunkFromReader(
|
| + new BufferedReader(new StringReader(TextUtils.join("\n", originalChunk2))),
|
| + MAX_LINES, inMicrodump, actualLogcat);
|
| + } catch (Exception e) {
|
| + fail(e.toString());
|
| + }
|
| + assertArrayEquals(expected.toArray(), actualLogcat.toArray());
|
| + }
|
| +
|
| + @Test
|
| + public void testLogcatReadInMultipleChunks_WithBeginAndEnd() {
|
| + final List<String> originalChunk1 = Arrays.asList(
|
| + "Line 1", "Line 2", END_MICRODUMP, "Line 3", "Line 4", BEGIN_MICRODUMP, "a", "b");
|
| + final List<String> originalChunk2 =
|
| + Arrays.asList("c", "d", END_MICRODUMP, "Line 5", "Line 6");
|
| + final List<String> expected = Arrays.asList("Line 3", "Line 4", "Line 5", "Line 6");
|
| + List<String> actualLogcat = new LinkedList<>();
|
| + boolean inMicrodump = false;
|
| + try {
|
| + // Simulate a file reader to test whether the extraction process successfully strips
|
| + // microdump from logcat.
|
| + inMicrodump = LogcatExtractionCallable.extractLogcatChunkFromReader(
|
| + new BufferedReader(new StringReader(TextUtils.join("\n", originalChunk1))),
|
| + MAX_LINES, inMicrodump, actualLogcat);
|
| + LogcatExtractionCallable.extractLogcatChunkFromReader(
|
| + new BufferedReader(new StringReader(TextUtils.join("\n", originalChunk2))),
|
| + MAX_LINES, inMicrodump, actualLogcat);
|
| + } catch (Exception e) {
|
| + fail(e.toString());
|
| + }
|
| + assertArrayEquals(expected.toArray(), actualLogcat.toArray());
|
| + }
|
| +
|
| private void assertLogcatLists(List<String> expected, List<String> original) {
|
| - List<String> actualLogcat = null;
|
| + List<String> actualLogcat = new LinkedList<>();
|
| String combinedLogcat = TextUtils.join("\n", original);
|
| try {
|
| - //simulate a file reader to test whether the extraction process
|
| - //successfully strips microdump from logcat
|
| - actualLogcat = LogcatExtractionCallable.extractLogcatFromReader(
|
| - new BufferedReader(new StringReader(combinedLogcat)), MAX_LINES);
|
| + // Simulate a file reader to test whether the extraction process successfully strips
|
| + // microdump from logcat.
|
| + LogcatExtractionCallable.extractLogcatChunkFromReader(
|
| + new BufferedReader(new StringReader(combinedLogcat)), MAX_LINES, false,
|
| + actualLogcat);
|
| } catch (Exception e) {
|
| fail(e.toString());
|
| }
|
|
|