summaryrefslogtreecommitdiff
path: root/libartbase/base/file_utils_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libartbase/base/file_utils_test.cc')
-rw-r--r--libartbase/base/file_utils_test.cc42
1 files changed, 42 insertions, 0 deletions
diff --git a/libartbase/base/file_utils_test.cc b/libartbase/base/file_utils_test.cc
index a0b3325648..7678df40b0 100644
--- a/libartbase/base/file_utils_test.cc
+++ b/libartbase/base/file_utils_test.cc
@@ -29,6 +29,21 @@ namespace art {
static constexpr const char kAndroidWifiApexDefaultPath[] = "/apex/com.android.wifi";
+namespace {
+class ScopedOverrideDalvikCacheSubDirectory {
+ public:
+ explicit ScopedOverrideDalvikCacheSubDirectory(const char* override) {
+ OverrideDalvikCacheSubDirectory(override);
+ }
+
+ ~ScopedOverrideDalvikCacheSubDirectory() {
+ OverrideDalvikCacheSubDirectory("dalvik-cache");
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ScopedOverrideDalvikCacheSubDirectory);
+};
+} // namespace
+
class FileUtilsTest : public CommonArtTest {};
TEST_F(FileUtilsTest, GetDalvikCacheFilename) {
@@ -271,6 +286,33 @@ TEST_F(FileUtilsTest, GetApexDataDalvikCacheFilename) {
CHECK_EQ(vdex_filename, ReplaceFileExtension(art_filename, "vdex"));
}
+TEST_F(FileUtilsTest, OverrideDalvikCacheSubDirectory) {
+ ScopedUnsetEnvironmentVariable android_root("ANDROID_ROOT");
+ ScopedUnsetEnvironmentVariable i18n_root("ANDROID_I18N_ROOT");
+ ScopedUnsetEnvironmentVariable art_apex_data("ART_APEX_DATA");
+
+ ScopedOverrideDalvikCacheSubDirectory dalvik_cache("overridden-cache");
+
+ EXPECT_EQ(GetArtApexData() + "/overridden-cache/arm/boot-beep.oat",
+ GetApexDataOatFilename("/product/javalib/beep.jar", InstructionSet::kArm));
+
+ EXPECT_EQ(GetArtApexData() + "/overridden-cache/arm/data@some@code.odex",
+ GetApexDataOdexFilename("/data/some/code.dex", InstructionSet::kArm));
+
+ const std::string system_jar = "/system/framework/disk.jar";
+ const std::string boot_image = GetApexDataBootImage(system_jar.c_str());
+ EXPECT_EQ(GetArtApexData() + "/overridden-cache/boot-disk.art", boot_image);
+
+ EXPECT_EQ(
+ GetArtApexData() + "/overridden-cache/apex@com.android.wifi@lib@javalib@bar.jar@classes.art",
+ GetApexDataImage(std::string {kAndroidWifiApexDefaultPath} + "/lib/javalib/bar.jar"));
+
+ const std::string apex_jar = std::string {kAndroidWifiApexDefaultPath} + "/lib/javalib/bar.jar";
+ EXPECT_EQ(GetArtApexData() +
+ "/overridden-cache/x86_64/apex@com.android.wifi@lib@javalib@bar.jar@classes.art",
+ GetApexDataDalvikCacheFilename(apex_jar, InstructionSet::kX86_64, "art"));
+}
+
TEST_F(FileUtilsTest, GetSystemOdexFilenameForApex) {
ScopedUnsetEnvironmentVariable android_root("ANDROID_ROOT");