Commit 75cf986f authored by Klaus Weidner's avatar Klaus Weidner Committed by Commit Bot

Move GMB shared_memory Create unittest to template

In preparation for sharing the test, move the Create test to
the test template.

(Split from http://crrev.com/c/680100 for AHardwareBuffer-based
GpuMemoryBuffer)

BUG=761432

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I766f115cde35777a93351a57c7a5fa64d62f2368
Reviewed-on: https://chromium-review.googlesource.com/747604
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Reviewed-by: default avatarDavid Reveman <reveman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513258}
parent 0beedbe0
......@@ -14,30 +14,9 @@ INSTANTIATE_TYPED_TEST_CASE_P(GpuMemoryBufferImplSharedMemory,
GpuMemoryBufferImplTest,
GpuMemoryBufferImplSharedMemory);
void BufferDestroyed(bool* destroyed, const gpu::SyncToken& sync_token) {
*destroyed = true;
}
TEST(GpuMemoryBufferImplSharedMemoryTest, Create) {
const gfx::GpuMemoryBufferId kBufferId(1);
gfx::Size buffer_size(8, 8);
gfx::BufferUsage usage = gfx::BufferUsage::GPU_READ;
for (auto format : gfx::GetBufferFormatsForTesting()) {
bool destroyed = false;
std::unique_ptr<GpuMemoryBufferImplSharedMemory> buffer(
GpuMemoryBufferImplSharedMemory::Create(
kBufferId, buffer_size, format, usage,
base::Bind(&BufferDestroyed, base::Unretained(&destroyed))));
ASSERT_TRUE(buffer);
EXPECT_EQ(buffer->GetFormat(), format);
// Check if destruction callback is executed when deleting the buffer.
buffer.reset();
ASSERT_TRUE(destroyed);
}
}
INSTANTIATE_TYPED_TEST_CASE_P(GpuMemoryBufferImplSharedMemory,
GpuMemoryBufferImplCreateTest,
GpuMemoryBufferImplSharedMemory);
} // namespace
} // namespace gpu
......@@ -57,6 +57,11 @@ class GpuMemoryBufferImplTest : public testing::Test {
}
};
// Subclass test case for tests that require a Create() method,
// not all implementations have that.
template <typename GpuMemoryBufferImplType>
class GpuMemoryBufferImplCreateTest : public testing::Test {};
TYPED_TEST_CASE_P(GpuMemoryBufferImplTest);
TYPED_TEST_P(GpuMemoryBufferImplTest, CreateFromHandle) {
......@@ -221,6 +226,36 @@ REGISTER_TYPED_TEST_CASE_P(GpuMemoryBufferImplTest,
Map,
PersistentMap);
TYPED_TEST_CASE_P(GpuMemoryBufferImplCreateTest);
TYPED_TEST_P(GpuMemoryBufferImplCreateTest, Create) {
const gfx::GpuMemoryBufferId kBufferId(1);
const gfx::Size kBufferSize(8, 8);
gfx::BufferUsage usage = gfx::BufferUsage::GPU_READ;
for (auto format : gfx::GetBufferFormatsForTesting()) {
if (!TypeParam::IsConfigurationSupported(format, usage))
continue;
bool destroyed = false;
gfx::GpuMemoryBufferHandle handle;
std::unique_ptr<TypeParam> buffer(TypeParam::Create(
kBufferId, kBufferSize, format, usage,
base::Bind(
[](bool* destroyed, const gpu::SyncToken&) { *destroyed = true; },
base::Unretained(&destroyed))));
ASSERT_TRUE(buffer);
EXPECT_EQ(buffer->GetFormat(), format);
// Check if destruction callback is executed when deleting the buffer.
buffer.reset();
ASSERT_TRUE(destroyed);
}
}
// The GpuMemoryBufferImplCreateTest test case verifies behavior that is
// expected from a GpuMemoryBuffer Create() implementation in order to be
// conformant.
REGISTER_TYPED_TEST_CASE_P(GpuMemoryBufferImplCreateTest, Create);
} // namespace gpu
#endif // GPU_IPC_CLIENT_GPU_MEMORY_BUFFER_IMPL_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