Commit 44dcf066 authored by Caleb Raitto's avatar Caleb Raitto Committed by Commit Bot

Disable leaking testcases in unit_tests (the test binary) on LSAN.

See crrev.com/c/1590404 and the linked bug for context -- the goal is to
fix the broken memory-leak checking in Chromium's ASAN
(AddressSanitizer) trybots, which are supposed to also run LSAN
(LeakSanitizer).

Currently-leaking tests must be fixed or disabled before leak checking
can be enabled in the ASAN trybot.

WARNING: This will result in a loss of ASAN coverage for the affected
tests given that LSAN runs as part of the ASAN trybot.

If that's not acceptable, we can wait until the leaks are fixed before
fixing leak detection in trybots, but keep in mind that newly-introduced
leaks Chromium-wide won't be caught until then.

Bug: 961073,969812
Change-Id: Iff5ca80465118a03cb6d5b544ad67acc7b22b9d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1640784
Commit-Queue: Caleb Raitto <caraitto@chromium.org>
Reviewed-by: default avatarAlexei Filippov <alph@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Reviewed-by: default avatarFrançois Doray <fdoray@chromium.org>
Reviewed-by: default avatarRobert Ogden <robertogden@chromium.org>
Reviewed-by: default avatarXing Liu <xingliu@chromium.org>
Reviewed-by: default avatarmark a. foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#666329}
parent 3ab0cb19
......@@ -22,6 +22,24 @@
#include "testing/gmock/include/gmock/gmock.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::_;
namespace media_router {
......@@ -122,7 +140,7 @@ class CastMediaRouteProviderTest : public testing::Test {
DISALLOW_COPY_AND_ASSIGN(CastMediaRouteProviderTest);
};
TEST_F(CastMediaRouteProviderTest, StartObservingMediaSinks) {
TEST_F(CastMediaRouteProviderTest, MAYBE_StartObservingMediaSinks) {
MediaSource::Id non_cast_source("not-a-cast-source:foo");
EXPECT_CALL(app_discovery_service_, DoStartObservingMediaSinks(_)).Times(0);
provider_->StartObservingMediaSinks(non_cast_source);
......@@ -135,7 +153,7 @@ TEST_F(CastMediaRouteProviderTest, StartObservingMediaSinks) {
EXPECT_TRUE(app_discovery_service_.callbacks().empty());
}
TEST_F(CastMediaRouteProviderTest, BroadcastRequest) {
TEST_F(CastMediaRouteProviderTest, MAYBE_BroadcastRequest) {
media_sink_service_.AddOrUpdateSink(CreateCastSink(1));
media_sink_service_.AddOrUpdateSink(CreateCastSink(2));
MediaSource::Id source_id(
......@@ -153,7 +171,7 @@ TEST_F(CastMediaRouteProviderTest, BroadcastRequest) {
EXPECT_TRUE(app_discovery_service_.callbacks().empty());
}
TEST_F(CastMediaRouteProviderTest, CreateRouteFailsInvalidSink) {
TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSink) {
// Sink does not exist.
provider_->CreateRoute(
kCastSource, "sinkId", kPresentationId, origin_, kTabId, kRouteTimeout,
......@@ -163,7 +181,7 @@ TEST_F(CastMediaRouteProviderTest, CreateRouteFailsInvalidSink) {
RouteRequestResult::ResultCode::SINK_NOT_FOUND));
}
TEST_F(CastMediaRouteProviderTest, CreateRouteFailsInvalidSource) {
TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRouteFailsInvalidSource) {
MediaSinkInternal sink = CreateCastSink(1);
media_sink_service_.AddOrUpdateSink(sink);
......@@ -175,7 +193,7 @@ TEST_F(CastMediaRouteProviderTest, CreateRouteFailsInvalidSource) {
RouteRequestResult::ResultCode::NO_SUPPORTED_PROVIDER));
}
TEST_F(CastMediaRouteProviderTest, CreateRoute) {
TEST_F(CastMediaRouteProviderTest, MAYBE_CreateRoute) {
MediaSinkInternal sink = CreateCastSink(1);
media_sink_service_.AddOrUpdateSink(sink);
......@@ -188,7 +206,7 @@ TEST_F(CastMediaRouteProviderTest, CreateRoute) {
base::Unretained(this)));
}
TEST_F(CastMediaRouteProviderTest, TerminateRoute) {
TEST_F(CastMediaRouteProviderTest, MAYBE_TerminateRoute) {
MediaSinkInternal sink = CreateCastSink(1);
media_sink_service_.AddOrUpdateSink(sink);
......
......@@ -16,6 +16,15 @@
#include "components/leveldb_proto/testing/fake_db.h"
#include "testing/gtest/include/gtest/gtest.h"
// TODO(crbug.com/961073): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_AddDuplicate DISABLED_AddDuplicate
#define MAYBE_Add DISABLED_Add
#else
#define MAYBE_AddDuplicate AddDuplicate
#define MAYBE_Add Add
#endif
namespace notifications {
namespace {
......@@ -117,7 +126,7 @@ TEST_F(IconStoreTest, LoadFailed) {
EXPECT_FALSE(load_result());
}
TEST_F(IconStoreTest, Add) {
TEST_F(IconStoreTest, MAYBE_Add) {
InitDb();
auto new_entry = std::make_unique<IconEntry>();
......@@ -134,7 +143,7 @@ TEST_F(IconStoreTest, Add) {
VerifyEntry(kEntryId2, kEntryData);
}
TEST_F(IconStoreTest, AddDuplicate) {
TEST_F(IconStoreTest, MAYBE_AddDuplicate) {
InitDb();
auto new_entry = std::make_unique<IconEntry>();
......
......@@ -24,6 +24,14 @@
#include "services/network/test/test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
// TODO(crbug.com/961073): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_InterceptRequestPreviewsState \
DISABLED_InterceptRequestPreviewsState
#else
#define MAYBE_InterceptRequestPreviewsState InterceptRequestPreviewsState
#endif
namespace previews {
namespace {
......@@ -80,7 +88,7 @@ class PreviewsLitePageURLLoaderInterceptorTest : public testing::Test {
};
TEST_F(PreviewsLitePageURLLoaderInterceptorTest,
InterceptRequestPreviewsState) {
MAYBE_InterceptRequestPreviewsState) {
base::HistogramTester histogram_tester;
network::ResourceRequest request;
......
......@@ -30,6 +30,35 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/ui_base_types.h"
// TODO(crbug.com/961073): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_GetNavigationEntryCount DISABLED_GetNavigationEntryCount
#define MAYBE_GetAudibleState DISABLED_GetAudibleState
#define MAYBE_CreateWindowFeaturesTest DISABLED_CreateWindowFeaturesTest
#define MAYBE_CreateWindowFeaturesTestMoveTabToOtherWindow \
DISABLED_CreateWindowFeaturesTestMoveTabToOtherWindow
#define MAYBE_CreateWindowFeaturesTestReplaceTab \
DISABLED_CreateWindowFeaturesTestReplaceTab
#define MAYBE_GetHasFormEntry DISABLED_GetHasFormEntry
#define MAYBE_GetPinState DISABLED_GetPinState
#define MAYBE_GetSiteEngagementScore DISABLED_GetSiteEngagementScore
#define MAYBE_GetHost DISABLED_GetHost
#define MAYBE_GetTabFeatures DISABLED_GetTabFeatures
#else
#define MAYBE_GetNavigationEntryCount GetNavigationEntryCount
#define MAYBE_GetAudibleState GetAudibleState
#define MAYBE_CreateWindowFeaturesTest CreateWindowFeaturesTest
#define MAYBE_CreateWindowFeaturesTestMoveTabToOtherWindow \
CreateWindowFeaturesTestMoveTabToOtherWindow
#define MAYBE_CreateWindowFeaturesTestReplaceTab \
CreateWindowFeaturesTestReplaceTab
#define MAYBE_GetHasFormEntry GetHasFormEntry
#define MAYBE_GetPinState GetPinState
#define MAYBE_GetSiteEngagementScore GetSiteEngagementScore
#define MAYBE_GetHost GetHost
#define MAYBE_GetTabFeatures GetTabFeatures
#endif
using content::WebContentsTester;
using metrics::WindowMetricsEvent;
using tab_ranker::WindowFeatures;
......@@ -162,7 +191,7 @@ class TabMetricsLoggerTest : public ChromeRenderViewHostTestHarness {
#endif
// Tests has_form_entry.
TEST_F(TabMetricsLoggerTest, MAYBE_(GetHasFormEntry)) {
TEST_F(TabMetricsLoggerTest, MAYBE_(MAYBE_GetHasFormEntry)) {
EXPECT_FALSE(CurrentTabFeatures().has_form_entry);
content::PageImportanceSignals signal;
signal.had_form_interaction = true;
......@@ -171,14 +200,14 @@ TEST_F(TabMetricsLoggerTest, MAYBE_(GetHasFormEntry)) {
}
// Tests is_pinned.
TEST_F(TabMetricsLoggerTest, MAYBE_(GetPinState)) {
TEST_F(TabMetricsLoggerTest, MAYBE_(MAYBE_GetPinState)) {
EXPECT_FALSE(CurrentTabFeatures().is_pinned);
tab_strip_model_->SetTabPinned(0, true);
EXPECT_TRUE(CurrentTabFeatures().is_pinned);
}
// Tests navigation_entry_count.
TEST_F(TabMetricsLoggerTest, MAYBE_(GetNavigationEntryCount)) {
TEST_F(TabMetricsLoggerTest, MAYBE_(MAYBE_GetNavigationEntryCount)) {
EXPECT_EQ(CurrentTabFeatures().navigation_entry_count, 1);
tab_activity_simulator_.Navigate(web_contents_, GURL(kExampleUrl),
pg_metrics_.page_transition);
......@@ -189,7 +218,7 @@ TEST_F(TabMetricsLoggerTest, MAYBE_(GetNavigationEntryCount)) {
}
// Tests site_engagement_score.
TEST_F(TabMetricsLoggerTest, MAYBE_(GetSiteEngagementScore)) {
TEST_F(TabMetricsLoggerTest, MAYBE_(MAYBE_GetSiteEngagementScore)) {
EXPECT_EQ(CurrentTabFeatures().site_engagement_score, 0);
SiteEngagementService::Get(profile())->ResetBaseScoreForURL(
GURL(kChromiumUrl), 91);
......@@ -197,20 +226,20 @@ TEST_F(TabMetricsLoggerTest, MAYBE_(GetSiteEngagementScore)) {
}
// Tests was_recently_audible.
TEST_F(TabMetricsLoggerTest, MAYBE_(GetAudibleState)) {
TEST_F(TabMetricsLoggerTest, MAYBE_(MAYBE_GetAudibleState)) {
EXPECT_FALSE(CurrentTabFeatures().was_recently_audible);
web_contents_tester_->SetIsCurrentlyAudible(true);
EXPECT_TRUE(CurrentTabFeatures().was_recently_audible);
}
// Tests host.
TEST_F(TabMetricsLoggerTest, MAYBE_(GetHost)) {
TEST_F(TabMetricsLoggerTest, MAYBE_(MAYBE_GetHost)) {
EXPECT_EQ(CurrentTabFeatures().host, kChromiumDomain);
}
// Tests creating a flat TabFeatures structure for logging a tab and its
// TabMetrics state.
TEST_F(TabMetricsLoggerTest, MAYBE_(GetTabFeatures)) {
TEST_F(TabMetricsLoggerTest, MAYBE_(MAYBE_GetTabFeatures)) {
TabActivitySimulator tab_activity_simulator;
Browser::CreateParams params(profile(), true);
std::unique_ptr<Browser> browser =
......@@ -411,7 +440,7 @@ TEST_F(TabMetricsLoggerUKMTest, LogForegroundedOrClosedMetrics) {
}
// Tests CreateWindowFeatures of two browser windows.
TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTest) {
TEST_F(TabMetricsLoggerTest, MAYBE_CreateWindowFeaturesTest) {
Browser::CreateParams params(profile(), true);
std::unique_ptr<Browser> browser =
FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
......@@ -463,7 +492,8 @@ TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTest) {
}
// Tests moving a tab between browser windows.
TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTestMoveTabToOtherWindow) {
TEST_F(TabMetricsLoggerTest,
MAYBE_CreateWindowFeaturesTestMoveTabToOtherWindow) {
Browser::CreateParams params(profile(), true);
std::unique_ptr<Browser> starting_browser =
FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
......@@ -511,7 +541,7 @@ TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTestMoveTabToOtherWindow) {
}
// Tests replacing a tab.
TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTestReplaceTab) {
TEST_F(TabMetricsLoggerTest, MAYBE_CreateWindowFeaturesTestReplaceTab) {
Browser::CreateParams params(profile(), true);
std::unique_ptr<Browser> browser =
FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
......
......@@ -12,7 +12,14 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/metrics_proto/sampled_profile.pb.h"
TEST(HeapProfilerControllerTest, EmptyProfileIsNotEmitted) {
// TODO(crbug.com/961073): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_EmptyProfileIsNotEmitted DISABLED_EmptyProfileIsNotEmitted
#else
#define MAYBE_EmptyProfileIsNotEmitted EmptyProfileIsNotEmitted
#endif
TEST(HeapProfilerControllerTest, MAYBE_EmptyProfileIsNotEmitted) {
auto task_runner = base::MakeRefCounted<base::TestMockTimeTaskRunner>();
base::TestMockTimeTaskRunner::ScopedContext scoped_context(task_runner.get());
......
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