mirror of https://github.com/grpc/grpc.git
commit
cacaa1950d
86 changed files with 2503 additions and 460 deletions
@ -1,5 +1,5 @@ |
|||||||
{ |
{ |
||||||
"sdk": { |
"sdk": { |
||||||
"version": "1.0.0-preview2-003121" |
"version": "1.0.0-preview2-003131" |
||||||
} |
} |
||||||
} |
} |
@ -0,0 +1,61 @@ |
|||||||
|
/*
|
||||||
|
* |
||||||
|
* Copyright 2017, 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. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef GRPCXX_SUPPORT_ERROR_DETAILS_H |
||||||
|
#define GRPCXX_SUPPORT_ERROR_DETAILS_H |
||||||
|
|
||||||
|
#include <grpc++/support/status.h> |
||||||
|
|
||||||
|
namespace google { |
||||||
|
namespace rpc { |
||||||
|
class Status; |
||||||
|
} // namespace rpc
|
||||||
|
} // namespace google
|
||||||
|
|
||||||
|
namespace grpc { |
||||||
|
|
||||||
|
// Maps a grpc::Status to a google::rpc::Status.
|
||||||
|
// The given \a to object will be cleared.
|
||||||
|
// On success, returns status with OK.
|
||||||
|
// Returns status with INVALID_ARGUMENT, if failed to deserialize.
|
||||||
|
// Returns status with FAILED_PRECONDITION, if \a to is nullptr.
|
||||||
|
Status ExtractErrorDetails(const Status& from, ::google::rpc::Status* to); |
||||||
|
|
||||||
|
// Maps google::rpc::Status to a grpc::Status.
|
||||||
|
// Returns OK on success.
|
||||||
|
// Returns status with FAILED_PRECONDITION if \a to is nullptr.
|
||||||
|
Status SetErrorDetails(const ::google::rpc::Status& from, Status* to); |
||||||
|
|
||||||
|
} // namespace grpc
|
||||||
|
|
||||||
|
#endif // GRPCXX_SUPPORT_ERROR_DETAILS_H
|
@ -0,0 +1,75 @@ |
|||||||
|
/*
|
||||||
|
* Copyright 2017, 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. |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Automatically generated by tools/codegen/core/gen_settings_ids.py |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "src/core/ext/transport/chttp2/transport/http2_settings.h" |
||||||
|
|
||||||
|
#include <grpc/support/useful.h> |
||||||
|
#include "src/core/lib/transport/http2_errors.h" |
||||||
|
|
||||||
|
const uint16_t grpc_setting_id_to_wire_id[] = {1, 2, 3, 4, 5, 6, 65027}; |
||||||
|
|
||||||
|
bool grpc_wire_id_to_setting_id(uint32_t wire_id, grpc_chttp2_setting_id *out) { |
||||||
|
uint32_t i = wire_id - 1; |
||||||
|
uint32_t x = i % 256; |
||||||
|
uint32_t y = i / 256; |
||||||
|
uint32_t h = x; |
||||||
|
switch (y) { |
||||||
|
case 254: |
||||||
|
h += 4; |
||||||
|
break; |
||||||
|
} |
||||||
|
*out = (grpc_chttp2_setting_id)h; |
||||||
|
return h < GPR_ARRAY_SIZE(grpc_setting_id_to_wire_id) && |
||||||
|
grpc_setting_id_to_wire_id[h] == wire_id; |
||||||
|
} |
||||||
|
|
||||||
|
const grpc_chttp2_setting_parameters |
||||||
|
grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS] = { |
||||||
|
{"HEADER_TABLE_SIZE", 4096u, 0u, 4294967295u, |
||||||
|
GRPC_CHTTP2_CLAMP_INVALID_VALUE, GRPC_HTTP2_PROTOCOL_ERROR}, |
||||||
|
{"ENABLE_PUSH", 1u, 0u, 1u, GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE, |
||||||
|
GRPC_HTTP2_PROTOCOL_ERROR}, |
||||||
|
{"MAX_CONCURRENT_STREAMS", 4294967295u, 0u, 4294967295u, |
||||||
|
GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE, GRPC_HTTP2_PROTOCOL_ERROR}, |
||||||
|
{"INITIAL_WINDOW_SIZE", 65535u, 0u, 2147483647u, |
||||||
|
GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE, |
||||||
|
GRPC_HTTP2_FLOW_CONTROL_ERROR}, |
||||||
|
{"MAX_FRAME_SIZE", 16384u, 16384u, 16777215u, |
||||||
|
GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE, GRPC_HTTP2_PROTOCOL_ERROR}, |
||||||
|
{"MAX_HEADER_LIST_SIZE", 16777216u, 0u, 16777216u, |
||||||
|
GRPC_CHTTP2_CLAMP_INVALID_VALUE, GRPC_HTTP2_PROTOCOL_ERROR}, |
||||||
|
{"GRPC_ALLOW_TRUE_BINARY_METADATA", 0u, 0u, 1u, |
||||||
|
GRPC_CHTTP2_CLAMP_INVALID_VALUE, GRPC_HTTP2_PROTOCOL_ERROR}, |
||||||
|
}; |
@ -0,0 +1,74 @@ |
|||||||
|
/*
|
||||||
|
* Copyright 2017, 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. |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Automatically generated by tools/codegen/core/gen_settings_ids.py |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H |
||||||
|
#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H |
||||||
|
|
||||||
|
#include <stdbool.h> |
||||||
|
#include <stdint.h> |
||||||
|
|
||||||
|
typedef enum { |
||||||
|
GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE = 0, /* wire id 1 */ |
||||||
|
GRPC_CHTTP2_SETTINGS_ENABLE_PUSH = 1, /* wire id 2 */ |
||||||
|
GRPC_CHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS = 2, /* wire id 3 */ |
||||||
|
GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE = 3, /* wire id 4 */ |
||||||
|
GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE = 4, /* wire id 5 */ |
||||||
|
GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE = 5, /* wire id 6 */ |
||||||
|
GRPC_CHTTP2_SETTINGS_GRPC_ALLOW_TRUE_BINARY_METADATA = 6, /* wire id 65027 */ |
||||||
|
} grpc_chttp2_setting_id; |
||||||
|
|
||||||
|
#define GRPC_CHTTP2_NUM_SETTINGS 7 |
||||||
|
extern const uint16_t grpc_setting_id_to_wire_id[]; |
||||||
|
|
||||||
|
bool grpc_wire_id_to_setting_id(uint32_t wire_id, grpc_chttp2_setting_id *out); |
||||||
|
|
||||||
|
typedef enum { |
||||||
|
GRPC_CHTTP2_CLAMP_INVALID_VALUE, |
||||||
|
GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE |
||||||
|
} grpc_chttp2_invalid_value_behavior; |
||||||
|
|
||||||
|
typedef struct { |
||||||
|
const char *name; |
||||||
|
uint32_t default_value; |
||||||
|
uint32_t min_value; |
||||||
|
uint32_t max_value; |
||||||
|
grpc_chttp2_invalid_value_behavior invalid_value_behavior; |
||||||
|
uint32_t error_value; |
||||||
|
} grpc_chttp2_setting_parameters; |
||||||
|
|
||||||
|
extern const grpc_chttp2_setting_parameters |
||||||
|
grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS]; |
||||||
|
|
||||||
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H */ |
@ -0,0 +1,62 @@ |
|||||||
|
/*
|
||||||
|
* |
||||||
|
* Copyright 2017, 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. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <grpc++/support/error_details.h> |
||||||
|
|
||||||
|
#include "src/proto/grpc/status/status.pb.h" |
||||||
|
|
||||||
|
namespace grpc { |
||||||
|
|
||||||
|
Status ExtractErrorDetails(const Status& from, ::google::rpc::Status* to) { |
||||||
|
if (to == nullptr) { |
||||||
|
return Status(StatusCode::FAILED_PRECONDITION, ""); |
||||||
|
} |
||||||
|
if (!to->ParseFromString(from.error_details())) { |
||||||
|
return Status(StatusCode::INVALID_ARGUMENT, ""); |
||||||
|
} |
||||||
|
return Status::OK; |
||||||
|
} |
||||||
|
|
||||||
|
Status SetErrorDetails(const ::google::rpc::Status& from, Status* to) { |
||||||
|
if (to == nullptr) { |
||||||
|
return Status(StatusCode::FAILED_PRECONDITION, ""); |
||||||
|
} |
||||||
|
StatusCode code = StatusCode::UNKNOWN; |
||||||
|
if (from.code() >= StatusCode::OK && from.code() <= StatusCode::DATA_LOSS) { |
||||||
|
code = static_cast<StatusCode>(from.code()); |
||||||
|
} |
||||||
|
*to = Status(code, from.message(), from.SerializeAsString()); |
||||||
|
return Status::OK; |
||||||
|
} |
||||||
|
|
||||||
|
} // namespace grpc
|
@ -1,35 +0,0 @@ |
|||||||
{ |
|
||||||
"version": "1.3.0-dev", |
|
||||||
"title": "gRPC C# Auth", |
|
||||||
"authors": [ "Google Inc." ], |
|
||||||
"copyright": "Copyright 2015, Google Inc.", |
|
||||||
"packOptions": { |
|
||||||
"summary": "Auth library for C# implementation of gRPC - an RPC library and framework", |
|
||||||
"description": "Auth library for C# implementation of gRPC - an RPC library and framework. See project site for more info.", |
|
||||||
"owners": [ "grpc-packages" ], |
|
||||||
"licenseUrl": "https://github.com/grpc/grpc/blob/master/LICENSE", |
|
||||||
"projectUrl": "https://github.com/grpc/grpc", |
|
||||||
"requireLicenseAcceptance": false, |
|
||||||
"tags": [ "gRPC RPC Protocol HTTP/2 Auth OAuth2" ], |
|
||||||
}, |
|
||||||
"buildOptions": { |
|
||||||
"define": [ "SIGNED" ], |
|
||||||
"keyFile": "../keys/Grpc.snk", |
|
||||||
"xmlDoc": true, |
|
||||||
"compile": { |
|
||||||
"includeFiles": [ "../Grpc.Core/Version.cs" ] |
|
||||||
} |
|
||||||
}, |
|
||||||
"dependencies": { |
|
||||||
"Grpc.Core": "1.3.0-dev", |
|
||||||
"Google.Apis.Auth": "1.21.0" |
|
||||||
}, |
|
||||||
"frameworks": { |
|
||||||
"net45": { }, |
|
||||||
"netstandard1.5": { |
|
||||||
"dependencies": { |
|
||||||
"NETStandard.Library": "1.6.0" |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,39 +0,0 @@ |
|||||||
{ |
|
||||||
"version": "1.3.0-dev", |
|
||||||
"title": "gRPC C# Core Testing", |
|
||||||
"authors": [ "Google Inc." ], |
|
||||||
"copyright": "Copyright 2017, Google Inc.", |
|
||||||
"packOptions": { |
|
||||||
"summary": "Testing support for gRPC C#", |
|
||||||
"description": "Useful when testing code that uses gRPC.", |
|
||||||
"owners": [ "grpc-packages" ], |
|
||||||
"licenseUrl": "https://github.com/grpc/grpc/blob/master/LICENSE", |
|
||||||
"projectUrl": "https://github.com/grpc/grpc", |
|
||||||
"requireLicenseAcceptance": false, |
|
||||||
"tags": [ "gRPC test testing" ] |
|
||||||
}, |
|
||||||
"buildOptions": { |
|
||||||
"define": [ "SIGNED" ], |
|
||||||
"keyFile": "../keys/Grpc.snk", |
|
||||||
"xmlDoc": true, |
|
||||||
"compile": { |
|
||||||
"includeFiles": [ "../Grpc.Core/Version.cs" ] |
|
||||||
} |
|
||||||
}, |
|
||||||
"dependencies": { |
|
||||||
"Grpc.Core": "1.3.0-dev" |
|
||||||
}, |
|
||||||
"frameworks": { |
|
||||||
"net45": { |
|
||||||
"frameworkAssemblies": { |
|
||||||
"System.Runtime": "", |
|
||||||
"System.IO": "" |
|
||||||
} |
|
||||||
}, |
|
||||||
"netstandard1.5": { |
|
||||||
"dependencies": { |
|
||||||
"NETStandard.Library": "1.6.0" |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,35 +0,0 @@ |
|||||||
{ |
|
||||||
"version": "1.3.0-dev", |
|
||||||
"title": "gRPC C# Healthchecking", |
|
||||||
"authors": [ "Google Inc." ], |
|
||||||
"copyright": "Copyright 2015, Google Inc.", |
|
||||||
"packOptions": { |
|
||||||
"summary": "Implementation of gRPC health service", |
|
||||||
"description": "Example implementation of grpc.health.v1 service that can be used for health-checking.", |
|
||||||
"owners": [ "grpc-packages" ], |
|
||||||
"licenseUrl": "https://github.com/grpc/grpc/blob/master/LICENSE", |
|
||||||
"projectUrl": "https://github.com/grpc/grpc", |
|
||||||
"requireLicenseAcceptance": false, |
|
||||||
"tags": [ "gRPC health check" ] |
|
||||||
}, |
|
||||||
"buildOptions": { |
|
||||||
"define": [ "SIGNED" ], |
|
||||||
"keyFile": "../keys/Grpc.snk", |
|
||||||
"xmlDoc": true, |
|
||||||
"compile": { |
|
||||||
"includeFiles": [ "../Grpc.Core/Version.cs" ] |
|
||||||
} |
|
||||||
}, |
|
||||||
"dependencies": { |
|
||||||
"Grpc.Core": "1.3.0-dev", |
|
||||||
"Google.Protobuf": "3.2.0" |
|
||||||
}, |
|
||||||
"frameworks": { |
|
||||||
"net45": {}, |
|
||||||
"netstandard1.5": { |
|
||||||
"dependencies": { |
|
||||||
"NETStandard.Library": "1.6.0" |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,35 +0,0 @@ |
|||||||
{ |
|
||||||
"version": "1.3.0-dev", |
|
||||||
"title": "gRPC C# Reflection", |
|
||||||
"authors": [ "Google Inc." ], |
|
||||||
"copyright": "Copyright 2016, Google Inc.", |
|
||||||
"packOptions": { |
|
||||||
"summary": "Implementation of gRPC reflection service", |
|
||||||
"description": "Provides information about services running on a gRPC C# server.", |
|
||||||
"owners": [ "grpc-packages" ], |
|
||||||
"licenseUrl": "https://github.com/grpc/grpc/blob/master/LICENSE", |
|
||||||
"projectUrl": "https://github.com/grpc/grpc", |
|
||||||
"requireLicenseAcceptance": false, |
|
||||||
"tags": [ "gRPC reflection" ] |
|
||||||
}, |
|
||||||
"buildOptions": { |
|
||||||
"define": [ "SIGNED" ], |
|
||||||
"keyFile": "../keys/Grpc.snk", |
|
||||||
"xmlDoc": true, |
|
||||||
"compile": { |
|
||||||
"includeFiles": [ "../Grpc.Core/Version.cs" ] |
|
||||||
} |
|
||||||
}, |
|
||||||
"dependencies": { |
|
||||||
"Grpc.Core": "1.3.0-dev", |
|
||||||
"Google.Protobuf": "3.2.0" |
|
||||||
}, |
|
||||||
"frameworks": { |
|
||||||
"net45": {}, |
|
||||||
"netstandard1.5": { |
|
||||||
"dependencies": { |
|
||||||
"NETStandard.Library": "1.6.0" |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,43 @@ |
|||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
licenses(["notice"]) # 3-clause BSD |
||||||
|
|
||||||
|
package(default_visibility = ["//visibility:public"]) |
||||||
|
|
||||||
|
load("//bazel:grpc_build_system.bzl", "grpc_proto_library") |
||||||
|
|
||||||
|
grpc_proto_library( |
||||||
|
name = "status_proto", |
||||||
|
srcs = ["status.proto"], |
||||||
|
has_services = False, |
||||||
|
well_known_protos = "@submodule_protobuf//:well_known_protos", |
||||||
|
) |
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@ |
|||||||
|
The status.proto file is copied from |
||||||
|
https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto. |
@ -0,0 +1,92 @@ |
|||||||
|
// Copyright 2016 Google Inc. |
||||||
|
// |
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
// you may not use this file except in compliance with the License. |
||||||
|
// You may obtain a copy of the License at |
||||||
|
// |
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
// |
||||||
|
// Unless required by applicable law or agreed to in writing, software |
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
// See the License for the specific language governing permissions and |
||||||
|
// limitations under the License. |
||||||
|
|
||||||
|
syntax = "proto3"; |
||||||
|
|
||||||
|
package google.rpc; |
||||||
|
|
||||||
|
import "google/protobuf/any.proto"; |
||||||
|
|
||||||
|
option go_package = "google.golang.org/genproto/googleapis/rpc/status;status"; |
||||||
|
option java_multiple_files = true; |
||||||
|
option java_outer_classname = "StatusProto"; |
||||||
|
option java_package = "com.google.rpc"; |
||||||
|
option objc_class_prefix = "RPC"; |
||||||
|
|
||||||
|
|
||||||
|
// The `Status` type defines a logical error model that is suitable for different |
||||||
|
// programming environments, including REST APIs and RPC APIs. It is used by |
||||||
|
// [gRPC](https://github.com/grpc). The error model is designed to be: |
||||||
|
// |
||||||
|
// - Simple to use and understand for most users |
||||||
|
// - Flexible enough to meet unexpected needs |
||||||
|
// |
||||||
|
// # Overview |
||||||
|
// |
||||||
|
// The `Status` message contains three pieces of data: error code, error message, |
||||||
|
// and error details. The error code should be an enum value of |
||||||
|
// [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed. The |
||||||
|
// error message should be a developer-facing English message that helps |
||||||
|
// developers *understand* and *resolve* the error. If a localized user-facing |
||||||
|
// error message is needed, put the localized message in the error details or |
||||||
|
// localize it in the client. The optional error details may contain arbitrary |
||||||
|
// information about the error. There is a predefined set of error detail types |
||||||
|
// in the package `google.rpc` which can be used for common error conditions. |
||||||
|
// |
||||||
|
// # Language mapping |
||||||
|
// |
||||||
|
// The `Status` message is the logical representation of the error model, but it |
||||||
|
// is not necessarily the actual wire format. When the `Status` message is |
||||||
|
// exposed in different client libraries and different wire protocols, it can be |
||||||
|
// mapped differently. For example, it will likely be mapped to some exceptions |
||||||
|
// in Java, but more likely mapped to some error codes in C. |
||||||
|
// |
||||||
|
// # Other uses |
||||||
|
// |
||||||
|
// The error model and the `Status` message can be used in a variety of |
||||||
|
// environments, either with or without APIs, to provide a |
||||||
|
// consistent developer experience across different environments. |
||||||
|
// |
||||||
|
// Example uses of this error model include: |
||||||
|
// |
||||||
|
// - Partial errors. If a service needs to return partial errors to the client, |
||||||
|
// it may embed the `Status` in the normal response to indicate the partial |
||||||
|
// errors. |
||||||
|
// |
||||||
|
// - Workflow errors. A typical workflow has multiple steps. Each step may |
||||||
|
// have a `Status` message for error reporting purpose. |
||||||
|
// |
||||||
|
// - Batch operations. If a client uses batch request and batch response, the |
||||||
|
// `Status` message should be used directly inside batch response, one for |
||||||
|
// each error sub-response. |
||||||
|
// |
||||||
|
// - Asynchronous operations. If an API call embeds asynchronous operation |
||||||
|
// results in its response, the status of those operations should be |
||||||
|
// represented directly using the `Status` message. |
||||||
|
// |
||||||
|
// - Logging. If some API errors are stored in logs, the message `Status` could |
||||||
|
// be used directly after any stripping needed for security/privacy reasons. |
||||||
|
message Status { |
||||||
|
// The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. |
||||||
|
int32 code = 1; |
||||||
|
|
||||||
|
// A developer-facing error message, which should be in English. Any |
||||||
|
// user-facing error message should be localized and sent in the |
||||||
|
// [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. |
||||||
|
string message = 2; |
||||||
|
|
||||||
|
// A list of messages that carry the error details. There will be a |
||||||
|
// common set of message types for APIs to use. |
||||||
|
repeated google.protobuf.Any details = 3; |
||||||
|
} |
@ -0,0 +1,120 @@ |
|||||||
|
/*
|
||||||
|
* |
||||||
|
* Copyright 2017, 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. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <grpc++/support/error_details.h> |
||||||
|
#include <gtest/gtest.h> |
||||||
|
|
||||||
|
#include "src/proto/grpc/status/status.pb.h" |
||||||
|
#include "src/proto/grpc/testing/echo_messages.pb.h" |
||||||
|
|
||||||
|
namespace grpc { |
||||||
|
namespace { |
||||||
|
|
||||||
|
TEST(ExtractTest, Success) { |
||||||
|
google::rpc::Status expected; |
||||||
|
expected.set_code(13); // INTERNAL
|
||||||
|
expected.set_message("I am an error message"); |
||||||
|
testing::EchoRequest expected_details; |
||||||
|
expected_details.set_message(grpc::string(100, '\0')); |
||||||
|
expected.add_details()->PackFrom(expected_details); |
||||||
|
|
||||||
|
google::rpc::Status to; |
||||||
|
grpc::string error_details = expected.SerializeAsString(); |
||||||
|
Status from(static_cast<StatusCode>(expected.code()), expected.message(), |
||||||
|
error_details); |
||||||
|
EXPECT_TRUE(ExtractErrorDetails(from, &to).ok()); |
||||||
|
EXPECT_EQ(expected.code(), to.code()); |
||||||
|
EXPECT_EQ(expected.message(), to.message()); |
||||||
|
EXPECT_EQ(1, to.details_size()); |
||||||
|
testing::EchoRequest details; |
||||||
|
to.details(0).UnpackTo(&details); |
||||||
|
EXPECT_EQ(expected_details.message(), details.message()); |
||||||
|
} |
||||||
|
|
||||||
|
TEST(ExtractTest, NullInput) { |
||||||
|
EXPECT_EQ(StatusCode::FAILED_PRECONDITION, |
||||||
|
ExtractErrorDetails(Status(), nullptr).error_code()); |
||||||
|
} |
||||||
|
|
||||||
|
TEST(ExtractTest, Unparsable) { |
||||||
|
grpc::string error_details("I am not a status object"); |
||||||
|
Status from(StatusCode::INTERNAL, "", error_details); |
||||||
|
google::rpc::Status to; |
||||||
|
EXPECT_EQ(StatusCode::INVALID_ARGUMENT, |
||||||
|
ExtractErrorDetails(from, &to).error_code()); |
||||||
|
} |
||||||
|
|
||||||
|
TEST(SetTest, Success) { |
||||||
|
google::rpc::Status expected; |
||||||
|
expected.set_code(13); // INTERNAL
|
||||||
|
expected.set_message("I am an error message"); |
||||||
|
testing::EchoRequest expected_details; |
||||||
|
expected_details.set_message(grpc::string(100, '\0')); |
||||||
|
expected.add_details()->PackFrom(expected_details); |
||||||
|
|
||||||
|
Status to; |
||||||
|
Status s = SetErrorDetails(expected, &to); |
||||||
|
EXPECT_TRUE(s.ok()); |
||||||
|
EXPECT_EQ(expected.code(), to.error_code()); |
||||||
|
EXPECT_EQ(expected.message(), to.error_message()); |
||||||
|
EXPECT_EQ(expected.SerializeAsString(), to.error_details()); |
||||||
|
} |
||||||
|
|
||||||
|
TEST(SetTest, NullInput) { |
||||||
|
EXPECT_EQ(StatusCode::FAILED_PRECONDITION, |
||||||
|
SetErrorDetails(google::rpc::Status(), nullptr).error_code()); |
||||||
|
} |
||||||
|
|
||||||
|
TEST(SetTest, OutOfScopeErrorCode) { |
||||||
|
google::rpc::Status expected; |
||||||
|
expected.set_code(20); // Out of scope (DATA_LOSS is 15).
|
||||||
|
expected.set_message("I am an error message"); |
||||||
|
testing::EchoRequest expected_details; |
||||||
|
expected_details.set_message(grpc::string(100, '\0')); |
||||||
|
expected.add_details()->PackFrom(expected_details); |
||||||
|
|
||||||
|
Status to; |
||||||
|
Status s = SetErrorDetails(expected, &to); |
||||||
|
EXPECT_TRUE(s.ok()); |
||||||
|
EXPECT_EQ(StatusCode::UNKNOWN, to.error_code()); |
||||||
|
EXPECT_EQ(expected.message(), to.error_message()); |
||||||
|
EXPECT_EQ(expected.SerializeAsString(), to.error_details()); |
||||||
|
} |
||||||
|
|
||||||
|
} // namespace
|
||||||
|
} // namespace grpc
|
||||||
|
|
||||||
|
int main(int argc, char** argv) { |
||||||
|
::testing::InitGoogleTest(&argc, argv); |
||||||
|
return RUN_ALL_TESTS(); |
||||||
|
} |
@ -0,0 +1,184 @@ |
|||||||
|
#!/usr/bin/env python2.7 |
||||||
|
|
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
import collections |
||||||
|
import perfection |
||||||
|
import sys |
||||||
|
|
||||||
|
_MAX_HEADER_LIST_SIZE = 16 * 1024 * 1024 |
||||||
|
|
||||||
|
Setting = collections.namedtuple('Setting', 'id default min max on_error') |
||||||
|
OnError = collections.namedtuple('OnError', 'behavior code') |
||||||
|
clamp_invalid_value = OnError('CLAMP_INVALID_VALUE', 'PROTOCOL_ERROR') |
||||||
|
disconnect_on_invalid_value = lambda e: OnError('DISCONNECT_ON_INVALID_VALUE', e) |
||||||
|
DecoratedSetting = collections.namedtuple('DecoratedSetting', 'enum name setting') |
||||||
|
|
||||||
|
_SETTINGS = { |
||||||
|
'HEADER_TABLE_SIZE': Setting(1, 4096, 0, 0xffffffff, clamp_invalid_value), |
||||||
|
'ENABLE_PUSH': Setting(2, 1, 0, 1, disconnect_on_invalid_value('PROTOCOL_ERROR')), |
||||||
|
'MAX_CONCURRENT_STREAMS': Setting(3, 0xffffffff, 0, 0xffffffff, disconnect_on_invalid_value('PROTOCOL_ERROR')), |
||||||
|
'INITIAL_WINDOW_SIZE': Setting(4, 65535, 0, 0x7fffffff, disconnect_on_invalid_value('FLOW_CONTROL_ERROR')), |
||||||
|
'MAX_FRAME_SIZE': Setting(5, 16384, 16384, 16777215, disconnect_on_invalid_value('PROTOCOL_ERROR')), |
||||||
|
'MAX_HEADER_LIST_SIZE': Setting(6, _MAX_HEADER_LIST_SIZE, 0, _MAX_HEADER_LIST_SIZE, clamp_invalid_value), |
||||||
|
'GRPC_ALLOW_TRUE_BINARY_METADATA': Setting(0xfe03, 0, 0, 1, clamp_invalid_value), |
||||||
|
} |
||||||
|
|
||||||
|
H = open('src/core/ext/transport/chttp2/transport/http2_settings.h', 'w') |
||||||
|
C = open('src/core/ext/transport/chttp2/transport/http2_settings.c', 'w') |
||||||
|
|
||||||
|
# utility: print a big comment block into a set of files |
||||||
|
def put_banner(files, banner): |
||||||
|
for f in files: |
||||||
|
print >>f, '/*' |
||||||
|
for line in banner: |
||||||
|
print >>f, ' * %s' % line |
||||||
|
print >>f, ' */' |
||||||
|
print >>f |
||||||
|
|
||||||
|
# copy-paste copyright notice from this file |
||||||
|
with open(sys.argv[0]) as my_source: |
||||||
|
copyright = [] |
||||||
|
for line in my_source: |
||||||
|
if line[0] != '#': break |
||||||
|
for line in my_source: |
||||||
|
if line[0] == '#': |
||||||
|
copyright.append(line) |
||||||
|
break |
||||||
|
for line in my_source: |
||||||
|
if line[0] != '#': |
||||||
|
break |
||||||
|
copyright.append(line) |
||||||
|
put_banner([H,C], [line[2:].rstrip() for line in copyright]) |
||||||
|
|
||||||
|
put_banner([H,C], ["Automatically generated by tools/codegen/core/gen_settings_ids.py"]) |
||||||
|
|
||||||
|
print >>H, "#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H" |
||||||
|
print >>H, "#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H" |
||||||
|
print >>H |
||||||
|
print >>H, "#include <stdint.h>" |
||||||
|
print >>H, "#include <stdbool.h>" |
||||||
|
print >>H |
||||||
|
|
||||||
|
print >>C, "#include \"src/core/ext/transport/chttp2/transport/http2_settings.h\"" |
||||||
|
print >>C |
||||||
|
print >>C, "#include <grpc/support/useful.h>" |
||||||
|
print >>C, "#include \"src/core/lib/transport/http2_errors.h\"" |
||||||
|
print >>C |
||||||
|
|
||||||
|
p = perfection.hash_parameters(sorted(x.id for x in _SETTINGS.values())) |
||||||
|
print p |
||||||
|
|
||||||
|
def hash(i): |
||||||
|
i += p.offset |
||||||
|
x = i % p.t |
||||||
|
y = i / p.t |
||||||
|
return x + p.r[y] |
||||||
|
|
||||||
|
decorated_settings = [DecoratedSetting(hash(setting.id), name, setting) |
||||||
|
for name, setting in _SETTINGS.iteritems()] |
||||||
|
|
||||||
|
print >>H, 'typedef enum {' |
||||||
|
for decorated_setting in sorted(decorated_settings): |
||||||
|
print >>H, ' GRPC_CHTTP2_SETTINGS_%s = %d, /* wire id %d */' % ( |
||||||
|
decorated_setting.name, decorated_setting.enum, decorated_setting.setting.id) |
||||||
|
print >>H, '} grpc_chttp2_setting_id;' |
||||||
|
print >>H |
||||||
|
print >>H, '#define GRPC_CHTTP2_NUM_SETTINGS %d' % (max(x.enum for x in decorated_settings) + 1) |
||||||
|
|
||||||
|
print >>H, 'extern const uint16_t grpc_setting_id_to_wire_id[];' |
||||||
|
print >>C, 'const uint16_t grpc_setting_id_to_wire_id[] = {%s};' % ','.join( |
||||||
|
'%d' % s for s in p.slots) |
||||||
|
print >>H |
||||||
|
print >>H, "bool grpc_wire_id_to_setting_id(uint32_t wire_id, grpc_chttp2_setting_id *out);" |
||||||
|
cgargs = { |
||||||
|
'r': ','.join('%d' % (r if r is not None else 0) for r in p.r), |
||||||
|
't': p.t, |
||||||
|
'offset': abs(p.offset), |
||||||
|
'offset_sign': '+' if p.offset > 0 else '-' |
||||||
|
} |
||||||
|
print >>C, """ |
||||||
|
bool grpc_wire_id_to_setting_id(uint32_t wire_id, grpc_chttp2_setting_id *out) { |
||||||
|
uint32_t i = wire_id %(offset_sign)s %(offset)d; |
||||||
|
uint32_t x = i %% %(t)d; |
||||||
|
uint32_t y = i / %(t)d; |
||||||
|
uint32_t h = x; |
||||||
|
switch (y) { |
||||||
|
""" % cgargs |
||||||
|
for i, r in enumerate(p.r): |
||||||
|
if not r: continue |
||||||
|
if r < 0: print >>C, 'case %d: h -= %d; break;' % (i, -r) |
||||||
|
else: print >>C, 'case %d: h += %d; break;' % (i, r) |
||||||
|
print >>C, """ |
||||||
|
} |
||||||
|
*out = (grpc_chttp2_setting_id)h; |
||||||
|
return h < GPR_ARRAY_SIZE(grpc_setting_id_to_wire_id) && grpc_setting_id_to_wire_id[h] == wire_id; |
||||||
|
} |
||||||
|
""" % cgargs |
||||||
|
|
||||||
|
print >>H, """ |
||||||
|
typedef enum { |
||||||
|
GRPC_CHTTP2_CLAMP_INVALID_VALUE, |
||||||
|
GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE |
||||||
|
} grpc_chttp2_invalid_value_behavior; |
||||||
|
|
||||||
|
typedef struct { |
||||||
|
const char *name; |
||||||
|
uint32_t default_value; |
||||||
|
uint32_t min_value; |
||||||
|
uint32_t max_value; |
||||||
|
grpc_chttp2_invalid_value_behavior invalid_value_behavior; |
||||||
|
uint32_t error_value; |
||||||
|
} grpc_chttp2_setting_parameters; |
||||||
|
|
||||||
|
extern const grpc_chttp2_setting_parameters grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS]; |
||||||
|
""" |
||||||
|
print >>C, "const grpc_chttp2_setting_parameters grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS] = {" |
||||||
|
i = 0 |
||||||
|
for decorated_setting in sorted(decorated_settings): |
||||||
|
while i < decorated_setting.enum: |
||||||
|
print >>C, "{NULL, 0, 0, 0, GRPC_CHTTP2_DISCONNECT_ON_INVALID_VALUE, GRPC_HTTP2_PROTOCOL_ERROR}," |
||||||
|
i += 1 |
||||||
|
print >>C, "{\"%s\", %du, %du, %du, GRPC_CHTTP2_%s, GRPC_HTTP2_%s}," % ( |
||||||
|
decorated_setting.name, |
||||||
|
decorated_setting.setting.default, |
||||||
|
decorated_setting.setting.min, |
||||||
|
decorated_setting.setting.max, |
||||||
|
decorated_setting.setting.on_error.behavior, |
||||||
|
decorated_setting.setting.on_error.code, |
||||||
|
) |
||||||
|
i += 1 |
||||||
|
print >>C, "};" |
||||||
|
|
||||||
|
print >>H |
||||||
|
print >>H, "#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_SETTINGS_H */" |
||||||
|
|
||||||
|
H.close() |
||||||
|
C.close() |
@ -0,0 +1,39 @@ |
|||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Config file for the internal CI (in protobuf text format) |
||||||
|
|
||||||
|
# Location of the continuous shell script in repository. |
||||||
|
build_file: "grpc/tools/internal_ci/linux/sanitizer/grpc_c_msan.sh" |
||||||
|
timeout_mins: 1440 |
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/*sponge_log.xml" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# change to grpc repo root |
||||||
|
cd $(dirname $0)/../../../.. |
||||||
|
|
||||||
|
git submodule update --init |
||||||
|
|
||||||
|
# download docker images from dockerhub |
||||||
|
export DOCKERHUB_ORGANIZATION=grpctesting |
||||||
|
tools/run_tests/run_tests_matrix.py -f c msan |
@ -0,0 +1,39 @@ |
|||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Config file for the internal CI (in protobuf text format) |
||||||
|
|
||||||
|
# Location of the continuous shell script in repository. |
||||||
|
build_file: "grpc/tools/internal_ci/linux/sanitizer/grpc_c_tsan.sh" |
||||||
|
timeout_mins: 1440 |
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/*sponge_log.xml" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# change to grpc repo root |
||||||
|
cd $(dirname $0)/../../../.. |
||||||
|
|
||||||
|
git submodule update --init |
||||||
|
|
||||||
|
# download docker images from dockerhub |
||||||
|
export DOCKERHUB_ORGANIZATION=grpctesting |
||||||
|
tools/run_tests/run_tests_matrix.py -f c tsan |
@ -0,0 +1,39 @@ |
|||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Config file for the internal CI (in protobuf text format) |
||||||
|
|
||||||
|
# Location of the continuous shell script in repository. |
||||||
|
build_file: "grpc/tools/internal_ci/linux/sanitizer/grpc_cpp_asan.sh" |
||||||
|
timeout_mins: 1440 |
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/*sponge_log.xml" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# change to grpc repo root |
||||||
|
cd $(dirname $0)/../../../.. |
||||||
|
|
||||||
|
git submodule update --init |
||||||
|
|
||||||
|
# download docker images from dockerhub |
||||||
|
export DOCKERHUB_ORGANIZATION=grpctesting |
||||||
|
tools/run_tests/run_tests_matrix.py -f cpp asan |
@ -0,0 +1,39 @@ |
|||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
# Config file for the internal CI (in protobuf text format) |
||||||
|
|
||||||
|
# Location of the continuous shell script in repository. |
||||||
|
build_file: "grpc/tools/internal_ci/linux/sanitizer/grpc_cpp_tsan.sh" |
||||||
|
timeout_mins: 1440 |
||||||
|
action { |
||||||
|
define_artifacts { |
||||||
|
regex: "**/*sponge_log.xml" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
#!/bin/bash |
||||||
|
# Copyright 2017, 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. |
||||||
|
|
||||||
|
set -ex |
||||||
|
|
||||||
|
# change to grpc repo root |
||||||
|
cd $(dirname $0)/../../../.. |
||||||
|
|
||||||
|
git submodule update --init |
||||||
|
|
||||||
|
# download docker images from dockerhub |
||||||
|
export DOCKERHUB_ORGANIZATION=grpctesting |
||||||
|
tools/run_tests/run_tests_matrix.py -f cpp tsan |
@ -0,0 +1,178 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||||
|
<ItemGroup Label="ProjectConfigurations"> |
||||||
|
<ProjectConfiguration Include="Debug|Win32"> |
||||||
|
<Configuration>Debug</Configuration> |
||||||
|
<Platform>Win32</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
<ProjectConfiguration Include="Debug|x64"> |
||||||
|
<Configuration>Debug</Configuration> |
||||||
|
<Platform>x64</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
<ProjectConfiguration Include="Release|Win32"> |
||||||
|
<Configuration>Release</Configuration> |
||||||
|
<Platform>Win32</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
<ProjectConfiguration Include="Release|x64"> |
||||||
|
<Configuration>Release</Configuration> |
||||||
|
<Platform>x64</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
</ItemGroup> |
||||||
|
<PropertyGroup Label="Globals"> |
||||||
|
<ProjectGuid>{9F58AD72-49E1-4D10-B826-9E190AB0AAC0}</ProjectGuid> |
||||||
|
<IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected> |
||||||
|
<IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir> |
||||||
|
</PropertyGroup> |
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v100</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v110</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v120</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v140</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> |
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||||
|
<UseDebugLibraries>true</UseDebugLibraries> |
||||||
|
<CharacterSet>Unicode</CharacterSet> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> |
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||||
|
<UseDebugLibraries>false</UseDebugLibraries> |
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||||
|
<CharacterSet>Unicode</CharacterSet> |
||||||
|
</PropertyGroup> |
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
||||||
|
<ImportGroup Label="ExtensionSettings"> |
||||||
|
</ImportGroup> |
||||||
|
<ImportGroup Label="PropertySheets"> |
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\global.props" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\winsock.props" /> |
||||||
|
</ImportGroup> |
||||||
|
<PropertyGroup Label="UserMacros" /> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Debug'"> |
||||||
|
<TargetName>grpc++_error_details</TargetName> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Release'"> |
||||||
|
<TargetName>grpc++_error_details</TargetName> |
||||||
|
</PropertyGroup> |
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>Disabled</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Windows</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>Disabled</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Windows</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>MaxSpeed</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Windows</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||||
|
<OptimizeReferences>true</OptimizeReferences> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>MaxSpeed</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Windows</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||||
|
<OptimizeReferences>true</OptimizeReferences> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemGroup> |
||||||
|
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\error_details.h" /> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\status\status.pb.cc"> |
||||||
|
</ClCompile> |
||||||
|
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\status\status.pb.h"> |
||||||
|
</ClInclude> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\status\status.grpc.pb.cc"> |
||||||
|
</ClCompile> |
||||||
|
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\status\status.grpc.pb.h"> |
||||||
|
</ClInclude> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\cpp\util\error_details.cc"> |
||||||
|
</ClCompile> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj"> |
||||||
|
<Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project> |
||||||
|
</ProjectReference> |
||||||
|
</ItemGroup> |
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||||
|
<ImportGroup Label="ExtensionTargets"> |
||||||
|
</ImportGroup> |
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
||||||
|
<PropertyGroup> |
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> |
||||||
|
</PropertyGroup> |
||||||
|
</Target> |
||||||
|
</Project> |
||||||
|
|
@ -0,0 +1,47 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||||
|
<ItemGroup> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\status\status.proto"> |
||||||
|
<Filter>src\proto\grpc\status</Filter> |
||||||
|
</ClCompile> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\cpp\util\error_details.cc"> |
||||||
|
<Filter>src\cpp\util</Filter> |
||||||
|
</ClCompile> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\error_details.h"> |
||||||
|
<Filter>include\grpc++\support</Filter> |
||||||
|
</ClInclude> |
||||||
|
</ItemGroup> |
||||||
|
|
||||||
|
<ItemGroup> |
||||||
|
<Filter Include="include"> |
||||||
|
<UniqueIdentifier>{013272b5-4742-ba38-7cb6-25ff3484ac1d}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="include\grpc++"> |
||||||
|
<UniqueIdentifier>{f589296d-1ee4-913f-0345-7d8bf51f657b}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="include\grpc++\support"> |
||||||
|
<UniqueIdentifier>{3455fa30-ad44-8790-9dc2-ff4ac7dd9e6c}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src"> |
||||||
|
<UniqueIdentifier>{cf07aafe-1d45-af88-81fb-0bbd5afd247f}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\cpp"> |
||||||
|
<UniqueIdentifier>{00726556-da02-06d8-bb32-902f55133c6b}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\cpp\util"> |
||||||
|
<UniqueIdentifier>{fd90d13e-cc1f-e8cc-56ee-650231b08f56}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\proto"> |
||||||
|
<UniqueIdentifier>{ec6be373-4683-335e-03d9-dc636e34d7ef}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\proto\grpc"> |
||||||
|
<UniqueIdentifier>{8200edf2-9498-6cd9-d8f3-81ad881ca82c}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\proto\grpc\status"> |
||||||
|
<UniqueIdentifier>{79c5c1ea-19a8-bf5a-5e0a-3de6ad3a0465}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
</ItemGroup> |
||||||
|
</Project> |
||||||
|
|
@ -0,0 +1,203 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\1.0.204.1.props')" /> |
||||||
|
<ItemGroup Label="ProjectConfigurations"> |
||||||
|
<ProjectConfiguration Include="Debug|Win32"> |
||||||
|
<Configuration>Debug</Configuration> |
||||||
|
<Platform>Win32</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
<ProjectConfiguration Include="Debug|x64"> |
||||||
|
<Configuration>Debug</Configuration> |
||||||
|
<Platform>x64</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
<ProjectConfiguration Include="Release|Win32"> |
||||||
|
<Configuration>Release</Configuration> |
||||||
|
<Platform>Win32</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
<ProjectConfiguration Include="Release|x64"> |
||||||
|
<Configuration>Release</Configuration> |
||||||
|
<Platform>x64</Platform> |
||||||
|
</ProjectConfiguration> |
||||||
|
</ItemGroup> |
||||||
|
<PropertyGroup Label="Globals"> |
||||||
|
<ProjectGuid>{2DE1AE9E-D53C-5854-9122-317E34F90C31}</ProjectGuid> |
||||||
|
<IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected> |
||||||
|
<IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir> |
||||||
|
</PropertyGroup> |
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v100</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v110</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v120</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration"> |
||||||
|
<PlatformToolset>v140</PlatformToolset> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> |
||||||
|
<ConfigurationType>Application</ConfigurationType> |
||||||
|
<UseDebugLibraries>true</UseDebugLibraries> |
||||||
|
<CharacterSet>Unicode</CharacterSet> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> |
||||||
|
<ConfigurationType>Application</ConfigurationType> |
||||||
|
<UseDebugLibraries>false</UseDebugLibraries> |
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||||
|
<CharacterSet>Unicode</CharacterSet> |
||||||
|
</PropertyGroup> |
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
||||||
|
<ImportGroup Label="ExtensionSettings"> |
||||||
|
</ImportGroup> |
||||||
|
<ImportGroup Label="PropertySheets"> |
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\cpptest.props" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\global.props" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\openssl.props" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\protobuf.props" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\winsock.props" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\zlib.props" /> |
||||||
|
</ImportGroup> |
||||||
|
<PropertyGroup Label="UserMacros" /> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Debug'"> |
||||||
|
<TargetName>error_details_test</TargetName> |
||||||
|
<Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> |
||||||
|
<Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib> |
||||||
|
<Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> |
||||||
|
<Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Release'"> |
||||||
|
<TargetName>error_details_test</TargetName> |
||||||
|
<Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib> |
||||||
|
<Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib> |
||||||
|
<Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl> |
||||||
|
<Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl> |
||||||
|
</PropertyGroup> |
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>Disabled</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Console</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>Disabled</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Console</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>MaxSpeed</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Console</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||||
|
<OptimizeReferences>true</OptimizeReferences> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||||
|
<ClCompile> |
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||||
|
<WarningLevel>Level3</WarningLevel> |
||||||
|
<Optimization>MaxSpeed</Optimization> |
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||||
|
<SDLCheck>true</SDLCheck> |
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
||||||
|
<TreatWarningAsError>true</TreatWarningAsError> |
||||||
|
<DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat> |
||||||
|
<MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild> |
||||||
|
</ClCompile> |
||||||
|
<Link> |
||||||
|
<SubSystem>Console</SubSystem> |
||||||
|
<GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation> |
||||||
|
<GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation> |
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||||
|
<OptimizeReferences>true</OptimizeReferences> |
||||||
|
</Link> |
||||||
|
</ItemDefinitionGroup> |
||||||
|
|
||||||
|
<ItemGroup> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.cc"> |
||||||
|
</ClCompile> |
||||||
|
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.h"> |
||||||
|
</ClInclude> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.cc"> |
||||||
|
</ClCompile> |
||||||
|
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.h"> |
||||||
|
</ClInclude> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\test\cpp\util\error_details_test.cc"> |
||||||
|
</ClCompile> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_error_details\grpc++_error_details.vcxproj"> |
||||||
|
<Project>{9F58AD72-49E1-4D10-B826-9E190AB0AAC0}</Project> |
||||||
|
</ProjectReference> |
||||||
|
<ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj"> |
||||||
|
<Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project> |
||||||
|
</ProjectReference> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<None Include="packages.config" /> |
||||||
|
</ItemGroup> |
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||||
|
<ImportGroup Label="ExtensionTargets"> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" /> |
||||||
|
<Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" /> |
||||||
|
</ImportGroup> |
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
||||||
|
<PropertyGroup> |
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> |
||||||
|
</PropertyGroup> |
||||||
|
<Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" /> |
||||||
|
<Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" /> |
||||||
|
<Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" /> |
||||||
|
<Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" /> |
||||||
|
<Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" /> |
||||||
|
</Target> |
||||||
|
</Project> |
||||||
|
|
@ -0,0 +1,36 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||||
|
<ItemGroup> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.proto"> |
||||||
|
<Filter>src\proto\grpc\testing</Filter> |
||||||
|
</ClCompile> |
||||||
|
<ClCompile Include="$(SolutionDir)\..\test\cpp\util\error_details_test.cc"> |
||||||
|
<Filter>test\cpp\util</Filter> |
||||||
|
</ClCompile> |
||||||
|
</ItemGroup> |
||||||
|
|
||||||
|
<ItemGroup> |
||||||
|
<Filter Include="src"> |
||||||
|
<UniqueIdentifier>{35c957dd-436b-c57a-791d-2737bc179e41}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\proto"> |
||||||
|
<UniqueIdentifier>{c8721123-0390-f97d-5aad-0dd4979d5030}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\proto\grpc"> |
||||||
|
<UniqueIdentifier>{6dbad4a6-6b97-b25a-4f89-6edb20a1e7e0}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="src\proto\grpc\testing"> |
||||||
|
<UniqueIdentifier>{5f343032-7701-4924-a1d2-06f46d52d1b3}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="test"> |
||||||
|
<UniqueIdentifier>{688e4f7d-b9aa-342c-ffa7-2ee3ca51cd42}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="test\cpp"> |
||||||
|
<UniqueIdentifier>{a4e0ed0a-c1bb-60d6-003b-91c3989f6e6e}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
<Filter Include="test\cpp\util"> |
||||||
|
<UniqueIdentifier>{60a99fd3-4904-d29f-b456-7f601092d055}</UniqueIdentifier> |
||||||
|
</Filter> |
||||||
|
</ItemGroup> |
||||||
|
</Project> |
||||||
|
|
Loading…
Reference in new issue