wip for accept-encoding into tests

pull/2533/head
David Garcia Quintas 10 years ago
parent 607dd2eeb7
commit 7c0d914cce
  1. 8
      src/core/surface/call.c
  2. 6
      test/cpp/interop/server.cc
  3. 8
      test/cpp/interop/server_helper.cc
  4. 1
      test/cpp/interop/server_helper.h

@ -479,6 +479,12 @@ static void set_compression_algorithm(grpc_call *call,
call->compression_algorithm = algo;
}
grpc_compression_algorithm grpc_call_get_compression_algorithm(
const grpc_call *call) {
return call->compression_algorithm;
}
static void set_encodings_accepted_by_peer(grpc_call *call,
const gpr_slice accept_encoding_slice) {
size_t i;
@ -1350,7 +1356,7 @@ static gpr_uint32 decode_compression(grpc_mdelem *md) {
void *user_data = grpc_mdelem_get_user_data(md, destroy_compression);
if (user_data) {
algorithm =
((grpc_compression_level)(gpr_intptr)user_data) - COMPRESS_OFFSET;
((grpc_compression_algorithm)(gpr_intptr)user_data) - COMPRESS_OFFSET;
} else {
const char *md_c_str = grpc_mdstr_as_c_string(md->value);
if (!grpc_compression_algorithm_parse(md_c_str, strlen(md_c_str),

@ -42,6 +42,7 @@
#include <gflags/gflags.h>
#include <grpc/grpc.h>
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
#include <grpc++/config.h>
#include <grpc++/server.h>
#include <grpc++/server_builder.h>
@ -67,6 +68,7 @@ using grpc::ServerReader;
using grpc::ServerReaderWriter;
using grpc::ServerWriter;
using grpc::SslServerCredentialsOptions;
using grpc::testing::InteropServerContextInspector;
using grpc::testing::Payload;
using grpc::testing::PayloadType;
using grpc::testing::SimpleRequest;
@ -138,6 +140,7 @@ class TestServiceImpl : public TestService::Service {
Status UnaryCall(ServerContext* context, const SimpleRequest* request,
SimpleResponse* response) {
InteropServerContextInspector inspector(*context);
SetResponseCompression(context, *request);
if (request->has_response_size() && request->response_size() > 0) {
if (!SetPayload(request->response_type(), request->response_size(),
@ -145,6 +148,9 @@ class TestServiceImpl : public TestService::Service {
return Status(grpc::StatusCode::INTERNAL, "Error creating payload.");
}
}
const gpr_uint32 client_accept_encodings_bitset =
inspector.GetEncodingsAcceptedByClient();
gpr_log(GPR_INFO, "%d", GPR_BITCOUNT(client_accept_encodings_bitset));
return Status::OK;
}

@ -69,8 +69,12 @@ InteropServerContextInspector::GetCallCompressionAlgorithm() const {
return grpc_call_get_compression_algorithm(context_.call_);
}
std::shared_ptr<const AuthContext> InteropServerContextInspector::GetAuthContext()
const {
gpr_uint32 InteropServerContextInspector::GetEncodingsAcceptedByClient() const {
return grpc_call_get_encodings_accepted_by_peer(context_.call_);
}
std::shared_ptr<const AuthContext>
InteropServerContextInspector::GetAuthContext() const {
return context_.auth_context();
}

@ -53,6 +53,7 @@ class InteropServerContextInspector {
std::shared_ptr<const AuthContext> GetAuthContext() const;
bool IsCancelled() const;
grpc_compression_algorithm GetCallCompressionAlgorithm() const;
gpr_uint32 GetEncodingsAcceptedByClient() const;
private:
const ::grpc::ServerContext& context_;

Loading…
Cancel
Save