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

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

Issue 873233003: Add some paramtraits to ipc fuzzer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix indents 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 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 default: 654 default:
655 break; 655 break;
656 } 656 }
657 } 657 }
658 --g_depth; 658 --g_depth;
659 return true; 659 return true;
660 } 660 }
661 }; 661 };
662 662
663 template <> 663 template <>
664 struct GenerateTraits<GURL> {
665 static bool Generate(GURL *p, Generator* generator) {
666 const char url_chars[] = "Ahtp0:/.?+\\%&#";
667 size_t count = RandInRange(100);
668 std::string random_url;
669 for (size_t i = 0; i < count; ++i)
670 random_url += url_chars[RandInRange(sizeof(url_chars) - 1)];
671 int selector = RandInRange(10);
672 if (selector == 0)
673 random_url = std::string("http://") + random_url;
674 else if (selector == 1)
675 random_url = std::string("file://") + random_url;
676 else if (selector == 2)
677 random_url = std::string("javascript:") + random_url;
678 else if (selector == 2)
679 random_url = std::string("data:") + random_url;
680 *p = GURL(random_url);
681 return true;
682 }
683 };
684
685 // FIXME: Actually generate something.
686 template <>
687 struct GenerateTraits<SkBitmap> {
688 static bool Generate(SkBitmap* p, Generator* generator) {
689 *p = SkBitmap();
690 return true;
691 }
692 };
693
694 template <>
695 struct GenerateTraits<cc::CompositorFrame> { 664 struct GenerateTraits<cc::CompositorFrame> {
696 // FIXME: this should actually generate something 665 // FIXME: this should actually generate something
697 static bool Generate(cc::CompositorFrame* p, Generator* generator) { 666 static bool Generate(cc::CompositorFrame* p, Generator* generator) {
698 return true; 667 return true;
699 } 668 }
700 }; 669 };
701 670
702 template <> 671 template <>
703 struct GenerateTraits<cc::CompositorFrameAck> { 672 struct GenerateTraits<cc::CompositorFrameAck> {
704 // FIXME: this should actually generate something 673 // FIXME: this should actually generate something
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 static bool Generate(content::PageState *p, Generator* generator) { 789 static bool Generate(content::PageState *p, Generator* generator) {
821 std::string junk; 790 std::string junk;
822 if (!GenerateParam(&junk, generator)) 791 if (!GenerateParam(&junk, generator))
823 return false; 792 return false;
824 *p = content::PageState::CreateFromEncodedData(junk); 793 *p = content::PageState::CreateFromEncodedData(junk);
825 return true; 794 return true;
826 } 795 }
827 }; 796 };
828 797
829 template <> 798 template <>
799 struct GenerateTraits<dns_prefetch::LookupRequest> {
800 static bool Generate(dns_prefetch::LookupRequest* p, Generator* generator) {
801 dns_prefetch::LookupRequest request;
802 if (!GenerateParam(&request.hostname_list, generator))
803 return false;
804 *p = request;
805 return true;
806 }
807 };
808
809 template <>
810 struct GenerateTraits<extensions::URLPatternSet> {
811 static bool Generate(extensions::URLPatternSet* p, Generator* generator) {
812 std::set<URLPattern> patterns;
813 if (!GenerateParam(&patterns, generator))
814 return false;
815 *p = extensions::URLPatternSet(patterns);
816 return true;
817 }
818 };
819
820 template <>
830 struct GenerateTraits<gpu::Mailbox> { 821 struct GenerateTraits<gpu::Mailbox> {
831 static bool Generate(gpu::Mailbox *p, Generator* generator) { 822 static bool Generate(gpu::Mailbox *p, Generator* generator) {
832 generator->GenerateBytes(p->name, sizeof(p->name)); 823 generator->GenerateBytes(p->name, sizeof(p->name));
833 return true; 824 return true;
834 } 825 }
835 }; 826 };
836 827
837 template <> 828 template <>
829 struct GenerateTraits<gpu::MailboxHolder> {
830 static bool Generate(gpu::MailboxHolder *p, Generator* generator) {
831 gpu::Mailbox mailbox;
832 uint32_t texture_target;
833 uint32_t sync_point;
834 if (!GenerateParam(&mailbox, generator))
835 return false;
836 if (!GenerateParam(&texture_target, generator))
837 return false;
838 if (!GenerateParam(&sync_point, generator))
839 return false;
840 *p = gpu::MailboxHolder(mailbox, texture_target, sync_point);
841 return true;
842 }
843 };
844
845 template <>
846 struct GenerateTraits<gpu::ValueState> {
847 static bool Generate(gpu::ValueState* p, Generator* generator) {
848 gpu::ValueState state;
849 for (int i = 0; i < 4; i++) {
850 if (!GenerateParam(&state.float_value[i], generator))
851 return false;
852 if (!GenerateParam(&state.int_value[i], generator))
853 return false;
854 }
855 *p = state;
856 return true;
857 }
858 };
859
860 template <>
861 struct GenerateTraits<GURL> {
862 static bool Generate(GURL *p, Generator* generator) {
863 const char url_chars[] = "Ahtp0:/.?+\\%&#";
864 size_t count = RandInRange(100);
865 std::string random_url;
866 for (size_t i = 0; i < count; ++i)
867 random_url += url_chars[RandInRange(sizeof(url_chars) - 1)];
868 int selector = RandInRange(10);
869 if (selector == 0)
870 random_url = std::string("http://") + random_url;
871 else if (selector == 1)
872 random_url = std::string("file://") + random_url;
873 else if (selector == 2)
874 random_url = std::string("javascript:") + random_url;
875 else if (selector == 2)
876 random_url = std::string("data:") + random_url;
877 *p = GURL(random_url);
878 return true;
879 }
880 };
881
882 template <>
838 struct GenerateTraits<media::AudioParameters> { 883 struct GenerateTraits<media::AudioParameters> {
839 static bool Generate(media::AudioParameters *p, Generator* generator) { 884 static bool Generate(media::AudioParameters *p, Generator* generator) {
840 int format; 885 int format;
841 int channel_layout; 886 int channel_layout;
842 int sample_rate; 887 int sample_rate;
843 int bits_per_sample; 888 int bits_per_sample;
844 int frames_per_buffer; 889 int frames_per_buffer;
845 int channels; 890 int channels;
846 int effects; 891 int effects;
847 if (!GenerateParam(&format, generator)) 892 if (!GenerateParam(&format, generator))
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 webrtc::DesktopVector vector; 1195 webrtc::DesktopVector vector;
1151 if (!GenerateParam(&size, generator)) 1196 if (!GenerateParam(&size, generator))
1152 return false; 1197 return false;
1153 if (!GenerateParam(&vector, generator)) 1198 if (!GenerateParam(&vector, generator))
1154 return false; 1199 return false;
1155 *p = remoting::ScreenResolution(size, vector); 1200 *p = remoting::ScreenResolution(size, vector);
1156 return true; 1201 return true;
1157 } 1202 }
1158 }; 1203 };
1159 1204
1205 // FIXME: Actually generate something.
1206 template <>
1207 struct GenerateTraits<SkBitmap> {
1208 static bool Generate(SkBitmap* p, Generator* generator) {
1209 *p = SkBitmap();
1210 return true;
1211 }
1212 };
1213
1214 template <>
1215 struct GenerateTraits<url::Origin> {
1216 static bool Generate(url::Origin* p, Generator* generator) {
1217 std::string origin;
1218 if (!GenerateParam(&origin, generator))
1219 return false;
1220 *p = url::Origin(origin);
1221 return true;
1222 }
1223 };
1224
1160 template <> 1225 template <>
1161 struct GenerateTraits<webrtc::DesktopSize> { 1226 struct GenerateTraits<webrtc::DesktopSize> {
1162 static bool Generate(webrtc::DesktopSize* p, Generator* generator) { 1227 static bool Generate(webrtc::DesktopSize* p, Generator* generator) {
1163 int32_t width; 1228 int32_t width;
1164 int32_t height; 1229 int32_t height;
1165 if (!GenerateParam(&width, generator)) 1230 if (!GenerateParam(&width, generator))
1166 return false; 1231 return false;
1167 if (!GenerateParam(&height, generator)) 1232 if (!GenerateParam(&height, generator))
1168 return false; 1233 return false;
1169 *p = webrtc::DesktopSize(width, height); 1234 *p = webrtc::DesktopSize(width, height);
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1414 return EXIT_FAILURE; 1479 return EXIT_FAILURE;
1415 1480
1416 return EXIT_SUCCESS; 1481 return EXIT_SUCCESS;
1417 } 1482 }
1418 1483
1419 } // namespace ipc_fuzzer 1484 } // namespace ipc_fuzzer
1420 1485
1421 int main(int argc, char** argv) { 1486 int main(int argc, char** argv) {
1422 return ipc_fuzzer::GenerateMain(argc, argv); 1487 return ipc_fuzzer::GenerateMain(argc, argv);
1423 } 1488 }
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