Merge changes Id705d625,Id924fdd2 into main
* changes: Fix flaky TestWakeupClientServiceImplUnitTest. Fix Vts VUR test case.
This commit is contained in:
commit
7c8322666e
3 changed files with 11 additions and 7 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue