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..15b605c338f618b0c0ecea527c7b0356abe5aae1 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 ReserveSizeForRenderPassWrite() method needs to be |
+ // updated as well to use the new largest quad. |
+ EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); |
+} |
+ |
} // namespace |
} // namespace content |