Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 25b04bb3 authored by Nicolas Geoffray's avatar Nicolas Geoffray Committed by Automerger Merge Worker
Browse files

Merge "Don't use DEX2OAT_BOOTCLASSPATH for apps." am: c0a346c3 am: 3fbd5322 am: d83e5817

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1655216

Change-Id: I132a1caf3951ea2bb42f365ea7c914457634bf13
parents 695cb245 d83e5817
Loading
Loading
Loading
Loading
+2 −19
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ void RunDex2Oat::Initialize(const UniqueFile& output_oat,
                            bool generate_compact_dex,
                            bool use_jitzygote_image,
                            const char* compilation_reason) {
    PrepareBootImageAndBootClasspathFlags(use_jitzygote_image);
    PrepareBootImageFlags(use_jitzygote_image);

    PrepareInputFileFlags(output_oat, output_vdex, output_image, input_dex, input_vdex,
                          dex_metadata, profile, swap_fd, class_loader_context,
@@ -112,7 +112,7 @@ void RunDex2Oat::Initialize(const UniqueFile& output_oat,

RunDex2Oat::~RunDex2Oat() {}

void RunDex2Oat::PrepareBootImageAndBootClasspathFlags(bool use_jitzygote_image) {
void RunDex2Oat::PrepareBootImageFlags(bool use_jitzygote_image) {
    std::string boot_image;
    if (use_jitzygote_image) {
        boot_image = StringPrintf("--boot-image=%s", kJitZygoteImage);
@@ -120,23 +120,6 @@ void RunDex2Oat::PrepareBootImageAndBootClasspathFlags(bool use_jitzygote_image)
        boot_image = MapPropertyToArg("dalvik.vm.boot-image", "--boot-image=%s");
    }
    AddArg(boot_image);

    // If DEX2OATBOOTCLASSPATH is not in the environment, dex2oat is going to query
    // BOOTCLASSPATH.
    char* dex2oat_bootclasspath = getenv("DEX2OATBOOTCLASSPATH");
    if (dex2oat_bootclasspath != nullptr) {
        AddRuntimeArg(StringPrintf("-Xbootclasspath:%s", dex2oat_bootclasspath));
    }

    std::string updatable_bcp_packages =
            MapPropertyToArg("dalvik.vm.dex2oat-updatable-bcp-packages-file",
                             "--updatable-bcp-packages-file=%s");
    if (updatable_bcp_packages.empty()) {
        // Make dex2oat fail by providing non-existent file name.
        updatable_bcp_packages =
                "--updatable-bcp-packages-file=/nonx/updatable-bcp-packages.txt";
    }
    AddArg(updatable_bcp_packages);
}

void RunDex2Oat::PrepareInputFileFlags(const UniqueFile& output_oat,
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ class RunDex2Oat {
    void Exec(int exit_code);

  protected:
    void PrepareBootImageAndBootClasspathFlags(bool use_jitzygote_image);
    void PrepareBootImageFlags(bool use_jitzygote_image);
    void PrepareInputFileFlags(const UniqueFile& output_oat,
                               const UniqueFile& output_vdex,
                               const UniqueFile& output_image,
+0 −24
Original line number Diff line number Diff line
@@ -175,8 +175,6 @@ class RunDex2OatTest : public testing::Test {
        default_expected_flags_["--swap-fd"] = FLAG_UNUSED;
        default_expected_flags_["--class-loader-context"] = FLAG_UNUSED;
        default_expected_flags_["--class-loader-context-fds"] = FLAG_UNUSED;
        default_expected_flags_["--updatable-bcp-packages-file"] =
                "=/nonx/updatable-bcp-packages.txt";

        // Arch
        default_expected_flags_["--instruction-set"] = "=arm64";
@@ -320,28 +318,6 @@ TEST_F(RunDex2OatTest, WithOnlyClassLoaderContextFds) {
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, DEX2OATBOOTCLASSPATH) {
    ASSERT_EQ(nullptr, getenv("DEX2OATBOOTCLASSPATH"));
    ASSERT_EQ(0, setenv("DEX2OATBOOTCLASSPATH", "foobar", /*override=*/ false))
        << "Failed to setenv: " << strerror(errno);

    CallRunDex2Oat(RunDex2OatArgs::MakeDefaultTestArgs());

    SetExpectedFlagUsed("-Xbootclasspath", ":foobar");
    VerifyExpectedFlags();

    ASSERT_EQ(0, unsetenv("DEX2OATBOOTCLASSPATH"))
        << "Failed to setenv: " << strerror(errno);
}

TEST_F(RunDex2OatTest, UpdatableBootClassPath) {
    setSystemProperty("dalvik.vm.dex2oat-updatable-bcp-packages-file", "/path/to/file");
    CallRunDex2Oat(RunDex2OatArgs::MakeDefaultTestArgs());

    SetExpectedFlagUsed("--updatable-bcp-packages-file", "=/path/to/file");
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, DoNotGenerateCompactDex) {
    auto args = RunDex2OatArgs::MakeDefaultTestArgs();
    args->generate_compact_dex = false;