Account for spaces after the "Cached" section in free mem helper.
Bug: 257560751
Test: Unit tests (updated)
Change-Id: I3af4f1a26be219f8b9e68c3e53c364e66d42d65b
diff --git a/libraries/collectors-helper/memory/src/com/android/helpers/FreeMemHelper.java b/libraries/collectors-helper/memory/src/com/android/helpers/FreeMemHelper.java
index ee702aa..430442b 100644
--- a/libraries/collectors-helper/memory/src/com/android/helpers/FreeMemHelper.java
+++ b/libraries/collectors-helper/memory/src/com/android/helpers/FreeMemHelper.java
@@ -55,7 +55,7 @@
private static final String LINE_SEPARATOR = "\\n";
private static final String MEM_AVAILABLE_PATTERN = "^MemAvailable.*";
private static final String MEM_FREE_PATTERN = "^MemFree.*";
- private static final Pattern CACHE_PROC_START_PATTERN = Pattern.compile(".*: Cached$");
+ private static final Pattern CACHE_PROC_START_PATTERN = Pattern.compile(".*: Cached\\s*$");
private static final Pattern PID_PATTERN = Pattern.compile("^.*pid(?<processid> [0-9]*).*$");
private static final String DUMPSYS_PROCESS = "dumpsys meminfo %s";
private static final String MEM_TOTAL = "^\\s+TOTAL\\s+.*";
diff --git a/libraries/collectors-helper/memory/test/src/com/android/helpers/tests/FreeMemHelperTest.java b/libraries/collectors-helper/memory/test/src/com/android/helpers/tests/FreeMemHelperTest.java
index 9770908..5bddd20 100644
--- a/libraries/collectors-helper/memory/test/src/com/android/helpers/tests/FreeMemHelperTest.java
+++ b/libraries/collectors-helper/memory/test/src/com/android/helpers/tests/FreeMemHelperTest.java
@@ -56,5 +56,10 @@
assertTrue(freeMemMetrics.get(FreeMemHelper.PROC_MEMINFO_MEM_AVAILABLE) > 0);
assertTrue(freeMemMetrics.get(FreeMemHelper.PROC_MEMINFO_MEM_FREE) > 0);
assertTrue(freeMemMetrics.get(FreeMemHelper.DUMPSYS_CACHED_PROC_MEMORY) > 0);
+ // Mem available should be less than cache proc dirty, because cache proc dirty includes
+ // mem available plus cached processes' memory usage.
+ assertTrue(
+ freeMemMetrics.get(FreeMemHelper.PROC_MEMINFO_MEM_AVAILABLE)
+ < freeMemMetrics.get(FreeMemHelper.MEM_AVAILABLE_CACHE_PROC_DIRTY));
}
}