diff options
author | Robbie Shade <robbie.shade@gmail.com> | 2015-08-13 18:03:24 -0400 |
---|---|---|
committer | Robbie Shade <robbie.shade@gmail.com> | 2015-08-13 18:03:24 -0400 |
commit | 3544fd26a075213882aed48f43f83277b26aa60f (patch) | |
tree | a1515dd423e86f4ea65106fd7d0945dab094aebd /test | |
parent | 6d9e1849ee830fad9d04b2dd837f386a949bb436 (diff) | |
parent | ed48bf8f71efce4a9037a74ae9ab2c83a3e9b4a7 (diff) |
Merge remote-tracking branch 'upstream/master' into add_udp_server_2
Conflicts:
Makefile
Diffstat (limited to 'test')
-rw-r--r-- | test/core/support/cancellable_test.c | 172 | ||||
-rw-r--r-- | test/cpp/interop/interop_client.cc | 3 | ||||
-rw-r--r-- | test/cpp/interop/server.cc | 4 | ||||
-rw-r--r-- | test/cpp/util/echo.proto | 2 | ||||
-rw-r--r-- | test/cpp/util/echo_duplicate.proto | 2 | ||||
-rw-r--r-- | test/cpp/util/messages.proto | 30 | ||||
-rw-r--r-- | test/proto/empty.proto | 2 | ||||
-rw-r--r-- | test/proto/messages.proto | 52 | ||||
-rw-r--r-- | test/proto/test.proto | 2 |
9 files changed, 47 insertions, 222 deletions
diff --git a/test/core/support/cancellable_test.c b/test/core/support/cancellable_test.c deleted file mode 100644 index 9b321d388e..0000000000 --- a/test/core/support/cancellable_test.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * - * 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. - * - */ - -/* Test of gpr_cancellable. */ - -#include <stdio.h> -#include <stdlib.h> -#include <grpc/support/log.h> -#include <grpc/support/sync.h> -#include <grpc/support/thd.h> -#include <grpc/support/time.h> -#include "test/core/util/test_config.h" - -struct test { - gpr_mu mu; - gpr_cv cv; - gpr_event ev; - gpr_event done; - gpr_cancellable cancel; - int n; -}; - -/* A thread body. Wait until t->cancel is cancelledm then - decrement t->n. If t->n becomes 0, set t->done. */ -static void thd_body(void *v) { - struct test *t = v; - gpr_mu_lock(&t->mu); - while (!gpr_cv_cancellable_wait( - &t->cv, &t->mu, gpr_inf_future(GPR_CLOCK_REALTIME), &t->cancel)) { - } - t->n--; - if (t->n == 0) { - gpr_event_set(&t->done, (void *)1); - } - gpr_mu_unlock(&t->mu); -} - -static void test(void) { - int i; - gpr_thd_id thd; - struct test t; - int n = 1; - gpr_timespec interval; - - gpr_mu_init(&t.mu); - gpr_cv_init(&t.cv); - gpr_event_init(&t.ev); - gpr_event_init(&t.done); - gpr_cancellable_init(&t.cancel); - - /* A gpr_cancellable starts not cancelled. */ - GPR_ASSERT(!gpr_cancellable_is_cancelled(&t.cancel)); - - /* Test timeout on event wait for uncancelled gpr_cancellable */ - interval = gpr_now(GPR_CLOCK_REALTIME); - gpr_event_cancellable_wait( - &t.ev, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_micros(1000000, GPR_TIMESPAN)), - &t.cancel); - interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); - GPR_ASSERT( - gpr_time_cmp(interval, gpr_time_from_micros(500000, GPR_TIMESPAN)) >= 0); - GPR_ASSERT( - gpr_time_cmp(gpr_time_from_micros(2000000, GPR_TIMESPAN), interval) >= 0); - - /* Test timeout on cv wait for uncancelled gpr_cancellable */ - gpr_mu_lock(&t.mu); - interval = gpr_now(GPR_CLOCK_REALTIME); - while (!gpr_cv_cancellable_wait( - &t.cv, &t.mu, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_micros(1000000, GPR_TIMESPAN)), - &t.cancel)) { - } - interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); - GPR_ASSERT( - gpr_time_cmp(interval, gpr_time_from_micros(500000, GPR_TIMESPAN)) >= 0); - GPR_ASSERT( - gpr_time_cmp(gpr_time_from_micros(2000000, GPR_TIMESPAN), interval) >= 0); - gpr_mu_unlock(&t.mu); - - /* Create some threads. They all wait until cancelled; the last to finish - sets t.done. */ - t.n = n; - for (i = 0; i != n; i++) { - GPR_ASSERT(gpr_thd_new(&thd, &thd_body, &t, NULL)); - } - /* Check that t.cancel still is not cancelled. */ - GPR_ASSERT(!gpr_cancellable_is_cancelled(&t.cancel)); - - /* Wait a second, and check that no threads have finished waiting. */ - gpr_mu_lock(&t.mu); - gpr_cv_wait(&t.cv, &t.mu, - gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_micros(1000000, GPR_TIMESPAN))); - GPR_ASSERT(t.n == n); - gpr_mu_unlock(&t.mu); - - /* Check that t.cancel still is not cancelled, but when - cancelled it retports that it is cacncelled. */ - GPR_ASSERT(!gpr_cancellable_is_cancelled(&t.cancel)); - gpr_cancellable_cancel(&t.cancel); - GPR_ASSERT(gpr_cancellable_is_cancelled(&t.cancel)); - - /* Wait for threads to finish. */ - gpr_event_wait(&t.done, gpr_inf_future(GPR_CLOCK_REALTIME)); - GPR_ASSERT(t.n == 0); - - /* Test timeout on cv wait for cancelled gpr_cancellable */ - gpr_mu_lock(&t.mu); - interval = gpr_now(GPR_CLOCK_REALTIME); - while (!gpr_cv_cancellable_wait( - &t.cv, &t.mu, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_micros(1000000, GPR_TIMESPAN)), - &t.cancel)) { - } - interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); - GPR_ASSERT( - gpr_time_cmp(gpr_time_from_micros(100000, GPR_TIMESPAN), interval) >= 0); - gpr_mu_unlock(&t.mu); - - /* Test timeout on event wait for cancelled gpr_cancellable */ - interval = gpr_now(GPR_CLOCK_REALTIME); - gpr_event_cancellable_wait( - &t.ev, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_micros(1000000, GPR_TIMESPAN)), - &t.cancel); - interval = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), interval); - GPR_ASSERT( - gpr_time_cmp(gpr_time_from_micros(100000, GPR_TIMESPAN), interval) >= 0); - - gpr_mu_destroy(&t.mu); - gpr_cv_destroy(&t.cv); - gpr_cancellable_destroy(&t.cancel); -} - -/* ------------------------------------------------- */ - -int main(int argc, char *argv[]) { - grpc_test_init(argc, argv); - test(); - return 0; -} diff --git a/test/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc index dfb90fadc2..066877e0c6 100644 --- a/test/cpp/interop/interop_client.cc +++ b/test/cpp/interop/interop_client.cc @@ -316,7 +316,6 @@ void InteropClient::DoHalfDuplex() { unsigned int i = 0; StreamingOutputCallResponse response; while (stream->Read(&response)) { - GPR_ASSERT(response.payload().has_body()); GPR_ASSERT(response.payload().body() == grpc::string(response_stream_sizes[i], '\0')); ++i; @@ -346,7 +345,6 @@ void InteropClient::DoPingPong() { payload->set_body(grpc::string(request_stream_sizes[i], '\0')); GPR_ASSERT(stream->Write(request)); GPR_ASSERT(stream->Read(&response)); - GPR_ASSERT(response.payload().has_body()); GPR_ASSERT(response.payload().body() == grpc::string(response_stream_sizes[i], '\0')); } @@ -393,7 +391,6 @@ void InteropClient::DoCancelAfterFirstResponse() { StreamingOutputCallResponse response; GPR_ASSERT(stream->Write(request)); GPR_ASSERT(stream->Read(&response)); - GPR_ASSERT(response.payload().has_body()); GPR_ASSERT(response.payload().body() == grpc::string(31415, '\0')); gpr_log(GPR_INFO, "Trying to cancel..."); context.TryCancel(); diff --git a/test/cpp/interop/server.cc b/test/cpp/interop/server.cc index 05a10de51e..4e809ed902 100644 --- a/test/cpp/interop/server.cc +++ b/test/cpp/interop/server.cc @@ -99,7 +99,7 @@ class TestServiceImpl : public TestService::Service { Status UnaryCall(ServerContext* context, const SimpleRequest* request, SimpleResponse* response) { - if (request->has_response_size() && request->response_size() > 0) { + if (request->response_size() > 0) { if (!SetPayload(request->response_type(), request->response_size(), response->mutable_payload())) { return Status(grpc::StatusCode::INTERNAL, "Error creating payload."); @@ -140,7 +140,7 @@ class TestServiceImpl : public TestService::Service { StreamingInputCallRequest request; int aggregated_payload_size = 0; while (reader->Read(&request)) { - if (request.has_payload() && request.payload().has_body()) { + if (request.has_payload()) { aggregated_payload_size += request.payload().body().size(); } } diff --git a/test/cpp/util/echo.proto b/test/cpp/util/echo.proto index 58ec680ecd..6bb09316b4 100644 --- a/test/cpp/util/echo.proto +++ b/test/cpp/util/echo.proto @@ -28,7 +28,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -syntax = "proto2"; +syntax = "proto3"; import "test/cpp/util/messages.proto"; diff --git a/test/cpp/util/echo_duplicate.proto b/test/cpp/util/echo_duplicate.proto index e54c016d2f..9c1d67825a 100644 --- a/test/cpp/util/echo_duplicate.proto +++ b/test/cpp/util/echo_duplicate.proto @@ -30,7 +30,7 @@ // This is a partial copy of echo.proto with a different package name. -syntax = "proto2"; +syntax = "proto3"; import "test/cpp/util/messages.proto"; diff --git a/test/cpp/util/messages.proto b/test/cpp/util/messages.proto index 24e199b809..359d1db74f 100644 --- a/test/cpp/util/messages.proto +++ b/test/cpp/util/messages.proto @@ -28,32 +28,32 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -syntax = "proto2"; +syntax = "proto3"; package grpc.cpp.test.util; message RequestParams { - optional bool echo_deadline = 1; - optional int32 client_cancel_after_us = 2; - optional int32 server_cancel_after_us = 3; - optional bool echo_metadata = 4; - optional bool check_auth_context = 5; - optional int32 response_message_length = 6; - optional bool echo_peer = 7; + bool echo_deadline = 1; + int32 client_cancel_after_us = 2; + int32 server_cancel_after_us = 3; + bool echo_metadata = 4; + bool check_auth_context = 5; + int32 response_message_length = 6; + bool echo_peer = 7; } message EchoRequest { - optional string message = 1; - optional RequestParams param = 2; + string message = 1; + RequestParams param = 2; } message ResponseParams { - optional int64 request_deadline = 1; - optional string host = 2; - optional string peer = 3; + int64 request_deadline = 1; + string host = 2; + string peer = 3; } message EchoResponse { - optional string message = 1; - optional ResponseParams param = 2; + string message = 1; + ResponseParams param = 2; } diff --git a/test/proto/empty.proto b/test/proto/empty.proto index 4295a0a960..6d0eb937d6 100644 --- a/test/proto/empty.proto +++ b/test/proto/empty.proto @@ -28,7 +28,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -syntax = "proto2"; +syntax = "proto3"; package grpc.testing; diff --git a/test/proto/messages.proto b/test/proto/messages.proto index 89e55443b5..193b6c4171 100644 --- a/test/proto/messages.proto +++ b/test/proto/messages.proto @@ -30,7 +30,7 @@ // Message definitions to be used by integration test service definitions. -syntax = "proto2"; +syntax = "proto3"; package grpc.testing; @@ -57,59 +57,59 @@ enum CompressionType { // A block of data, to simply increase gRPC message size. message Payload { // The type of data in body. - optional PayloadType type = 1; + PayloadType type = 1; // Primary contents of payload. - optional bytes body = 2; + bytes body = 2; } // A protobuf representation for grpc status. This is used by test // clients to specify a status that the server should attempt to return. -message EchoStatus { - optional int32 code = 1; - optional string message = 2; +message EchoStatus { + int32 code = 1; + string message = 2; } // Unary request. 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; + PayloadType response_type = 1; // 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; + int32 response_size = 2; // Optional input payload sent along with the request. - optional Payload payload = 3; + Payload payload = 3; // Whether SimpleResponse should include username. - optional bool fill_username = 4; + bool fill_username = 4; // Whether SimpleResponse should include OAuth scope. - optional bool fill_oauth_scope = 5; + bool fill_oauth_scope = 5; // Compression algorithm to be used by the server for the response (stream) - optional CompressionType response_compression = 6; + CompressionType response_compression = 6; // Whether server should return a given status - optional EchoStatus response_status = 7; + EchoStatus response_status = 7; } // Unary response, as configured by the request. message SimpleResponse { // Payload to increase message size. - optional Payload payload = 1; + Payload payload = 1; // The user the request came from, for verifying authentication was // successful when the client expected it. - optional string username = 2; + string username = 2; // OAuth scope. - optional string oauth_scope = 3; + string oauth_scope = 3; } // Client-streaming request. message StreamingInputCallRequest { // Optional input payload sent along with the request. - optional Payload payload = 1; + Payload payload = 1; // Not expecting any payload from the response. } @@ -117,18 +117,18 @@ message StreamingInputCallRequest { // Client-streaming response. message StreamingInputCallResponse { // Aggregated size of payloads received from the client. - optional int32 aggregated_payload_size = 1; + int32 aggregated_payload_size = 1; } // Configuration for a particular response. message ResponseParameters { // Desired payload sizes in responses from the server. // If response_type is COMPRESSABLE, this denotes the size before compression. - optional int32 size = 1; + int32 size = 1; // Desired interval between consecutive responses in the response stream in // microseconds. - optional int32 interval_us = 2; + int32 interval_us = 2; } // Server-streaming request. @@ -137,31 +137,31 @@ message StreamingOutputCallRequest { // If response_type is RANDOM, the payload from each response in the stream // might be of different types. This is to simulate a mixed type of payload // stream. - optional PayloadType response_type = 1; + PayloadType response_type = 1; // Configuration for each expected response message. repeated ResponseParameters response_parameters = 2; // Optional input payload sent along with the request. - optional Payload payload = 3; + Payload payload = 3; // Compression algorithm to be used by the server for the response (stream) - optional CompressionType response_compression = 6; + CompressionType response_compression = 6; // Whether server should return a given status - optional EchoStatus response_status = 7; + EchoStatus response_status = 7; } // Server-streaming response, as configured by the request and parameters. message StreamingOutputCallResponse { // Payload to increase response size. - optional Payload payload = 1; + Payload payload = 1; } // For reconnect interop test only. // Server tells client whether its reconnects are following the spec and the // reconnect backoffs it saw. message ReconnectInfo { - optional bool passed = 1; + bool passed = 1; repeated int32 backoff_ms = 2; } diff --git a/test/proto/test.proto b/test/proto/test.proto index 368522dc4c..92aff23929 100644 --- a/test/proto/test.proto +++ b/test/proto/test.proto @@ -31,7 +31,7 @@ // An integration test service that covers all the method signature permutations // of unary/streaming requests/responses. -syntax = "proto2"; +syntax = "proto3"; import "test/proto/empty.proto"; import "test/proto/messages.proto"; |