mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 09:14:42 +01:00
Do cleanup on explorer fuzzing infrastructure. (#2790)
I'm partly doing this because the current setup would be difficult to share with the toolchain. e.g., ProtoToCarbon isn't explorer-specific, but the only way to run it via CLI is the explorer's fuzzverter. I want a separate tool.
This change:
- Adds a //common/fuzzing:proto_to_carbon tool.
- The rest of fuzzverter is now just //explorer/fuzzing:ast_to_proto.
- The change simplifies overall handling and removes a LLVM CLI dependency.
- Stops allowing unknown fields in the proto.
- This has mostly led to forgetting to remove fuzzer inputs that were for removed features.
- Moves more non-explorer-specific bits to //common/fuzzing.
- Cleans up remaining pieces in //explorer/fuzzing
- Merges the //explorer/fuzzing proto tests, which deduplicates AstToString copies.
- These tests also had duplicate dependencies, etc -- and all complete in ~6s.
- Updates and fixes regen_corpus which was previously broken by other changes.
- Updates the README to reflect changes.
- Removes obsolete proto-fuzzer build configuration (AFAICT this is no longer needed).
This commit is contained in:
@@ -843,15 +843,15 @@ static auto DeclarationToProto(const Declaration& declaration)
|
||||
return declaration_proto;
|
||||
}
|
||||
|
||||
auto AstToProto(const AST& ast) -> Fuzzing::CompilationUnit {
|
||||
Fuzzing::CompilationUnit compilation_unit;
|
||||
*compilation_unit.mutable_package_statement() =
|
||||
LibraryNameToProto(ast.package);
|
||||
compilation_unit.set_is_api(ast.is_api);
|
||||
auto AstToProto(const AST& ast) -> Fuzzing::Carbon {
|
||||
Fuzzing::Carbon carbon;
|
||||
auto* unit = carbon.mutable_compilation_unit();
|
||||
*unit->mutable_package_statement() = LibraryNameToProto(ast.package);
|
||||
unit->set_is_api(ast.is_api);
|
||||
for (const Declaration* declaration : ast.declarations) {
|
||||
*compilation_unit.add_declarations() = DeclarationToProto(*declaration);
|
||||
*unit->add_declarations() = DeclarationToProto(*declaration);
|
||||
}
|
||||
return compilation_unit;
|
||||
return carbon;
|
||||
}
|
||||
|
||||
} // namespace Carbon
|
||||
|
||||
Reference in New Issue
Block a user