Commit 4438f8fe authored by puthik's avatar puthik Committed by Commit bot

arc: bluetooth: Set advertisement max slot to 1

CTS Verifier want us to also support multiple signal strength
when we declared that multi-advertisement is supported.
Disable multiadvertisement until that is done.

BUG=658387,658385
TEST=CTS Verifier LE signal strength test won't show up

Review-Url: https://chromiumcodereview.appspot.com/2438373002
Cr-Commit-Position: refs/heads/master@{#426958}
parent 2a375e61
...@@ -472,7 +472,9 @@ class ArcBluetoothBridge ...@@ -472,7 +472,9 @@ class ArcBluetoothBridge
// * mapped to nullptr -> reserved, awaiting data // * mapped to nullptr -> reserved, awaiting data
// * mapped to a device::BluetoothAdvertisement -> in use, and the mapped // * mapped to a device::BluetoothAdvertisement -> in use, and the mapped
// BluetoothAdvertisement is currently registered with the adapter. // BluetoothAdvertisement is currently registered with the adapter.
enum { kMaxAdvertisements = 5 }; // TODO(crbug.com/658385) Change back to 5 when we support setting signal
// strength per each advertisement slot.
enum { kMaxAdvertisements = 1 };
std::map<int32_t, scoped_refptr<device::BluetoothAdvertisement>> std::map<int32_t, scoped_refptr<device::BluetoothAdvertisement>>
advertisements_; advertisements_;
......
...@@ -328,59 +328,4 @@ TEST_F(ArcBluetoothBridgeTest, SingleAdvertisement) { ...@@ -328,59 +328,4 @@ TEST_F(ArcBluetoothBridgeTest, SingleAdvertisement) {
EXPECT_EQ(0, NumActiveAdvertisements()); EXPECT_EQ(0, NumActiveAdvertisements());
} }
// Invoke multi advertisement methods and make sure they are going down to the
// D-Bus clients.
TEST_F(ArcBluetoothBridgeTest, MultiAdvertisement) {
int32_t handle = ReserveAdvertisementHandle();
EXPECT_NE(kFailureAdvHandle, handle);
EXPECT_EQ(0, NumActiveAdvertisements());
auto adv_data = base::MakeUnique<device::BluetoothAdvertisement::Data>(
device::BluetoothAdvertisement::ADVERTISEMENT_TYPE_BROADCAST);
mojom::BluetoothGattStatus status =
BroadcastAdvertisement(handle, std::move(adv_data));
EXPECT_EQ(mojom::BluetoothGattStatus::GATT_SUCCESS, status);
EXPECT_EQ(1, NumActiveAdvertisements());
int32_t handle2 = ReserveAdvertisementHandle();
EXPECT_NE(kFailureAdvHandle, handle2);
auto adv_data2 = base::MakeUnique<device::BluetoothAdvertisement::Data>(
device::BluetoothAdvertisement::ADVERTISEMENT_TYPE_PERIPHERAL);
status = BroadcastAdvertisement(handle2, std::move(adv_data2));
EXPECT_EQ(mojom::BluetoothGattStatus::GATT_SUCCESS, status);
EXPECT_EQ(2, NumActiveAdvertisements());
status = ReleaseAdvertisementHandle(handle);
EXPECT_EQ(mojom::BluetoothGattStatus::GATT_SUCCESS, status);
EXPECT_EQ(1, NumActiveAdvertisements());
status = ReleaseAdvertisementHandle(handle2);
EXPECT_EQ(mojom::BluetoothGattStatus::GATT_SUCCESS, status);
EXPECT_EQ(0, NumActiveAdvertisements());
}
// This tests that we support releasing reserved but unused handles.
// TODO(ejcaruso): When Chrome supports more handles, make sure we
// will stop reserving handles before we use all of Chrome's.
TEST_F(ArcBluetoothBridgeTest, ReleaseUnusedHandles) {
constexpr size_t kMaxBluezAdvertisements =
bluez::FakeBluetoothLEAdvertisingManagerClient::kMaxBluezAdvertisements;
std::vector<int32_t> reserved_handles;
for (size_t i = 0; i < kMaxBluezAdvertisements; i++) {
int32_t handle = ReserveAdvertisementHandle();
if (handle == kFailureAdvHandle)
break;
reserved_handles.push_back(handle);
}
EXPECT_GT(reserved_handles.size(), 1Ul);
EXPECT_LE(reserved_handles.size(), kMaxBluezAdvertisements);
EXPECT_EQ(0, NumActiveAdvertisements());
for (int32_t handle : reserved_handles) {
EXPECT_EQ(ReleaseAdvertisementHandle(handle),
mojom::BluetoothGattStatus::GATT_SUCCESS);
}
}
} // namespace arc } // namespace arc
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment