Merge changes Id705d625,Id924fdd2 into main

* changes:
  Fix flaky TestWakeupClientServiceImplUnitTest.
  Fix Vts VUR test case.
This commit is contained in:
Treehugger Robot 2024-04-23 20:47:18 +00:00 committed by Android (Google) Code Review
commit 7c8322666e
3 changed files with 11 additions and 7 deletions

View file

@ -169,7 +169,8 @@ void ServiceImpl::loop() {
Looper::setForThread(mLooper); Looper::setForThread(mLooper);
while (true) { while (true) {
mLooper->pollAll(/*timeoutMillis=*/-1); // Don't use pollAll since it might swallow wake.
mLooper->pollOnce(/*timeoutMillis=*/-1);
if (mServerStopped) { if (mServerStopped) {
return; return;
} }

View file

@ -53,6 +53,9 @@ class TestWakeupClientServiceImplUnitTest : public ::testing::Test {
public: public:
virtual void SetUp() override { virtual void SetUp() override {
int selectedPort = 0; int selectedPort = 0;
mServerStarted = false;
mService.reset();
mServer.reset();
mServerThread = std::thread([this, &selectedPort] { mServerThread = std::thread([this, &selectedPort] {
mService = std::make_unique<MyTestWakeupClientServiceImpl>(); mService = std::make_unique<MyTestWakeupClientServiceImpl>();
ServerBuilder builder; ServerBuilder builder;

View file

@ -603,6 +603,7 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribe_enableVurIfSupported) {
<< "skip testing"; << "skip testing";
} }
// Subscribe to PERF_VEHICLE_SPEED using the max sample rate.
auto client = mVhalClient->getSubscriptionClient(mCallback); auto client = mVhalClient->getSubscriptionClient(mCallback);
ASSERT_NE(client, nullptr) << "Failed to get subscription client"; ASSERT_NE(client, nullptr) << "Failed to get subscription client";
SubscribeOptionsBuilder builder(propId); SubscribeOptionsBuilder builder(propId);
@ -616,18 +617,17 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribe_enableVurIfSupported) {
", error: %s", ", error: %s",
propId, result.error().message().c_str()); propId, result.error().message().c_str());
ASSERT_TRUE(mCallback->waitForExpectedEvents(propId, 1, std::chrono::seconds(2)))
<< "Must get at least 1 events within 2 seconds after subscription for rate: "
<< maxSampleRate;
// Sleep for 1 seconds to wait for more possible events to arrive. // Sleep for 1 seconds to wait for more possible events to arrive.
std::this_thread::sleep_for(std::chrono::seconds(1)); std::this_thread::sleep_for(std::chrono::seconds(1));
client->unsubscribe({propId}); client->unsubscribe({propId});
auto events = mCallback->getEvents(propId); auto events = mCallback->getEvents(propId);
if (events.size() == 1) { if (events.size() <= 1) {
// We only received one event, the value is not changing so nothing to check here. // We received 0 or 1 event, the value is not changing so nothing to check here.
// If all VHAL clients are subscribing to PERF_VEHICLE_SPEED with VUR on, then we
// will receive 0 event. If there are other VHAL clients subscribing to PERF_VEHICLE_SPEED
// with VUR off, then we will receive 1 event which is the initial value.
return; return;
} }