Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(948)

Unified Diff: content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc

Issue 1389133002: content: Use type-parameterized tests for GpuMemoryBuffer implementations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add blankline Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc b/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc
deleted file mode 100644
index 587c02409873b904496406e50a4502b6a3172b03..0000000000000000000000000000000000000000
--- a/content/common/gpu/client/gpu_memory_buffer_impl_unittest.cc
+++ /dev/null
@@ -1,240 +0,0 @@
-// Copyright 2014 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.
-
-#include "content/common/gpu/client/gpu_memory_buffer_impl.h"
-
-#include "base/bind.h"
-#include "content/common/gpu/gpu_memory_buffer_factory.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/gfx/buffer_format_util.h"
-
-namespace content {
-namespace {
-
-const int kClientId = 1;
-
-class GpuMemoryBufferImplTest
- : public testing::TestWithParam<gfx::GpuMemoryBufferType> {
- public:
- GpuMemoryBufferImplTest() : buffer_count_(0), factory_(nullptr) {}
-
- // Overridden from testing::Test:
- void SetUp() override {
- factory_ = GpuMemoryBufferFactory::Create(GetParam());
- factory_->GetSupportedGpuMemoryBufferConfigurations(
- &supported_configurations_);
- }
- void TearDown() override { factory_.reset(); }
-
- gfx::GpuMemoryBufferHandle CreateGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
- const gfx::Size& size,
- gfx::BufferFormat format,
- gfx::BufferUsage usage) {
- ++buffer_count_;
- return factory_->CreateGpuMemoryBuffer(id, size, format, usage, kClientId,
- gfx::kNullPluginWindow);
- }
-
- void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, uint32 sync_point) {
- factory_->DestroyGpuMemoryBuffer(id, kClientId);
- DCHECK_GT(buffer_count_, 0);
- --buffer_count_;
- }
-
- std::vector<GpuMemoryBufferFactory::Configuration> supported_configurations_;
- int buffer_count_;
-
- private:
- scoped_ptr<GpuMemoryBufferFactory> factory_;
-};
-
-TEST_P(GpuMemoryBufferImplTest, CreateFromHandle) {
- const gfx::GpuMemoryBufferId kBufferId(1);
-
- gfx::Size buffer_size(8, 8);
-
- for (auto configuration : supported_configurations_) {
- scoped_ptr<GpuMemoryBufferImpl> buffer(
- GpuMemoryBufferImpl::CreateFromHandle(
- CreateGpuMemoryBuffer(kBufferId, buffer_size, configuration.format,
- configuration.usage),
- buffer_size, configuration.format, configuration.usage,
- base::Bind(&GpuMemoryBufferImplTest::DestroyGpuMemoryBuffer,
- base::Unretained(this), kBufferId)));
- EXPECT_EQ(1, buffer_count_);
- ASSERT_TRUE(buffer);
- EXPECT_EQ(buffer->GetFormat(), configuration.format);
-
- // Check if destruction callback is executed when deleting the buffer.
- buffer.reset();
- EXPECT_EQ(0, buffer_count_);
- }
-}
-
-TEST_P(GpuMemoryBufferImplTest, Map) {
- const gfx::GpuMemoryBufferId kBufferId(1);
-
- // Use a multiple of 4 for both dimensions to support compressed formats.
- gfx::Size buffer_size(4, 4);
-
- for (auto configuration : supported_configurations_) {
- if (configuration.usage != gfx::BufferUsage::MAP)
- continue;
-
- scoped_ptr<GpuMemoryBufferImpl> buffer(
- GpuMemoryBufferImpl::CreateFromHandle(
- CreateGpuMemoryBuffer(kBufferId, buffer_size, configuration.format,
- configuration.usage),
- buffer_size, configuration.format, configuration.usage,
- base::Bind(&GpuMemoryBufferImplTest::DestroyGpuMemoryBuffer,
- base::Unretained(this), kBufferId)));
- ASSERT_TRUE(buffer);
- EXPECT_FALSE(buffer->IsMapped());
-
- size_t num_planes =
- gfx::NumberOfPlanesForBufferFormat(configuration.format);
-
- // Map buffer into user space.
- scoped_ptr<void*[]> mapped_buffers(new void*[num_planes]);
- bool rv = buffer->Map(mapped_buffers.get());
- ASSERT_TRUE(rv);
- EXPECT_TRUE(buffer->IsMapped());
-
- // Get strides.
- scoped_ptr<int[]> strides(new int[num_planes]);
- buffer->GetStride(strides.get());
-
- // Copy and compare mapped buffers.
- for (size_t plane = 0; plane < num_planes; ++plane) {
- size_t row_size_in_bytes = 0;
- EXPECT_TRUE(gfx::RowSizeForBufferFormatChecked(
- buffer_size.width(), configuration.format, plane,
- &row_size_in_bytes));
- EXPECT_GT(row_size_in_bytes, 0u);
-
- scoped_ptr<char[]> data(new char[row_size_in_bytes]);
- memset(data.get(), 0x2a + plane, row_size_in_bytes);
-
- size_t height =
- buffer_size.height() /
- gfx::SubsamplingFactorForBufferFormat(configuration.format, plane);
- for (size_t y = 0; y < height; ++y) {
- memcpy(static_cast<char*>(mapped_buffers[plane]) + y * strides[plane],
- data.get(), row_size_in_bytes);
- EXPECT_EQ(memcmp(static_cast<char*>(mapped_buffers[plane]) +
- y * strides[plane],
- data.get(), row_size_in_bytes),
- 0);
- }
- }
-
- buffer->Unmap();
- EXPECT_FALSE(buffer->IsMapped());
- }
-}
-
-TEST_P(GpuMemoryBufferImplTest, PersistentMap) {
- const gfx::GpuMemoryBufferId kBufferId(1);
-
- // Use a multiple of 4 for both dimensions to support compressed formats.
- gfx::Size buffer_size(4, 4);
-
- for (auto configuration : supported_configurations_) {
- if (configuration.usage != gfx::BufferUsage::PERSISTENT_MAP)
- continue;
-
- scoped_ptr<GpuMemoryBufferImpl> buffer(
- GpuMemoryBufferImpl::CreateFromHandle(
- CreateGpuMemoryBuffer(kBufferId, buffer_size, configuration.format,
- configuration.usage),
- buffer_size, configuration.format, configuration.usage,
- base::Bind(&GpuMemoryBufferImplTest::DestroyGpuMemoryBuffer,
- base::Unretained(this), kBufferId)));
- ASSERT_TRUE(buffer);
- EXPECT_FALSE(buffer->IsMapped());
-
- size_t num_planes =
- gfx::NumberOfPlanesForBufferFormat(configuration.format);
-
- // Map buffer into user space.
- scoped_ptr<void* []> mapped_buffers(new void* [num_planes]);
- bool rv = buffer->Map(mapped_buffers.get());
- ASSERT_TRUE(rv);
- EXPECT_TRUE(buffer->IsMapped());
-
- // Get strides.
- scoped_ptr<int[]> strides(new int[num_planes]);
- buffer->GetStride(strides.get());
-
- // Copy and compare mapped buffers.
- for (size_t plane = 0; plane < num_planes; ++plane) {
- size_t row_size_in_bytes;
- EXPECT_TRUE(gfx::RowSizeForBufferFormatChecked(
- buffer_size.width(), configuration.format, plane,
- &row_size_in_bytes));
-
- scoped_ptr<char[]> data(new char[row_size_in_bytes]);
- memset(data.get(), 0x2a + plane, row_size_in_bytes);
-
- size_t height =
- buffer_size.height() /
- gfx::SubsamplingFactorForBufferFormat(configuration.format, plane);
- for (size_t y = 0; y < height; ++y) {
- memcpy(static_cast<char*>(mapped_buffers[plane]) + y * strides[plane],
- data.get(), row_size_in_bytes);
- EXPECT_EQ(memcmp(static_cast<char*>(mapped_buffers[plane]) +
- y * strides[plane],
- data.get(), row_size_in_bytes),
- 0);
- }
- }
-
- buffer->Unmap();
- EXPECT_FALSE(buffer->IsMapped());
-
- // Remap the buffer, and compare again. It should contain the same data.
- rv = buffer->Map(mapped_buffers.get());
- ASSERT_TRUE(rv);
- EXPECT_TRUE(buffer->IsMapped());
-
- buffer->GetStride(strides.get());
-
- for (size_t plane = 0; plane < num_planes; ++plane) {
- size_t row_size_in_bytes;
- EXPECT_TRUE(gfx::RowSizeForBufferFormatChecked(
- buffer_size.width(), configuration.format, plane,
- &row_size_in_bytes));
-
- scoped_ptr<char[]> data(new char[row_size_in_bytes]);
- memset(data.get(), 0x2a + plane, row_size_in_bytes);
-
- size_t height =
- buffer_size.height() /
- gfx::SubsamplingFactorForBufferFormat(configuration.format, plane);
- for (size_t y = 0; y < height; ++y) {
- EXPECT_EQ(memcmp(static_cast<char*>(mapped_buffers[plane]) +
- y * strides[plane],
- data.get(), row_size_in_bytes),
- 0);
- }
- }
-
- buffer->Unmap();
- EXPECT_FALSE(buffer->IsMapped());
- }
-}
-
-std::vector<gfx::GpuMemoryBufferType> GetSupportedGpuMemoryBufferTypes() {
- std::vector<gfx::GpuMemoryBufferType> supported_types;
- GpuMemoryBufferFactory::GetSupportedTypes(&supported_types);
- return supported_types;
-}
-
-INSTANTIATE_TEST_CASE_P(
- GpuMemoryBufferImplTests,
- GpuMemoryBufferImplTest,
- ::testing::ValuesIn(GetSupportedGpuMemoryBufferTypes()));
-
-} // namespace
-} // namespace content

Powered by Google App Engine
This is Rietveld 408576698