From 3ad7774bab4b8fe97c571192e74693762086bc66 Mon Sep 17 00:00:00 2001
From: Michael Rosenfeld <mrosenfeld@google.com>
Date: Mon, 25 Jan 2016 15:37:34 -0800
Subject: [PATCH] Fix CompactMeminfo bug and use test to verify

Change-Id: I30ed2047edf93e528c020b4d571c55fa99c4e57b
---
 .../parser/CompactMemInfoParser.java          |  2 +-
 .../parser/CompactMemInfoParserTest.java      | 22 +++++++++++++++----
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/com/android/loganalysis/parser/CompactMemInfoParser.java b/src/com/android/loganalysis/parser/CompactMemInfoParser.java
index a4223d2..788cd8b 100644
--- a/src/com/android/loganalysis/parser/CompactMemInfoParser.java
+++ b/src/com/android/loganalysis/parser/CompactMemInfoParser.java
@@ -61,7 +61,7 @@ public class CompactMemInfoParser implements IParser {
                     if (m.group(6) != null && !"N/A".equals(m.group(6))) {
                         swap = Long.parseLong(m.group(6));
                     }
-                    boolean activities = "a".equals(m.group(6));
+                    boolean activities = "a".equals(m.group(7));
                     item.addPid(pid, name, type, pss, swap, activities);
                     continue;
                 } catch (NumberFormatException nfe) {
diff --git a/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java b/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java
index 009af1d..32119bd 100644
--- a/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java
@@ -28,8 +28,8 @@ import java.util.List;
 
 public class CompactMemInfoParserTest extends TestCase {
 
-    public void testSingleProcLineWithSwap() {
-        List<String> input = Arrays.asList("proc,cached,com.google.android.youtube1,2964,19345,1005,e");
+    public void testSingleProcLineWithSwapHasActivities() {
+        List<String> input = Arrays.asList("proc,cached,com.google.android.youtube1,2964,19345,1005,a");
 
         CompactMemInfoItem item = new CompactMemInfoParser().parse(input);
 
@@ -38,10 +38,24 @@ public class CompactMemInfoParserTest extends TestCase {
         assertEquals(19345, item.getPss(2964));
         assertEquals(1005, item.getSwap(2964));
         assertEquals("cached", item.getType(2964));
-        assertEquals(false, item.hasActivities(2964));
+        assertEquals(true, item.hasActivities(2964));
+    }
+
+    public void testSingleProcLineWithoutSwapHasActivities() {
+        List<String> input = Arrays.asList("proc,cached,com.google.android.youtube,2964,19345,a");
+
+        CompactMemInfoItem item = new CompactMemInfoParser().parse(input);
+
+        assertEquals(1, item.getPids().size());
+        assertEquals("com.google.android.youtube", item.getName(2964));
+        assertEquals(19345, item.getPss(2964));
+        assertEquals(0, item.getSwap(2964));
+        assertEquals("cached", item.getType(2964));
+        assertEquals(true, item.hasActivities(2964));
     }
 
-    public void testSingleProcLineWithoutSwap() {
+
+    public void testSingleProcLineWithoutSwapNoActivities() {
         List<String> input = Arrays.asList("proc,cached,com.google.android.youtube,2964,19345,e");
 
         CompactMemInfoItem item = new CompactMemInfoParser().parse(input);
-- 
GitLab