Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d190b77 authored by Wyatt Riley's avatar Wyatt Riley Committed by Hsin-Yi Chen
Browse files

Clear notification count to handle different flows

Notifiation count now cleared in Setup (and
discarded messages warned about in Teardown.)

Fixes: 62645164
Test: passes on device
Change-Id: I7e88da7251464f281d7c98140d7a9b5a73d79542
(cherry picked from commit 6ec696b7)
parent 5ed63181
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase {
    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 @@ class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase {
    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 @@ class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase {

    std::cv_status status = std::cv_status::no_timeout;
    auto now = std::chrono::system_clock::now();
    while (count == 0) {
    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;
  }

@@ -188,7 +192,7 @@ class GnssHalTest : public ::testing::VtsHalHidlTargetTestBase {
 private:
  std::mutex mtx_;
  std::condition_variable cv_;
  int count;
  int notify_count_;
};

/*