These 32 commits are when the Protocol Buffers files have changed:
| Commit: | 429d46c | |
|---|---|---|
| Author: | László Szekeres | |
| Committer: | Copybara-Service | |
Change `centipede` namespace to `fuzztest::internal` (no functional change). PiperOrigin-RevId: 745605983
The documentation is generated from this commit.
| Commit: | b35469f | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
Avoid initializing infinitely recursive sub-fields. Given that sub-fields may not get initialized in the smoke-test, it could be unexpected for users to encounter this issue during fuzzing. Instead of producing a failure, we produce a warning and avoid initializing them. In addition, the recursion loops are detected over fields and not protos because the customizations are done over fields and two fields of same type could have different customizations, which can affect the recursion analysis. PiperOrigin-RevId: 726556282
| Commit: | 5dc1f1e | |
|---|---|---|
| Author: | Filip Niksic | |
| Committer: | Copybara-Service | |
Fix a flaky end-to-end test `UnitTestModeTest.ProtobufOfMutatesTheProto`. PiperOrigin-RevId: 676887028
| Commit: | a29e31c | |
|---|---|---|
| Author: | Xinhao Yuan | |
| Committer: | Copybara-Service | |
#Centipede Split the protobuf-related dependencies out from the core runtime. This is to avoid involving protobuf in fuzzers so it can be used in consumer projects that have specific constraints for protobuf. PiperOrigin-RevId: 669419511
| Commit: | ff36d85 | |
|---|---|---|
| Author: | Xinhao Yuan | |
| Committer: | Copybara-Service | |
No public description PiperOrigin-RevId: 668035717
| Commit: | 05f1afb | |
|---|---|---|
| Author: | Markus Kusano | |
| Committer: | Copybara-Service | |
#Centipede Add support for directly passing a corpus shard in a SeedCorpusSource PiperOrigin-RevId: 647474909
| Commit: | 951aada | |
|---|---|---|
| Author: | FuzzTest Team | |
| Committer: | Copybara-Service | |
No public description PiperOrigin-RevId: 617257551
| Commit: | 12dfa72 | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
No public description PiperOrigin-RevId: 616849387
| Commit: | ed902e4 | |
|---|---|---|
| Author: | Filip Niksic | |
| Committer: | Copybara-Service | |
Add a variant of the Maze puzzle with doors and keys along the way. PiperOrigin-RevId: 616840381
| Commit: | 0239500 | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
No public description PiperOrigin-RevId: 616830147
| Commit: | 6a7245c | |
|---|---|---|
| Author: | FuzzTest Team | |
| Committer: | Copybara-Service | |
No public description PiperOrigin-RevId: 615517628
| Commit: | 393ae75 | |
|---|---|---|
| Author: | FuzzTest Team | |
| Committer: | Copybara-Service | |
Add a graph reachability puzzle. PiperOrigin-RevId: 615341103
| Commit: | bbed20c | |
|---|---|---|
| Author: | László Szekeres | |
| Committer: | Copybara-Service | |
Add maze puzzle. PiperOrigin-RevId: 615195474
| Commit: | 3c5fc52 | |
|---|---|---|
| Author: | FuzzTest Team | |
| Committer: | Copybara-Service | |
Add web search proto puzzle. PiperOrigin-RevId: 608660172
| Commit: | c213d41 | |
|---|---|---|
| Author: | Markus Kusano | |
| Committer: | Copybara-Service | |
Add variants of string proto puzzles using a simpler input proto. PiperOrigin-RevId: 606714492
| Commit: | b67bf91 | |
|---|---|---|
| Author: | Markus Kusano | |
| Committer: | Copybara-Service | |
Add Robo Courier proto puzzle PiperOrigin-RevId: 606406024
| Commit: | 87845fe | |
|---|---|---|
| Author: | Markus Kusano | |
| Committer: | Copybara-Service | |
Add puzzle evaluating a 4 function calculator operation. PiperOrigin-RevId: 606401157
| Commit: | ad41f7a | |
|---|---|---|
| Author: | Markus Kusano | |
| Committer: | Copybara-Service | |
Add puzzle using a proto with a switch statement used in a loop (state machine). PiperOrigin-RevId: 606400746
| Commit: | 6608add | |
|---|---|---|
| Author: | FuzzTest Team | |
| Committer: | Copybara-Service | |
Save --analyze coverage information to a proto PiperOrigin-RevId: 561133459
| Commit: | 920ce48 | |
|---|---|---|
| Author: | Sergey Shevchenko | |
| Committer: | Copybara-Service | |
#Centipede Define proto to configure seed corpus generation Example: ``` # Self-seed from 5 completed previous iterations. sources: { dir_glob: "./centipede/run_*.fuzzed" # ".fuzzed" picks up completed dirs only shard_rel_glob: "distilled*.*" num_recent_dirs: 5 fraction: 0.5 } # Mix in 10% of the latest Simics iteration (even an active one). sources: { dir_glob: "/cns/iq-d/home/platforms-sdc-silifuzz/corpus/pipeline/simics.default.self/run_*" # no ".fuzzed" picks up everything shard_rel_glob: "corpus*.*" # use running corpus.* shards, not distilled*.* num_recent_dirs: 1 fraction: 0.1 } # Also mix in 2000 elements from 2 previous Unicorn iterations. sources: { dir_glob: "/cns/iq-d/home/platforms-sdc-silifuzz/corpus/pipeline/unicorn_x86_64.default.self/run_*" shard_rel_glob: "distilled*.*" num_recent_dirs: 2 count: 2000 } # Write the result to `<.pb's parent dir>/centipede` destination: { dir_path: "./centipede" shard_rel_glob: "corpus.*" shard_index_digits: 6 num_shards: 4 } ``` PiperOrigin-RevId: 557682202
| Commit: | 0f0adb7 | |
|---|---|---|
| Author: | Yongheng Chen | |
| Committer: | Copybara-Service | |
No public description PiperOrigin-RevId: 554371233
| Commit: | d69f326 | |
|---|---|---|
| Author: | Yongheng Chen | |
| Committer: | Copybara-Service | |
No public description PiperOrigin-RevId: 552932557
| Commit: | 0087fe0 | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
Add full support for known extension fields. Serialization and parsing extension fields were supported before. Other missing capabilities including corpus validation, domain initialization, domain mutation, domain customization, and recursion detection are added. PiperOrigin-RevId: 551832440
| Commit: | 3dbb0bc | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
Add full support for known extension fields. Serialization and parsing extension fields were supported before. Other missing capabilities including corpus validation, domain initialization, domain mutation, domain customization, and recursion detection are added. PiperOrigin-RevId: 548714204
| Commit: | af8c735 | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
Add full support for known extension fields. Serialization and parsing extension fields were supported before. Other missing capabilities including corpus validation, domain initialization, domain mutation, domain customization, and recursion detection are added. PiperOrigin-RevId: 548676590
| Commit: | 1af1306 | |
|---|---|---|
| Author: | Todd Lipcon | |
| Committer: | Copybara-Service | |
Internal change PiperOrigin-RevId: 526122507
| Commit: | 7fcea31 | |
|---|---|---|
| Author: | László Szekeres | |
| Committer: | Copybara-Service | |
Readability improvements. - Document Domain concept. - Make the following renames: GetValue() -> CorpusToUserValue() FromValue() -> UserToCorpusValue() SerializeCorpus() -> CorpusToIrValue() ParseCorpus() -> IrToCorpusValue() T -> UserValueT CorpusType -> CorpusValueT IRObject -> IrValue value_type -> user_value_t corpus_type -> corpus_value_t value_type_t<> -> user_value_t_of<> corpus_type_t<> -> corpus_value_t_of<> GenericDomainCorpusType -> GenericCorpusValue RequireCustomCorpusType -> RequireCustomCorpusValueT PiperOrigin-RevId: 526091807
| Commit: | 58b4e70 | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
Set nullness of oneof fields when nullness is not defined explicitely. As a side-effect, WithOneofAlwaysSet needs to be called before customizing oneof fields. PiperOrigin-RevId: 505196838
| Commit: | d550948 | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
Detects recursions through oneofs. PiperOrigin-RevId: 503220736
| Commit: | 6036085 | |
|---|---|---|
| Author: | Filip Niksic | |
| Committer: | Copybara-Service | |
Fix the flaky test ProtocolBuffer.ArbitraryWithRequiredHasAllMutations. The test was flaky due to repeated and map fields in TestProtobufWithRequired, which were bloating the proto after repeated mutation and reducing the chance of mutating the fields that were interesting for the test. To fix the test, I: - Removed the map field `map_str`, which was not used in any way. - Broke the test into multiple tests that each test a single behavior. For example, there's now a dedicated test to check that an optional field is eventually unset. In that test we can restrict the proto domain by leaving all repeated, map, and other optional fields unset in order to limit the total number of fields and maximize the probability that the desired field gets unset. With this, we only need 11000 iterations to guarantee that the test will almost always succeed, whereas if we left the test unbroken, we would have needed 36000 iterations for the same guarantee, risking flakiness due to timeouts. PiperOrigin-RevId: 502625815
| Commit: | 9ffe366 | |
|---|---|---|
| Author: | Hadi Ravanbakhsh | |
| Committer: | Copybara-Service | |
Fixes map field issues with required fields. There are two issues with the required fields, which are addressed here: (1) Map field values could be messages with required fields. We treat map field values that are messages as required. This way, we make sure the `value` is initialized while the message itself could be empty. (2) There could be required fields next to map fields. To address this, we fix serialization-deserialization of map fields to remove duplicates. `corpus_copy` contains only one field (a map field) which goes through a mutation. So, the serialization should be done partially and we should not be worried about other required fields. PiperOrigin-RevId: 499842705
| Commit: | 658be28 | |
|---|---|---|
| Author: | FuzzTest Team | |
| Committer: | Filip Niksic | |
Internal change PiperOrigin-RevId: 473826475