MCPcopy Create free account
hub / github.com/ada-url/ada / fancy_fuzz

Function fancy_fuzz

tests/basic_fuzzer.cpp:55–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53
54template <class result>
55size_t fancy_fuzz(size_t N, size_t seed = 0) {
56 size_t counter = seed;
57 for (size_t trial = 0; trial < N; trial++) {
58 std::string copy =
59 url_examples[(seed++) % (sizeof(url_examples) / sizeof(std::string))];
60 auto url = ada::parse<result>(copy);
61 while (url) {
62 // mutate the string.
63 int k = ((321321 * counter++) % 3);
64 switch (k) {
65 case 0:
66 copy.erase((11134 * counter++) % copy.size());
67 break;
68 case 1:
69 copy.insert(copy.begin() + (211311 * counter) % copy.size(),
70 char((counter + 1) * 777));
71 counter += 2;
72 break;
73 case 2:
74 copy[(13134 * counter++) % copy.size()] = char(counter++ * 71117);
75 break;
76 default:
77 break;
78 }
79 url = ada_parse<result>(copy);
80 }
81 }
82 return counter;
83}
84
85template <class result>
86size_t simple_fuzz(size_t N, size_t seed = 0) {

Callers

nothing calls this directly

Calls 2

sizeMethod · 0.80
beginMethod · 0.80

Tested by

no test coverage detected