Merge "Clear notification count to handle different flows" into oc-dr1-dev
diff --git a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp
index 61d23b0..91e75fe 100644
--- a/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp
+++ b/gnss/1.0/vts/functional/VtsHalGnssV1_0TargetTest.cpp
@@ -49,6 +49,7 @@
capabilities_called_count_ = 0;
location_called_count_ = 0;
info_called_count_ = 0;
+ notify_count_ = 0;
gnss_hal_ = ::testing::VtsHalHidlTargetTestBase::getService<IGnss>();
ASSERT_NE(gnss_hal_, nullptr);
@@ -93,12 +94,15 @@
if (gnss_hal_ != nullptr) {
gnss_hal_->cleanup();
}
+ if (notify_count_ > 0) {
+ ALOGW("%d unprocessed callbacks discarded", notify_count_);
+ }
}
/* Used as a mechanism to inform the test that a callback has occurred */
inline void notify() {
std::unique_lock<std::mutex> lock(mtx_);
- count++;
+ notify_count_++;
cv_.notify_one();
}
@@ -108,11 +112,11 @@
std::cv_status status = std::cv_status::no_timeout;
auto now = std::chrono::system_clock::now();
- while (count == 0) {
- status = cv_.wait_until(lock, now + std::chrono::seconds(timeoutSeconds));
- if (status == std::cv_status::timeout) return status;
+ while (notify_count_ == 0) {
+ status = cv_.wait_until(lock, now + std::chrono::seconds(timeoutSeconds));
+ if (status == std::cv_status::timeout) return status;
}
- count--;
+ notify_count_--;
return status;
}
@@ -306,7 +310,7 @@
private:
std::mutex mtx_;
std::condition_variable cv_;
- int count;
+ int notify_count_;
};
/*