From 61a8a07e6770a403ebdb2d55dffcb33409573357 Mon Sep 17 00:00:00 2001
From: Avinankumar Vellore Suriyakumar <avellore@google.com>
Date: Thu, 11 Feb 2016 16:18:46 -0800
Subject: [PATCH] Fix process usage parser

Ensure the last process stats are added to the list

Change-Id: Iba910f079748196650d1934249c47821abeb7913
---
 .../android/loganalysis/parser/ProcessUsageParser.java    | 6 ++++++
 .../loganalysis/parser/ProcessUsageParserTest.java        | 8 ++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/com/android/loganalysis/parser/ProcessUsageParser.java b/src/com/android/loganalysis/parser/ProcessUsageParser.java
index 9609cd2..2bbe47c 100644
--- a/src/com/android/loganalysis/parser/ProcessUsageParser.java
+++ b/src/com/android/loganalysis/parser/ProcessUsageParser.java
@@ -84,6 +84,12 @@ public class ProcessUsageParser implements IParser {
                 alarmWakeups = Integer.parseInt(m.group(1));
             }
         }
+        // Add the last process usage stats to the list
+        if (processUid != null) {
+            // Save the process usage info for the previous process
+            mItem.addProcessUsage(processUid, alarmWakeups, mSensorUsage);
+        }
+
         return mItem;
     }
 
diff --git a/tests/src/com/android/loganalysis/parser/ProcessUsageParserTest.java b/tests/src/com/android/loganalysis/parser/ProcessUsageParserTest.java
index e87b4a1..bfba620 100644
--- a/tests/src/com/android/loganalysis/parser/ProcessUsageParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/ProcessUsageParserTest.java
@@ -54,11 +54,12 @@ public class ProcessUsageParserTest extends TestCase {
                "  Proc servicemanager:",
                "      CPU: 2s 20ms usr + 4s 60ms krn ; 0ms fg",
                "    Apk android:",
-               "      2 wakeup alarms");
+               "      2 wakeup alarms",
+               "  ");
 
         ProcessUsageItem processUsage = new ProcessUsageParser().parse(inputBlock);
 
-        assertEquals(2, processUsage.getProcessUsage().size());
+        assertEquals(3, processUsage.getProcessUsage().size());
 
         LinkedList<ProcessUsageInfoItem> processUsageInfo =
                 (LinkedList<ProcessUsageInfoItem>)processUsage.getProcessUsage();
@@ -69,6 +70,9 @@ public class ProcessUsageParserTest extends TestCase {
         LinkedList<SensorInfoItem> sensor = processUsageInfo.get(1).getSensorUsage();
         assertEquals("44", sensor.get(0).getSensorName());
         assertEquals("36", sensor.get(1).getSensorName());
+
+        sensor = processUsageInfo.get(2).getSensorUsage();
+        assertEquals("0", sensor.get(0).getSensorName());
     }
 }
 
-- 
GitLab