lmkd: Fix lmkd-test to work with relative paths
This change allows lmkd-test to work correctly when it's started
using absolute as well as relative path.
Change-Id: Ida58d13d66a224119a363f59cc59289f0167d3c9
diff --git a/lmkd/tests/lmkd_test.cpp b/lmkd/tests/lmkd_test.cpp
index 4afaeb8..f17512d 100644
--- a/lmkd/tests/lmkd_test.cpp
+++ b/lmkd/tests/lmkd_test.cpp
@@ -110,14 +110,9 @@
}
bool getExecPath(std::string &path) {
- char buf[PATH_MAX + 1];
- int ret = readlink("/proc/self/exe", buf, sizeof(buf) - 1);
- if (ret < 0) {
- return false;
- }
- buf[ret] = '\0';
- path = buf;
- return true;
+ // exec path as utf8z c_str().
+ // std::string contains _all_ nul terminated argv[] strings.
+ return android::base::ReadFileToString("/proc/self/cmdline", &path);
}
/* Child synchronization primitives */
@@ -314,8 +309,8 @@
if (getuid() != static_cast<unsigned>(AID_ROOT)) {
// if not root respawn itself as root and capture output
std::string command = StringPrintf(
- "%s=true su root %s 2>&1", LMKDTEST_RESPAWN_FLAG,
- test_path.c_str());
+ "%s=true su root %s --gtest_filter=lmkd.check_for_oom 2>&1",
+ LMKDTEST_RESPAWN_FLAG, test_path.c_str());
std::string test_output = readCommand(command);
GTEST_LOG_(INFO) << test_output;
} else {