diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2020-07-09 01:09:08 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-07-09 01:09:08 +0000 |
commit | 3b1b3443a76ea1de477f38dc2b0f463402d53d6b (patch) | |
tree | 4b0263f6296ec88bc03ee1552cb8bde664cdedcc | |
parent | 095d474ced557bc6572fd9b28dc2181e9743f079 (diff) | |
parent | 198388c4da3b16dccefb208835c55f8bd261220b (diff) | |
download | perfetto-android11-release.tar.gz |
Snap for 6664334 from 198388c4da3b16dccefb208835c55f8bd261220b to rvc-releaseandroid-vts-11.0_r1android-security-11.0.0_r76android-security-11.0.0_r75android-security-11.0.0_r74android-security-11.0.0_r73android-security-11.0.0_r72android-security-11.0.0_r71android-security-11.0.0_r70android-security-11.0.0_r69android-security-11.0.0_r68android-security-11.0.0_r67android-security-11.0.0_r66android-security-11.0.0_r65android-security-11.0.0_r64android-security-11.0.0_r63android-security-11.0.0_r62android-security-11.0.0_r61android-security-11.0.0_r60android-security-11.0.0_r59android-security-11.0.0_r58android-security-11.0.0_r57android-security-11.0.0_r56android-security-11.0.0_r55android-security-11.0.0_r54android-security-11.0.0_r53android-security-11.0.0_r52android-security-11.0.0_r51android-security-11.0.0_r50android-security-11.0.0_r49android-security-11.0.0_r1android-cts-11.0_r1android-11.0.0_r5android-11.0.0_r4android-11.0.0_r3android-11.0.0_r25android-11.0.0_r2android-11.0.0_r17android-11.0.0_r1android11-security-releaseandroid11-s1-releaseandroid11-release
Change-Id: I0f0e2eb595e16a42f4609e21a7adaad1ecfce485
-rw-r--r-- | src/profiling/memory/client.cc | 6 | ||||
-rw-r--r-- | src/profiling/memory/client.h | 2 | ||||
-rw-r--r-- | src/profiling/memory/client_unittest.cc | 36 |
3 files changed, 40 insertions, 4 deletions
diff --git a/src/profiling/memory/client.cc b/src/profiling/memory/client.cc index a194f754f..d7ea37022 100644 --- a/src/profiling/memory/client.cc +++ b/src/profiling/memory/client.cc @@ -86,19 +86,17 @@ int UnsetDumpable(int) { return 0; } -constexpr uint64_t kInfiniteTries = 0; +} // namespace uint64_t GetMaxTries(const ClientConfiguration& client_config) { if (!client_config.block_client) return 1u; if (client_config.block_client_timeout_us == 0) return kInfiniteTries; - return std::min<uint64_t>( + return std::max<uint64_t>( 1ul, client_config.block_client_timeout_us / kResendBackoffUs); } -} // namespace - const char* GetThreadStackBase() { pthread_attr_t attr; if (pthread_getattr_np(pthread_self(), &attr) != 0) diff --git a/src/profiling/memory/client.h b/src/profiling/memory/client.h index c6e581ec4..0ef00bed8 100644 --- a/src/profiling/memory/client.h +++ b/src/profiling/memory/client.h @@ -35,8 +35,10 @@ namespace perfetto { namespace profiling { +uint64_t GetMaxTries(const ClientConfiguration& client_config); const char* GetThreadStackBase(); +constexpr uint64_t kInfiniteTries = 0; constexpr uint32_t kClientSockTimeoutMs = 1000; // Profiling client, used to sample and record the malloc/free family of calls, diff --git a/src/profiling/memory/client_unittest.cc b/src/profiling/memory/client_unittest.cc index 68b2ee7ca..62f09093b 100644 --- a/src/profiling/memory/client_unittest.cc +++ b/src/profiling/memory/client_unittest.cc @@ -20,6 +20,7 @@ #include "perfetto/base/thread_utils.h" #include "perfetto/ext/base/unix_socket.h" +#include "src/profiling/memory/wire_protocol.h" #include "test/gtest_and_gmock.h" namespace perfetto { @@ -50,6 +51,41 @@ TEST(ClientTest, IsMainThread) { th.join(); } +TEST(ClientTest, GetMaxTriesBlock) { + ClientConfiguration cfg = {}; + cfg.block_client = true; + cfg.block_client_timeout_us = 200; + EXPECT_EQ(GetMaxTries(cfg), 2u); +} + +TEST(ClientTest, GetMaxTriesBlockSmall) { + ClientConfiguration cfg = {}; + cfg.block_client = true; + cfg.block_client_timeout_us = 99; + EXPECT_EQ(GetMaxTries(cfg), 1u); +} + +TEST(ClientTest, GetMaxTriesBlockVerySmall) { + ClientConfiguration cfg = {}; + cfg.block_client = true; + cfg.block_client_timeout_us = 1; + EXPECT_EQ(GetMaxTries(cfg), 1u); +} + +TEST(ClientTest, GetMaxTriesBlockInfinite) { + ClientConfiguration cfg = {}; + cfg.block_client = true; + cfg.block_client_timeout_us = 0; + EXPECT_EQ(GetMaxTries(cfg), kInfiniteTries); +} + +TEST(ClientTest, GetMaxTriesNoBlock) { + ClientConfiguration cfg = {}; + cfg.block_client = false; + cfg.block_client_timeout_us = 200; + EXPECT_EQ(GetMaxTries(cfg), 1u); +} + } // namespace } // namespace profiling } // namespace perfetto |