diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-09-02 00:26:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-09-02 00:26:05 +0000 |
commit | f2e446abe593130a88f665dbb8bcb78615c786cb (patch) | |
tree | 4fae4af6caff3a65dfa7045d79be4e4405ae2c08 | |
parent | 0d70e447b57de4ddf60d84b49ed92ad0511cda31 (diff) | |
parent | 5c8a98f725debfc38ec95c5ee9312891aabfd2d2 (diff) | |
download | native-f2e446abe593130a88f665dbb8bcb78615c786cb.tar.gz |
Merge "Temporary fix for memory leak on DumpRunningServiceTimeout." into oc-mr1-dev
-rw-r--r-- | cmds/dumpsys/tests/dumpsys_test.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/cmds/dumpsys/tests/dumpsys_test.cpp b/cmds/dumpsys/tests/dumpsys_test.cpp index 66beb6d4e0..cfd53e578c 100644 --- a/cmds/dumpsys/tests/dumpsys_test.cpp +++ b/cmds/dumpsys/tests/dumpsys_test.cpp @@ -35,6 +35,7 @@ using ::testing::DoAll; using ::testing::Eq; using ::testing::HasSubstr; using ::testing::MakeAction; +using ::testing::Mock; using ::testing::Not; using ::testing::Return; using ::testing::StrEq; @@ -155,10 +156,11 @@ class DumpsysTest : public Test { .WillRepeatedly(DoAll(WithArg<0>(WriteOnFd(output)), Return(0))); } - void ExpectDumpAndHang(const char* name, int timeout_s, const std::string& output) { + sp<BinderMock> ExpectDumpAndHang(const char* name, int timeout_s, const std::string& output) { sp<BinderMock> binder_mock = ExpectCheckService(name); EXPECT_CALL(*binder_mock, dump(_, _)) .WillRepeatedly(DoAll(Sleep(timeout_s), WithArg<0>(WriteOnFd(output)), Return(0))); + return binder_mock; } void CallMain(const std::vector<std::string>& args) { @@ -245,15 +247,15 @@ TEST_F(DumpsysTest, DumpRunningService) { // Tests 'dumpsys -t 1 service_name' on a service that times out after 2s TEST_F(DumpsysTest, DumpRunningServiceTimeout) { - ExpectDumpAndHang("Valet", 2, "Here's your car"); + sp<BinderMock> binder_mock = ExpectDumpAndHang("Valet", 2, "Here's your car"); CallMain({"-t", "1", "Valet"}); AssertOutputContains("SERVICE 'Valet' DUMP TIMEOUT (1s) EXPIRED"); AssertNotDumped("Here's your car"); - // Must wait so binder mock is deleted, otherwise test will fail with a leaked object - sleep(1); + // TODO(b/65056227): BinderMock is not destructed because thread is detached on dumpsys.cpp + Mock::AllowLeak(binder_mock.get()); } // Tests 'dumpsys service_name Y U NO HAVE ARGS' on a service that is running |