lshal: ListCommand::getPidInfo should be cached.
The function parses a big file and its result should be cached.
Add ListCommand::getPidInfoCached, which is a cached version
of this function.
Test: lshal_test
Change-Id: I03d8f149bf67b1512be431a3c4c29e83f7743a2f
diff --git a/cmds/lshal/test.cpp b/cmds/lshal/test.cpp
index bb23b2c..7d87d6d 100644
--- a/cmds/lshal/test.cpp
+++ b/cmds/lshal/test.cpp
@@ -196,6 +196,9 @@
return ListCommand::dumpVintf(out);
}
void internalPostprocess() { ListCommand::postprocess(); }
+ const PidInfo* getPidInfoCached(pid_t serverPid) {
+ return ListCommand::getPidInfoCached(serverPid);
+ }
MOCK_METHOD0(postprocess, void());
MOCK_CONST_METHOD2(getPidInfo, bool(pid_t, PidInfo*));
@@ -355,6 +358,13 @@
sp<MockServiceManager> passthruManager;
};
+TEST_F(ListTest, GetPidInfoCached) {
+ EXPECT_CALL(*mockList, getPidInfo(5, _)).Times(1);
+
+ EXPECT_NE(nullptr, mockList->getPidInfoCached(5));
+ EXPECT_NE(nullptr, mockList->getPidInfoCached(5));
+}
+
TEST_F(ListTest, Fetch) {
EXPECT_EQ(0u, mockList->fetch());
std::array<std::string, 6> transports{{"hwbinder", "hwbinder", "passthrough",