Fix dumpsys meminfo for art
Bug: 10112253
Change-Id: I56fd1318d3f7118a4e602afee8494af9730a8b5b
diff --git a/runtime/utils.cc b/runtime/utils.cc
index 8e810a7..bf36bf3 100644
--- a/runtime/utils.cc
+++ b/runtime/utils.cc
@@ -1196,7 +1196,7 @@
LOG(FATAL) << "Expected path in location to be absolute: "<< location;
}
std::string cache_file(location, 1); // skip leading slash
- if (!EndsWith(location, ".dex") || !EndsWith(location, ".art")) {
+ if (!EndsWith(location, ".dex") && !EndsWith(location, ".art")) {
cache_file += "/";
cache_file += DexFile::kClassesDex;
}
diff --git a/runtime/utils_test.cc b/runtime/utils_test.cc
index 2633964..b43177b 100644
--- a/runtime/utils_test.cc
+++ b/runtime/utils_test.cc
@@ -335,4 +335,18 @@
EXPECT_FALSE(EndsWith("oo", "foo"));
}
+void CheckGetDalvikCacheFilenameOrDie(const char* in, const char* out) {
+ std::string expected(getenv("ANDROID_DATA"));
+ expected += "/dalvik-cache/";
+ expected += out;
+ EXPECT_STREQ(expected.c_str(), GetDalvikCacheFilenameOrDie(in).c_str());
+}
+
+TEST_F(UtilsTest, GetDalvikCacheFilenameOrDie) {
+ CheckGetDalvikCacheFilenameOrDie("/system/app/Foo.apk", "system@app@Foo.apk@classes.dex");
+ CheckGetDalvikCacheFilenameOrDie("/data/app/foo-1.apk", "data@app@foo-1.apk@classes.dex");
+ CheckGetDalvikCacheFilenameOrDie("/system/framework/core.jar", "system@framework@core.jar@classes.dex");
+ CheckGetDalvikCacheFilenameOrDie("/system/framework/boot.art", "system@framework@boot.art");
+}
+
} // namespace art