[fuzzing] Allow resolver fuzzer to specify config vars (#33244)

<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
pull/33253/head
Craig Tiller 2 years ago committed by GitHub
parent 9d353ebe45
commit ea03aee5b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      test/core/ext/filters/event_engine_client_channel_resolver/BUILD
  2. 4
      test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.cc
  3. 2
      test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.proto

@ -26,7 +26,10 @@ grpc_proto_fuzzer(
corpus = "resolver_fuzzer_corpus",
language = "C++",
proto = "resolver_fuzzer.proto",
proto_deps = ["//test/core/util:fuzzing_channel_args_proto"],
proto_deps = [
"//test/core/util:fuzz_config_vars_proto",
"//test/core/util:fuzzing_channel_args_proto",
],
tags = [
"no_mac",
"no_windows",
@ -39,6 +42,7 @@ grpc_proto_fuzzer(
"//src/core:channel_args",
"//test/core/event_engine:aborting_event_engine",
"//test/core/event_engine/fuzzing_event_engine",
"//test/core/util:fuzz_config_vars",
"//test/core/util:fuzzing_channel_args",
"//test/core/util:grpc_test_util",
"//test/core/util:grpc_test_util_base",

@ -38,6 +38,7 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/event_engine/default_event_engine.h"
#include "src/core/lib/event_engine/tcp_socket_utils.h"
#include "src/core/lib/experiments/config.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/work_serializer.h"
@ -49,6 +50,7 @@
#include "test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h"
#include "test/core/event_engine/util/aborting_event_engine.h"
#include "test/core/ext/filters/event_engine_client_channel_resolver/resolver_fuzzer.pb.h"
#include "test/core/util/fuzz_config_vars.h"
#include "test/core/util/fuzzing_channel_args.h"
bool squelch = true;
@ -278,6 +280,8 @@ grpc_core::ResolverArgs ConstructResolverArgs(
DEFINE_PROTO_FUZZER(const event_engine_client_channel_resolver::Msg& msg) {
if (squelch) gpr_set_log_function(dont_log);
bool done_resolving = false;
grpc_core::ApplyFuzzConfigVars(msg.config_vars());
grpc_core::TestOnlyReloadExperimentsFromConfigVariables();
grpc_event_engine::experimental::SetEventEngineFactory([msg,
&done_resolving]() {
return std::make_unique<FuzzingResolverEventEngine>(msg, &done_resolving);

@ -17,6 +17,7 @@ syntax = "proto3";
package event_engine_client_channel_resolver;
import "test/core/util/fuzzing_channel_args.proto";
import "test/core/util/fuzz_config_vars.proto";
message Error {
uint32 code = 1;
@ -72,6 +73,7 @@ enum ExecutionStep {
message Msg {
grpc.testing.FuzzingChannelArgs channel_args = 1;
grpc.testing.FuzzConfigVars config_vars = 9;
oneof hostname {
ResolvedAddresses hostname_response = 2;
Error hostname_error = 3;

Loading…
Cancel
Save