Chromium Code Reviews| Index: tools/ipc_fuzzer/mutate/generate.cc |
| diff --git a/tools/ipc_fuzzer/mutate/generate.cc b/tools/ipc_fuzzer/mutate/generate.cc |
| index d002d8b72f4e44446bdf5b99580b2e0ff4f25607..1fcef4d15d3c44b57c2a7d1770ff439538c91748 100644 |
| --- a/tools/ipc_fuzzer/mutate/generate.cc |
| +++ b/tools/ipc_fuzzer/mutate/generate.cc |
| @@ -709,16 +709,111 @@ struct GenerateTraits<blink::WebGamepadButton> { |
| template <> |
| struct GenerateTraits<cc::CompositorFrame> { |
| - // FIXME: this should actually generate something |
| static bool Generate(cc::CompositorFrame* p, Generator* generator) { |
| + if (!GenerateParam(&p->metadata, generator)) |
| + return false; |
| + p->delegated_frame_data.reset(new cc::DelegatedFrameData); |
|
inferno
2015/01/28 22:44:36
empty constructor for clarity everywhere
s/p->dele
inferno
2015/01/28 22:44:36
Should we be generating all of these three at once
Martin Barbella
2015/01/28 23:03:59
Yeah, it looks like we should only be generating o
Martin Barbella
2015/01/28 23:32:59
Both comments addressed.
|
| + if (!GenerateParam(p->delegated_frame_data.get(), generator)) |
| + return false; |
| + p->gl_frame_data.reset(new cc::GLFrameData); |
| + if (!GenerateParam(p->gl_frame_data.get(), generator)) |
| + return false; |
| + p->software_frame_data.reset(new cc::SoftwareFrameData); |
| + if (!GenerateParam(p->software_frame_data.get(), generator)) |
| + return false; |
| return true; |
| } |
| }; |
| template <> |
| struct GenerateTraits<cc::CompositorFrameAck> { |
| - // FIXME: this should actually generate something |
| static bool Generate(cc::CompositorFrameAck* p, Generator* generator) { |
| + if (!GenerateParam(&p->resources, generator)) |
| + return false; |
| + if (!GenerateParam(&p->last_software_frame_id, generator)) |
| + return false; |
| + p->gl_frame_data.reset(new cc::GLFrameData); |
| + if (!GenerateParam(p->gl_frame_data.get(), generator)) |
| + return false; |
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| +struct GenerateTraits<cc::DelegatedFrameData> { |
| + static bool Generate(cc::DelegatedFrameData* p, Generator* generator) { |
| + if (!GenerateParam(&p->device_scale_factor, generator)) |
| + return false; |
| + if (!GenerateParam(&p->resource_list, generator)) |
| + return false; |
| + if (!GenerateParam(&p->render_pass_list, generator)) |
| + return false; |
| + return true; |
| + } |
| +}; |
| + |
| +template <class A> |
| +struct GenerateTraits<cc::ListContainer<A>> { |
| + static bool Generate(cc::ListContainer<A>* p, Generator* generator) { |
| + // FIXME(mbarbella): This should actually generate something. |
|
Tom Sepez
2015/01/28 22:58:09
nit: style guide says TODO(mbarbella): ..
Martin Barbella
2015/01/28 23:32:59
Done.
|
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| +struct GenerateTraits<cc::QuadList> { |
| + static bool Generate(cc::QuadList* p, Generator* generator) { |
| + // FIXME(mbarbella): This should actually generate something. |
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| +struct GenerateTraits<cc::RenderPass> { |
| + static bool Generate(cc::RenderPass* p, Generator* generator) { |
| + if (!GenerateParam(&p->id, generator)) |
| + return false; |
| + if (!GenerateParam(&p->output_rect, generator)) |
| + return false; |
| + if (!GenerateParam(&p->damage_rect, generator)) |
| + return false; |
| + if (!GenerateParam(&p->transform_to_root_target, generator)) |
| + return false; |
| + if (!GenerateParam(&p->has_transparent_background, generator)) |
| + return false; |
| + if (!GenerateParam(&p->quad_list, generator)) |
|
inferno
2015/01/28 22:44:36
please add fixme for https://code.google.com/p/chr
Martin Barbella
2015/01/28 23:03:59
I didn't add it because it doesn't seem to be gett
Martin Barbella
2015/01/28 23:32:59
Left a comment here. Could you take a look to make
|
| + return false; |
| + if (!GenerateParam(&p->shared_quad_state_list, generator)) |
| + return false; |
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| +struct GenerateTraits<cc::RenderPassList> { |
| + static bool Generate(cc::RenderPassList* p, Generator* generator) { |
| + size_t count = RandInRange(5); |
|
inferno
2015/01/28 22:44:36
Why just 5 ? lets probably put that 10 we use othe
Martin Barbella
2015/01/28 23:32:59
Done.
|
| + for (size_t i = 0; i < count; ++i) { |
| + scoped_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create(); |
| + if (!GenerateParam(render_pass.get(), generator)) |
| + return false; |
| + p->push_back(render_pass.Pass()); |
| + } |
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| +struct GenerateTraits<cc::SoftwareFrameData> { |
| + static bool Generate(cc::SoftwareFrameData* p, Generator* generator) { |
| + if (!GenerateParam(&p->id, generator)) |
| + return false; |
| + if (!GenerateParam(&p->size, generator)) |
| + return false; |
| + if (!GenerateParam(&p->damage_rect, generator)) |
| + return false; |
| + if (!GenerateParam(&p->bitmap_id, generator)) |
| + return false; |
| return true; |
| } |
| }; |
| @@ -1063,34 +1158,6 @@ struct GenerateTraits<gfx::PointF> { |
| }; |
| template <> |
| -struct GenerateTraits<gfx::Size> { |
| - static bool Generate(gfx::Size *p, Generator* generator) { |
| - int w; |
| - int h; |
| - if (!GenerateParam(&w, generator)) |
| - return false; |
| - if (!GenerateParam(&h, generator)) |
| - return false; |
| - p->SetSize(w, h); |
| - return true; |
| - } |
| -}; |
| - |
| -template <> |
| -struct GenerateTraits<gfx::SizeF> { |
| - static bool Generate(gfx::SizeF *p, Generator* generator) { |
| - float w; |
| - float h; |
| - if (!GenerateParam(&w, generator)) |
| - return false; |
| - if (!GenerateParam(&h, generator)) |
| - return false; |
| - p->SetSize(w, h); |
| - return true; |
| - } |
| -}; |
| - |
| -template <> |
| struct GenerateTraits<gfx::Rect> { |
| static bool Generate(gfx::Rect *p, Generator* generator) { |
| gfx::Point origin; |
| @@ -1135,6 +1202,48 @@ struct GenerateTraits<gfx::Range> { |
| }; |
| template <> |
| +struct GenerateTraits<gfx::Size> { |
| + static bool Generate(gfx::Size* p, Generator* generator) { |
| + int w; |
| + int h; |
| + if (!GenerateParam(&w, generator)) |
| + return false; |
| + if (!GenerateParam(&h, generator)) |
| + return false; |
| + p->SetSize(w, h); |
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| +struct GenerateTraits<gfx::SizeF> { |
| + static bool Generate(gfx::SizeF* p, Generator* generator) { |
| + float w; |
| + float h; |
| + if (!GenerateParam(&w, generator)) |
| + return false; |
| + if (!GenerateParam(&h, generator)) |
| + return false; |
| + p->SetSize(w, h); |
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| +struct GenerateTraits<gfx::Transform> { |
| + static bool Generate(gfx::Transform* p, Generator* generator) { |
| + SkMScalar matrix[16]; |
| + if (!GenerateParamArray(&matrix[0], arraysize(matrix), generator)) |
| + return false; |
| + *p = gfx::Transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], |
| + matrix[5], matrix[6], matrix[7], matrix[8], matrix[9], |
| + matrix[10], matrix[11], matrix[12], matrix[13], |
| + matrix[14], matrix[15]); |
| + return true; |
| + } |
| +}; |
| + |
| +template <> |
| struct GenerateTraits<gfx::Vector2d> { |
| static bool Generate(gfx::Vector2d *p, Generator* generator) { |
| int x; |