Commit bde05e53 authored by James Hollyer's avatar James Hollyer Committed by Commit Bot

[bluetooth] Enable discovery filter merge tests under LSAN

We had turned it off because the tests were leaking memory.  They are
not leaking anymore so I am turning them back on.

Bug: 969160
Change-Id: I9b61f4f4f71010778e95b54a18881147c9eaf777
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1900435
Commit-Queue: James Hollyer <jameshollyer@chromium.org>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#714641}
parent b6039241
......@@ -47,24 +47,6 @@
#include "device/bluetooth/test/bluetooth_test_fuchsia.h"
#endif
// TODO(crbug.com/969160): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_GetMergedDiscoveryFilterTransport \
DISABLED_GetMergedDiscoveryFilterTransport
#define MAYBE_GetMergedDiscoveryFilterRegular \
DISABLED_GetMergedDiscoveryFilterRegular
#define MAYBE_GetMergedDiscoveryFilterRssi DISABLED_GetMergedDiscoveryFilterRssi
#define MAYBE_GetMergedDiscoveryFilterAllFields \
DISABLED_GetMergedDiscoveryFilterAllFields
#else
#define MAYBE_GetMergedDiscoveryFilterTransport \
GetMergedDiscoveryFilterTransport
#define MAYBE_GetMergedDiscoveryFilterRegular GetMergedDiscoveryFilterRegular
#define MAYBE_GetMergedDiscoveryFilterRssi GetMergedDiscoveryFilterRssi
#define MAYBE_GetMergedDiscoveryFilterAllFields \
GetMergedDiscoveryFilterAllFields
#endif
using device::BluetoothDevice;
namespace device {
......@@ -205,14 +187,6 @@ class TestBluetoothAdapter : public BluetoothAdapter {
std::swap(discovery_sessions_holder_, empty_queue);
}
void InjectFilteredSession(
std::unique_ptr<device::BluetoothDiscoveryFilter> discovery_filter) {
StartDiscoverySessionWithFilter(
std::move(discovery_filter),
base::Bind(&TestBluetoothAdapter::TestOnStartDiscoverySession, this),
base::Bind(&TestBluetoothAdapter::TestErrorCallback, this));
}
void QueueStartRequests(base::Closure run_loop_quit, int num_requests) {
for (int i = 0; i < num_requests; ++i) {
StartDiscoverySession(
......@@ -242,6 +216,13 @@ class TestBluetoothAdapter : public BluetoothAdapter {
base::DoNothing());
}
void RunStartSessionWithFilter(
std::unique_ptr<BluetoothDiscoveryFilter> filter) {
base::RunLoop loop;
StartSessionWithFilter(std::move(filter), loop.QuitClosure());
loop.Run();
}
// |discovery_sessions_holder_| is used to hold unique pointers of Discovery
// Sessions so that the destructors don't get called and so we can test
// removing them
......@@ -393,8 +374,7 @@ TEST_F(BluetoothAdapterTest, GetMergedDiscoveryFilterEmpty) {
EXPECT_TRUE(discovery_filter->IsDefault());
}
TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterRegular) {
scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
TEST_F(BluetoothAdapterTest, GetMergedDiscoveryFilterRegular) {
std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter;
// having one reglar session should result in no filter
......@@ -533,8 +513,7 @@ TEST_F(BluetoothAdapterTest, ShortCircuitUpdateTest) {
adapter_->CleanupSessions();
}
TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterRssi) {
scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
TEST_F(BluetoothAdapterTest, GetMergedDiscoveryFilterRssi) {
int16_t resulting_rssi;
uint16_t resulting_pathloss;
std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter;
......@@ -548,14 +527,13 @@ TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterRssi) {
discovery_filter2->SetRSSI(-65);
// Make sure adapter has one session without filtering.
adapter_->InjectFilteredSession(std::move(discovery_filter));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter));
// DO_NOTHING should have no impact
resulting_filter = adapter_->GetMergedDiscoveryFilter();
resulting_filter->GetRSSI(&resulting_rssi);
EXPECT_EQ(-30, resulting_rssi);
adapter_->InjectFilteredSession(std::move(discovery_filter2));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter2));
// result of merging two rssi values should be lower one
resulting_filter = adapter_->GetMergedDiscoveryFilter();
......@@ -569,7 +547,12 @@ TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterRssi) {
// when rssi and pathloss are merged, both should be cleared, because there is
// no way to tell which filter will be more generic
adapter_->InjectFilteredSession(std::move(discovery_filter3));
{
base::RunLoop run_loop;
adapter_->StartSessionWithFilter(std::move(discovery_filter3),
run_loop.QuitClosure());
run_loop.Run();
}
resulting_filter = adapter_->GetMergedDiscoveryFilter();
EXPECT_FALSE(resulting_filter->GetRSSI(&resulting_rssi));
EXPECT_FALSE(resulting_filter->GetPathloss(&resulting_pathloss));
......@@ -577,8 +560,7 @@ TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterRssi) {
adapter_->CleanupSessions();
}
TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterTransport) {
scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
TEST_F(BluetoothAdapterTest, GetMergedDiscoveryFilterTransport) {
std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter;
auto discovery_filter =
......@@ -587,13 +569,13 @@ TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterTransport) {
auto discovery_filter2 =
std::make_unique<BluetoothDiscoveryFilter>(BLUETOOTH_TRANSPORT_LE);
adapter_->InjectFilteredSession(std::move(discovery_filter));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter));
// Just one filter, make sure transport was properly rewritten
resulting_filter = adapter_->GetMergedDiscoveryFilter();
EXPECT_EQ(BLUETOOTH_TRANSPORT_CLASSIC, resulting_filter->GetTransport());
adapter_->InjectFilteredSession(std::move(discovery_filter2));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter2));
// Two filters, should have OR of both transport's
resulting_filter = adapter_->GetMergedDiscoveryFilter();
......@@ -605,15 +587,14 @@ TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterTransport) {
BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_DUAL));
// Merging empty filter in should result in empty filter
adapter_->InjectFilteredSession(std::move(discovery_filter3));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter3));
resulting_filter = adapter_->GetMergedDiscoveryFilter();
EXPECT_TRUE(resulting_filter->IsDefault());
adapter_->CleanupSessions();
}
TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterAllFields) {
scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
TEST_F(BluetoothAdapterTest, GetMergedDiscoveryFilterAllFields) {
int16_t resulting_rssi;
std::set<device::BluetoothUUID> resulting_uuids;
......@@ -635,9 +616,10 @@ TEST_F(BluetoothAdapterTest, MAYBE_GetMergedDiscoveryFilterAllFields) {
AddDeviceFilterWithUUID(discovery_filter3.get(), BluetoothUUID("1020"));
AddDeviceFilterWithUUID(discovery_filter3.get(), BluetoothUUID("1003"));
adapter_->InjectFilteredSession(std::move(discovery_filter));
adapter_->InjectFilteredSession(std::move(discovery_filter2));
adapter_->InjectFilteredSession(std::move(discovery_filter3));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter2));
adapter_->RunStartSessionWithFilter(std::move(discovery_filter3));
std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter =
adapter_->GetMergedDiscoveryFilter();
resulting_filter->GetRSSI(&resulting_rssi);
......
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