aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/end2end/fuzzers/api_fuzzer.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2016-04-18 22:58:10 -0700
committerGravatar Craig Tiller <ctiller@google.com>2016-04-18 22:58:10 -0700
commitdbfc895ff95cb577c39c412925c3dddf5d9a34aa (patch)
tree566dd3fd25bb7a3c15f8a844283b3e41bc4cd91b /test/core/end2end/fuzzers/api_fuzzer.c
parentbe006cbf8ac475722d77073b222f7eded4030b97 (diff)
Stub out request call call
Diffstat (limited to 'test/core/end2end/fuzzers/api_fuzzer.c')
-rw-r--r--test/core/end2end/fuzzers/api_fuzzer.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/test/core/end2end/fuzzers/api_fuzzer.c b/test/core/end2end/fuzzers/api_fuzzer.c
index 225c333cda..707f27a0c1 100644
--- a/test/core/end2end/fuzzers/api_fuzzer.c
+++ b/test/core/end2end/fuzzers/api_fuzzer.c
@@ -348,7 +348,7 @@ static void free_non_null(void *p) {
}
typedef enum {
- ROOT, CLIENT, SERVER
+ ROOT, CLIENT, SERVER, PENDING_SERVER
} call_state_type;
typedef struct call_state {
@@ -361,6 +361,7 @@ typedef struct call_state {
char *recv_status_details;
size_t recv_status_details_capacity;
int cancelled;
+ grpc_call_details call_details;
struct call_state *next;
struct call_state *prev;
@@ -601,7 +602,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
}
// queue some ops on a call
case 12: {
- if (active_call->type == ROOT || active_call->call == NULL) {
+ if (active_call->type ==PENDING_SERVER || active_call->type == ROOT || active_call->call == NULL) {
end(&inp);
break;
}
@@ -761,6 +762,18 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
gpr_free(tracer);
break;
}
+ // request a server call
+ case 19: {
+ if (g_server == NULL) {
+ end(&inp);
+ break;
+ }
+ call_state *cs = new_call(active_call, PENDING_SERVER);
+ grpc_call_error error = grpc_server_request_call(g_server, &cs->call, &cs->call_details, &cs->recv_initial_metadata,
+ cq, cq, NULL);
+ gpr_log(GPR_DEBUG, "%d", error);
+ break;
+ }
}
}