aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Eltsin <eaeltsin@google.com>2018-05-04 20:08:37 +0200
committerEvgeny Eltsin <eaeltsin@google.com>2018-05-04 20:10:35 +0200
commit775fb0962173f07aeb46c8ae764a35a85e00a3f0 (patch)
tree9297b715d2e493b510a69e62998852a9b8049e1c
parenta9001ceb0a5083f9786652918d16cafbdabcf459 (diff)
downloadbionic-775fb0962173f07aeb46c8ae764a35a85e00a3f0.tar.gz
Add a warm up pass to pthread_leak.join test
Bug: 73105445 Bug: 37920774 Test: bionic-unit-tests --gtest_filter=pthread_leak* Change-Id: I227c999ecc13ee0a2136ff6b00a722f135dd48fe
-rw-r--r--tests/leak_test.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/tests/leak_test.cpp b/tests/leak_test.cpp
index de0886917..1fa9e564d 100644
--- a/tests/leak_test.cpp
+++ b/tests/leak_test.cpp
@@ -107,10 +107,17 @@ std::ostream& operator<<(std::ostream& os, const LeakChecker& lc) {
// http://b/36045112
TEST(pthread_leak, join) {
LeakChecker lc;
- for (int i = 0; i < 100; ++i) {
- pthread_t thread;
- ASSERT_EQ(0, pthread_create(&thread, nullptr, [](void*) -> void* { return nullptr; }, nullptr));
- ASSERT_EQ(0, pthread_join(thread, nullptr));
+
+ for (size_t pass = 0; pass < 2; ++pass) {
+ for (int i = 0; i < 100; ++i) {
+ pthread_t thread;
+ ASSERT_EQ(0, pthread_create(&thread, nullptr, [](void*) -> void* { return nullptr; }, nullptr));
+ ASSERT_EQ(0, pthread_join(thread, nullptr));
+ }
+
+ // A native bridge implementation might need a warm up pass to reach a steady state.
+ // http://b/37920774.
+ if (pass == 0) lc.Reset();
}
}
@@ -145,9 +152,8 @@ TEST(pthread_leak, detach) {
WaitUntilAllExited(tids, arraysize(tids));
- // houdini keeps a thread pool, so we ignore the first pass while the
- // pool fills, but then on the second pass require that the "pool" isn't
- // actually an unbounded leak. https://issuetracker.google.com/37920774.
+ // A native bridge implementation might need a warm up pass to reach a steady state.
+ // http://b/37920774.
if (pass == 0) lc.Reset();
}
}