blob: 2893bddc43c660cd0beb2a0cf7567dba5256383b [file] [log] [blame]
Craig Tiller0fe5ee72015-12-22 12:50:36 -08001
Craig Tiller0fe5ee72015-12-22 12:50:36 -08002/*
3 *
Craig Tiller6169d5f2016-03-31 07:46:18 -07004 * Copyright 2015, Google Inc.
Craig Tiller0fe5ee72015-12-22 12:50:36 -08005 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are
9 * met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following disclaimer
15 * in the documentation and/or other materials provided with the
16 * distribution.
17 * * Neither the name of Google Inc. nor the names of its
18 * contributors may be used to endorse or promote products derived from
19 * this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 */
34
Craig Tiller0fe5ee72015-12-22 12:50:36 -080035/* This file is auto-generated */
36
Craig Tillerf40df232016-03-25 13:38:14 -070037#include "test/core/end2end/end2end_tests.h"
Craig Tiller0fe5ee72015-12-22 12:50:36 -080038
Craig Tillera446ee22016-04-04 13:09:30 -070039#include <stdbool.h>
Craig Tillerd1fce832016-03-21 15:33:47 -070040#include <string.h>
41
42#include <grpc/support/log.h>
43
Craig Tillera446ee22016-04-04 13:09:30 -070044static bool g_pre_init_called = false;
45
Craig Tiller0fe5ee72015-12-22 12:50:36 -080046extern void bad_hostname(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070047extern void bad_hostname_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080048extern void binary_metadata(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070049extern void binary_metadata_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080050extern void cancel_after_accept(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070051extern void cancel_after_accept_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080052extern void cancel_after_client_done(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070053extern void cancel_after_client_done_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080054extern void cancel_after_invoke(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070055extern void cancel_after_invoke_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080056extern void cancel_before_invoke(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070057extern void cancel_before_invoke_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080058extern void cancel_in_a_vacuum(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070059extern void cancel_in_a_vacuum_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080060extern void cancel_with_status(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070061extern void cancel_with_status_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080062extern void compressed_payload(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070063extern void compressed_payload_pre_init(void);
Craig Tiller521423c2016-02-22 22:22:22 -080064extern void connectivity(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070065extern void connectivity_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080066extern void default_host(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070067extern void default_host_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080068extern void disappearing_server(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070069extern void disappearing_server_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080070extern void empty_batch(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070071extern void empty_batch_pre_init(void);
Craig Tillera446ee22016-04-04 13:09:30 -070072extern void filter_causes_close(grpc_end2end_test_config config);
73extern void filter_causes_close_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080074extern void graceful_server_shutdown(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070075extern void graceful_server_shutdown_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080076extern void high_initial_seqno(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070077extern void high_initial_seqno_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080078extern void hpack_size(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070079extern void hpack_size_pre_init(void);
Craig Tiller7885ea52016-03-10 06:53:29 -080080extern void idempotent_request(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070081extern void idempotent_request_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080082extern void invoke_large_request(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070083extern void invoke_large_request_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080084extern void large_metadata(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070085extern void large_metadata_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080086extern void max_concurrent_streams(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070087extern void max_concurrent_streams_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080088extern void max_message_length(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070089extern void max_message_length_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080090extern void negative_deadline(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070091extern void negative_deadline_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080092extern void no_op(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070093extern void no_op_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080094extern void payload(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070095extern void payload_pre_init(void);
Craig Tiller521423c2016-02-22 22:22:22 -080096extern void ping(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070097extern void ping_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -080098extern void ping_pong_streaming(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -070099extern void ping_pong_streaming_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800100extern void registered_call(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700101extern void registered_call_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800102extern void request_with_flags(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700103extern void request_with_flags_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800104extern void request_with_payload(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700105extern void request_with_payload_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800106extern void server_finishes_request(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700107extern void server_finishes_request_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800108extern void shutdown_finishes_calls(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700109extern void shutdown_finishes_calls_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800110extern void shutdown_finishes_tags(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700111extern void shutdown_finishes_tags_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800112extern void simple_delayed_request(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700113extern void simple_delayed_request_pre_init(void);
Craig Tiller521423c2016-02-22 22:22:22 -0800114extern void simple_metadata(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700115extern void simple_metadata_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800116extern void simple_request(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700117extern void simple_request_pre_init(void);
Craig Tillerfa1f74e2016-06-20 11:11:44 -0700118extern void streaming_error_response(grpc_end2end_test_config config);
119extern void streaming_error_response_pre_init(void);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800120extern void trailing_metadata(grpc_end2end_test_config config);
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700121extern void trailing_metadata_pre_init(void);
122
123void grpc_end2end_tests_pre_init(void) {
Craig Tillera446ee22016-04-04 13:09:30 -0700124 GPR_ASSERT(!g_pre_init_called);
125 g_pre_init_called = true;
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700126 bad_hostname_pre_init();
127 binary_metadata_pre_init();
128 cancel_after_accept_pre_init();
129 cancel_after_client_done_pre_init();
130 cancel_after_invoke_pre_init();
131 cancel_before_invoke_pre_init();
132 cancel_in_a_vacuum_pre_init();
133 cancel_with_status_pre_init();
134 compressed_payload_pre_init();
135 connectivity_pre_init();
136 default_host_pre_init();
137 disappearing_server_pre_init();
138 empty_batch_pre_init();
Craig Tillera446ee22016-04-04 13:09:30 -0700139 filter_causes_close_pre_init();
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700140 graceful_server_shutdown_pre_init();
141 high_initial_seqno_pre_init();
142 hpack_size_pre_init();
143 idempotent_request_pre_init();
144 invoke_large_request_pre_init();
145 large_metadata_pre_init();
146 max_concurrent_streams_pre_init();
147 max_message_length_pre_init();
148 negative_deadline_pre_init();
149 no_op_pre_init();
150 payload_pre_init();
151 ping_pre_init();
152 ping_pong_streaming_pre_init();
153 registered_call_pre_init();
154 request_with_flags_pre_init();
155 request_with_payload_pre_init();
156 server_finishes_request_pre_init();
157 shutdown_finishes_calls_pre_init();
158 shutdown_finishes_tags_pre_init();
159 simple_delayed_request_pre_init();
160 simple_metadata_pre_init();
161 simple_request_pre_init();
Craig Tillerfa1f74e2016-06-20 11:11:44 -0700162 streaming_error_response_pre_init();
Craig Tiller9e9edbc2016-04-04 10:38:49 -0700163 trailing_metadata_pre_init();
164}
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800165
Craig Tillerbe52c6e2016-01-04 15:35:26 -0800166void grpc_end2end_tests(int argc, char **argv,
167 grpc_end2end_test_config config) {
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800168 int i;
169
Craig Tillera446ee22016-04-04 13:09:30 -0700170 GPR_ASSERT(g_pre_init_called);
171
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800172 if (argc <= 1) {
173 bad_hostname(config);
174 binary_metadata(config);
175 cancel_after_accept(config);
176 cancel_after_client_done(config);
177 cancel_after_invoke(config);
178 cancel_before_invoke(config);
179 cancel_in_a_vacuum(config);
180 cancel_with_status(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800181 compressed_payload(config);
Craig Tiller521423c2016-02-22 22:22:22 -0800182 connectivity(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800183 default_host(config);
184 disappearing_server(config);
185 empty_batch(config);
Craig Tillera446ee22016-04-04 13:09:30 -0700186 filter_causes_close(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800187 graceful_server_shutdown(config);
188 high_initial_seqno(config);
189 hpack_size(config);
Craig Tiller7885ea52016-03-10 06:53:29 -0800190 idempotent_request(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800191 invoke_large_request(config);
192 large_metadata(config);
193 max_concurrent_streams(config);
194 max_message_length(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800195 negative_deadline(config);
196 no_op(config);
197 payload(config);
Craig Tiller521423c2016-02-22 22:22:22 -0800198 ping(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800199 ping_pong_streaming(config);
200 registered_call(config);
201 request_with_flags(config);
202 request_with_payload(config);
203 server_finishes_request(config);
204 shutdown_finishes_calls(config);
205 shutdown_finishes_tags(config);
206 simple_delayed_request(config);
Craig Tiller521423c2016-02-22 22:22:22 -0800207 simple_metadata(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800208 simple_request(config);
Craig Tillerfa1f74e2016-06-20 11:11:44 -0700209 streaming_error_response(config);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800210 trailing_metadata(config);
211 return;
212 }
213
214 for (i = 1; i < argc; i++) {
215 if (0 == strcmp("bad_hostname", argv[i])) {
216 bad_hostname(config);
217 continue;
218 }
219 if (0 == strcmp("binary_metadata", argv[i])) {
220 binary_metadata(config);
221 continue;
222 }
223 if (0 == strcmp("cancel_after_accept", argv[i])) {
224 cancel_after_accept(config);
225 continue;
226 }
227 if (0 == strcmp("cancel_after_client_done", argv[i])) {
228 cancel_after_client_done(config);
229 continue;
230 }
231 if (0 == strcmp("cancel_after_invoke", argv[i])) {
232 cancel_after_invoke(config);
233 continue;
234 }
235 if (0 == strcmp("cancel_before_invoke", argv[i])) {
236 cancel_before_invoke(config);
237 continue;
238 }
239 if (0 == strcmp("cancel_in_a_vacuum", argv[i])) {
240 cancel_in_a_vacuum(config);
241 continue;
242 }
243 if (0 == strcmp("cancel_with_status", argv[i])) {
244 cancel_with_status(config);
245 continue;
246 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800247 if (0 == strcmp("compressed_payload", argv[i])) {
248 compressed_payload(config);
249 continue;
250 }
Craig Tiller521423c2016-02-22 22:22:22 -0800251 if (0 == strcmp("connectivity", argv[i])) {
252 connectivity(config);
253 continue;
254 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800255 if (0 == strcmp("default_host", argv[i])) {
256 default_host(config);
257 continue;
258 }
259 if (0 == strcmp("disappearing_server", argv[i])) {
260 disappearing_server(config);
261 continue;
262 }
263 if (0 == strcmp("empty_batch", argv[i])) {
264 empty_batch(config);
265 continue;
266 }
Craig Tillera446ee22016-04-04 13:09:30 -0700267 if (0 == strcmp("filter_causes_close", argv[i])) {
268 filter_causes_close(config);
269 continue;
270 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800271 if (0 == strcmp("graceful_server_shutdown", argv[i])) {
272 graceful_server_shutdown(config);
273 continue;
274 }
275 if (0 == strcmp("high_initial_seqno", argv[i])) {
276 high_initial_seqno(config);
277 continue;
278 }
279 if (0 == strcmp("hpack_size", argv[i])) {
280 hpack_size(config);
281 continue;
282 }
Craig Tiller7885ea52016-03-10 06:53:29 -0800283 if (0 == strcmp("idempotent_request", argv[i])) {
284 idempotent_request(config);
285 continue;
286 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800287 if (0 == strcmp("invoke_large_request", argv[i])) {
288 invoke_large_request(config);
289 continue;
290 }
291 if (0 == strcmp("large_metadata", argv[i])) {
292 large_metadata(config);
293 continue;
294 }
295 if (0 == strcmp("max_concurrent_streams", argv[i])) {
296 max_concurrent_streams(config);
297 continue;
298 }
299 if (0 == strcmp("max_message_length", argv[i])) {
300 max_message_length(config);
301 continue;
302 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800303 if (0 == strcmp("negative_deadline", argv[i])) {
304 negative_deadline(config);
305 continue;
306 }
307 if (0 == strcmp("no_op", argv[i])) {
308 no_op(config);
309 continue;
310 }
311 if (0 == strcmp("payload", argv[i])) {
312 payload(config);
313 continue;
314 }
Craig Tiller521423c2016-02-22 22:22:22 -0800315 if (0 == strcmp("ping", argv[i])) {
316 ping(config);
317 continue;
318 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800319 if (0 == strcmp("ping_pong_streaming", argv[i])) {
320 ping_pong_streaming(config);
321 continue;
322 }
323 if (0 == strcmp("registered_call", argv[i])) {
324 registered_call(config);
325 continue;
326 }
327 if (0 == strcmp("request_with_flags", argv[i])) {
328 request_with_flags(config);
329 continue;
330 }
331 if (0 == strcmp("request_with_payload", argv[i])) {
332 request_with_payload(config);
333 continue;
334 }
335 if (0 == strcmp("server_finishes_request", argv[i])) {
336 server_finishes_request(config);
337 continue;
338 }
339 if (0 == strcmp("shutdown_finishes_calls", argv[i])) {
340 shutdown_finishes_calls(config);
341 continue;
342 }
343 if (0 == strcmp("shutdown_finishes_tags", argv[i])) {
344 shutdown_finishes_tags(config);
345 continue;
346 }
347 if (0 == strcmp("simple_delayed_request", argv[i])) {
348 simple_delayed_request(config);
349 continue;
350 }
Craig Tiller521423c2016-02-22 22:22:22 -0800351 if (0 == strcmp("simple_metadata", argv[i])) {
352 simple_metadata(config);
353 continue;
354 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800355 if (0 == strcmp("simple_request", argv[i])) {
356 simple_request(config);
357 continue;
358 }
Craig Tillerfa1f74e2016-06-20 11:11:44 -0700359 if (0 == strcmp("streaming_error_response", argv[i])) {
360 streaming_error_response(config);
361 continue;
362 }
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800363 if (0 == strcmp("trailing_metadata", argv[i])) {
364 trailing_metadata(config);
365 continue;
366 }
Craig Tiller093193e2016-01-07 07:14:44 -0800367 gpr_log(GPR_DEBUG, "not a test: '%s'", argv[i]);
Craig Tiller0fe5ee72015-12-22 12:50:36 -0800368 abort();
369 }
370}