summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2024-12-05 00:19:18 +0000
committer Steven Moreland <smoreland@google.com> 2024-12-05 00:19:51 +0000
commitc8d5f1a4720bc2923aa398e713ad5da4f9ae2f86 (patch)
tree0be9810039c983d6602c72b83ab989edc325cd49
parent1e1a07f0c3bb253e72e7f7540527f7b303c44585 (diff)
binderLibTest: epoch->uptime
NTP time reset during test causes flakes. Fixes: 368314472 Test: TH Change-Id: I759113d19721936336b355e0c363c18e7c3adfa1
-rw-r--r--libs/binder/tests/binderLibTest.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/libs/binder/tests/binderLibTest.cpp b/libs/binder/tests/binderLibTest.cpp
index ec2f50ca16..87026b2f15 100644
--- a/libs/binder/tests/binderLibTest.cpp
+++ b/libs/binder/tests/binderLibTest.cpp
@@ -43,6 +43,7 @@
#include <input/BlockingQueue.h>
#include <processgroup/processgroup.h>
#include <utils/Flattenable.h>
+#include <utils/SystemClock.h>
#include <linux/sched.h>
#include <sys/epoll.h>
@@ -1710,14 +1711,6 @@ TEST_F(BinderLibTest, ThreadPoolStarted) {
EXPECT_TRUE(reply.readBool());
}
-size_t epochMillis() {
- using std::chrono::duration_cast;
- using std::chrono::milliseconds;
- using std::chrono::seconds;
- using std::chrono::system_clock;
- return duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count();
-}
-
TEST_F(BinderLibTest, HangingServices) {
Parcel data, reply;
sp<IBinder> server = addServer();
@@ -1726,7 +1719,7 @@ TEST_F(BinderLibTest, HangingServices) {
data.writeInt32(delay);
// b/266537959 - must take before taking lock, since countdown is started in the remote
// process there.
- size_t epochMsBefore = epochMillis();
+ int64_t timeBefore = uptimeMillis();
EXPECT_THAT(server->transact(BINDER_LIB_TEST_PROCESS_TEMPORARY_LOCK, data, &reply), NO_ERROR);
std::vector<std::thread> ts;
for (size_t i = 0; i < kKernelThreads + 1; i++) {
@@ -1740,10 +1733,10 @@ TEST_F(BinderLibTest, HangingServices) {
for (auto &t : ts) {
t.join();
}
- size_t epochMsAfter = epochMillis();
+ int64_t timeAfter = uptimeMillis();
// deadlock occurred and threads only finished after 1s passed.
- EXPECT_GE(epochMsAfter, epochMsBefore + delay);
+ EXPECT_GE(timeAfter, timeBefore + delay);
}
TEST_F(BinderLibTest, BinderProxyCount) {