summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.classpath2
-rw-r--r--Android.mk2
-rw-r--r--src/com/android/loganalysis/parser/WakelockParser.java17
-rw-r--r--tests/src/com/android/loganalysis/parser/WakelockParserTest.java25
4 files changed, 35 insertions, 11 deletions
diff --git a/.classpath b/.classpath
index 10bf091..07a7096 100644
--- a/.classpath
+++ b/.classpath
@@ -4,6 +4,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
<classpathentry exported="true" kind="var" path="TRADEFED_ROOT/prebuilts/misc/common/json/json-prebuilt.jar"/>
- <classpathentry exported="true" kind="var" path="TRADEFED_ROOT/prebuilts/misc/common/guava/guava-15.0.jar"/>
+ <classpathentry kind="var" path="TRADEFED_ROOT/prebuilts/misc/common/guava/guava-18.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/Android.mk b/Android.mk
index 3dd1586..99b1ddd 100644
--- a/Android.mk
+++ b/Android.mk
@@ -23,7 +23,7 @@ LOCAL_JAVACFLAGS += -g -Xlint
LOCAL_MODULE := loganalysis
LOCAL_MODULE_TAGS := optional
-LOCAL_STATIC_JAVA_LIBRARIES := guava-15.0-prebuilt json-prebuilt junit
+LOCAL_STATIC_JAVA_LIBRARIES := guava-18.0-prebuilt json-prebuilt junit
include $(BUILD_HOST_JAVA_LIBRARY)
diff --git a/src/com/android/loganalysis/parser/WakelockParser.java b/src/com/android/loganalysis/parser/WakelockParser.java
index a7db455..a6a36d5 100644
--- a/src/com/android/loganalysis/parser/WakelockParser.java
+++ b/src/com/android/loganalysis/parser/WakelockParser.java
@@ -30,7 +30,7 @@ public class WakelockParser implements IParser {
private static final String WAKE_LOCK_PAT_SUFFIX =
"(?:(\\d+)d)?\\s?(?:(\\d+)h)?\\s?(?:(\\d+)m)?\\s?(?:(\\d+)s)?\\s?(?:(\\d+)ms)?"
- + "\\s?\\((\\d+) times\\) realtime";
+ + "\\s?\\((\\d+) times\\)(?: max=\\d+)? realtime";
/**
* Match a valid line such as:
@@ -57,26 +57,25 @@ public class WakelockParser implements IParser {
Matcher m = null;
int wakelockCounter = 0;
for (String line : lines) {
- if ("".equals(line.trim())) {
+ if (wakelockCounter >= TOP_WAKELOCK_COUNT || "".equals(line.trim())) {
// Done with wakelock parsing
break;
}
m = KERNEL_WAKE_LOCK_PAT.matcher(line);
- if (m.matches()) {
- if (wakelockCounter < TOP_WAKELOCK_COUNT &&
- !line.contains("PowerManagerService.WakeLocks")) {
- parseKernelWakeLock(line, WakeLockCategory.KERNEL_WAKELOCK);
- wakelockCounter++;
- }
+ if (m.matches() && !line.contains("PowerManagerService.WakeLocks")) {
+ parseKernelWakeLock(line, WakeLockCategory.KERNEL_WAKELOCK);
+ wakelockCounter++;
continue;
}
+
m = PARTIAL_WAKE_LOCK_PAT.matcher(line);
- if (m.matches() && wakelockCounter < TOP_WAKELOCK_COUNT) {
+ if (m.matches()) {
parsePartialWakeLock(line, WakeLockCategory.PARTIAL_WAKELOCK);
wakelockCounter++;
}
}
+
return mItem;
}
diff --git a/tests/src/com/android/loganalysis/parser/WakelockParserTest.java b/tests/src/com/android/loganalysis/parser/WakelockParserTest.java
index 735362f..eff4ec8 100644
--- a/tests/src/com/android/loganalysis/parser/WakelockParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/WakelockParserTest.java
@@ -58,6 +58,31 @@ public class WakelockParserTest extends TestCase {
public void testPartialWakelockParser() {
List<String> inputBlock = Arrays.asList(
" All partial wake locks:",
+ " Wake lock u0a7 NlpWakeLock: 8m 13s 203ms (1479 times) max=0 realtime",
+ " Wake lock u0a7 NlpCollectorWakeLock: 6m 29s 18ms (238 times) max=0 realtime",
+ " Wake lock u0a7 GCM_CONN_ALARM: 6m 8s 587ms (239 times) max=0 realtime",
+ " Wake lock 1000 *alarm*: 5m 11s 316ms (1469 times) max=0 realtime",
+ " Wake lock u10 xxx: 4m 11s 316ms (1469 times) max=0 realtime",
+ " Wake lock u30 cst: 2m 11s 316ms (1469 times) max=0 realtime",
+ "");
+
+ WakelockItem wakelock = new WakelockParser().parse(inputBlock);
+
+ assertEquals(WakelockParser.TOP_WAKELOCK_COUNT,
+ wakelock.getWakeLocks(WakeLockCategory.PARTIAL_WAKELOCK).size());
+ assertEquals("NlpWakeLock", wakelock.getWakeLocks(WakeLockCategory.PARTIAL_WAKELOCK).
+ get(0).getName());
+ assertEquals("u0a7", wakelock.getWakeLocks(WakeLockCategory.PARTIAL_WAKELOCK).
+ get(0).getProcessUID());
+ assertEquals(493203, wakelock.getWakeLocks(WakeLockCategory.PARTIAL_WAKELOCK).
+ get(0).getHeldTime());
+ assertEquals(1479, wakelock.getWakeLocks(WakeLockCategory.PARTIAL_WAKELOCK).
+ get(0).getLockedCount());
+ }
+
+ public void testPartialWakelockParserOnOldFormat() {
+ List<String> inputBlock = Arrays.asList(
+ " All partial wake locks:",
" Wake lock u0a7 NlpWakeLock: 8m 13s 203ms (1479 times) realtime",
" Wake lock u0a7 NlpCollectorWakeLock: 6m 29s 18ms (238 times) realtime",
" Wake lock u0a7 GCM_CONN_ALARM: 6m 8s 587ms (239 times) realtime",