Commit 285eb940 authored by Caleb Raitto's avatar Caleb Raitto Committed by Commit Bot

Disable leaking gl_unittests 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: 969798
Change-Id: I29817e2f28a6e6169a1286df33379c3b946df6c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1641722Reviewed-by: default avatarZhenyao Mo <zmo@chromium.org>
Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
Commit-Queue: Caleb Raitto <caraitto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#667312}
parent 9d2a573f
......@@ -7,6 +7,21 @@
#include "ui/gl/gl_bindings.h"
#include "ui/gl/test/gl_image_test_template.h"
// TODO(crbug.com/969798): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_GLTexture2DToDmabuf DISABLED_GLTexture2DToDmabuf
#else
#define MAYBE_GLTexture2DToDmabuf GLTexture2DToDmabuf
#endif
// TYPED_TEST_P() and REGISTER_TYPED_TEST_SUITE_P() don't do macro expansion on
// their parameters, making the MAYBE_ technique above not work -- these macros
// are a workaround.
#define TYPED_TEST_P_WITH_EXPANSION(SuiteName, TestName) \
TYPED_TEST_P(SuiteName, TestName)
#define REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(SuiteName, ...) \
REGISTER_TYPED_TEST_SUITE_P(SuiteName, __VA_ARGS__)
namespace gl {
namespace {
......@@ -71,7 +86,8 @@ class GLImageNativePixmapToDmabufTest
TYPED_TEST_SUITE_P(GLImageNativePixmapToDmabufTest);
TYPED_TEST_P(GLImageNativePixmapToDmabufTest, GLTexture2DToDmabuf) {
TYPED_TEST_P_WITH_EXPANSION(GLImageNativePixmapToDmabufTest,
MAYBE_GLTexture2DToDmabuf) {
if (this->delegate_.SkipTest())
return;
......@@ -94,8 +110,8 @@ TYPED_TEST_P(GLImageNativePixmapToDmabufTest, GLTexture2DToDmabuf) {
}
// This test verifies that GLImageNativePixmap can be exported as dmabuf fds.
REGISTER_TYPED_TEST_SUITE_P(GLImageNativePixmapToDmabufTest,
GLTexture2DToDmabuf);
REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(GLImageNativePixmapToDmabufTest,
MAYBE_GLTexture2DToDmabuf);
using GLImageTestTypes = testing::Types<
GLImageNativePixmapTestDelegate<gfx::BufferFormat::RGBX_8888>,
......
......@@ -16,6 +16,12 @@
#include "ui/platform_window/platform_window_delegate.h"
#include "ui/platform_window/win/win_window.h"
#endif
// TODO(crbug.com/969798): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_SurfaceFormatTest DISABLED_SurfaceFormatTest
#else
#define MAYBE_SurfaceFormatTest SurfaceFormatTest
#endif
namespace gl {
......@@ -33,7 +39,7 @@ class GLSurfaceEGLTest : public testing::Test {
#if !defined(MEMORY_SANITIZER)
// Fails under MSAN: crbug.com/886995
TEST_F(GLSurfaceEGLTest, SurfaceFormatTest) {
TEST_F(GLSurfaceEGLTest, MAYBE_SurfaceFormatTest) {
GLSurfaceFormat surface_format = GLSurfaceFormat();
surface_format.SetDepthBits(24);
surface_format.SetStencilBits(8);
......
......@@ -33,6 +33,21 @@
#include "base/mac/mac_util.h"
#endif
// TODO(crbug.com/969798): Fix memory leaks in tests and re-enable on LSAN.
#ifdef LEAK_SANITIZER
#define MAYBE_Create DISABLED_Create
#else
#define MAYBE_Create Create
#endif
// TYPED_TEST_P() and REGISTER_TYPED_TEST_SUITE_P() don't do macro expansion on
// their parameters, making the MAYBE_ technique above not work -- these macros
// are a workaround.
#define TYPED_TEST_P_WITH_EXPANSION(SuiteName, TestName) \
TYPED_TEST_P(SuiteName, TestName)
#define REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(SuiteName, ...) \
REGISTER_TYPED_TEST_SUITE_P(SuiteName, __VA_ARGS__)
namespace gl {
namespace internal {
......@@ -75,7 +90,7 @@ class GLImageTest : public testing::Test {
TYPED_TEST_SUITE_P(GLImageTest);
TYPED_TEST_P(GLImageTest, Create) {
TYPED_TEST_P_WITH_EXPANSION(GLImageTest, MAYBE_Create) {
if (this->delegate_.SkipTest())
return;
......@@ -104,7 +119,7 @@ TYPED_TEST_P(GLImageTest, Create) {
// The GLImageTest test case verifies the behaviour that is expected from a
// GLImage in order to be conformant.
REGISTER_TYPED_TEST_SUITE_P(GLImageTest, Create);
REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(GLImageTest, MAYBE_Create);
template <typename GLImageTestDelegate>
class GLImageOddSizeTest : public GLImageTest<GLImageTestDelegate> {};
......@@ -112,7 +127,7 @@ class GLImageOddSizeTest : public GLImageTest<GLImageTestDelegate> {};
// This test verifies that odd-sized GLImages can be created and destroyed.
TYPED_TEST_SUITE_P(GLImageOddSizeTest);
TYPED_TEST_P(GLImageOddSizeTest, Create) {
TYPED_TEST_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create) {
if (this->delegate_.SkipTest())
return;
......@@ -131,7 +146,7 @@ TYPED_TEST_P(GLImageOddSizeTest, Create) {
// The GLImageTest test case verifies the behaviour that is expected from a
// GLImage in order to be conformant.
REGISTER_TYPED_TEST_SUITE_P(GLImageOddSizeTest, Create);
REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create);
template <typename GLImageTestDelegate>
class GLImageZeroInitializeTest : public GLImageTest<GLImageTestDelegate> {};
......@@ -311,4 +326,9 @@ REGISTER_TYPED_TEST_SUITE_P(GLImageCopyTest, CopyTexImage);
} // namespace gl
// Avoid polluting source files that include this header.
#undef MAYBE_Create
#undef TYPED_TEST_P_WITH_EXPANSION
#undef REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION
#endif // UI_GL_TEST_GL_IMAGE_TEST_TEMPLATE_H_
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