grpc 1.26.0 → 1.27.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (198) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1652 -1519
  3. data/etc/roots.pem +44 -0
  4. data/include/grpc/grpc_security.h +37 -15
  5. data/include/grpc/grpc_security_constants.h +27 -0
  6. data/include/grpc/impl/codegen/grpc_types.h +14 -0
  7. data/include/grpc/impl/codegen/port_platform.h +1 -1
  8. data/src/core/ext/filters/client_channel/http_proxy.cc +4 -4
  9. data/src/core/ext/filters/client_channel/lb_policy.cc +4 -3
  10. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +176 -171
  11. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +88 -121
  12. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +28 -57
  13. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +8 -9
  14. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +53 -34
  15. data/src/core/ext/filters/client_channel/xds/xds_api.cc +394 -150
  16. data/src/core/ext/filters/client_channel/xds/xds_api.h +75 -35
  17. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +59 -22
  18. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +13 -9
  19. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +8 -6
  20. data/src/core/ext/filters/client_channel/xds/xds_client.cc +456 -175
  21. data/src/core/ext/filters/client_channel/xds/xds_client.h +33 -21
  22. data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +5 -8
  23. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +18 -24
  24. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +2 -2
  25. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +13 -5
  26. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -0
  27. data/src/core/lib/channel/channelz.h +11 -1
  28. data/src/core/lib/gpr/time_precise.cc +1 -1
  29. data/src/core/lib/gprpp/optional.h +26 -0
  30. data/src/core/lib/gprpp/string_view.h +14 -10
  31. data/src/core/lib/iomgr/executor.cc +1 -1
  32. data/src/core/lib/iomgr/fork_posix.cc +4 -0
  33. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +87 -0
  34. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +88 -0
  35. data/src/core/lib/iomgr/socket_utils_common_posix.cc +14 -0
  36. data/src/core/lib/iomgr/socket_utils_posix.h +12 -0
  37. data/src/core/lib/iomgr/tcp_custom.h +3 -0
  38. data/src/core/lib/iomgr/tcp_posix.cc +607 -56
  39. data/src/core/lib/iomgr/tcp_server_custom.cc +15 -2
  40. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +8 -0
  41. data/src/core/lib/json/json.h +11 -1
  42. data/src/core/lib/json/json_reader.cc +206 -28
  43. data/src/core/lib/json/json_writer.cc +111 -24
  44. data/src/core/lib/security/credentials/composite/composite_credentials.cc +7 -0
  45. data/src/core/lib/security/credentials/composite/composite_credentials.h +5 -1
  46. data/src/core/lib/security/credentials/credentials.h +10 -1
  47. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -1
  48. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +1 -1
  49. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -4
  50. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -1
  51. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +20 -0
  52. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +8 -0
  53. data/src/core/lib/security/credentials/tls/{spiffe_credentials.cc → tls_credentials.cc} +23 -24
  54. data/src/core/lib/security/credentials/tls/{spiffe_credentials.h → tls_credentials.h} +9 -9
  55. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -0
  56. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +22 -2
  57. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +2 -2
  58. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -2
  59. data/src/core/lib/security/security_connector/local/local_security_connector.cc +30 -3
  60. data/src/core/lib/security/security_connector/ssl_utils.cc +45 -3
  61. data/src/core/lib/security/security_connector/ssl_utils.h +12 -0
  62. data/src/core/lib/security/security_connector/tls/{spiffe_security_connector.cc → tls_security_connector.cc} +82 -69
  63. data/src/core/lib/security/security_connector/tls/{spiffe_security_connector.h → tls_security_connector.h} +17 -18
  64. data/src/core/lib/security/transport/client_auth_filter.cc +33 -0
  65. data/src/core/lib/surface/completion_queue.cc +22 -1
  66. data/src/core/lib/surface/version.cc +1 -1
  67. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +11 -1
  68. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  69. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +3 -3
  70. data/src/core/tsi/fake_transport_security.cc +7 -3
  71. data/src/core/tsi/fake_transport_security.h +2 -0
  72. data/src/core/tsi/ssl_transport_security.cc +144 -8
  73. data/src/core/tsi/ssl_transport_security.h +15 -1
  74. data/src/core/tsi/transport_security.cc +13 -0
  75. data/src/core/tsi/transport_security_grpc.cc +2 -2
  76. data/src/core/tsi/transport_security_grpc.h +2 -2
  77. data/src/core/tsi/transport_security_interface.h +12 -0
  78. data/src/ruby/bin/math_pb.rb +5 -5
  79. data/src/ruby/ext/grpc/rb_call_credentials.c +4 -1
  80. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  81. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
  82. data/src/ruby/lib/grpc/version.rb +1 -1
  83. data/src/ruby/pb/grpc/health/v1/health_pb.rb +3 -3
  84. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -1
  85. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +23 -13
  86. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +159 -0
  87. data/third_party/abseil-cpp/absl/base/attributes.h +621 -0
  88. data/third_party/abseil-cpp/absl/base/call_once.h +226 -0
  89. data/third_party/abseil-cpp/absl/base/casts.h +184 -0
  90. data/third_party/abseil-cpp/absl/base/config.h +665 -0
  91. data/third_party/abseil-cpp/absl/base/const_init.h +76 -0
  92. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +129 -0
  93. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +389 -0
  94. data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +179 -0
  95. data/third_party/abseil-cpp/absl/base/internal/bits.h +218 -0
  96. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +107 -0
  97. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +94 -0
  98. data/third_party/abseil-cpp/absl/base/internal/endian.h +266 -0
  99. data/third_party/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
  100. data/third_party/abseil-cpp/absl/base/internal/identity.h +37 -0
  101. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +107 -0
  102. data/third_party/abseil-cpp/absl/base/internal/invoke.h +187 -0
  103. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +107 -0
  104. data/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
  105. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +238 -0
  106. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +182 -0
  107. data/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
  108. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +233 -0
  109. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +243 -0
  110. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
  111. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +67 -0
  112. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
  113. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
  114. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +93 -0
  115. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +37 -0
  116. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +416 -0
  117. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +66 -0
  118. data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +271 -0
  119. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +152 -0
  120. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +259 -0
  121. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +108 -0
  122. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.h +75 -0
  123. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +66 -0
  124. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +158 -0
  125. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +103 -0
  126. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +124 -0
  127. data/third_party/abseil-cpp/absl/base/log_severity.cc +27 -0
  128. data/third_party/abseil-cpp/absl/base/log_severity.h +121 -0
  129. data/third_party/abseil-cpp/absl/base/macros.h +220 -0
  130. data/third_party/abseil-cpp/absl/base/optimization.h +181 -0
  131. data/third_party/abseil-cpp/absl/base/options.h +219 -0
  132. data/third_party/abseil-cpp/absl/base/policy_checks.h +111 -0
  133. data/third_party/abseil-cpp/absl/base/port.h +26 -0
  134. data/third_party/abseil-cpp/absl/base/thread_annotations.h +280 -0
  135. data/third_party/abseil-cpp/absl/container/inlined_vector.h +848 -0
  136. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +265 -0
  137. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +892 -0
  138. data/third_party/abseil-cpp/absl/memory/memory.h +695 -0
  139. data/third_party/abseil-cpp/absl/meta/type_traits.h +759 -0
  140. data/third_party/abseil-cpp/absl/numeric/int128.cc +404 -0
  141. data/third_party/abseil-cpp/absl/numeric/int128.h +1091 -0
  142. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +302 -0
  143. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +308 -0
  144. data/third_party/abseil-cpp/absl/strings/ascii.cc +200 -0
  145. data/third_party/abseil-cpp/absl/strings/ascii.h +242 -0
  146. data/third_party/abseil-cpp/absl/strings/charconv.cc +985 -0
  147. data/third_party/abseil-cpp/absl/strings/charconv.h +119 -0
  148. data/third_party/abseil-cpp/absl/strings/escaping.cc +949 -0
  149. data/third_party/abseil-cpp/absl/strings/escaping.h +164 -0
  150. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +156 -0
  151. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +359 -0
  152. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +423 -0
  153. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
  154. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
  155. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +180 -0
  156. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +58 -0
  157. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +112 -0
  158. data/third_party/abseil-cpp/absl/strings/internal/memutil.h +148 -0
  159. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +36 -0
  160. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +89 -0
  161. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +73 -0
  162. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
  163. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +314 -0
  164. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +455 -0
  165. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +53 -0
  166. data/third_party/abseil-cpp/absl/strings/internal/utf8.h +50 -0
  167. data/third_party/abseil-cpp/absl/strings/match.cc +40 -0
  168. data/third_party/abseil-cpp/absl/strings/match.h +90 -0
  169. data/third_party/abseil-cpp/absl/strings/numbers.cc +965 -0
  170. data/third_party/abseil-cpp/absl/strings/numbers.h +266 -0
  171. data/third_party/abseil-cpp/absl/strings/str_cat.cc +246 -0
  172. data/third_party/abseil-cpp/absl/strings/str_cat.h +408 -0
  173. data/third_party/abseil-cpp/absl/strings/str_join.h +293 -0
  174. data/third_party/abseil-cpp/absl/strings/str_replace.cc +82 -0
  175. data/third_party/abseil-cpp/absl/strings/str_replace.h +219 -0
  176. data/third_party/abseil-cpp/absl/strings/str_split.cc +139 -0
  177. data/third_party/abseil-cpp/absl/strings/str_split.h +513 -0
  178. data/third_party/abseil-cpp/absl/strings/string_view.cc +235 -0
  179. data/third_party/abseil-cpp/absl/strings/string_view.h +614 -0
  180. data/third_party/abseil-cpp/absl/strings/strip.h +91 -0
  181. data/third_party/abseil-cpp/absl/strings/substitute.cc +171 -0
  182. data/third_party/abseil-cpp/absl/strings/substitute.h +693 -0
  183. data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +48 -0
  184. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +78 -0
  185. data/third_party/abseil-cpp/absl/types/internal/optional.h +396 -0
  186. data/third_party/abseil-cpp/absl/types/internal/span.h +128 -0
  187. data/third_party/abseil-cpp/absl/types/optional.h +776 -0
  188. data/third_party/abseil-cpp/absl/types/span.h +713 -0
  189. data/third_party/abseil-cpp/absl/utility/utility.h +350 -0
  190. data/third_party/upb/upb/decode.c +4 -0
  191. data/third_party/upb/upb/port.c +0 -1
  192. data/third_party/upb/upb/port_def.inc +1 -3
  193. data/third_party/upb/upb/table.c +2 -1
  194. metadata +147 -45
  195. data/src/core/lib/json/json_common.h +0 -34
  196. data/src/core/lib/json/json_reader.h +0 -146
  197. data/src/core/lib/json/json_string.cc +0 -367
  198. data/src/core/lib/json/json_writer.h +0 -84
