Commit b2ecf020 authored by Alan Cutter's avatar Alan Cutter Committed by Commit Bot

Fix warnings for GLImageBindTest and GLImageZeroInitializeTest

This CL splits the definition of GLImageBindTest and
GLImageZeroInitializeTest out into their own header files so source
files that don't use them don't trigger the following warnings in
gl_unittests:
The following parameterized test case is not instantiated: UninstantiatedTypeParamaterizedTestSuite<GLImageBindTest>
The following parameterized test case is not instantiated: UninstantiatedTypeParamaterizedTestSuite<GLImageZeroInitializeTest>

Bug: 1045846
Change-Id: If64404d069b60405c6333f8a77abda85a5b11bd9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2143777
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarJonathan Backer <backer@chromium.org>
Reviewed-by: default avatarSadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#759173}
parent 0d1273c6
...@@ -482,10 +482,12 @@ jumbo_static_library("gl_unittest_utils") { ...@@ -482,10 +482,12 @@ jumbo_static_library("gl_unittest_utils") {
jumbo_static_library("test_support") { jumbo_static_library("test_support") {
testonly = true testonly = true
sources = [ sources = [
"test/gl_image_bind_test_template.h",
"test/gl_image_test_support.cc", "test/gl_image_test_support.cc",
"test/gl_image_test_support.h", "test/gl_image_test_support.h",
"test/gl_image_test_template.cc", "test/gl_image_test_template.cc",
"test/gl_image_test_template.h", "test/gl_image_test_template.h",
"test/gl_image_zero_initialize_test_template.h",
"test/gl_surface_test_support.cc", "test/gl_surface_test_support.cc",
"test/gl_surface_test_support.h", "test/gl_surface_test_support.h",
"test/gl_test_helper.cc", "test/gl_test_helper.cc",
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
#include "base/memory/scoped_refptr.h" #include "base/memory/scoped_refptr.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "ui/gl/gl_image_ahardwarebuffer.h" #include "ui/gl/gl_image_ahardwarebuffer.h"
#include "ui/gl/test/gl_image_bind_test_template.h"
#include "ui/gl/test/gl_image_test_template.h" #include "ui/gl/test/gl_image_test_template.h"
#include "ui/gl/test/gl_image_zero_initialize_test_template.h"
namespace gl { namespace gl {
namespace { namespace {
......
...@@ -7,7 +7,9 @@ ...@@ -7,7 +7,9 @@
#include "build/build_config.h" #include "build/build_config.h"
#include "ui/gl/gl_angle_util_win.h" #include "ui/gl/gl_angle_util_win.h"
#include "ui/gl/gl_bindings.h" #include "ui/gl/gl_bindings.h"
#include "ui/gl/test/gl_image_bind_test_template.h"
#include "ui/gl/test/gl_image_test_template.h" #include "ui/gl/test/gl_image_test_template.h"
#include "ui/gl/test/gl_image_zero_initialize_test_template.h"
namespace gl { namespace gl {
namespace { namespace {
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
#include "ui/gfx/buffer_format_util.h" #include "ui/gfx/buffer_format_util.h"
#include "ui/gl/gl_angle_util_win.h" #include "ui/gl/gl_angle_util_win.h"
#include "ui/gl/gl_image_dxgi.h" #include "ui/gl/gl_image_dxgi.h"
#include "ui/gl/test/gl_image_bind_test_template.h"
#include "ui/gl/test/gl_image_test_template.h" #include "ui/gl/test/gl_image_test_template.h"
#include "ui/gl/test/gl_image_zero_initialize_test_template.h"
namespace gl { namespace gl {
namespace { namespace {
......
...@@ -11,7 +11,9 @@ ...@@ -11,7 +11,9 @@
#include "ui/gfx/buffer_format_util.h" #include "ui/gfx/buffer_format_util.h"
#include "ui/gfx/mac/io_surface.h" #include "ui/gfx/mac/io_surface.h"
#include "ui/gl/gl_image_io_surface.h" #include "ui/gl/gl_image_io_surface.h"
#include "ui/gl/test/gl_image_bind_test_template.h"
#include "ui/gl/test/gl_image_test_template.h" #include "ui/gl/test/gl_image_test_template.h"
#include "ui/gl/test/gl_image_zero_initialize_test_template.h"
namespace gl { namespace gl {
namespace { namespace {
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_GL_TEST_GL_IMAGE_BIND_TEST_TEMPLATE_H_
#define UI_GL_TEST_GL_IMAGE_BIND_TEST_TEMPLATE_H_
#include "ui/gl/test/gl_image_test_template.h"
namespace gl {
template <typename GLImageTestDelegate>
class GLImageBindTest : public GLImageTest<GLImageTestDelegate> {};
TYPED_TEST_SUITE_P(GLImageBindTest);
TYPED_TEST_P(GLImageBindTest, BindTexImage) {
if (this->delegate_.SkipTest())
return;
const gfx::Size image_size(256, 256);
const uint8_t* image_color = this->delegate_.GetImageColor();
GLuint framebuffer =
GLTestHelper::SetupFramebuffer(image_size.width(), image_size.height());
ASSERT_TRUE(framebuffer);
glBindFramebufferEXT(GL_FRAMEBUFFER, framebuffer);
glViewport(0, 0, image_size.width(), image_size.height());
// Create a solid color green image of preferred format. This must succeed
// in order for a GLImage to be conformant.
scoped_refptr<GLImage> image =
this->delegate_.CreateSolidColorImage(image_size, image_color);
ASSERT_TRUE(image);
// Initialize a blue texture of the same size as |image|.
unsigned target = this->delegate_.GetTextureTarget();
GLuint texture = GLTestHelper::CreateTexture(target);
glBindTexture(target, texture);
// Bind |image| to |texture|.
bool rv = image->BindTexImage(target);
EXPECT_TRUE(rv);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// Draw |texture| to viewport.
internal::DrawTextureQuad(target, image_size);
// Read back pixels to check expectations.
GLTestHelper::CheckPixelsWithError(
0, 0, image_size.width(), image_size.height(),
this->delegate_.GetAdmissibleError(), image_color);
// Clean up.
glDeleteTextures(1, &texture);
glDeleteFramebuffersEXT(1, &framebuffer);
}
REGISTER_TYPED_TEST_SUITE_P(GLImageBindTest, BindTexImage);
} // namespace gl
#endif // UI_GL_TEST_GL_IMAGE_BIND_TEST_TEMPLATE_H_
...@@ -153,112 +153,6 @@ TYPED_TEST_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create) { ...@@ -153,112 +153,6 @@ TYPED_TEST_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create) {
// GLImage in order to be conformant. // GLImage in order to be conformant.
REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create); REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create);
template <typename GLImageTestDelegate>
class GLImageZeroInitializeTest : public GLImageTest<GLImageTestDelegate> {};
// This test verifies that if an uninitialized image is bound to a texture, the
// result is zero-initialized.
TYPED_TEST_SUITE_P(GLImageZeroInitializeTest);
TYPED_TEST_P(GLImageZeroInitializeTest, ZeroInitialize) {
if (this->delegate_.SkipTest())
return;
#if defined(OS_MACOSX)
// This functionality is disabled on Yosemite because it is suspected of
// causing performance regressions on old hardware. https://crbug.com/606850.
if (base::mac::IsOS10_10())
return;
#endif
const gfx::Size image_size(256, 256);
GLuint framebuffer =
GLTestHelper::SetupFramebuffer(image_size.width(), image_size.height());
ASSERT_TRUE(framebuffer);
glBindFramebufferEXT(GL_FRAMEBUFFER, framebuffer);
glViewport(0, 0, image_size.width(), image_size.height());
// Create an uninitialized image of preferred format.
scoped_refptr<GLImage> image = this->delegate_.CreateImage(image_size);
// Create a texture that |image| will be bound to.
GLenum target = this->delegate_.GetTextureTarget();
GLuint texture = GLTestHelper::CreateTexture(target);
glBindTexture(target, texture);
// Bind |image| to |texture|.
bool rv = image->BindTexImage(target);
EXPECT_TRUE(rv);
// Draw |texture| to viewport.
internal::DrawTextureQuad(target, image_size);
// Release |image| from |texture|.
image->ReleaseTexImage(target);
// Read back pixels to check expectations.
const uint8_t zero_color[] = {0, 0, 0, 0};
GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(),
zero_color);
// Clean up.
glDeleteTextures(1, &texture);
glDeleteFramebuffersEXT(1, &framebuffer);
}
REGISTER_TYPED_TEST_SUITE_P(GLImageZeroInitializeTest, ZeroInitialize);
template <typename GLImageTestDelegate>
class GLImageBindTest : public GLImageTest<GLImageTestDelegate> {};
TYPED_TEST_SUITE_P(GLImageBindTest);
TYPED_TEST_P(GLImageBindTest, BindTexImage) {
if (this->delegate_.SkipTest())
return;
const gfx::Size image_size(256, 256);
const uint8_t* image_color = this->delegate_.GetImageColor();
GLuint framebuffer =
GLTestHelper::SetupFramebuffer(image_size.width(), image_size.height());
ASSERT_TRUE(framebuffer);
glBindFramebufferEXT(GL_FRAMEBUFFER, framebuffer);
glViewport(0, 0, image_size.width(), image_size.height());
// Create a solid color green image of preferred format. This must succeed
// in order for a GLImage to be conformant.
scoped_refptr<GLImage> image =
this->delegate_.CreateSolidColorImage(image_size, image_color);
ASSERT_TRUE(image);
// Initialize a blue texture of the same size as |image|.
unsigned target = this->delegate_.GetTextureTarget();
GLuint texture = GLTestHelper::CreateTexture(target);
glBindTexture(target, texture);
// Bind |image| to |texture|.
bool rv = image->BindTexImage(target);
EXPECT_TRUE(rv);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// Draw |texture| to viewport.
internal::DrawTextureQuad(target, image_size);
// Read back pixels to check expectations.
GLTestHelper::CheckPixelsWithError(
0, 0, image_size.width(), image_size.height(),
this->delegate_.GetAdmissibleError(), image_color);
// Clean up.
glDeleteTextures(1, &texture);
glDeleteFramebuffersEXT(1, &framebuffer);
}
REGISTER_TYPED_TEST_SUITE_P(GLImageBindTest, BindTexImage);
template <typename GLImageTestDelegate> template <typename GLImageTestDelegate>
class GLImageCopyTest : public GLImageTest<GLImageTestDelegate> {}; class GLImageCopyTest : public GLImageTest<GLImageTestDelegate> {};
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_GL_TEST_GL_IMAGE_ZERO_INITIALIZE_TEST_TEMPLATE_H_
#define UI_GL_TEST_GL_IMAGE_ZERO_INITIALIZE_TEST_TEMPLATE_H_
#include "build/build_config.h"
#include "ui/gl/test/gl_image_test_template.h"
namespace gl {
template <typename GLImageTestDelegate>
class GLImageZeroInitializeTest : public GLImageTest<GLImageTestDelegate> {};
// This test verifies that if an uninitialized image is bound to a texture, the
// result is zero-initialized.
TYPED_TEST_SUITE_P(GLImageZeroInitializeTest);
TYPED_TEST_P(GLImageZeroInitializeTest, ZeroInitialize) {
if (this->delegate_.SkipTest())
return;
#if defined(OS_MACOSX)
// This functionality is disabled on Yosemite because it is suspected of
// causing performance regressions on old hardware. https://crbug.com/606850.
if (base::mac::IsOS10_10())
return;
#endif
const gfx::Size image_size(256, 256);
GLuint framebuffer =
GLTestHelper::SetupFramebuffer(image_size.width(), image_size.height());
ASSERT_TRUE(framebuffer);
glBindFramebufferEXT(GL_FRAMEBUFFER, framebuffer);
glViewport(0, 0, image_size.width(), image_size.height());
// Create an uninitialized image of preferred format.
scoped_refptr<GLImage> image = this->delegate_.CreateImage(image_size);
// Create a texture that |image| will be bound to.
GLenum target = this->delegate_.GetTextureTarget();
GLuint texture = GLTestHelper::CreateTexture(target);
glBindTexture(target, texture);
// Bind |image| to |texture|.
bool rv = image->BindTexImage(target);
EXPECT_TRUE(rv);
// Draw |texture| to viewport.
internal::DrawTextureQuad(target, image_size);
// Release |image| from |texture|.
image->ReleaseTexImage(target);
// Read back pixels to check expectations.
const uint8_t zero_color[] = {0, 0, 0, 0};
GLTestHelper::CheckPixels(0, 0, image_size.width(), image_size.height(),
zero_color);
// Clean up.
glDeleteTextures(1, &texture);
glDeleteFramebuffersEXT(1, &framebuffer);
}
REGISTER_TYPED_TEST_SUITE_P(GLImageZeroInitializeTest, ZeroInitialize);
} // namespace gl
#endif // UI_GL_TEST_GL_IMAGE_ZERO_INITIALIZE_TEST_TEMPLATE_H_
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "ui/gfx/buffer_types.h" #include "ui/gfx/buffer_types.h"
#include "ui/gfx/client_native_pixmap.h" #include "ui/gfx/client_native_pixmap.h"
#include "ui/gl/gl_image_native_pixmap.h" #include "ui/gl/gl_image_native_pixmap.h"
#include "ui/gl/test/gl_image_bind_test_template.h"
#include "ui/gl/test/gl_image_test_template.h" #include "ui/gl/test/gl_image_test_template.h"
#include "ui/ozone/public/client_native_pixmap_factory_ozone.h" #include "ui/ozone/public/client_native_pixmap_factory_ozone.h"
#include "ui/ozone/public/ozone_platform.h" #include "ui/ozone/public/ozone_platform.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