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

Commit c50c7655 authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge changes I6c0b77f4,I598a71b4

* changes:
  Fix flaky test
  Fix promises not being set to null
parents 62b87165 5182c686
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -136,8 +136,9 @@ class RoundRobinSchedulerTest : public ::testing::Test {

    packet_count_--;
    if (packet_count_ == 0) {
      packet_promise_->set_value();
      packet_promise_ = nullptr;
      std::promise<void>* prom = packet_promise_.release();
      prom->set_value();
      delete prom;
    }
  }

+10 −2
Original line number Diff line number Diff line
@@ -70,19 +70,27 @@ TEST_F(HandlerTest, post_task_cleared) {
  auto closure_started_future = closure_started.get_future();
  std::promise<void> closure_can_continue;
  auto can_continue_future = closure_can_continue.get_future();
  std::promise<void> closure_finished;
  auto closure_finished_future = closure_finished.get_future();
  handler_->Post(common::BindOnce(
      [](int* val, std::promise<void> closure_started, std::future<void> can_continue_future) {
      [](int* val,
         std::promise<void> closure_started,
         std::future<void> can_continue_future,
         std::promise<void> closure_finished) {
        closure_started.set_value();
        *val = *val + 1;
        can_continue_future.wait();
        closure_finished.set_value();
      },
      common::Unretained(&val),
      std::move(closure_started),
      std::move(can_continue_future)));
      std::move(can_continue_future),
      std::move(closure_finished)));
  handler_->Post(common::BindOnce([]() { ASSERT_TRUE(false); }));
  closure_started_future.wait();
  handler_->Clear();
  closure_can_continue.set_value();
  closure_finished_future.wait();
  ASSERT_EQ(val, 1);
}