| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 | 
							
- // Copyright 2015, Google Inc.
 
- // All rights reserved.
 
- //
 
- // Redistribution and use in source and binary forms, with or without
 
- // modification, are permitted provided that the following conditions are
 
- // met:
 
- //
 
- //     * Redistributions of source code must retain the above copyright
 
- // notice, this list of conditions and the following disclaimer.
 
- //     * Redistributions in binary form must reproduce the above
 
- // copyright notice, this list of conditions and the following disclaimer
 
- // in the documentation and/or other materials provided with the
 
- // distribution.
 
- //     * Neither the name of Google Inc. nor the names of its
 
- // contributors may be used to endorse or promote products derived from
 
- // this software without specific prior written permission.
 
- //
 
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
- // An integration test service that covers all the method signature permutations
 
- // of unary/streaming requests/responses.
 
- syntax = "proto2";
 
- package grpc.testing;
 
- enum PayloadType {
 
-   // Compressable text format.
 
-   COMPRESSABLE= 1;
 
-   // Uncompressable binary format.
 
-   UNCOMPRESSABLE = 2;
 
-   // Randomly chosen from all other formats defined in this enum.
 
-   RANDOM = 3;
 
- }
 
- message StatsRequest {
 
-   // run number
 
-   optional int32 test_num = 1;
 
- }
 
- message ServerStats {
 
-   // wall clock time
 
-   required double time_elapsed = 1;
 
-   // user time used by the server process and threads
 
-   required double time_user = 2;
 
-   // server time used by the server process and all threads
 
-   required double time_system = 3;
 
- }
 
- message Payload {
 
-   // The type of data in body.
 
-   optional PayloadType type = 1;
 
-   // Primary contents of payload.
 
-   optional bytes body = 2;
 
- }
 
- message HistogramData {
 
-   repeated uint32 bucket = 1;
 
-   required double min_seen = 2;
 
-   required double max_seen = 3;
 
-   required double sum = 4;
 
-   required double sum_of_squares = 5;
 
-   required double count = 6;
 
- }
 
- enum ClientType {
 
-   SYNCHRONOUS_CLIENT = 1;
 
-   ASYNC_CLIENT = 2;
 
- }
 
- enum ServerType {
 
-   SYNCHRONOUS_SERVER = 1;
 
-   ASYNC_SERVER = 2;
 
- }
 
- enum RpcType {
 
-   UNARY = 1;
 
-   STREAMING = 2;
 
- }
 
- enum LoadType {
 
-   CLOSED_LOOP = 1;
 
-   POISSON = 2;
 
-   UNIFORM = 3;
 
-   DETERMINISTIC = 4;
 
-   PARETO = 5;
 
- }
 
- message PoissonParams {
 
-   optional double offered_load = 1;
 
- }
 
- message UniformParams {
 
-   optional double interarrival_lo = 1;
 
-   optional double interarrival_hi = 2;
 
- }
 
- message DeterministicParams {
 
-   optional double offered_load = 1;
 
- }
 
- message ParetoParams {
 
-   optional double interarrival_base = 1;
 
-   optional double alpha = 2;
 
- }
 
- message LoadParams {
 
-   oneof load {
 
-     PoissonParams poisson = 1;
 
-     UniformParams uniform = 2;
 
-     DeterministicParams determ = 3;
 
-     ParetoParams pareto = 4;
 
-   };
 
- }
 
- message ClientConfig {
 
-   repeated string server_targets = 1;
 
-   required ClientType client_type = 2;
 
-   optional bool enable_ssl = 3 [default=false];
 
-   required int32 outstanding_rpcs_per_channel = 4;
 
-   required int32 client_channels = 5;
 
-   required int32 payload_size = 6;
 
-   // only for async client:
 
-   optional int32 async_client_threads = 7;
 
-   optional RpcType rpc_type = 8 [default=UNARY];
 
-   optional LoadType load_type = 9 [default=CLOSED_LOOP];
 
-   optional LoadParams load_params = 10;
 
- }
 
- // Request current stats
 
- message Mark {}
 
- message ClientArgs {
 
-   oneof argtype {
 
-     ClientConfig setup = 1;
 
-     Mark mark = 2;
 
-   }
 
- }
 
- message ClientStats {
 
-   required HistogramData latencies = 1;
 
-   required double time_elapsed = 3;
 
-   required double time_user = 4;
 
-   required double time_system = 5;
 
- }
 
- message ClientStatus {
 
-   optional ClientStats stats = 1;
 
- }
 
- message ServerConfig {
 
-   required ServerType server_type = 1;
 
-   optional int32 threads = 2 [default=1];
 
-   optional bool enable_ssl = 3 [default=false];
 
- }
 
- message ServerArgs {
 
-   oneof argtype {
 
-     ServerConfig setup = 1;
 
-     Mark mark = 2;
 
-   }
 
- }
 
- message ServerStatus {
 
-   optional ServerStats stats = 1;
 
-   required int32 port = 2;
 
- }
 
- message SimpleRequest {
 
-   // Desired payload type in the response from the server.
 
-   // If response_type is RANDOM, server randomly chooses one from other formats.
 
-   optional PayloadType response_type = 1 [default=COMPRESSABLE];
 
-   // Desired payload size in the response from the server.
 
-   // If response_type is COMPRESSABLE, this denotes the size before compression.
 
-   optional int32 response_size = 2 [default=0];
 
-   // Optional input payload sent along with the request.
 
-   optional Payload payload = 3;
 
- }
 
- message SimpleResponse {
 
-   optional Payload payload = 1;
 
- }
 
- service TestService {
 
-   // One request followed by one response.
 
-   // The server returns the client payload as-is.
 
-   rpc UnaryCall(SimpleRequest) returns (SimpleResponse);
 
-   // One request followed by one response.
 
-   // The server returns the client payload as-is.
 
-   rpc StreamingCall(stream SimpleRequest) returns (stream SimpleResponse);
 
- }
 
- service Worker {
 
-   // Start test with specified workload
 
-   rpc RunTest(stream ClientArgs) returns (stream ClientStatus);
 
-   // Start test with specified workload
 
-   rpc RunServer(stream ServerArgs) returns (stream ServerStatus);
 
- }
 
 
  |