summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiakai Zhang <jiakaiz@google.com>2024-04-26 16:50:27 +0100
committerJiakai Zhang <jiakaiz@google.com>2024-05-02 12:59:51 +0000
commited9f6fc5e495eb73e7892cd43fa9c379d2a880b6 (patch)
treef53d42a27ec8caab7f97d5e7bb140b4279621957
parente679afd5437f87cbbd5e735a1da707e32d550147 (diff)
downloadart-main.tar.gz
Respect "dalvik.vm.dex2oat-flags".HEADmastermain
Bug: 336855626 Test: m test-art-host-gtest-art_artd_tests Change-Id: I5df2910e03123c0e4c825da596fa2410d055994f
-rw-r--r--artd/artd.cc6
-rw-r--r--artd/artd_test.cc7
2 files changed, 12 insertions, 1 deletions
diff --git a/artd/artd.cc b/artd/artd.cc
index 0c9b69a697..c391f5099d 100644
--- a/artd/artd.cc
+++ b/artd/artd.cc
@@ -117,6 +117,7 @@ using ::android::base::ReadFileToString;
using ::android::base::Result;
using ::android::base::Split;
using ::android::base::StringReplace;
+using ::android::base::Tokenize;
using ::android::base::WriteStringToFd;
using ::android::base::WriteStringToFile;
using ::android::fs_mgr::FstabEntry;
@@ -1645,6 +1646,11 @@ void Artd::AddPerfConfigFlags(PriorityClass priority_class,
// It takes longer but reduces the memory footprint.
dex2oat_args.AddIf(props_->GetBool("ro.config.low_ram", /*default_value=*/false),
"--compile-individually");
+
+ for (const std::string& flag :
+ Tokenize(props_->GetOrEmpty("dalvik.vm.dex2oat-flags"), /*delimiters=*/" ")) {
+ dex2oat_args.AddIfNonEmpty("%s", flag);
+ }
}
Result<int> Artd::ExecAndReturnCode(const std::vector<std::string>& args,
diff --git a/artd/artd_test.cc b/artd/artd_test.cc
index fb99bbb60b..858fd9909b 100644
--- a/artd/artd_test.cc
+++ b/artd/artd_test.cc
@@ -943,6 +943,8 @@ TEST_F(ArtdTest, dexoptFlagsFromSystemProps) {
EXPECT_CALL(*mock_props_, GetProperty("ro.config.low_ram")).WillOnce(Return("1"));
EXPECT_CALL(*mock_props_, GetProperty("dalvik.vm.appimageformat")).WillOnce(Return("imgfmt"));
EXPECT_CALL(*mock_props_, GetProperty("dalvik.vm.boot-image")).WillOnce(Return("boot-image"));
+ EXPECT_CALL(*mock_props_, GetProperty("dalvik.vm.dex2oat-flags"))
+ .WillOnce(Return("--flag1 --flag2 --flag3"));
EXPECT_CALL(*mock_exec_utils_,
DoExecAndReturnCode(
@@ -962,7 +964,10 @@ TEST_F(ArtdTest, dexoptFlagsFromSystemProps) {
Contains("--compile-individually"),
Contains(Flag("--image-format=", "imgfmt")),
Not(Contains("--force-jit-zygote")),
- Contains(Flag("--boot-image=", "boot-image")))),
+ Contains(Flag("--boot-image=", "boot-image")),
+ Contains("--flag1"),
+ Contains("--flag2"),
+ Contains("--flag3"))),
_,
_))
.WillOnce(Return(0));