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; |