Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: tools/ipc_fuzzer/mutate/generate.cc

Issue 873253004: Add IPC fuzzer GenerateTraits for some cc types. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Properly generate gfx::Transform Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdlib.h> 5 #include <stdlib.h>
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iostream> 8 #include <iostream>
9 #include <ostream> 9 #include <ostream>
10 #include <set> 10 #include <set>
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 return false; 702 return false;
703 if (!GenerateParam(&value, generator)) 703 if (!GenerateParam(&value, generator))
704 return false; 704 return false;
705 *p = blink::WebGamepadButton(pressed, value); 705 *p = blink::WebGamepadButton(pressed, value);
706 return true; 706 return true;
707 } 707 }
708 }; 708 };
709 709
710 template <> 710 template <>
711 struct GenerateTraits<cc::CompositorFrame> { 711 struct GenerateTraits<cc::CompositorFrame> {
712 // FIXME: this should actually generate something
713 static bool Generate(cc::CompositorFrame* p, Generator* generator) { 712 static bool Generate(cc::CompositorFrame* p, Generator* generator) {
713 if (!GenerateParam(&p->metadata, generator))
714 return false;
715 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.
716 if (!GenerateParam(p->delegated_frame_data.get(), generator))
717 return false;
718 p->gl_frame_data.reset(new cc::GLFrameData);
719 if (!GenerateParam(p->gl_frame_data.get(), generator))
720 return false;
721 p->software_frame_data.reset(new cc::SoftwareFrameData);
722 if (!GenerateParam(p->software_frame_data.get(), generator))
723 return false;
714 return true; 724 return true;
715 } 725 }
716 }; 726 };
717 727
718 template <> 728 template <>
719 struct GenerateTraits<cc::CompositorFrameAck> { 729 struct GenerateTraits<cc::CompositorFrameAck> {
720 // FIXME: this should actually generate something
721 static bool Generate(cc::CompositorFrameAck* p, Generator* generator) { 730 static bool Generate(cc::CompositorFrameAck* p, Generator* generator) {
731 if (!GenerateParam(&p->resources, generator))
732 return false;
733 if (!GenerateParam(&p->last_software_frame_id, generator))
734 return false;
735 p->gl_frame_data.reset(new cc::GLFrameData);
736 if (!GenerateParam(p->gl_frame_data.get(), generator))
737 return false;
722 return true; 738 return true;
723 } 739 }
724 }; 740 };
741
742 template <>
743 struct GenerateTraits<cc::DelegatedFrameData> {
744 static bool Generate(cc::DelegatedFrameData* p, Generator* generator) {
745 if (!GenerateParam(&p->device_scale_factor, generator))
746 return false;
747 if (!GenerateParam(&p->resource_list, generator))
748 return false;
749 if (!GenerateParam(&p->render_pass_list, generator))
750 return false;
751 return true;
752 }
753 };
754
755 template <class A>
756 struct GenerateTraits<cc::ListContainer<A>> {
757 static bool Generate(cc::ListContainer<A>* p, Generator* generator) {
758 // 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.
759 return true;
760 }
761 };
762
763 template <>
764 struct GenerateTraits<cc::QuadList> {
765 static bool Generate(cc::QuadList* p, Generator* generator) {
766 // FIXME(mbarbella): This should actually generate something.
767 return true;
768 }
769 };
770
771 template <>
772 struct GenerateTraits<cc::RenderPass> {
773 static bool Generate(cc::RenderPass* p, Generator* generator) {
774 if (!GenerateParam(&p->id, generator))
775 return false;
776 if (!GenerateParam(&p->output_rect, generator))
777 return false;
778 if (!GenerateParam(&p->damage_rect, generator))
779 return false;
780 if (!GenerateParam(&p->transform_to_root_target, generator))
781 return false;
782 if (!GenerateParam(&p->has_transparent_background, generator))
783 return false;
784 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
785 return false;
786 if (!GenerateParam(&p->shared_quad_state_list, generator))
787 return false;
788 return true;
789 }
790 };
791
792 template <>
793 struct GenerateTraits<cc::RenderPassList> {
794 static bool Generate(cc::RenderPassList* p, Generator* generator) {
795 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.
796 for (size_t i = 0; i < count; ++i) {
797 scoped_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create();
798 if (!GenerateParam(render_pass.get(), generator))
799 return false;
800 p->push_back(render_pass.Pass());
801 }
802 return true;
803 }
804 };
805
806 template <>
807 struct GenerateTraits<cc::SoftwareFrameData> {
808 static bool Generate(cc::SoftwareFrameData* p, Generator* generator) {
809 if (!GenerateParam(&p->id, generator))
810 return false;
811 if (!GenerateParam(&p->size, generator))
812 return false;
813 if (!GenerateParam(&p->damage_rect, generator))
814 return false;
815 if (!GenerateParam(&p->bitmap_id, generator))
816 return false;
817 return true;
818 }
819 };
725 820
726 template <> 821 template <>
727 struct GenerateTraits<content::IndexedDBKey> { 822 struct GenerateTraits<content::IndexedDBKey> {
728 static bool Generate(content::IndexedDBKey* p, Generator* generator) { 823 static bool Generate(content::IndexedDBKey* p, Generator* generator) {
729 ++g_depth; 824 ++g_depth;
730 blink::WebIDBKeyType web_type = 825 blink::WebIDBKeyType web_type =
731 static_cast<blink::WebIDBKeyType>(RandInRange(7)); 826 static_cast<blink::WebIDBKeyType>(RandInRange(7));
732 switch (web_type) 827 switch (web_type)
733 { 828 {
734 case blink::WebIDBKeyTypeArray: { 829 case blink::WebIDBKeyTypeArray: {
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 if (!GenerateParam(&x, generator)) 1151 if (!GenerateParam(&x, generator))
1057 return false; 1152 return false;
1058 if (!GenerateParam(&y, generator)) 1153 if (!GenerateParam(&y, generator))
1059 return false; 1154 return false;
1060 p->SetPoint(x, y); 1155 p->SetPoint(x, y);
1061 return true; 1156 return true;
1062 } 1157 }
1063 }; 1158 };
1064 1159
1065 template <> 1160 template <>
1066 struct GenerateTraits<gfx::Size> {
1067 static bool Generate(gfx::Size *p, Generator* generator) {
1068 int w;
1069 int h;
1070 if (!GenerateParam(&w, generator))
1071 return false;
1072 if (!GenerateParam(&h, generator))
1073 return false;
1074 p->SetSize(w, h);
1075 return true;
1076 }
1077 };
1078
1079 template <>
1080 struct GenerateTraits<gfx::SizeF> {
1081 static bool Generate(gfx::SizeF *p, Generator* generator) {
1082 float w;
1083 float h;
1084 if (!GenerateParam(&w, generator))
1085 return false;
1086 if (!GenerateParam(&h, generator))
1087 return false;
1088 p->SetSize(w, h);
1089 return true;
1090 }
1091 };
1092
1093 template <>
1094 struct GenerateTraits<gfx::Rect> { 1161 struct GenerateTraits<gfx::Rect> {
1095 static bool Generate(gfx::Rect *p, Generator* generator) { 1162 static bool Generate(gfx::Rect *p, Generator* generator) {
1096 gfx::Point origin; 1163 gfx::Point origin;
1097 gfx::Size size; 1164 gfx::Size size;
1098 if (!GenerateParam(&origin, generator)) 1165 if (!GenerateParam(&origin, generator))
1099 return false; 1166 return false;
1100 if (!GenerateParam(&size, generator)) 1167 if (!GenerateParam(&size, generator))
1101 return false; 1168 return false;
1102 p->set_origin(origin); 1169 p->set_origin(origin);
1103 p->set_size(size); 1170 p->set_size(size);
(...skipping 24 matching lines...) Expand all
1128 if (!GenerateParam(&start, generator)) 1195 if (!GenerateParam(&start, generator))
1129 return false; 1196 return false;
1130 if (!GenerateParam(&end, generator)) 1197 if (!GenerateParam(&end, generator))
1131 return false; 1198 return false;
1132 *p = gfx::Range(start, end); 1199 *p = gfx::Range(start, end);
1133 return true; 1200 return true;
1134 } 1201 }
1135 }; 1202 };
1136 1203
1137 template <> 1204 template <>
1205 struct GenerateTraits<gfx::Size> {
1206 static bool Generate(gfx::Size* p, Generator* generator) {
1207 int w;
1208 int h;
1209 if (!GenerateParam(&w, generator))
1210 return false;
1211 if (!GenerateParam(&h, generator))
1212 return false;
1213 p->SetSize(w, h);
1214 return true;
1215 }
1216 };
1217
1218 template <>
1219 struct GenerateTraits<gfx::SizeF> {
1220 static bool Generate(gfx::SizeF* p, Generator* generator) {
1221 float w;
1222 float h;
1223 if (!GenerateParam(&w, generator))
1224 return false;
1225 if (!GenerateParam(&h, generator))
1226 return false;
1227 p->SetSize(w, h);
1228 return true;
1229 }
1230 };
1231
1232 template <>
1233 struct GenerateTraits<gfx::Transform> {
1234 static bool Generate(gfx::Transform* p, Generator* generator) {
1235 SkMScalar matrix[16];
1236 if (!GenerateParamArray(&matrix[0], arraysize(matrix), generator))
1237 return false;
1238 *p = gfx::Transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4],
1239 matrix[5], matrix[6], matrix[7], matrix[8], matrix[9],
1240 matrix[10], matrix[11], matrix[12], matrix[13],
1241 matrix[14], matrix[15]);
1242 return true;
1243 }
1244 };
1245
1246 template <>
1138 struct GenerateTraits<gfx::Vector2d> { 1247 struct GenerateTraits<gfx::Vector2d> {
1139 static bool Generate(gfx::Vector2d *p, Generator* generator) { 1248 static bool Generate(gfx::Vector2d *p, Generator* generator) {
1140 int x; 1249 int x;
1141 int y; 1250 int y;
1142 if (!GenerateParam(&x, generator)) 1251 if (!GenerateParam(&x, generator))
1143 return false; 1252 return false;
1144 if (!GenerateParam(&y, generator)) 1253 if (!GenerateParam(&y, generator))
1145 return false; 1254 return false;
1146 *p = gfx::Vector2d(x, y); 1255 *p = gfx::Vector2d(x, y);
1147 return true; 1256 return true;
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
1648 return EXIT_FAILURE; 1757 return EXIT_FAILURE;
1649 1758
1650 return EXIT_SUCCESS; 1759 return EXIT_SUCCESS;
1651 } 1760 }
1652 1761
1653 } // namespace ipc_fuzzer 1762 } // namespace ipc_fuzzer
1654 1763
1655 int main(int argc, char** argv) { 1764 int main(int argc, char** argv) {
1656 return ipc_fuzzer::GenerateMain(argc, argv); 1765 return ipc_fuzzer::GenerateMain(argc, argv);
1657 } 1766 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698