|
|
@ -31,12 +31,13 @@ |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
#include <grpc/grpc.h> |
|
|
|
#include <string.h> |
|
|
|
|
|
|
|
|
|
|
|
#include "test/core/end2end/cq_verifier.h" |
|
|
|
#include <grpc/grpc.h> |
|
|
|
#include "test/core/util/test_config.h" |
|
|
|
|
|
|
|
#include <grpc/support/alloc.h> |
|
|
|
#include <grpc/support/alloc.h> |
|
|
|
#include <grpc/support/log.h> |
|
|
|
#include <grpc/support/log.h> |
|
|
|
|
|
|
|
#include "test/core/end2end/cq_verifier.h" |
|
|
|
|
|
|
|
#include "test/core/util/test_config.h" |
|
|
|
|
|
|
|
|
|
|
|
static void *tag(gpr_intptr x) { return (void *)x; } |
|
|
|
static void *tag(gpr_intptr x) { return (void *)x; } |
|
|
|
|
|
|
|
|
|
|
@ -47,21 +48,25 @@ int main(int argc, char **argv) { |
|
|
|
cq_verifier *cqv; |
|
|
|
cq_verifier *cqv; |
|
|
|
grpc_op ops[6]; |
|
|
|
grpc_op ops[6]; |
|
|
|
grpc_op *op; |
|
|
|
grpc_op *op; |
|
|
|
|
|
|
|
grpc_metadata_array initial_metadata_recv; |
|
|
|
grpc_metadata_array trailing_metadata_recv; |
|
|
|
grpc_metadata_array trailing_metadata_recv; |
|
|
|
grpc_status_code status; |
|
|
|
grpc_status_code status; |
|
|
|
grpc_call_error error; |
|
|
|
grpc_call_error error; |
|
|
|
char *details = NULL; |
|
|
|
char *details = NULL; |
|
|
|
size_t details_capacity = 0; |
|
|
|
size_t details_capacity = 0; |
|
|
|
|
|
|
|
char *peer; |
|
|
|
|
|
|
|
|
|
|
|
grpc_test_init(argc, argv); |
|
|
|
grpc_test_init(argc, argv); |
|
|
|
grpc_init(); |
|
|
|
grpc_init(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
grpc_metadata_array_init(&initial_metadata_recv); |
|
|
|
grpc_metadata_array_init(&trailing_metadata_recv); |
|
|
|
grpc_metadata_array_init(&trailing_metadata_recv); |
|
|
|
|
|
|
|
|
|
|
|
chan = grpc_lame_client_channel_create( |
|
|
|
chan = grpc_lame_client_channel_create( |
|
|
|
"lampoon:national", GRPC_STATUS_UNKNOWN, "Rpc sent on a lame channel."); |
|
|
|
"lampoon:national", GRPC_STATUS_UNKNOWN, "Rpc sent on a lame channel."); |
|
|
|
GPR_ASSERT(chan); |
|
|
|
GPR_ASSERT(chan); |
|
|
|
cq = grpc_completion_queue_create(NULL); |
|
|
|
cq = grpc_completion_queue_create(NULL); |
|
|
|
|
|
|
|
|
|
|
|
call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, |
|
|
|
call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, |
|
|
|
"/Foo", "anywhere", |
|
|
|
"/Foo", "anywhere", |
|
|
|
GRPC_TIMEOUT_SECONDS_TO_DEADLINE(100), NULL); |
|
|
|
GRPC_TIMEOUT_SECONDS_TO_DEADLINE(100), NULL); |
|
|
@ -74,6 +79,11 @@ int main(int argc, char **argv) { |
|
|
|
op->flags = 0; |
|
|
|
op->flags = 0; |
|
|
|
op->reserved = NULL; |
|
|
|
op->reserved = NULL; |
|
|
|
op++; |
|
|
|
op++; |
|
|
|
|
|
|
|
op->op = GRPC_OP_RECV_INITIAL_METADATA; |
|
|
|
|
|
|
|
op->data.recv_initial_metadata = &initial_metadata_recv; |
|
|
|
|
|
|
|
op->flags = 0; |
|
|
|
|
|
|
|
op->reserved = NULL; |
|
|
|
|
|
|
|
op++; |
|
|
|
op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; |
|
|
|
op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; |
|
|
|
op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv; |
|
|
|
op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv; |
|
|
|
op->data.recv_status_on_client.status = &status; |
|
|
|
op->data.recv_status_on_client.status = &status; |
|
|
@ -89,11 +99,16 @@ int main(int argc, char **argv) { |
|
|
|
cq_expect_completion(cqv, tag(1), 1); |
|
|
|
cq_expect_completion(cqv, tag(1), 1); |
|
|
|
cq_verify(cqv); |
|
|
|
cq_verify(cqv); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
peer = grpc_call_get_peer(call); |
|
|
|
|
|
|
|
GPR_ASSERT(strcmp(peer, "lampoon:national") == 0); |
|
|
|
|
|
|
|
gpr_free(peer); |
|
|
|
|
|
|
|
|
|
|
|
grpc_call_destroy(call); |
|
|
|
grpc_call_destroy(call); |
|
|
|
grpc_channel_destroy(chan); |
|
|
|
grpc_channel_destroy(chan); |
|
|
|
cq_verifier_destroy(cqv); |
|
|
|
cq_verifier_destroy(cqv); |
|
|
|
grpc_completion_queue_destroy(cq); |
|
|
|
grpc_completion_queue_destroy(cq); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
grpc_metadata_array_destroy(&initial_metadata_recv); |
|
|
|
grpc_metadata_array_destroy(&trailing_metadata_recv); |
|
|
|
grpc_metadata_array_destroy(&trailing_metadata_recv); |
|
|
|
gpr_free(details); |
|
|
|
gpr_free(details); |
|
|
|
|
|
|
|
|
|
|
|