@@ -0,0 +1,350 @@
1
+ // Copyright 2017 The Abseil Authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ // This header file contains C++11 versions of standard <utility> header
16
+ // abstractions available within C++14 and C++17, and are designed to be drop-in
17
+ // replacement for code compliant with C++14 and C++17.
18
+ //
19
+ // The following abstractions are defined:
20
+ //
21
+ // * integer_sequence<T, Ints...> == std::integer_sequence<T, Ints...>
22
+ // * index_sequence<Ints...> == std::index_sequence<Ints...>
23
+ // * make_integer_sequence<T, N> == std::make_integer_sequence<T, N>
24
+ // * make_index_sequence<N> == std::make_index_sequence<N>
25
+ // * index_sequence_for<Ts...> == std::index_sequence_for<Ts...>
26
+ // * apply<Functor, Tuple> == std::apply<Functor, Tuple>
27
+ // * exchange<T> == std::exchange<T>
28
+ // * make_from_tuple<T> == std::make_from_tuple<T>
29
+ //
30
+ // This header file also provides the tag types `in_place_t`, `in_place_type_t`,
31
+ // and `in_place_index_t`, as well as the constant `in_place`, and
32
+ // `constexpr` `std::move()` and `std::forward()` implementations in C++11.
33
+ //
34
+ // References:
35
+ //
36
+ // https://en.cppreference.com/w/cpp/utility/integer_sequence
37
+ // https://en.cppreference.com/w/cpp/utility/apply
38
+ // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html
39
+
40
+ #ifndef ABSL_UTILITY_UTILITY_H_
41
+ #define ABSL_UTILITY_UTILITY_H_
42
+
43
+ #include <cstddef>
44
+ #include <cstdlib>
45
+ #include <tuple>
46
+ #include <utility>
47
+
48
+ #include "absl/base/config.h"
49
+ #include "absl/base/internal/inline_variable.h"
50
+ #include "absl/base/internal/invoke.h"
51
+ #include "absl/meta/type_traits.h"
52
+
53
+ namespace absl {
54
+ ABSL_NAMESPACE_BEGIN
55
+
56
+ // integer_sequence
57
+ //
58
+ // Class template representing a compile-time integer sequence. An instantiation
59
+ // of `integer_sequence<T, Ints...>` has a sequence of integers encoded in its
60
+ // type through its template arguments (which is a common need when
61
+ // working with C++11 variadic templates). `absl::integer_sequence` is designed
62
+ // to be a drop-in replacement for C++14's `std::integer_sequence`.
63
+ //
64
+ // Example:
65
+ //
66
+ // template< class T, T... Ints >
67
+ // void user_function(integer_sequence<T, Ints...>);
68
+ //
69
+ // int main()
70
+ // {
71
+ // // user_function's `T` will be deduced to `int` and `Ints...`
72
+ // // will be deduced to `0, 1, 2, 3, 4`.
73
+ // user_function(make_integer_sequence<int, 5>());
74
+ // }
75
+ template <typename T, T... Ints>
76
+ struct integer_sequence {
77
+ using value_type = T;
78
+ static constexpr size_t size() noexcept { return sizeof...(Ints); }
79
+ };
80
+
81
+ // index_sequence
82
+ //
83
+ // A helper template for an `integer_sequence` of `size_t`,
84
+ // `absl::index_sequence` is designed to be a drop-in replacement for C++14's
85
+ // `std::index_sequence`.
86
+ template <size_t... Ints>
87
+ using index_sequence = integer_sequence<size_t, Ints...>;
88
+
89
+ namespace utility_internal {
90
+
91
+ template <typename Seq, size_t SeqSize, size_t Rem>
92
+ struct Extend;
93
+
94
+ // Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency.
95
+ template <typename T, T... Ints, size_t SeqSize>
96
+ struct Extend<integer_sequence<T, Ints...>, SeqSize, 0> {
97
+ using type = integer_sequence<T, Ints..., (Ints + SeqSize)...>;
98
+ };
99
+
100
+ template <typename T, T... Ints, size_t SeqSize>
101
+ struct Extend<integer_sequence<T, Ints...>, SeqSize, 1> {
102
+ using type = integer_sequence<T, Ints..., (Ints + SeqSize)..., 2 * SeqSize>;
103
+ };
104
+
105
+ // Recursion helper for 'make_integer_sequence<T, N>'.
106
+ // 'Gen<T, N>::type' is an alias for 'integer_sequence<T, 0, 1, ... N-1>'.
107
+ template <typename T, size_t N>
108
+ struct Gen {
109
+ using type =
110
+ typename Extend<typename Gen<T, N / 2>::type, N / 2, N % 2>::type;
111
+ };
112
+
113
+ template <typename T>
114
+ struct Gen<T, 0> {
115
+ using type = integer_sequence<T>;
116
+ };
117
+
118
+ template <typename T>
119
+ struct InPlaceTypeTag {
120
+ explicit InPlaceTypeTag() = delete;
121
+ InPlaceTypeTag(const InPlaceTypeTag&) = delete;
122
+ InPlaceTypeTag& operator=(const InPlaceTypeTag&) = delete;
123
+ };
124
+
125
+ template <size_t I>
126
+ struct InPlaceIndexTag {
127
+ explicit InPlaceIndexTag() = delete;
128
+ InPlaceIndexTag(const InPlaceIndexTag&) = delete;
129
+ InPlaceIndexTag& operator=(const InPlaceIndexTag&) = delete;
130
+ };
131
+
132
+ } // namespace utility_internal
133
+
134
+ // Compile-time sequences of integers
135
+
136
+ // make_integer_sequence
137
+ //
138
+ // This template alias is equivalent to
139
+ // `integer_sequence<int, 0, 1, ..., N-1>`, and is designed to be a drop-in
140
+ // replacement for C++14's `std::make_integer_sequence`.
141
+ template <typename T, T N>
142
+ using make_integer_sequence = typename utility_internal::Gen<T, N>::type;
143
+
144
+ // make_index_sequence
145
+ //
146
+ // This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`,
147
+ // and is designed to be a drop-in replacement for C++14's
148
+ // `std::make_index_sequence`.
149
+ template <size_t N>
150
+ using make_index_sequence = make_integer_sequence<size_t, N>;
151
+
152
+ // index_sequence_for
153
+ //
154
+ // Converts a typename pack into an index sequence of the same length, and
155
+ // is designed to be a drop-in replacement for C++14's
156
+ // `std::index_sequence_for()`
157
+ template <typename... Ts>
158
+ using index_sequence_for = make_index_sequence<sizeof...(Ts)>;
159
+
160
+ // Tag types
161
+
162
+ #ifdef ABSL_USES_STD_OPTIONAL
163
+
164
+ using std::in_place_t;
165
+ using std::in_place;
166
+
167
+ #else // ABSL_USES_STD_OPTIONAL
168
+
169
+ // in_place_t
170
+ //
171
+ // Tag type used to specify in-place construction, such as with
172
+ // `absl::optional`, designed to be a drop-in replacement for C++17's
173
+ // `std::in_place_t`.
174
+ struct in_place_t {};
175
+
176
+ ABSL_INTERNAL_INLINE_CONSTEXPR(in_place_t, in_place, {});
177
+
178
+ #endif // ABSL_USES_STD_OPTIONAL
179
+
180
+ #if defined(ABSL_USES_STD_ANY) || defined(ABSL_USES_STD_VARIANT)
181
+ using std::in_place_type;
182
+ using std::in_place_type_t;
183
+ #else
184
+
185
+ // in_place_type_t
186
+ //
187
+ // Tag type used for in-place construction when the type to construct needs to
188
+ // be specified, such as with `absl::any`, designed to be a drop-in replacement
189
+ // for C++17's `std::in_place_type_t`.
190
+ template <typename T>
191
+ using in_place_type_t = void (*)(utility_internal::InPlaceTypeTag<T>);
192
+
193
+ template <typename T>
194
+ void in_place_type(utility_internal::InPlaceTypeTag<T>) {}
195
+ #endif // ABSL_USES_STD_ANY || ABSL_USES_STD_VARIANT
196
+
197
+ #ifdef ABSL_USES_STD_VARIANT
198
+ using std::in_place_index;
199
+ using std::in_place_index_t;
200
+ #else
201
+
202
+ // in_place_index_t
203
+ //
204
+ // Tag type used for in-place construction when the type to construct needs to
205
+ // be specified, such as with `absl::any`, designed to be a drop-in replacement
206
+ // for C++17's `std::in_place_index_t`.
207
+ template <size_t I>
208
+ using in_place_index_t = void (*)(utility_internal::InPlaceIndexTag<I>);
209
+
210
+ template <size_t I>
211
+ void in_place_index(utility_internal::InPlaceIndexTag<I>) {}
212
+ #endif // ABSL_USES_STD_VARIANT
213
+
214
+ // Constexpr move and forward
215
+
216
+ // move()
217
+ //
218
+ // A constexpr version of `std::move()`, designed to be a drop-in replacement
219
+ // for C++14's `std::move()`.
220
+ template <typename T>
221
+ constexpr absl::remove_reference_t<T>&& move(T&& t) noexcept {
222
+ return static_cast<absl::remove_reference_t<T>&&>(t);
223
+ }
224
+
225
+ // forward()
226
+ //
227
+ // A constexpr version of `std::forward()`, designed to be a drop-in replacement
228
+ // for C++14's `std::forward()`.
229
+ template <typename T>
230
+ constexpr T&& forward(
231
+ absl::remove_reference_t<T>& t) noexcept { // NOLINT(runtime/references)
232
+ return static_cast<T&&>(t);
233
+ }
234
+
235
+ namespace utility_internal {
236
+ // Helper method for expanding tuple into a called method.
237
+ template <typename Functor, typename Tuple, std::size_t... Indexes>
238
+ auto apply_helper(Functor&& functor, Tuple&& t, index_sequence<Indexes...>)
239
+ -> decltype(absl::base_internal::Invoke(
240
+ absl::forward<Functor>(functor),
241
+ std::get<Indexes>(absl::forward<Tuple>(t))...)) {
242
+ return absl::base_internal::Invoke(
243
+ absl::forward<Functor>(functor),
244
+ std::get<Indexes>(absl::forward<Tuple>(t))...);
245
+ }
246
+
247
+ } // namespace utility_internal
248
+
249
+ // apply
250
+ //
251
+ // Invokes a Callable using elements of a tuple as its arguments.
252
+ // Each element of the tuple corresponds to an argument of the call (in order).
253
+ // Both the Callable argument and the tuple argument are perfect-forwarded.
254
+ // For member-function Callables, the first tuple element acts as the `this`
255
+ // pointer. `absl::apply` is designed to be a drop-in replacement for C++17's
256
+ // `std::apply`. Unlike C++17's `std::apply`, this is not currently `constexpr`.
257
+ //
258
+ // Example:
259
+ //
260
+ // class Foo {
261
+ // public:
262
+ // void Bar(int);
263
+ // };
264
+ // void user_function1(int, std::string);
265
+ // void user_function2(std::unique_ptr<Foo>);
266
+ // auto user_lambda = [](int, int) {};
267
+ //
268
+ // int main()
269
+ // {
270
+ // std::tuple<int, std::string> tuple1(42, "bar");
271
+ // // Invokes the first user function on int, std::string.
272
+ // absl::apply(&user_function1, tuple1);
273
+ //
274
+ // std::tuple<std::unique_ptr<Foo>> tuple2(absl::make_unique<Foo>());
275
+ // // Invokes the user function that takes ownership of the unique
276
+ // // pointer.
277
+ // absl::apply(&user_function2, std::move(tuple2));
278
+ //
279
+ // auto foo = absl::make_unique<Foo>();
280
+ // std::tuple<Foo*, int> tuple3(foo.get(), 42);
281
+ // // Invokes the method Bar on foo with one argument, 42.
282
+ // absl::apply(&Foo::Bar, tuple3);
283
+ //
284
+ // std::tuple<int, int> tuple4(8, 9);
285
+ // // Invokes a lambda.
286
+ // absl::apply(user_lambda, tuple4);
287
+ // }
288
+ template <typename Functor, typename Tuple>
289
+ auto apply(Functor&& functor, Tuple&& t)
290
+ -> decltype(utility_internal::apply_helper(
291
+ absl::forward<Functor>(functor), absl::forward<Tuple>(t),
292
+ absl::make_index_sequence<std::tuple_size<
293
+ typename std::remove_reference<Tuple>::type>::value>{})) {
294
+ return utility_internal::apply_helper(
295
+ absl::forward<Functor>(functor), absl::forward<Tuple>(t),
296
+ absl::make_index_sequence<std::tuple_size<
297
+ typename std::remove_reference<Tuple>::type>::value>{});
298
+ }
299
+
300
+ // exchange
301
+ //
302
+ // Replaces the value of `obj` with `new_value` and returns the old value of
303
+ // `obj`. `absl::exchange` is designed to be a drop-in replacement for C++14's
304
+ // `std::exchange`.
305
+ //
306
+ // Example:
307
+ //
308
+ // Foo& operator=(Foo&& other) {
309
+ // ptr1_ = absl::exchange(other.ptr1_, nullptr);
310
+ // int1_ = absl::exchange(other.int1_, -1);
311
+ // return *this;
312
+ // }
313
+ template <typename T, typename U = T>
314
+ T exchange(T& obj, U&& new_value) {
315
+ T old_value = absl::move(obj);
316
+ obj = absl::forward<U>(new_value);
317
+ return old_value;
318
+ }
319
+
320
+ namespace utility_internal {
321
+ template <typename T, typename Tuple, size_t... I>
322
+ T make_from_tuple_impl(Tuple&& tup, absl::index_sequence<I...>) {
323
+ return T(std::get<I>(std::forward<Tuple>(tup))...);
324
+ }
325
+ } // namespace utility_internal
326
+
327
+ // make_from_tuple
328
+ //
329
+ // Given the template parameter type `T` and a tuple of arguments
330
+ // `std::tuple(arg0, arg1, ..., argN)` constructs an object of type `T` as if by
331
+ // calling `T(arg0, arg1, ..., argN)`.
332
+ //
333
+ // Example:
334
+ //
335
+ // std::tuple<const char*, size_t> args("hello world", 5);
336
+ // auto s = absl::make_from_tuple<std::string>(args);
337
+ // assert(s == "hello");
338
+ //
339
+ template <typename T, typename Tuple>
340
+ constexpr T make_from_tuple(Tuple&& tup) {
341
+ return utility_internal::make_from_tuple_impl<T>(
342
+ std::forward<Tuple>(tup),
343
+ absl::make_index_sequence<
344
+ std::tuple_size<absl::decay_t<Tuple>>::value>{});
345
+ }
346
+
347
+ ABSL_NAMESPACE_END
348
+ } // namespace absl
349
+
350
+ #endif // ABSL_UTILITY_UTILITY_H_
@@ -249,6 +249,10 @@ static upb_msg *upb_addmsg(upb_decframe *frame,
249
249
  upb_msg *submsg;
250
250
  upb_array *arr = upb_getorcreatearr(frame, field);
251
251
 
252
+ UPB_ASSERT(field->label == UPB_LABEL_REPEATED);
253
+ UPB_ASSERT(field->descriptortype == UPB_DESCRIPTOR_TYPE_MESSAGE ||
254
+ field->descriptortype == UPB_DESCRIPTOR_TYPE_GROUP);
255
+
252
256
  *subm = frame->layout->submsgs[field->submsg_index];
253
257
  submsg = upb_msg_new(*subm, frame->state->arena);
254
258
  CHK(submsg);
@@ -1,5 +1,4 @@
1
1
 
2
- #include "upb/upb.h"
3
2
  #include "upb/port_def.inc"
4
3
 
5
4
  #ifdef UPB_MSVC_VSNPRINTF
@@ -20,9 +20,7 @@
20
20
  *
21
21
  * This file is private and must not be included by users!
22
22
  */
23
- #ifndef UINTPTR_MAX
24
- #error must include stdint.h first
25
- #endif
23
+ #include <stdint.h>
26
24
 
27
25
  #if UINTPTR_MAX == 0xffffffff
28
26
  #define UPB_SIZE(size32, size64) size32
@@ -756,7 +756,8 @@ uint32_t upb_murmur_hash2(const void *key, size_t len, uint32_t seed) {
756
756
  /* Mix 4 bytes at a time into the hash */
757
757
  const uint8_t * data = (const uint8_t *)key;
758
758
  while(len >= 4) {
759
- uint32_t k = *(uint32_t *)data;
759
+ uint32_t k;
760
+ memcpy(&k, data, sizeof(k));
760
761
 
761
762
  k *= m;
762
763
  k ^= k >> r;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.26.0
4
+ version: 1.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: src/ruby/bin
10
10
  cert_chain: []
11
- date: 2019-12-18 00:00:00.000000000 Z
11
+ date: 2020-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.8'
19
+ version: '3.11'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.8'
26
+ version: '3.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: googleapis-common-protos-types
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -723,6 +723,8 @@ files:
723
723
  - src/core/lib/iomgr/logical_thread.cc
724
724
  - src/core/lib/iomgr/logical_thread.h
725
725
  - src/core/lib/iomgr/nameser.h
726
+ - src/core/lib/iomgr/poller/eventmanager_libuv.cc
727
+ - src/core/lib/iomgr/poller/eventmanager_libuv.h
726
728
  - src/core/lib/iomgr/polling_entity.cc
727
729
  - src/core/lib/iomgr/polling_entity.h
728
730
  - src/core/lib/iomgr/pollset.cc
@@ -815,12 +817,8 @@ files:
815
817
  - src/core/lib/iomgr/wakeup_fd_posix.h
816
818
  - src/core/lib/json/json.cc
817
819
  - src/core/lib/json/json.h
818
- - src/core/lib/json/json_common.h
819
820
  - src/core/lib/json/json_reader.cc
820
- - src/core/lib/json/json_reader.h
821
- - src/core/lib/json/json_string.cc
822
821
  - src/core/lib/json/json_writer.cc
823
- - src/core/lib/json/json_writer.h
824
822
  - src/core/lib/profiling/basic_timers.cc
825
823
  - src/core/lib/profiling/stap_timers.cc
826
824
  - src/core/lib/profiling/timers.h
@@ -865,8 +863,8 @@ files:
865
863
  - src/core/lib/security/credentials/ssl/ssl_credentials.h
866
864
  - src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc
867
865
  - src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h
868
- - src/core/lib/security/credentials/tls/spiffe_credentials.cc
869
- - src/core/lib/security/credentials/tls/spiffe_credentials.h
866
+ - src/core/lib/security/credentials/tls/tls_credentials.cc
867
+ - src/core/lib/security/credentials/tls/tls_credentials.h
870
868
  - src/core/lib/security/security_connector/alts/alts_security_connector.cc
871
869
  - src/core/lib/security/security_connector/alts/alts_security_connector.h
872
870
  - src/core/lib/security/security_connector/fake/fake_security_connector.cc
@@ -885,8 +883,8 @@ files:
885
883
  - src/core/lib/security/security_connector/ssl_utils.h
886
884
  - src/core/lib/security/security_connector/ssl_utils_config.cc
887
885
  - src/core/lib/security/security_connector/ssl_utils_config.h
888
- - src/core/lib/security/security_connector/tls/spiffe_security_connector.cc
889
- - src/core/lib/security/security_connector/tls/spiffe_security_connector.h
886
+ - src/core/lib/security/security_connector/tls/tls_security_connector.cc
887
+ - src/core/lib/security/security_connector/tls/tls_security_connector.h
890
888
  - src/core/lib/security/transport/auth_filters.h
891
889
  - src/core/lib/security/transport/client_auth_filter.cc
892
890
  - src/core/lib/security/transport/secure_endpoint.cc
@@ -1137,6 +1135,110 @@ files:
1137
1135
  - src/ruby/spec/testdata/server1.key
1138
1136
  - src/ruby/spec/testdata/server1.pem
1139
1137
  - src/ruby/spec/time_consts_spec.rb
1138
+ - third_party/abseil-cpp/absl/algorithm/algorithm.h
1139
+ - third_party/abseil-cpp/absl/base/attributes.h
1140
+ - third_party/abseil-cpp/absl/base/call_once.h
1141
+ - third_party/abseil-cpp/absl/base/casts.h
1142
+ - third_party/abseil-cpp/absl/base/config.h
1143
+ - third_party/abseil-cpp/absl/base/const_init.h
1144
+ - third_party/abseil-cpp/absl/base/dynamic_annotations.cc
1145
+ - third_party/abseil-cpp/absl/base/dynamic_annotations.h
1146
+ - third_party/abseil-cpp/absl/base/internal/atomic_hook.h
1147
+ - third_party/abseil-cpp/absl/base/internal/bits.h
1148
+ - third_party/abseil-cpp/absl/base/internal/cycleclock.cc
1149
+ - third_party/abseil-cpp/absl/base/internal/cycleclock.h
1150
+ - third_party/abseil-cpp/absl/base/internal/endian.h
1151
+ - third_party/abseil-cpp/absl/base/internal/hide_ptr.h
1152
+ - third_party/abseil-cpp/absl/base/internal/identity.h
1153
+ - third_party/abseil-cpp/absl/base/internal/inline_variable.h
1154
+ - third_party/abseil-cpp/absl/base/internal/invoke.h
1155
+ - third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h
1156
+ - third_party/abseil-cpp/absl/base/internal/per_thread_tls.h
1157
+ - third_party/abseil-cpp/absl/base/internal/raw_logging.cc
1158
+ - third_party/abseil-cpp/absl/base/internal/raw_logging.h
1159
+ - third_party/abseil-cpp/absl/base/internal/scheduling_mode.h
1160
+ - third_party/abseil-cpp/absl/base/internal/spinlock.cc
1161
+ - third_party/abseil-cpp/absl/base/internal/spinlock.h
1162
+ - third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc
1163
+ - third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc
1164
+ - third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc
1165
+ - third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc
1166
+ - third_party/abseil-cpp/absl/base/internal/spinlock_wait.h
1167
+ - third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc
1168
+ - third_party/abseil-cpp/absl/base/internal/sysinfo.cc
1169
+ - third_party/abseil-cpp/absl/base/internal/sysinfo.h
1170
+ - third_party/abseil-cpp/absl/base/internal/thread_annotations.h
1171
+ - third_party/abseil-cpp/absl/base/internal/thread_identity.cc
1172
+ - third_party/abseil-cpp/absl/base/internal/thread_identity.h
1173
+ - third_party/abseil-cpp/absl/base/internal/throw_delegate.cc
1174
+ - third_party/abseil-cpp/absl/base/internal/throw_delegate.h
1175
+ - third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h
1176
+ - third_party/abseil-cpp/absl/base/internal/unaligned_access.h
1177
+ - third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
1178
+ - third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h
1179
+ - third_party/abseil-cpp/absl/base/log_severity.cc
1180
+ - third_party/abseil-cpp/absl/base/log_severity.h
1181
+ - third_party/abseil-cpp/absl/base/macros.h
1182
+ - third_party/abseil-cpp/absl/base/optimization.h
1183
+ - third_party/abseil-cpp/absl/base/options.h
1184
+ - third_party/abseil-cpp/absl/base/policy_checks.h
1185
+ - third_party/abseil-cpp/absl/base/port.h
1186
+ - third_party/abseil-cpp/absl/base/thread_annotations.h
1187
+ - third_party/abseil-cpp/absl/container/inlined_vector.h
1188
+ - third_party/abseil-cpp/absl/container/internal/compressed_tuple.h
1189
+ - third_party/abseil-cpp/absl/container/internal/inlined_vector.h
1190
+ - third_party/abseil-cpp/absl/memory/memory.h
1191
+ - third_party/abseil-cpp/absl/meta/type_traits.h
1192
+ - third_party/abseil-cpp/absl/numeric/int128.cc
1193
+ - third_party/abseil-cpp/absl/numeric/int128.h
1194
+ - third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc
1195
+ - third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc
1196
+ - third_party/abseil-cpp/absl/strings/ascii.cc
1197
+ - third_party/abseil-cpp/absl/strings/ascii.h
1198
+ - third_party/abseil-cpp/absl/strings/charconv.cc
1199
+ - third_party/abseil-cpp/absl/strings/charconv.h
1200
+ - third_party/abseil-cpp/absl/strings/escaping.cc
1201
+ - third_party/abseil-cpp/absl/strings/escaping.h
1202
+ - third_party/abseil-cpp/absl/strings/internal/char_map.h
1203
+ - third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc
1204
+ - third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h
1205
+ - third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc
1206
+ - third_party/abseil-cpp/absl/strings/internal/charconv_parse.h
1207
+ - third_party/abseil-cpp/absl/strings/internal/escaping.cc
1208
+ - third_party/abseil-cpp/absl/strings/internal/escaping.h
1209
+ - third_party/abseil-cpp/absl/strings/internal/memutil.cc
1210
+ - third_party/abseil-cpp/absl/strings/internal/memutil.h
1211
+ - third_party/abseil-cpp/absl/strings/internal/ostringstream.cc
1212
+ - third_party/abseil-cpp/absl/strings/internal/ostringstream.h
1213
+ - third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h
1214
+ - third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h
1215
+ - third_party/abseil-cpp/absl/strings/internal/str_join_internal.h
1216
+ - third_party/abseil-cpp/absl/strings/internal/str_split_internal.h
1217
+ - third_party/abseil-cpp/absl/strings/internal/utf8.cc
1218
+ - third_party/abseil-cpp/absl/strings/internal/utf8.h
1219
+ - third_party/abseil-cpp/absl/strings/match.cc
1220
+ - third_party/abseil-cpp/absl/strings/match.h
1221
+ - third_party/abseil-cpp/absl/strings/numbers.cc
1222
+ - third_party/abseil-cpp/absl/strings/numbers.h
1223
+ - third_party/abseil-cpp/absl/strings/str_cat.cc
1224
+ - third_party/abseil-cpp/absl/strings/str_cat.h
1225
+ - third_party/abseil-cpp/absl/strings/str_join.h
1226
+ - third_party/abseil-cpp/absl/strings/str_replace.cc
1227
+ - third_party/abseil-cpp/absl/strings/str_replace.h
1228
+ - third_party/abseil-cpp/absl/strings/str_split.cc
1229
+ - third_party/abseil-cpp/absl/strings/str_split.h
1230
+ - third_party/abseil-cpp/absl/strings/string_view.cc
1231
+ - third_party/abseil-cpp/absl/strings/string_view.h
1232
+ - third_party/abseil-cpp/absl/strings/strip.h
1233
+ - third_party/abseil-cpp/absl/strings/substitute.cc
1234
+ - third_party/abseil-cpp/absl/strings/substitute.h
1235
+ - third_party/abseil-cpp/absl/types/bad_optional_access.cc
1236
+ - third_party/abseil-cpp/absl/types/bad_optional_access.h
1237
+ - third_party/abseil-cpp/absl/types/internal/optional.h
1238
+ - third_party/abseil-cpp/absl/types/internal/span.h
1239
+ - third_party/abseil-cpp/absl/types/optional.h
1240
+ - third_party/abseil-cpp/absl/types/span.h
1241
+ - third_party/abseil-cpp/absl/utility/utility.h
1140
1242
  - third_party/address_sorting/address_sorting.c
1141
1243
  - third_party/address_sorting/address_sorting_internal.h
1142
1244
  - third_party/address_sorting/address_sorting_posix.c
@@ -1733,46 +1835,46 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1733
1835
  - !ruby/object:Gem::Version
1734
1836
  version: '0'
1735
1837
  requirements: []
1736
- rubygems_version: 3.1.1
1838
+ rubygems_version: 3.1.2
1737
1839
  signing_key:
1738
1840
  specification_version: 4
1739
1841
  summary: GRPC system in Ruby
1740
1842
  test_files:
1741
- - src/ruby/spec/testdata/client.pem
1742
- - src/ruby/spec/testdata/server1.pem
1743
- - src/ruby/spec/testdata/README
1744
- - src/ruby/spec/testdata/client.key
1745
- - src/ruby/spec/testdata/ca.pem
1746
- - src/ruby/spec/testdata/server1.key
1747
- - src/ruby/spec/error_sanity_spec.rb
1748
- - src/ruby/spec/call_credentials_spec.rb
1749
- - src/ruby/spec/channel_connection_spec.rb
1750
1843
  - src/ruby/spec/client_server_spec.rb
1751
- - src/ruby/spec/spec_helper.rb
1752
- - src/ruby/spec/server_spec.rb
1753
- - src/ruby/spec/server_credentials_spec.rb
1754
- - src/ruby/spec/client_auth_spec.rb
1755
- - src/ruby/spec/google_rpc_status_utils_spec.rb
1756
1844
  - src/ruby/spec/errors_spec.rb
1845
+ - src/ruby/spec/pb/codegen/package_option_spec.rb
1846
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto
1847
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
1848
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
1849
+ - src/ruby/spec/pb/health/checker_spec.rb
1850
+ - src/ruby/spec/pb/duplicate/codegen_spec.rb
1851
+ - src/ruby/spec/call_spec.rb
1852
+ - src/ruby/spec/compression_options_spec.rb
1757
1853
  - src/ruby/spec/channel_spec.rb
1758
- - src/ruby/spec/time_consts_spec.rb
1759
- - src/ruby/spec/generic/rpc_server_pool_spec.rb
1760
- - src/ruby/spec/generic/active_call_spec.rb
1854
+ - src/ruby/spec/channel_credentials_spec.rb
1855
+ - src/ruby/spec/support/helpers.rb
1856
+ - src/ruby/spec/support/services.rb
1857
+ - src/ruby/spec/spec_helper.rb
1761
1858
  - src/ruby/spec/generic/rpc_server_spec.rb
1762
- - src/ruby/spec/generic/rpc_desc_spec.rb
1763
- - src/ruby/spec/generic/server_interceptors_spec.rb
1764
- - src/ruby/spec/generic/interceptor_registry_spec.rb
1765
- - src/ruby/spec/generic/client_interceptors_spec.rb
1766
1859
  - src/ruby/spec/generic/service_spec.rb
1767
1860
  - src/ruby/spec/generic/client_stub_spec.rb
1768
- - src/ruby/spec/support/services.rb
1769
- - src/ruby/spec/support/helpers.rb
1770
- - src/ruby/spec/channel_credentials_spec.rb
1771
- - src/ruby/spec/pb/duplicate/codegen_spec.rb
1772
- - src/ruby/spec/pb/health/checker_spec.rb
1773
- - src/ruby/spec/pb/codegen/package_option_spec.rb
1774
- - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
1775
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
1776
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto
1777
- - src/ruby/spec/compression_options_spec.rb
1778
- - src/ruby/spec/call_spec.rb
1861
+ - src/ruby/spec/generic/server_interceptors_spec.rb
1862
+ - src/ruby/spec/generic/active_call_spec.rb
1863
+ - src/ruby/spec/generic/rpc_desc_spec.rb
1864
+ - src/ruby/spec/generic/rpc_server_pool_spec.rb
1865
+ - src/ruby/spec/generic/client_interceptors_spec.rb
1866
+ - src/ruby/spec/generic/interceptor_registry_spec.rb
1867
+ - src/ruby/spec/call_credentials_spec.rb
1868
+ - src/ruby/spec/error_sanity_spec.rb
1869
+ - src/ruby/spec/channel_connection_spec.rb
1870
+ - src/ruby/spec/client_auth_spec.rb
1871
+ - src/ruby/spec/time_consts_spec.rb
1872
+ - src/ruby/spec/testdata/ca.pem
1873
+ - src/ruby/spec/testdata/server1.pem
1874
+ - src/ruby/spec/testdata/client.pem
1875
+ - src/ruby/spec/testdata/README
1876
+ - src/ruby/spec/testdata/server1.key
1877
+ - src/ruby/spec/testdata/client.key
1878
+ - src/ruby/spec/server_spec.rb
1879
+ - src/ruby/spec/server_credentials_spec.rb
1880
+ - src/ruby/spec/google_rpc_status_utils_spec.rb