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

Commit 1203883c authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "broadcaster: Create notify after address getting" into main

parents dfb1021c 517cad81
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -161,12 +161,6 @@ class BroadcastStateMachineImpl : public BroadcastStateMachine {
      return;
    }

    /* Ext. advertisings are already on */
    SetState(State::CONFIGURED);

    callbacks_->OnStateMachineCreateStatus(GetBroadcastId(), true);
    callbacks_->OnStateMachineEvent(GetBroadcastId(), State::CONFIGURED);

    advertiser_if_->GetOwnAddress(
        advertising_sid,
        base::Bind(&BroadcastStateMachineImpl::OnAddressResponse,
@@ -327,6 +321,12 @@ class BroadcastStateMachineImpl : public BroadcastStateMachine {
    log::info("own address={}, type={}", addr, addr_type);
    addr_ = addr;
    addr_type_ = addr_type;

    /* Ext. advertisings are already on */
    SetState(State::CONFIGURED);

    callbacks_->OnStateMachineCreateStatus(GetBroadcastId(), true);
    callbacks_->OnStateMachineEvent(GetBroadcastId(), State::CONFIGURED);
  }

  void CreateBroadcastAnnouncement(
+25 −0
Original line number Diff line number Diff line
@@ -1015,6 +1015,31 @@ TEST_F(StateMachineTest, AnnouncementTest) {
            BroadcastStateMachine::kBroadcastAdvertisingType);
}

TEST_F(StateMachineTest, GetMetadataBeforeGettingAddress) {
  unsigned int broadcast_id = 0;

  BleAdvertiserInterface::GetAddressCallback cb;

  /* Address should be already known after notifying callback recipients */
  EXPECT_CALL(
      *(sm_callbacks_.get()),
      OnStateMachineEvent(_, BroadcastStateMachine::State::CONFIGURED, _))
      .WillOnce([this](uint32_t broadcast_id,
                       BroadcastStateMachine::State state, const void* data) {
        RawAddress test_address;

        RawAddress::FromString("00:00:00:00:00:00", test_address);
        ASSERT_NE(test_address,
                  this->broadcasts_[broadcast_id]->GetOwnAddress());
      });

  broadcast_id = InstantiateStateMachine();
  ASSERT_NE(broadcast_id, 0u);
  ASSERT_TRUE(pending_broadcasts_.empty());
  ASSERT_FALSE(broadcasts_.empty());
  ASSERT_TRUE(broadcasts_[broadcast_id]->GetBroadcastId() == broadcast_id);
}

}  // namespace
}  // namespace broadcaster
}  // namespace bluetooth::le_audio