Commit 2c327352 authored by btolsch's avatar btolsch Committed by Commit Bot

Fix deliberate leak in Cast MRP test

This change simple wraps a std::unique_ptr around a raw new in some Cast
MRP test code in order to re-enable the tests under lsan.

Bug: 969812
Change-Id: I4405d701c4d305215d65e2ea420df6978aecbeca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1677624Reviewed-by: default avatarTakumi Fujimoto <takumif@chromium.org>
Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#672586}
parent 875bde38
...@@ -22,24 +22,6 @@ ...@@ -22,24 +22,6 @@
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
// TODO(crbug.com/969812): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_CreateRoute DISABLED_CreateRoute
#define MAYBE_CreateRouteFailsInvalidSource \
DISABLED_CreateRouteFailsInvalidSource
#define MAYBE_StartObservingMediaSinks DISABLED_StartObservingMediaSinks
#define MAYBE_TerminateRoute DISABLED_TerminateRoute
#define MAYBE_BroadcastRequest DISABLED_BroadcastRequest
#define MAYBE_CreateRouteFailsInvalidSink DISABLED_CreateRouteFailsInvalidSink
#else
#define MAYBE_CreateRoute CreateRoute
#define MAYBE_CreateRouteFailsInvalidSource CreateRouteFailsInvalidSource
#define MAYBE_StartObservingMediaSinks StartObservingMediaSinks
#define MAYBE_TerminateRoute TerminateRoute
#define MAYBE_BroadcastRequest BroadcastRequest
#define MAYBE_CreateRouteFailsInvalidSink CreateRouteFailsInvalidSink
#endif
using ::testing::_; using ::testing::_;
namespace media_router { namespace media_router {
...@@ -68,9 +50,10 @@ class CastMediaRouteProviderTest : public testing::Test { ...@@ -68,9 +50,10 @@ class CastMediaRouteProviderTest : public testing::Test {
router_binding_ = std::make_unique<mojo::Binding<mojom::MediaRouter>>( router_binding_ = std::make_unique<mojo::Binding<mojom::MediaRouter>>(
&mock_router_, mojo::MakeRequest(&router_ptr)); &mock_router_, mojo::MakeRequest(&router_ptr));
CastSessionTracker::SetInstanceForTest( session_tracker_ = std::unique_ptr<CastSessionTracker>(
new CastSessionTracker(&media_sink_service_, &message_handler_, new CastSessionTracker(&media_sink_service_, &message_handler_,
socket_service_.task_runner())); socket_service_.task_runner()));
CastSessionTracker::SetInstanceForTest(session_tracker_.get());
EXPECT_CALL(mock_router_, OnSinkAvailabilityUpdated(_, _)); EXPECT_CALL(mock_router_, OnSinkAvailabilityUpdated(_, _));
provider_ = std::make_unique<CastMediaRouteProvider>( provider_ = std::make_unique<CastMediaRouteProvider>(
...@@ -85,6 +68,7 @@ class CastMediaRouteProviderTest : public testing::Test { ...@@ -85,6 +68,7 @@ class CastMediaRouteProviderTest : public testing::Test {
void TearDown() override { void TearDown() override {
provider_.reset(); provider_.reset();
CastSessionTracker::SetInstanceForTest(nullptr); CastSessionTracker::SetInstanceForTest(nullptr);
session_tracker_.reset();
} }
void ExpectCreateRouteSuccessAndSetRoute( void ExpectCreateRouteSuccessAndSetRoute(
...@@ -129,6 +113,7 @@ class CastMediaRouteProviderTest : public testing::Test { ...@@ -129,6 +113,7 @@ class CastMediaRouteProviderTest : public testing::Test {
cast_channel::MockCastSocketService socket_service_; cast_channel::MockCastSocketService socket_service_;
cast_channel::MockCastMessageHandler message_handler_; cast_channel::MockCastMessageHandler message_handler_;
std::unique_ptr<CastSessionTracker> session_tracker_;
TestMediaSinkService media_sink_service_; TestMediaSinkService media_sink_service_;
MockCastAppDiscoveryService app_discovery_service_; MockCastAppDiscoveryService app_discovery_service_;
std::unique_ptr<CastMediaRouteProvider> provider_; std::unique_ptr<CastMediaRouteProvider> provider_;
...@@ -140,7 +125,7 @@ class CastMediaRouteProviderTest : public testing::Test { ...@@ -140,7 +125,7 @@ class CastMediaRouteProviderTest : public testing::Test {
DISALLOW_COPY_AND_ASSIGN(CastMediaRouteProviderTest); DISALLOW_COPY_AND_ASSIGN(CastMediaRouteProviderTest);
}; };
TEST_F(CastMediaRouteProviderTest, MAYBE_StartObservingMediaSinks) { TEST_F(CastMediaRouteProviderTest, StartObservingMediaSinks) {
MediaSource::Id non_cast_source("not-a-cast-source:foo"); MediaSource::Id non_cast_source("not-a-cast-source:foo");
EXPECT_CALL(app_discovery_service_, DoStartObservingMediaSinks(_)).Times(0); EXPECT_CALL(app_discovery_service_, DoStartObservingMediaSinks(_)).Times(0);
provider_->StartObservingMediaSinks(non_cast_source); provider_->StartObservingMediaSinks(non_cast_source);
...@@ -153,7 +138,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_StartObservingMediaSinks) { ...@@ -153,7 +138,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_StartObservingMediaSinks) {
EXPECT_TRUE(app_discovery_service_.callbacks().empty()); EXPECT_TRUE(app_discovery_service_.callbacks().empty());
} }
TEST_F(CastMediaRouteProviderTest, MAYBE_BroadcastRequest) { TEST_F(CastMediaRouteProviderTest, BroadcastRequest) {
media_sink_service_.AddOrUpdateSink(CreateCastSink(1)); media_sink_service_.AddOrUpdateSink(CreateCastSink(1));
media_sink_service_.AddOrUpdateSink(CreateCastSink(2)); media_sink_service_.AddOrUpdateSink(CreateCastSink(2));
MediaSource::Id source_id( MediaSource::Id source_id(
...@@ -171,7 +156,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_BroadcastRequest) { ...@@ -171,7 +156,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_BroadcastRequest) {
EXPECT_TRUE(app_discovery_service_.callbacks().empty()); EXPECT_TRUE(app_discovery_service_.callbacks().empty());
} }
TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSink) { TEST_F(CastMediaRouteProviderTest, CreateRouteFailsInvalidSink) {
// Sink does not exist. // Sink does not exist.
provider_->CreateRoute( provider_->CreateRoute(
kCastSource, "sinkId", kPresentationId, origin_, kTabId, kRouteTimeout, kCastSource, "sinkId", kPresentationId, origin_, kTabId, kRouteTimeout,
...@@ -181,7 +166,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSink) { ...@@ -181,7 +166,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSink) {
RouteRequestResult::ResultCode::SINK_NOT_FOUND)); RouteRequestResult::ResultCode::SINK_NOT_FOUND));
} }
TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSource) { TEST_F(CastMediaRouteProviderTest, CreateRouteFailsInvalidSource) {
MediaSinkInternal sink = CreateCastSink(1); MediaSinkInternal sink = CreateCastSink(1);
media_sink_service_.AddOrUpdateSink(sink); media_sink_service_.AddOrUpdateSink(sink);
...@@ -193,7 +178,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSource) { ...@@ -193,7 +178,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSource) {
RouteRequestResult::ResultCode::NO_SUPPORTED_PROVIDER)); RouteRequestResult::ResultCode::NO_SUPPORTED_PROVIDER));
} }
TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRoute) { TEST_F(CastMediaRouteProviderTest, CreateRoute) {
MediaSinkInternal sink = CreateCastSink(1); MediaSinkInternal sink = CreateCastSink(1);
media_sink_service_.AddOrUpdateSink(sink); media_sink_service_.AddOrUpdateSink(sink);
...@@ -206,7 +191,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRoute) { ...@@ -206,7 +191,7 @@ TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRoute) {
base::Unretained(this))); base::Unretained(this)));
} }
TEST_F(CastMediaRouteProviderTest, MAYBE_TerminateRoute) { TEST_F(CastMediaRouteProviderTest, TerminateRoute) {
MediaSinkInternal sink = CreateCastSink(1); MediaSinkInternal sink = CreateCastSink(1);
media_sink_service_.AddOrUpdateSink(sink); media_sink_service_.AddOrUpdateSink(sink);
......
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