Update dexpreopt_test to verify boot images.
This ensures that odrefresh does not unexpectedly override the boot
image on /system on the first boot.
Bug: 203492478
Test: Build a system image, flash it to a device, and run
`atest art_standalone_dexpreopt_test`.
Change-Id: Id02e60612e6b3c12876cc8707e6d2be3866a5b6f
diff --git a/libartbase/base/common_art_test.cc b/libartbase/base/common_art_test.cc
index 20bc87c..593ea25 100644
--- a/libartbase/base/common_art_test.cc
+++ b/libartbase/base/common_art_test.cc
@@ -50,7 +50,6 @@
#include "dex/primitive.h"
#include "gtest/gtest.h"
#include "nativehelper/scoped_local_ref.h"
-#include "procinfo/process.h"
namespace art {
@@ -680,12 +679,16 @@
std::vector<pid_t> GetPidByName(const std::string& process_name) {
std::vector<pid_t> results;
for (pid_t pid : android::base::AllPids{}) {
- android::procinfo::ProcessInfo process_info;
- std::string error;
- if (!android::procinfo::GetProcessInfo(pid, &process_info, &error)) {
+ std::string cmdline;
+ if (!android::base::ReadFileToString(StringPrintf("/proc/%d/cmdline", pid), &cmdline)) {
continue;
}
- if (process_info.name == process_name) {
+ // Take the first argument.
+ size_t pos = cmdline.find('\0');
+ if (pos != std::string::npos) {
+ cmdline.resize(pos);
+ }
+ if (cmdline == process_name) {
results.push_back(pid);
}
}