Chromium Code Reviews| Index: content/common/cc_messages_unittest.cc |
| diff --git a/content/common/cc_messages_unittest.cc b/content/common/cc_messages_unittest.cc |
| index 6ba87ad69ae9af0e874ab05209292b62dd205d2f..524888113f27ef8efa6d04cb57e0ef8cfda0cea6 100644 |
| --- a/content/common/cc_messages_unittest.cc |
| +++ b/content/common/cc_messages_unittest.cc |
| @@ -6,6 +6,8 @@ |
| #include <string.h> |
| +#include <algorithm> |
| + |
| #include "base/command_line.h" |
| #include "cc/output/compositor_frame.h" |
| #include "content/public/common/content_switches.h" |
| @@ -555,5 +557,54 @@ TEST_F(CCMessagesTest, Resources) { |
| Compare(arbitrary_resource2, frame_out.resource_list[1]); |
| } |
| +TEST_F(CCMessagesTest, LargestQuadType) { |
| + size_t largest = 0; |
| + |
| + bool done = false; |
| + for (int i = 0; !done; ++i) { |
| + switch (static_cast<DrawQuad::Material>(i)) { |
| + case cc::DrawQuad::CHECKERBOARD: |
| + largest = std::max(largest, sizeof(cc::CheckerboardDrawQuad)); |
| + break; |
| + case cc::DrawQuad::DEBUG_BORDER: |
| + largest = std::max(largest, sizeof(cc::DebugBorderDrawQuad)); |
| + break; |
| + case cc::DrawQuad::IO_SURFACE_CONTENT: |
| + largest = std::max(largest, sizeof(cc::IOSurfaceDrawQuad)); |
| + break; |
| + case cc::DrawQuad::PICTURE_CONTENT: |
| + largest = std::max(largest, sizeof(cc::PictureDrawQuad)); |
| + break; |
| + case cc::DrawQuad::TEXTURE_CONTENT: |
| + largest = std::max(largest, sizeof(cc::TextureDrawQuad)); |
| + break; |
| + case cc::DrawQuad::RENDER_PASS: |
| + largest = std::max(largest, sizeof(cc::RenderPassDrawQuad)); |
| + break; |
| + case cc::DrawQuad::SOLID_COLOR: |
| + largest = std::max(largest, sizeof(cc::SolidColorDrawQuad)); |
| + break; |
| + case cc::DrawQuad::TILED_CONTENT: |
| + largest = std::max(largest, sizeof(cc::TileDrawQuad)); |
| + break; |
| + case cc::DrawQuad::STREAM_VIDEO_CONTENT: |
| + largest = std::max(largest, sizeof(cc::StreamVideoDrawQuad)); |
| + break; |
| + case cc::DrawQuad::YUV_VIDEO_CONTENT: |
| + largest = std::max(largest, sizeof(cc::YUVVideoDrawQuad)); |
| + break; |
| + case cc::DrawQuad::INVALID: |
| + break; |
| + default: |
| + done = true; |
| + } |
| + } |
| + |
| + // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever |
| + // changes, then the ParamTraits<cc::RenderPass>::ReserveSizeForWrite() method |
| + // needs to be updated as well to use the new largest quad. |
| + EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); |
|
Tom Sepez
2013/10/24 17:48:06
Create a union consisting of all these types, and
danakj
2013/10/24 17:51:38
That does not create a compiler error, however, if
|
| +} |
| + |
| } // namespace |
| } // namespace content |