diff options
author | 2018-02-12 19:22:31 -0800 | |
---|---|---|
committer | 2018-02-13 09:27:35 -0800 | |
commit | ac86f043735ea75a5ad79283ef50042d7448f04f (patch) | |
tree | 36662eebf21edb8ca8161b10f45101d026fc95a9 /test/core | |
parent | bc43b0e683678d47e14e1ecd9a2aba0ab7abc7cd (diff) | |
parent | 1b05b412688b7ae825eab8f91af042a24d4e18f4 (diff) |
Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing
Diffstat (limited to 'test/core')
246 files changed, 6758 insertions, 6214 deletions
diff --git a/test/core/avl/BUILD b/test/core/avl/BUILD new file mode 100644 index 0000000000..48f5baeb1a --- /dev/null +++ b/test/core/avl/BUILD @@ -0,0 +1,30 @@ +# Copyright 2018 gRPC authors. +# +# 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. + +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_cc_binary", "grpc_package") + +licenses(["notice"]) # Apache v2 + +grpc_package(name = "test/core/avl") + +grpc_cc_test( + name = "avl_test", + srcs = ["avl_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/util:gpr_test_util", + ], +) diff --git a/test/core/avl/avl_test.cc b/test/core/avl/avl_test.cc new file mode 100644 index 0000000000..ecebe833b3 --- /dev/null +++ b/test/core/avl/avl_test.cc @@ -0,0 +1,3661 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * 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. + * + */ + +#include "src/core/lib/avl/avl.h" + +#include <stdio.h> +#include <string.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> + +#include "src/core/lib/gpr/useful.h" +#include "test/core/util/test_config.h" + +static int* box(int x) { + int* b = static_cast<int*>(gpr_malloc(sizeof(*b))); + *b = x; + return b; +} + +static long int_compare(void* int1, void* int2, void* unused) { + return (*static_cast<int*>(int1)) - (*static_cast<int*>(int2)); +} +static void* int_copy(void* p, void* unused) { + return box(*static_cast<int*>(p)); +} + +static void destroy(void* p, void* unused) { gpr_free(p); } + +static const grpc_avl_vtable int_int_vtable = {destroy, int_copy, int_compare, + destroy, int_copy}; + +static void check_get(grpc_avl avl, int key, int value) { + int* k = box(key); + GPR_ASSERT(*(int*)grpc_avl_get(avl, k, nullptr) == value); + gpr_free(k); +} + +static void check_negget(grpc_avl avl, int key) { + int* k = box(key); + GPR_ASSERT(grpc_avl_get(avl, k, nullptr) == nullptr); + gpr_free(k); +} + +static grpc_avl remove_int(grpc_avl avl, int key) { + int* k = box(key); + avl = grpc_avl_remove(avl, k, nullptr); + gpr_free(k); + return avl; +} + +static void test_get(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_get"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(1), box(11), nullptr); + avl = grpc_avl_add(avl, box(2), box(22), nullptr); + avl = grpc_avl_add(avl, box(3), box(33), nullptr); + check_get(avl, 1, 11); + check_get(avl, 2, 22); + check_get(avl, 3, 33); + check_negget(avl, 4); + grpc_avl_unref(avl, nullptr); +} + +static void test_ll(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_ll"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(5), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(3), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_lr(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_lr"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(5), box(1), nullptr); + avl = grpc_avl_add(avl, box(3), box(2), nullptr); + avl = grpc_avl_add(avl, box(4), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_rr(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_rr"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(3), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(5), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_rl(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_rl"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(3), box(1), nullptr); + avl = grpc_avl_add(avl, box(5), box(2), nullptr); + avl = grpc_avl_add(avl, box(4), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_unbalanced(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_unbalanced"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(5), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(3), box(3), nullptr); + avl = grpc_avl_add(avl, box(2), box(4), nullptr); + avl = grpc_avl_add(avl, box(1), box(5), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 2); + GPR_ASSERT(*(int*)avl.root->left->left->key == 1); + GPR_ASSERT(*(int*)avl.root->left->right->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_replace(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_replace"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(1), box(1), nullptr); + avl = grpc_avl_add(avl, box(1), box(2), nullptr); + check_get(avl, 1, 2); + check_negget(avl, 2); + grpc_avl_unref(avl, nullptr); +} + +static void test_remove(void) { + grpc_avl avl; + grpc_avl avl3, avl4, avl5, avln; + gpr_log(GPR_DEBUG, "test_remove"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(3), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(5), box(3), nullptr); + + avl3 = remove_int(grpc_avl_ref(avl, nullptr), 3); + avl4 = remove_int(grpc_avl_ref(avl, nullptr), 4); + avl5 = remove_int(grpc_avl_ref(avl, nullptr), 5); + avln = remove_int(grpc_avl_ref(avl, nullptr), 1); + + grpc_avl_unref(avl, nullptr); + + check_negget(avl3, 3); + check_get(avl3, 4, 2); + check_get(avl3, 5, 3); + grpc_avl_unref(avl3, nullptr); + + check_get(avl4, 3, 1); + check_negget(avl4, 4); + check_get(avl4, 5, 3); + grpc_avl_unref(avl4, nullptr); + + check_get(avl5, 3, 1); + check_get(avl5, 4, 2); + check_negget(avl5, 5); + grpc_avl_unref(avl5, nullptr); + + check_get(avln, 3, 1); + check_get(avln, 4, 2); + check_get(avln, 5, 3); + grpc_avl_unref(avln, nullptr); +} + +static void test_badcase1(void) { + grpc_avl avl; + + gpr_log(GPR_DEBUG, "test_badcase1"); + + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(88), box(1), nullptr); + avl = remove_int(avl, 643); + avl = remove_int(avl, 983); + avl = grpc_avl_add(avl, box(985), box(4), nullptr); + avl = grpc_avl_add(avl, box(640), box(5), nullptr); + avl = grpc_avl_add(avl, box(41), box(6), nullptr); + avl = grpc_avl_add(avl, box(112), box(7), nullptr); + avl = grpc_avl_add(avl, box(342), box(8), nullptr); + avl = remove_int(avl, 1013); + avl = grpc_avl_add(avl, box(434), box(10), nullptr); + avl = grpc_avl_add(avl, box(520), box(11), nullptr); + avl = grpc_avl_add(avl, box(231), box(12), nullptr); + avl = grpc_avl_add(avl, box(852), box(13), nullptr); + avl = remove_int(avl, 461); + avl = grpc_avl_add(avl, box(108), box(15), nullptr); + avl = grpc_avl_add(avl, box(806), box(16), nullptr); + avl = grpc_avl_add(avl, box(827), box(17), nullptr); + avl = remove_int(avl, 796); + avl = grpc_avl_add(avl, box(340), box(19), nullptr); + avl = grpc_avl_add(avl, box(498), box(20), nullptr); + avl = grpc_avl_add(avl, box(203), box(21), nullptr); + avl = grpc_avl_add(avl, box(751), box(22), nullptr); + avl = grpc_avl_add(avl, box(150), box(23), nullptr); + avl = remove_int(avl, 237); + avl = grpc_avl_add(avl, box(830), box(25), nullptr); + avl = remove_int(avl, 1007); + avl = remove_int(avl, 394); + avl = grpc_avl_add(avl, box(65), box(28), nullptr); + avl = remove_int(avl, 904); + avl = remove_int(avl, 123); + avl = grpc_avl_add(avl, box(238), box(31), nullptr); + avl = grpc_avl_add(avl, box(184), box(32), nullptr); + avl = remove_int(avl, 331); + avl = grpc_avl_add(avl, box(827), box(34), nullptr); + + check_get(avl, 830, 25); + + grpc_avl_unref(avl, nullptr); +} + +static void test_badcase2(void) { + grpc_avl avl; + + gpr_log(GPR_DEBUG, "test_badcase2"); + + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(288), box(1), nullptr); + avl = remove_int(avl, 415); + avl = grpc_avl_add(avl, box(953), box(3), nullptr); + avl = grpc_avl_add(avl, box(101), box(4), nullptr); + avl = grpc_avl_add(avl, box(516), box(5), nullptr); + avl = grpc_avl_add(avl, box(547), box(6), nullptr); + avl = grpc_avl_add(avl, box(467), box(7), nullptr); + avl = grpc_avl_add(avl, box(793), box(8), nullptr); + avl = remove_int(avl, 190); + avl = grpc_avl_add(avl, box(687), box(10), nullptr); + avl = grpc_avl_add(avl, box(242), box(11), nullptr); + avl = grpc_avl_add(avl, box(142), box(12), nullptr); + avl = remove_int(avl, 705); + avl = remove_int(avl, 578); + avl = remove_int(avl, 767); + avl = remove_int(avl, 183); + avl = grpc_avl_add(avl, box(950), box(17), nullptr); + avl = grpc_avl_add(avl, box(622), box(18), nullptr); + avl = remove_int(avl, 513); + avl = remove_int(avl, 429); + avl = grpc_avl_add(avl, box(205), box(21), nullptr); + avl = remove_int(avl, 663); + avl = remove_int(avl, 953); + avl = remove_int(avl, 892); + avl = grpc_avl_add(avl, box(236), box(25), nullptr); + avl = remove_int(avl, 982); + avl = remove_int(avl, 201); + avl = remove_int(avl, 684); + avl = grpc_avl_add(avl, box(572), box(29), nullptr); + avl = remove_int(avl, 817); + avl = grpc_avl_add(avl, box(970), box(31), nullptr); + avl = remove_int(avl, 347); + avl = remove_int(avl, 574); + avl = grpc_avl_add(avl, box(752), box(34), nullptr); + avl = grpc_avl_add(avl, box(670), box(35), nullptr); + avl = grpc_avl_add(avl, box(69), box(36), nullptr); + avl = remove_int(avl, 111); + avl = remove_int(avl, 523); + avl = grpc_avl_add(avl, box(141), box(39), nullptr); + avl = remove_int(avl, 159); + avl = grpc_avl_add(avl, box(947), box(41), nullptr); + avl = grpc_avl_add(avl, box(855), box(42), nullptr); + avl = remove_int(avl, 218); + avl = remove_int(avl, 6); + avl = grpc_avl_add(avl, box(753), box(45), nullptr); + avl = remove_int(avl, 82); + avl = remove_int(avl, 799); + avl = grpc_avl_add(avl, box(572), box(48), nullptr); + avl = remove_int(avl, 376); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(458), box(51), nullptr); + avl = remove_int(avl, 897); + avl = grpc_avl_add(avl, box(191), box(53), nullptr); + avl = grpc_avl_add(avl, box(609), box(54), nullptr); + avl = remove_int(avl, 787); + avl = remove_int(avl, 710); + avl = remove_int(avl, 886); + avl = remove_int(avl, 835); + avl = remove_int(avl, 33); + avl = grpc_avl_add(avl, box(871), box(60), nullptr); + avl = remove_int(avl, 641); + avl = grpc_avl_add(avl, box(462), box(62), nullptr); + avl = remove_int(avl, 359); + avl = remove_int(avl, 767); + avl = grpc_avl_add(avl, box(310), box(65), nullptr); + avl = remove_int(avl, 757); + avl = remove_int(avl, 639); + avl = remove_int(avl, 314); + avl = grpc_avl_add(avl, box(2), box(69), nullptr); + avl = remove_int(avl, 138); + avl = grpc_avl_add(avl, box(669), box(71), nullptr); + avl = remove_int(avl, 477); + avl = grpc_avl_add(avl, box(366), box(73), nullptr); + avl = grpc_avl_add(avl, box(612), box(74), nullptr); + avl = grpc_avl_add(avl, box(106), box(75), nullptr); + avl = remove_int(avl, 161); + avl = grpc_avl_add(avl, box(388), box(77), nullptr); + avl = grpc_avl_add(avl, box(141), box(78), nullptr); + avl = remove_int(avl, 633); + avl = remove_int(avl, 459); + avl = grpc_avl_add(avl, box(40), box(81), nullptr); + avl = remove_int(avl, 689); + avl = grpc_avl_add(avl, box(823), box(83), nullptr); + avl = remove_int(avl, 485); + avl = grpc_avl_add(avl, box(903), box(85), nullptr); + avl = grpc_avl_add(avl, box(592), box(86), nullptr); + avl = remove_int(avl, 448); + avl = grpc_avl_add(avl, box(56), box(88), nullptr); + avl = remove_int(avl, 333); + avl = grpc_avl_add(avl, box(189), box(90), nullptr); + avl = grpc_avl_add(avl, box(103), box(91), nullptr); + avl = remove_int(avl, 164); + avl = remove_int(avl, 974); + avl = grpc_avl_add(avl, box(215), box(94), nullptr); + avl = remove_int(avl, 189); + avl = remove_int(avl, 504); + avl = grpc_avl_add(avl, box(868), box(97), nullptr); + avl = remove_int(avl, 909); + avl = remove_int(avl, 148); + avl = remove_int(avl, 469); + avl = grpc_avl_add(avl, box(994), box(101), nullptr); + avl = grpc_avl_add(avl, box(576), box(102), nullptr); + avl = remove_int(avl, 82); + avl = remove_int(avl, 209); + avl = grpc_avl_add(avl, box(276), box(105), nullptr); + avl = remove_int(avl, 856); + avl = grpc_avl_add(avl, box(750), box(107), nullptr); + avl = remove_int(avl, 871); + avl = grpc_avl_add(avl, box(301), box(109), nullptr); + avl = remove_int(avl, 260); + avl = remove_int(avl, 737); + avl = remove_int(avl, 719); + avl = grpc_avl_add(avl, box(933), box(113), nullptr); + avl = grpc_avl_add(avl, box(225), box(114), nullptr); + avl = grpc_avl_add(avl, box(975), box(115), nullptr); + avl = grpc_avl_add(avl, box(86), box(116), nullptr); + avl = remove_int(avl, 732); + avl = grpc_avl_add(avl, box(340), box(118), nullptr); + avl = grpc_avl_add(avl, box(271), box(119), nullptr); + avl = remove_int(avl, 206); + avl = grpc_avl_add(avl, box(949), box(121), nullptr); + avl = grpc_avl_add(avl, box(927), box(122), nullptr); + avl = grpc_avl_add(avl, box(34), box(123), nullptr); + avl = grpc_avl_add(avl, box(351), box(124), nullptr); + avl = remove_int(avl, 836); + avl = grpc_avl_add(avl, box(825), box(126), nullptr); + avl = grpc_avl_add(avl, box(352), box(127), nullptr); + avl = remove_int(avl, 107); + avl = remove_int(avl, 101); + avl = grpc_avl_add(avl, box(320), box(130), nullptr); + avl = grpc_avl_add(avl, box(3), box(131), nullptr); + avl = remove_int(avl, 998); + avl = remove_int(avl, 44); + avl = grpc_avl_add(avl, box(525), box(134), nullptr); + avl = grpc_avl_add(avl, box(864), box(135), nullptr); + avl = grpc_avl_add(avl, box(863), box(136), nullptr); + avl = remove_int(avl, 770); + avl = grpc_avl_add(avl, box(440), box(138), nullptr); + avl = remove_int(avl, 516); + avl = grpc_avl_add(avl, box(116), box(140), nullptr); + avl = remove_int(avl, 380); + avl = grpc_avl_add(avl, box(878), box(142), nullptr); + avl = remove_int(avl, 439); + avl = grpc_avl_add(avl, box(994), box(144), nullptr); + avl = remove_int(avl, 294); + avl = remove_int(avl, 593); + avl = grpc_avl_add(avl, box(696), box(147), nullptr); + avl = remove_int(avl, 8); + avl = grpc_avl_add(avl, box(881), box(149), nullptr); + avl = remove_int(avl, 32); + avl = remove_int(avl, 242); + avl = grpc_avl_add(avl, box(487), box(152), nullptr); + avl = grpc_avl_add(avl, box(637), box(153), nullptr); + avl = grpc_avl_add(avl, box(793), box(154), nullptr); + avl = grpc_avl_add(avl, box(696), box(155), nullptr); + avl = remove_int(avl, 458); + avl = grpc_avl_add(avl, box(828), box(157), nullptr); + avl = remove_int(avl, 784); + avl = remove_int(avl, 274); + avl = grpc_avl_add(avl, box(783), box(160), nullptr); + avl = remove_int(avl, 21); + avl = grpc_avl_add(avl, box(866), box(162), nullptr); + avl = remove_int(avl, 919); + avl = grpc_avl_add(avl, box(435), box(164), nullptr); + avl = remove_int(avl, 385); + avl = grpc_avl_add(avl, box(475), box(166), nullptr); + avl = remove_int(avl, 339); + avl = grpc_avl_add(avl, box(615), box(168), nullptr); + avl = remove_int(avl, 866); + avl = remove_int(avl, 82); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(590), box(172), nullptr); + avl = grpc_avl_add(avl, box(852), box(173), nullptr); + avl = remove_int(avl, 318); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(672), box(176), nullptr); + avl = remove_int(avl, 430); + avl = grpc_avl_add(avl, box(821), box(178), nullptr); + avl = grpc_avl_add(avl, box(365), box(179), nullptr); + avl = remove_int(avl, 78); + avl = grpc_avl_add(avl, box(700), box(181), nullptr); + avl = grpc_avl_add(avl, box(353), box(182), nullptr); + avl = remove_int(avl, 492); + avl = grpc_avl_add(avl, box(991), box(184), nullptr); + avl = remove_int(avl, 330); + avl = grpc_avl_add(avl, box(873), box(186), nullptr); + avl = remove_int(avl, 589); + avl = grpc_avl_add(avl, box(676), box(188), nullptr); + avl = grpc_avl_add(avl, box(790), box(189), nullptr); + avl = remove_int(avl, 521); + avl = remove_int(avl, 47); + avl = grpc_avl_add(avl, box(976), box(192), nullptr); + avl = grpc_avl_add(avl, box(683), box(193), nullptr); + avl = remove_int(avl, 803); + avl = remove_int(avl, 1006); + avl = grpc_avl_add(avl, box(775), box(196), nullptr); + avl = grpc_avl_add(avl, box(411), box(197), nullptr); + avl = grpc_avl_add(avl, box(697), box(198), nullptr); + avl = remove_int(avl, 50); + avl = grpc_avl_add(avl, box(213), box(200), nullptr); + avl = remove_int(avl, 714); + avl = grpc_avl_add(avl, box(981), box(202), nullptr); + avl = grpc_avl_add(avl, box(502), box(203), nullptr); + avl = grpc_avl_add(avl, box(697), box(204), nullptr); + avl = grpc_avl_add(avl, box(603), box(205), nullptr); + avl = grpc_avl_add(avl, box(117), box(206), nullptr); + avl = remove_int(avl, 363); + avl = grpc_avl_add(avl, box(104), box(208), nullptr); + avl = remove_int(avl, 842); + avl = grpc_avl_add(avl, box(48), box(210), nullptr); + avl = remove_int(avl, 764); + avl = grpc_avl_add(avl, box(482), box(212), nullptr); + avl = grpc_avl_add(avl, box(928), box(213), nullptr); + avl = grpc_avl_add(avl, box(30), box(214), nullptr); + avl = grpc_avl_add(avl, box(820), box(215), nullptr); + avl = grpc_avl_add(avl, box(334), box(216), nullptr); + avl = remove_int(avl, 306); + avl = grpc_avl_add(avl, box(789), box(218), nullptr); + avl = remove_int(avl, 924); + avl = grpc_avl_add(avl, box(53), box(220), nullptr); + avl = remove_int(avl, 657); + avl = grpc_avl_add(avl, box(130), box(222), nullptr); + avl = grpc_avl_add(avl, box(239), box(223), nullptr); + avl = remove_int(avl, 20); + avl = grpc_avl_add(avl, box(117), box(225), nullptr); + avl = remove_int(avl, 882); + avl = remove_int(avl, 891); + avl = grpc_avl_add(avl, box(9), box(228), nullptr); + avl = grpc_avl_add(avl, box(496), box(229), nullptr); + avl = grpc_avl_add(avl, box(750), box(230), nullptr); + avl = grpc_avl_add(avl, box(283), box(231), nullptr); + avl = grpc_avl_add(avl, box(802), box(232), nullptr); + avl = remove_int(avl, 352); + avl = grpc_avl_add(avl, box(374), box(234), nullptr); + avl = grpc_avl_add(avl, box(6), box(235), nullptr); + avl = grpc_avl_add(avl, box(756), box(236), nullptr); + avl = grpc_avl_add(avl, box(597), box(237), nullptr); + avl = grpc_avl_add(avl, box(661), box(238), nullptr); + avl = remove_int(avl, 96); + avl = grpc_avl_add(avl, box(894), box(240), nullptr); + avl = remove_int(avl, 749); + avl = grpc_avl_add(avl, box(71), box(242), nullptr); + avl = remove_int(avl, 68); + avl = grpc_avl_add(avl, box(388), box(244), nullptr); + avl = remove_int(avl, 119); + avl = remove_int(avl, 856); + avl = grpc_avl_add(avl, box(176), box(247), nullptr); + avl = grpc_avl_add(avl, box(993), box(248), nullptr); + avl = remove_int(avl, 178); + avl = remove_int(avl, 781); + avl = remove_int(avl, 771); + avl = remove_int(avl, 848); + avl = remove_int(avl, 376); + avl = remove_int(avl, 157); + avl = remove_int(avl, 142); + avl = remove_int(avl, 686); + avl = grpc_avl_add(avl, box(779), box(257), nullptr); + avl = grpc_avl_add(avl, box(484), box(258), nullptr); + avl = remove_int(avl, 837); + avl = grpc_avl_add(avl, box(388), box(260), nullptr); + avl = remove_int(avl, 987); + avl = grpc_avl_add(avl, box(336), box(262), nullptr); + avl = remove_int(avl, 855); + avl = grpc_avl_add(avl, box(668), box(264), nullptr); + avl = remove_int(avl, 648); + avl = grpc_avl_add(avl, box(193), box(266), nullptr); + avl = remove_int(avl, 939); + avl = grpc_avl_add(avl, box(740), box(268), nullptr); + avl = grpc_avl_add(avl, box(503), box(269), nullptr); + avl = grpc_avl_add(avl, box(765), box(270), nullptr); + avl = remove_int(avl, 924); + avl = remove_int(avl, 513); + avl = grpc_avl_add(avl, box(161), box(273), nullptr); + avl = grpc_avl_add(avl, box(502), box(274), nullptr); + avl = grpc_avl_add(avl, box(846), box(275), nullptr); + avl = remove_int(avl, 931); + avl = grpc_avl_add(avl, box(87), box(277), nullptr); + avl = grpc_avl_add(avl, box(949), box(278), nullptr); + avl = grpc_avl_add(avl, box(548), box(279), nullptr); + avl = grpc_avl_add(avl, box(951), box(280), nullptr); + avl = remove_int(avl, 1018); + avl = remove_int(avl, 568); + avl = grpc_avl_add(avl, box(138), box(283), nullptr); + avl = grpc_avl_add(avl, box(202), box(284), nullptr); + avl = grpc_avl_add(avl, box(157), box(285), nullptr); + avl = grpc_avl_add(avl, box(264), box(286), nullptr); + avl = grpc_avl_add(avl, box(370), box(287), nullptr); + avl = remove_int(avl, 736); + avl = remove_int(avl, 751); + avl = remove_int(avl, 506); + avl = remove_int(avl, 81); + avl = remove_int(avl, 358); + avl = remove_int(avl, 657); + avl = remove_int(avl, 86); + avl = grpc_avl_add(avl, box(876), box(295), nullptr); + avl = remove_int(avl, 354); + avl = grpc_avl_add(avl, box(134), box(297), nullptr); + avl = remove_int(avl, 781); + avl = remove_int(avl, 183); + avl = grpc_avl_add(avl, box(914), box(300), nullptr); + avl = remove_int(avl, 926); + avl = remove_int(avl, 398); + avl = remove_int(avl, 932); + avl = remove_int(avl, 804); + avl = remove_int(avl, 326); + avl = grpc_avl_add(avl, box(208), box(306), nullptr); + avl = grpc_avl_add(avl, box(699), box(307), nullptr); + avl = remove_int(avl, 576); + avl = remove_int(avl, 850); + avl = remove_int(avl, 514); + avl = remove_int(avl, 676); + avl = remove_int(avl, 549); + avl = remove_int(avl, 767); + avl = grpc_avl_add(avl, box(58), box(314), nullptr); + avl = grpc_avl_add(avl, box(265), box(315), nullptr); + avl = grpc_avl_add(avl, box(268), box(316), nullptr); + avl = grpc_avl_add(avl, box(103), box(317), nullptr); + avl = grpc_avl_add(avl, box(440), box(318), nullptr); + avl = remove_int(avl, 777); + avl = grpc_avl_add(avl, box(670), box(320), nullptr); + avl = remove_int(avl, 506); + avl = remove_int(avl, 487); + avl = grpc_avl_add(avl, box(421), box(323), nullptr); + avl = remove_int(avl, 514); + avl = grpc_avl_add(avl, box(701), box(325), nullptr); + avl = remove_int(avl, 949); + avl = remove_int(avl, 872); + avl = remove_int(avl, 139); + avl = grpc_avl_add(avl, box(781), box(329), nullptr); + avl = grpc_avl_add(avl, box(543), box(330), nullptr); + avl = grpc_avl_add(avl, box(147), box(331), nullptr); + avl = remove_int(avl, 190); + avl = grpc_avl_add(avl, box(453), box(333), nullptr); + avl = remove_int(avl, 262); + avl = remove_int(avl, 850); + avl = remove_int(avl, 286); + avl = remove_int(avl, 787); + avl = grpc_avl_add(avl, box(514), box(338), nullptr); + avl = remove_int(avl, 812); + avl = grpc_avl_add(avl, box(431), box(340), nullptr); + avl = grpc_avl_add(avl, box(8), box(341), nullptr); + avl = remove_int(avl, 843); + avl = grpc_avl_add(avl, box(831), box(343), nullptr); + avl = remove_int(avl, 472); + avl = remove_int(avl, 157); + avl = grpc_avl_add(avl, box(612), box(346), nullptr); + avl = grpc_avl_add(avl, box(802), box(347), nullptr); + avl = remove_int(avl, 554); + avl = grpc_avl_add(avl, box(409), box(349), nullptr); + avl = grpc_avl_add(avl, box(439), box(350), nullptr); + avl = grpc_avl_add(avl, box(725), box(351), nullptr); + avl = grpc_avl_add(avl, box(568), box(352), nullptr); + avl = remove_int(avl, 475); + avl = remove_int(avl, 672); + avl = remove_int(avl, 62); + avl = remove_int(avl, 753); + avl = grpc_avl_add(avl, box(435), box(357), nullptr); + avl = grpc_avl_add(avl, box(950), box(358), nullptr); + avl = grpc_avl_add(avl, box(532), box(359), nullptr); + avl = grpc_avl_add(avl, box(832), box(360), nullptr); + avl = remove_int(avl, 390); + avl = grpc_avl_add(avl, box(993), box(362), nullptr); + avl = remove_int(avl, 198); + avl = remove_int(avl, 401); + avl = grpc_avl_add(avl, box(316), box(365), nullptr); + avl = remove_int(avl, 843); + avl = grpc_avl_add(avl, box(541), box(367), nullptr); + avl = grpc_avl_add(avl, box(505), box(368), nullptr); + avl = remove_int(avl, 445); + avl = remove_int(avl, 256); + avl = grpc_avl_add(avl, box(232), box(371), nullptr); + avl = remove_int(avl, 577); + avl = remove_int(avl, 558); + avl = grpc_avl_add(avl, box(910), box(374), nullptr); + avl = remove_int(avl, 902); + avl = remove_int(avl, 755); + avl = remove_int(avl, 114); + avl = remove_int(avl, 438); + avl = remove_int(avl, 224); + avl = grpc_avl_add(avl, box(920), box(380), nullptr); + avl = grpc_avl_add(avl, box(655), box(381), nullptr); + avl = remove_int(avl, 557); + avl = remove_int(avl, 102); + avl = remove_int(avl, 165); + avl = grpc_avl_add(avl, box(191), box(385), nullptr); + avl = remove_int(avl, 30); + avl = grpc_avl_add(avl, box(406), box(387), nullptr); + avl = grpc_avl_add(avl, box(66), box(388), nullptr); + avl = grpc_avl_add(avl, box(87), box(389), nullptr); + avl = remove_int(avl, 7); + avl = remove_int(avl, 671); + avl = grpc_avl_add(avl, box(234), box(392), nullptr); + avl = remove_int(avl, 463); + avl = grpc_avl_add(avl, box(75), box(394), nullptr); + avl = grpc_avl_add(avl, box(487), box(395), nullptr); + avl = remove_int(avl, 203); + avl = grpc_avl_add(avl, box(711), box(397), nullptr); + avl = remove_int(avl, 291); + avl = remove_int(avl, 798); + avl = remove_int(avl, 337); + avl = grpc_avl_add(avl, box(877), box(401), nullptr); + avl = grpc_avl_add(avl, box(388), box(402), nullptr); + avl = remove_int(avl, 975); + avl = grpc_avl_add(avl, box(200), box(404), nullptr); + avl = grpc_avl_add(avl, box(408), box(405), nullptr); + avl = grpc_avl_add(avl, box(3), box(406), nullptr); + avl = grpc_avl_add(avl, box(971), box(407), nullptr); + avl = remove_int(avl, 841); + avl = remove_int(avl, 910); + avl = remove_int(avl, 74); + avl = remove_int(avl, 888); + avl = grpc_avl_add(avl, box(492), box(412), nullptr); + avl = remove_int(avl, 14); + avl = remove_int(avl, 364); + avl = grpc_avl_add(avl, box(215), box(415), nullptr); + avl = remove_int(avl, 778); + avl = remove_int(avl, 45); + avl = grpc_avl_add(avl, box(328), box(418), nullptr); + avl = grpc_avl_add(avl, box(597), box(419), nullptr); + avl = remove_int(avl, 34); + avl = grpc_avl_add(avl, box(736), box(421), nullptr); + avl = remove_int(avl, 37); + avl = grpc_avl_add(avl, box(275), box(423), nullptr); + avl = grpc_avl_add(avl, box(70), box(424), nullptr); + avl = grpc_avl_add(avl, box(771), box(425), nullptr); + avl = remove_int(avl, 536); + avl = remove_int(avl, 421); + avl = grpc_avl_add(avl, box(186), box(428), nullptr); + avl = grpc_avl_add(avl, box(788), box(429), nullptr); + avl = grpc_avl_add(avl, box(224), box(430), nullptr); + avl = remove_int(avl, 228); + avl = grpc_avl_add(avl, box(48), box(432), nullptr); + avl = grpc_avl_add(avl, box(120), box(433), nullptr); + avl = grpc_avl_add(avl, box(269), box(434), nullptr); + avl = grpc_avl_add(avl, box(904), box(435), nullptr); + avl = remove_int(avl, 699); + avl = grpc_avl_add(avl, box(340), box(437), nullptr); + avl = remove_int(avl, 276); + avl = grpc_avl_add(avl, box(591), box(439), nullptr); + avl = grpc_avl_add(avl, box(778), box(440), nullptr); + avl = remove_int(avl, 490); + avl = remove_int(avl, 973); + avl = grpc_avl_add(avl, box(294), box(443), nullptr); + avl = grpc_avl_add(avl, box(323), box(444), nullptr); + avl = remove_int(avl, 685); + avl = grpc_avl_add(avl, box(38), box(446), nullptr); + avl = grpc_avl_add(avl, box(525), box(447), nullptr); + avl = remove_int(avl, 162); + avl = grpc_avl_add(avl, box(462), box(449), nullptr); + avl = grpc_avl_add(avl, box(340), box(450), nullptr); + avl = remove_int(avl, 734); + avl = remove_int(avl, 959); + avl = grpc_avl_add(avl, box(752), box(453), nullptr); + avl = grpc_avl_add(avl, box(667), box(454), nullptr); + avl = remove_int(avl, 558); + avl = remove_int(avl, 657); + avl = grpc_avl_add(avl, box(711), box(457), nullptr); + avl = remove_int(avl, 937); + avl = grpc_avl_add(avl, box(741), box(459), nullptr); + avl = grpc_avl_add(avl, box(40), box(460), nullptr); + avl = remove_int(avl, 784); + avl = grpc_avl_add(avl, box(292), box(462), nullptr); + avl = remove_int(avl, 164); + avl = remove_int(avl, 931); + avl = remove_int(avl, 886); + avl = grpc_avl_add(avl, box(968), box(466), nullptr); + avl = remove_int(avl, 263); + avl = grpc_avl_add(avl, box(647), box(468), nullptr); + avl = grpc_avl_add(avl, box(92), box(469), nullptr); + avl = remove_int(avl, 310); + avl = grpc_avl_add(avl, box(711), box(471), nullptr); + avl = grpc_avl_add(avl, box(675), box(472), nullptr); + avl = remove_int(avl, 549); + avl = grpc_avl_add(avl, box(380), box(474), nullptr); + avl = remove_int(avl, 825); + avl = grpc_avl_add(avl, box(668), box(476), nullptr); + avl = remove_int(avl, 498); + avl = grpc_avl_add(avl, box(870), box(478), nullptr); + avl = grpc_avl_add(avl, box(391), box(479), nullptr); + avl = grpc_avl_add(avl, box(264), box(480), nullptr); + avl = remove_int(avl, 1); + avl = remove_int(avl, 849); + avl = remove_int(avl, 88); + avl = remove_int(avl, 255); + avl = remove_int(avl, 763); + avl = remove_int(avl, 831); + avl = grpc_avl_add(avl, box(508), box(487), nullptr); + avl = remove_int(avl, 849); + avl = remove_int(avl, 47); + avl = grpc_avl_add(avl, box(299), box(490), nullptr); + avl = remove_int(avl, 625); + avl = remove_int(avl, 433); + avl = remove_int(avl, 904); + avl = remove_int(avl, 761); + avl = grpc_avl_add(avl, box(33), box(495), nullptr); + avl = grpc_avl_add(avl, box(524), box(496), nullptr); + avl = remove_int(avl, 210); + avl = remove_int(avl, 299); + avl = grpc_avl_add(avl, box(823), box(499), nullptr); + avl = remove_int(avl, 479); + avl = remove_int(avl, 96); + avl = remove_int(avl, 1013); + avl = grpc_avl_add(avl, box(768), box(503), nullptr); + avl = remove_int(avl, 638); + avl = remove_int(avl, 20); + avl = grpc_avl_add(avl, box(663), box(506), nullptr); + avl = remove_int(avl, 882); + avl = grpc_avl_add(avl, box(745), box(508), nullptr); + avl = remove_int(avl, 352); + avl = grpc_avl_add(avl, box(10), box(510), nullptr); + avl = remove_int(avl, 484); + avl = grpc_avl_add(avl, box(420), box(512), nullptr); + avl = grpc_avl_add(avl, box(884), box(513), nullptr); + avl = grpc_avl_add(avl, box(993), box(514), nullptr); + avl = grpc_avl_add(avl, box(251), box(515), nullptr); + avl = remove_int(avl, 222); + avl = grpc_avl_add(avl, box(734), box(517), nullptr); + avl = grpc_avl_add(avl, box(952), box(518), nullptr); + avl = remove_int(avl, 26); + avl = remove_int(avl, 270); + avl = remove_int(avl, 481); + avl = remove_int(avl, 693); + avl = remove_int(avl, 1006); + avl = grpc_avl_add(avl, box(77), box(524), nullptr); + avl = remove_int(avl, 897); + avl = grpc_avl_add(avl, box(719), box(526), nullptr); + avl = grpc_avl_add(avl, box(622), box(527), nullptr); + avl = remove_int(avl, 28); + avl = remove_int(avl, 836); + avl = remove_int(avl, 142); + avl = grpc_avl_add(avl, box(445), box(531), nullptr); + avl = grpc_avl_add(avl, box(410), box(532), nullptr); + avl = remove_int(avl, 575); + avl = grpc_avl_add(avl, box(634), box(534), nullptr); + avl = grpc_avl_add(avl, box(906), box(535), nullptr); + avl = remove_int(avl, 649); + avl = grpc_avl_add(avl, box(813), box(537), nullptr); + avl = remove_int(avl, 702); + avl = remove_int(avl, 732); + avl = grpc_avl_add(avl, box(105), box(540), nullptr); + avl = grpc_avl_add(avl, box(867), box(541), nullptr); + avl = remove_int(avl, 964); + avl = remove_int(avl, 941); + avl = grpc_avl_add(avl, box(947), box(544), nullptr); + avl = remove_int(avl, 990); + avl = grpc_avl_add(avl, box(816), box(546), nullptr); + avl = remove_int(avl, 429); + avl = remove_int(avl, 567); + avl = remove_int(avl, 541); + avl = remove_int(avl, 583); + avl = grpc_avl_add(avl, box(57), box(551), nullptr); + avl = grpc_avl_add(avl, box(786), box(552), nullptr); + avl = grpc_avl_add(avl, box(526), box(553), nullptr); + avl = remove_int(avl, 642); + avl = remove_int(avl, 220); + avl = remove_int(avl, 840); + avl = remove_int(avl, 548); + avl = grpc_avl_add(avl, box(528), box(558), nullptr); + avl = grpc_avl_add(avl, box(749), box(559), nullptr); + avl = grpc_avl_add(avl, box(194), box(560), nullptr); + avl = remove_int(avl, 517); + avl = grpc_avl_add(avl, box(102), box(562), nullptr); + avl = remove_int(avl, 189); + avl = grpc_avl_add(avl, box(927), box(564), nullptr); + avl = remove_int(avl, 846); + avl = remove_int(avl, 130); + avl = grpc_avl_add(avl, box(694), box(567), nullptr); + avl = remove_int(avl, 750); + avl = grpc_avl_add(avl, box(357), box(569), nullptr); + avl = remove_int(avl, 431); + avl = remove_int(avl, 91); + avl = grpc_avl_add(avl, box(640), box(572), nullptr); + avl = remove_int(avl, 4); + avl = grpc_avl_add(avl, box(81), box(574), nullptr); + avl = grpc_avl_add(avl, box(595), box(575), nullptr); + avl = remove_int(avl, 444); + avl = remove_int(avl, 262); + avl = remove_int(avl, 11); + avl = grpc_avl_add(avl, box(192), box(579), nullptr); + avl = grpc_avl_add(avl, box(158), box(580), nullptr); + avl = remove_int(avl, 401); + avl = remove_int(avl, 918); + avl = grpc_avl_add(avl, box(180), box(583), nullptr); + avl = remove_int(avl, 268); + avl = grpc_avl_add(avl, box(1012), box(585), nullptr); + avl = grpc_avl_add(avl, box(90), box(586), nullptr); + avl = grpc_avl_add(avl, box(946), box(587), nullptr); + avl = remove_int(avl, 719); + avl = grpc_avl_add(avl, box(874), box(589), nullptr); + avl = grpc_avl_add(avl, box(679), box(590), nullptr); + avl = remove_int(avl, 53); + avl = remove_int(avl, 534); + avl = grpc_avl_add(avl, box(646), box(593), nullptr); + avl = grpc_avl_add(avl, box(767), box(594), nullptr); + avl = grpc_avl_add(avl, box(460), box(595), nullptr); + avl = grpc_avl_add(avl, box(852), box(596), nullptr); + avl = grpc_avl_add(avl, box(189), box(597), nullptr); + avl = remove_int(avl, 932); + avl = remove_int(avl, 366); + avl = remove_int(avl, 907); + avl = grpc_avl_add(avl, box(875), box(601), nullptr); + avl = grpc_avl_add(avl, box(434), box(602), nullptr); + avl = grpc_avl_add(avl, box(704), box(603), nullptr); + avl = grpc_avl_add(avl, box(724), box(604), nullptr); + avl = grpc_avl_add(avl, box(930), box(605), nullptr); + avl = grpc_avl_add(avl, box(1000), box(606), nullptr); + avl = remove_int(avl, 479); + avl = grpc_avl_add(avl, box(275), box(608), nullptr); + avl = remove_int(avl, 32); + avl = grpc_avl_add(avl, box(939), box(610), nullptr); + avl = remove_int(avl, 943); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(490), box(613), nullptr); + avl = remove_int(avl, 477); + avl = remove_int(avl, 414); + avl = remove_int(avl, 187); + avl = remove_int(avl, 334); + avl = grpc_avl_add(avl, box(40), box(618), nullptr); + avl = remove_int(avl, 751); + avl = grpc_avl_add(avl, box(568), box(620), nullptr); + avl = grpc_avl_add(avl, box(120), box(621), nullptr); + avl = grpc_avl_add(avl, box(617), box(622), nullptr); + avl = grpc_avl_add(avl, box(32), box(623), nullptr); + avl = remove_int(avl, 701); + avl = grpc_avl_add(avl, box(910), box(625), nullptr); + avl = remove_int(avl, 557); + avl = remove_int(avl, 361); + avl = remove_int(avl, 937); + avl = remove_int(avl, 100); + avl = remove_int(avl, 684); + avl = grpc_avl_add(avl, box(751), box(631), nullptr); + avl = remove_int(avl, 781); + avl = remove_int(avl, 469); + avl = remove_int(avl, 75); + avl = remove_int(avl, 561); + avl = grpc_avl_add(avl, box(854), box(636), nullptr); + avl = remove_int(avl, 164); + avl = remove_int(avl, 258); + avl = remove_int(avl, 315); + avl = remove_int(avl, 261); + avl = grpc_avl_add(avl, box(552), box(641), nullptr); + avl = grpc_avl_add(avl, box(6), box(642), nullptr); + avl = grpc_avl_add(avl, box(680), box(643), nullptr); + avl = remove_int(avl, 741); + avl = remove_int(avl, 309); + avl = remove_int(avl, 272); + avl = grpc_avl_add(avl, box(249), box(647), nullptr); + avl = remove_int(avl, 97); + avl = remove_int(avl, 850); + avl = grpc_avl_add(avl, box(915), box(650), nullptr); + avl = grpc_avl_add(avl, box(816), box(651), nullptr); + avl = grpc_avl_add(avl, box(45), box(652), nullptr); + avl = grpc_avl_add(avl, box(168), box(653), nullptr); + avl = remove_int(avl, 153); + avl = remove_int(avl, 239); + avl = grpc_avl_add(avl, box(684), box(656), nullptr); + avl = grpc_avl_add(avl, box(208), box(657), nullptr); + avl = grpc_avl_add(avl, box(681), box(658), nullptr); + avl = grpc_avl_add(avl, box(609), box(659), nullptr); + avl = grpc_avl_add(avl, box(645), box(660), nullptr); + avl = remove_int(avl, 799); + avl = grpc_avl_add(avl, box(955), box(662), nullptr); + avl = grpc_avl_add(avl, box(946), box(663), nullptr); + avl = grpc_avl_add(avl, box(744), box(664), nullptr); + avl = grpc_avl_add(avl, box(201), box(665), nullptr); + avl = grpc_avl_add(avl, box(136), box(666), nullptr); + avl = remove_int(avl, 357); + avl = grpc_avl_add(avl, box(974), box(668), nullptr); + avl = remove_int(avl, 485); + avl = grpc_avl_add(avl, box(1009), box(670), nullptr); + avl = grpc_avl_add(avl, box(517), box(671), nullptr); + avl = remove_int(avl, 491); + avl = grpc_avl_add(avl, box(336), box(673), nullptr); + avl = grpc_avl_add(avl, box(589), box(674), nullptr); + avl = remove_int(avl, 546); + avl = remove_int(avl, 840); + avl = remove_int(avl, 104); + avl = remove_int(avl, 347); + avl = grpc_avl_add(avl, box(801), box(679), nullptr); + avl = remove_int(avl, 799); + avl = remove_int(avl, 702); + avl = remove_int(avl, 996); + avl = remove_int(avl, 93); + avl = grpc_avl_add(avl, box(561), box(684), nullptr); + avl = grpc_avl_add(avl, box(25), box(685), nullptr); + avl = remove_int(avl, 278); + avl = grpc_avl_add(avl, box(191), box(687), nullptr); + avl = remove_int(avl, 243); + avl = remove_int(avl, 918); + avl = remove_int(avl, 449); + avl = grpc_avl_add(avl, box(19), box(691), nullptr); + avl = grpc_avl_add(avl, box(762), box(692), nullptr); + avl = grpc_avl_add(avl, box(13), box(693), nullptr); + avl = grpc_avl_add(avl, box(151), box(694), nullptr); + avl = grpc_avl_add(avl, box(152), box(695), nullptr); + avl = grpc_avl_add(avl, box(793), box(696), nullptr); + avl = remove_int(avl, 862); + avl = remove_int(avl, 890); + avl = grpc_avl_add(avl, box(687), box(699), nullptr); + avl = grpc_avl_add(avl, box(509), box(700), nullptr); + avl = grpc_avl_add(avl, box(973), box(701), nullptr); + avl = remove_int(avl, 230); + avl = grpc_avl_add(avl, box(532), box(703), nullptr); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(281), box(705), nullptr); + avl = grpc_avl_add(avl, box(867), box(706), nullptr); + avl = grpc_avl_add(avl, box(359), box(707), nullptr); + avl = remove_int(avl, 425); + avl = grpc_avl_add(avl, box(691), box(709), nullptr); + avl = grpc_avl_add(avl, box(163), box(710), nullptr); + avl = grpc_avl_add(avl, box(502), box(711), nullptr); + avl = remove_int(avl, 674); + avl = grpc_avl_add(avl, box(697), box(713), nullptr); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(968), box(715), nullptr); + avl = grpc_avl_add(avl, box(48), box(716), nullptr); + avl = remove_int(avl, 543); + avl = grpc_avl_add(avl, box(35), box(718), nullptr); + avl = grpc_avl_add(avl, box(751), box(719), nullptr); + avl = grpc_avl_add(avl, box(478), box(720), nullptr); + avl = remove_int(avl, 797); + avl = remove_int(avl, 309); + avl = grpc_avl_add(avl, box(927), box(723), nullptr); + avl = remove_int(avl, 504); + avl = grpc_avl_add(avl, box(286), box(725), nullptr); + avl = grpc_avl_add(avl, box(413), box(726), nullptr); + avl = grpc_avl_add(avl, box(599), box(727), nullptr); + avl = remove_int(avl, 105); + avl = remove_int(avl, 605); + avl = grpc_avl_add(avl, box(632), box(730), nullptr); + avl = grpc_avl_add(avl, box(133), box(731), nullptr); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(958), box(733), nullptr); + avl = grpc_avl_add(avl, box(729), box(734), nullptr); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(694), box(736), nullptr); + avl = grpc_avl_add(avl, box(505), box(737), nullptr); + avl = remove_int(avl, 63); + avl = remove_int(avl, 714); + avl = grpc_avl_add(avl, box(1002), box(740), nullptr); + avl = remove_int(avl, 211); + avl = grpc_avl_add(avl, box(765), box(742), nullptr); + avl = grpc_avl_add(avl, box(455), box(743), nullptr); + avl = remove_int(avl, 59); + avl = remove_int(avl, 224); + avl = grpc_avl_add(avl, box(586), box(746), nullptr); + avl = grpc_avl_add(avl, box(348), box(747), nullptr); + avl = remove_int(avl, 10); + avl = remove_int(avl, 484); + avl = grpc_avl_add(avl, box(968), box(750), nullptr); + avl = grpc_avl_add(avl, box(923), box(751), nullptr); + avl = remove_int(avl, 573); + avl = remove_int(avl, 617); + avl = grpc_avl_add(avl, box(812), box(754), nullptr); + avl = grpc_avl_add(avl, box(179), box(755), nullptr); + avl = remove_int(avl, 284); + avl = remove_int(avl, 157); + avl = remove_int(avl, 177); + avl = remove_int(avl, 896); + avl = grpc_avl_add(avl, box(649), box(760), nullptr); + avl = grpc_avl_add(avl, box(927), box(761), nullptr); + avl = grpc_avl_add(avl, box(454), box(762), nullptr); + avl = grpc_avl_add(avl, box(217), box(763), nullptr); + avl = remove_int(avl, 534); + avl = grpc_avl_add(avl, box(180), box(765), nullptr); + avl = grpc_avl_add(avl, box(319), box(766), nullptr); + avl = remove_int(avl, 92); + avl = grpc_avl_add(avl, box(483), box(768), nullptr); + avl = remove_int(avl, 504); + avl = remove_int(avl, 1017); + avl = remove_int(avl, 37); + avl = remove_int(avl, 50); + avl = grpc_avl_add(avl, box(302), box(773), nullptr); + avl = remove_int(avl, 807); + avl = grpc_avl_add(avl, box(463), box(775), nullptr); + avl = grpc_avl_add(avl, box(271), box(776), nullptr); + avl = grpc_avl_add(avl, box(644), box(777), nullptr); + avl = remove_int(avl, 618); + avl = grpc_avl_add(avl, box(166), box(779), nullptr); + avl = grpc_avl_add(avl, box(538), box(780), nullptr); + avl = remove_int(avl, 606); + avl = grpc_avl_add(avl, box(425), box(782), nullptr); + avl = remove_int(avl, 725); + avl = remove_int(avl, 383); + avl = grpc_avl_add(avl, box(155), box(785), nullptr); + avl = remove_int(avl, 889); + avl = grpc_avl_add(avl, box(653), box(787), nullptr); + avl = remove_int(avl, 386); + avl = grpc_avl_add(avl, box(142), box(789), nullptr); + avl = remove_int(avl, 107); + avl = remove_int(avl, 603); + avl = remove_int(avl, 971); + avl = grpc_avl_add(avl, box(80), box(793), nullptr); + avl = grpc_avl_add(avl, box(61), box(794), nullptr); + avl = grpc_avl_add(avl, box(693), box(795), nullptr); + avl = grpc_avl_add(avl, box(592), box(796), nullptr); + avl = grpc_avl_add(avl, box(433), box(797), nullptr); + avl = grpc_avl_add(avl, box(973), box(798), nullptr); + avl = remove_int(avl, 901); + avl = remove_int(avl, 340); + avl = remove_int(avl, 709); + avl = grpc_avl_add(avl, box(224), box(802), nullptr); + avl = remove_int(avl, 120); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(780), box(805), nullptr); + avl = grpc_avl_add(avl, box(867), box(806), nullptr); + avl = grpc_avl_add(avl, box(756), box(807), nullptr); + avl = grpc_avl_add(avl, box(583), box(808), nullptr); + avl = grpc_avl_add(avl, box(356), box(809), nullptr); + avl = grpc_avl_add(avl, box(58), box(810), nullptr); + avl = remove_int(avl, 219); + avl = grpc_avl_add(avl, box(301), box(812), nullptr); + avl = remove_int(avl, 643); + avl = remove_int(avl, 787); + avl = remove_int(avl, 583); + avl = remove_int(avl, 552); + avl = remove_int(avl, 308); + avl = remove_int(avl, 608); + avl = remove_int(avl, 363); + avl = remove_int(avl, 690); + avl = grpc_avl_add(avl, box(233), box(821), nullptr); + avl = grpc_avl_add(avl, box(479), box(822), nullptr); + avl = grpc_avl_add(avl, box(323), box(823), nullptr); + avl = grpc_avl_add(avl, box(802), box(824), nullptr); + avl = remove_int(avl, 682); + avl = remove_int(avl, 705); + avl = remove_int(avl, 487); + avl = grpc_avl_add(avl, box(530), box(828), nullptr); + avl = grpc_avl_add(avl, box(232), box(829), nullptr); + avl = remove_int(avl, 627); + avl = grpc_avl_add(avl, box(396), box(831), nullptr); + avl = grpc_avl_add(avl, box(61), box(832), nullptr); + avl = grpc_avl_add(avl, box(932), box(833), nullptr); + avl = grpc_avl_add(avl, box(108), box(834), nullptr); + avl = grpc_avl_add(avl, box(524), box(835), nullptr); + avl = remove_int(avl, 390); + avl = remove_int(avl, 307); + avl = grpc_avl_add(avl, box(722), box(838), nullptr); + avl = grpc_avl_add(avl, box(907), box(839), nullptr); + avl = remove_int(avl, 286); + avl = remove_int(avl, 337); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(973), box(843), nullptr); + avl = remove_int(avl, 930); + avl = remove_int(avl, 242); + avl = grpc_avl_add(avl, box(997), box(846), nullptr); + avl = grpc_avl_add(avl, box(689), box(847), nullptr); + avl = remove_int(avl, 318); + avl = grpc_avl_add(avl, box(703), box(849), nullptr); + avl = grpc_avl_add(avl, box(868), box(850), nullptr); + avl = grpc_avl_add(avl, box(200), box(851), nullptr); + avl = grpc_avl_add(avl, box(960), box(852), nullptr); + avl = grpc_avl_add(avl, box(80), box(853), nullptr); + avl = remove_int(avl, 113); + avl = grpc_avl_add(avl, box(135), box(855), nullptr); + avl = remove_int(avl, 529); + avl = grpc_avl_add(avl, box(366), box(857), nullptr); + avl = remove_int(avl, 272); + avl = grpc_avl_add(avl, box(921), box(859), nullptr); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(712), box(861), nullptr); + avl = remove_int(avl, 777); + avl = remove_int(avl, 505); + avl = remove_int(avl, 974); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(388), box(866), nullptr); + avl = grpc_avl_add(avl, box(29), box(867), nullptr); + avl = grpc_avl_add(avl, box(180), box(868), nullptr); + avl = grpc_avl_add(avl, box(983), box(869), nullptr); + avl = grpc_avl_add(avl, box(72), box(870), nullptr); + avl = grpc_avl_add(avl, box(693), box(871), nullptr); + avl = grpc_avl_add(avl, box(567), box(872), nullptr); + avl = remove_int(avl, 549); + avl = remove_int(avl, 351); + avl = grpc_avl_add(avl, box(1019), box(875), nullptr); + avl = remove_int(avl, 585); + avl = remove_int(avl, 294); + avl = remove_int(avl, 61); + avl = grpc_avl_add(avl, box(409), box(879), nullptr); + avl = grpc_avl_add(avl, box(984), box(880), nullptr); + avl = grpc_avl_add(avl, box(830), box(881), nullptr); + avl = remove_int(avl, 579); + avl = grpc_avl_add(avl, box(672), box(883), nullptr); + avl = remove_int(avl, 968); + + grpc_avl_unref(avl, nullptr); +} + +static void test_badcase3(void) { + grpc_avl avl; + + gpr_log(GPR_DEBUG, "test_badcase3"); + + avl = grpc_avl_create(&int_int_vtable); + avl = remove_int(avl, 624); + avl = grpc_avl_add(avl, box(59), box(2), nullptr); + avl = grpc_avl_add(avl, box(494), box(3), nullptr); + avl = grpc_avl_add(avl, box(226), box(4), nullptr); + avl = remove_int(avl, 524); + avl = grpc_avl_add(avl, box(540), box(6), nullptr); + avl = remove_int(avl, 1008); + avl = grpc_avl_add(avl, box(502), box(8), nullptr); + avl = remove_int(avl, 267); + avl = remove_int(avl, 764); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(8), box(12), nullptr); + avl = remove_int(avl, 291); + avl = remove_int(avl, 796); + avl = remove_int(avl, 1002); + avl = grpc_avl_add(avl, box(778), box(16), nullptr); + avl = remove_int(avl, 621); + avl = remove_int(avl, 891); + avl = remove_int(avl, 880); + avl = grpc_avl_add(avl, box(197), box(20), nullptr); + avl = grpc_avl_add(avl, box(441), box(21), nullptr); + avl = grpc_avl_add(avl, box(719), box(22), nullptr); + avl = remove_int(avl, 109); + avl = grpc_avl_add(avl, box(458), box(24), nullptr); + avl = remove_int(avl, 86); + avl = grpc_avl_add(avl, box(897), box(26), nullptr); + avl = grpc_avl_add(avl, box(997), box(27), nullptr); + avl = remove_int(avl, 235); + avl = remove_int(avl, 425); + avl = remove_int(avl, 186); + avl = grpc_avl_add(avl, box(887), box(31), nullptr); + avl = grpc_avl_add(avl, box(1005), box(32), nullptr); + avl = grpc_avl_add(avl, box(778), box(33), nullptr); + avl = grpc_avl_add(avl, box(575), box(34), nullptr); + avl = remove_int(avl, 966); + avl = remove_int(avl, 1015); + avl = grpc_avl_add(avl, box(486), box(37), nullptr); + avl = grpc_avl_add(avl, box(809), box(38), nullptr); + avl = grpc_avl_add(avl, box(907), box(39), nullptr); + avl = grpc_avl_add(avl, box(971), box(40), nullptr); + avl = remove_int(avl, 441); + avl = remove_int(avl, 498); + avl = grpc_avl_add(avl, box(727), box(43), nullptr); + avl = remove_int(avl, 679); + avl = remove_int(avl, 740); + avl = remove_int(avl, 532); + avl = grpc_avl_add(avl, box(805), box(47), nullptr); + avl = remove_int(avl, 64); + avl = grpc_avl_add(avl, box(362), box(49), nullptr); + avl = grpc_avl_add(avl, box(170), box(50), nullptr); + avl = grpc_avl_add(avl, box(389), box(51), nullptr); + avl = grpc_avl_add(avl, box(689), box(52), nullptr); + avl = remove_int(avl, 871); + avl = grpc_avl_add(avl, box(447), box(54), nullptr); + avl = remove_int(avl, 718); + avl = grpc_avl_add(avl, box(724), box(56), nullptr); + avl = remove_int(avl, 215); + avl = grpc_avl_add(avl, box(550), box(58), nullptr); + avl = remove_int(avl, 932); + avl = grpc_avl_add(avl, box(47), box(60), nullptr); + avl = remove_int(avl, 46); + avl = remove_int(avl, 229); + avl = grpc_avl_add(avl, box(68), box(63), nullptr); + avl = grpc_avl_add(avl, box(387), box(64), nullptr); + avl = remove_int(avl, 933); + avl = remove_int(avl, 736); + avl = remove_int(avl, 719); + avl = grpc_avl_add(avl, box(150), box(68), nullptr); + avl = remove_int(avl, 875); + avl = remove_int(avl, 298); + avl = grpc_avl_add(avl, box(991), box(71), nullptr); + avl = remove_int(avl, 705); + avl = grpc_avl_add(avl, box(197), box(73), nullptr); + avl = grpc_avl_add(avl, box(101), box(74), nullptr); + avl = remove_int(avl, 436); + avl = grpc_avl_add(avl, box(755), box(76), nullptr); + avl = grpc_avl_add(avl, box(727), box(77), nullptr); + avl = remove_int(avl, 309); + avl = remove_int(avl, 253); + avl = grpc_avl_add(avl, box(203), box(80), nullptr); + avl = remove_int(avl, 231); + avl = grpc_avl_add(avl, box(461), box(82), nullptr); + avl = remove_int(avl, 316); + avl = remove_int(avl, 493); + avl = grpc_avl_add(avl, box(184), box(85), nullptr); + avl = remove_int(avl, 737); + avl = grpc_avl_add(avl, box(790), box(87), nullptr); + avl = grpc_avl_add(avl, box(335), box(88), nullptr); + avl = remove_int(avl, 649); + avl = grpc_avl_add(avl, box(69), box(90), nullptr); + avl = remove_int(avl, 585); + avl = remove_int(avl, 543); + avl = grpc_avl_add(avl, box(784), box(93), nullptr); + avl = grpc_avl_add(avl, box(60), box(94), nullptr); + avl = grpc_avl_add(avl, box(525), box(95), nullptr); + avl = grpc_avl_add(avl, box(177), box(96), nullptr); + avl = grpc_avl_add(avl, box(178), box(97), nullptr); + avl = grpc_avl_add(avl, box(683), box(98), nullptr); + avl = grpc_avl_add(avl, box(226), box(99), nullptr); + avl = grpc_avl_add(avl, box(662), box(100), nullptr); + avl = remove_int(avl, 944); + avl = grpc_avl_add(avl, box(562), box(102), nullptr); + avl = grpc_avl_add(avl, box(793), box(103), nullptr); + avl = remove_int(avl, 673); + avl = grpc_avl_add(avl, box(310), box(105), nullptr); + avl = remove_int(avl, 479); + avl = remove_int(avl, 543); + avl = remove_int(avl, 159); + avl = remove_int(avl, 850); + avl = grpc_avl_add(avl, box(318), box(110), nullptr); + avl = grpc_avl_add(avl, box(483), box(111), nullptr); + avl = grpc_avl_add(avl, box(84), box(112), nullptr); + avl = remove_int(avl, 109); + avl = grpc_avl_add(avl, box(132), box(114), nullptr); + avl = grpc_avl_add(avl, box(920), box(115), nullptr); + avl = remove_int(avl, 746); + avl = grpc_avl_add(avl, box(145), box(117), nullptr); + avl = grpc_avl_add(avl, box(526), box(118), nullptr); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(332), box(120), nullptr); + avl = grpc_avl_add(avl, box(918), box(121), nullptr); + avl = remove_int(avl, 339); + avl = grpc_avl_add(avl, box(809), box(123), nullptr); + avl = grpc_avl_add(avl, box(742), box(124), nullptr); + avl = grpc_avl_add(avl, box(718), box(125), nullptr); + avl = remove_int(avl, 988); + avl = remove_int(avl, 531); + avl = remove_int(avl, 840); + avl = grpc_avl_add(avl, box(816), box(129), nullptr); + avl = grpc_avl_add(avl, box(976), box(130), nullptr); + avl = remove_int(avl, 743); + avl = remove_int(avl, 528); + avl = remove_int(avl, 982); + avl = grpc_avl_add(avl, box(803), box(134), nullptr); + avl = grpc_avl_add(avl, box(205), box(135), nullptr); + avl = grpc_avl_add(avl, box(584), box(136), nullptr); + avl = remove_int(avl, 923); + avl = remove_int(avl, 538); + avl = remove_int(avl, 398); + avl = remove_int(avl, 320); + avl = remove_int(avl, 292); + avl = grpc_avl_add(avl, box(270), box(142), nullptr); + avl = grpc_avl_add(avl, box(333), box(143), nullptr); + avl = remove_int(avl, 439); + avl = grpc_avl_add(avl, box(35), box(145), nullptr); + avl = grpc_avl_add(avl, box(837), box(146), nullptr); + avl = remove_int(avl, 65); + avl = remove_int(avl, 642); + avl = remove_int(avl, 371); + avl = remove_int(avl, 140); + avl = remove_int(avl, 533); + avl = remove_int(avl, 676); + avl = grpc_avl_add(avl, box(624), box(153), nullptr); + avl = grpc_avl_add(avl, box(116), box(154), nullptr); + avl = grpc_avl_add(avl, box(446), box(155), nullptr); + avl = remove_int(avl, 91); + avl = remove_int(avl, 721); + avl = remove_int(avl, 537); + avl = grpc_avl_add(avl, box(448), box(159), nullptr); + avl = remove_int(avl, 155); + avl = remove_int(avl, 344); + avl = remove_int(avl, 237); + avl = grpc_avl_add(avl, box(309), box(163), nullptr); + avl = grpc_avl_add(avl, box(434), box(164), nullptr); + avl = grpc_avl_add(avl, box(277), box(165), nullptr); + avl = remove_int(avl, 233); + avl = grpc_avl_add(avl, box(275), box(167), nullptr); + avl = grpc_avl_add(avl, box(218), box(168), nullptr); + avl = grpc_avl_add(avl, box(76), box(169), nullptr); + avl = grpc_avl_add(avl, box(898), box(170), nullptr); + avl = remove_int(avl, 771); + avl = grpc_avl_add(avl, box(237), box(172), nullptr); + avl = remove_int(avl, 327); + avl = grpc_avl_add(avl, box(499), box(174), nullptr); + avl = remove_int(avl, 727); + avl = remove_int(avl, 234); + avl = remove_int(avl, 623); + avl = remove_int(avl, 458); + avl = remove_int(avl, 326); + avl = remove_int(avl, 589); + avl = grpc_avl_add(avl, box(442), box(181), nullptr); + avl = remove_int(avl, 389); + avl = grpc_avl_add(avl, box(708), box(183), nullptr); + avl = grpc_avl_add(avl, box(594), box(184), nullptr); + avl = grpc_avl_add(avl, box(942), box(185), nullptr); + avl = grpc_avl_add(avl, box(282), box(186), nullptr); + avl = remove_int(avl, 434); + avl = remove_int(avl, 134); + avl = remove_int(avl, 270); + avl = remove_int(avl, 512); + avl = remove_int(avl, 265); + avl = remove_int(avl, 21); + avl = remove_int(avl, 193); + avl = remove_int(avl, 797); + avl = remove_int(avl, 347); + avl = grpc_avl_add(avl, box(99), box(196), nullptr); + avl = grpc_avl_add(avl, box(161), box(197), nullptr); + avl = remove_int(avl, 484); + avl = grpc_avl_add(avl, box(72), box(199), nullptr); + avl = remove_int(avl, 629); + avl = grpc_avl_add(avl, box(522), box(201), nullptr); + avl = remove_int(avl, 679); + avl = grpc_avl_add(avl, box(407), box(203), nullptr); + avl = remove_int(avl, 693); + avl = grpc_avl_add(avl, box(424), box(205), nullptr); + avl = grpc_avl_add(avl, box(651), box(206), nullptr); + avl = grpc_avl_add(avl, box(927), box(207), nullptr); + avl = remove_int(avl, 553); + avl = grpc_avl_add(avl, box(128), box(209), nullptr); + avl = grpc_avl_add(avl, box(616), box(210), nullptr); + avl = grpc_avl_add(avl, box(690), box(211), nullptr); + avl = remove_int(avl, 241); + avl = remove_int(avl, 179); + avl = grpc_avl_add(avl, box(697), box(214), nullptr); + avl = remove_int(avl, 779); + avl = grpc_avl_add(avl, box(241), box(216), nullptr); + avl = remove_int(avl, 190); + avl = remove_int(avl, 210); + avl = grpc_avl_add(avl, box(711), box(219), nullptr); + avl = remove_int(avl, 251); + avl = remove_int(avl, 61); + avl = grpc_avl_add(avl, box(800), box(222), nullptr); + avl = remove_int(avl, 551); + avl = grpc_avl_add(avl, box(61), box(224), nullptr); + avl = grpc_avl_add(avl, box(656), box(225), nullptr); + avl = remove_int(avl, 130); + avl = remove_int(avl, 368); + avl = remove_int(avl, 150); + avl = remove_int(avl, 73); + avl = grpc_avl_add(avl, box(799), box(230), nullptr); + avl = grpc_avl_add(avl, box(125), box(231), nullptr); + avl = remove_int(avl, 107); + avl = grpc_avl_add(avl, box(938), box(233), nullptr); + avl = grpc_avl_add(avl, box(914), box(234), nullptr); + avl = grpc_avl_add(avl, box(197), box(235), nullptr); + avl = remove_int(avl, 736); + avl = grpc_avl_add(avl, box(20), box(237), nullptr); + avl = remove_int(avl, 224); + avl = remove_int(avl, 841); + avl = grpc_avl_add(avl, box(226), box(240), nullptr); + avl = remove_int(avl, 963); + avl = remove_int(avl, 796); + avl = remove_int(avl, 728); + avl = grpc_avl_add(avl, box(855), box(244), nullptr); + avl = grpc_avl_add(avl, box(769), box(245), nullptr); + avl = grpc_avl_add(avl, box(631), box(246), nullptr); + avl = remove_int(avl, 648); + avl = grpc_avl_add(avl, box(187), box(248), nullptr); + avl = grpc_avl_add(avl, box(31), box(249), nullptr); + avl = remove_int(avl, 163); + avl = grpc_avl_add(avl, box(218), box(251), nullptr); + avl = grpc_avl_add(avl, box(488), box(252), nullptr); + avl = grpc_avl_add(avl, box(387), box(253), nullptr); + avl = grpc_avl_add(avl, box(809), box(254), nullptr); + avl = grpc_avl_add(avl, box(997), box(255), nullptr); + avl = remove_int(avl, 678); + avl = grpc_avl_add(avl, box(368), box(257), nullptr); + avl = grpc_avl_add(avl, box(220), box(258), nullptr); + avl = grpc_avl_add(avl, box(373), box(259), nullptr); + avl = remove_int(avl, 874); + avl = remove_int(avl, 682); + avl = remove_int(avl, 1014); + avl = remove_int(avl, 195); + avl = grpc_avl_add(avl, box(868), box(264), nullptr); + avl = remove_int(avl, 254); + avl = remove_int(avl, 456); + avl = grpc_avl_add(avl, box(906), box(267), nullptr); + avl = remove_int(avl, 711); + avl = grpc_avl_add(avl, box(632), box(269), nullptr); + avl = remove_int(avl, 474); + avl = grpc_avl_add(avl, box(508), box(271), nullptr); + avl = grpc_avl_add(avl, box(518), box(272), nullptr); + avl = remove_int(avl, 579); + avl = remove_int(avl, 948); + avl = grpc_avl_add(avl, box(789), box(275), nullptr); + avl = grpc_avl_add(avl, box(48), box(276), nullptr); + avl = grpc_avl_add(avl, box(256), box(277), nullptr); + avl = grpc_avl_add(avl, box(754), box(278), nullptr); + avl = remove_int(avl, 215); + avl = grpc_avl_add(avl, box(679), box(280), nullptr); + avl = grpc_avl_add(avl, box(606), box(281), nullptr); + avl = remove_int(avl, 941); + avl = remove_int(avl, 31); + avl = grpc_avl_add(avl, box(758), box(284), nullptr); + avl = remove_int(avl, 101); + avl = grpc_avl_add(avl, box(244), box(286), nullptr); + avl = grpc_avl_add(avl, box(337), box(287), nullptr); + avl = grpc_avl_add(avl, box(461), box(288), nullptr); + avl = remove_int(avl, 476); + avl = grpc_avl_add(avl, box(845), box(290), nullptr); + avl = remove_int(avl, 160); + avl = grpc_avl_add(avl, box(690), box(292), nullptr); + avl = remove_int(avl, 931); + avl = grpc_avl_add(avl, box(869), box(294), nullptr); + avl = grpc_avl_add(avl, box(1019), box(295), nullptr); + avl = remove_int(avl, 591); + avl = remove_int(avl, 635); + avl = remove_int(avl, 67); + avl = grpc_avl_add(avl, box(113), box(299), nullptr); + avl = remove_int(avl, 305); + avl = grpc_avl_add(avl, box(10), box(301), nullptr); + avl = remove_int(avl, 823); + avl = remove_int(avl, 288); + avl = remove_int(avl, 239); + avl = grpc_avl_add(avl, box(646), box(305), nullptr); + avl = grpc_avl_add(avl, box(1006), box(306), nullptr); + avl = grpc_avl_add(avl, box(954), box(307), nullptr); + avl = grpc_avl_add(avl, box(199), box(308), nullptr); + avl = grpc_avl_add(avl, box(69), box(309), nullptr); + avl = grpc_avl_add(avl, box(984), box(310), nullptr); + avl = remove_int(avl, 568); + avl = remove_int(avl, 666); + avl = remove_int(avl, 37); + avl = grpc_avl_add(avl, box(845), box(314), nullptr); + avl = remove_int(avl, 535); + avl = remove_int(avl, 365); + avl = remove_int(avl, 676); + avl = remove_int(avl, 892); + avl = remove_int(avl, 425); + avl = remove_int(avl, 704); + avl = remove_int(avl, 168); + avl = grpc_avl_add(avl, box(853), box(322), nullptr); + avl = grpc_avl_add(avl, box(335), box(323), nullptr); + avl = grpc_avl_add(avl, box(961), box(324), nullptr); + avl = grpc_avl_add(avl, box(73), box(325), nullptr); + avl = remove_int(avl, 469); + avl = grpc_avl_add(avl, box(449), box(327), nullptr); + avl = remove_int(avl, 821); + avl = grpc_avl_add(avl, box(845), box(329), nullptr); + avl = remove_int(avl, 637); + avl = grpc_avl_add(avl, box(769), box(331), nullptr); + avl = grpc_avl_add(avl, box(901), box(332), nullptr); + avl = remove_int(avl, 142); + avl = remove_int(avl, 361); + avl = remove_int(avl, 876); + avl = grpc_avl_add(avl, box(614), box(336), nullptr); + avl = grpc_avl_add(avl, box(729), box(337), nullptr); + avl = remove_int(avl, 120); + avl = remove_int(avl, 473); + avl = remove_int(avl, 445); + avl = grpc_avl_add(avl, box(978), box(341), nullptr); + avl = grpc_avl_add(avl, box(164), box(342), nullptr); + avl = grpc_avl_add(avl, box(1), box(343), nullptr); + avl = remove_int(avl, 890); + avl = grpc_avl_add(avl, box(605), box(345), nullptr); + avl = grpc_avl_add(avl, box(178), box(346), nullptr); + avl = grpc_avl_add(avl, box(481), box(347), nullptr); + avl = grpc_avl_add(avl, box(772), box(348), nullptr); + avl = remove_int(avl, 824); + avl = remove_int(avl, 167); + avl = remove_int(avl, 151); + avl = grpc_avl_add(avl, box(698), box(352), nullptr); + avl = grpc_avl_add(avl, box(202), box(353), nullptr); + avl = grpc_avl_add(avl, box(921), box(354), nullptr); + avl = grpc_avl_add(avl, box(875), box(355), nullptr); + avl = remove_int(avl, 197); + avl = remove_int(avl, 232); + avl = grpc_avl_add(avl, box(209), box(358), nullptr); + avl = remove_int(avl, 324); + avl = remove_int(avl, 56); + avl = remove_int(avl, 579); + avl = remove_int(avl, 255); + avl = remove_int(avl, 290); + avl = grpc_avl_add(avl, box(661), box(364), nullptr); + avl = grpc_avl_add(avl, box(113), box(365), nullptr); + avl = remove_int(avl, 767); + avl = grpc_avl_add(avl, box(586), box(367), nullptr); + avl = grpc_avl_add(avl, box(121), box(368), nullptr); + avl = remove_int(avl, 235); + avl = remove_int(avl, 439); + avl = remove_int(avl, 360); + avl = grpc_avl_add(avl, box(916), box(372), nullptr); + avl = remove_int(avl, 999); + avl = grpc_avl_add(avl, box(825), box(374), nullptr); + avl = grpc_avl_add(avl, box(177), box(375), nullptr); + avl = remove_int(avl, 204); + avl = remove_int(avl, 92); + avl = grpc_avl_add(avl, box(794), box(378), nullptr); + avl = grpc_avl_add(avl, box(463), box(379), nullptr); + avl = grpc_avl_add(avl, box(472), box(380), nullptr); + avl = remove_int(avl, 235); + avl = grpc_avl_add(avl, box(840), box(382), nullptr); + avl = remove_int(avl, 657); + avl = grpc_avl_add(avl, box(586), box(384), nullptr); + avl = grpc_avl_add(avl, box(979), box(385), nullptr); + avl = remove_int(avl, 979); + avl = grpc_avl_add(avl, box(639), box(387), nullptr); + avl = remove_int(avl, 907); + avl = remove_int(avl, 973); + avl = grpc_avl_add(avl, box(913), box(390), nullptr); + avl = grpc_avl_add(avl, box(566), box(391), nullptr); + avl = grpc_avl_add(avl, box(883), box(392), nullptr); + avl = grpc_avl_add(avl, box(552), box(393), nullptr); + avl = grpc_avl_add(avl, box(16), box(394), nullptr); + avl = remove_int(avl, 60); + avl = grpc_avl_add(avl, box(567), box(396), nullptr); + avl = grpc_avl_add(avl, box(705), box(397), nullptr); + avl = grpc_avl_add(avl, box(94), box(398), nullptr); + avl = remove_int(avl, 321); + avl = grpc_avl_add(avl, box(207), box(400), nullptr); + avl = grpc_avl_add(avl, box(682), box(401), nullptr); + avl = grpc_avl_add(avl, box(592), box(402), nullptr); + avl = grpc_avl_add(avl, box(10), box(403), nullptr); + avl = remove_int(avl, 911); + avl = remove_int(avl, 161); + avl = grpc_avl_add(avl, box(86), box(406), nullptr); + avl = remove_int(avl, 893); + avl = remove_int(avl, 362); + avl = grpc_avl_add(avl, box(599), box(409), nullptr); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(867), box(411), nullptr); + avl = remove_int(avl, 955); + avl = grpc_avl_add(avl, box(341), box(413), nullptr); + avl = grpc_avl_add(avl, box(887), box(414), nullptr); + avl = remove_int(avl, 706); + avl = grpc_avl_add(avl, box(939), box(416), nullptr); + avl = remove_int(avl, 233); + avl = remove_int(avl, 662); + avl = remove_int(avl, 984); + avl = remove_int(avl, 203); + avl = grpc_avl_add(avl, box(326), box(421), nullptr); + avl = remove_int(avl, 848); + avl = grpc_avl_add(avl, box(235), box(423), nullptr); + avl = remove_int(avl, 617); + avl = grpc_avl_add(avl, box(565), box(425), nullptr); + avl = remove_int(avl, 469); + avl = grpc_avl_add(avl, box(988), box(427), nullptr); + avl = remove_int(avl, 957); + avl = grpc_avl_add(avl, box(426), box(429), nullptr); + avl = remove_int(avl, 967); + avl = grpc_avl_add(avl, box(890), box(431), nullptr); + avl = grpc_avl_add(avl, box(473), box(432), nullptr); + avl = remove_int(avl, 367); + avl = remove_int(avl, 344); + avl = remove_int(avl, 660); + avl = remove_int(avl, 448); + avl = remove_int(avl, 837); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(459), box(439), nullptr); + avl = remove_int(avl, 882); + avl = remove_int(avl, 782); + avl = grpc_avl_add(avl, box(408), box(442), nullptr); + avl = grpc_avl_add(avl, box(728), box(443), nullptr); + avl = remove_int(avl, 27); + avl = grpc_avl_add(avl, box(137), box(445), nullptr); + avl = grpc_avl_add(avl, box(239), box(446), nullptr); + avl = remove_int(avl, 854); + avl = grpc_avl_add(avl, box(104), box(448), nullptr); + avl = grpc_avl_add(avl, box(823), box(449), nullptr); + avl = grpc_avl_add(avl, box(524), box(450), nullptr); + avl = grpc_avl_add(avl, box(995), box(451), nullptr); + avl = remove_int(avl, 422); + avl = remove_int(avl, 220); + avl = grpc_avl_add(avl, box(856), box(454), nullptr); + avl = remove_int(avl, 332); + avl = grpc_avl_add(avl, box(679), box(456), nullptr); + avl = remove_int(avl, 18); + avl = grpc_avl_add(avl, box(837), box(458), nullptr); + avl = remove_int(avl, 405); + avl = remove_int(avl, 877); + avl = remove_int(avl, 835); + avl = grpc_avl_add(avl, box(547), box(462), nullptr); + avl = remove_int(avl, 805); + avl = remove_int(avl, 862); + avl = grpc_avl_add(avl, box(75), box(465), nullptr); + avl = remove_int(avl, 41); + avl = grpc_avl_add(avl, box(310), box(467), nullptr); + avl = remove_int(avl, 855); + avl = grpc_avl_add(avl, box(20), box(469), nullptr); + avl = remove_int(avl, 186); + avl = remove_int(avl, 378); + avl = remove_int(avl, 442); + avl = remove_int(avl, 930); + avl = grpc_avl_add(avl, box(118), box(474), nullptr); + avl = grpc_avl_add(avl, box(96), box(475), nullptr); + avl = remove_int(avl, 854); + avl = grpc_avl_add(avl, box(65), box(477), nullptr); + avl = grpc_avl_add(avl, box(573), box(478), nullptr); + avl = grpc_avl_add(avl, box(4), box(479), nullptr); + avl = grpc_avl_add(avl, box(451), box(480), nullptr); + avl = grpc_avl_add(avl, box(774), box(481), nullptr); + avl = grpc_avl_add(avl, box(126), box(482), nullptr); + avl = remove_int(avl, 956); + avl = remove_int(avl, 591); + avl = remove_int(avl, 644); + avl = grpc_avl_add(avl, box(304), box(486), nullptr); + avl = remove_int(avl, 620); + avl = remove_int(avl, 394); + avl = grpc_avl_add(avl, box(1002), box(489), nullptr); + avl = grpc_avl_add(avl, box(837), box(490), nullptr); + avl = remove_int(avl, 485); + avl = grpc_avl_add(avl, box(1005), box(492), nullptr); + avl = remove_int(avl, 21); + avl = grpc_avl_add(avl, box(396), box(494), nullptr); + avl = remove_int(avl, 966); + avl = grpc_avl_add(avl, box(105), box(496), nullptr); + avl = grpc_avl_add(avl, box(316), box(497), nullptr); + avl = remove_int(avl, 776); + avl = grpc_avl_add(avl, box(188), box(499), nullptr); + avl = remove_int(avl, 200); + avl = grpc_avl_add(avl, box(98), box(501), nullptr); + avl = grpc_avl_add(avl, box(831), box(502), nullptr); + avl = grpc_avl_add(avl, box(227), box(503), nullptr); + avl = grpc_avl_add(avl, box(220), box(504), nullptr); + avl = remove_int(avl, 715); + avl = remove_int(avl, 279); + avl = grpc_avl_add(avl, box(701), box(507), nullptr); + avl = grpc_avl_add(avl, box(726), box(508), nullptr); + avl = grpc_avl_add(avl, box(815), box(509), nullptr); + avl = grpc_avl_add(avl, box(749), box(510), nullptr); + avl = remove_int(avl, 946); + avl = remove_int(avl, 449); + avl = remove_int(avl, 62); + avl = remove_int(avl, 487); + avl = grpc_avl_add(avl, box(545), box(515), nullptr); + avl = remove_int(avl, 59); + avl = grpc_avl_add(avl, box(168), box(517), nullptr); + avl = remove_int(avl, 337); + avl = grpc_avl_add(avl, box(69), box(519), nullptr); + avl = remove_int(avl, 600); + avl = grpc_avl_add(avl, box(591), box(521), nullptr); + avl = grpc_avl_add(avl, box(960), box(522), nullptr); + avl = grpc_avl_add(avl, box(116), box(523), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(760), box(525), nullptr); + avl = grpc_avl_add(avl, box(664), box(526), nullptr); + avl = grpc_avl_add(avl, box(547), box(527), nullptr); + avl = remove_int(avl, 922); + avl = grpc_avl_add(avl, box(290), box(529), nullptr); + avl = grpc_avl_add(avl, box(859), box(530), nullptr); + avl = grpc_avl_add(avl, box(49), box(531), nullptr); + avl = remove_int(avl, 455); + avl = remove_int(avl, 786); + avl = grpc_avl_add(avl, box(613), box(534), nullptr); + avl = grpc_avl_add(avl, box(326), box(535), nullptr); + avl = remove_int(avl, 615); + avl = grpc_avl_add(avl, box(45), box(537), nullptr); + avl = grpc_avl_add(avl, box(162), box(538), nullptr); + avl = grpc_avl_add(avl, box(189), box(539), nullptr); + avl = remove_int(avl, 68); + avl = remove_int(avl, 846); + avl = grpc_avl_add(avl, box(608), box(542), nullptr); + avl = remove_int(avl, 821); + avl = grpc_avl_add(avl, box(978), box(544), nullptr); + avl = grpc_avl_add(avl, box(892), box(545), nullptr); + avl = remove_int(avl, 924); + avl = grpc_avl_add(avl, box(708), box(547), nullptr); + avl = remove_int(avl, 135); + avl = remove_int(avl, 124); + avl = grpc_avl_add(avl, box(301), box(550), nullptr); + avl = grpc_avl_add(avl, box(939), box(551), nullptr); + avl = grpc_avl_add(avl, box(344), box(552), nullptr); + avl = remove_int(avl, 443); + avl = remove_int(avl, 122); + avl = grpc_avl_add(avl, box(636), box(555), nullptr); + avl = remove_int(avl, 558); + avl = grpc_avl_add(avl, box(923), box(557), nullptr); + avl = remove_int(avl, 827); + avl = grpc_avl_add(avl, box(649), box(559), nullptr); + avl = grpc_avl_add(avl, box(808), box(560), nullptr); + avl = remove_int(avl, 570); + avl = remove_int(avl, 434); + avl = grpc_avl_add(avl, box(40), box(563), nullptr); + avl = grpc_avl_add(avl, box(725), box(564), nullptr); + avl = remove_int(avl, 295); + avl = remove_int(avl, 615); + avl = remove_int(avl, 919); + avl = remove_int(avl, 170); + avl = remove_int(avl, 442); + avl = remove_int(avl, 971); + avl = grpc_avl_add(avl, box(483), box(571), nullptr); + avl = grpc_avl_add(avl, box(512), box(572), nullptr); + avl = remove_int(avl, 648); + avl = remove_int(avl, 78); + avl = remove_int(avl, 72); + avl = remove_int(avl, 790); + avl = remove_int(avl, 571); + avl = grpc_avl_add(avl, box(898), box(578), nullptr); + avl = remove_int(avl, 770); + avl = remove_int(avl, 776); + avl = grpc_avl_add(avl, box(602), box(581), nullptr); + avl = remove_int(avl, 251); + avl = grpc_avl_add(avl, box(303), box(583), nullptr); + avl = remove_int(avl, 837); + avl = grpc_avl_add(avl, box(714), box(585), nullptr); + avl = remove_int(avl, 800); + avl = grpc_avl_add(avl, box(266), box(587), nullptr); + avl = grpc_avl_add(avl, box(555), box(588), nullptr); + avl = remove_int(avl, 604); + avl = remove_int(avl, 163); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(296), box(592), nullptr); + avl = remove_int(avl, 129); + avl = grpc_avl_add(avl, box(656), box(594), nullptr); + avl = remove_int(avl, 769); + avl = remove_int(avl, 941); + avl = grpc_avl_add(avl, box(775), box(597), nullptr); + avl = grpc_avl_add(avl, box(846), box(598), nullptr); + avl = remove_int(avl, 591); + avl = remove_int(avl, 801); + avl = remove_int(avl, 419); + avl = remove_int(avl, 455); + avl = grpc_avl_add(avl, box(866), box(603), nullptr); + avl = grpc_avl_add(avl, box(575), box(604), nullptr); + avl = grpc_avl_add(avl, box(620), box(605), nullptr); + avl = remove_int(avl, 100); + avl = remove_int(avl, 667); + avl = grpc_avl_add(avl, box(138), box(608), nullptr); + avl = grpc_avl_add(avl, box(566), box(609), nullptr); + avl = grpc_avl_add(avl, box(673), box(610), nullptr); + avl = grpc_avl_add(avl, box(178), box(611), nullptr); + avl = remove_int(avl, 659); + avl = grpc_avl_add(avl, box(759), box(613), nullptr); + avl = grpc_avl_add(avl, box(1008), box(614), nullptr); + avl = remove_int(avl, 116); + avl = grpc_avl_add(avl, box(608), box(616), nullptr); + avl = grpc_avl_add(avl, box(339), box(617), nullptr); + avl = grpc_avl_add(avl, box(197), box(618), nullptr); + avl = remove_int(avl, 25); + avl = remove_int(avl, 628); + avl = grpc_avl_add(avl, box(487), box(621), nullptr); + avl = remove_int(avl, 739); + avl = remove_int(avl, 100); + avl = remove_int(avl, 928); + avl = grpc_avl_add(avl, box(647), box(625), nullptr); + avl = remove_int(avl, 978); + avl = remove_int(avl, 143); + avl = remove_int(avl, 755); + avl = grpc_avl_add(avl, box(71), box(629), nullptr); + avl = remove_int(avl, 205); + avl = grpc_avl_add(avl, box(501), box(631), nullptr); + avl = remove_int(avl, 723); + avl = remove_int(avl, 852); + avl = remove_int(avl, 1021); + avl = remove_int(avl, 670); + avl = remove_int(avl, 500); + avl = grpc_avl_add(avl, box(330), box(637), nullptr); + avl = remove_int(avl, 264); + avl = grpc_avl_add(avl, box(69), box(639), nullptr); + avl = remove_int(avl, 73); + avl = grpc_avl_add(avl, box(745), box(641), nullptr); + avl = remove_int(avl, 518); + avl = remove_int(avl, 641); + avl = remove_int(avl, 768); + avl = grpc_avl_add(avl, box(988), box(645), nullptr); + avl = grpc_avl_add(avl, box(899), box(646), nullptr); + avl = remove_int(avl, 763); + avl = remove_int(avl, 281); + avl = remove_int(avl, 496); + avl = grpc_avl_add(avl, box(445), box(650), nullptr); + avl = remove_int(avl, 905); + avl = grpc_avl_add(avl, box(275), box(652), nullptr); + avl = grpc_avl_add(avl, box(137), box(653), nullptr); + avl = remove_int(avl, 642); + avl = grpc_avl_add(avl, box(708), box(655), nullptr); + avl = remove_int(avl, 922); + avl = grpc_avl_add(avl, box(743), box(657), nullptr); + avl = remove_int(avl, 295); + avl = remove_int(avl, 665); + avl = remove_int(avl, 48); + avl = grpc_avl_add(avl, box(1012), box(661), nullptr); + avl = remove_int(avl, 71); + avl = remove_int(avl, 523); + avl = grpc_avl_add(avl, box(319), box(664), nullptr); + avl = remove_int(avl, 632); + avl = grpc_avl_add(avl, box(137), box(666), nullptr); + avl = grpc_avl_add(avl, box(686), box(667), nullptr); + avl = grpc_avl_add(avl, box(724), box(668), nullptr); + avl = grpc_avl_add(avl, box(952), box(669), nullptr); + avl = grpc_avl_add(avl, box(5), box(670), nullptr); + avl = remove_int(avl, 35); + avl = grpc_avl_add(avl, box(43), box(672), nullptr); + avl = grpc_avl_add(avl, box(320), box(673), nullptr); + avl = grpc_avl_add(avl, box(115), box(674), nullptr); + avl = remove_int(avl, 377); + avl = remove_int(avl, 591); + avl = remove_int(avl, 87); + avl = remove_int(avl, 93); + avl = grpc_avl_add(avl, box(1016), box(679), nullptr); + avl = grpc_avl_add(avl, box(605), box(680), nullptr); + avl = grpc_avl_add(avl, box(152), box(681), nullptr); + avl = grpc_avl_add(avl, box(113), box(682), nullptr); + avl = remove_int(avl, 131); + avl = remove_int(avl, 637); + avl = grpc_avl_add(avl, box(156), box(685), nullptr); + avl = remove_int(avl, 696); + avl = grpc_avl_add(avl, box(546), box(687), nullptr); + avl = remove_int(avl, 970); + avl = remove_int(avl, 53); + avl = remove_int(avl, 827); + avl = remove_int(avl, 224); + avl = remove_int(avl, 796); + avl = remove_int(avl, 34); + avl = remove_int(avl, 922); + avl = remove_int(avl, 277); + avl = remove_int(avl, 650); + avl = remove_int(avl, 222); + avl = remove_int(avl, 244); + avl = remove_int(avl, 576); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(500), box(701), nullptr); + avl = remove_int(avl, 924); + avl = grpc_avl_add(avl, box(825), box(703), nullptr); + avl = remove_int(avl, 888); + avl = remove_int(avl, 931); + avl = grpc_avl_add(avl, box(285), box(706), nullptr); + avl = remove_int(avl, 62); + avl = remove_int(avl, 444); + avl = remove_int(avl, 946); + avl = grpc_avl_add(avl, box(122), box(710), nullptr); + avl = grpc_avl_add(avl, box(846), box(711), nullptr); + avl = remove_int(avl, 628); + avl = grpc_avl_add(avl, box(511), box(713), nullptr); + avl = grpc_avl_add(avl, box(398), box(714), nullptr); + avl = remove_int(avl, 730); + avl = grpc_avl_add(avl, box(797), box(716), nullptr); + avl = remove_int(avl, 897); + avl = remove_int(avl, 228); + avl = remove_int(avl, 544); + avl = remove_int(avl, 552); + avl = remove_int(avl, 783); + avl = remove_int(avl, 583); + avl = remove_int(avl, 894); + avl = remove_int(avl, 942); + avl = grpc_avl_add(avl, box(346), box(725), nullptr); + avl = grpc_avl_add(avl, box(1015), box(726), nullptr); + avl = remove_int(avl, 813); + avl = grpc_avl_add(avl, box(213), box(728), nullptr); + avl = remove_int(avl, 468); + avl = remove_int(avl, 365); + avl = remove_int(avl, 399); + avl = grpc_avl_add(avl, box(380), box(732), nullptr); + avl = remove_int(avl, 835); + avl = remove_int(avl, 970); + avl = grpc_avl_add(avl, box(700), box(735), nullptr); + avl = grpc_avl_add(avl, box(807), box(736), nullptr); + avl = remove_int(avl, 312); + avl = remove_int(avl, 282); + avl = remove_int(avl, 370); + avl = remove_int(avl, 999); + avl = remove_int(avl, 241); + avl = remove_int(avl, 884); + avl = grpc_avl_add(avl, box(587), box(743), nullptr); + avl = grpc_avl_add(avl, box(332), box(744), nullptr); + avl = remove_int(avl, 686); + avl = remove_int(avl, 206); + avl = remove_int(avl, 835); + avl = grpc_avl_add(avl, box(334), box(748), nullptr); + avl = remove_int(avl, 171); + avl = grpc_avl_add(avl, box(1002), box(750), nullptr); + avl = grpc_avl_add(avl, box(779), box(751), nullptr); + avl = grpc_avl_add(avl, box(307), box(752), nullptr); + avl = grpc_avl_add(avl, box(127), box(753), nullptr); + avl = grpc_avl_add(avl, box(251), box(754), nullptr); + avl = remove_int(avl, 790); + avl = remove_int(avl, 189); + avl = remove_int(avl, 193); + avl = remove_int(avl, 38); + avl = remove_int(avl, 124); + avl = grpc_avl_add(avl, box(812), box(760), nullptr); + avl = remove_int(avl, 43); + avl = grpc_avl_add(avl, box(871), box(762), nullptr); + avl = grpc_avl_add(avl, box(580), box(763), nullptr); + avl = remove_int(avl, 501); + avl = remove_int(avl, 462); + avl = remove_int(avl, 599); + avl = grpc_avl_add(avl, box(240), box(767), nullptr); + avl = grpc_avl_add(avl, box(285), box(768), nullptr); + avl = grpc_avl_add(avl, box(472), box(769), nullptr); + avl = remove_int(avl, 865); + avl = remove_int(avl, 763); + avl = remove_int(avl, 245); + avl = remove_int(avl, 80); + avl = remove_int(avl, 713); + avl = remove_int(avl, 654); + avl = remove_int(avl, 1014); + avl = grpc_avl_add(avl, box(495), box(777), nullptr); + avl = grpc_avl_add(avl, box(552), box(778), nullptr); + avl = remove_int(avl, 19); + avl = remove_int(avl, 803); + avl = grpc_avl_add(avl, box(508), box(781), nullptr); + avl = remove_int(avl, 699); + avl = remove_int(avl, 260); + avl = remove_int(avl, 92); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(970), box(786), nullptr); + avl = remove_int(avl, 987); + avl = remove_int(avl, 168); + avl = remove_int(avl, 476); + avl = remove_int(avl, 248); + avl = grpc_avl_add(avl, box(358), box(791), nullptr); + avl = remove_int(avl, 804); + avl = remove_int(avl, 77); + avl = remove_int(avl, 905); + avl = remove_int(avl, 362); + avl = grpc_avl_add(avl, box(578), box(796), nullptr); + avl = remove_int(avl, 38); + avl = remove_int(avl, 595); + avl = grpc_avl_add(avl, box(213), box(799), nullptr); + avl = remove_int(avl, 7); + avl = remove_int(avl, 620); + avl = grpc_avl_add(avl, box(946), box(802), nullptr); + avl = remove_int(avl, 145); + avl = grpc_avl_add(avl, box(628), box(804), nullptr); + avl = remove_int(avl, 972); + avl = grpc_avl_add(avl, box(728), box(806), nullptr); + avl = remove_int(avl, 91); + avl = grpc_avl_add(avl, box(136), box(808), nullptr); + avl = grpc_avl_add(avl, box(841), box(809), nullptr); + avl = grpc_avl_add(avl, box(265), box(810), nullptr); + avl = grpc_avl_add(avl, box(701), box(811), nullptr); + avl = grpc_avl_add(avl, box(27), box(812), nullptr); + avl = remove_int(avl, 72); + avl = remove_int(avl, 14); + avl = grpc_avl_add(avl, box(286), box(815), nullptr); + avl = remove_int(avl, 996); + avl = remove_int(avl, 998); + avl = grpc_avl_add(avl, box(466), box(818), nullptr); + avl = remove_int(avl, 1009); + avl = remove_int(avl, 741); + avl = remove_int(avl, 947); + avl = remove_int(avl, 241); + avl = remove_int(avl, 954); + avl = remove_int(avl, 183); + avl = remove_int(avl, 395); + avl = remove_int(avl, 951); + avl = grpc_avl_add(avl, box(267), box(827), nullptr); + avl = remove_int(avl, 812); + avl = grpc_avl_add(avl, box(577), box(829), nullptr); + avl = remove_int(avl, 624); + avl = remove_int(avl, 847); + avl = remove_int(avl, 745); + avl = grpc_avl_add(avl, box(491), box(833), nullptr); + avl = grpc_avl_add(avl, box(941), box(834), nullptr); + avl = remove_int(avl, 258); + avl = grpc_avl_add(avl, box(410), box(836), nullptr); + avl = grpc_avl_add(avl, box(80), box(837), nullptr); + avl = grpc_avl_add(avl, box(196), box(838), nullptr); + avl = grpc_avl_add(avl, box(5), box(839), nullptr); + avl = remove_int(avl, 782); + avl = grpc_avl_add(avl, box(827), box(841), nullptr); + avl = remove_int(avl, 472); + avl = remove_int(avl, 664); + avl = grpc_avl_add(avl, box(409), box(844), nullptr); + avl = grpc_avl_add(avl, box(62), box(845), nullptr); + avl = remove_int(avl, 56); + avl = remove_int(avl, 606); + avl = remove_int(avl, 707); + avl = remove_int(avl, 989); + avl = remove_int(avl, 549); + avl = remove_int(avl, 259); + avl = grpc_avl_add(avl, box(405), box(852), nullptr); + avl = remove_int(avl, 587); + avl = remove_int(avl, 350); + avl = grpc_avl_add(avl, box(980), box(855), nullptr); + avl = grpc_avl_add(avl, box(992), box(856), nullptr); + avl = grpc_avl_add(avl, box(818), box(857), nullptr); + avl = remove_int(avl, 853); + avl = remove_int(avl, 701); + avl = grpc_avl_add(avl, box(675), box(860), nullptr); + avl = remove_int(avl, 248); + avl = remove_int(avl, 649); + avl = grpc_avl_add(avl, box(508), box(863), nullptr); + avl = remove_int(avl, 927); + avl = grpc_avl_add(avl, box(957), box(865), nullptr); + avl = grpc_avl_add(avl, box(698), box(866), nullptr); + avl = grpc_avl_add(avl, box(388), box(867), nullptr); + avl = grpc_avl_add(avl, box(532), box(868), nullptr); + avl = grpc_avl_add(avl, box(681), box(869), nullptr); + avl = remove_int(avl, 544); + avl = remove_int(avl, 991); + avl = remove_int(avl, 397); + avl = grpc_avl_add(avl, box(954), box(873), nullptr); + avl = grpc_avl_add(avl, box(219), box(874), nullptr); + avl = grpc_avl_add(avl, box(465), box(875), nullptr); + avl = remove_int(avl, 371); + avl = grpc_avl_add(avl, box(601), box(877), nullptr); + avl = grpc_avl_add(avl, box(543), box(878), nullptr); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(560), box(880), nullptr); + avl = remove_int(avl, 898); + avl = grpc_avl_add(avl, box(455), box(882), nullptr); + avl = remove_int(avl, 313); + avl = grpc_avl_add(avl, box(215), box(884), nullptr); + avl = remove_int(avl, 846); + avl = grpc_avl_add(avl, box(608), box(886), nullptr); + avl = remove_int(avl, 248); + avl = grpc_avl_add(avl, box(575), box(888), nullptr); + avl = remove_int(avl, 207); + avl = remove_int(avl, 810); + avl = remove_int(avl, 665); + avl = remove_int(avl, 361); + avl = grpc_avl_add(avl, box(154), box(893), nullptr); + avl = grpc_avl_add(avl, box(329), box(894), nullptr); + avl = grpc_avl_add(avl, box(326), box(895), nullptr); + avl = remove_int(avl, 746); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(464), box(898), nullptr); + avl = grpc_avl_add(avl, box(141), box(899), nullptr); + avl = remove_int(avl, 383); + avl = grpc_avl_add(avl, box(414), box(901), nullptr); + avl = grpc_avl_add(avl, box(777), box(902), nullptr); + avl = remove_int(avl, 972); + avl = remove_int(avl, 841); + avl = remove_int(avl, 100); + avl = grpc_avl_add(avl, box(828), box(906), nullptr); + avl = remove_int(avl, 785); + avl = grpc_avl_add(avl, box(1008), box(908), nullptr); + avl = grpc_avl_add(avl, box(46), box(909), nullptr); + avl = remove_int(avl, 399); + avl = grpc_avl_add(avl, box(178), box(911), nullptr); + avl = grpc_avl_add(avl, box(573), box(912), nullptr); + avl = remove_int(avl, 299); + avl = grpc_avl_add(avl, box(690), box(914), nullptr); + avl = grpc_avl_add(avl, box(692), box(915), nullptr); + avl = remove_int(avl, 404); + avl = remove_int(avl, 16); + avl = remove_int(avl, 746); + avl = remove_int(avl, 486); + avl = remove_int(avl, 119); + avl = grpc_avl_add(avl, box(167), box(921), nullptr); + avl = remove_int(avl, 328); + avl = grpc_avl_add(avl, box(89), box(923), nullptr); + avl = remove_int(avl, 867); + avl = remove_int(avl, 626); + avl = remove_int(avl, 507); + avl = grpc_avl_add(avl, box(365), box(927), nullptr); + avl = grpc_avl_add(avl, box(58), box(928), nullptr); + avl = grpc_avl_add(avl, box(70), box(929), nullptr); + avl = remove_int(avl, 81); + avl = remove_int(avl, 797); + avl = grpc_avl_add(avl, box(846), box(932), nullptr); + avl = remove_int(avl, 642); + avl = grpc_avl_add(avl, box(777), box(934), nullptr); + avl = remove_int(avl, 107); + avl = grpc_avl_add(avl, box(691), box(936), nullptr); + avl = grpc_avl_add(avl, box(820), box(937), nullptr); + avl = grpc_avl_add(avl, box(202), box(938), nullptr); + avl = grpc_avl_add(avl, box(308), box(939), nullptr); + avl = grpc_avl_add(avl, box(20), box(940), nullptr); + avl = remove_int(avl, 289); + avl = grpc_avl_add(avl, box(714), box(942), nullptr); + avl = grpc_avl_add(avl, box(584), box(943), nullptr); + avl = remove_int(avl, 294); + avl = grpc_avl_add(avl, box(496), box(945), nullptr); + avl = grpc_avl_add(avl, box(394), box(946), nullptr); + avl = grpc_avl_add(avl, box(860), box(947), nullptr); + avl = grpc_avl_add(avl, box(58), box(948), nullptr); + avl = remove_int(avl, 784); + avl = remove_int(avl, 584); + avl = remove_int(avl, 708); + avl = grpc_avl_add(avl, box(142), box(952), nullptr); + avl = grpc_avl_add(avl, box(247), box(953), nullptr); + avl = grpc_avl_add(avl, box(389), box(954), nullptr); + avl = remove_int(avl, 390); + avl = grpc_avl_add(avl, box(465), box(956), nullptr); + avl = grpc_avl_add(avl, box(936), box(957), nullptr); + avl = grpc_avl_add(avl, box(309), box(958), nullptr); + avl = remove_int(avl, 928); + avl = remove_int(avl, 128); + avl = remove_int(avl, 979); + avl = remove_int(avl, 670); + avl = remove_int(avl, 738); + avl = remove_int(avl, 271); + avl = remove_int(avl, 540); + avl = grpc_avl_add(avl, box(365), box(966), nullptr); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(728), box(968), nullptr); + avl = remove_int(avl, 852); + avl = grpc_avl_add(avl, box(884), box(970), nullptr); + avl = grpc_avl_add(avl, box(502), box(971), nullptr); + avl = remove_int(avl, 898); + avl = remove_int(avl, 481); + avl = grpc_avl_add(avl, box(911), box(974), nullptr); + avl = remove_int(avl, 787); + avl = remove_int(avl, 785); + avl = remove_int(avl, 537); + avl = remove_int(avl, 535); + avl = remove_int(avl, 136); + avl = remove_int(avl, 749); + avl = remove_int(avl, 637); + avl = remove_int(avl, 900); + avl = grpc_avl_add(avl, box(598), box(983), nullptr); + avl = remove_int(avl, 25); + avl = remove_int(avl, 697); + avl = grpc_avl_add(avl, box(645), box(986), nullptr); + avl = grpc_avl_add(avl, box(211), box(987), nullptr); + avl = grpc_avl_add(avl, box(589), box(988), nullptr); + avl = remove_int(avl, 702); + avl = grpc_avl_add(avl, box(53), box(990), nullptr); + avl = remove_int(avl, 492); + avl = remove_int(avl, 185); + avl = remove_int(avl, 246); + avl = remove_int(avl, 257); + avl = remove_int(avl, 502); + avl = remove_int(avl, 34); + avl = grpc_avl_add(avl, box(74), box(997), nullptr); + avl = grpc_avl_add(avl, box(834), box(998), nullptr); + avl = grpc_avl_add(avl, box(514), box(999), nullptr); + avl = grpc_avl_add(avl, box(75), box(1000), nullptr); + avl = remove_int(avl, 745); + avl = grpc_avl_add(avl, box(362), box(1002), nullptr); + avl = remove_int(avl, 215); + avl = grpc_avl_add(avl, box(624), box(1004), nullptr); + avl = remove_int(avl, 404); + avl = remove_int(avl, 359); + avl = remove_int(avl, 491); + avl = grpc_avl_add(avl, box(903), box(1008), nullptr); + avl = grpc_avl_add(avl, box(240), box(1009), nullptr); + avl = remove_int(avl, 95); + avl = grpc_avl_add(avl, box(119), box(1011), nullptr); + avl = grpc_avl_add(avl, box(857), box(1012), nullptr); + avl = remove_int(avl, 39); + avl = remove_int(avl, 866); + avl = grpc_avl_add(avl, box(503), box(1015), nullptr); + avl = grpc_avl_add(avl, box(740), box(1016), nullptr); + avl = remove_int(avl, 637); + avl = remove_int(avl, 156); + avl = remove_int(avl, 6); + avl = remove_int(avl, 745); + avl = remove_int(avl, 433); + avl = remove_int(avl, 283); + avl = grpc_avl_add(avl, box(625), box(1023), nullptr); + avl = remove_int(avl, 638); + avl = grpc_avl_add(avl, box(299), box(1025), nullptr); + avl = grpc_avl_add(avl, box(584), box(1026), nullptr); + avl = remove_int(avl, 863); + avl = grpc_avl_add(avl, box(612), box(1028), nullptr); + avl = grpc_avl_add(avl, box(62), box(1029), nullptr); + avl = grpc_avl_add(avl, box(432), box(1030), nullptr); + avl = remove_int(avl, 371); + avl = remove_int(avl, 790); + avl = remove_int(avl, 227); + avl = remove_int(avl, 836); + avl = grpc_avl_add(avl, box(703), box(1035), nullptr); + avl = grpc_avl_add(avl, box(644), box(1036), nullptr); + avl = remove_int(avl, 638); + avl = grpc_avl_add(avl, box(13), box(1038), nullptr); + avl = remove_int(avl, 66); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(362), box(1041), nullptr); + avl = grpc_avl_add(avl, box(783), box(1042), nullptr); + avl = remove_int(avl, 60); + avl = grpc_avl_add(avl, box(80), box(1044), nullptr); + avl = grpc_avl_add(avl, box(825), box(1045), nullptr); + avl = grpc_avl_add(avl, box(688), box(1046), nullptr); + avl = grpc_avl_add(avl, box(662), box(1047), nullptr); + avl = remove_int(avl, 156); + avl = remove_int(avl, 376); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(526), box(1051), nullptr); + avl = grpc_avl_add(avl, box(168), box(1052), nullptr); + avl = remove_int(avl, 646); + avl = remove_int(avl, 380); + avl = remove_int(avl, 833); + avl = grpc_avl_add(avl, box(53), box(1056), nullptr); + avl = remove_int(avl, 105); + avl = grpc_avl_add(avl, box(373), box(1058), nullptr); + avl = grpc_avl_add(avl, box(184), box(1059), nullptr); + avl = remove_int(avl, 288); + avl = grpc_avl_add(avl, box(966), box(1061), nullptr); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(406), box(1063), nullptr); + avl = remove_int(avl, 470); + avl = grpc_avl_add(avl, box(283), box(1065), nullptr); + avl = grpc_avl_add(avl, box(838), box(1066), nullptr); + avl = grpc_avl_add(avl, box(288), box(1067), nullptr); + avl = grpc_avl_add(avl, box(950), box(1068), nullptr); + avl = grpc_avl_add(avl, box(163), box(1069), nullptr); + avl = remove_int(avl, 623); + avl = remove_int(avl, 769); + avl = grpc_avl_add(avl, box(144), box(1072), nullptr); + avl = grpc_avl_add(avl, box(489), box(1073), nullptr); + avl = remove_int(avl, 15); + avl = grpc_avl_add(avl, box(971), box(1075), nullptr); + avl = remove_int(avl, 660); + avl = grpc_avl_add(avl, box(255), box(1077), nullptr); + avl = remove_int(avl, 494); + avl = grpc_avl_add(avl, box(109), box(1079), nullptr); + avl = grpc_avl_add(avl, box(420), box(1080), nullptr); + avl = grpc_avl_add(avl, box(509), box(1081), nullptr); + avl = remove_int(avl, 178); + avl = grpc_avl_add(avl, box(216), box(1083), nullptr); + avl = grpc_avl_add(avl, box(707), box(1084), nullptr); + avl = grpc_avl_add(avl, box(411), box(1085), nullptr); + avl = grpc_avl_add(avl, box(352), box(1086), nullptr); + avl = remove_int(avl, 983); + avl = grpc_avl_add(avl, box(6), box(1088), nullptr); + avl = grpc_avl_add(avl, box(1014), box(1089), nullptr); + avl = remove_int(avl, 98); + avl = remove_int(avl, 325); + avl = grpc_avl_add(avl, box(851), box(1092), nullptr); + avl = remove_int(avl, 553); + avl = grpc_avl_add(avl, box(218), box(1094), nullptr); + avl = grpc_avl_add(avl, box(261), box(1095), nullptr); + avl = remove_int(avl, 31); + avl = grpc_avl_add(avl, box(872), box(1097), nullptr); + avl = remove_int(avl, 543); + avl = remove_int(avl, 314); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(533), box(1101), nullptr); + avl = remove_int(avl, 881); + avl = remove_int(avl, 269); + avl = remove_int(avl, 940); + avl = remove_int(avl, 909); + avl = remove_int(avl, 197); + avl = remove_int(avl, 773); + avl = remove_int(avl, 790); + avl = remove_int(avl, 345); + avl = grpc_avl_add(avl, box(965), box(1110), nullptr); + avl = remove_int(avl, 622); + avl = grpc_avl_add(avl, box(352), box(1112), nullptr); + avl = remove_int(avl, 182); + avl = grpc_avl_add(avl, box(534), box(1114), nullptr); + avl = grpc_avl_add(avl, box(97), box(1115), nullptr); + avl = grpc_avl_add(avl, box(198), box(1116), nullptr); + avl = remove_int(avl, 750); + avl = grpc_avl_add(avl, box(98), box(1118), nullptr); + avl = remove_int(avl, 943); + avl = grpc_avl_add(avl, box(254), box(1120), nullptr); + avl = grpc_avl_add(avl, box(30), box(1121), nullptr); + avl = remove_int(avl, 14); + avl = remove_int(avl, 475); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(789), box(1125), nullptr); + avl = grpc_avl_add(avl, box(402), box(1126), nullptr); + avl = remove_int(avl, 1019); + avl = grpc_avl_add(avl, box(858), box(1128), nullptr); + avl = grpc_avl_add(avl, box(625), box(1129), nullptr); + avl = remove_int(avl, 675); + avl = remove_int(avl, 323); + avl = grpc_avl_add(avl, box(329), box(1132), nullptr); + avl = remove_int(avl, 929); + avl = remove_int(avl, 44); + avl = grpc_avl_add(avl, box(443), box(1135), nullptr); + avl = grpc_avl_add(avl, box(653), box(1136), nullptr); + avl = grpc_avl_add(avl, box(750), box(1137), nullptr); + avl = grpc_avl_add(avl, box(252), box(1138), nullptr); + avl = grpc_avl_add(avl, box(449), box(1139), nullptr); + avl = remove_int(avl, 1022); + avl = remove_int(avl, 357); + avl = remove_int(avl, 602); + avl = remove_int(avl, 131); + avl = grpc_avl_add(avl, box(531), box(1144), nullptr); + avl = remove_int(avl, 806); + avl = grpc_avl_add(avl, box(455), box(1146), nullptr); + avl = remove_int(avl, 31); + avl = grpc_avl_add(avl, box(154), box(1148), nullptr); + avl = grpc_avl_add(avl, box(189), box(1149), nullptr); + avl = remove_int(avl, 786); + avl = grpc_avl_add(avl, box(496), box(1151), nullptr); + avl = grpc_avl_add(avl, box(81), box(1152), nullptr); + avl = grpc_avl_add(avl, box(59), box(1153), nullptr); + avl = remove_int(avl, 424); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(723), box(1156), nullptr); + avl = grpc_avl_add(avl, box(822), box(1157), nullptr); + avl = grpc_avl_add(avl, box(354), box(1158), nullptr); + avl = remove_int(avl, 738); + avl = grpc_avl_add(avl, box(686), box(1160), nullptr); + avl = grpc_avl_add(avl, box(43), box(1161), nullptr); + avl = grpc_avl_add(avl, box(625), box(1162), nullptr); + avl = grpc_avl_add(avl, box(902), box(1163), nullptr); + avl = grpc_avl_add(avl, box(12), box(1164), nullptr); + avl = grpc_avl_add(avl, box(977), box(1165), nullptr); + avl = grpc_avl_add(avl, box(699), box(1166), nullptr); + avl = grpc_avl_add(avl, box(189), box(1167), nullptr); + avl = remove_int(avl, 672); + avl = remove_int(avl, 90); + avl = remove_int(avl, 757); + avl = remove_int(avl, 494); + avl = grpc_avl_add(avl, box(759), box(1172), nullptr); + avl = remove_int(avl, 758); + avl = remove_int(avl, 222); + avl = grpc_avl_add(avl, box(975), box(1175), nullptr); + avl = remove_int(avl, 993); + avl = grpc_avl_add(avl, box(2), box(1177), nullptr); + avl = grpc_avl_add(avl, box(70), box(1178), nullptr); + avl = remove_int(avl, 350); + avl = remove_int(avl, 972); + avl = remove_int(avl, 880); + avl = grpc_avl_add(avl, box(753), box(1182), nullptr); + avl = remove_int(avl, 404); + avl = grpc_avl_add(avl, box(294), box(1184), nullptr); + avl = remove_int(avl, 474); + avl = grpc_avl_add(avl, box(228), box(1186), nullptr); + avl = grpc_avl_add(avl, box(484), box(1187), nullptr); + avl = remove_int(avl, 238); + avl = remove_int(avl, 53); + avl = remove_int(avl, 691); + avl = grpc_avl_add(avl, box(345), box(1191), nullptr); + avl = remove_int(avl, 0); + avl = grpc_avl_add(avl, box(230), box(1193), nullptr); + avl = remove_int(avl, 227); + avl = remove_int(avl, 152); + avl = grpc_avl_add(avl, box(884), box(1196), nullptr); + avl = remove_int(avl, 823); + avl = remove_int(avl, 53); + avl = grpc_avl_add(avl, box(1015), box(1199), nullptr); + avl = grpc_avl_add(avl, box(697), box(1200), nullptr); + avl = grpc_avl_add(avl, box(376), box(1201), nullptr); + avl = remove_int(avl, 411); + avl = grpc_avl_add(avl, box(888), box(1203), nullptr); + avl = remove_int(avl, 55); + avl = grpc_avl_add(avl, box(85), box(1205), nullptr); + avl = remove_int(avl, 947); + avl = remove_int(avl, 382); + avl = remove_int(avl, 777); + avl = grpc_avl_add(avl, box(1017), box(1209), nullptr); + avl = grpc_avl_add(avl, box(169), box(1210), nullptr); + avl = grpc_avl_add(avl, box(156), box(1211), nullptr); + avl = remove_int(avl, 153); + avl = remove_int(avl, 642); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(554), box(1215), nullptr); + avl = grpc_avl_add(avl, box(76), box(1216), nullptr); + avl = grpc_avl_add(avl, box(756), box(1217), nullptr); + avl = remove_int(avl, 767); + avl = remove_int(avl, 112); + avl = remove_int(avl, 539); + avl = remove_int(avl, 544); + avl = remove_int(avl, 628); + avl = remove_int(avl, 385); + avl = remove_int(avl, 514); + avl = remove_int(avl, 362); + avl = grpc_avl_add(avl, box(523), box(1226), nullptr); + avl = grpc_avl_add(avl, box(712), box(1227), nullptr); + avl = grpc_avl_add(avl, box(474), box(1228), nullptr); + avl = grpc_avl_add(avl, box(882), box(1229), nullptr); + avl = grpc_avl_add(avl, box(965), box(1230), nullptr); + avl = remove_int(avl, 464); + avl = grpc_avl_add(avl, box(319), box(1232), nullptr); + avl = grpc_avl_add(avl, box(504), box(1233), nullptr); + avl = remove_int(avl, 818); + avl = grpc_avl_add(avl, box(884), box(1235), nullptr); + avl = grpc_avl_add(avl, box(813), box(1236), nullptr); + avl = grpc_avl_add(avl, box(795), box(1237), nullptr); + avl = remove_int(avl, 306); + avl = grpc_avl_add(avl, box(799), box(1239), nullptr); + avl = remove_int(avl, 534); + avl = grpc_avl_add(avl, box(480), box(1241), nullptr); + avl = grpc_avl_add(avl, box(656), box(1242), nullptr); + avl = grpc_avl_add(avl, box(709), box(1243), nullptr); + avl = grpc_avl_add(avl, box(500), box(1244), nullptr); + avl = remove_int(avl, 740); + avl = grpc_avl_add(avl, box(980), box(1246), nullptr); + avl = grpc_avl_add(avl, box(458), box(1247), nullptr); + avl = remove_int(avl, 377); + avl = remove_int(avl, 338); + avl = grpc_avl_add(avl, box(554), box(1250), nullptr); + avl = grpc_avl_add(avl, box(504), box(1251), nullptr); + avl = grpc_avl_add(avl, box(603), box(1252), nullptr); + avl = grpc_avl_add(avl, box(761), box(1253), nullptr); + avl = remove_int(avl, 431); + avl = grpc_avl_add(avl, box(707), box(1255), nullptr); + avl = grpc_avl_add(avl, box(673), box(1256), nullptr); + avl = remove_int(avl, 998); + avl = remove_int(avl, 332); + avl = remove_int(avl, 413); + avl = remove_int(avl, 227); + avl = remove_int(avl, 249); + avl = remove_int(avl, 309); + avl = remove_int(avl, 459); + avl = grpc_avl_add(avl, box(645), box(1264), nullptr); + avl = remove_int(avl, 858); + avl = remove_int(avl, 997); + avl = grpc_avl_add(avl, box(519), box(1267), nullptr); + avl = remove_int(avl, 614); + avl = remove_int(avl, 462); + avl = remove_int(avl, 792); + avl = grpc_avl_add(avl, box(987), box(1271), nullptr); + avl = grpc_avl_add(avl, box(309), box(1272), nullptr); + avl = remove_int(avl, 747); + avl = grpc_avl_add(avl, box(621), box(1274), nullptr); + avl = grpc_avl_add(avl, box(450), box(1275), nullptr); + avl = remove_int(avl, 265); + avl = remove_int(avl, 8); + avl = remove_int(avl, 383); + avl = grpc_avl_add(avl, box(238), box(1279), nullptr); + avl = remove_int(avl, 241); + avl = grpc_avl_add(avl, box(180), box(1281), nullptr); + avl = grpc_avl_add(avl, box(411), box(1282), nullptr); + avl = grpc_avl_add(avl, box(791), box(1283), nullptr); + avl = grpc_avl_add(avl, box(955), box(1284), nullptr); + avl = remove_int(avl, 24); + avl = remove_int(avl, 375); + avl = grpc_avl_add(avl, box(140), box(1287), nullptr); + avl = remove_int(avl, 949); + avl = grpc_avl_add(avl, box(301), box(1289), nullptr); + avl = grpc_avl_add(avl, box(0), box(1290), nullptr); + avl = remove_int(avl, 371); + avl = remove_int(avl, 427); + avl = remove_int(avl, 841); + avl = remove_int(avl, 847); + avl = grpc_avl_add(avl, box(814), box(1295), nullptr); + avl = grpc_avl_add(avl, box(127), box(1296), nullptr); + avl = grpc_avl_add(avl, box(279), box(1297), nullptr); + avl = remove_int(avl, 669); + avl = remove_int(avl, 541); + avl = remove_int(avl, 275); + avl = remove_int(avl, 299); + avl = remove_int(avl, 552); + avl = grpc_avl_add(avl, box(310), box(1303), nullptr); + avl = grpc_avl_add(avl, box(304), box(1304), nullptr); + avl = grpc_avl_add(avl, box(1), box(1305), nullptr); + avl = grpc_avl_add(avl, box(339), box(1306), nullptr); + avl = remove_int(avl, 570); + avl = remove_int(avl, 752); + avl = remove_int(avl, 552); + avl = remove_int(avl, 442); + avl = remove_int(avl, 639); + avl = grpc_avl_add(avl, box(313), box(1312), nullptr); + avl = remove_int(avl, 85); + avl = grpc_avl_add(avl, box(964), box(1314), nullptr); + avl = grpc_avl_add(avl, box(559), box(1315), nullptr); + avl = remove_int(avl, 167); + avl = grpc_avl_add(avl, box(866), box(1317), nullptr); + avl = remove_int(avl, 275); + avl = grpc_avl_add(avl, box(173), box(1319), nullptr); + avl = grpc_avl_add(avl, box(765), box(1320), nullptr); + avl = remove_int(avl, 883); + avl = grpc_avl_add(avl, box(547), box(1322), nullptr); + avl = grpc_avl_add(avl, box(847), box(1323), nullptr); + avl = remove_int(avl, 817); + avl = remove_int(avl, 850); + avl = remove_int(avl, 718); + avl = grpc_avl_add(avl, box(806), box(1327), nullptr); + avl = grpc_avl_add(avl, box(360), box(1328), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(493), box(1330), nullptr); + avl = remove_int(avl, 516); + avl = grpc_avl_add(avl, box(361), box(1332), nullptr); + avl = remove_int(avl, 355); + avl = grpc_avl_add(avl, box(512), box(1334), nullptr); + avl = grpc_avl_add(avl, box(191), box(1335), nullptr); + avl = remove_int(avl, 703); + avl = grpc_avl_add(avl, box(333), box(1337), nullptr); + avl = remove_int(avl, 481); + avl = grpc_avl_add(avl, box(501), box(1339), nullptr); + avl = remove_int(avl, 532); + avl = remove_int(avl, 510); + avl = grpc_avl_add(avl, box(793), box(1342), nullptr); + avl = grpc_avl_add(avl, box(234), box(1343), nullptr); + avl = remove_int(avl, 159); + avl = remove_int(avl, 429); + avl = remove_int(avl, 728); + avl = remove_int(avl, 288); + avl = grpc_avl_add(avl, box(281), box(1348), nullptr); + avl = grpc_avl_add(avl, box(702), box(1349), nullptr); + avl = grpc_avl_add(avl, box(149), box(1350), nullptr); + avl = remove_int(avl, 22); + avl = remove_int(avl, 944); + avl = remove_int(avl, 55); + avl = remove_int(avl, 512); + avl = remove_int(avl, 676); + avl = remove_int(avl, 884); + avl = grpc_avl_add(avl, box(246), box(1357), nullptr); + avl = grpc_avl_add(avl, box(455), box(1358), nullptr); + avl = remove_int(avl, 782); + avl = remove_int(avl, 682); + avl = grpc_avl_add(avl, box(243), box(1361), nullptr); + avl = grpc_avl_add(avl, box(109), box(1362), nullptr); + avl = grpc_avl_add(avl, box(452), box(1363), nullptr); + avl = remove_int(avl, 151); + avl = grpc_avl_add(avl, box(159), box(1365), nullptr); + avl = remove_int(avl, 1023); + avl = grpc_avl_add(avl, box(129), box(1367), nullptr); + avl = grpc_avl_add(avl, box(537), box(1368), nullptr); + avl = remove_int(avl, 321); + avl = grpc_avl_add(avl, box(740), box(1370), nullptr); + avl = remove_int(avl, 45); + avl = remove_int(avl, 136); + avl = grpc_avl_add(avl, box(229), box(1373), nullptr); + avl = remove_int(avl, 772); + avl = grpc_avl_add(avl, box(181), box(1375), nullptr); + avl = remove_int(avl, 175); + avl = grpc_avl_add(avl, box(817), box(1377), nullptr); + avl = remove_int(avl, 956); + avl = grpc_avl_add(avl, box(675), box(1379), nullptr); + avl = grpc_avl_add(avl, box(375), box(1380), nullptr); + avl = remove_int(avl, 384); + avl = grpc_avl_add(avl, box(1016), box(1382), nullptr); + avl = remove_int(avl, 295); + avl = remove_int(avl, 697); + avl = remove_int(avl, 554); + avl = remove_int(avl, 590); + avl = remove_int(avl, 1014); + avl = grpc_avl_add(avl, box(890), box(1388), nullptr); + avl = grpc_avl_add(avl, box(293), box(1389), nullptr); + avl = remove_int(avl, 207); + avl = remove_int(avl, 46); + avl = grpc_avl_add(avl, box(899), box(1392), nullptr); + avl = grpc_avl_add(avl, box(666), box(1393), nullptr); + avl = grpc_avl_add(avl, box(85), box(1394), nullptr); + avl = grpc_avl_add(avl, box(914), box(1395), nullptr); + avl = grpc_avl_add(avl, box(128), box(1396), nullptr); + avl = grpc_avl_add(avl, box(835), box(1397), nullptr); + avl = grpc_avl_add(avl, box(787), box(1398), nullptr); + avl = grpc_avl_add(avl, box(649), box(1399), nullptr); + avl = grpc_avl_add(avl, box(723), box(1400), nullptr); + avl = remove_int(avl, 874); + avl = grpc_avl_add(avl, box(778), box(1402), nullptr); + avl = grpc_avl_add(avl, box(1015), box(1403), nullptr); + avl = grpc_avl_add(avl, box(59), box(1404), nullptr); + avl = grpc_avl_add(avl, box(259), box(1405), nullptr); + avl = grpc_avl_add(avl, box(758), box(1406), nullptr); + avl = remove_int(avl, 648); + avl = grpc_avl_add(avl, box(145), box(1408), nullptr); + avl = grpc_avl_add(avl, box(440), box(1409), nullptr); + avl = remove_int(avl, 608); + avl = remove_int(avl, 690); + avl = grpc_avl_add(avl, box(605), box(1412), nullptr); + avl = remove_int(avl, 856); + avl = remove_int(avl, 608); + avl = grpc_avl_add(avl, box(829), box(1415), nullptr); + avl = grpc_avl_add(avl, box(660), box(1416), nullptr); + avl = remove_int(avl, 596); + avl = grpc_avl_add(avl, box(519), box(1418), nullptr); + avl = grpc_avl_add(avl, box(35), box(1419), nullptr); + avl = grpc_avl_add(avl, box(871), box(1420), nullptr); + avl = remove_int(avl, 845); + avl = grpc_avl_add(avl, box(600), box(1422), nullptr); + avl = grpc_avl_add(avl, box(215), box(1423), nullptr); + avl = remove_int(avl, 761); + avl = grpc_avl_add(avl, box(975), box(1425), nullptr); + avl = remove_int(avl, 987); + avl = grpc_avl_add(avl, box(58), box(1427), nullptr); + avl = remove_int(avl, 119); + avl = grpc_avl_add(avl, box(937), box(1429), nullptr); + avl = grpc_avl_add(avl, box(372), box(1430), nullptr); + avl = grpc_avl_add(avl, box(11), box(1431), nullptr); + avl = grpc_avl_add(avl, box(398), box(1432), nullptr); + avl = grpc_avl_add(avl, box(423), box(1433), nullptr); + avl = remove_int(avl, 171); + avl = grpc_avl_add(avl, box(473), box(1435), nullptr); + avl = remove_int(avl, 752); + avl = remove_int(avl, 625); + avl = remove_int(avl, 764); + avl = remove_int(avl, 49); + avl = grpc_avl_add(avl, box(472), box(1440), nullptr); + avl = remove_int(avl, 847); + avl = remove_int(avl, 642); + avl = remove_int(avl, 1004); + avl = remove_int(avl, 795); + avl = remove_int(avl, 465); + avl = grpc_avl_add(avl, box(636), box(1446), nullptr); + avl = remove_int(avl, 152); + avl = grpc_avl_add(avl, box(61), box(1448), nullptr); + avl = remove_int(avl, 929); + avl = remove_int(avl, 9); + avl = grpc_avl_add(avl, box(251), box(1451), nullptr); + avl = grpc_avl_add(avl, box(672), box(1452), nullptr); + avl = grpc_avl_add(avl, box(66), box(1453), nullptr); + avl = remove_int(avl, 693); + avl = remove_int(avl, 914); + avl = remove_int(avl, 116); + avl = remove_int(avl, 577); + avl = grpc_avl_add(avl, box(618), box(1458), nullptr); + avl = grpc_avl_add(avl, box(495), box(1459), nullptr); + avl = remove_int(avl, 450); + avl = grpc_avl_add(avl, box(533), box(1461), nullptr); + avl = grpc_avl_add(avl, box(414), box(1462), nullptr); + avl = remove_int(avl, 74); + avl = remove_int(avl, 236); + avl = grpc_avl_add(avl, box(707), box(1465), nullptr); + avl = grpc_avl_add(avl, box(357), box(1466), nullptr); + avl = grpc_avl_add(avl, box(1007), box(1467), nullptr); + avl = grpc_avl_add(avl, box(811), box(1468), nullptr); + avl = grpc_avl_add(avl, box(418), box(1469), nullptr); + avl = grpc_avl_add(avl, box(164), box(1470), nullptr); + avl = grpc_avl_add(avl, box(622), box(1471), nullptr); + avl = remove_int(avl, 22); + avl = remove_int(avl, 14); + avl = remove_int(avl, 732); + avl = remove_int(avl, 7); + avl = remove_int(avl, 447); + avl = grpc_avl_add(avl, box(221), box(1477), nullptr); + avl = grpc_avl_add(avl, box(202), box(1478), nullptr); + avl = grpc_avl_add(avl, box(312), box(1479), nullptr); + avl = remove_int(avl, 274); + avl = grpc_avl_add(avl, box(684), box(1481), nullptr); + avl = grpc_avl_add(avl, box(954), box(1482), nullptr); + avl = grpc_avl_add(avl, box(637), box(1483), nullptr); + avl = remove_int(avl, 716); + avl = grpc_avl_add(avl, box(198), box(1485), nullptr); + avl = remove_int(avl, 340); + avl = remove_int(avl, 137); + avl = remove_int(avl, 995); + avl = remove_int(avl, 1004); + avl = grpc_avl_add(avl, box(661), box(1490), nullptr); + avl = grpc_avl_add(avl, box(862), box(1491), nullptr); + avl = remove_int(avl, 527); + avl = grpc_avl_add(avl, box(945), box(1493), nullptr); + avl = remove_int(avl, 355); + avl = remove_int(avl, 144); + avl = grpc_avl_add(avl, box(229), box(1496), nullptr); + avl = grpc_avl_add(avl, box(237), box(1497), nullptr); + avl = remove_int(avl, 471); + avl = remove_int(avl, 901); + avl = grpc_avl_add(avl, box(905), box(1500), nullptr); + avl = remove_int(avl, 19); + avl = remove_int(avl, 896); + avl = remove_int(avl, 585); + avl = remove_int(avl, 308); + avl = grpc_avl_add(avl, box(547), box(1505), nullptr); + avl = grpc_avl_add(avl, box(552), box(1506), nullptr); + avl = grpc_avl_add(avl, box(30), box(1507), nullptr); + avl = grpc_avl_add(avl, box(445), box(1508), nullptr); + avl = remove_int(avl, 785); + avl = remove_int(avl, 185); + avl = grpc_avl_add(avl, box(405), box(1511), nullptr); + avl = grpc_avl_add(avl, box(733), box(1512), nullptr); + avl = grpc_avl_add(avl, box(573), box(1513), nullptr); + avl = grpc_avl_add(avl, box(492), box(1514), nullptr); + avl = grpc_avl_add(avl, box(343), box(1515), nullptr); + avl = grpc_avl_add(avl, box(527), box(1516), nullptr); + avl = grpc_avl_add(avl, box(596), box(1517), nullptr); + avl = grpc_avl_add(avl, box(519), box(1518), nullptr); + avl = remove_int(avl, 243); + avl = remove_int(avl, 722); + avl = grpc_avl_add(avl, box(772), box(1521), nullptr); + avl = remove_int(avl, 152); + avl = remove_int(avl, 305); + avl = grpc_avl_add(avl, box(754), box(1524), nullptr); + avl = grpc_avl_add(avl, box(373), box(1525), nullptr); + avl = remove_int(avl, 995); + avl = grpc_avl_add(avl, box(329), box(1527), nullptr); + avl = remove_int(avl, 397); + avl = grpc_avl_add(avl, box(884), box(1529), nullptr); + avl = remove_int(avl, 329); + avl = remove_int(avl, 240); + avl = grpc_avl_add(avl, box(566), box(1532), nullptr); + avl = grpc_avl_add(avl, box(232), box(1533), nullptr); + avl = remove_int(avl, 993); + avl = grpc_avl_add(avl, box(888), box(1535), nullptr); + avl = remove_int(avl, 242); + avl = grpc_avl_add(avl, box(941), box(1537), nullptr); + avl = remove_int(avl, 415); + avl = grpc_avl_add(avl, box(992), box(1539), nullptr); + avl = remove_int(avl, 289); + avl = grpc_avl_add(avl, box(60), box(1541), nullptr); + avl = grpc_avl_add(avl, box(97), box(1542), nullptr); + avl = remove_int(avl, 965); + avl = remove_int(avl, 267); + avl = remove_int(avl, 360); + avl = grpc_avl_add(avl, box(5), box(1546), nullptr); + avl = remove_int(avl, 429); + avl = grpc_avl_add(avl, box(412), box(1548), nullptr); + avl = remove_int(avl, 632); + avl = remove_int(avl, 113); + avl = grpc_avl_add(avl, box(48), box(1551), nullptr); + avl = grpc_avl_add(avl, box(108), box(1552), nullptr); + avl = grpc_avl_add(avl, box(750), box(1553), nullptr); + avl = remove_int(avl, 188); + avl = grpc_avl_add(avl, box(668), box(1555), nullptr); + avl = remove_int(avl, 37); + avl = remove_int(avl, 737); + avl = grpc_avl_add(avl, box(93), box(1558), nullptr); + avl = grpc_avl_add(avl, box(628), box(1559), nullptr); + avl = grpc_avl_add(avl, box(480), box(1560), nullptr); + avl = remove_int(avl, 958); + avl = remove_int(avl, 565); + avl = remove_int(avl, 32); + avl = remove_int(avl, 1); + avl = remove_int(avl, 335); + avl = grpc_avl_add(avl, box(136), box(1566), nullptr); + avl = grpc_avl_add(avl, box(469), box(1567), nullptr); + avl = remove_int(avl, 349); + avl = grpc_avl_add(avl, box(768), box(1569), nullptr); + avl = grpc_avl_add(avl, box(915), box(1570), nullptr); + avl = remove_int(avl, 1014); + avl = grpc_avl_add(avl, box(117), box(1572), nullptr); + avl = remove_int(avl, 62); + avl = grpc_avl_add(avl, box(382), box(1574), nullptr); + avl = remove_int(avl, 571); + avl = grpc_avl_add(avl, box(655), box(1576), nullptr); + avl = grpc_avl_add(avl, box(323), box(1577), nullptr); + avl = remove_int(avl, 869); + avl = remove_int(avl, 151); + avl = grpc_avl_add(avl, box(1019), box(1580), nullptr); + avl = grpc_avl_add(avl, box(984), box(1581), nullptr); + avl = grpc_avl_add(avl, box(870), box(1582), nullptr); + avl = grpc_avl_add(avl, box(376), box(1583), nullptr); + avl = remove_int(avl, 625); + avl = grpc_avl_add(avl, box(733), box(1585), nullptr); + avl = remove_int(avl, 532); + avl = remove_int(avl, 444); + avl = grpc_avl_add(avl, box(428), box(1588), nullptr); + avl = grpc_avl_add(avl, box(860), box(1589), nullptr); + avl = grpc_avl_add(avl, box(173), box(1590), nullptr); + avl = remove_int(avl, 649); + avl = remove_int(avl, 913); + avl = remove_int(avl, 1); + avl = remove_int(avl, 304); + avl = grpc_avl_add(avl, box(604), box(1595), nullptr); + avl = grpc_avl_add(avl, box(639), box(1596), nullptr); + avl = remove_int(avl, 431); + avl = grpc_avl_add(avl, box(993), box(1598), nullptr); + avl = remove_int(avl, 681); + avl = remove_int(avl, 927); + avl = grpc_avl_add(avl, box(87), box(1601), nullptr); + avl = grpc_avl_add(avl, box(91), box(1602), nullptr); + avl = remove_int(avl, 61); + avl = remove_int(avl, 14); + avl = remove_int(avl, 305); + avl = remove_int(avl, 304); + avl = remove_int(avl, 1016); + avl = grpc_avl_add(avl, box(903), box(1608), nullptr); + avl = grpc_avl_add(avl, box(951), box(1609), nullptr); + avl = grpc_avl_add(avl, box(146), box(1610), nullptr); + avl = grpc_avl_add(avl, box(482), box(1611), nullptr); + avl = grpc_avl_add(avl, box(71), box(1612), nullptr); + avl = remove_int(avl, 246); + avl = remove_int(avl, 696); + avl = grpc_avl_add(avl, box(636), box(1615), nullptr); + avl = grpc_avl_add(avl, box(295), box(1616), nullptr); + avl = remove_int(avl, 11); + avl = remove_int(avl, 231); + avl = grpc_avl_add(avl, box(905), box(1619), nullptr); + avl = grpc_avl_add(avl, box(993), box(1620), nullptr); + avl = grpc_avl_add(avl, box(433), box(1621), nullptr); + avl = grpc_avl_add(avl, box(117), box(1622), nullptr); + avl = grpc_avl_add(avl, box(467), box(1623), nullptr); + avl = remove_int(avl, 419); + avl = grpc_avl_add(avl, box(179), box(1625), nullptr); + avl = remove_int(avl, 926); + avl = remove_int(avl, 326); + avl = grpc_avl_add(avl, box(551), box(1628), nullptr); + avl = remove_int(avl, 14); + avl = remove_int(avl, 476); + avl = remove_int(avl, 823); + avl = grpc_avl_add(avl, box(350), box(1632), nullptr); + avl = grpc_avl_add(avl, box(133), box(1633), nullptr); + avl = remove_int(avl, 906); + avl = grpc_avl_add(avl, box(827), box(1635), nullptr); + avl = grpc_avl_add(avl, box(201), box(1636), nullptr); + avl = remove_int(avl, 124); + avl = remove_int(avl, 662); + avl = grpc_avl_add(avl, box(314), box(1639), nullptr); + avl = grpc_avl_add(avl, box(986), box(1640), nullptr); + avl = grpc_avl_add(avl, box(622), box(1641), nullptr); + avl = remove_int(avl, 130); + avl = grpc_avl_add(avl, box(861), box(1643), nullptr); + avl = remove_int(avl, 497); + avl = remove_int(avl, 905); + avl = grpc_avl_add(avl, box(502), box(1646), nullptr); + avl = remove_int(avl, 721); + avl = grpc_avl_add(avl, box(514), box(1648), nullptr); + avl = grpc_avl_add(avl, box(410), box(1649), nullptr); + avl = remove_int(avl, 869); + avl = remove_int(avl, 247); + avl = grpc_avl_add(avl, box(450), box(1652), nullptr); + avl = remove_int(avl, 364); + avl = grpc_avl_add(avl, box(963), box(1654), nullptr); + avl = grpc_avl_add(avl, box(146), box(1655), nullptr); + avl = remove_int(avl, 147); + avl = remove_int(avl, 789); + avl = grpc_avl_add(avl, box(693), box(1658), nullptr); + avl = grpc_avl_add(avl, box(959), box(1659), nullptr); + avl = remove_int(avl, 478); + avl = grpc_avl_add(avl, box(116), box(1661), nullptr); + avl = grpc_avl_add(avl, box(520), box(1662), nullptr); + avl = grpc_avl_add(avl, box(809), box(1663), nullptr); + avl = grpc_avl_add(avl, box(667), box(1664), nullptr); + avl = grpc_avl_add(avl, box(406), box(1665), nullptr); + avl = remove_int(avl, 409); + avl = grpc_avl_add(avl, box(558), box(1667), nullptr); + avl = grpc_avl_add(avl, box(0), box(1668), nullptr); + avl = grpc_avl_add(avl, box(948), box(1669), nullptr); + avl = grpc_avl_add(avl, box(576), box(1670), nullptr); + avl = remove_int(avl, 864); + avl = remove_int(avl, 840); + avl = remove_int(avl, 1001); + avl = grpc_avl_add(avl, box(232), box(1674), nullptr); + avl = remove_int(avl, 676); + avl = remove_int(avl, 752); + avl = remove_int(avl, 667); + avl = remove_int(avl, 605); + avl = grpc_avl_add(avl, box(258), box(1679), nullptr); + avl = grpc_avl_add(avl, box(648), box(1680), nullptr); + avl = grpc_avl_add(avl, box(761), box(1681), nullptr); + avl = remove_int(avl, 293); + avl = remove_int(avl, 893); + avl = grpc_avl_add(avl, box(194), box(1684), nullptr); + avl = remove_int(avl, 233); + avl = grpc_avl_add(avl, box(888), box(1686), nullptr); + avl = remove_int(avl, 470); + avl = remove_int(avl, 703); + avl = remove_int(avl, 190); + avl = remove_int(avl, 359); + avl = grpc_avl_add(avl, box(621), box(1691), nullptr); + avl = remove_int(avl, 634); + avl = remove_int(avl, 335); + avl = grpc_avl_add(avl, box(718), box(1694), nullptr); + avl = grpc_avl_add(avl, box(463), box(1695), nullptr); + avl = grpc_avl_add(avl, box(233), box(1696), nullptr); + avl = remove_int(avl, 376); + avl = remove_int(avl, 496); + avl = remove_int(avl, 819); + avl = remove_int(avl, 38); + avl = remove_int(avl, 436); + avl = remove_int(avl, 102); + avl = grpc_avl_add(avl, box(607), box(1703), nullptr); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(716), box(1705), nullptr); + avl = remove_int(avl, 639); + avl = remove_int(avl, 775); + avl = remove_int(avl, 578); + avl = remove_int(avl, 464); + avl = remove_int(avl, 679); + avl = remove_int(avl, 615); + avl = remove_int(avl, 104); + avl = grpc_avl_add(avl, box(414), box(1713), nullptr); + avl = grpc_avl_add(avl, box(212), box(1714), nullptr); + avl = grpc_avl_add(avl, box(266), box(1715), nullptr); + avl = grpc_avl_add(avl, box(238), box(1716), nullptr); + avl = remove_int(avl, 153); + avl = grpc_avl_add(avl, box(585), box(1718), nullptr); + avl = remove_int(avl, 121); + avl = grpc_avl_add(avl, box(534), box(1720), nullptr); + avl = remove_int(avl, 579); + avl = grpc_avl_add(avl, box(127), box(1722), nullptr); + avl = grpc_avl_add(avl, box(399), box(1723), nullptr); + avl = remove_int(avl, 417); + avl = grpc_avl_add(avl, box(978), box(1725), nullptr); + avl = grpc_avl_add(avl, box(768), box(1726), nullptr); + avl = remove_int(avl, 985); + avl = grpc_avl_add(avl, box(536), box(1728), nullptr); + avl = grpc_avl_add(avl, box(449), box(1729), nullptr); + avl = grpc_avl_add(avl, box(586), box(1730), nullptr); + avl = remove_int(avl, 998); + avl = remove_int(avl, 394); + avl = remove_int(avl, 141); + avl = grpc_avl_add(avl, box(889), box(1734), nullptr); + avl = grpc_avl_add(avl, box(871), box(1735), nullptr); + avl = grpc_avl_add(avl, box(76), box(1736), nullptr); + avl = grpc_avl_add(avl, box(549), box(1737), nullptr); + avl = grpc_avl_add(avl, box(757), box(1738), nullptr); + avl = remove_int(avl, 908); + avl = grpc_avl_add(avl, box(789), box(1740), nullptr); + avl = remove_int(avl, 224); + avl = grpc_avl_add(avl, box(407), box(1742), nullptr); + avl = grpc_avl_add(avl, box(381), box(1743), nullptr); + avl = grpc_avl_add(avl, box(561), box(1744), nullptr); + avl = grpc_avl_add(avl, box(667), box(1745), nullptr); + avl = grpc_avl_add(avl, box(522), box(1746), nullptr); + avl = grpc_avl_add(avl, box(948), box(1747), nullptr); + avl = remove_int(avl, 770); + avl = grpc_avl_add(avl, box(872), box(1749), nullptr); + avl = grpc_avl_add(avl, box(327), box(1750), nullptr); + avl = remove_int(avl, 10); + avl = grpc_avl_add(avl, box(122), box(1752), nullptr); + avl = remove_int(avl, 606); + avl = grpc_avl_add(avl, box(485), box(1754), nullptr); + avl = remove_int(avl, 6); + avl = grpc_avl_add(avl, box(329), box(1756), nullptr); + avl = grpc_avl_add(avl, box(783), box(1757), nullptr); + avl = remove_int(avl, 416); + avl = grpc_avl_add(avl, box(656), box(1759), nullptr); + avl = grpc_avl_add(avl, box(971), box(1760), nullptr); + avl = grpc_avl_add(avl, box(77), box(1761), nullptr); + avl = grpc_avl_add(avl, box(942), box(1762), nullptr); + avl = remove_int(avl, 361); + avl = grpc_avl_add(avl, box(66), box(1764), nullptr); + avl = grpc_avl_add(avl, box(299), box(1765), nullptr); + avl = grpc_avl_add(avl, box(929), box(1766), nullptr); + avl = grpc_avl_add(avl, box(797), box(1767), nullptr); + avl = remove_int(avl, 869); + avl = remove_int(avl, 907); + avl = grpc_avl_add(avl, box(870), box(1770), nullptr); + avl = remove_int(avl, 580); + avl = remove_int(avl, 120); + avl = grpc_avl_add(avl, box(913), box(1773), nullptr); + avl = remove_int(avl, 480); + avl = grpc_avl_add(avl, box(489), box(1775), nullptr); + avl = remove_int(avl, 845); + avl = grpc_avl_add(avl, box(896), box(1777), nullptr); + avl = remove_int(avl, 567); + avl = remove_int(avl, 427); + avl = grpc_avl_add(avl, box(443), box(1780), nullptr); + avl = grpc_avl_add(avl, box(3), box(1781), nullptr); + avl = remove_int(avl, 12); + avl = grpc_avl_add(avl, box(376), box(1783), nullptr); + avl = grpc_avl_add(avl, box(155), box(1784), nullptr); + avl = grpc_avl_add(avl, box(188), box(1785), nullptr); + avl = grpc_avl_add(avl, box(149), box(1786), nullptr); + avl = grpc_avl_add(avl, box(178), box(1787), nullptr); + avl = remove_int(avl, 84); + avl = grpc_avl_add(avl, box(805), box(1789), nullptr); + avl = grpc_avl_add(avl, box(612), box(1790), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(837), box(1792), nullptr); + avl = remove_int(avl, 173); + avl = remove_int(avl, 72); + avl = grpc_avl_add(avl, box(1014), box(1795), nullptr); + avl = remove_int(avl, 303); + avl = grpc_avl_add(avl, box(865), box(1797), nullptr); + avl = grpc_avl_add(avl, box(793), box(1798), nullptr); + avl = remove_int(avl, 173); + avl = remove_int(avl, 477); + avl = grpc_avl_add(avl, box(950), box(1801), nullptr); + avl = grpc_avl_add(avl, box(105), box(1802), nullptr); + avl = grpc_avl_add(avl, box(895), box(1803), nullptr); + avl = grpc_avl_add(avl, box(171), box(1804), nullptr); + avl = grpc_avl_add(avl, box(753), box(1805), nullptr); + avl = grpc_avl_add(avl, box(946), box(1806), nullptr); + avl = remove_int(avl, 194); + avl = remove_int(avl, 559); + avl = remove_int(avl, 116); + avl = grpc_avl_add(avl, box(968), box(1810), nullptr); + avl = remove_int(avl, 124); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(563), box(1813), nullptr); + avl = remove_int(avl, 182); + avl = grpc_avl_add(avl, box(816), box(1815), nullptr); + avl = remove_int(avl, 73); + avl = remove_int(avl, 261); + avl = grpc_avl_add(avl, box(847), box(1818), nullptr); + avl = grpc_avl_add(avl, box(368), box(1819), nullptr); + avl = grpc_avl_add(avl, box(808), box(1820), nullptr); + avl = grpc_avl_add(avl, box(779), box(1821), nullptr); + avl = remove_int(avl, 818); + avl = grpc_avl_add(avl, box(466), box(1823), nullptr); + avl = remove_int(avl, 316); + avl = grpc_avl_add(avl, box(986), box(1825), nullptr); + avl = grpc_avl_add(avl, box(688), box(1826), nullptr); + avl = grpc_avl_add(avl, box(509), box(1827), nullptr); + avl = grpc_avl_add(avl, box(51), box(1828), nullptr); + avl = remove_int(avl, 655); + avl = remove_int(avl, 785); + avl = remove_int(avl, 893); + avl = grpc_avl_add(avl, box(167), box(1832), nullptr); + avl = remove_int(avl, 13); + avl = remove_int(avl, 263); + avl = grpc_avl_add(avl, box(1009), box(1835), nullptr); + avl = remove_int(avl, 480); + avl = remove_int(avl, 778); + avl = remove_int(avl, 713); + avl = remove_int(avl, 628); + avl = grpc_avl_add(avl, box(803), box(1840), nullptr); + avl = remove_int(avl, 267); + avl = grpc_avl_add(avl, box(676), box(1842), nullptr); + avl = grpc_avl_add(avl, box(231), box(1843), nullptr); + avl = grpc_avl_add(avl, box(824), box(1844), nullptr); + avl = remove_int(avl, 961); + avl = grpc_avl_add(avl, box(311), box(1846), nullptr); + avl = grpc_avl_add(avl, box(420), box(1847), nullptr); + avl = grpc_avl_add(avl, box(960), box(1848), nullptr); + avl = grpc_avl_add(avl, box(468), box(1849), nullptr); + avl = grpc_avl_add(avl, box(815), box(1850), nullptr); + avl = remove_int(avl, 247); + avl = remove_int(avl, 194); + avl = grpc_avl_add(avl, box(546), box(1853), nullptr); + avl = remove_int(avl, 222); + avl = remove_int(avl, 914); + avl = remove_int(avl, 741); + avl = grpc_avl_add(avl, box(470), box(1857), nullptr); + avl = grpc_avl_add(avl, box(933), box(1858), nullptr); + avl = grpc_avl_add(avl, box(97), box(1859), nullptr); + avl = remove_int(avl, 564); + avl = remove_int(avl, 295); + avl = grpc_avl_add(avl, box(864), box(1862), nullptr); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(124), box(1864), nullptr); + avl = grpc_avl_add(avl, box(1000), box(1865), nullptr); + avl = grpc_avl_add(avl, box(228), box(1866), nullptr); + avl = grpc_avl_add(avl, box(187), box(1867), nullptr); + avl = remove_int(avl, 224); + avl = remove_int(avl, 306); + avl = remove_int(avl, 884); + avl = grpc_avl_add(avl, box(449), box(1871), nullptr); + avl = grpc_avl_add(avl, box(353), box(1872), nullptr); + avl = grpc_avl_add(avl, box(994), box(1873), nullptr); + avl = grpc_avl_add(avl, box(596), box(1874), nullptr); + avl = grpc_avl_add(avl, box(996), box(1875), nullptr); + avl = grpc_avl_add(avl, box(101), box(1876), nullptr); + avl = grpc_avl_add(avl, box(1012), box(1877), nullptr); + avl = grpc_avl_add(avl, box(982), box(1878), nullptr); + avl = grpc_avl_add(avl, box(742), box(1879), nullptr); + avl = remove_int(avl, 92); + avl = remove_int(avl, 1022); + avl = grpc_avl_add(avl, box(941), box(1882), nullptr); + avl = remove_int(avl, 742); + avl = remove_int(avl, 919); + avl = grpc_avl_add(avl, box(588), box(1885), nullptr); + avl = remove_int(avl, 221); + avl = grpc_avl_add(avl, box(356), box(1887), nullptr); + avl = grpc_avl_add(avl, box(932), box(1888), nullptr); + avl = remove_int(avl, 837); + avl = grpc_avl_add(avl, box(394), box(1890), nullptr); + avl = grpc_avl_add(avl, box(642), box(1891), nullptr); + avl = grpc_avl_add(avl, box(52), box(1892), nullptr); + avl = grpc_avl_add(avl, box(437), box(1893), nullptr); + avl = grpc_avl_add(avl, box(948), box(1894), nullptr); + avl = grpc_avl_add(avl, box(93), box(1895), nullptr); + avl = remove_int(avl, 873); + avl = remove_int(avl, 336); + avl = remove_int(avl, 277); + avl = remove_int(avl, 932); + avl = grpc_avl_add(avl, box(80), box(1900), nullptr); + avl = grpc_avl_add(avl, box(952), box(1901), nullptr); + avl = grpc_avl_add(avl, box(510), box(1902), nullptr); + avl = remove_int(avl, 876); + avl = remove_int(avl, 612); + avl = grpc_avl_add(avl, box(923), box(1905), nullptr); + avl = grpc_avl_add(avl, box(475), box(1906), nullptr); + avl = remove_int(avl, 478); + avl = remove_int(avl, 148); + avl = grpc_avl_add(avl, box(538), box(1909), nullptr); + avl = remove_int(avl, 47); + avl = grpc_avl_add(avl, box(89), box(1911), nullptr); + avl = remove_int(avl, 723); + avl = grpc_avl_add(avl, box(687), box(1913), nullptr); + avl = grpc_avl_add(avl, box(480), box(1914), nullptr); + avl = grpc_avl_add(avl, box(149), box(1915), nullptr); + avl = remove_int(avl, 68); + avl = remove_int(avl, 862); + avl = remove_int(avl, 363); + avl = grpc_avl_add(avl, box(996), box(1919), nullptr); + avl = remove_int(avl, 380); + avl = grpc_avl_add(avl, box(957), box(1921), nullptr); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(360), box(1923), nullptr); + avl = grpc_avl_add(avl, box(304), box(1924), nullptr); + avl = grpc_avl_add(avl, box(634), box(1925), nullptr); + avl = grpc_avl_add(avl, box(506), box(1926), nullptr); + avl = remove_int(avl, 248); + avl = grpc_avl_add(avl, box(124), box(1928), nullptr); + avl = grpc_avl_add(avl, box(181), box(1929), nullptr); + avl = remove_int(avl, 507); + avl = grpc_avl_add(avl, box(141), box(1931), nullptr); + avl = remove_int(avl, 409); + avl = remove_int(avl, 129); + avl = remove_int(avl, 694); + avl = remove_int(avl, 723); + avl = grpc_avl_add(avl, box(998), box(1936), nullptr); + avl = grpc_avl_add(avl, box(906), box(1937), nullptr); + avl = grpc_avl_add(avl, box(44), box(1938), nullptr); + avl = remove_int(avl, 949); + avl = remove_int(avl, 117); + avl = grpc_avl_add(avl, box(700), box(1941), nullptr); + avl = grpc_avl_add(avl, box(258), box(1942), nullptr); + avl = remove_int(avl, 828); + avl = grpc_avl_add(avl, box(860), box(1944), nullptr); + avl = grpc_avl_add(avl, box(987), box(1945), nullptr); + avl = grpc_avl_add(avl, box(316), box(1946), nullptr); + avl = grpc_avl_add(avl, box(919), box(1947), nullptr); + avl = remove_int(avl, 84); + avl = grpc_avl_add(avl, box(473), box(1949), nullptr); + avl = remove_int(avl, 127); + avl = remove_int(avl, 829); + avl = remove_int(avl, 829); + avl = grpc_avl_add(avl, box(488), box(1953), nullptr); + avl = grpc_avl_add(avl, box(954), box(1954), nullptr); + avl = remove_int(avl, 198); + avl = remove_int(avl, 972); + avl = remove_int(avl, 670); + avl = grpc_avl_add(avl, box(822), box(1958), nullptr); + avl = remove_int(avl, 589); + avl = remove_int(avl, 459); + avl = grpc_avl_add(avl, box(1003), box(1961), nullptr); + avl = grpc_avl_add(avl, box(657), box(1962), nullptr); + avl = grpc_avl_add(avl, box(477), box(1963), nullptr); + avl = grpc_avl_add(avl, box(923), box(1964), nullptr); + avl = remove_int(avl, 496); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(127), box(1967), nullptr); + avl = grpc_avl_add(avl, box(1013), box(1968), nullptr); + avl = grpc_avl_add(avl, box(778), box(1969), nullptr); + avl = remove_int(avl, 5); + avl = remove_int(avl, 990); + avl = remove_int(avl, 850); + avl = remove_int(avl, 160); + avl = remove_int(avl, 86); + avl = grpc_avl_add(avl, box(283), box(1975), nullptr); + avl = remove_int(avl, 278); + avl = remove_int(avl, 297); + avl = remove_int(avl, 137); + avl = remove_int(avl, 653); + avl = grpc_avl_add(avl, box(702), box(1980), nullptr); + avl = remove_int(avl, 63); + avl = remove_int(avl, 427); + avl = remove_int(avl, 706); + avl = remove_int(avl, 806); + avl = grpc_avl_add(avl, box(335), box(1985), nullptr); + avl = grpc_avl_add(avl, box(412), box(1986), nullptr); + avl = remove_int(avl, 766); + avl = remove_int(avl, 937); + avl = remove_int(avl, 886); + avl = remove_int(avl, 652); + avl = grpc_avl_add(avl, box(545), box(1991), nullptr); + avl = grpc_avl_add(avl, box(408), box(1992), nullptr); + avl = grpc_avl_add(avl, box(841), box(1993), nullptr); + avl = remove_int(avl, 593); + avl = grpc_avl_add(avl, box(582), box(1995), nullptr); + avl = grpc_avl_add(avl, box(597), box(1996), nullptr); + avl = remove_int(avl, 49); + avl = remove_int(avl, 835); + avl = grpc_avl_add(avl, box(417), box(1999), nullptr); + avl = grpc_avl_add(avl, box(191), box(2000), nullptr); + avl = remove_int(avl, 406); + avl = grpc_avl_add(avl, box(30), box(2002), nullptr); + avl = remove_int(avl, 841); + avl = remove_int(avl, 50); + avl = grpc_avl_add(avl, box(967), box(2005), nullptr); + avl = grpc_avl_add(avl, box(849), box(2006), nullptr); + avl = remove_int(avl, 608); + avl = grpc_avl_add(avl, box(306), box(2008), nullptr); + avl = remove_int(avl, 779); + avl = grpc_avl_add(avl, box(897), box(2010), nullptr); + avl = grpc_avl_add(avl, box(147), box(2011), nullptr); + avl = remove_int(avl, 982); + avl = grpc_avl_add(avl, box(470), box(2013), nullptr); + avl = remove_int(avl, 951); + avl = grpc_avl_add(avl, box(388), box(2015), nullptr); + avl = remove_int(avl, 616); + avl = remove_int(avl, 721); + avl = remove_int(avl, 942); + avl = remove_int(avl, 589); + avl = grpc_avl_add(avl, box(218), box(2020), nullptr); + avl = remove_int(avl, 671); + avl = grpc_avl_add(avl, box(1020), box(2022), nullptr); + avl = remove_int(avl, 277); + avl = grpc_avl_add(avl, box(681), box(2024), nullptr); + avl = grpc_avl_add(avl, box(179), box(2025), nullptr); + avl = grpc_avl_add(avl, box(370), box(2026), nullptr); + avl = grpc_avl_add(avl, box(0), box(2027), nullptr); + avl = remove_int(avl, 523); + avl = grpc_avl_add(avl, box(99), box(2029), nullptr); + avl = grpc_avl_add(avl, box(334), box(2030), nullptr); + avl = grpc_avl_add(avl, box(569), box(2031), nullptr); + avl = grpc_avl_add(avl, box(257), box(2032), nullptr); + avl = remove_int(avl, 572); + avl = grpc_avl_add(avl, box(805), box(2034), nullptr); + avl = grpc_avl_add(avl, box(143), box(2035), nullptr); + avl = grpc_avl_add(avl, box(670), box(2036), nullptr); + avl = remove_int(avl, 42); + avl = grpc_avl_add(avl, box(46), box(2038), nullptr); + avl = remove_int(avl, 970); + avl = grpc_avl_add(avl, box(353), box(2040), nullptr); + avl = remove_int(avl, 258); + avl = grpc_avl_add(avl, box(451), box(2042), nullptr); + avl = grpc_avl_add(avl, box(28), box(2043), nullptr); + avl = grpc_avl_add(avl, box(729), box(2044), nullptr); + avl = grpc_avl_add(avl, box(401), box(2045), nullptr); + avl = grpc_avl_add(avl, box(614), box(2046), nullptr); + avl = remove_int(avl, 990); + avl = remove_int(avl, 212); + avl = remove_int(avl, 22); + avl = remove_int(avl, 677); + avl = grpc_avl_add(avl, box(1016), box(2051), nullptr); + avl = grpc_avl_add(avl, box(980), box(2052), nullptr); + avl = grpc_avl_add(avl, box(990), box(2053), nullptr); + avl = grpc_avl_add(avl, box(355), box(2054), nullptr); + avl = remove_int(avl, 730); + avl = remove_int(avl, 37); + avl = grpc_avl_add(avl, box(407), box(2057), nullptr); + avl = grpc_avl_add(avl, box(222), box(2058), nullptr); + avl = grpc_avl_add(avl, box(439), box(2059), nullptr); + avl = grpc_avl_add(avl, box(563), box(2060), nullptr); + avl = remove_int(avl, 992); + avl = remove_int(avl, 786); + avl = grpc_avl_add(avl, box(1), box(2063), nullptr); + avl = grpc_avl_add(avl, box(473), box(2064), nullptr); + avl = grpc_avl_add(avl, box(992), box(2065), nullptr); + avl = remove_int(avl, 190); + avl = remove_int(avl, 450); + avl = remove_int(avl, 1020); + avl = remove_int(avl, 149); + avl = grpc_avl_add(avl, box(329), box(2070), nullptr); + avl = grpc_avl_add(avl, box(35), box(2071), nullptr); + avl = remove_int(avl, 843); + avl = grpc_avl_add(avl, box(855), box(2073), nullptr); + avl = remove_int(avl, 878); + avl = grpc_avl_add(avl, box(993), box(2075), nullptr); + avl = grpc_avl_add(avl, box(87), box(2076), nullptr); + avl = grpc_avl_add(avl, box(572), box(2077), nullptr); + avl = remove_int(avl, 896); + avl = grpc_avl_add(avl, box(849), box(2079), nullptr); + avl = remove_int(avl, 597); + avl = grpc_avl_add(avl, box(472), box(2081), nullptr); + avl = remove_int(avl, 778); + avl = remove_int(avl, 934); + avl = remove_int(avl, 314); + avl = grpc_avl_add(avl, box(101), box(2085), nullptr); + avl = remove_int(avl, 938); + avl = remove_int(avl, 1010); + avl = grpc_avl_add(avl, box(579), box(2088), nullptr); + avl = remove_int(avl, 798); + avl = remove_int(avl, 88); + avl = grpc_avl_add(avl, box(851), box(2091), nullptr); + avl = remove_int(avl, 705); + avl = grpc_avl_add(avl, box(26), box(2093), nullptr); + avl = remove_int(avl, 973); + avl = grpc_avl_add(avl, box(923), box(2095), nullptr); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(310), box(2097), nullptr); + avl = grpc_avl_add(avl, box(269), box(2098), nullptr); + avl = remove_int(avl, 173); + avl = grpc_avl_add(avl, box(279), box(2100), nullptr); + avl = remove_int(avl, 203); + avl = grpc_avl_add(avl, box(411), box(2102), nullptr); + avl = remove_int(avl, 950); + avl = grpc_avl_add(avl, box(6), box(2104), nullptr); + avl = remove_int(avl, 400); + avl = remove_int(avl, 468); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(627), box(2108), nullptr); + avl = remove_int(avl, 727); + avl = remove_int(avl, 148); + avl = remove_int(avl, 98); + avl = remove_int(avl, 997); + avl = remove_int(avl, 215); + avl = remove_int(avl, 628); + avl = remove_int(avl, 826); + avl = remove_int(avl, 664); + avl = grpc_avl_add(avl, box(76), box(2117), nullptr); + avl = remove_int(avl, 194); + avl = remove_int(avl, 18); + avl = grpc_avl_add(avl, box(727), box(2120), nullptr); + avl = remove_int(avl, 295); + avl = grpc_avl_add(avl, box(645), box(2122), nullptr); + avl = remove_int(avl, 321); + avl = remove_int(avl, 863); + avl = grpc_avl_add(avl, box(824), box(2125), nullptr); + avl = grpc_avl_add(avl, box(651), box(2126), nullptr); + avl = grpc_avl_add(avl, box(804), box(2127), nullptr); + avl = remove_int(avl, 307); + avl = grpc_avl_add(avl, box(867), box(2129), nullptr); + avl = remove_int(avl, 384); + avl = grpc_avl_add(avl, box(819), box(2131), nullptr); + avl = remove_int(avl, 674); + avl = grpc_avl_add(avl, box(76), box(2133), nullptr); + avl = remove_int(avl, 898); + avl = grpc_avl_add(avl, box(45), box(2135), nullptr); + avl = grpc_avl_add(avl, box(512), box(2136), nullptr); + avl = remove_int(avl, 773); + avl = remove_int(avl, 907); + avl = remove_int(avl, 382); + avl = remove_int(avl, 95); + avl = remove_int(avl, 734); + avl = remove_int(avl, 81); + avl = grpc_avl_add(avl, box(348), box(2143), nullptr); + avl = remove_int(avl, 509); + avl = remove_int(avl, 301); + avl = grpc_avl_add(avl, box(861), box(2146), nullptr); + avl = grpc_avl_add(avl, box(918), box(2147), nullptr); + avl = remove_int(avl, 992); + avl = grpc_avl_add(avl, box(356), box(2149), nullptr); + avl = remove_int(avl, 64); + avl = remove_int(avl, 444); + avl = remove_int(avl, 741); + avl = grpc_avl_add(avl, box(710), box(2153), nullptr); + avl = grpc_avl_add(avl, box(264), box(2154), nullptr); + avl = remove_int(avl, 347); + avl = remove_int(avl, 250); + avl = grpc_avl_add(avl, box(82), box(2157), nullptr); + avl = grpc_avl_add(avl, box(571), box(2158), nullptr); + avl = remove_int(avl, 721); + avl = remove_int(avl, 622); + avl = grpc_avl_add(avl, box(950), box(2161), nullptr); + avl = grpc_avl_add(avl, box(94), box(2162), nullptr); + avl = remove_int(avl, 970); + avl = grpc_avl_add(avl, box(815), box(2164), nullptr); + avl = remove_int(avl, 930); + avl = remove_int(avl, 703); + avl = grpc_avl_add(avl, box(432), box(2167), nullptr); + avl = remove_int(avl, 544); + avl = grpc_avl_add(avl, box(21), box(2169), nullptr); + avl = grpc_avl_add(avl, box(186), box(2170), nullptr); + avl = remove_int(avl, 143); + avl = grpc_avl_add(avl, box(425), box(2172), nullptr); + avl = remove_int(avl, 769); + avl = grpc_avl_add(avl, box(656), box(2174), nullptr); + avl = remove_int(avl, 29); + avl = grpc_avl_add(avl, box(464), box(2176), nullptr); + avl = remove_int(avl, 713); + avl = grpc_avl_add(avl, box(800), box(2178), nullptr); + avl = remove_int(avl, 621); + avl = grpc_avl_add(avl, box(962), box(2180), nullptr); + avl = remove_int(avl, 448); + avl = grpc_avl_add(avl, box(878), box(2182), nullptr); + avl = remove_int(avl, 39); + avl = remove_int(avl, 999); + avl = grpc_avl_add(avl, box(182), box(2185), nullptr); + avl = grpc_avl_add(avl, box(429), box(2186), nullptr); + avl = grpc_avl_add(avl, box(598), box(2187), nullptr); + avl = remove_int(avl, 551); + avl = grpc_avl_add(avl, box(827), box(2189), nullptr); + avl = grpc_avl_add(avl, box(809), box(2190), nullptr); + avl = remove_int(avl, 438); + avl = remove_int(avl, 811); + avl = grpc_avl_add(avl, box(808), box(2193), nullptr); + avl = grpc_avl_add(avl, box(788), box(2194), nullptr); + avl = remove_int(avl, 156); + avl = grpc_avl_add(avl, box(933), box(2196), nullptr); + avl = grpc_avl_add(avl, box(344), box(2197), nullptr); + avl = remove_int(avl, 460); + avl = grpc_avl_add(avl, box(161), box(2199), nullptr); + avl = grpc_avl_add(avl, box(444), box(2200), nullptr); + avl = remove_int(avl, 597); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(703), box(2203), nullptr); + avl = remove_int(avl, 515); + avl = grpc_avl_add(avl, box(380), box(2205), nullptr); + avl = grpc_avl_add(avl, box(338), box(2206), nullptr); + avl = remove_int(avl, 550); + avl = remove_int(avl, 946); + avl = remove_int(avl, 714); + avl = remove_int(avl, 739); + avl = grpc_avl_add(avl, box(413), box(2211), nullptr); + avl = remove_int(avl, 450); + avl = grpc_avl_add(avl, box(411), box(2213), nullptr); + avl = grpc_avl_add(avl, box(117), box(2214), nullptr); + avl = grpc_avl_add(avl, box(322), box(2215), nullptr); + avl = grpc_avl_add(avl, box(915), box(2216), nullptr); + avl = grpc_avl_add(avl, box(410), box(2217), nullptr); + avl = grpc_avl_add(avl, box(66), box(2218), nullptr); + avl = remove_int(avl, 756); + avl = remove_int(avl, 596); + avl = grpc_avl_add(avl, box(882), box(2221), nullptr); + avl = grpc_avl_add(avl, box(930), box(2222), nullptr); + avl = grpc_avl_add(avl, box(36), box(2223), nullptr); + avl = remove_int(avl, 742); + avl = grpc_avl_add(avl, box(539), box(2225), nullptr); + avl = grpc_avl_add(avl, box(596), box(2226), nullptr); + avl = remove_int(avl, 82); + avl = remove_int(avl, 686); + avl = remove_int(avl, 933); + avl = remove_int(avl, 42); + avl = remove_int(avl, 340); + avl = grpc_avl_add(avl, box(126), box(2232), nullptr); + avl = grpc_avl_add(avl, box(493), box(2233), nullptr); + avl = grpc_avl_add(avl, box(839), box(2234), nullptr); + avl = remove_int(avl, 774); + avl = grpc_avl_add(avl, box(337), box(2236), nullptr); + avl = remove_int(avl, 322); + avl = grpc_avl_add(avl, box(16), box(2238), nullptr); + avl = remove_int(avl, 73); + avl = remove_int(avl, 85); + avl = remove_int(avl, 191); + avl = remove_int(avl, 541); + avl = grpc_avl_add(avl, box(704), box(2243), nullptr); + avl = remove_int(avl, 767); + avl = remove_int(avl, 1006); + avl = remove_int(avl, 844); + avl = remove_int(avl, 742); + avl = grpc_avl_add(avl, box(48), box(2248), nullptr); + avl = grpc_avl_add(avl, box(138), box(2249), nullptr); + avl = grpc_avl_add(avl, box(437), box(2250), nullptr); + avl = grpc_avl_add(avl, box(275), box(2251), nullptr); + avl = remove_int(avl, 520); + avl = grpc_avl_add(avl, box(1019), box(2253), nullptr); + avl = remove_int(avl, 955); + avl = grpc_avl_add(avl, box(270), box(2255), nullptr); + avl = remove_int(avl, 680); + avl = remove_int(avl, 698); + avl = grpc_avl_add(avl, box(735), box(2258), nullptr); + avl = grpc_avl_add(avl, box(400), box(2259), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(263), box(2261), nullptr); + avl = remove_int(avl, 704); + avl = grpc_avl_add(avl, box(757), box(2263), nullptr); + avl = remove_int(avl, 194); + avl = remove_int(avl, 616); + avl = remove_int(avl, 784); + avl = grpc_avl_add(avl, box(382), box(2267), nullptr); + avl = grpc_avl_add(avl, box(464), box(2268), nullptr); + avl = grpc_avl_add(avl, box(817), box(2269), nullptr); + avl = remove_int(avl, 445); + avl = grpc_avl_add(avl, box(412), box(2271), nullptr); + avl = remove_int(avl, 525); + avl = grpc_avl_add(avl, box(299), box(2273), nullptr); + avl = grpc_avl_add(avl, box(464), box(2274), nullptr); + avl = grpc_avl_add(avl, box(715), box(2275), nullptr); + avl = remove_int(avl, 58); + avl = remove_int(avl, 218); + avl = grpc_avl_add(avl, box(961), box(2278), nullptr); + avl = grpc_avl_add(avl, box(491), box(2279), nullptr); + avl = remove_int(avl, 846); + avl = grpc_avl_add(avl, box(762), box(2281), nullptr); + avl = remove_int(avl, 974); + avl = remove_int(avl, 887); + avl = grpc_avl_add(avl, box(498), box(2284), nullptr); + avl = remove_int(avl, 810); + avl = remove_int(avl, 743); + avl = remove_int(avl, 22); + avl = remove_int(avl, 284); + avl = grpc_avl_add(avl, box(482), box(2289), nullptr); + avl = grpc_avl_add(avl, box(1021), box(2290), nullptr); + avl = remove_int(avl, 155); + avl = remove_int(avl, 128); + avl = grpc_avl_add(avl, box(819), box(2293), nullptr); + avl = grpc_avl_add(avl, box(324), box(2294), nullptr); + avl = remove_int(avl, 196); + avl = remove_int(avl, 370); + avl = remove_int(avl, 753); + avl = remove_int(avl, 56); + avl = remove_int(avl, 735); + avl = grpc_avl_add(avl, box(272), box(2300), nullptr); + avl = grpc_avl_add(avl, box(474), box(2301), nullptr); + avl = grpc_avl_add(avl, box(719), box(2302), nullptr); + avl = grpc_avl_add(avl, box(236), box(2303), nullptr); + avl = remove_int(avl, 818); + avl = grpc_avl_add(avl, box(727), box(2305), nullptr); + avl = remove_int(avl, 892); + avl = remove_int(avl, 871); + avl = remove_int(avl, 231); + avl = grpc_avl_add(avl, box(62), box(2309), nullptr); + avl = grpc_avl_add(avl, box(953), box(2310), nullptr); + avl = remove_int(avl, 701); + avl = grpc_avl_add(avl, box(193), box(2312), nullptr); + avl = remove_int(avl, 619); + avl = remove_int(avl, 22); + avl = remove_int(avl, 804); + avl = remove_int(avl, 851); + avl = grpc_avl_add(avl, box(286), box(2317), nullptr); + avl = grpc_avl_add(avl, box(751), box(2318), nullptr); + avl = remove_int(avl, 525); + avl = grpc_avl_add(avl, box(217), box(2320), nullptr); + avl = remove_int(avl, 336); + avl = grpc_avl_add(avl, box(86), box(2322), nullptr); + avl = grpc_avl_add(avl, box(81), box(2323), nullptr); + avl = grpc_avl_add(avl, box(850), box(2324), nullptr); + avl = remove_int(avl, 872); + avl = grpc_avl_add(avl, box(402), box(2326), nullptr); + avl = grpc_avl_add(avl, box(54), box(2327), nullptr); + avl = grpc_avl_add(avl, box(980), box(2328), nullptr); + avl = grpc_avl_add(avl, box(845), box(2329), nullptr); + avl = remove_int(avl, 1004); + avl = remove_int(avl, 273); + avl = remove_int(avl, 879); + avl = grpc_avl_add(avl, box(354), box(2333), nullptr); + avl = grpc_avl_add(avl, box(58), box(2334), nullptr); + avl = grpc_avl_add(avl, box(127), box(2335), nullptr); + avl = remove_int(avl, 84); + avl = grpc_avl_add(avl, box(360), box(2337), nullptr); + avl = remove_int(avl, 648); + avl = remove_int(avl, 488); + avl = remove_int(avl, 585); + avl = remove_int(avl, 230); + avl = grpc_avl_add(avl, box(887), box(2342), nullptr); + avl = remove_int(avl, 558); + avl = remove_int(avl, 958); + avl = grpc_avl_add(avl, box(822), box(2345), nullptr); + avl = remove_int(avl, 1004); + avl = remove_int(avl, 747); + avl = grpc_avl_add(avl, box(631), box(2348), nullptr); + avl = grpc_avl_add(avl, box(442), box(2349), nullptr); + avl = remove_int(avl, 957); + avl = remove_int(avl, 964); + avl = grpc_avl_add(avl, box(10), box(2352), nullptr); + avl = remove_int(avl, 189); + avl = grpc_avl_add(avl, box(742), box(2354), nullptr); + avl = remove_int(avl, 108); + avl = grpc_avl_add(avl, box(1014), box(2356), nullptr); + avl = remove_int(avl, 266); + avl = remove_int(avl, 623); + avl = remove_int(avl, 697); + avl = grpc_avl_add(avl, box(180), box(2360), nullptr); + avl = remove_int(avl, 472); + avl = grpc_avl_add(avl, box(567), box(2362), nullptr); + avl = remove_int(avl, 1020); + avl = remove_int(avl, 273); + avl = grpc_avl_add(avl, box(864), box(2365), nullptr); + avl = grpc_avl_add(avl, box(1009), box(2366), nullptr); + avl = remove_int(avl, 224); + avl = remove_int(avl, 81); + avl = grpc_avl_add(avl, box(653), box(2369), nullptr); + avl = remove_int(avl, 67); + avl = remove_int(avl, 102); + avl = remove_int(avl, 76); + avl = remove_int(avl, 935); + avl = remove_int(avl, 169); + avl = remove_int(avl, 232); + avl = remove_int(avl, 79); + avl = grpc_avl_add(avl, box(509), box(2377), nullptr); + avl = remove_int(avl, 900); + avl = remove_int(avl, 822); + avl = remove_int(avl, 945); + avl = remove_int(avl, 356); + avl = grpc_avl_add(avl, box(443), box(2382), nullptr); + avl = grpc_avl_add(avl, box(925), box(2383), nullptr); + avl = remove_int(avl, 994); + avl = remove_int(avl, 324); + avl = grpc_avl_add(avl, box(291), box(2386), nullptr); + avl = remove_int(avl, 94); + avl = remove_int(avl, 795); + avl = remove_int(avl, 42); + avl = grpc_avl_add(avl, box(613), box(2390), nullptr); + avl = remove_int(avl, 289); + avl = grpc_avl_add(avl, box(980), box(2392), nullptr); + avl = remove_int(avl, 316); + avl = grpc_avl_add(avl, box(281), box(2394), nullptr); + avl = grpc_avl_add(avl, box(1006), box(2395), nullptr); + avl = remove_int(avl, 776); + avl = grpc_avl_add(avl, box(108), box(2397), nullptr); + avl = grpc_avl_add(avl, box(918), box(2398), nullptr); + avl = remove_int(avl, 721); + avl = remove_int(avl, 563); + avl = grpc_avl_add(avl, box(925), box(2401), nullptr); + avl = remove_int(avl, 448); + avl = remove_int(avl, 198); + avl = remove_int(avl, 1); + avl = grpc_avl_add(avl, box(160), box(2405), nullptr); + avl = remove_int(avl, 515); + avl = grpc_avl_add(avl, box(284), box(2407), nullptr); + avl = grpc_avl_add(avl, box(225), box(2408), nullptr); + avl = remove_int(avl, 304); + avl = grpc_avl_add(avl, box(714), box(2410), nullptr); + avl = grpc_avl_add(avl, box(708), box(2411), nullptr); + avl = grpc_avl_add(avl, box(624), box(2412), nullptr); + avl = remove_int(avl, 662); + avl = remove_int(avl, 825); + avl = remove_int(avl, 383); + avl = remove_int(avl, 381); + avl = grpc_avl_add(avl, box(194), box(2417), nullptr); + avl = remove_int(avl, 280); + avl = remove_int(avl, 25); + avl = remove_int(avl, 633); + avl = grpc_avl_add(avl, box(897), box(2421), nullptr); + avl = remove_int(avl, 636); + avl = remove_int(avl, 596); + avl = remove_int(avl, 757); + avl = remove_int(avl, 343); + avl = remove_int(avl, 162); + avl = remove_int(avl, 913); + avl = remove_int(avl, 843); + avl = remove_int(avl, 280); + avl = remove_int(avl, 911); + avl = grpc_avl_add(avl, box(1008), box(2431), nullptr); + avl = remove_int(avl, 948); + avl = remove_int(avl, 74); + avl = remove_int(avl, 571); + avl = grpc_avl_add(avl, box(486), box(2435), nullptr); + avl = grpc_avl_add(avl, box(285), box(2436), nullptr); + avl = remove_int(avl, 304); + avl = remove_int(avl, 516); + avl = grpc_avl_add(avl, box(758), box(2439), nullptr); + avl = grpc_avl_add(avl, box(776), box(2440), nullptr); + avl = remove_int(avl, 696); + avl = grpc_avl_add(avl, box(104), box(2442), nullptr); + avl = grpc_avl_add(avl, box(700), box(2443), nullptr); + avl = grpc_avl_add(avl, box(114), box(2444), nullptr); + avl = grpc_avl_add(avl, box(567), box(2445), nullptr); + avl = remove_int(avl, 620); + avl = grpc_avl_add(avl, box(270), box(2447), nullptr); + avl = remove_int(avl, 730); + avl = grpc_avl_add(avl, box(749), box(2449), nullptr); + avl = grpc_avl_add(avl, box(443), box(2450), nullptr); + avl = remove_int(avl, 457); + avl = grpc_avl_add(avl, box(571), box(2452), nullptr); + avl = grpc_avl_add(avl, box(626), box(2453), nullptr); + avl = remove_int(avl, 638); + avl = remove_int(avl, 313); + + grpc_avl_unref(avl, nullptr); +} + +static void test_stress(int amount_of_stress) { + int added[1024]; + int i, j; + int deletions = 0; + grpc_avl avl; + + unsigned seed = static_cast<unsigned>(time(nullptr)); + + gpr_log(GPR_DEBUG, "test_stress amount=%d seed=%u", amount_of_stress, seed); + + srand(static_cast<unsigned>(time(nullptr))); + avl = grpc_avl_create(&int_int_vtable); + + memset(added, 0, sizeof(added)); + + for (i = 1; deletions < amount_of_stress; i++) { + int idx = rand() % static_cast<int> GPR_ARRAY_SIZE(added); + GPR_ASSERT(i); + if (rand() < RAND_MAX / 2) { + added[idx] = i; + printf("avl = grpc_avl_add(avl, box(%d), box(%d), NULL); /* d=%d */\n", + idx, i, deletions); + avl = grpc_avl_add(avl, box(idx), box(i), nullptr); + } else { + deletions += (added[idx] != 0); + added[idx] = 0; + printf("avl = remove_int(avl, %d); /* d=%d */\n", idx, deletions); + avl = remove_int(avl, idx); + } + for (j = 0; j < static_cast<int> GPR_ARRAY_SIZE(added); j++) { + if (added[j] != 0) { + check_get(avl, j, added[j]); + } else { + check_negget(avl, j); + } + } + } + + grpc_avl_unref(avl, nullptr); +} + +int main(int argc, char* argv[]) { + grpc_test_init(argc, argv); + + test_get(); + test_ll(); + test_lr(); + test_rr(); + test_rl(); + test_unbalanced(); + test_replace(); + test_remove(); + test_badcase1(); + test_badcase2(); + test_badcase3(); + test_stress(10); + + return 0; +} diff --git a/test/core/backoff/backoff_test.cc b/test/core/backoff/backoff_test.cc index 2e61243831..1998a83977 100644 --- a/test/core/backoff/backoff_test.cc +++ b/test/core/backoff/backoff_test.cc @@ -21,7 +21,6 @@ #include <algorithm> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include <gtest/gtest.h> #include "test/core/util/test_config.h" @@ -144,10 +143,10 @@ TEST(BackOffTest, JitterBackOff) { grpc_millis next = backoff.NextAttemptTime(); EXPECT_EQ(next - grpc_core::ExecCtx::Get()->Now(), initial_backoff); - grpc_millis expected_next_lower_bound = - (grpc_millis)((double)current_backoff * (1 - jitter)); - grpc_millis expected_next_upper_bound = - (grpc_millis)((double)current_backoff * (1 + jitter)); + grpc_millis expected_next_lower_bound = static_cast<grpc_millis>( + static_cast<double>(current_backoff) * (1 - jitter)); + grpc_millis expected_next_upper_bound = static_cast<grpc_millis>( + static_cast<double>(current_backoff) * (1 + jitter)); for (int i = 0; i < 10000; i++) { next = backoff.NextAttemptTime(); @@ -156,12 +155,14 @@ TEST(BackOffTest, JitterBackOff) { const grpc_millis timeout_millis = next - grpc_core::ExecCtx::Get()->Now(); EXPECT_GE(timeout_millis, expected_next_lower_bound); EXPECT_LE(timeout_millis, expected_next_upper_bound); - current_backoff = std::min( - (grpc_millis)((double)current_backoff * multiplier), max_backoff); - expected_next_lower_bound = - (grpc_millis)((double)current_backoff * (1 - jitter)); - expected_next_upper_bound = - (grpc_millis)((double)current_backoff * (1 + jitter)); + current_backoff = + std::min(static_cast<grpc_millis>(static_cast<double>(current_backoff) * + multiplier), + max_backoff); + expected_next_lower_bound = static_cast<grpc_millis>( + static_cast<double>(current_backoff) * (1 - jitter)); + expected_next_upper_bound = static_cast<grpc_millis>( + static_cast<double>(current_backoff) * (1 + jitter)); } } diff --git a/test/core/bad_client/bad_client.cc b/test/core/bad_client/bad_client.cc index dd8d88170e..ee55a95e4e 100644 --- a/test/core/bad_client/bad_client.cc +++ b/test/core/bad_client/bad_client.cc @@ -34,164 +34,207 @@ #include "src/core/lib/slice/slice_internal.h" #include "src/core/lib/surface/completion_queue.h" #include "src/core/lib/surface/server.h" +#include "test/core/end2end/cq_verifier.h" +#define MIN_HTTP2_FRAME_SIZE 9 + +/* Args to provide to thread running server side validator */ typedef struct { grpc_server* server; grpc_completion_queue* cq; grpc_bad_client_server_side_validator validator; void* registered_method; gpr_event done_thd; - gpr_event done_write; } thd_args; +/* Run the server side validator and set done_thd once done */ static void thd_func(void* arg) { - thd_args* a = (thd_args*)arg; - a->validator(a->server, a->cq, a->registered_method); + thd_args* a = static_cast<thd_args*>(arg); + if (a->validator != nullptr) { + a->validator(a->server, a->cq, a->registered_method); + } gpr_event_set(&a->done_thd, (void*)1); } -static void done_write(void* arg, grpc_error* error) { - thd_args* a = (thd_args*)arg; - gpr_event_set(&a->done_write, (void*)1); +/* Sets the done_write event */ +static void set_done_write(void* arg, grpc_error* error) { + gpr_event* done_write = static_cast<gpr_event*>(arg); + gpr_event_set(done_write, (void*)1); } static void server_setup_transport(void* ts, grpc_transport* transport) { - thd_args* a = (thd_args*)ts; + thd_args* a = static_cast<thd_args*>(ts); grpc_core::ExecCtx exec_ctx; grpc_server_setup_transport(a->server, transport, nullptr, grpc_server_get_channel_args(a->server)); } -static void read_done(void* arg, grpc_error* error) { - gpr_event* read_done = (gpr_event*)arg; +/* Sets the read_done event */ +static void set_read_done(void* arg, grpc_error* error) { + gpr_event* read_done = static_cast<gpr_event*>(arg); gpr_event_set(read_done, (void*)1); } -void grpc_run_bad_client_test( - grpc_bad_client_server_side_validator server_validator, - grpc_bad_client_client_stream_validator client_validator, - const char* client_payload, size_t client_payload_length, uint32_t flags) { - grpc_endpoint_pair sfd; - thd_args a; - gpr_thd_id id; - char* hex; - grpc_transport* transport; - grpc_slice slice = - grpc_slice_from_copied_buffer(client_payload, client_payload_length); - grpc_slice_buffer outgoing; - grpc_closure done_write_closure; - grpc_core::ExecCtx exec_ctx; - grpc_completion_queue* shutdown_cq; +/* shutdown client */ +static void shutdown_client(grpc_endpoint** client_fd) { + if (*client_fd != nullptr) { + grpc_endpoint_shutdown( + *client_fd, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Forced Disconnect")); + grpc_endpoint_destroy(*client_fd); + grpc_core::ExecCtx::Get()->Flush(); + *client_fd = nullptr; + } +} - if (client_payload_length < 4 * 1024) { - hex = gpr_dump(client_payload, client_payload_length, +/* Runs client side validator */ +void grpc_run_client_side_validator(grpc_bad_client_arg* arg, uint32_t flags, + grpc_endpoint_pair* sfd, + grpc_completion_queue* client_cq) { + char* hex; + gpr_event done_write; + if (arg->client_payload_length < 4 * 1024) { + hex = gpr_dump(arg->client_payload, arg->client_payload_length, GPR_DUMP_HEX | GPR_DUMP_ASCII); - /* Add a debug log */ gpr_log(GPR_INFO, "TEST: %s", hex); - gpr_free(hex); } else { gpr_log(GPR_INFO, "TEST: (%" PRIdPTR " byte long string)", - client_payload_length); + arg->client_payload_length); } - /* Init grpc */ - grpc_init(); - - /* Create endpoints */ - sfd = grpc_iomgr_create_endpoint_pair("fixture", nullptr); - - /* Create server, completion events */ - a.server = grpc_server_create(nullptr, nullptr); - a.cq = grpc_completion_queue_create_for_next(nullptr); - gpr_event_init(&a.done_thd); - gpr_event_init(&a.done_write); - a.validator = server_validator; - grpc_server_register_completion_queue(a.server, a.cq, nullptr); - a.registered_method = - grpc_server_register_method(a.server, GRPC_BAD_CLIENT_REGISTERED_METHOD, - GRPC_BAD_CLIENT_REGISTERED_HOST, - GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER, 0); - grpc_server_start(a.server); - transport = grpc_create_chttp2_transport(nullptr, sfd.server, false); - server_setup_transport(&a, transport); - grpc_chttp2_transport_start_reading(transport, nullptr, nullptr); - - /* Bind everything into the same pollset */ - grpc_endpoint_add_to_pollset(sfd.client, grpc_cq_pollset(a.cq)); - grpc_endpoint_add_to_pollset(sfd.server, grpc_cq_pollset(a.cq)); - - /* Check a ground truth */ - GPR_ASSERT(grpc_server_has_open_connections(a.server)); - - /* Start validator */ - gpr_thd_new(&id, "grpc_bad_client", thd_func, &a, nullptr); + grpc_slice slice = grpc_slice_from_copied_buffer(arg->client_payload, + arg->client_payload_length); + grpc_slice_buffer outgoing; + grpc_closure done_write_closure; + gpr_event_init(&done_write); grpc_slice_buffer_init(&outgoing); grpc_slice_buffer_add(&outgoing, slice); - GRPC_CLOSURE_INIT(&done_write_closure, done_write, &a, + GRPC_CLOSURE_INIT(&done_write_closure, set_done_write, &done_write, grpc_schedule_on_exec_ctx); /* Write data */ - grpc_endpoint_write(sfd.client, &outgoing, &done_write_closure); + grpc_endpoint_write(sfd->client, &outgoing, &done_write_closure); grpc_core::ExecCtx::Get()->Flush(); /* Await completion, unless the request is large and write may not finish * before the peer shuts down. */ if (!(flags & GRPC_BAD_CLIENT_LARGE_REQUEST)) { GPR_ASSERT( - gpr_event_wait(&a.done_write, grpc_timeout_seconds_to_deadline(5))); + gpr_event_wait(&done_write, grpc_timeout_seconds_to_deadline(5))); } if (flags & GRPC_BAD_CLIENT_DISCONNECT) { - grpc_endpoint_shutdown( - sfd.client, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Forced Disconnect")); - grpc_endpoint_destroy(sfd.client); - grpc_core::ExecCtx::Get()->Flush(); - sfd.client = nullptr; + shutdown_client(&sfd->client); } - GPR_ASSERT(gpr_event_wait(&a.done_thd, grpc_timeout_seconds_to_deadline(5))); - - if (sfd.client != nullptr) { - // Validate client stream, if requested. - if (client_validator != nullptr) { + if (sfd->client != nullptr) { + /* Validate client stream, if requested. */ + if (arg->client_validator != nullptr) { gpr_timespec deadline = grpc_timeout_seconds_to_deadline(5); grpc_slice_buffer incoming; grpc_slice_buffer_init(&incoming); - // We may need to do multiple reads to read the complete server response. + /* We may need to do multiple reads to read the complete server + * response. */ while (true) { gpr_event read_done_event; gpr_event_init(&read_done_event); grpc_closure read_done_closure; - GRPC_CLOSURE_INIT(&read_done_closure, read_done, &read_done_event, + GRPC_CLOSURE_INIT(&read_done_closure, set_read_done, &read_done_event, grpc_schedule_on_exec_ctx); - grpc_endpoint_read(sfd.client, &incoming, &read_done_closure); + grpc_endpoint_read(sfd->client, &incoming, &read_done_closure); grpc_core::ExecCtx::Get()->Flush(); do { GPR_ASSERT(gpr_time_cmp(deadline, gpr_now(deadline.clock_type)) > 0); - GPR_ASSERT( - grpc_completion_queue_next( - a.cq, grpc_timeout_milliseconds_to_deadline(100), nullptr) - .type == GRPC_QUEUE_TIMEOUT); + /* Perform a cq next just to provide a thread that can read incoming + bytes on the client fd */ + GPR_ASSERT(grpc_completion_queue_next( + client_cq, grpc_timeout_milliseconds_to_deadline(100), + nullptr) + .type == GRPC_QUEUE_TIMEOUT); } while (!gpr_event_get(&read_done_event)); - if (client_validator(&incoming)) break; + if (arg->client_validator(&incoming, arg->client_validator_arg)) break; gpr_log(GPR_INFO, "client validator failed; trying additional read " "in case we didn't get all the data"); } grpc_slice_buffer_destroy_internal(&incoming); } - // Shutdown. - grpc_endpoint_shutdown( - sfd.client, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Test Shutdown")); - grpc_endpoint_destroy(sfd.client); grpc_core::ExecCtx::Get()->Flush(); } - GPR_ASSERT( - gpr_event_wait(&a.done_write, grpc_timeout_seconds_to_deadline(1))); + /* If the request was too large, then we need to forcefully shut down the + * client, so that the write can be considered completed */ + if (flags & GRPC_BAD_CLIENT_LARGE_REQUEST) { + shutdown_client(&sfd->client); + } + + /* Make sure that the client is done writing */ + while (!gpr_event_get(&done_write)) { + GPR_ASSERT( + grpc_completion_queue_next( + client_cq, grpc_timeout_milliseconds_to_deadline(100), nullptr) + .type == GRPC_QUEUE_TIMEOUT); + } + + grpc_slice_buffer_destroy_internal(&outgoing); + grpc_core::ExecCtx::Get()->Flush(); +} + +void grpc_run_bad_client_test( + grpc_bad_client_server_side_validator server_validator, + grpc_bad_client_arg args[], int num_args, uint32_t flags) { + grpc_endpoint_pair sfd; + thd_args a; + grpc_transport* transport; + grpc_core::ExecCtx exec_ctx; + grpc_completion_queue* shutdown_cq; + grpc_completion_queue* client_cq; + + /* Init grpc */ + grpc_init(); + + /* Create endpoints */ + sfd = grpc_iomgr_create_endpoint_pair("fixture", nullptr); + + /* Create server, completion events */ + a.server = grpc_server_create(nullptr, nullptr); + a.cq = grpc_completion_queue_create_for_next(nullptr); + client_cq = grpc_completion_queue_create_for_next(nullptr); + + grpc_server_register_completion_queue(a.server, a.cq, nullptr); + a.registered_method = + grpc_server_register_method(a.server, GRPC_BAD_CLIENT_REGISTERED_METHOD, + GRPC_BAD_CLIENT_REGISTERED_HOST, + GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER, 0); + grpc_server_start(a.server); + transport = grpc_create_chttp2_transport(nullptr, sfd.server, false); + server_setup_transport(&a, transport); + grpc_chttp2_transport_start_reading(transport, nullptr, nullptr); + + /* Bind fds to pollsets */ + grpc_endpoint_add_to_pollset(sfd.client, grpc_cq_pollset(client_cq)); + grpc_endpoint_add_to_pollset(sfd.server, grpc_cq_pollset(a.cq)); + + /* Check a ground truth */ + GPR_ASSERT(grpc_server_has_open_connections(a.server)); + + gpr_thd_id id; + gpr_event_init(&a.done_thd); + a.validator = server_validator; + /* Start validator */ + gpr_thd_new(&id, "grpc_bad_client", thd_func, &a, nullptr); + for (int i = 0; i < num_args; i++) { + grpc_run_client_side_validator(&args[i], i == (num_args - 1) ? flags : 0, + &sfd, client_cq); + } + /* Wait for server thread to finish */ + GPR_ASSERT(gpr_event_wait(&a.done_thd, grpc_timeout_seconds_to_deadline(1))); + + /* Shutdown. */ + shutdown_client(&sfd.client); + shutdown_cq = grpc_completion_queue_create_for_pluck(nullptr); grpc_server_shutdown_and_notify(a.server, shutdown_cq, nullptr); GPR_ASSERT(grpc_completion_queue_pluck(shutdown_cq, nullptr, @@ -201,7 +244,91 @@ void grpc_run_bad_client_test( grpc_completion_queue_destroy(shutdown_cq); grpc_server_destroy(a.server); grpc_completion_queue_destroy(a.cq); - grpc_slice_buffer_destroy_internal(&outgoing); - + grpc_completion_queue_destroy(client_cq); grpc_shutdown(); } + +bool client_connection_preface_validator(grpc_slice_buffer* incoming, + void* arg) { + if (incoming->count < 1) { + return false; + } + grpc_slice slice = incoming->slices[0]; + /* There should be atleast a settings frame present */ + if (GRPC_SLICE_LENGTH(slice) < MIN_HTTP2_FRAME_SIZE) { + return false; + } + const uint8_t* p = GRPC_SLICE_START_PTR(slice); + /* Check the frame type (SETTINGS) */ + if (*(p + 3) != 4) { + return false; + } + return true; +} + +/* connection preface and settings frame to be sent by the client */ +#define CONNECTION_PREFACE_FROM_CLIENT \ + "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" \ + "\x00\x00\x00\x04\x00\x00\x00\x00\x00" + +grpc_bad_client_arg connection_preface_arg = { + client_connection_preface_validator, nullptr, + CONNECTION_PREFACE_FROM_CLIENT, sizeof(CONNECTION_PREFACE_FROM_CLIENT) - 1}; + +bool rst_stream_client_validator(grpc_slice_buffer* incoming, void* arg) { + // Get last frame from incoming slice buffer. + grpc_slice_buffer last_frame_buffer; + grpc_slice_buffer_init(&last_frame_buffer); + grpc_slice_buffer_trim_end(incoming, 13, &last_frame_buffer); + GPR_ASSERT(last_frame_buffer.count == 1); + grpc_slice last_frame = last_frame_buffer.slices[0]; + + const uint8_t* p = GRPC_SLICE_START_PTR(last_frame); + bool success = + // Length == 4 + *p++ != 0 || *p++ != 0 || *p++ != 4 || + // Frame type (RST_STREAM) + *p++ != 3 || + // Flags + *p++ != 0 || + // Stream ID. + *p++ != 0 || *p++ != 0 || *p++ != 0 || *p++ != 1 || + // Payload (error code) + *p++ == 0 || *p++ == 0 || *p++ == 0 || *p == 0 || *p == 11; + + if (!success) { + gpr_log(GPR_INFO, "client expected RST_STREAM frame, not found"); + } + + grpc_slice_buffer_destroy(&last_frame_buffer); + return success; +} + +static void* tag(intptr_t t) { return (void*)t; } + +void server_verifier_request_call(grpc_server* server, + grpc_completion_queue* cq, + void* registered_method) { + grpc_call_error error; + grpc_call* s; + grpc_call_details call_details; + cq_verifier* cqv = cq_verifier_create(cq); + grpc_metadata_array request_metadata_recv; + + grpc_call_details_init(&call_details); + grpc_metadata_array_init(&request_metadata_recv); + + error = grpc_server_request_call(server, &s, &call_details, + &request_metadata_recv, cq, cq, tag(101)); + GPR_ASSERT(GRPC_CALL_OK == error); + CQ_EXPECT_COMPLETION(cqv, tag(101), 1); + cq_verify(cqv); + + GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.host, "localhost")); + GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.method, "/foo/bar")); + + grpc_metadata_array_destroy(&request_metadata_recv); + grpc_call_details_destroy(&call_details); + grpc_call_unref(s); + cq_verifier_destroy(cqv); +} diff --git a/test/core/bad_client/bad_client.h b/test/core/bad_client/bad_client.h index d3abfac2aa..de7d830cd7 100644 --- a/test/core/bad_client/bad_client.h +++ b/test/core/bad_client/bad_client.h @@ -28,30 +28,69 @@ #define GRPC_BAD_CLIENT_REGISTERED_METHOD "/registered/bar" #define GRPC_BAD_CLIENT_REGISTERED_HOST "localhost" +/* The server side validator function to run */ typedef void (*grpc_bad_client_server_side_validator)(grpc_server* server, grpc_completion_queue* cq, void* registered_method); -// Returns false if we need to read more data. +/* Returns false if we need to read more data. */ typedef bool (*grpc_bad_client_client_stream_validator)( - grpc_slice_buffer* incoming); + grpc_slice_buffer* incoming, void* arg); +struct grpc_bad_client_arg { + grpc_bad_client_client_stream_validator client_validator; + void* client_validator_arg; + const char* client_payload; + size_t client_payload_length; +}; + +/* Flags for grpc_run_bad_client_test */ #define GRPC_BAD_CLIENT_DISCONNECT 1 #define GRPC_BAD_CLIENT_LARGE_REQUEST 2 /* Test runner. - - Create a server, and send client_payload to it as bytes from a client. - Execute server_validator in a separate thread to assert that the bytes are - handled as expected. */ + * + * Create a server, and for each arg in \a args send client_payload. For each + * payload, run client_validator to make sure that the response is as expected. + * Also execute \a server_validator in a separate thread to assert that the + * bytes are handled as expected. + * + * The flags are only applicable to the last validator in the array. (This can + * be changed in the future if necessary) + */ void grpc_run_bad_client_test( grpc_bad_client_server_side_validator server_validator, - grpc_bad_client_client_stream_validator client_validator, - const char* client_payload, size_t client_payload_length, uint32_t flags); + grpc_bad_client_arg args[], int num_args, uint32_t flags); + +/* A hack to let old tests work as before. In these tests, instead of an array, + * the tests provide a single client_validator and payload + */ +#define COMBINE1(X, Y) X##Y +#define COMBINE(X, Y) COMBINE1(X, Y) + +#define GRPC_RUN_BAD_CLIENT_TEST(server_validator, client_validator, payload, \ + flags) \ + grpc_bad_client_arg COMBINE(bca, __LINE__) = {client_validator, nullptr, \ + payload, sizeof(payload) - 1}; \ + grpc_run_bad_client_test(server_validator, &COMBINE(bca, __LINE__), 1, flags) + +/* Helper validator functions */ +/* Client side validator for connection preface from server. \a arg is unused */ +bool client_connection_preface_validator(grpc_slice_buffer* incoming, + void* arg); + +/* Client side validator for checking if reset stream is present at the end + * of the buffer. \a arg is unused. + */ +bool rst_stream_client_validator(grpc_slice_buffer* incoming, void* arg); -#define GRPC_RUN_BAD_CLIENT_TEST(server_validator, client_validator, payload, \ - flags) \ - grpc_run_bad_client_test(server_validator, client_validator, payload, \ - sizeof(payload) - 1, flags) +/* Helper grpc_bad_client_arg arguments for direct use */ +/* Sends a connection preface from the client with an empty settings frame */ +extern grpc_bad_client_arg connection_preface_arg; +/* Server side verifier function that performs a + * single grpc_server_request_call */ +void server_verifier_request_call(grpc_server* server, + grpc_completion_queue* cq, + void* registered_method); #endif /* GRPC_TEST_CORE_BAD_CLIENT_BAD_CLIENT_H */ diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py index 14c8a27334..32afba5b1f 100755 --- a/test/core/bad_client/gen_build_yaml.py +++ b/test/core/bad_client/gen_build_yaml.py @@ -27,10 +27,11 @@ default_test_options = TestOptions(False, 1.0) BAD_CLIENT_TESTS = { 'badreq': default_test_options, 'connection_prefix': default_test_options._replace(cpu_cost=0.2), + 'duplicate_header': default_test_options, 'headers': default_test_options._replace(cpu_cost=0.2), 'initial_settings_frame': default_test_options._replace(cpu_cost=0.2), 'head_of_line_blocking': default_test_options, - # 'large_metadata': default_test_options, #disabling as per issue #11745 + 'large_metadata': default_test_options, 'server_registered_method': default_test_options, 'simple_request': default_test_options, 'window_overflow': default_test_options, diff --git a/test/core/bad_client/generate_tests.bzl b/test/core/bad_client/generate_tests.bzl index 022edf3ff3..2769d5c3bb 100755 --- a/test/core/bad_client/generate_tests.bzl +++ b/test/core/bad_client/generate_tests.bzl @@ -16,6 +16,7 @@ """Generates the appropriate build.json data for all the bad_client tests.""" +load("//bazel:grpc_build_system.bzl", "grpc_cc_test", "grpc_cc_library") def test_options(): return struct() @@ -25,10 +26,11 @@ def test_options(): BAD_CLIENT_TESTS = { 'badreq': test_options(), 'connection_prefix': test_options(), + 'duplicate_header': test_options(), 'headers': test_options(), 'initial_settings_frame': test_options(), 'head_of_line_blocking': test_options(), - # 'large_metadata': test_options(), # disabling as per issue #11745 + 'large_metadata': test_options(), 'server_registered_method': test_options(), 'simple_request': test_options(), 'window_overflow': test_options(), @@ -36,14 +38,14 @@ BAD_CLIENT_TESTS = { } def grpc_bad_client_tests(): - native.cc_library( + grpc_cc_library( name = 'bad_client_test', srcs = ['bad_client.cc'], hdrs = ['bad_client.h'], deps = ['//test/core/util:grpc_test_util', '//:grpc', '//:gpr', '//test/core/end2end:cq_verifier'] ) for t, topt in BAD_CLIENT_TESTS.items(): - native.cc_test( + grpc_cc_test( name = '%s_bad_client_test' % t, srcs = ['tests/%s.cc' % t], deps = [':bad_client_test'], diff --git a/test/core/bad_client/tests/duplicate_header.cc b/test/core/bad_client/tests/duplicate_header.cc new file mode 100644 index 0000000000..e3cae8b595 --- /dev/null +++ b/test/core/bad_client/tests/duplicate_header.cc @@ -0,0 +1,136 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * 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. + * + */ + +#include "test/core/bad_client/bad_client.h" + +#include <string.h> + +#include <grpc/grpc.h> + +#include "src/core/lib/surface/server.h" +#include "test/core/end2end/cq_verifier.h" + +#define PFX_STR \ + "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" \ + "\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* settings frame */ + +#define HEADER_STR \ + "\x00\x00\xc9\x01\x04\x00\x00\x00\x01" /* headers: generated from \ + simple_request.headers in this \ + directory */ \ + "\x10\x05:path\x08/foo/bar" \ + "\x10\x07:scheme\x04http" \ + "\x10\x07:method\x04POST" \ + "\x10\x0a:authority\x09localhost" \ + "\x10\x0c" \ + "content-type\x10" \ + "application/grpc" \ + "\x10\x14grpc-accept-encoding\x15" \ + "deflate,identity,gzip" \ + "\x10\x02te\x08trailers" \ + "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)" + +#define PAYLOAD_STR \ + "\x00\x00\x20\x00\x00\x00\x00\x00\x01" \ + "\x00\x00\x00\x00" + +static void* tag(intptr_t t) { return (void*)t; } + +static void verifier(grpc_server* server, grpc_completion_queue* cq, + void* registered_method) { + grpc_call_error error; + grpc_call* s; + grpc_call_details call_details; + grpc_byte_buffer* request_payload_recv = nullptr; + grpc_op* op; + grpc_op ops[6]; + cq_verifier* cqv = cq_verifier_create(cq); + grpc_metadata_array request_metadata_recv; + int was_cancelled = 2; + + grpc_call_details_init(&call_details); + grpc_metadata_array_init(&request_metadata_recv); + + error = grpc_server_request_call(server, &s, &call_details, + &request_metadata_recv, cq, cq, tag(101)); + GPR_ASSERT(GRPC_CALL_OK == error); + CQ_EXPECT_COMPLETION(cqv, tag(101), 1); + cq_verify(cqv); + + GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.host, "localhost")); + GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.method, "/foo/bar")); + + memset(ops, 0, sizeof(ops)); + op = ops; + op->op = GRPC_OP_SEND_INITIAL_METADATA; + op->data.send_initial_metadata.count = 0; + op->flags = 0; + op->reserved = nullptr; + op++; + op->op = GRPC_OP_RECV_MESSAGE; + op->data.recv_message.recv_message = &request_payload_recv; + op->flags = 0; + op->reserved = nullptr; + op++; + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); + GPR_ASSERT(GRPC_CALL_OK == error); + + CQ_EXPECT_COMPLETION(cqv, tag(102), 1); + cq_verify(cqv); + + memset(ops, 0, sizeof(ops)); + op = ops; + op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; + op->data.recv_close_on_server.cancelled = &was_cancelled; + op->flags = 0; + op->reserved = nullptr; + op++; + op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; + op->data.send_status_from_server.trailing_metadata_count = 0; + op->data.send_status_from_server.status = GRPC_STATUS_UNIMPLEMENTED; + grpc_slice status_details = grpc_slice_from_static_string("xyz"); + op->data.send_status_from_server.status_details = &status_details; + op->flags = 0; + op->reserved = nullptr; + op++; + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); + GPR_ASSERT(GRPC_CALL_OK == error); + + CQ_EXPECT_COMPLETION(cqv, tag(103), 1); + + grpc_metadata_array_destroy(&request_metadata_recv); + grpc_call_details_destroy(&call_details); + grpc_call_unref(s); + cq_verifier_destroy(cqv); +} + +int main(int argc, char** argv) { + grpc_test_init(argc, argv); + grpc_init(); + + /* Verify that sending multiple headers doesn't segfault */ + GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, + PFX_STR HEADER_STR HEADER_STR PAYLOAD_STR, 0); + GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr, + PFX_STR HEADER_STR HEADER_STR HEADER_STR PAYLOAD_STR, + 0); + grpc_shutdown(); + return 0; +} diff --git a/test/core/bad_client/tests/head_of_line_blocking.cc b/test/core/bad_client/tests/head_of_line_blocking.cc index f56c4d71dd..427db46446 100644 --- a/test/core/bad_client/tests/head_of_line_blocking.cc +++ b/test/core/bad_client/tests/head_of_line_blocking.cc @@ -117,9 +117,9 @@ int main(int argc, char** argv) { addbuf(prefix, sizeof(prefix) - 1); for (i = 0; i < NUM_FRAMES; i++) { - uint8_t hdr[9] = {(uint8_t)(FRAME_SIZE >> 16), - (uint8_t)(FRAME_SIZE >> 8), - (uint8_t)FRAME_SIZE, + uint8_t hdr[9] = {static_cast<uint8_t>(FRAME_SIZE >> 16), + static_cast<uint8_t>(FRAME_SIZE >> 8), + static_cast<uint8_t>(FRAME_SIZE), 0, 0, 0, @@ -131,7 +131,8 @@ int main(int argc, char** argv) { addbuf(hdr, sizeof(hdr)); addbuf(msg, FRAME_SIZE); } - grpc_run_bad_client_test(verifier, nullptr, g_buffer, g_count, 0); + grpc_bad_client_arg bca = {nullptr, nullptr, g_buffer, g_count}; + grpc_run_bad_client_test(verifier, &bca, 1, 0); gpr_free(g_buffer); grpc_shutdown(); diff --git a/test/core/bad_client/tests/large_metadata.cc b/test/core/bad_client/tests/large_metadata.cc index ff3e9eb932..d534753f53 100644 --- a/test/core/bad_client/tests/large_metadata.cc +++ b/test/core/bad_client/tests/large_metadata.cc @@ -31,23 +31,20 @@ // be longer than the C99 string literal limit. Instead, we dynamically // construct it by adding the large headers one at a time. -#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR \ - "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" /* settings frame */ \ - "\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* headers: generated from \ - large_metadata.headers in this \ - directory */ \ - "\x00\x00\x00\x04\x01\x00\x00\x00\x00" \ - "\x00" \ - "5{\x01\x05\x00\x00\x00\x01" \ - "\x10\x05:path\x08/foo/bar" \ - "\x10\x07:scheme\x04http" \ - "\x10\x07:method\x04POST" \ - "\x10\x0a:authority\x09localhost" \ - "\x10\x0c" \ - "content-type\x10" \ - "application/grpc" \ - "\x10\x14grpc-accept-encoding\x15identity,deflate,gzip" \ - "\x10\x02te\x08trailers" \ +/* headers: generated from large_metadata.headers in this directory */ +#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_REQUEST \ + "\x00\x00\x00\x04\x01\x00\x00\x00\x00" \ + "\x00" \ + "5{\x01\x05\x00\x00\x00\x01" \ + "\x10\x05:path\x08/foo/bar" \ + "\x10\x07:scheme\x04http" \ + "\x10\x07:method\x04POST" \ + "\x10\x0a:authority\x09localhost" \ + "\x10\x0c" \ + "content-type\x10" \ + "application/grpc" \ + "\x10\x14grpc-accept-encoding\x15identity,deflate,gzip" \ + "\x10\x02te\x08trailers" \ "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)" // Each large-metadata header is constructed from these start and end @@ -65,8 +62,8 @@ // The number of headers we're adding and the total size of the client // payload. #define NUM_HEADERS 46 -#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_PAYLOAD_SIZE \ - ((sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR) - 1) + \ +#define TOO_MUCH_METADATA_FROM_CLIENT_REQUEST_SIZE \ + ((sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_REQUEST) - 1) + \ (NUM_HEADERS * PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_SIZE) + 1) #define PFX_TOO_MUCH_METADATA_FROM_SERVER_STR \ @@ -95,32 +92,6 @@ static void* tag(intptr_t t) { return (void*)t; } -static void server_verifier(grpc_server* server, grpc_completion_queue* cq, - void* registered_method) { - grpc_call_error error; - grpc_call* s; - grpc_call_details call_details; - cq_verifier* cqv = cq_verifier_create(cq); - grpc_metadata_array request_metadata_recv; - - grpc_call_details_init(&call_details); - grpc_metadata_array_init(&request_metadata_recv); - - error = grpc_server_request_call(server, &s, &call_details, - &request_metadata_recv, cq, cq, tag(101)); - GPR_ASSERT(GRPC_CALL_OK == error); - CQ_EXPECT_COMPLETION(cqv, tag(101), 1); - cq_verify(cqv); - - GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.host, "localhost")); - GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.method, "/foo/bar")); - - grpc_metadata_array_destroy(&request_metadata_recv); - grpc_call_details_destroy(&call_details); - grpc_call_unref(s); - cq_verifier_destroy(cqv); -} - static void server_verifier_sends_too_much_metadata(grpc_server* server, grpc_completion_queue* cq, void* registered_method) { @@ -167,43 +138,6 @@ static void server_verifier_sends_too_much_metadata(grpc_server* server, cq_verifier_destroy(cqv); } -static bool client_validator(grpc_slice_buffer* incoming) { - for (size_t i = 0; i < incoming->count; ++i) { - const char* s = (const char*)GRPC_SLICE_START_PTR(incoming->slices[i]); - char* hex = gpr_dump(s, GRPC_SLICE_LENGTH(incoming->slices[i]), - GPR_DUMP_HEX | GPR_DUMP_ASCII); - gpr_log(GPR_INFO, "RESPONSE SLICE %" PRIdPTR ": %s", i, hex); - gpr_free(hex); - } - - // Get last frame from incoming slice buffer. - grpc_slice_buffer last_frame_buffer; - grpc_slice_buffer_init(&last_frame_buffer); - grpc_slice_buffer_trim_end(incoming, 13, &last_frame_buffer); - GPR_ASSERT(last_frame_buffer.count == 1); - grpc_slice last_frame = last_frame_buffer.slices[0]; - - const uint8_t* p = GRPC_SLICE_START_PTR(last_frame); - bool success = - // Length == 4 - *p++ != 0 || *p++ != 0 || *p++ != 4 || - // Frame type (RST_STREAM) - *p++ != 3 || - // Flags - *p++ != 0 || - // Stream ID. - *p++ != 0 || *p++ != 0 || *p++ != 0 || *p++ != 1 || - // Payload (error code) - *p++ == 0 || *p++ == 0 || *p++ == 0 || *p == 0 || *p == 11; - - if (!success) { - gpr_log(GPR_INFO, "client expected RST_STREAM frame, not found"); - } - - grpc_slice_buffer_destroy(&last_frame_buffer); - return success; -} - int main(int argc, char** argv) { int i; @@ -222,19 +156,22 @@ int main(int argc, char** argv) { size_t headers_len; const char* client_headers = gpr_strvec_flatten(&headers, &headers_len); gpr_strvec_destroy(&headers); - char client_payload[PFX_TOO_MUCH_METADATA_FROM_CLIENT_PAYLOAD_SIZE] = - PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR; - memcpy( - client_payload + sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR) - 1, - client_headers, headers_len); - GRPC_RUN_BAD_CLIENT_TEST(server_verifier, client_validator, client_payload, - 0); + char client_payload[TOO_MUCH_METADATA_FROM_CLIENT_REQUEST_SIZE] = + PFX_TOO_MUCH_METADATA_FROM_CLIENT_REQUEST; + memcpy(client_payload + sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_REQUEST) - 1, + client_headers, headers_len); + grpc_bad_client_arg args[2]; + args[0] = connection_preface_arg; + args[1].client_validator = rst_stream_client_validator; + args[1].client_payload = client_payload; + args[1].client_payload_length = sizeof(client_payload) - 1; + + grpc_run_bad_client_test(server_verifier_request_call, args, 2, 0); gpr_free((void*)client_headers); // Test sending more metadata than the client will accept. GRPC_RUN_BAD_CLIENT_TEST(server_verifier_sends_too_much_metadata, - client_validator, + rst_stream_client_validator, PFX_TOO_MUCH_METADATA_FROM_SERVER_STR, 0); - return 0; } diff --git a/test/core/bad_client/tests/window_overflow.cc b/test/core/bad_client/tests/window_overflow.cc index ed8279c951..b552704e9c 100644 --- a/test/core/bad_client/tests/window_overflow.cc +++ b/test/core/bad_client/tests/window_overflow.cc @@ -26,8 +26,7 @@ #include "src/core/lib/surface/server.h" #define PFX_STR \ - "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" \ - "\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* settings frame */ \ + "\x00\x00\x00\x04\x01\x00\x00\x00\x00" \ "\x00\x00\xc9\x01\x04\x00\x00\x00\x01" /* headers: generated from \ simple_request.headers in this \ directory */ \ @@ -70,16 +69,17 @@ int main(int argc, char** argv) { #define MAX_FRAME_SIZE 16384 #define MESSAGES_PER_FRAME (MAX_FRAME_SIZE / 5) #define FRAME_SIZE (MESSAGES_PER_FRAME * 5) -#define SEND_SIZE (6 * 1024 * 1024) +#define SEND_SIZE (4 * 1024 * 1024) #define NUM_FRAMES (SEND_SIZE / FRAME_SIZE + 1) grpc_test_init(argc, argv); grpc_init(); addbuf(PFX_STR, sizeof(PFX_STR) - 1); for (i = 0; i < NUM_FRAMES; i++) { - uint8_t hdr[9] = {(uint8_t)(FRAME_SIZE >> 16), - (uint8_t)(FRAME_SIZE >> 8), - (uint8_t)FRAME_SIZE, + uint8_t hdr[9] = {static_cast<uint8_t>(FRAME_SIZE >> 16), + static_cast<uint8_t>(FRAME_SIZE >> 8), + static_cast<uint8_t> + FRAME_SIZE, 0, 0, 0, @@ -92,8 +92,10 @@ int main(int argc, char** argv) { addbuf(message, sizeof(message)); } } - grpc_run_bad_client_test(verifier, nullptr, g_buffer, g_count, - GRPC_BAD_CLIENT_LARGE_REQUEST); + grpc_bad_client_arg bca[2]; + bca[0] = connection_preface_arg; + bca[1] = {rst_stream_client_validator, nullptr, g_buffer, g_count}; + grpc_run_bad_client_test(verifier, bca, 2, GRPC_BAD_CLIENT_LARGE_REQUEST); gpr_free(g_buffer); grpc_shutdown(); diff --git a/test/core/bad_ssl/bad_ssl_test.cc b/test/core/bad_ssl/bad_ssl_test.cc index 8a7960b5ed..e2ea7540ef 100644 --- a/test/core/bad_ssl/bad_ssl_test.cc +++ b/test/core/bad_ssl/bad_ssl_test.cc @@ -22,14 +22,15 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/subprocess.h> + #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/util/port.h" +#include "test/core/util/subprocess.h" #include "test/core/util/test_config.h" static void* tag(intptr_t t) { return (void*)t; } @@ -126,7 +127,7 @@ int main(int argc, char** argv) { gpr_subprocess* svr; /* figure out where we are */ if (lslash) { - memcpy(root, me, (size_t)(lslash - me)); + memcpy(root, me, static_cast<size_t>(lslash - me)); root[lslash - me] = 0; } else { strcpy(root, "."); @@ -138,7 +139,7 @@ int main(int argc, char** argv) { tmp = lunder - 1; while (*tmp != '_') tmp--; tmp++; - memcpy(test, tmp, (size_t)(lunder - tmp)); + memcpy(test, tmp, static_cast<size_t>(lunder - tmp)); /* start the server */ gpr_asprintf(&args[0], "%s/bad_ssl_%s_server%s", root, test, gpr_subprocess_binary_extension()); diff --git a/test/core/bad_ssl/generate_tests.bzl b/test/core/bad_ssl/generate_tests.bzl index b7cb8f86e6..3cf7fd7b4e 100755 --- a/test/core/bad_ssl/generate_tests.bzl +++ b/test/core/bad_ssl/generate_tests.bzl @@ -26,12 +26,23 @@ def grpc_bad_ssl_tests(): name = 'bad_ssl_test_server', srcs = ['server_common.cc'], hdrs = ['server_common.h'], - deps = ['//test/core/util:grpc_test_util', '//:grpc', '//test/core/end2end:ssl_test_data'] + deps = ['//test/core/util:grpc_test_util', + '//:grpc', + '//test/core/end2end:ssl_test_data'] ) for t in BAD_SSL_TESTS: - native.cc_test( + native.cc_binary( name = 'bad_ssl_%s_server' % t, srcs = ['servers/%s.cc' % t], deps = [':bad_ssl_test_server'], ) - + native.cc_test( + name = 'bad_ssl_%s_test' % t, + srcs = ['bad_ssl_test.cc'], + data = [':bad_ssl_%s_server' % t, + '//src/core/tsi/test_creds:badserver.key', + '//src/core/tsi/test_creds:badserver.pem',], + deps = ['//test/core/util:grpc_test_util', + '//:gpr', + '//test/core/end2end:cq_verifier'], + ) diff --git a/test/core/bad_ssl/server_common.cc b/test/core/bad_ssl/server_common.cc index 08842b8350..809539aff3 100644 --- a/test/core/bad_ssl/server_common.cc +++ b/test/core/bad_ssl/server_common.cc @@ -16,11 +16,11 @@ * */ -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include <signal.h> #include "test/core/bad_ssl/server_common.h" +#include "test/core/util/cmdline.h" #include "test/core/util/test_config.h" /* Common server implementation details for all servers in servers/. diff --git a/test/core/bad_ssl/servers/alpn.cc b/test/core/bad_ssl/servers/alpn.cc index 23954d82fd..4a04178b1c 100644 --- a/test/core/bad_ssl/servers/alpn.cc +++ b/test/core/bad_ssl/servers/alpn.cc @@ -21,9 +21,9 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "src/core/ext/transport/chttp2/alpn/alpn.h" +#include "src/core/lib/gpr/useful.h" #include "test/core/bad_ssl/server_common.h" #include "test/core/end2end/data/ssl_test_data.h" diff --git a/test/core/bad_ssl/servers/cert.cc b/test/core/bad_ssl/servers/cert.cc index a51dd34e4b..0722d6b57c 100644 --- a/test/core/bad_ssl/servers/cert.cc +++ b/test/core/bad_ssl/servers/cert.cc @@ -21,7 +21,6 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "src/core/lib/iomgr/load_file.h" @@ -46,8 +45,10 @@ int main(int argc, char** argv) { GPR_ASSERT(GRPC_LOG_IF_ERROR( "load_file", grpc_load_file("src/core/tsi/test_creds/badserver.key", 1, &key_slice))); - pem_key_cert_pair.private_key = (const char*)GRPC_SLICE_START_PTR(key_slice); - pem_key_cert_pair.cert_chain = (const char*)GRPC_SLICE_START_PTR(cert_slice); + pem_key_cert_pair.private_key = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(key_slice); + pem_key_cert_pair.cert_chain = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(cert_slice); ssl_creds = grpc_ssl_server_credentials_create(nullptr, &pem_key_cert_pair, 1, 0, nullptr); diff --git a/test/core/channel/BUILD b/test/core/channel/BUILD index f3b9231d83..b215aa205c 100644 --- a/test/core/channel/BUILD +++ b/test/core/channel/BUILD @@ -55,6 +55,18 @@ grpc_cc_test( ) grpc_cc_test( + name = "minimal_stack_is_minimal_test", + srcs = ["minimal_stack_is_minimal_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) + +grpc_cc_test( name = "channel_tracer_test", srcs = ["channel_tracer_test.cc"], language = "C++", diff --git a/test/core/channel/channel_args_test.cc b/test/core/channel/channel_args_test.cc index 5b0a770c84..57ff7370ad 100644 --- a/test/core/channel/channel_args_test.cc +++ b/test/core/channel/channel_args_test.cc @@ -19,9 +19,9 @@ #include <string.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/util/test_config.h" @@ -62,8 +62,8 @@ static void test_set_compression_algorithm(void) { grpc_core::ExecCtx exec_ctx; grpc_channel_args* ch_args; - ch_args = grpc_channel_args_set_compression_algorithm( - nullptr, GRPC_COMPRESS_MESSAGE_GZIP); + ch_args = + grpc_channel_args_set_compression_algorithm(nullptr, GRPC_COMPRESS_GZIP); GPR_ASSERT(ch_args->num_args == 1); GPR_ASSERT(strcmp(ch_args->args[0].key, GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM) == 0); @@ -81,29 +81,30 @@ static void test_compression_algorithm_states(void) { ch_args = grpc_channel_args_copy_and_add(nullptr, nullptr, 0); /* by default, all enabled */ - states_bitset = - (unsigned)grpc_channel_args_compression_algorithm_get_states(ch_args); + states_bitset = static_cast<unsigned>( + grpc_channel_args_compression_algorithm_get_states(ch_args)); for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) { GPR_ASSERT(GPR_BITGET(states_bitset, i)); } - /* disable message/gzip and message/deflate and stream/gzip */ + /* disable gzip and deflate and stream/gzip */ ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state( - &ch_args, GRPC_COMPRESS_MESSAGE_GZIP, 0); + &ch_args, GRPC_COMPRESS_GZIP, 0); GPR_ASSERT(ch_args == ch_args_wo_gzip); ch_args_wo_gzip_deflate = grpc_channel_args_compression_algorithm_set_state( - &ch_args_wo_gzip, GRPC_COMPRESS_MESSAGE_DEFLATE, 0); + &ch_args_wo_gzip, GRPC_COMPRESS_DEFLATE, 0); GPR_ASSERT(ch_args_wo_gzip == ch_args_wo_gzip_deflate); ch_args_wo_gzip_deflate_gzip = grpc_channel_args_compression_algorithm_set_state( &ch_args_wo_gzip_deflate, GRPC_COMPRESS_STREAM_GZIP, 0); GPR_ASSERT(ch_args_wo_gzip_deflate == ch_args_wo_gzip_deflate_gzip); - states_bitset = (unsigned)grpc_channel_args_compression_algorithm_get_states( - ch_args_wo_gzip_deflate); + states_bitset = + static_cast<unsigned>(grpc_channel_args_compression_algorithm_get_states( + ch_args_wo_gzip_deflate)); for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) { - if (i == GRPC_COMPRESS_MESSAGE_GZIP || i == GRPC_COMPRESS_MESSAGE_DEFLATE || + if (i == GRPC_COMPRESS_GZIP || i == GRPC_COMPRESS_DEFLATE || i == GRPC_COMPRESS_STREAM_GZIP) { GPR_ASSERT(GPR_BITGET(states_bitset, i) == 0); } else { @@ -111,17 +112,17 @@ static void test_compression_algorithm_states(void) { } } - /* re-enabled message/gzip and stream/gzip only */ + /* re-enabled gzip and stream/gzip only */ ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state( - &ch_args_wo_gzip_deflate_gzip, GRPC_COMPRESS_MESSAGE_GZIP, 1); + &ch_args_wo_gzip_deflate_gzip, GRPC_COMPRESS_GZIP, 1); ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state( &ch_args_wo_gzip, GRPC_COMPRESS_STREAM_GZIP, 1); GPR_ASSERT(ch_args_wo_gzip == ch_args_wo_gzip_deflate_gzip); - states_bitset = (unsigned)grpc_channel_args_compression_algorithm_get_states( - ch_args_wo_gzip); + states_bitset = static_cast<unsigned>( + grpc_channel_args_compression_algorithm_get_states(ch_args_wo_gzip)); for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) { - if (i == GRPC_COMPRESS_MESSAGE_DEFLATE) { + if (i == GRPC_COMPRESS_DEFLATE) { GPR_ASSERT(GPR_BITGET(states_bitset, i) == 0); } else { GPR_ASSERT(GPR_BITGET(states_bitset, i) != 0); diff --git a/test/core/channel/channel_stack_builder_test.cc b/test/core/channel/channel_stack_builder_test.cc index ef6db81b0b..aad6d6eee9 100644 --- a/test/core/channel/channel_stack_builder_test.cc +++ b/test/core/channel/channel_stack_builder_test.cc @@ -116,7 +116,7 @@ static bool add_replacement_filter(grpc_channel_stack_builder* builder, static bool add_original_filter(grpc_channel_stack_builder* builder, void* arg) { return grpc_channel_stack_builder_prepend_filter( - builder, (const grpc_channel_filter*)arg, set_arg_once_fn, + builder, static_cast<const grpc_channel_filter*>(arg), set_arg_once_fn, &g_original_fn_called); } diff --git a/test/core/channel/channel_stack_test.cc b/test/core/channel/channel_stack_test.cc index ef43facd6e..2f5329a96d 100644 --- a/test/core/channel/channel_stack_test.cc +++ b/test/core/channel/channel_stack_test.cc @@ -35,14 +35,14 @@ static grpc_error* channel_init_func(grpc_channel_element* elem, GPR_ASSERT(args->channel_args->args[0].value.integer == 42); GPR_ASSERT(args->is_first); GPR_ASSERT(args->is_last); - *(int*)(elem->channel_data) = 0; + *static_cast<int*>(elem->channel_data) = 0; return GRPC_ERROR_NONE; } static grpc_error* call_init_func(grpc_call_element* elem, const grpc_call_element_args* args) { - ++*(int*)(elem->channel_data); - *(int*)(elem->call_data) = 0; + ++*static_cast<int*>(elem->channel_data); + *static_cast<int*>(elem->call_data) = 0; return GRPC_ERROR_NONE; } @@ -51,16 +51,16 @@ static void channel_destroy_func(grpc_channel_element* elem) {} static void call_destroy_func(grpc_call_element* elem, const grpc_call_final_info* final_info, grpc_closure* ignored) { - ++*(int*)(elem->channel_data); + ++*static_cast<int*>(elem->channel_data); } static void call_func(grpc_call_element* elem, grpc_transport_stream_op_batch* op) { - ++*(int*)(elem->call_data); + ++*static_cast<int*>(elem->call_data); } static void channel_func(grpc_channel_element* elem, grpc_transport_op* op) { - ++*(int*)(elem->channel_data); + ++*static_cast<int*>(elem->channel_data); } static void free_channel(void* arg, grpc_error* error) { @@ -111,7 +111,7 @@ static void test_create_channel_stack(void) { &chan_args, nullptr, "test", channel_stack); GPR_ASSERT(channel_stack->count == 1); channel_elem = grpc_channel_stack_element(channel_stack, 0); - channel_data = (int*)channel_elem->channel_data; + channel_data = static_cast<int*>(channel_elem->channel_data); GPR_ASSERT(*channel_data == 0); call_stack = @@ -133,7 +133,7 @@ static void test_create_channel_stack(void) { call_elem = grpc_call_stack_element(call_stack, 0); GPR_ASSERT(call_elem->filter == channel_elem->filter); GPR_ASSERT(call_elem->channel_data == channel_elem->channel_data); - call_data = (int*)call_elem->call_data; + call_data = static_cast<int*>(call_elem->call_data); GPR_ASSERT(*call_data == 0); GPR_ASSERT(*channel_data == 1); diff --git a/test/core/channel/channel_tracer_test.cc b/test/core/channel/channel_tracer_test.cc index 6166b85ea8..5ac15ff6cd 100644 --- a/test/core/channel/channel_tracer_test.cc +++ b/test/core/channel/channel_tracer_test.cc @@ -21,9 +21,9 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_tracer.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/util/channel_tracing_utils.h" diff --git a/test/core/client_channel/BUILD b/test/core/client_channel/BUILD index ec72e0ea72..c4d12fe3a1 100644 --- a/test/core/client_channel/BUILD +++ b/test/core/client_channel/BUILD @@ -23,8 +23,19 @@ load("//test/core/util:grpc_fuzzer.bzl", "grpc_fuzzer") grpc_fuzzer( name = "uri_fuzzer_test", srcs = ["uri_fuzzer_test.cc"], - language = "C++", corpus = "uri_corpus", + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/util:grpc_test_util", + ], +) + +grpc_cc_test( + name = "parse_address_test", + srcs = ["parse_address_test.cc"], + language = "C++", deps = [ "//:gpr", "//:grpc", @@ -33,14 +44,13 @@ grpc_fuzzer( ) grpc_cc_test( - name = "lb_policies_test", - srcs = ["lb_policies_test.cc"], + name = "uri_parser_test", + srcs = ["uri_parser_test.cc"], language = "C++", deps = [ "//:gpr", "//:grpc", - "//test/core/end2end:cq_verifier", - "//test/core/util:gpr_test_util", "//test/core/util:grpc_test_util", ], ) + diff --git a/test/core/client_channel/lb_policies_test.cc b/test/core/client_channel/lb_policies_test.cc deleted file mode 100644 index 716c63b9d0..0000000000 --- a/test/core/client_channel/lb_policies_test.cc +++ /dev/null @@ -1,1029 +0,0 @@ -/* - * - * Copyright 2015 gRPC authors. - * - * 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. - * - */ - -#include <stdarg.h> -#include <string.h> - -#include <grpc/grpc.h> -#include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> -#include <grpc/support/log.h> -#include <grpc/support/string_util.h> -#include <grpc/support/time.h> - -#include "src/core/ext/filters/client_channel/client_channel.h" -#include "src/core/ext/filters/client_channel/lb_policy_registry.h" -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/channel/channel_stack.h" -#include "src/core/lib/gpr/string.h" -#include "src/core/lib/surface/channel.h" -#include "src/core/lib/surface/server.h" -#include "test/core/end2end/cq_verifier.h" -#include "test/core/util/port.h" -#include "test/core/util/test_config.h" - -#define RETRY_TIMEOUT 300 - -typedef struct servers_fixture { - size_t num_servers; - grpc_server** servers; - grpc_call** server_calls; - grpc_completion_queue* cq; - grpc_completion_queue* shutdown_cq; - char** servers_hostports; - grpc_metadata_array* request_metadata_recv; -} servers_fixture; - -typedef struct request_sequences { - size_t n; /* number of iterations */ - int* connections; /* indexed by the interation number, value is the index of - the server it connected to or -1 if none */ - /* indexed by the interation number, value is the client connectivity state */ - grpc_connectivity_state* connectivity_states; -} request_sequences; - -typedef void (*verifier_fn)(const servers_fixture*, grpc_channel*, - const request_sequences*, const size_t); - -typedef struct test_spec { - size_t num_iters; - size_t num_servers; - - int** kill_at; - int** revive_at; - - const char* description; - - verifier_fn verifier; - -} test_spec; - -static void test_spec_reset(test_spec* spec) { - size_t i, j; - - for (i = 0; i < spec->num_iters; i++) { - for (j = 0; j < spec->num_servers; j++) { - spec->kill_at[i][j] = 0; - spec->revive_at[i][j] = 0; - } - } -} - -static test_spec* test_spec_create(size_t num_iters, size_t num_servers) { - test_spec* spec; - size_t i; - - spec = static_cast<test_spec*>(gpr_malloc(sizeof(test_spec))); - spec->num_iters = num_iters; - spec->num_servers = num_servers; - spec->kill_at = static_cast<int**>(gpr_malloc(sizeof(int*) * num_iters)); - spec->revive_at = static_cast<int**>(gpr_malloc(sizeof(int*) * num_iters)); - for (i = 0; i < num_iters; i++) { - spec->kill_at[i] = static_cast<int*>(gpr_malloc(sizeof(int) * num_servers)); - spec->revive_at[i] = - static_cast<int*>(gpr_malloc(sizeof(int) * num_servers)); - } - - test_spec_reset(spec); - return spec; -} - -static void test_spec_destroy(test_spec* spec) { - size_t i; - for (i = 0; i < spec->num_iters; i++) { - gpr_free(spec->kill_at[i]); - gpr_free(spec->revive_at[i]); - } - - gpr_free(spec->kill_at); - gpr_free(spec->revive_at); - - gpr_free(spec); -} - -static void* tag(intptr_t t) { return (void*)t; } - -static gpr_timespec n_millis_time(int n) { - return gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_millis(n, GPR_TIMESPAN)); -} - -static void drain_cq(grpc_completion_queue* cq) { - grpc_event ev; - do { - ev = grpc_completion_queue_next(cq, n_millis_time(5000), nullptr); - } while (ev.type != GRPC_QUEUE_SHUTDOWN); -} - -static void kill_server(const servers_fixture* f, size_t i) { - gpr_log(GPR_INFO, "KILLING SERVER %" PRIuPTR, i); - GPR_ASSERT(f->servers[i] != nullptr); - grpc_server_shutdown_and_notify(f->servers[i], f->shutdown_cq, tag(10000)); - GPR_ASSERT(grpc_completion_queue_pluck(f->shutdown_cq, tag(10000), - n_millis_time(5000), nullptr) - .type == GRPC_OP_COMPLETE); - grpc_server_destroy(f->servers[i]); - f->servers[i] = nullptr; -} - -typedef struct request_data { - grpc_metadata_array initial_metadata_recv; - grpc_metadata_array trailing_metadata_recv; - grpc_slice details; - grpc_status_code status; - grpc_call_details* call_details; -} request_data; - -static void revive_server(const servers_fixture* f, request_data* rdata, - size_t i) { - int got_port; - gpr_log(GPR_INFO, "RAISE AGAIN SERVER %" PRIuPTR, i); - GPR_ASSERT(f->servers[i] == nullptr); - - gpr_log(GPR_DEBUG, "revive: %s", f->servers_hostports[i]); - - f->servers[i] = grpc_server_create(nullptr, nullptr); - grpc_server_register_completion_queue(f->servers[i], f->cq, nullptr); - GPR_ASSERT((got_port = grpc_server_add_insecure_http2_port( - f->servers[i], f->servers_hostports[i])) > 0); - grpc_server_start(f->servers[i]); - - GPR_ASSERT(GRPC_CALL_OK == - grpc_server_request_call(f->servers[i], &f->server_calls[i], - &rdata->call_details[i], - &f->request_metadata_recv[i], f->cq, - f->cq, tag(1000 + (int)i))); -} - -static servers_fixture* setup_servers(const char* server_host, - request_data* rdata, - const size_t num_servers) { - servers_fixture* f = - static_cast<servers_fixture*>(gpr_malloc(sizeof(servers_fixture))); - size_t i; - - f->num_servers = num_servers; - f->server_calls = - static_cast<grpc_call**>(gpr_malloc(sizeof(grpc_call*) * num_servers)); - f->request_metadata_recv = static_cast<grpc_metadata_array*>( - gpr_malloc(sizeof(grpc_metadata_array) * num_servers)); - /* Create servers. */ - f->servers = static_cast<grpc_server**>( - gpr_malloc(sizeof(grpc_server*) * num_servers)); - f->servers_hostports = - static_cast<char**>(gpr_malloc(sizeof(char*) * num_servers)); - f->cq = grpc_completion_queue_create_for_next(nullptr); - f->shutdown_cq = grpc_completion_queue_create_for_pluck(nullptr); - for (i = 0; i < num_servers; i++) { - grpc_metadata_array_init(&f->request_metadata_recv[i]); - gpr_join_host_port(&f->servers_hostports[i], server_host, - grpc_pick_unused_port_or_die()); - f->servers[i] = nullptr; - revive_server(f, rdata, i); - } - return f; -} - -static void teardown_servers(servers_fixture* f) { - size_t i; - /* Destroy server. */ - for (i = 0; i < f->num_servers; i++) { - if (f->servers[i] == nullptr) continue; - grpc_server_shutdown_and_notify(f->servers[i], f->shutdown_cq, tag(10000)); - GPR_ASSERT(grpc_completion_queue_pluck(f->shutdown_cq, tag(10000), - n_millis_time(5000), nullptr) - .type == GRPC_OP_COMPLETE); - grpc_server_destroy(f->servers[i]); - } - grpc_completion_queue_shutdown(f->cq); - drain_cq(f->cq); - grpc_completion_queue_destroy(f->cq); - grpc_completion_queue_destroy(f->shutdown_cq); - - gpr_free(f->servers); - - for (i = 0; i < f->num_servers; i++) { - gpr_free(f->servers_hostports[i]); - grpc_metadata_array_destroy(&f->request_metadata_recv[i]); - } - - gpr_free(f->servers_hostports); - gpr_free(f->request_metadata_recv); - gpr_free(f->server_calls); - gpr_free(f); -} - -static request_sequences request_sequences_create(size_t n) { - request_sequences res; - res.n = n; - res.connections = static_cast<int*>(gpr_malloc(sizeof(*res.connections) * n)); - res.connectivity_states = static_cast<grpc_connectivity_state*>( - gpr_malloc(sizeof(*res.connectivity_states) * n)); - memset(res.connections, 0, sizeof(*res.connections) * n); - memset(res.connectivity_states, 0, sizeof(*res.connectivity_states) * n); - return res; -} - -static void request_sequences_destroy(const request_sequences* rseqs) { - gpr_free(rseqs->connections); - gpr_free(rseqs->connectivity_states); -} - -/** Returns connection sequence (server indices), which must be freed */ -static request_sequences perform_request(servers_fixture* f, - grpc_channel* client, - request_data* rdata, - const test_spec* spec) { - grpc_call* c; - int s_idx; - int* s_valid; - grpc_op ops[6]; - grpc_op* op; - int was_cancelled; - size_t i, iter_num; - grpc_event ev; - int read_tag; - int completed_client; - const request_sequences sequences = request_sequences_create(spec->num_iters); - - s_valid = static_cast<int*>(gpr_malloc(sizeof(int) * f->num_servers)); - - for (iter_num = 0; iter_num < spec->num_iters; iter_num++) { - cq_verifier* cqv = cq_verifier_create(f->cq); - was_cancelled = 2; - - for (i = 0; i < f->num_servers; i++) { - if (spec->kill_at[iter_num][i] != 0) { - kill_server(f, i); - } else if (spec->revive_at[iter_num][i] != 0) { - /* killing takes precedence */ - revive_server(f, rdata, i); - } - } - - sequences.connections[iter_num] = -1; - grpc_metadata_array_init(&rdata->initial_metadata_recv); - grpc_metadata_array_init(&rdata->trailing_metadata_recv); - - for (i = 0; i < f->num_servers; i++) { - grpc_call_details_init(&rdata->call_details[i]); - } - memset(s_valid, 0, f->num_servers * sizeof(int)); - - grpc_slice host = grpc_slice_from_static_string("foo.test.google.fr"); - c = grpc_channel_create_call(client, nullptr, GRPC_PROPAGATE_DEFAULTS, - f->cq, grpc_slice_from_static_string("/foo"), - &host, gpr_inf_future(GPR_CLOCK_REALTIME), - nullptr); - GPR_ASSERT(c); - completed_client = 0; - - memset(ops, 0, sizeof(ops)); - op = ops; - op->op = GRPC_OP_SEND_INITIAL_METADATA; - op->data.send_initial_metadata.count = 0; - op->flags = 0; - op->reserved = nullptr; - op++; - op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; - op->flags = 0; - op->reserved = nullptr; - op++; - op->op = GRPC_OP_RECV_INITIAL_METADATA; - op->data.recv_initial_metadata.recv_initial_metadata = - &rdata->initial_metadata_recv; - op->flags = 0; - op->reserved = nullptr; - op++; - op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; - op->data.recv_status_on_client.trailing_metadata = - &rdata->trailing_metadata_recv; - op->data.recv_status_on_client.status = &rdata->status; - op->data.recv_status_on_client.status_details = &rdata->details; - op->flags = 0; - op->reserved = nullptr; - op++; - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(c, ops, (size_t)(op - ops), - tag(1), nullptr)); - - s_idx = -1; - while ((ev = grpc_completion_queue_next( - f->cq, grpc_timeout_milliseconds_to_deadline(RETRY_TIMEOUT), - nullptr)) - .type != GRPC_QUEUE_TIMEOUT) { - GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); - read_tag = ((int)(intptr_t)ev.tag); - const grpc_connectivity_state conn_state = - grpc_channel_check_connectivity_state(client, 0); - sequences.connectivity_states[iter_num] = conn_state; - gpr_log(GPR_DEBUG, "EVENT: success:%d, type:%d, tag:%d iter:%" PRIuPTR, - ev.success, ev.type, read_tag, iter_num); - if (ev.success && read_tag >= 1000) { - GPR_ASSERT(s_idx == -1); /* only one server must reply */ - /* only server notifications for non-shutdown events */ - s_idx = read_tag - 1000; - s_valid[s_idx] = 1; - sequences.connections[iter_num] = s_idx; - break; - } else if (read_tag == 1) { - gpr_log(GPR_DEBUG, "client timed out"); - GPR_ASSERT(ev.success); - completed_client = 1; - } - } - - if (s_idx >= 0) { - memset(ops, 0, sizeof(ops)); - op = ops; - op->op = GRPC_OP_SEND_INITIAL_METADATA; - op->data.send_initial_metadata.count = 0; - op->flags = 0; - op->reserved = nullptr; - op++; - op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; - op->data.send_status_from_server.trailing_metadata_count = 0; - op->data.send_status_from_server.status = GRPC_STATUS_UNIMPLEMENTED; - grpc_slice status_details = grpc_slice_from_static_string("xyz"); - op->data.send_status_from_server.status_details = &status_details; - op->flags = 0; - op->reserved = nullptr; - op++; - op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; - op->data.recv_close_on_server.cancelled = &was_cancelled; - op->flags = 0; - op->reserved = nullptr; - op++; - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(f->server_calls[s_idx], - ops, (size_t)(op - ops), - tag(102), nullptr)); - - CQ_EXPECT_COMPLETION(cqv, tag(102), 1); - if (!completed_client) { - CQ_EXPECT_COMPLETION(cqv, tag(1), 1); - } - cq_verify(cqv); - - GPR_ASSERT(rdata->status == GRPC_STATUS_UNIMPLEMENTED); - GPR_ASSERT(0 == grpc_slice_str_cmp(rdata->details, "xyz")); - GPR_ASSERT(0 == - grpc_slice_str_cmp(rdata->call_details[s_idx].method, "/foo")); - GPR_ASSERT(0 == grpc_slice_str_cmp(rdata->call_details[s_idx].host, - "foo.test.google.fr")); - GPR_ASSERT(was_cancelled == 1); - - grpc_call_unref(f->server_calls[s_idx]); - - /* ask for the next request on this server */ - GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( - f->servers[s_idx], &f->server_calls[s_idx], - &rdata->call_details[s_idx], - &f->request_metadata_recv[s_idx], f->cq, - f->cq, tag(1000 + (int)s_idx))); - } else { /* no response from server */ - grpc_call_cancel(c, nullptr); - if (!completed_client) { - CQ_EXPECT_COMPLETION(cqv, tag(1), 1); - cq_verify(cqv); - } - } - - GPR_ASSERT(grpc_completion_queue_next( - f->cq, grpc_timeout_milliseconds_to_deadline(RETRY_TIMEOUT), - nullptr) - .type == GRPC_QUEUE_TIMEOUT); - - grpc_metadata_array_destroy(&rdata->initial_metadata_recv); - grpc_metadata_array_destroy(&rdata->trailing_metadata_recv); - - cq_verifier_destroy(cqv); - - grpc_call_unref(c); - - for (i = 0; i < f->num_servers; i++) { - grpc_call_details_destroy(&rdata->call_details[i]); - } - grpc_slice_unref(rdata->details); - } - - gpr_free(s_valid); - - return sequences; -} - -static grpc_call** perform_multirequest(servers_fixture* f, - grpc_channel* client, - size_t concurrent_calls) { - grpc_call** calls; - grpc_op ops[6]; - grpc_op* op; - size_t i; - - calls = static_cast<grpc_call**>( - gpr_malloc(sizeof(grpc_call*) * concurrent_calls)); - for (i = 0; i < f->num_servers; i++) { - kill_server(f, i); - } - - memset(ops, 0, sizeof(ops)); - op = ops; - op->op = GRPC_OP_SEND_INITIAL_METADATA; - op->data.send_initial_metadata.count = 0; - op->flags = 0; - op->reserved = nullptr; - op++; - op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; - op->flags = 0; - op->reserved = nullptr; - - grpc_slice host = grpc_slice_from_static_string("foo.test.google.fr"); - for (i = 0; i < concurrent_calls; i++) { - calls[i] = grpc_channel_create_call( - client, nullptr, GRPC_PROPAGATE_DEFAULTS, f->cq, - grpc_slice_from_static_string("/foo"), &host, - gpr_inf_future(GPR_CLOCK_REALTIME), nullptr); - GPR_ASSERT(calls[i]); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(calls[i], ops, - (size_t)(op - ops), tag(1), - nullptr)); - } - - return calls; -} - -void run_spec(const test_spec* spec) { - grpc_channel* client; - char* client_hostport; - char* servers_hostports_str; - request_data rdata; - servers_fixture* f; - grpc_channel_args args; - grpc_arg arg_array[2]; - rdata.call_details = static_cast<grpc_call_details*>( - gpr_malloc(sizeof(grpc_call_details) * spec->num_servers)); - f = setup_servers("127.0.0.1", &rdata, spec->num_servers); - - /* Create client. */ - servers_hostports_str = gpr_strjoin_sep((const char**)f->servers_hostports, - f->num_servers, ",", nullptr); - gpr_asprintf(&client_hostport, "ipv4:%s", servers_hostports_str); - - arg_array[0].type = GRPC_ARG_INTEGER; - arg_array[0].key = - const_cast<char*>("grpc.testing.fixed_reconnect_backoff_ms"); - arg_array[0].value.integer = RETRY_TIMEOUT; - arg_array[1].type = GRPC_ARG_STRING; - arg_array[1].key = const_cast<char*>(GRPC_ARG_LB_POLICY_NAME); - arg_array[1].value.string = const_cast<char*>("round_robin"); - args.num_args = 2; - args.args = arg_array; - - client = grpc_insecure_channel_create(client_hostport, &args, nullptr); - - gpr_log(GPR_INFO, "Testing '%s' with servers=%s client=%s", spec->description, - servers_hostports_str, client_hostport); - - const request_sequences sequences = perform_request(f, client, &rdata, spec); - - spec->verifier(f, client, &sequences, spec->num_iters); - - gpr_free(client_hostport); - gpr_free(servers_hostports_str); - gpr_free(rdata.call_details); - request_sequences_destroy(&sequences); - - grpc_channel_destroy(client); /* calls the LB's shutdown func */ - teardown_servers(f); -} - -static grpc_channel* create_client(const servers_fixture* f) { - grpc_channel* client; - char* client_hostport; - char* servers_hostports_str; - grpc_arg arg_array[3]; - grpc_channel_args args; - - servers_hostports_str = gpr_strjoin_sep((const char**)f->servers_hostports, - f->num_servers, ",", nullptr); - gpr_asprintf(&client_hostport, "ipv4:%s", servers_hostports_str); - - arg_array[0].type = GRPC_ARG_INTEGER; - arg_array[0].key = - const_cast<char*>("grpc.testing.fixed_reconnect_backoff_ms"); - arg_array[0].value.integer = RETRY_TIMEOUT; - arg_array[1].type = GRPC_ARG_STRING; - arg_array[1].key = const_cast<char*>(GRPC_ARG_LB_POLICY_NAME); - arg_array[1].value.string = const_cast<char*>("ROUND_ROBIN"); - arg_array[2].type = GRPC_ARG_INTEGER; - arg_array[2].key = - const_cast<char*>(GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS); - arg_array[2].value.integer = 0; - args.num_args = GPR_ARRAY_SIZE(arg_array); - args.args = arg_array; - - client = grpc_insecure_channel_create(client_hostport, &args, nullptr); - gpr_free(client_hostport); - gpr_free(servers_hostports_str); - - return client; -} - -static void test_ping() { - grpc_channel* client; - request_data rdata; - servers_fixture* f; - cq_verifier* cqv; - grpc_connectivity_state state = GRPC_CHANNEL_IDLE; - const size_t num_servers = 1; - int i; - - rdata.call_details = static_cast<grpc_call_details*>( - gpr_malloc(sizeof(grpc_call_details) * num_servers)); - f = setup_servers("127.0.0.1", &rdata, num_servers); - cqv = cq_verifier_create(f->cq); - - client = create_client(f); - - grpc_channel_ping(client, f->cq, tag(0), nullptr); - CQ_EXPECT_COMPLETION(cqv, tag(0), 0); - - /* check that we're still in idle, and start connecting */ - GPR_ASSERT(grpc_channel_check_connectivity_state(client, 1) == - GRPC_CHANNEL_IDLE); - /* we'll go through some set of transitions (some might be missed), until - READY is reached */ - while (state != GRPC_CHANNEL_READY) { - grpc_channel_watch_connectivity_state( - client, state, grpc_timeout_seconds_to_deadline(3), f->cq, tag(99)); - CQ_EXPECT_COMPLETION(cqv, tag(99), 1); - cq_verify(cqv); - state = grpc_channel_check_connectivity_state(client, 0); - GPR_ASSERT(state == GRPC_CHANNEL_READY || - state == GRPC_CHANNEL_CONNECTING || - state == GRPC_CHANNEL_TRANSIENT_FAILURE); - } - - for (i = 1; i <= 5; i++) { - grpc_channel_ping(client, f->cq, tag(i), nullptr); - CQ_EXPECT_COMPLETION(cqv, tag(i), 1); - cq_verify(cqv); - } - gpr_free(rdata.call_details); - - grpc_channel_destroy(client); - teardown_servers(f); - - cq_verifier_destroy(cqv); -} - -static void test_pending_calls(size_t concurrent_calls) { - size_t i; - grpc_call** calls; - grpc_channel* client; - request_data rdata; - servers_fixture* f; - test_spec* spec = test_spec_create(0, 4); - rdata.call_details = static_cast<grpc_call_details*>( - gpr_malloc(sizeof(grpc_call_details) * spec->num_servers)); - f = setup_servers("127.0.0.1", &rdata, spec->num_servers); - - client = create_client(f); - calls = perform_multirequest(f, client, concurrent_calls); - grpc_call_cancel(calls[0], nullptr); /* exercise the cancel pick path whilst - there are pending picks */ - - gpr_free(rdata.call_details); - - grpc_channel_destroy(client); /* calls the LB's shutdown func */ - /* destroy the calls after the channel so that they are still around for the - * LB's shutdown func to process */ - for (i = 0; i < concurrent_calls; i++) { - grpc_call_unref(calls[i]); - } - gpr_free(calls); - teardown_servers(f); - test_spec_destroy(spec); -} - -static void test_get_channel_info() { - grpc_channel* channel = - grpc_insecure_channel_create("ipv4:127.0.0.1:1234", nullptr, nullptr); - // Ensures that resolver returns. - grpc_channel_check_connectivity_state(channel, true /* try_to_connect */); - // First, request no fields. This is a no-op. - grpc_channel_info channel_info; - memset(&channel_info, 0, sizeof(channel_info)); - grpc_channel_get_info(channel, &channel_info); - // Request LB policy name. - char* lb_policy_name = nullptr; - channel_info.lb_policy_name = &lb_policy_name; - grpc_channel_get_info(channel, &channel_info); - GPR_ASSERT(lb_policy_name != nullptr); - GPR_ASSERT(strcmp(lb_policy_name, "pick_first") == 0); - gpr_free(lb_policy_name); - // Request service config, which does not exist, so we'll get nothing back. - memset(&channel_info, 0, sizeof(channel_info)); - char* service_config_json = const_cast<char*>("dummy_string"); - channel_info.service_config_json = &service_config_json; - grpc_channel_get_info(channel, &channel_info); - GPR_ASSERT(service_config_json == nullptr); - // Recreate the channel such that it has a service config. - grpc_channel_destroy(channel); - grpc_arg arg; - arg.type = GRPC_ARG_STRING; - arg.key = const_cast<char*>(GRPC_ARG_SERVICE_CONFIG); - arg.value.string = - const_cast<char*>("{\"loadBalancingPolicy\": \"ROUND_ROBIN\"}"); - grpc_channel_args* args = grpc_channel_args_copy_and_add(nullptr, &arg, 1); - channel = grpc_insecure_channel_create("ipv4:127.0.0.1:1234", args, nullptr); - { - grpc_core::ExecCtx exec_ctx; - grpc_channel_args_destroy(args); - } - // Ensures that resolver returns. - grpc_channel_check_connectivity_state(channel, true /* try_to_connect */); - // Now request the service config again. - grpc_channel_get_info(channel, &channel_info); - GPR_ASSERT(service_config_json != nullptr); - GPR_ASSERT(strcmp(service_config_json, arg.value.string) == 0); - gpr_free(service_config_json); - // Clean up. - grpc_channel_destroy(channel); -} - -static void print_failed_expectations(const int* expected_connection_sequence, - const int* actual_connection_sequence, - const size_t expected_seq_length, - const size_t num_iters) { - size_t i; - for (i = 0; i < num_iters; i++) { - gpr_log(GPR_ERROR, - "FAILURE: Iter (expected, actual): %" PRIuPTR " (%d, %d)", i, - expected_connection_sequence[i % expected_seq_length], - actual_connection_sequence[i]); - } -} - -static void verify_vanilla_round_robin(const servers_fixture* f, - grpc_channel* client, - const request_sequences* sequences, - const size_t num_iters) { - const size_t expected_seq_length = f->num_servers; - - /* verify conn. seq. expectation */ - /* get the first sequence of "num_servers" elements */ - int* expected_connection_sequence = - static_cast<int*>(gpr_malloc(sizeof(int) * expected_seq_length)); - memcpy(expected_connection_sequence, sequences->connections, - sizeof(int) * expected_seq_length); - - for (size_t i = 0; i < num_iters; i++) { - const int actual = sequences->connections[i]; - const int expected = expected_connection_sequence[i % expected_seq_length]; - if (actual != expected) { - gpr_log( - GPR_ERROR, - "CONNECTION SEQUENCE FAILURE: expected %d, got %d at iteration #%d", - expected, actual, (int)i); - abort(); - } - } - - /* All servers are available, therefore all client subchannels are READY, even - * when we only need one for the client channel state to be READY */ - for (size_t i = 0; i < sequences->n; i++) { - const grpc_connectivity_state actual = - static_cast<grpc_connectivity_state>(sequences->connectivity_states[i]); - const grpc_connectivity_state expected = GRPC_CHANNEL_READY; - if (actual != expected) { - gpr_log(GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: expected '%s', got '%s' " - "at iteration #%d", - grpc_connectivity_state_name(expected), - grpc_connectivity_state_name(actual), (int)i); - abort(); - } - } - - gpr_free(expected_connection_sequence); -} - -/* At the start of the second iteration, all but the first and last servers (as - * given in "f") are killed */ -static void verify_vanishing_floor_round_robin( - const servers_fixture* f, grpc_channel* client, - const request_sequences* sequences, const size_t num_iters) { - int* expected_connection_sequence; - const size_t expected_seq_length = 2; - size_t i; - - /* verify conn. seq. expectation */ - /* copy the first full sequence (without -1s) */ - expected_connection_sequence = - static_cast<int*>(gpr_malloc(sizeof(int) * expected_seq_length)); - memcpy(expected_connection_sequence, sequences->connections + 2, - expected_seq_length * sizeof(int)); - - /* first two elements of the sequence should be [0 (1st server), -1 (failure)] - */ - GPR_ASSERT(sequences->connections[0] == 0); - GPR_ASSERT(sequences->connections[1] == -1); - - /* the next two element must be [3, 0], repeating from that point: the 3 is - * brought forth by servers 1 and 2 disappearing after the intial pick of 0 */ - GPR_ASSERT(sequences->connections[2] == 3); - GPR_ASSERT(sequences->connections[3] == 0); - - /* make sure that the expectation obliges */ - for (i = 2; i < num_iters; i++) { - const int actual = sequences->connections[i]; - const int expected = expected_connection_sequence[i % expected_seq_length]; - if (actual != expected) { - print_failed_expectations(expected_connection_sequence, - sequences->connections, expected_seq_length, - num_iters); - abort(); - } - } - - /* There's always at least one subchannel READY (connected), therefore the - * overall state of the client channel is READY at all times. */ - for (i = 0; i < sequences->n; i++) { - const grpc_connectivity_state actual = - static_cast<grpc_connectivity_state>(sequences->connectivity_states[i]); - const grpc_connectivity_state expected = GRPC_CHANNEL_READY; - if (actual != expected) { - gpr_log(GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: expected '%s', got '%s' " - "at iteration #%d", - grpc_connectivity_state_name(expected), - grpc_connectivity_state_name(actual), (int)i); - abort(); - } - } - - gpr_free(expected_connection_sequence); -} - -static void verify_total_carnage_round_robin(const servers_fixture* f, - grpc_channel* client, - const request_sequences* sequences, - const size_t num_iters) { - for (size_t i = 0; i < num_iters; i++) { - const int actual = sequences->connections[i]; - const int expected = -1; - if (actual != expected) { - gpr_log( - GPR_ERROR, - "CONNECTION SEQUENCE FAILURE: expected %d, got %d at iteration #%d", - expected, actual, (int)i); - abort(); - } - } - - /* No server is ever available. There should be no READY states (or SHUTDOWN). - * Note that all other states (IDLE, CONNECTING, TRANSIENT_FAILURE) are still - * possible, as the policy transitions while attempting to reconnect. */ - for (size_t i = 0; i < sequences->n; i++) { - const grpc_connectivity_state actual = - static_cast<grpc_connectivity_state>(sequences->connectivity_states[i]); - if (actual == GRPC_CHANNEL_READY || actual == GRPC_CHANNEL_SHUTDOWN) { - gpr_log(GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: got unexpected state " - "'%s' at iteration #%d.", - grpc_connectivity_state_name(actual), (int)i); - abort(); - } - } -} - -static void verify_partial_carnage_round_robin( - const servers_fixture* f, grpc_channel* client, - const request_sequences* sequences, const size_t num_iters) { - int* expected_connection_sequence; - size_t i; - const size_t expected_seq_length = f->num_servers; - - /* verify conn. seq. expectation */ - /* get the first sequence of "num_servers" elements */ - expected_connection_sequence = - static_cast<int*>(gpr_malloc(sizeof(int) * expected_seq_length)); - memcpy(expected_connection_sequence, sequences->connections, - sizeof(int) * expected_seq_length); - - for (i = 0; i < num_iters / 2; i++) { - const int actual = sequences->connections[i]; - const int expected = expected_connection_sequence[i % expected_seq_length]; - if (actual != expected) { - print_failed_expectations(expected_connection_sequence, - sequences->connections, expected_seq_length, - num_iters); - abort(); - } - } - - /* second half of the iterations go without response */ - for (; i < num_iters; i++) { - GPR_ASSERT(sequences->connections[i] == -1); - } - - /* We can assert that the first client channel state should be READY, when all - * servers were available */ - grpc_connectivity_state actual = - static_cast<grpc_connectivity_state>(sequences->connectivity_states[0]); - grpc_connectivity_state expected = GRPC_CHANNEL_READY; - if (actual != expected) { - gpr_log(GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: expected '%s', got '%s' " - "at iteration #%d", - grpc_connectivity_state_name(expected), - grpc_connectivity_state_name(actual), 0); - abort(); - } - - /* ... and that the last one shouldn't be READY (or SHUTDOWN): all servers are - * gone. It may be all other states (IDLE, CONNECTING, TRANSIENT_FAILURE), as - * the policy transitions while attempting to reconnect. */ - actual = static_cast<grpc_connectivity_state>( - sequences->connectivity_states[num_iters - 1]); - for (i = 0; i < sequences->n; i++) { - if (actual == GRPC_CHANNEL_READY || actual == GRPC_CHANNEL_SHUTDOWN) { - gpr_log(GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: got unexpected state " - "'%s' at iteration #%d.", - grpc_connectivity_state_name(actual), (int)i); - abort(); - } - } - gpr_free(expected_connection_sequence); -} - -static void dump_array(const char* desc, const int* data, const size_t count) { - gpr_strvec s; - char* tmp; - size_t i; - gpr_strvec_init(&s); - gpr_strvec_add(&s, gpr_strdup(desc)); - gpr_strvec_add(&s, gpr_strdup(":")); - for (i = 0; i < count; i++) { - gpr_asprintf(&tmp, " %d", data[i]); - gpr_strvec_add(&s, tmp); - } - tmp = gpr_strvec_flatten(&s, nullptr); - gpr_strvec_destroy(&s); - gpr_log(GPR_DEBUG, "%s", tmp); - gpr_free(tmp); -} - -static void verify_rebirth_round_robin(const servers_fixture* f, - grpc_channel* client, - const request_sequences* sequences, - const size_t num_iters) { - dump_array("actual_connection_sequence", sequences->connections, num_iters); - - /* first iteration succeeds */ - GPR_ASSERT(sequences->connections[0] != -1); - /* then we fail for a while... */ - GPR_ASSERT(sequences->connections[1] == -1); - /* ... but should be up eventually */ - size_t first_iter_back_up = ~0ul; - for (size_t i = 2; i < sequences->n; ++i) { - if (sequences->connections[i] != -1) { - first_iter_back_up = i; - break; - } - } - GPR_ASSERT(first_iter_back_up != ~0ul); - - /* We can assert that the first client channel state should be READY, when all - * servers were available; same thing for the last one. In the middle - * somewhere there must exist at least one TRANSIENT_FAILURE */ - grpc_connectivity_state actual = - static_cast<grpc_connectivity_state>(sequences->connectivity_states[0]); - grpc_connectivity_state expected = GRPC_CHANNEL_READY; - if (actual != expected) { - gpr_log(GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: expected '%s', got '%s' " - "at iteration #%d", - grpc_connectivity_state_name(expected), - grpc_connectivity_state_name(actual), 0); - abort(); - } - - actual = static_cast<grpc_connectivity_state>( - sequences->connectivity_states[num_iters - 1]); - expected = GRPC_CHANNEL_READY; - if (actual != expected) { - gpr_log(GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: expected '%s', got '%s' " - "at iteration #%d", - grpc_connectivity_state_name(expected), - grpc_connectivity_state_name(actual), (int)num_iters - 1); - abort(); - } - - bool found_failure_status = false; - for (size_t i = 1; i < sequences->n - 1; i++) { - if (sequences->connectivity_states[i] == GRPC_CHANNEL_TRANSIENT_FAILURE) { - found_failure_status = true; - break; - } - } - if (!found_failure_status) { - gpr_log( - GPR_ERROR, - "CONNECTIVITY STATUS SEQUENCE FAILURE: " - "GRPC_CHANNEL_TRANSIENT_FAILURE status not found. Got the following " - "instead:"); - for (size_t i = 0; i < num_iters; i++) { - gpr_log(GPR_ERROR, "[%d]: %s", (int)i, - grpc_connectivity_state_name(static_cast<grpc_connectivity_state>( - sequences->connectivity_states[i]))); - } - } -} - -int main(int argc, char** argv) { - grpc_core::ExecCtx exec_ctx; - test_spec* spec; - size_t i; - const size_t NUM_ITERS = 10; - const size_t NUM_SERVERS = 4; - - grpc_init(); - grpc_test_init(argc, argv); - grpc_tracer_set_enabled("round_robin", 1); - - GPR_ASSERT(grpc_lb_policy_create("this-lb-policy-does-not-exist", nullptr) == - nullptr); - GPR_ASSERT(grpc_lb_policy_create(nullptr, nullptr) == nullptr); - - spec = test_spec_create(NUM_ITERS, NUM_SERVERS); - /* everything is fine, all servers stay up the whole time and life's peachy - */ - spec->verifier = verify_vanilla_round_robin; - spec->description = "test_all_server_up"; - run_spec(spec); - - /* Kill all servers first thing in the morning */ - test_spec_reset(spec); - spec->verifier = verify_total_carnage_round_robin; - spec->description = "test_kill_all_server"; - for (i = 0; i < NUM_SERVERS; i++) { - spec->kill_at[0][i] = 1; - } - run_spec(spec); - - /* at the start of the 2nd iteration, kill all but the first and last - * servers. - * This should knock down the server bound to be selected next */ - test_spec_reset(spec); - spec->verifier = verify_vanishing_floor_round_robin; - spec->description = "test_kill_middle_servers_at_2nd_iteration"; - for (i = 1; i < NUM_SERVERS - 1; i++) { - spec->kill_at[1][i] = 1; - } - run_spec(spec); - - /* Midway, kill all servers. */ - test_spec_reset(spec); - spec->verifier = verify_partial_carnage_round_robin; - spec->description = "test_kill_all_server_midway"; - for (i = 0; i < NUM_SERVERS; i++) { - spec->kill_at[spec->num_iters / 2][i] = 1; - } - run_spec(spec); - - /* After first iteration, kill all servers. On the third one, bring them all - * back up. */ - test_spec_reset(spec); - spec->verifier = verify_rebirth_round_robin; - spec->description = "test_kill_all_server_after_1st_resurrect_at_3rd"; - for (i = 0; i < NUM_SERVERS; i++) { - spec->kill_at[1][i] = 1; - spec->revive_at[3][i] = 1; - } - run_spec(spec); - test_spec_destroy(spec); - - test_pending_calls(4); - test_ping(); - test_get_channel_info(); - - grpc_shutdown(); - return 0; -} diff --git a/test/core/client_channel/parse_address_test.cc b/test/core/client_channel/parse_address_test.cc index 6d56961d84..373ed76cbe 100644 --- a/test/core/client_channel/parse_address_test.cc +++ b/test/core/client_channel/parse_address_test.cc @@ -39,7 +39,8 @@ static void test_grpc_parse_unix(const char* uri_text, const char* pathname) { grpc_resolved_address addr; GPR_ASSERT(1 == grpc_parse_unix(uri, &addr)); - struct sockaddr_un* addr_un = (struct sockaddr_un*)addr.addr; + struct sockaddr_un* addr_un = + reinterpret_cast<struct sockaddr_un*>(addr.addr); GPR_ASSERT(AF_UNIX == addr_un->sun_family); GPR_ASSERT(0 == strcmp(addr_un->sun_path, pathname)); @@ -60,7 +61,8 @@ static void test_grpc_parse_ipv4(const char* uri_text, const char* host, char ntop_buf[INET_ADDRSTRLEN]; GPR_ASSERT(1 == grpc_parse_ipv4(uri, &addr)); - struct sockaddr_in* addr_in = (struct sockaddr_in*)addr.addr; + struct sockaddr_in* addr_in = + reinterpret_cast<struct sockaddr_in*>(addr.addr); GPR_ASSERT(AF_INET == addr_in->sin_family); GPR_ASSERT(nullptr != grpc_inet_ntop(AF_INET, &addr_in->sin_addr, ntop_buf, sizeof(ntop_buf))); @@ -78,7 +80,8 @@ static void test_grpc_parse_ipv6(const char* uri_text, const char* host, char ntop_buf[INET6_ADDRSTRLEN]; GPR_ASSERT(1 == grpc_parse_ipv6(uri, &addr)); - struct sockaddr_in6* addr_in6 = (struct sockaddr_in6*)addr.addr; + struct sockaddr_in6* addr_in6 = + reinterpret_cast<struct sockaddr_in6*>(addr.addr); GPR_ASSERT(AF_INET6 == addr_in6->sin6_family); GPR_ASSERT(nullptr != grpc_inet_ntop(AF_INET6, &addr_in6->sin6_addr, ntop_buf, sizeof(ntop_buf))); diff --git a/test/core/client_channel/resolvers/BUILD b/test/core/client_channel/resolvers/BUILD index b5269c7ef0..d8b0395846 100644 --- a/test/core/client_channel/resolvers/BUILD +++ b/test/core/client_channel/resolvers/BUILD @@ -43,6 +43,18 @@ grpc_cc_test( ) grpc_cc_test( + name = "dns_resolver_cooldown_test", + srcs = ["dns_resolver_cooldown_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) + +grpc_cc_test( name = "sockaddr_resolver_test", srcs = ["sockaddr_resolver_test.cc"], language = "C++", diff --git a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc index 18a795fbcb..966fb1d14b 100644 --- a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc +++ b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc @@ -79,23 +79,23 @@ static grpc_ares_request* my_dns_lookup_ares( return nullptr; } -static grpc_resolver* create_resolver(const char* name) { - grpc_resolver_factory* factory = grpc_resolver_factory_lookup("dns"); +static grpc_core::OrphanablePtr<grpc_core::Resolver> create_resolver( + const char* name) { + grpc_core::ResolverFactory* factory = + grpc_core::ResolverRegistry::LookupResolverFactory("dns"); grpc_uri* uri = grpc_uri_parse(name, 0); GPR_ASSERT(uri); - grpc_resolver_args args; - memset(&args, 0, sizeof(args)); + grpc_core::ResolverArgs args; args.uri = uri; args.combiner = g_combiner; - grpc_resolver* resolver = - grpc_resolver_factory_create_resolver(factory, &args); - grpc_resolver_factory_unref(factory); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + factory->CreateResolver(args); grpc_uri_destroy(uri); return resolver; } static void on_done(void* ev, grpc_error* error) { - gpr_event_set((gpr_event*)ev, (void*)1); + gpr_event_set(static_cast<gpr_event*>(ev), (void*)1); } // interleave waiting for an event with a timer check @@ -112,7 +112,7 @@ static bool wait_loop(int deadline_seconds, gpr_event* ev) { } typedef struct next_args { - grpc_resolver* resolver; + grpc_core::Resolver* resolver; grpc_channel_args** result; grpc_closure* on_complete; } next_args; @@ -120,21 +120,21 @@ typedef struct next_args { static void call_resolver_next_now_lock_taken(void* arg, grpc_error* error_unused) { next_args* a = static_cast<next_args*>(arg); - grpc_resolver_next_locked(a->resolver, a->result, a->on_complete); + a->resolver->NextLocked(a->result, a->on_complete); gpr_free(a); } -static void call_resolver_next_after_locking(grpc_resolver* resolver, +static void call_resolver_next_after_locking(grpc_core::Resolver* resolver, grpc_channel_args** result, - grpc_closure* on_complete) { + grpc_closure* on_complete, + grpc_combiner* combiner) { next_args* a = static_cast<next_args*>(gpr_malloc(sizeof(*a))); a->resolver = resolver; a->result = result; a->on_complete = on_complete; - GRPC_CLOSURE_SCHED( - GRPC_CLOSURE_CREATE(call_resolver_next_now_lock_taken, a, - grpc_combiner_scheduler(resolver->combiner)), - GRPC_ERROR_NONE); + GRPC_CLOSURE_SCHED(GRPC_CLOSURE_CREATE(call_resolver_next_now_lock_taken, a, + grpc_combiner_scheduler(combiner)), + GRPC_ERROR_NONE); } int main(int argc, char** argv) { @@ -149,12 +149,14 @@ int main(int argc, char** argv) { { grpc_core::ExecCtx exec_ctx; - grpc_resolver* resolver = create_resolver("dns:test"); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + create_resolver("dns:test"); gpr_event ev1; gpr_event_init(&ev1); call_resolver_next_after_locking( - resolver, &result, - GRPC_CLOSURE_CREATE(on_done, &ev1, grpc_schedule_on_exec_ctx)); + resolver.get(), &result, + GRPC_CLOSURE_CREATE(on_done, &ev1, grpc_schedule_on_exec_ctx), + g_combiner); grpc_core::ExecCtx::Get()->Flush(); GPR_ASSERT(wait_loop(5, &ev1)); GPR_ASSERT(result == nullptr); @@ -162,14 +164,14 @@ int main(int argc, char** argv) { gpr_event ev2; gpr_event_init(&ev2); call_resolver_next_after_locking( - resolver, &result, - GRPC_CLOSURE_CREATE(on_done, &ev2, grpc_schedule_on_exec_ctx)); + resolver.get(), &result, + GRPC_CLOSURE_CREATE(on_done, &ev2, grpc_schedule_on_exec_ctx), + g_combiner); grpc_core::ExecCtx::Get()->Flush(); GPR_ASSERT(wait_loop(30, &ev2)); GPR_ASSERT(result != nullptr); grpc_channel_args_destroy(result); - GRPC_RESOLVER_UNREF(resolver, "test"); GRPC_COMBINER_UNREF(g_combiner, "test"); } diff --git a/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc b/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc new file mode 100644 index 0000000000..9402a605b3 --- /dev/null +++ b/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc @@ -0,0 +1,303 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * 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. + * + */ + +#include <cstring> + +#include <grpc/support/log.h> + +#include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" +#include "src/core/ext/filters/client_channel/resolver_registry.h" +#include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gprpp/memory.h" +#include "src/core/lib/iomgr/combiner.h" +#include "src/core/lib/iomgr/sockaddr_utils.h" +#include "test/core/util/test_config.h" + +static grpc_combiner* g_combiner; + +static void (*g_default_grpc_resolve_address)( + const char* name, const char* default_port, + grpc_pollset_set* interested_parties, grpc_closure* on_done, + grpc_resolved_addresses** addrs); + +grpc_ares_request* (*g_default_dns_lookup_ares)( + const char* dns_server, const char* name, const char* default_port, + grpc_pollset_set* interested_parties, grpc_closure* on_done, + grpc_lb_addresses** addrs, bool check_grpclb, char** service_config_json); + +// Counter incremented by test_resolve_address_impl indicating the number of +// times a system-level resolution has happened. +static int g_resolution_count; + +struct iomgr_args { + gpr_event ev; + gpr_atm done_atm; + gpr_mu* mu; + grpc_pollset* pollset; + grpc_pollset_set* pollset_set; +} g_iomgr_args; + +// Wrapper around g_default_grpc_resolve_address in order to count the number of +// times we incur in a system-level name resolution. +static void test_resolve_address_impl(const char* name, + const char* default_port, + grpc_pollset_set* interested_parties, + grpc_closure* on_done, + grpc_resolved_addresses** addrs) { + g_default_grpc_resolve_address(name, default_port, g_iomgr_args.pollset_set, + on_done, addrs); + ++g_resolution_count; +} + +grpc_ares_request* test_dns_lookup_ares( + const char* dns_server, const char* name, const char* default_port, + grpc_pollset_set* interested_parties, grpc_closure* on_done, + grpc_lb_addresses** addrs, bool check_grpclb, char** service_config_json) { + grpc_ares_request* result = g_default_dns_lookup_ares( + dns_server, name, default_port, g_iomgr_args.pollset_set, on_done, addrs, + check_grpclb, service_config_json); + ++g_resolution_count; + return result; +} + +static gpr_timespec test_deadline(void) { + return grpc_timeout_seconds_to_deadline(100); +} + +static void do_nothing(void* arg, grpc_error* error) {} + +void iomgr_args_init(iomgr_args* args) { + gpr_event_init(&args->ev); + args->pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); + grpc_pollset_init(args->pollset, &args->mu); + args->pollset_set = grpc_pollset_set_create(); + grpc_pollset_set_add_pollset(args->pollset_set, args->pollset); + gpr_atm_rel_store(&args->done_atm, 0); +} + +void iomgr_args_finish(iomgr_args* args) { + GPR_ASSERT(gpr_event_wait(&args->ev, test_deadline())); + grpc_pollset_set_del_pollset(args->pollset_set, args->pollset); + grpc_pollset_set_destroy(args->pollset_set); + grpc_closure do_nothing_cb; + GRPC_CLOSURE_INIT(&do_nothing_cb, do_nothing, nullptr, + grpc_schedule_on_exec_ctx); + gpr_mu_lock(args->mu); + grpc_pollset_shutdown(args->pollset, &do_nothing_cb); + gpr_mu_unlock(args->mu); + // exec_ctx needs to be flushed before calling grpc_pollset_destroy() + grpc_core::ExecCtx::Get()->Flush(); + grpc_pollset_destroy(args->pollset); + gpr_free(args->pollset); +} + +static grpc_millis n_sec_deadline(int seconds) { + return grpc_timespec_to_millis_round_up( + grpc_timeout_seconds_to_deadline(seconds)); +} + +static void poll_pollset_until_request_done(iomgr_args* args) { + grpc_core::ExecCtx exec_ctx; + grpc_millis deadline = n_sec_deadline(10); + while (true) { + bool done = gpr_atm_acq_load(&args->done_atm) != 0; + if (done) { + break; + } + grpc_millis time_left = deadline - grpc_core::ExecCtx::Get()->Now(); + gpr_log(GPR_DEBUG, "done=%d, time_left=%" PRIdPTR, done, time_left); + GPR_ASSERT(time_left >= 0); + grpc_pollset_worker* worker = nullptr; + gpr_mu_lock(args->mu); + GRPC_LOG_IF_ERROR("pollset_work", grpc_pollset_work(args->pollset, &worker, + n_sec_deadline(1))); + gpr_mu_unlock(args->mu); + grpc_core::ExecCtx::Get()->Flush(); + } + gpr_event_set(&args->ev, (void*)1); +} + +struct OnResolutionCallbackArg { + const char* uri_str = nullptr; + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver; + grpc_channel_args* result = nullptr; + grpc_millis delay_before_second_resolution = 0; + bool using_cares = false; +}; + +// Counter for the number of times a resolution notification callback has been +// invoked. +static int g_on_resolution_invocations_count; + +// Set to true by the last callback in the resolution chain. +bool g_all_callbacks_invoked; + +void on_third_resolution(void* arg, grpc_error* error) { + OnResolutionCallbackArg* cb_arg = static_cast<OnResolutionCallbackArg*>(arg); + GPR_ASSERT(error == GRPC_ERROR_NONE); + ++g_on_resolution_invocations_count; + grpc_channel_args_destroy(cb_arg->result); + gpr_log(GPR_INFO, + "3rd: g_on_resolution_invocations_count: %d, g_resolution_count: %d", + g_on_resolution_invocations_count, g_resolution_count); + // In this case we expect to have incurred in another system-level resolution + // because on_second_resolution slept for longer than the min resolution + // period. + GPR_ASSERT(g_on_resolution_invocations_count == 3); + GPR_ASSERT(g_resolution_count == 2); + cb_arg->resolver.reset(); + if (cb_arg->using_cares) { + gpr_atm_rel_store(&g_iomgr_args.done_atm, 1); + gpr_mu_lock(g_iomgr_args.mu); + GRPC_LOG_IF_ERROR("pollset_kick", + grpc_pollset_kick(g_iomgr_args.pollset, nullptr)); + gpr_mu_unlock(g_iomgr_args.mu); + } + grpc_core::Delete(cb_arg); + g_all_callbacks_invoked = true; +} + +void on_second_resolution(void* arg, grpc_error* error) { + OnResolutionCallbackArg* cb_arg = static_cast<OnResolutionCallbackArg*>(arg); + ++g_on_resolution_invocations_count; + grpc_channel_args_destroy(cb_arg->result); + + gpr_log(GPR_INFO, + "2nd: g_on_resolution_invocations_count: %d, g_resolution_count: %d", + g_on_resolution_invocations_count, g_resolution_count); + // The resolution request for which this function is the callback happened + // before the min resolution period. Therefore, no new system-level + // resolutions happened, as indicated by g_resolution_count. + GPR_ASSERT(g_on_resolution_invocations_count == 2); + GPR_ASSERT(g_resolution_count == 1); + grpc_core::ExecCtx::Get()->TestOnlySetNow( + cb_arg->delay_before_second_resolution * 2); + cb_arg->resolver->NextLocked( + &cb_arg->result, + GRPC_CLOSURE_CREATE(on_third_resolution, arg, + grpc_combiner_scheduler(g_combiner))); + cb_arg->resolver->RequestReresolutionLocked(); + if (cb_arg->using_cares) { + gpr_mu_lock(g_iomgr_args.mu); + GRPC_LOG_IF_ERROR("pollset_kick", + grpc_pollset_kick(g_iomgr_args.pollset, nullptr)); + gpr_mu_unlock(g_iomgr_args.mu); + } +} + +void on_first_resolution(void* arg, grpc_error* error) { + OnResolutionCallbackArg* cb_arg = static_cast<OnResolutionCallbackArg*>(arg); + ++g_on_resolution_invocations_count; + grpc_channel_args_destroy(cb_arg->result); + cb_arg->resolver->NextLocked( + &cb_arg->result, + GRPC_CLOSURE_CREATE(on_second_resolution, arg, + grpc_combiner_scheduler(g_combiner))); + cb_arg->resolver->RequestReresolutionLocked(); + gpr_log(GPR_INFO, + "1st: g_on_resolution_invocations_count: %d, g_resolution_count: %d", + g_on_resolution_invocations_count, g_resolution_count); + // Theres one initial system-level resolution and one invocation of a + // notification callback (the current function). + GPR_ASSERT(g_on_resolution_invocations_count == 1); + GPR_ASSERT(g_resolution_count == 1); + if (cb_arg->using_cares) { + gpr_mu_lock(g_iomgr_args.mu); + GRPC_LOG_IF_ERROR("pollset_kick", + grpc_pollset_kick(g_iomgr_args.pollset, nullptr)); + gpr_mu_unlock(g_iomgr_args.mu); + } +} + +static void start_test_under_combiner(void* arg, grpc_error* error) { + OnResolutionCallbackArg* res_cb_arg = + static_cast<OnResolutionCallbackArg*>(arg); + + grpc_core::ResolverFactory* factory = + grpc_core::ResolverRegistry::LookupResolverFactory("dns"); + grpc_uri* uri = grpc_uri_parse(res_cb_arg->uri_str, 0); + gpr_log(GPR_DEBUG, "test: '%s' should be valid for '%s'", res_cb_arg->uri_str, + factory->scheme()); + GPR_ASSERT(uri != nullptr); + grpc_core::ResolverArgs args; + args.uri = uri; + args.combiner = g_combiner; + g_on_resolution_invocations_count = 0; + g_resolution_count = 0; + constexpr int kMinResolutionPeriodMs = 1000; + + grpc_arg cooldown_arg; + cooldown_arg.key = + const_cast<char*>(GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS); + cooldown_arg.type = GRPC_ARG_INTEGER; + cooldown_arg.value.integer = kMinResolutionPeriodMs; + auto* cooldown_channel_args = + grpc_channel_args_copy_and_add(nullptr, &cooldown_arg, 1); + args.args = cooldown_channel_args; + res_cb_arg->resolver = factory->CreateResolver(args); + grpc_channel_args_destroy(cooldown_channel_args); + GPR_ASSERT(res_cb_arg->resolver != nullptr); + res_cb_arg->delay_before_second_resolution = kMinResolutionPeriodMs; + // First resolution, would incur in system-level resolution. + res_cb_arg->resolver->NextLocked( + &res_cb_arg->result, + GRPC_CLOSURE_CREATE(on_first_resolution, res_cb_arg, + grpc_combiner_scheduler(g_combiner))); + grpc_uri_destroy(uri); +} + +static void test_cooldown(bool using_cares) { + grpc_core::ExecCtx exec_ctx; + if (using_cares) iomgr_args_init(&g_iomgr_args); + OnResolutionCallbackArg* res_cb_arg = + grpc_core::New<OnResolutionCallbackArg>(); + res_cb_arg->uri_str = "dns:127.0.0.1"; + res_cb_arg->using_cares = using_cares; + + GRPC_CLOSURE_SCHED(GRPC_CLOSURE_CREATE(start_test_under_combiner, res_cb_arg, + grpc_combiner_scheduler(g_combiner)), + GRPC_ERROR_NONE); + if (using_cares) { + grpc_core::ExecCtx::Get()->Flush(); + poll_pollset_until_request_done(&g_iomgr_args); + iomgr_args_finish(&g_iomgr_args); + } +} + +int main(int argc, char** argv) { + grpc_test_init(argc, argv); + grpc_init(); + + g_combiner = grpc_combiner_create(); + + const bool using_cares = (grpc_resolve_address == grpc_resolve_address_ares); + g_default_grpc_resolve_address = grpc_resolve_address; + g_default_dns_lookup_ares = grpc_dns_lookup_ares; + grpc_dns_lookup_ares = test_dns_lookup_ares; + grpc_resolve_address = test_resolve_address_impl; + + test_cooldown(using_cares); + + { + grpc_core::ExecCtx exec_ctx; + GRPC_COMBINER_UNREF(g_combiner, "test"); + } + grpc_shutdown(); + GPR_ASSERT(g_all_callbacks_invoked); + return 0; +} diff --git a/test/core/client_channel/resolvers/dns_resolver_test.cc b/test/core/client_channel/resolvers/dns_resolver_test.cc index 80667908ef..e3fba2838c 100644 --- a/test/core/client_channel/resolvers/dns_resolver_test.cc +++ b/test/core/client_channel/resolvers/dns_resolver_test.cc @@ -27,47 +27,46 @@ static grpc_combiner* g_combiner; -static void test_succeeds(grpc_resolver_factory* factory, const char* string) { +static void test_succeeds(grpc_core::ResolverFactory* factory, + const char* string) { + gpr_log(GPR_DEBUG, "test: '%s' should be valid for '%s'", string, + factory->scheme()); grpc_core::ExecCtx exec_ctx; grpc_uri* uri = grpc_uri_parse(string, 0); - grpc_resolver_args args; - grpc_resolver* resolver; - gpr_log(GPR_DEBUG, "test: '%s' should be valid for '%s'", string, - factory->vtable->scheme); GPR_ASSERT(uri); - memset(&args, 0, sizeof(args)); + grpc_core::ResolverArgs args; args.uri = uri; args.combiner = g_combiner; - resolver = grpc_resolver_factory_create_resolver(factory, &args); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + factory->CreateResolver(args); GPR_ASSERT(resolver != nullptr); - GRPC_RESOLVER_UNREF(resolver, "test_succeeds"); grpc_uri_destroy(uri); } -static void test_fails(grpc_resolver_factory* factory, const char* string) { +static void test_fails(grpc_core::ResolverFactory* factory, + const char* string) { + gpr_log(GPR_DEBUG, "test: '%s' should be invalid for '%s'", string, + factory->scheme()); grpc_core::ExecCtx exec_ctx; grpc_uri* uri = grpc_uri_parse(string, 0); - grpc_resolver_args args; - grpc_resolver* resolver; - gpr_log(GPR_DEBUG, "test: '%s' should be invalid for '%s'", string, - factory->vtable->scheme); GPR_ASSERT(uri); - memset(&args, 0, sizeof(args)); + grpc_core::ResolverArgs args; args.uri = uri; args.combiner = g_combiner; - resolver = grpc_resolver_factory_create_resolver(factory, &args); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + factory->CreateResolver(args); GPR_ASSERT(resolver == nullptr); grpc_uri_destroy(uri); } int main(int argc, char** argv) { - grpc_resolver_factory* dns; grpc_test_init(argc, argv); grpc_init(); g_combiner = grpc_combiner_create(); - dns = grpc_resolver_factory_lookup("dns"); + grpc_core::ResolverFactory* dns = + grpc_core::ResolverRegistry::LookupResolverFactory("dns"); test_succeeds(dns, "dns:10.2.1.1"); test_succeeds(dns, "dns:10.2.1.1:1234"); @@ -78,7 +77,6 @@ int main(int argc, char** argv) { test_fails(dns, "ipv4://8.8.8.8/8.8.8.8:8888"); } - grpc_resolver_factory_unref(dns); { grpc_core::ExecCtx exec_ctx; GRPC_COMBINER_UNREF(g_combiner, "test"); diff --git a/test/core/client_channel/resolvers/fake_resolver_test.cc b/test/core/client_channel/resolvers/fake_resolver_test.cc index d85cbb1d03..03af8954e1 100644 --- a/test/core/client_channel/resolvers/fake_resolver_test.cc +++ b/test/core/client_channel/resolvers/fake_resolver_test.cc @@ -27,25 +27,26 @@ #include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h" #include "src/core/ext/filters/client_channel/resolver_registry.h" #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/iomgr/combiner.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "test/core/util/test_config.h" -static grpc_resolver* build_fake_resolver( +static grpc_core::OrphanablePtr<grpc_core::Resolver> build_fake_resolver( grpc_combiner* combiner, - grpc_fake_resolver_response_generator* response_generator) { - grpc_resolver_factory* factory = grpc_resolver_factory_lookup("fake"); + grpc_core::FakeResolverResponseGenerator* response_generator) { + grpc_core::ResolverFactory* factory = + grpc_core::ResolverRegistry::LookupResolverFactory("fake"); grpc_arg generator_arg = - grpc_fake_resolver_response_generator_arg(response_generator); - grpc_resolver_args args; - memset(&args, 0, sizeof(args)); + grpc_core::FakeResolverResponseGenerator::MakeChannelArg( + response_generator); grpc_channel_args channel_args = {1, &generator_arg}; + grpc_core::ResolverArgs args; args.args = &channel_args; args.combiner = combiner; - grpc_resolver* resolver = - grpc_resolver_factory_create_resolver(factory, &args); - grpc_resolver_factory_unref(factory); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + factory->CreateResolver(args); return resolver; } @@ -55,11 +56,13 @@ typedef struct on_resolution_arg { gpr_event ev; } on_resolution_arg; +// Callback to check the resolution result is as expected. void on_resolution_cb(void* arg, grpc_error* error) { + if (error != GRPC_ERROR_NONE) return; on_resolution_arg* res = static_cast<on_resolution_arg*>(arg); // We only check the addresses channel arg because that's the only one // explicitly set by the test via - // grpc_fake_resolver_response_generator_set_response. + // FakeResolverResponseGenerator::SetResponse(). const grpc_lb_addresses* actual_lb_addresses = grpc_lb_addresses_find_channel_arg(res->resolver_result); const grpc_lb_addresses* expected_lb_addresses = @@ -71,97 +74,167 @@ void on_resolution_cb(void* arg, grpc_error* error) { gpr_event_set(&res->ev, (void*)1); } -static void test_fake_resolver() { - grpc_core::ExecCtx exec_ctx; - grpc_combiner* combiner = grpc_combiner_create(); - // Create resolver. - grpc_fake_resolver_response_generator* response_generator = - grpc_fake_resolver_response_generator_create(); - grpc_resolver* resolver = build_fake_resolver(combiner, response_generator); - GPR_ASSERT(resolver != nullptr); - - // Setup expectations. - grpc_uri* uris[] = {grpc_uri_parse("ipv4:10.2.1.1:1234", true), - grpc_uri_parse("ipv4:127.0.0.1:4321", true)}; - const char* balancer_names[] = {"name1", "name2"}; - const bool is_balancer[] = {true, false}; - grpc_lb_addresses* addresses = grpc_lb_addresses_create(3, nullptr); - for (size_t i = 0; i < GPR_ARRAY_SIZE(uris); ++i) { +// Create a new resolution containing 2 addresses. +static grpc_channel_args* create_new_resolver_result() { + static size_t test_counter = 0; + const size_t num_addresses = 2; + char* uri_string; + char* balancer_name; + // Create grpc_lb_addresses. + grpc_lb_addresses* addresses = + grpc_lb_addresses_create(num_addresses, nullptr); + for (size_t i = 0; i < num_addresses; ++i) { + gpr_asprintf(&uri_string, "ipv4:127.0.0.1:100%" PRIuPTR, + test_counter * num_addresses + i); + grpc_uri* uri = grpc_uri_parse(uri_string, true); + gpr_asprintf(&balancer_name, "balancer%" PRIuPTR, + test_counter * num_addresses + i); grpc_lb_addresses_set_address_from_uri( - addresses, i, uris[i], is_balancer[i], balancer_names[i], nullptr); - grpc_uri_destroy(uris[i]); + addresses, i, uri, bool(num_addresses % 2), balancer_name, nullptr); + gpr_free(balancer_name); + grpc_uri_destroy(uri); + gpr_free(uri_string); } + // Convert grpc_lb_addresses to grpc_channel_args. const grpc_arg addresses_arg = grpc_lb_addresses_create_channel_arg(addresses); grpc_channel_args* results = grpc_channel_args_copy_and_add(nullptr, &addresses_arg, 1); grpc_lb_addresses_destroy(addresses); + ++test_counter; + return results; +} + +static on_resolution_arg create_on_resolution_arg(grpc_channel_args* results) { on_resolution_arg on_res_arg; memset(&on_res_arg, 0, sizeof(on_res_arg)); on_res_arg.expected_resolver_result = results; gpr_event_init(&on_res_arg.ev); + return on_res_arg; +} + +static void test_fake_resolver() { + grpc_core::ExecCtx exec_ctx; + grpc_combiner* combiner = grpc_combiner_create(); + // Create resolver. + grpc_core::RefCountedPtr<grpc_core::FakeResolverResponseGenerator> + response_generator = + grpc_core::MakeRefCounted<grpc_core::FakeResolverResponseGenerator>(); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + build_fake_resolver(combiner, response_generator.get()); + GPR_ASSERT(resolver.get() != nullptr); + // Test 1: normal resolution. + // next_results != NULL, reresolution_results == NULL, last_used_results == + // NULL. Expected response is next_results. + grpc_channel_args* results = create_new_resolver_result(); + on_resolution_arg on_res_arg = create_on_resolution_arg(results); grpc_closure* on_resolution = GRPC_CLOSURE_CREATE( on_resolution_cb, &on_res_arg, grpc_combiner_scheduler(combiner)); - - // Set resolver results and trigger first resolution. on_resolution_cb - // performs the checks. - grpc_fake_resolver_response_generator_set_response(response_generator, - results); - grpc_resolver_next_locked(resolver, &on_res_arg.resolver_result, - on_resolution); + // Resolution won't be triggered until next_results is set. + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); + response_generator->SetResponse(results); grpc_core::ExecCtx::Get()->Flush(); GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, grpc_timeout_seconds_to_deadline(5)) != nullptr); - - // Setup update. - grpc_uri* uris_update[] = {grpc_uri_parse("ipv4:192.168.1.0:31416", true)}; - const char* balancer_names_update[] = {"name3"}; - const bool is_balancer_update[] = {false}; - grpc_lb_addresses* addresses_update = grpc_lb_addresses_create(1, nullptr); - for (size_t i = 0; i < GPR_ARRAY_SIZE(uris_update); ++i) { - grpc_lb_addresses_set_address_from_uri(addresses_update, i, uris_update[i], - is_balancer_update[i], - balancer_names_update[i], nullptr); - grpc_uri_destroy(uris_update[i]); - } - - grpc_arg addresses_update_arg = - grpc_lb_addresses_create_channel_arg(addresses_update); - grpc_channel_args* results_update = - grpc_channel_args_copy_and_add(nullptr, &addresses_update_arg, 1); - grpc_lb_addresses_destroy(addresses_update); - - // Setup expectations for the update. - on_resolution_arg on_res_arg_update; - memset(&on_res_arg_update, 0, sizeof(on_res_arg_update)); - on_res_arg_update.expected_resolver_result = results_update; - gpr_event_init(&on_res_arg_update.ev); - on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg_update, + // Test 2: update resolution. + // next_results != NULL, reresolution_results == NULL, last_used_results != + // NULL. Expected response is next_results. + results = create_new_resolver_result(); + grpc_channel_args* last_used_results = grpc_channel_args_copy(results); + on_res_arg = create_on_resolution_arg(results); + on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg, grpc_combiner_scheduler(combiner)); - - // Set updated resolver results and trigger a second resolution. - grpc_fake_resolver_response_generator_set_response(response_generator, - results_update); - grpc_resolver_next_locked(resolver, &on_res_arg_update.resolver_result, - on_resolution); + // Resolution won't be triggered until next_results is set. + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); + response_generator->SetResponse(results); grpc_core::ExecCtx::Get()->Flush(); - GPR_ASSERT(gpr_event_wait(&on_res_arg_update.ev, + GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, grpc_timeout_seconds_to_deadline(5)) != nullptr); - - // Requesting a new resolution without re-senting the response shouldn't - // trigger the resolution callback. + // Test 3: fallback re-resolution. + // next_results == NULL, reresolution_results == NULL, last_used_results != + // NULL. Expected response is last_used_results. + on_res_arg = create_on_resolution_arg(last_used_results); + on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg, + grpc_combiner_scheduler(combiner)); + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); + // Trigger a re-resolution. + resolver->RequestReresolutionLocked(); + grpc_core::ExecCtx::Get()->Flush(); + GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, + grpc_timeout_seconds_to_deadline(5)) != nullptr); + // Test 4: normal re-resolution. + // next_results == NULL, reresolution_results != NULL, last_used_results != + // NULL. Expected response is reresolution_results. + grpc_channel_args* reresolution_results = create_new_resolver_result(); + on_res_arg = + create_on_resolution_arg(grpc_channel_args_copy(reresolution_results)); + on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg, + grpc_combiner_scheduler(combiner)); + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); + // Set reresolution_results. + response_generator->SetReresolutionResponse(reresolution_results); + // Flush here to guarantee that the response has been set. + grpc_core::ExecCtx::Get()->Flush(); + // Trigger a re-resolution. + resolver->RequestReresolutionLocked(); + grpc_core::ExecCtx::Get()->Flush(); + GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, + grpc_timeout_seconds_to_deadline(5)) != nullptr); + // Test 5: repeat re-resolution. + // next_results == NULL, reresolution_results != NULL, last_used_results != + // NULL. Expected response is reresolution_results. + on_res_arg = create_on_resolution_arg(reresolution_results); + on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg, + grpc_combiner_scheduler(combiner)); + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); + // Trigger a re-resolution. + resolver->RequestReresolutionLocked(); + grpc_core::ExecCtx::Get()->Flush(); + GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, + grpc_timeout_seconds_to_deadline(5)) != nullptr); + // Test 6: normal resolution. + // next_results != NULL, reresolution_results != NULL, last_used_results != + // NULL. Expected response is next_results. + results = create_new_resolver_result(); + last_used_results = grpc_channel_args_copy(results); + on_res_arg = create_on_resolution_arg(results); + on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg, + grpc_combiner_scheduler(combiner)); + // Resolution won't be triggered until next_results is set. + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); + response_generator->SetResponse(results); + grpc_core::ExecCtx::Get()->Flush(); + GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, + grpc_timeout_seconds_to_deadline(5)) != nullptr); + // Test 7: fallback re-resolution. + // next_results == NULL, reresolution_results == NULL, last_used_results != + // NULL. Expected response is last_used_results. + on_res_arg = create_on_resolution_arg(last_used_results); + on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg, + grpc_combiner_scheduler(combiner)); + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); + // Reset reresolution_results. + response_generator->SetReresolutionResponse(nullptr); + // Flush here to guarantee that reresolution_results has been reset. + grpc_core::ExecCtx::Get()->Flush(); + // Trigger a re-resolution. + resolver->RequestReresolutionLocked(); + grpc_core::ExecCtx::Get()->Flush(); + GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, + grpc_timeout_seconds_to_deadline(5)) != nullptr); + // Test 8: no-op. + // Requesting a new resolution without setting the response shouldn't trigger + // the resolution callback. memset(&on_res_arg, 0, sizeof(on_res_arg)); - grpc_resolver_next_locked(resolver, &on_res_arg.resolver_result, - on_resolution); + on_resolution = GRPC_CLOSURE_CREATE(on_resolution_cb, &on_res_arg, + grpc_combiner_scheduler(combiner)); + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); grpc_core::ExecCtx::Get()->Flush(); GPR_ASSERT(gpr_event_wait(&on_res_arg.ev, grpc_timeout_milliseconds_to_deadline(100)) == nullptr); - + // Clean up. GRPC_COMBINER_UNREF(combiner, "test_fake_resolver"); - GRPC_RESOLVER_UNREF(resolver, "test_fake_resolver"); - - grpc_fake_resolver_response_generator_unref(response_generator); } int main(int argc, char** argv) { diff --git a/test/core/client_channel/resolvers/sockaddr_resolver_test.cc b/test/core/client_channel/resolvers/sockaddr_resolver_test.cc index 07ee133ee3..b9287c2468 100644 --- a/test/core/client_channel/resolvers/sockaddr_resolver_test.cc +++ b/test/core/client_channel/resolvers/sockaddr_resolver_test.cc @@ -40,18 +40,18 @@ void on_resolution_cb(void* arg, grpc_error* error) { grpc_channel_args_destroy(res->resolver_result); } -static void test_succeeds(grpc_resolver_factory* factory, const char* string) { +static void test_succeeds(grpc_core::ResolverFactory* factory, + const char* string) { + gpr_log(GPR_DEBUG, "test: '%s' should be valid for '%s'", string, + factory->scheme()); grpc_core::ExecCtx exec_ctx; grpc_uri* uri = grpc_uri_parse(string, 0); - grpc_resolver_args args; - grpc_resolver* resolver; - gpr_log(GPR_DEBUG, "test: '%s' should be valid for '%s'", string, - factory->vtable->scheme); GPR_ASSERT(uri); - memset(&args, 0, sizeof(args)); + grpc_core::ResolverArgs args; args.uri = uri; args.combiner = g_combiner; - resolver = grpc_resolver_factory_create_resolver(factory, &args); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + factory->CreateResolver(args); GPR_ASSERT(resolver != nullptr); on_resolution_arg on_res_arg; @@ -60,40 +60,39 @@ static void test_succeeds(grpc_resolver_factory* factory, const char* string) { grpc_closure* on_resolution = GRPC_CLOSURE_CREATE( on_resolution_cb, &on_res_arg, grpc_schedule_on_exec_ctx); - grpc_resolver_next_locked(resolver, &on_res_arg.resolver_result, - on_resolution); - GRPC_RESOLVER_UNREF(resolver, "test_succeeds"); + resolver->NextLocked(&on_res_arg.resolver_result, on_resolution); grpc_uri_destroy(uri); /* Flush ExecCtx to avoid stack-use-after-scope on on_res_arg which is * accessed in the closure on_resolution_cb */ grpc_core::ExecCtx::Get()->Flush(); } -static void test_fails(grpc_resolver_factory* factory, const char* string) { +static void test_fails(grpc_core::ResolverFactory* factory, + const char* string) { + gpr_log(GPR_DEBUG, "test: '%s' should be invalid for '%s'", string, + factory->scheme()); grpc_core::ExecCtx exec_ctx; grpc_uri* uri = grpc_uri_parse(string, 0); - grpc_resolver_args args; - grpc_resolver* resolver; - gpr_log(GPR_DEBUG, "test: '%s' should be invalid for '%s'", string, - factory->vtable->scheme); GPR_ASSERT(uri); - memset(&args, 0, sizeof(args)); + grpc_core::ResolverArgs args; args.uri = uri; args.combiner = g_combiner; - resolver = grpc_resolver_factory_create_resolver(factory, &args); + grpc_core::OrphanablePtr<grpc_core::Resolver> resolver = + factory->CreateResolver(args); GPR_ASSERT(resolver == nullptr); grpc_uri_destroy(uri); } int main(int argc, char** argv) { - grpc_resolver_factory *ipv4, *ipv6; grpc_test_init(argc, argv); grpc_init(); g_combiner = grpc_combiner_create(); - ipv4 = grpc_resolver_factory_lookup("ipv4"); - ipv6 = grpc_resolver_factory_lookup("ipv6"); + grpc_core::ResolverFactory* ipv4 = + grpc_core::ResolverRegistry::LookupResolverFactory("ipv4"); + grpc_core::ResolverFactory* ipv6 = + grpc_core::ResolverRegistry::LookupResolverFactory("ipv6"); test_fails(ipv4, "ipv4:10.2.1.1"); test_succeeds(ipv4, "ipv4:10.2.1.1:1234"); @@ -109,9 +108,6 @@ int main(int argc, char** argv) { test_fails(ipv6, "ipv6:[::]:123456"); test_fails(ipv6, "ipv6:www.google.com"); - grpc_resolver_factory_unref(ipv4); - grpc_resolver_factory_unref(ipv6); - { grpc_core::ExecCtx exec_ctx; GRPC_COMBINER_UNREF(g_combiner, "test"); diff --git a/test/core/compression/algorithm_test.cc b/test/core/compression/algorithm_test.cc index 1699d27142..3dcddf3e67 100644 --- a/test/core/compression/algorithm_test.cc +++ b/test/core/compression/algorithm_test.cc @@ -23,13 +23,12 @@ #include <grpc/grpc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "src/core/lib/slice/slice_internal.h" #include "src/core/lib/transport/static_metadata.h" #include "test/core/util/test_config.h" -const uint32_t message_prefix_length = 8; +const uint32_t message_prefix_length = 0; const uint32_t stream_prefix_length = 7; static void test_algorithm_mesh(void) { int i; diff --git a/test/core/compression/compression_test.cc b/test/core/compression/compression_test.cc index e49a93a4b6..6522988c66 100644 --- a/test/core/compression/compression_test.cc +++ b/test/core/compression/compression_test.cc @@ -22,17 +22,16 @@ #include <grpc/compression.h> #include <grpc/grpc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "test/core/util/test_config.h" static void test_compression_algorithm_parse(void) { size_t i; - const char* valid_names[] = {"identity", "message/gzip", "message/deflate", - "stream/gzip"}; + const char* valid_names[] = {"identity", "gzip", "deflate", "stream/gzip"}; const grpc_compression_algorithm valid_algorithms[] = { - GRPC_COMPRESS_NONE, GRPC_COMPRESS_MESSAGE_GZIP, - GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_STREAM_GZIP}; + GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_DEFLATE, + GRPC_COMPRESS_STREAM_GZIP}; const char* invalid_names[] = {"gzip2", "foo", "", "2gzip"}; gpr_log(GPR_DEBUG, "test_compression_algorithm_parse"); @@ -61,11 +60,10 @@ static void test_compression_algorithm_name(void) { int success; const char* name; size_t i; - const char* valid_names[] = {"identity", "message/gzip", "message/deflate", - "stream/gzip"}; + const char* valid_names[] = {"identity", "gzip", "deflate", "stream/gzip"}; const grpc_compression_algorithm valid_algorithms[] = { - GRPC_COMPRESS_NONE, GRPC_COMPRESS_MESSAGE_GZIP, - GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_STREAM_GZIP}; + GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_DEFLATE, + GRPC_COMPRESS_STREAM_GZIP}; gpr_log(GPR_DEBUG, "test_compression_algorithm_name"); @@ -110,21 +108,21 @@ static void test_compression_algorithm_for_level(void) { /* accept only gzip */ uint32_t accepted_encodings = 0; GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */ - GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_GZIP); + GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_GZIP); GPR_ASSERT(GRPC_COMPRESS_NONE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP == + GPR_ASSERT(GRPC_COMPRESS_GZIP == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP == + GPR_ASSERT(GRPC_COMPRESS_GZIP == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP == + GPR_ASSERT(GRPC_COMPRESS_GZIP == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH, accepted_encodings)); } @@ -133,21 +131,21 @@ static void test_compression_algorithm_for_level(void) { /* accept only deflate */ uint32_t accepted_encodings = 0; GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */ - GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_DEFLATE); + GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_DEFLATE); GPR_ASSERT(GRPC_COMPRESS_NONE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE == + GPR_ASSERT(GRPC_COMPRESS_DEFLATE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE == + GPR_ASSERT(GRPC_COMPRESS_DEFLATE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE == + GPR_ASSERT(GRPC_COMPRESS_DEFLATE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH, accepted_encodings)); } @@ -156,22 +154,22 @@ static void test_compression_algorithm_for_level(void) { /* accept gzip and deflate */ uint32_t accepted_encodings = 0; GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */ - GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_GZIP); - GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_DEFLATE); + GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_GZIP); + GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_DEFLATE); GPR_ASSERT(GRPC_COMPRESS_NONE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP == + GPR_ASSERT(GRPC_COMPRESS_GZIP == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE == + GPR_ASSERT(GRPC_COMPRESS_DEFLATE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE == + GPR_ASSERT(GRPC_COMPRESS_DEFLATE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH, accepted_encodings)); } @@ -203,23 +201,23 @@ static void test_compression_algorithm_for_level(void) { /* accept all algorithms */ uint32_t accepted_encodings = 0; GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_NONE); /* always */ - GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_GZIP); - GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_MESSAGE_DEFLATE); + GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_GZIP); + GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_DEFLATE); GPR_BITSET(&accepted_encodings, GRPC_COMPRESS_STREAM_GZIP); GPR_ASSERT(GRPC_COMPRESS_NONE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_NONE, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_GZIP == + GPR_ASSERT(GRPC_COMPRESS_GZIP == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_LOW, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE == + GPR_ASSERT(GRPC_COMPRESS_DEFLATE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_MED, accepted_encodings)); - GPR_ASSERT(GRPC_COMPRESS_MESSAGE_DEFLATE == + GPR_ASSERT(GRPC_COMPRESS_DEFLATE == grpc_compression_algorithm_for_level(GRPC_COMPRESS_LEVEL_HIGH, accepted_encodings)); } diff --git a/test/core/compression/message_compress_test.cc b/test/core/compression/message_compress_test.cc index bab32e0cc5..e3fe825fdf 100644 --- a/test/core/compression/message_compress_test.cc +++ b/test/core/compression/message_compress_test.cc @@ -23,9 +23,9 @@ #include <grpc/grpc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/murmur_hash.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/util/slice_splitter.h" #include "test/core/util/test_config.h" diff --git a/test/core/compression/stream_compression_test.cc b/test/core/compression/stream_compression_test.cc index 2f30b7fc19..0b84366198 100644 --- a/test/core/compression/stream_compression_test.cc +++ b/test/core/compression/stream_compression_test.cc @@ -29,7 +29,7 @@ static void generate_random_payload(char* payload, size_t size) { size_t i; static const char chars[] = "abcdefghijklmnopqrstuvwxyz1234567890"; for (i = 0; i < size - 1; ++i) { - payload[i] = chars[rand() % (int)(sizeof(chars) - 1)]; + payload[i] = chars[rand() % static_cast<int>(sizeof(chars) - 1)]; } payload[size - 1] = '\0'; } @@ -43,8 +43,10 @@ static bool slice_buffer_equals_string(grpc_slice_buffer* buf, size_t pointer = 0; for (i = 0; i < buf->count; i++) { size_t slice_len = GRPC_SLICE_LENGTH(buf->slices[i]); - if (0 != strncmp(str + pointer, (char*)GRPC_SLICE_START_PTR(buf->slices[i]), - slice_len)) { + if (0 != + strncmp(str + pointer, + reinterpret_cast<char*> GRPC_SLICE_START_PTR(buf->slices[i]), + slice_len)) { return false; } pointer += slice_len; @@ -112,7 +114,7 @@ test_stream_compression_simple_compress_decompress_with_output_size_constraint() GPR_ASSERT(output_size == max_output_size); GPR_ASSERT(end_of_context == false); grpc_slice slice_recv = grpc_slice_buffer_take_first(&sink); - char* str_recv = (char*)GRPC_SLICE_START_PTR(slice_recv); + char* str_recv = reinterpret_cast<char*> GRPC_SLICE_START_PTR(slice_recv); GPR_ASSERT(GRPC_SLICE_LENGTH(slice_recv) == max_output_size); GPR_ASSERT(0 == strncmp(test_str, str_recv, max_output_size)); grpc_slice_unref(slice_recv); diff --git a/test/core/end2end/bad_server_response_test.cc b/test/core/end2end/bad_server_response_test.cc index a8e5e291c8..79331bca6f 100644 --- a/test/core/end2end/bad_server_response_test.cc +++ b/test/core/end2end/bad_server_response_test.cc @@ -27,10 +27,10 @@ #include <grpc/grpc.h> #include <grpc/slice.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/thd.h> +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/slice/slice_internal.h" @@ -133,7 +133,7 @@ static void on_connect(void* arg, grpc_endpoint* tcp, grpc_pollset* accepting_pollset, grpc_tcp_server_acceptor* acceptor) { gpr_free(acceptor); - test_tcp_server* server = (test_tcp_server*)arg; + test_tcp_server* server = static_cast<test_tcp_server*>(arg); GRPC_CLOSURE_INIT(&on_read, handle_read, nullptr, grpc_schedule_on_exec_ctx); GRPC_CLOSURE_INIT(&on_write, done_write, nullptr, grpc_schedule_on_exec_ctx); grpc_slice_buffer_init(&state.temp_incoming_buffer); @@ -196,8 +196,8 @@ static void start_rpc(int target_port, grpc_status_code expected_status, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(state.call, ops, (size_t)(op - ops), tag(1), - nullptr); + error = grpc_call_start_batch(state.call, ops, static_cast<size_t>(op - ops), + tag(1), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); @@ -236,7 +236,7 @@ typedef struct { } poll_args; static void actually_poll_server(void* arg) { - poll_args* pa = (poll_args*)arg; + poll_args* pa = static_cast<poll_args*>(arg); gpr_timespec deadline = n_sec_deadline(10); while (true) { bool done = gpr_atm_acq_load(&state.done_atm) != 0; @@ -258,7 +258,7 @@ static void poll_server_until_read_done(test_tcp_server* server, gpr_atm_rel_store(&state.done_atm, 0); state.write_done = 0; gpr_thd_id id; - poll_args* pa = (poll_args*)gpr_malloc(sizeof(*pa)); + poll_args* pa = static_cast<poll_args*>(gpr_malloc(sizeof(*pa))); pa->server = server; pa->signal_when_done = signal_when_done; gpr_thd_new(&id, "grpc_poll_server", actually_poll_server, pa, nullptr); diff --git a/test/core/end2end/connection_refused_test.cc b/test/core/end2end/connection_refused_test.cc index ca6d17e7c8..ff830b47cd 100644 --- a/test/core/end2end/connection_refused_test.cc +++ b/test/core/end2end/connection_refused_test.cc @@ -20,11 +20,11 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/slice/slice_internal.h" #include "src/core/lib/transport/metadata.h" #include "src/core/lib/transport/service_config.h" diff --git a/test/core/end2end/cq_verifier.cc b/test/core/end2end/cq_verifier.cc index 7bf8ae0f6e..c3a3f43fe1 100644 --- a/test/core/end2end/cq_verifier.cc +++ b/test/core/end2end/cq_verifier.cc @@ -28,7 +28,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "src/core/lib/surface/event_string.h" @@ -62,7 +61,7 @@ struct cq_verifier { }; cq_verifier* cq_verifier_create(grpc_completion_queue* cq) { - cq_verifier* v = (cq_verifier*)gpr_malloc(sizeof(cq_verifier)); + cq_verifier* v = static_cast<cq_verifier*>(gpr_malloc(sizeof(cq_verifier))); v->cq = cq; v->first_expectation = nullptr; return v; @@ -306,7 +305,7 @@ void cq_verify_empty(cq_verifier* v) { cq_verify_empty_timeout(v, 1); } static void add(cq_verifier* v, const char* file, int line, grpc_completion_type type, void* tag, bool success) { - expectation* e = (expectation*)gpr_malloc(sizeof(expectation)); + expectation* e = static_cast<expectation*>(gpr_malloc(sizeof(expectation))); e->type = type; e->file = file; e->line = line; diff --git a/test/core/end2end/dualstack_socket_test.cc b/test/core/end2end/dualstack_socket_test.cc index bb30547cd2..411d0f2308 100644 --- a/test/core/end2end/dualstack_socket_test.cc +++ b/test/core/end2end/dualstack_socket_test.cc @@ -25,10 +25,10 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/resolve_address.h" @@ -128,8 +128,8 @@ void test_connect(const char* server_host, const char* client_host, int port, grpc_slice_buffer uri_parts; char** hosts_with_port; - uri_slice = - grpc_slice_new((char*)client_host, strlen(client_host), do_nothing); + uri_slice = grpc_slice_new(const_cast<char*>(client_host), + strlen(client_host), do_nothing); grpc_slice_buffer_init(&uri_parts); grpc_slice_split(uri_slice, ",", &uri_parts); hosts_with_port = @@ -199,7 +199,8 @@ void test_connect(const char* server_host, const char* client_host, int port, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); if (expect_ok) { @@ -227,8 +228,8 @@ void test_connect(const char* server_host, const char* client_host, int port, op->data.recv_close_on_server.cancelled = &was_cancelled; op->flags = 0; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/end2end_test.sh b/test/core/end2end/end2end_test.sh index 3b18ae30af..b1b9a65a1b 100755 --- a/test/core/end2end/end2end_test.sh +++ b/test/core/end2end/end2end_test.sh @@ -15,4 +15,4 @@ # 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. -$1 $2 +"$1" "$2" diff --git a/test/core/end2end/fixtures/h2_census.cc b/test/core/end2end/fixtures/h2_census.cc index 75c80aa1ff..423764ad07 100644 --- a/test/core/end2end/fixtures/h2_census.cc +++ b/test/core/end2end/fixtures/h2_census.cc @@ -21,16 +21,16 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/fixtures/h2_compress.cc b/test/core/end2end/fixtures/h2_compress.cc index 3625afefcd..af7ddecd00 100644 --- a/test/core/end2end/fixtures/h2_compress.cc +++ b/test/core/end2end/fixtures/h2_compress.cc @@ -21,16 +21,16 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/util/port.h" @@ -70,7 +70,7 @@ void chttp2_init_client_fullstack_compression(grpc_end2end_test_fixture* f, grpc_channel_args_destroy(ffd->client_args_compression); } ffd->client_args_compression = grpc_channel_args_set_compression_algorithm( - client_args, GRPC_COMPRESS_MESSAGE_GZIP); + client_args, GRPC_COMPRESS_GZIP); f->client = grpc_insecure_channel_create( ffd->localaddr, ffd->client_args_compression, nullptr); } @@ -84,7 +84,7 @@ void chttp2_init_server_fullstack_compression(grpc_end2end_test_fixture* f, grpc_channel_args_destroy(ffd->server_args_compression); } ffd->server_args_compression = grpc_channel_args_set_compression_algorithm( - server_args, GRPC_COMPRESS_MESSAGE_GZIP); + server_args, GRPC_COMPRESS_GZIP); if (f->server) { grpc_server_destroy(f->server); } diff --git a/test/core/end2end/fixtures/h2_fakesec.cc b/test/core/end2end/fixtures/h2_fakesec.cc index 87d4668d50..bbf65fcd24 100644 --- a/test/core/end2end/fixtures/h2_fakesec.cc +++ b/test/core/end2end/fixtures/h2_fakesec.cc @@ -22,9 +22,10 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> + #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "test/core/end2end/data/ssl_test_data.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/fixtures/h2_full+pipe.cc b/test/core/end2end/fixtures/h2_full+pipe.cc index b080591e85..88f24b937c 100644 --- a/test/core/end2end/fixtures/h2_full+pipe.cc +++ b/test/core/end2end/fixtures/h2_full+pipe.cc @@ -26,15 +26,15 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/iomgr/wakeup_fd_posix.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" diff --git a/test/core/end2end/fixtures/h2_full+trace.cc b/test/core/end2end/fixtures/h2_full+trace.cc index 7104fbc581..4e0d66896b 100644 --- a/test/core/end2end/fixtures/h2_full+trace.cc +++ b/test/core/end2end/fixtures/h2_full+trace.cc @@ -26,16 +26,16 @@ #endif #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/connected_channel.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/fixtures/h2_full+workarounds.cc b/test/core/end2end/fixtures/h2_full+workarounds.cc index 237841d185..ce0fed6fee 100644 --- a/test/core/end2end/fixtures/h2_full+workarounds.cc +++ b/test/core/end2end/fixtures/h2_full+workarounds.cc @@ -21,16 +21,17 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include <grpc/support/workaround_list.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/fixtures/h2_full.cc b/test/core/end2end/fixtures/h2_full.cc index 6d15c28662..4b96fa268a 100644 --- a/test/core/end2end/fixtures/h2_full.cc +++ b/test/core/end2end/fixtures/h2_full.cc @@ -21,15 +21,15 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/fixtures/h2_http_proxy.cc b/test/core/end2end/fixtures/h2_http_proxy.cc index e8e81f0930..da63f46018 100644 --- a/test/core/end2end/fixtures/h2_http_proxy.cc +++ b/test/core/end2end/fixtures/h2_http_proxy.cc @@ -21,17 +21,17 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/connected_channel.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/end2end/fixtures/http_proxy_fixture.h" diff --git a/test/core/end2end/fixtures/h2_load_reporting.cc b/test/core/end2end/fixtures/h2_load_reporting.cc index fda5f4b052..dddeef5862 100644 --- a/test/core/end2end/fixtures/h2_load_reporting.cc +++ b/test/core/end2end/fixtures/h2_load_reporting.cc @@ -21,17 +21,17 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/filters/load_reporting/server_load_reporting_plugin.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/fixtures/h2_oauth2.cc b/test/core/end2end/fixtures/h2_oauth2.cc index 5fed4434de..9453f2f7cb 100644 --- a/test/core/end2end/fixtures/h2_oauth2.cc +++ b/test/core/end2end/fixtures/h2_oauth2.cc @@ -22,9 +22,10 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> + #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/security/credentials/credentials.h" #include "test/core/end2end/data/ssl_test_data.h" @@ -65,7 +66,7 @@ static void process_oauth2_success(void* state, grpc_auth_context* ctx, test_processor_state* s; GPR_ASSERT(state != nullptr); - s = (test_processor_state*)state; + s = static_cast<test_processor_state*>(state); GPR_ASSERT(s->pseudo_refcount == 1); GPR_ASSERT(oauth2 != nullptr); grpc_auth_context_add_cstring_property(ctx, client_identity_property_name, @@ -83,7 +84,7 @@ static void process_oauth2_failure(void* state, grpc_auth_context* ctx, find_metadata(md, md_count, "authorization", oauth2_md); test_processor_state* s; GPR_ASSERT(state != nullptr); - s = (test_processor_state*)state; + s = static_cast<test_processor_state*>(state); GPR_ASSERT(s->pseudo_refcount == 1); GPR_ASSERT(oauth2 != nullptr); cb(user_data, oauth2, 1, nullptr, 0, GRPC_STATUS_UNAUTHENTICATED, nullptr); @@ -176,7 +177,7 @@ static int fail_server_auth_check(grpc_channel_args* server_args) { } static void processor_destroy(void* state) { - test_processor_state* s = (test_processor_state*)state; + test_processor_state* s = static_cast<test_processor_state*>(state); GPR_ASSERT((s->pseudo_refcount--) == 1); gpr_free(s); } diff --git a/test/core/end2end/fixtures/h2_proxy.cc b/test/core/end2end/fixtures/h2_proxy.cc index 295654cb6a..4379cddf77 100644 --- a/test/core/end2end/fixtures/h2_proxy.cc +++ b/test/core/end2end/fixtures/h2_proxy.cc @@ -21,15 +21,15 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/end2end/fixtures/proxy.h" diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.cc b/test/core/end2end/fixtures/h2_sockpair+trace.cc index 236780b8d3..92b9a463c1 100644 --- a/test/core/end2end/fixtures/h2_sockpair+trace.cc +++ b/test/core/end2end/fixtures/h2_sockpair+trace.cc @@ -29,7 +29,7 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/client/http_client_filter.h" #include "src/core/ext/filters/http/message_compress/message_compress_filter.h" diff --git a/test/core/end2end/fixtures/h2_sockpair.cc b/test/core/end2end/fixtures/h2_sockpair.cc index b68279fd71..46acf1f615 100644 --- a/test/core/end2end/fixtures/h2_sockpair.cc +++ b/test/core/end2end/fixtures/h2_sockpair.cc @@ -24,7 +24,7 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/client/http_client_filter.h" #include "src/core/ext/filters/http/message_compress/message_compress_filter.h" diff --git a/test/core/end2end/fixtures/h2_sockpair_1byte.cc b/test/core/end2end/fixtures/h2_sockpair_1byte.cc index 350be138ca..6499c90271 100644 --- a/test/core/end2end/fixtures/h2_sockpair_1byte.cc +++ b/test/core/end2end/fixtures/h2_sockpair_1byte.cc @@ -24,7 +24,7 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/client/http_client_filter.h" #include "src/core/ext/filters/http/message_compress/message_compress_filter.h" diff --git a/test/core/end2end/fixtures/h2_ssl.cc b/test/core/end2end/fixtures/h2_ssl.cc index 8c5c8a2f3f..bbcc88e4f3 100644 --- a/test/core/end2end/fixtures/h2_ssl.cc +++ b/test/core/end2end/fixtures/h2_ssl.cc @@ -22,11 +22,11 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/gpr/tmpfile.h" #include "src/core/lib/security/credentials/credentials.h" diff --git a/test/core/end2end/fixtures/h2_ssl_proxy.cc b/test/core/end2end/fixtures/h2_ssl_proxy.cc index 3f0646cf0f..6b0b891b18 100644 --- a/test/core/end2end/fixtures/h2_ssl_proxy.cc +++ b/test/core/end2end/fixtures/h2_ssl_proxy.cc @@ -22,11 +22,11 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/gpr/tmpfile.h" #include "src/core/lib/security/credentials/credentials.h" diff --git a/test/core/end2end/fixtures/h2_uds.cc b/test/core/end2end/fixtures/h2_uds.cc index 1944dd84a3..41045c278c 100644 --- a/test/core/end2end/fixtures/h2_uds.cc +++ b/test/core/end2end/fixtures/h2_uds.cc @@ -23,16 +23,16 @@ #include <unistd.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" diff --git a/test/core/end2end/fixtures/http_proxy_fixture.cc b/test/core/end2end/fixtures/http_proxy_fixture.cc index 8ec97df3e4..63a15753a4 100644 --- a/test/core/end2end/fixtures/http_proxy_fixture.cc +++ b/test/core/end2end/fixtures/http_proxy_fixture.cc @@ -26,14 +26,13 @@ #include <grpc/slice_buffer.h> #include <grpc/support/alloc.h> #include <grpc/support/atm.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/http/parser.h" #include "src/core/lib/iomgr/closure.h" @@ -186,7 +185,7 @@ static void proxy_connection_failed(proxy_connection* conn, // Callback for writing proxy data to the client. static void on_client_write_done(void* arg, grpc_error* error) { - proxy_connection* conn = (proxy_connection*)arg; + proxy_connection* conn = static_cast<proxy_connection*>(arg); conn->client_is_writing = false; if (error != GRPC_ERROR_NONE) { proxy_connection_failed(conn, CLIENT_WRITE_FAILED, @@ -211,7 +210,7 @@ static void on_client_write_done(void* arg, grpc_error* error) { // Callback for writing proxy data to the backend server. static void on_server_write_done(void* arg, grpc_error* error) { - proxy_connection* conn = (proxy_connection*)arg; + proxy_connection* conn = static_cast<proxy_connection*>(arg); conn->server_is_writing = false; if (error != GRPC_ERROR_NONE) { proxy_connection_failed(conn, SERVER_WRITE_FAILED, @@ -237,7 +236,7 @@ static void on_server_write_done(void* arg, grpc_error* error) { // Callback for reading data from the client, which will be proxied to // the backend server. static void on_client_read_done(void* arg, grpc_error* error) { - proxy_connection* conn = (proxy_connection*)arg; + proxy_connection* conn = static_cast<proxy_connection*>(arg); if (error != GRPC_ERROR_NONE) { proxy_connection_failed(conn, CLIENT_READ_FAILED, "HTTP proxy client read", GRPC_ERROR_REF(error)); @@ -268,7 +267,7 @@ static void on_client_read_done(void* arg, grpc_error* error) { // Callback for reading data from the backend server, which will be // proxied to the client. static void on_server_read_done(void* arg, grpc_error* error) { - proxy_connection* conn = (proxy_connection*)arg; + proxy_connection* conn = static_cast<proxy_connection*>(arg); if (error != GRPC_ERROR_NONE) { proxy_connection_failed(conn, SERVER_READ_FAILED, "HTTP proxy server read", GRPC_ERROR_REF(error)); @@ -298,7 +297,7 @@ static void on_server_read_done(void* arg, grpc_error* error) { // Callback to write the HTTP response for the CONNECT request. static void on_write_response_done(void* arg, grpc_error* error) { - proxy_connection* conn = (proxy_connection*)arg; + proxy_connection* conn = static_cast<proxy_connection*>(arg); conn->client_is_writing = false; if (error != GRPC_ERROR_NONE) { proxy_connection_failed(conn, SETUP_FAILED, "HTTP proxy write response", @@ -322,7 +321,7 @@ static void on_write_response_done(void* arg, grpc_error* error) { // Callback to connect to the backend server specified by the HTTP // CONNECT request. static void on_server_connect_done(void* arg, grpc_error* error) { - proxy_connection* conn = (proxy_connection*)arg; + proxy_connection* conn = static_cast<proxy_connection*>(arg); if (error != GRPC_ERROR_NONE) { // TODO(roth): Technically, in this case, we should handle the error // by returning an HTTP response to the client indicating that the @@ -371,7 +370,7 @@ static bool proxy_auth_header_matches(char* proxy_auth_header_val, // of this test code, it's fine to pretend this is a client-side error, // which will cause the client connection to be dropped. static void on_read_request_done(void* arg, grpc_error* error) { - proxy_connection* conn = (proxy_connection*)arg; + proxy_connection* conn = static_cast<proxy_connection*>(arg); gpr_log(GPR_DEBUG, "on_read_request_done: %p %s", conn, grpc_error_string(error)); if (error != GRPC_ERROR_NONE) { @@ -457,9 +456,10 @@ static void on_accept(void* arg, grpc_endpoint* endpoint, grpc_pollset* accepting_pollset, grpc_tcp_server_acceptor* acceptor) { gpr_free(acceptor); - grpc_end2end_http_proxy* proxy = (grpc_end2end_http_proxy*)arg; + grpc_end2end_http_proxy* proxy = static_cast<grpc_end2end_http_proxy*>(arg); // Instantiate proxy_connection. - proxy_connection* conn = (proxy_connection*)gpr_zalloc(sizeof(*conn)); + proxy_connection* conn = + static_cast<proxy_connection*>(gpr_zalloc(sizeof(*conn))); gpr_ref(&proxy->users); conn->client_endpoint = endpoint; conn->proxy = proxy; @@ -500,7 +500,7 @@ static void on_accept(void* arg, grpc_endpoint* endpoint, // static void thread_main(void* arg) { - grpc_end2end_http_proxy* proxy = (grpc_end2end_http_proxy*)arg; + grpc_end2end_http_proxy* proxy = static_cast<grpc_end2end_http_proxy*>(arg); grpc_core::ExecCtx exec_ctx; do { gpr_ref(&proxy->users); @@ -519,7 +519,7 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create( grpc_channel_args* args) { grpc_core::ExecCtx exec_ctx; grpc_end2end_http_proxy* proxy = - (grpc_end2end_http_proxy*)gpr_malloc(sizeof(*proxy)); + static_cast<grpc_end2end_http_proxy*>(gpr_malloc(sizeof(*proxy))); memset(proxy, 0, sizeof(*proxy)); proxy->combiner = grpc_combiner_create(); gpr_ref_init(&proxy->users, 1); @@ -534,7 +534,8 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create( GPR_ASSERT(error == GRPC_ERROR_NONE); // Bind to port. grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); memset(&resolved_addr, 0, sizeof(resolved_addr)); addr->sin_family = AF_INET; grpc_sockaddr_set_port(&resolved_addr, proxy_port); @@ -543,7 +544,7 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create( GPR_ASSERT(error == GRPC_ERROR_NONE); GPR_ASSERT(port == proxy_port); // Start server. - proxy->pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + proxy->pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(proxy->pollset, &proxy->mu); grpc_tcp_server_start(proxy->server, &proxy->pollset, 1, on_accept, proxy); @@ -556,7 +557,7 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create( } static void destroy_pollset(void* arg, grpc_error* error) { - grpc_pollset* pollset = (grpc_pollset*)arg; + grpc_pollset* pollset = static_cast<grpc_pollset*>(arg); grpc_pollset_destroy(pollset); gpr_free(pollset); } diff --git a/test/core/end2end/fixtures/inproc.cc b/test/core/end2end/fixtures/inproc.cc index b748fbf09a..796ef67ddb 100644 --- a/test/core/end2end/fixtures/inproc.cc +++ b/test/core/end2end/fixtures/inproc.cc @@ -21,15 +21,15 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + #include "src/core/ext/filters/client_channel/client_channel.h" #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/inproc/inproc_transport.h" #include "src/core/lib/channel/connected_channel.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/surface/channel.h" #include "src/core/lib/surface/server.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/fixtures/proxy.cc b/test/core/end2end/fixtures/proxy.cc index b1698c804c..918988d9dc 100644 --- a/test/core/end2end/fixtures/proxy.cc +++ b/test/core/end2end/fixtures/proxy.cc @@ -21,12 +21,12 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/host_port.h" +#include "src/core/lib/gpr/useful.h" #include "test/core/util/port.h" struct grpc_end2end_proxy { @@ -80,7 +80,8 @@ grpc_end2end_proxy* grpc_end2end_proxy_create(const grpc_end2end_proxy_def* def, int proxy_port = grpc_pick_unused_port_or_die(); int server_port = grpc_pick_unused_port_or_die(); - grpc_end2end_proxy* proxy = (grpc_end2end_proxy*)gpr_malloc(sizeof(*proxy)); + grpc_end2end_proxy* proxy = + static_cast<grpc_end2end_proxy*>(gpr_malloc(sizeof(*proxy))); memset(proxy, 0, sizeof(*proxy)); gpr_join_host_port(&proxy->proxy_port, "localhost", proxy_port); @@ -107,14 +108,14 @@ grpc_end2end_proxy* grpc_end2end_proxy_create(const grpc_end2end_proxy_def* def, } static closure* new_closure(void (*func)(void* arg, int success), void* arg) { - closure* cl = (closure*)gpr_malloc(sizeof(*cl)); + closure* cl = static_cast<closure*>(gpr_malloc(sizeof(*cl))); cl->func = func; cl->arg = arg; return cl; } static void shutdown_complete(void* arg, int success) { - grpc_end2end_proxy* proxy = (grpc_end2end_proxy*)arg; + grpc_end2end_proxy* proxy = static_cast<grpc_end2end_proxy*>(arg); proxy->shutdown = 1; grpc_completion_queue_shutdown(proxy->cq); } @@ -147,12 +148,12 @@ static void unrefpc(proxy_call* pc, const char* reason) { static void refpc(proxy_call* pc, const char* reason) { gpr_ref(&pc->refs); } static void on_c2p_sent_initial_metadata(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); unrefpc(pc, "on_c2p_sent_initial_metadata"); } static void on_p2s_recv_initial_metadata(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); grpc_op op; grpc_call_error err; @@ -174,14 +175,14 @@ static void on_p2s_recv_initial_metadata(void* arg, int success) { } static void on_p2s_sent_initial_metadata(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); unrefpc(pc, "on_p2s_sent_initial_metadata"); } static void on_c2p_recv_msg(void* arg, int success); static void on_p2s_sent_message(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); grpc_op op; grpc_call_error err; @@ -201,12 +202,12 @@ static void on_p2s_sent_message(void* arg, int success) { } static void on_p2s_sent_close(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); unrefpc(pc, "on_p2s_sent_close"); } static void on_c2p_recv_msg(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); grpc_op op; grpc_call_error err; @@ -241,7 +242,7 @@ static void on_c2p_recv_msg(void* arg, int success) { static void on_p2s_recv_msg(void* arg, int success); static void on_c2p_sent_message(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); grpc_op op; grpc_call_error err; @@ -261,7 +262,7 @@ static void on_c2p_sent_message(void* arg, int success) { } static void on_p2s_recv_msg(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); grpc_op op; grpc_call_error err; @@ -281,12 +282,12 @@ static void on_p2s_recv_msg(void* arg, int success) { } static void on_c2p_sent_status(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); unrefpc(pc, "on_c2p_sent_status"); } static void on_p2s_status(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); grpc_op op; grpc_call_error err; @@ -311,18 +312,18 @@ static void on_p2s_status(void* arg, int success) { } static void on_c2p_closed(void* arg, int success) { - proxy_call* pc = (proxy_call*)arg; + proxy_call* pc = static_cast<proxy_call*>(arg); unrefpc(pc, "on_c2p_closed"); } static void on_new_call(void* arg, int success) { - grpc_end2end_proxy* proxy = (grpc_end2end_proxy*)arg; + grpc_end2end_proxy* proxy = static_cast<grpc_end2end_proxy*>(arg); grpc_call_error err; if (success) { grpc_op op; memset(&op, 0, sizeof(op)); - proxy_call* pc = (proxy_call*)gpr_malloc(sizeof(*pc)); + proxy_call* pc = static_cast<proxy_call*>(gpr_malloc(sizeof(*pc))); memset(pc, 0, sizeof(*pc)); pc->proxy = proxy; GPR_SWAP(grpc_metadata_array, pc->c2p_initial_metadata, @@ -412,7 +413,7 @@ static void request_call(grpc_end2end_proxy* proxy) { } static void thread_main(void* arg) { - grpc_end2end_proxy* proxy = (grpc_end2end_proxy*)arg; + grpc_end2end_proxy* proxy = static_cast<grpc_end2end_proxy*>(arg); closure* cl; for (;;) { grpc_event ev = grpc_completion_queue_next( @@ -424,7 +425,7 @@ static void thread_main(void* arg) { case GRPC_QUEUE_SHUTDOWN: return; case GRPC_OP_COMPLETE: - cl = (closure*)ev.tag; + cl = static_cast<closure*>(ev.tag); cl->func(cl->arg, ev.success); gpr_free(cl); break; diff --git a/test/core/end2end/fuzzers/api_fuzzer.cc b/test/core/end2end/fuzzers/api_fuzzer.cc index 14c155502a..dc1183b9a0 100644 --- a/test/core/end2end/fuzzers/api_fuzzer.cc +++ b/test/core/end2end/fuzzers/api_fuzzer.cc @@ -93,7 +93,7 @@ static char* read_string(input_stream* inp, bool* special) { cap = GPR_MAX(3 * cap / 2, cap + 8); str = static_cast<char*>(gpr_realloc(str, cap)); } - c = (char)next_byte(inp); + c = static_cast<char>(next_byte(inp)); str[sz++] = c; } while (c != 0 && c != 1); if (special != nullptr) { @@ -116,7 +116,7 @@ static void read_buffer(input_stream* inp, char** buffer, size_t* length, } *buffer = static_cast<char*>(gpr_malloc(*length)); for (size_t i = 0; i < *length; i++) { - (*buffer)[i] = (char)next_byte(inp); + (*buffer)[i] = static_cast<char>(next_byte(inp)); } } @@ -192,7 +192,9 @@ static grpc_byte_buffer* read_message(input_stream* inp) { return out; } -static int read_int(input_stream* inp) { return (int)read_uint32(inp); } +static int read_int(input_stream* inp) { + return static_cast<int>(read_uint32(inp)); +} static grpc_channel_args* read_args(input_stream* inp) { size_t n = next_byte(inp); @@ -529,10 +531,12 @@ static validator* create_validator(void (*validate)(void* arg, bool success), static void assert_success_and_decrement(void* counter, bool success) { GPR_ASSERT(success); - --*(int*)counter; + --*static_cast<int*>(counter); } -static void decrement(void* counter, bool success) { --*(int*)counter; } +static void decrement(void* counter, bool success) { + --*static_cast<int*>(counter); +} typedef struct connectivity_watch { int* counter; diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/poc-2d730ebd78b3052e4367ad0d485208dcb205482cbcd6289f17907989b8de1fba b/test/core/end2end/fuzzers/api_fuzzer_corpus/poc-2d730ebd78b3052e4367ad0d485208dcb205482cbcd6289f17907989b8de1fba Binary files differnew file mode 100644 index 0000000000..89e28bbe37 --- /dev/null +++ b/test/core/end2end/fuzzers/api_fuzzer_corpus/poc-2d730ebd78b3052e4367ad0d485208dcb205482cbcd6289f17907989b8de1fba diff --git a/test/core/end2end/fuzzers/client_fuzzer.cc b/test/core/end2end/fuzzers/client_fuzzer.cc index c17d581d8b..16acf8ef28 100644 --- a/test/core/end2end/fuzzers/client_fuzzer.cc +++ b/test/core/end2end/fuzzers/client_fuzzer.cc @@ -33,7 +33,7 @@ bool leak_check = true; static void discard_write(grpc_slice slice) {} -static void* tag(int n) { return (void*)(uintptr_t)n; } +static void* tag(int n) { return (void*)static_cast<uintptr_t>(n); } static void dont_log(gpr_log_func_args* args) {} diff --git a/test/core/end2end/fuzzers/hpack.dictionary b/test/core/end2end/fuzzers/hpack.dictionary index a87e49ee52..3ed82e19bd 100644 --- a/test/core/end2end/fuzzers/hpack.dictionary +++ b/test/core/end2end/fuzzers/hpack.dictionary @@ -28,15 +28,13 @@ "\x1Egrpc.max_request_message_bytes" "\x1Fgrpc.max_response_message_bytes" "$/grpc.lb.v1.LoadBalancer/BalanceLoad" -"\x0Fmessage/deflate" -"\x0Cmessage/gzip" +"\x07deflate" +"\x04gzip" "\x0Bstream/gzip" "\x010" "\x011" "\x012" "\x08identity" -"\x04gzip" -"\x07deflate" "\x08trailers" "\x10application/grpc" "\x04POST" diff --git a/test/core/end2end/fuzzers/server_fuzzer.cc b/test/core/end2end/fuzzers/server_fuzzer.cc index 61c55e0afd..5eb83ede7a 100644 --- a/test/core/end2end/fuzzers/server_fuzzer.cc +++ b/test/core/end2end/fuzzers/server_fuzzer.cc @@ -30,8 +30,8 @@ bool leak_check = true; static void discard_write(grpc_slice slice) {} -static void* tag(int n) { return (void*)(uintptr_t)n; } -static int detag(void* p) { return (int)(uintptr_t)p; } +static void* tag(int n) { return (void*)static_cast<uintptr_t>(n); } +static int detag(void* p) { return static_cast<int>((uintptr_t)p); } static void dont_log(gpr_log_func_args* args) {} diff --git a/test/core/end2end/goaway_server_test.cc b/test/core/end2end/goaway_server_test.cc index f23d87ea68..09f0301c44 100644 --- a/test/core/end2end/goaway_server_test.cc +++ b/test/core/end2end/goaway_server_test.cc @@ -77,10 +77,11 @@ static void my_resolve_address(const char* addr, const char* default_port, (*addrs)->addrs = static_cast<grpc_resolved_address*>( gpr_malloc(sizeof(*(*addrs)->addrs))); memset((*addrs)->addrs, 0, sizeof(*(*addrs)->addrs)); - struct sockaddr_in* sa = (struct sockaddr_in*)(*addrs)->addrs[0].addr; + struct sockaddr_in* sa = + reinterpret_cast<struct sockaddr_in*>((*addrs)->addrs[0].addr); sa->sin_family = AF_INET; sa->sin_addr.s_addr = htonl(0x7f000001); - sa->sin_port = htons((uint16_t)g_resolve_port); + sa->sin_port = htons(static_cast<uint16_t>(g_resolve_port)); (*addrs)->addrs[0].len = sizeof(*sa); gpr_mu_unlock(&g_mu); } @@ -109,7 +110,7 @@ static grpc_ares_request* my_dns_lookup_ares( gpr_zalloc(sizeof(struct sockaddr_in))); sa->sin_family = AF_INET; sa->sin_addr.s_addr = htonl(0x7f000001); - sa->sin_port = htons((uint16_t)g_resolve_port); + sa->sin_port = htons(static_cast<uint16_t>(g_resolve_port)); grpc_lb_addresses_set_address(*lb_addrs, 0, sa, sizeof(*sa), false, nullptr, nullptr); gpr_free(sa); diff --git a/test/core/end2end/h2_ssl_cert_test.cc b/test/core/end2end/h2_ssl_cert_test.cc index 9adb96e926..9e2082ce9d 100644 --- a/test/core/end2end/h2_ssl_cert_test.cc +++ b/test/core/end2end/h2_ssl_cert_test.cc @@ -22,11 +22,11 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/gpr/tmpfile.h" #include "src/core/lib/security/credentials/credentials.h" @@ -333,7 +333,8 @@ static void simple_request_body(grpc_end2end_test_fixture f, op->flags = GRPC_INITIAL_METADATA_WAIT_FOR_READY; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), expected_result == SUCCESS); diff --git a/test/core/end2end/invalid_call_argument_test.cc b/test/core/end2end/invalid_call_argument_test.cc index cb6b4c08ef..6cb2e3ee80 100644 --- a/test/core/end2end/invalid_call_argument_test.cc +++ b/test/core/end2end/invalid_call_argument_test.cc @@ -23,9 +23,9 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> +#include "src/core/lib/gpr/host_port.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" @@ -209,7 +209,7 @@ static void test_too_many_metadata() { op = g_state.ops; op->op = GRPC_OP_SEND_INITIAL_METADATA; - op->data.send_initial_metadata.count = (size_t)INT_MAX + 1; + op->data.send_initial_metadata.count = static_cast<size_t>(INT_MAX) + 1; op->flags = 0; op->reserved = nullptr; op++; @@ -499,7 +499,7 @@ static void test_too_many_trailing_metadata() { op = g_state.ops; op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; op->data.send_status_from_server.trailing_metadata_count = - (size_t)INT_MAX + 1; + static_cast<size_t>(INT_MAX) + 1; op->data.send_status_from_server.status = GRPC_STATUS_UNIMPLEMENTED; grpc_slice status_details = grpc_slice_from_static_string("xyz"); op->data.send_status_from_server.status_details = &status_details; diff --git a/test/core/end2end/tests/authority_not_supported.cc b/test/core/end2end/tests/authority_not_supported.cc index 9c8545058c..01a95e4e10 100644 --- a/test/core/end2end/tests/authority_not_supported.cc +++ b/test/core/end2end/tests/authority_not_supported.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -155,7 +154,8 @@ static void test_with_authority_header(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); diff --git a/test/core/end2end/tests/bad_hostname.cc b/test/core/end2end/tests/bad_hostname.cc index 85e9ba1307..b6f06a20d6 100644 --- a/test/core/end2end/tests/bad_hostname.cc +++ b/test/core/end2end/tests/bad_hostname.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -134,7 +133,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); diff --git a/test/core/end2end/tests/bad_ping.cc b/test/core/end2end/tests/bad_ping.cc index 30a1b8de77..ddab3faa27 100644 --- a/test/core/end2end/tests/bad_ping.cc +++ b/test/core/end2end/tests/bad_ping.cc @@ -25,8 +25,8 @@ #include <grpc/support/sync.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" #define MAX_PING_STRIKES 1 @@ -144,7 +144,8 @@ static void test_bad_ping(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -188,7 +189,8 @@ static void test_bad_ping(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/binary_metadata.cc b/test/core/end2end/tests/binary_metadata.cc index 381671e331..e66b4da6cc 100644 --- a/test/core/end2end/tests/binary_metadata.cc +++ b/test/core/end2end/tests/binary_metadata.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -183,7 +182,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -206,7 +206,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -247,7 +248,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/call_creds.cc b/test/core/end2end/tests/call_creds.cc index c5ea101c53..e9cbaa3088 100644 --- a/test/core/end2end/tests/call_creds.cc +++ b/test/core/end2end/tests/call_creds.cc @@ -26,7 +26,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + #include "src/core/lib/gpr/string.h" #include "src/core/lib/security/credentials/credentials.h" #include "test/core/end2end/cq_verifier.h" @@ -219,7 +219,8 @@ static void request_response_with_payload_and_call_creds( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -253,7 +254,8 @@ static void request_response_with_payload_and_call_creds( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -279,7 +281,8 @@ static void request_response_with_payload_and_call_creds( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); @@ -443,7 +446,8 @@ static void test_request_with_server_rejecting_client_creds( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(error == GRPC_CALL_OK); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); diff --git a/test/core/end2end/tests/cancel_after_accept.cc b/test/core/end2end/tests/cancel_after_accept.cc index f59caf7e35..ee1a0bbccc 100644 --- a/test/core/end2end/tests/cancel_after_accept.cc +++ b/test/core/end2end/tests/cancel_after_accept.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/slice/slice_internal.h" @@ -187,7 +186,8 @@ static void test_cancel_after_accept(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = grpc_server_request_call(f.server, &s, &call_details, @@ -218,7 +218,8 @@ static void test_cancel_after_accept(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == mode.initiate_cancel(c, nullptr)); diff --git a/test/core/end2end/tests/cancel_after_client_done.cc b/test/core/end2end/tests/cancel_after_client_done.cc index 9b832d435d..31c3ea6f74 100644 --- a/test/core/end2end/tests/cancel_after_client_done.cc +++ b/test/core/end2end/tests/cancel_after_client_done.cc @@ -25,7 +25,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/end2end/tests/cancel_test_helpers.h" @@ -163,7 +164,8 @@ static void test_cancel_after_accept_and_writes_closed( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = grpc_server_request_call(f.server, &s, &call_details, @@ -194,7 +196,8 @@ static void test_cancel_after_accept_and_writes_closed( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == mode.initiate_cancel(c, nullptr)); diff --git a/test/core/end2end/tests/cancel_after_invoke.cc b/test/core/end2end/tests/cancel_after_invoke.cc index d3891b160e..a3e36e0e3f 100644 --- a/test/core/end2end/tests/cancel_after_invoke.cc +++ b/test/core/end2end/tests/cancel_after_invoke.cc @@ -25,7 +25,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/end2end/tests/cancel_test_helpers.h" diff --git a/test/core/end2end/tests/cancel_after_round_trip.cc b/test/core/end2end/tests/cancel_after_round_trip.cc index b10b93978d..bf3be1c8b7 100644 --- a/test/core/end2end/tests/cancel_after_round_trip.cc +++ b/test/core/end2end/tests/cancel_after_round_trip.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/slice/slice_internal.h" @@ -182,7 +181,8 @@ static void test_cancel_after_round_trip(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -209,7 +209,8 @@ static void test_cancel_after_round_trip(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -235,7 +236,8 @@ static void test_cancel_after_round_trip(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == mode.initiate_cancel(c, nullptr)); @@ -252,7 +254,8 @@ static void test_cancel_after_round_trip(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); diff --git a/test/core/end2end/tests/cancel_before_invoke.cc b/test/core/end2end/tests/cancel_before_invoke.cc index 1112375176..e9fa0466fb 100644 --- a/test/core/end2end/tests/cancel_before_invoke.cc +++ b/test/core/end2end/tests/cancel_before_invoke.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.cc b/test/core/end2end/tests/cancel_in_a_vacuum.cc index a6c534eb08..6be2d69095 100644 --- a/test/core/end2end/tests/cancel_in_a_vacuum.cc +++ b/test/core/end2end/tests/cancel_in_a_vacuum.cc @@ -25,7 +25,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/end2end/tests/cancel_test_helpers.h" diff --git a/test/core/end2end/tests/cancel_with_status.cc b/test/core/end2end/tests/cancel_with_status.cc index 7937fd161f..6820ba5a2f 100644 --- a/test/core/end2end/tests/cancel_with_status.cc +++ b/test/core/end2end/tests/cancel_with_status.cc @@ -27,7 +27,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" diff --git a/test/core/end2end/tests/compressed_payload.cc b/test/core/end2end/tests/compressed_payload.cc index c08653b1c8..85cfe16508 100644 --- a/test/core/end2end/tests/compressed_payload.cc +++ b/test/core/end2end/tests/compressed_payload.cc @@ -28,7 +28,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/surface/call.h" @@ -188,7 +187,8 @@ static void request_for_disabled_algorithm( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(101), true); @@ -206,7 +206,8 @@ static void request_for_disabled_algorithm( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), false); @@ -217,7 +218,8 @@ static void request_for_disabled_algorithm( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), true); @@ -339,7 +341,8 @@ static void request_with_payload_template( op->flags = client_send_flags_bitmask; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), true); } @@ -368,7 +371,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -383,9 +387,9 @@ static void request_with_payload_template( GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), GRPC_COMPRESS_NONE) != 0); GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), - GRPC_COMPRESS_MESSAGE_DEFLATE) != 0); + GRPC_COMPRESS_DEFLATE) != 0); GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), - GRPC_COMPRESS_MESSAGE_GZIP) != 0); + GRPC_COMPRESS_GZIP) != 0); memset(ops, 0, sizeof(ops)); op = ops; @@ -404,7 +408,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(101), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(101), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); for (int i = 0; i < 2; i++) { @@ -419,8 +424,8 @@ static void request_with_payload_template( op->flags = client_send_flags_bitmask; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), + tag(2), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); } @@ -432,8 +437,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -451,8 +456,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(103), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -462,7 +467,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); @@ -496,7 +502,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(4), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(4), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -509,7 +516,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); @@ -550,9 +558,8 @@ static void test_invoke_request_with_exceptionally_uncompressed_payload( grpc_end2end_test_config config) { request_with_payload_template( config, "test_invoke_request_with_exceptionally_uncompressed_payload", - GRPC_WRITE_NO_COMPRESS, GRPC_COMPRESS_MESSAGE_GZIP, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_NONE, - GRPC_COMPRESS_MESSAGE_GZIP, nullptr, false, + GRPC_WRITE_NO_COMPRESS, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, + GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, nullptr, false, /* ignored */ GRPC_COMPRESS_LEVEL_NONE, false); } @@ -569,8 +576,8 @@ static void test_invoke_request_with_compressed_payload( grpc_end2end_test_config config) { request_with_payload_template( config, "test_invoke_request_with_compressed_payload", 0, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, nullptr, false, + GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, + GRPC_COMPRESS_GZIP, nullptr, false, /* ignored */ GRPC_COMPRESS_LEVEL_NONE, false); } @@ -578,8 +585,8 @@ static void test_invoke_request_with_send_message_before_initial_metadata( grpc_end2end_test_config config) { request_with_payload_template( config, "test_invoke_request_with_compressed_payload", 0, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, nullptr, false, + GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, + GRPC_COMPRESS_GZIP, nullptr, false, /* ignored */ GRPC_COMPRESS_LEVEL_NONE, true); } @@ -597,8 +604,7 @@ static void test_invoke_request_with_compressed_payload_md_override( grpc_metadata identity_compression_override; gzip_compression_override.key = GRPC_MDSTR_GRPC_INTERNAL_ENCODING_REQUEST; - gzip_compression_override.value = - grpc_slice_from_static_string("message/gzip"); + gzip_compression_override.value = grpc_slice_from_static_string("gzip"); memset(&gzip_compression_override.internal_data, 0, sizeof(gzip_compression_override.internal_data)); @@ -611,32 +617,31 @@ static void test_invoke_request_with_compressed_payload_md_override( /* Channel default NONE (aka IDENTITY), call override to GZIP */ request_with_payload_template( config, "test_invoke_request_with_compressed_payload_md_override_1", 0, - GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_MESSAGE_GZIP, + GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_NONE, &gzip_compression_override, false, /*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false); /* Channel default DEFLATE, call override to GZIP */ request_with_payload_template( config, "test_invoke_request_with_compressed_payload_md_override_2", 0, - GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_NONE, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_NONE, - &gzip_compression_override, false, + GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, + GRPC_COMPRESS_NONE, &gzip_compression_override, false, /*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false); /* Channel default DEFLATE, call override to NONE (aka IDENTITY) */ request_with_payload_template( config, "test_invoke_request_with_compressed_payload_md_override_3", 0, - GRPC_COMPRESS_MESSAGE_DEFLATE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, + GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, GRPC_COMPRESS_NONE, &identity_compression_override, false, /*ignored*/ GRPC_COMPRESS_LEVEL_NONE, false); } static void test_invoke_request_with_disabled_algorithm( grpc_end2end_test_config config) { - request_for_disabled_algorithm( - config, "test_invoke_request_with_disabled_algorithm", 0, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, - GRPC_STATUS_UNIMPLEMENTED, nullptr); + request_for_disabled_algorithm(config, + "test_invoke_request_with_disabled_algorithm", + 0, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, + GRPC_STATUS_UNIMPLEMENTED, nullptr); } void compressed_payload(grpc_end2end_test_config config) { diff --git a/test/core/end2end/tests/connectivity.cc b/test/core/end2end/tests/connectivity.cc index da65080bc0..56e5189a22 100644 --- a/test/core/end2end/tests/connectivity.cc +++ b/test/core/end2end/tests/connectivity.cc @@ -34,7 +34,7 @@ typedef struct { } child_events; static void child_thread(void* arg) { - child_events* ce = (child_events*)arg; + child_events* ce = static_cast<child_events*>(arg); grpc_event ev; gpr_event_set(&ce->started, (void*)1); gpr_log(GPR_DEBUG, "verifying"); diff --git a/test/core/end2end/tests/default_host.cc b/test/core/end2end/tests/default_host.cc index 7c94420540..3191f76688 100644 --- a/test/core/end2end/tests/default_host.cc +++ b/test/core/end2end/tests/default_host.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -141,7 +140,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(error == GRPC_CALL_OK); error = @@ -180,7 +180,8 @@ static void simple_request_body(grpc_end2end_test_fixture f) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(error == GRPC_CALL_OK); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/disappearing_server.cc b/test/core/end2end/tests/disappearing_server.cc index 29fb19463f..d5b6f8fbf0 100644 --- a/test/core/end2end/tests/disappearing_server.cc +++ b/test/core/end2end/tests/disappearing_server.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -121,7 +120,8 @@ static void do_request_and_shutdown_server(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -155,7 +155,8 @@ static void do_request_and_shutdown_server(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/empty_batch.cc b/test/core/end2end/tests/empty_batch.cc index c41e65ddd2..1de4b8fda8 100644 --- a/test/core/end2end/tests/empty_batch.cc +++ b/test/core/end2end/tests/empty_batch.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" diff --git a/test/core/end2end/tests/filter_call_init_fails.cc b/test/core/end2end/tests/filter_call_init_fails.cc index 8f46f0bb91..6f72a1843a 100644 --- a/test/core/end2end/tests/filter_call_init_fails.cc +++ b/test/core/end2end/tests/filter_call_init_fails.cc @@ -27,7 +27,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_stack_builder.h" #include "src/core/lib/surface/channel_init.h" #include "test/core/end2end/cq_verifier.h" @@ -159,7 +158,8 @@ static void test_server_channel_filter(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -254,7 +254,8 @@ static void test_client_channel_filter(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); @@ -345,7 +346,8 @@ static void test_client_subchannel_filter(grpc_end2end_test_config config) { op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); @@ -369,7 +371,8 @@ static void test_client_subchannel_filter(grpc_end2end_test_config config) { nullptr); GPR_ASSERT(c); - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); diff --git a/test/core/end2end/tests/filter_causes_close.cc b/test/core/end2end/tests/filter_causes_close.cc index ec8f9dbe00..bc4cb8633d 100644 --- a/test/core/end2end/tests/filter_causes_close.cc +++ b/test/core/end2end/tests/filter_causes_close.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_stack_builder.h" #include "src/core/lib/surface/channel_init.h" #include "test/core/end2end/cq_verifier.h" @@ -153,7 +152,8 @@ static void test_request(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -198,8 +198,8 @@ typedef struct { } channel_data; static void recv_im_ready(void* arg, grpc_error* error) { - grpc_call_element* elem = (grpc_call_element*)arg; - call_data* calld = (call_data*)elem->call_data; + grpc_call_element* elem = static_cast<grpc_call_element*>(arg); + call_data* calld = static_cast<call_data*>(elem->call_data); GRPC_CLOSURE_RUN( calld->recv_im_ready, grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING( @@ -210,7 +210,7 @@ static void recv_im_ready(void* arg, grpc_error* error) { static void start_transport_stream_op_batch( grpc_call_element* elem, grpc_transport_stream_op_batch* op) { - call_data* calld = (call_data*)elem->call_data; + call_data* calld = static_cast<call_data*>(elem->call_data); if (op->recv_initial_metadata) { calld->recv_im_ready = op->payload->recv_initial_metadata.recv_initial_metadata_ready; diff --git a/test/core/end2end/tests/filter_latency.cc b/test/core/end2end/tests/filter_latency.cc index 845cbc01cf..51f54c9742 100644 --- a/test/core/end2end/tests/filter_latency.cc +++ b/test/core/end2end/tests/filter_latency.cc @@ -27,7 +27,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_stack_builder.h" #include "src/core/lib/surface/channel_init.h" @@ -166,7 +165,8 @@ static void test_request(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -197,7 +197,8 @@ static void test_request(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -306,7 +307,7 @@ static const grpc_channel_filter test_server_filter = { */ static bool maybe_add_filter(grpc_channel_stack_builder* builder, void* arg) { - grpc_channel_filter* filter = (grpc_channel_filter*)arg; + grpc_channel_filter* filter = static_cast<grpc_channel_filter*>(arg); if (g_enable_filter) { // Want to add the filter as close to the end as possible, to make // sure that all of the filters work well together. However, we diff --git a/test/core/end2end/tests/filter_status_code.cc b/test/core/end2end/tests/filter_status_code.cc index 61c658b95a..32cd95410e 100644 --- a/test/core/end2end/tests/filter_status_code.cc +++ b/test/core/end2end/tests/filter_status_code.cc @@ -27,7 +27,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_stack_builder.h" #include "src/core/lib/surface/call.h" @@ -165,7 +164,8 @@ static void test_request(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -200,7 +200,8 @@ static void test_request(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -251,7 +252,7 @@ typedef struct final_status_data { static grpc_error* init_call_elem(grpc_call_element* elem, const grpc_call_element_args* args) { - final_status_data* data = (final_status_data*)elem->call_data; + final_status_data* data = static_cast<final_status_data*>(elem->call_data); data->call = args->call_stack; return GRPC_ERROR_NONE; } @@ -259,7 +260,7 @@ static grpc_error* init_call_elem(grpc_call_element* elem, static void client_destroy_call_elem(grpc_call_element* elem, const grpc_call_final_info* final_info, grpc_closure* ignored) { - final_status_data* data = (final_status_data*)elem->call_data; + final_status_data* data = static_cast<final_status_data*>(elem->call_data); gpr_mu_lock(&g_mu); // Some fixtures, like proxies, will spawn intermidiate calls // We only want the results from our explicit calls @@ -274,7 +275,7 @@ static void client_destroy_call_elem(grpc_call_element* elem, static void server_destroy_call_elem(grpc_call_element* elem, const grpc_call_final_info* final_info, grpc_closure* ignored) { - final_status_data* data = (final_status_data*)elem->call_data; + final_status_data* data = static_cast<final_status_data*>(elem->call_data); gpr_mu_lock(&g_mu); // Some fixtures, like proxies, will spawn intermidiate calls // We only want the results from our explicit calls @@ -324,7 +325,7 @@ static const grpc_channel_filter test_server_filter = { */ static bool maybe_add_filter(grpc_channel_stack_builder* builder, void* arg) { - grpc_channel_filter* filter = (grpc_channel_filter*)arg; + grpc_channel_filter* filter = static_cast<grpc_channel_filter*>(arg); if (g_enable_filter) { // Want to add the filter as close to the end as possible, to make // sure that all of the filters work well together. However, we diff --git a/test/core/end2end/tests/graceful_server_shutdown.cc b/test/core/end2end/tests/graceful_server_shutdown.cc index bf11b49fa4..3ef414f83c 100644 --- a/test/core/end2end/tests/graceful_server_shutdown.cc +++ b/test/core/end2end/tests/graceful_server_shutdown.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -136,7 +135,8 @@ static void test_early_server_shutdown_finishes_inflight_calls( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -170,7 +170,8 @@ static void test_early_server_shutdown_finishes_inflight_calls( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/high_initial_seqno.cc b/test/core/end2end/tests/high_initial_seqno.cc index d4d4f5a817..8767437802 100644 --- a/test/core/end2end/tests/high_initial_seqno.cc +++ b/test/core/end2end/tests/high_initial_seqno.cc @@ -27,7 +27,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -140,7 +139,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -170,7 +170,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/hpack_size.cc b/test/core/end2end/tests/hpack_size.cc index 0d6ec01e36..b49736841e 100644 --- a/test/core/end2end/tests/hpack_size.cc +++ b/test/core/end2end/tests/hpack_size.cc @@ -27,9 +27,9 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -293,7 +293,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -323,7 +324,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/idempotent_request.cc b/test/core/end2end/tests/idempotent_request.cc index 7487e4d83d..56be2d6afe 100644 --- a/test/core/end2end/tests/idempotent_request.cc +++ b/test/core/end2end/tests/idempotent_request.cc @@ -26,7 +26,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -144,7 +144,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -183,7 +184,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/invoke_large_request.cc b/test/core/end2end/tests/invoke_large_request.cc index 8a67e3c2b1..1aab34c2ce 100644 --- a/test/core/end2end/tests/invoke_large_request.cc +++ b/test/core/end2end/tests/invoke_large_request.cc @@ -26,7 +26,8 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -175,7 +176,8 @@ static void test_invoke_large_request(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -197,7 +199,8 @@ static void test_invoke_large_request(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -223,7 +226,8 @@ static void test_invoke_large_request(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/keepalive_timeout.cc b/test/core/end2end/tests/keepalive_timeout.cc index 6482b86825..f0dd061e33 100644 --- a/test/core/end2end/tests/keepalive_timeout.cc +++ b/test/core/end2end/tests/keepalive_timeout.cc @@ -25,10 +25,11 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + #include "src/core/ext/transport/chttp2/transport/frame_ping.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/end2end/cq_verifier.h" @@ -154,7 +155,8 @@ static void test_keepalive_timeout(grpc_end2end_test_config config) { op->op = GRPC_OP_RECV_MESSAGE; op->data.recv_message.recv_message = &response_payload_recv; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( @@ -171,7 +173,8 @@ static void test_keepalive_timeout(grpc_end2end_test_config config) { op->op = GRPC_OP_SEND_MESSAGE; op->data.send_message.send_message = response_payload; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -185,7 +188,8 @@ static void test_keepalive_timeout(grpc_end2end_test_config config) { op->data.recv_status_on_client.status = &status; op->data.recv_status_on_client.status_details = &details; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(3), 1); diff --git a/test/core/end2end/tests/large_metadata.cc b/test/core/end2end/tests/large_metadata.cc index 8ddf433ac0..da0615bf6e 100644 --- a/test/core/end2end/tests/large_metadata.cc +++ b/test/core/end2end/tests/large_metadata.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -97,7 +96,7 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) { grpc_arg arg; arg.type = GRPC_ARG_INTEGER; arg.key = const_cast<char*>(GRPC_ARG_MAX_METADATA_SIZE); - arg.value.integer = (int)large_size + 1024; + arg.value.integer = static_cast<int>(large_size) + 1024; grpc_channel_args args = {1, &arg}; grpc_end2end_test_fixture f = begin_test(config, "test_request_with_large_metadata", &args, &args); @@ -161,7 +160,8 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -185,7 +185,8 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -208,7 +209,8 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/load_reporting_hook.cc b/test/core/end2end/tests/load_reporting_hook.cc index e056bd547b..9e79d02be4 100644 --- a/test/core/end2end/tests/load_reporting_hook.cc +++ b/test/core/end2end/tests/load_reporting_hook.cc @@ -24,7 +24,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/ext/filters/load_reporting/server_load_reporting_filter.h" #include "src/core/ext/filters/load_reporting/server_load_reporting_plugin.h" @@ -186,7 +185,8 @@ static void request_response_with_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -208,7 +208,8 @@ static void request_response_with_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -236,7 +237,8 @@ static void request_response_with_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/max_concurrent_streams.cc b/test/core/end2end/tests/max_concurrent_streams.cc index c0539739e1..789b3d4b77 100644 --- a/test/core/end2end/tests/max_concurrent_streams.cc +++ b/test/core/end2end/tests/max_concurrent_streams.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -136,7 +135,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -166,7 +166,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -275,7 +276,8 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c1, ops, (size_t)(op - ops), tag(301), nullptr); + error = grpc_call_start_batch(c1, ops, static_cast<size_t>(op - ops), + tag(301), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -293,7 +295,8 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c1, ops, (size_t)(op - ops), tag(302), nullptr); + error = grpc_call_start_batch(c1, ops, static_cast<size_t>(op - ops), + tag(302), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -307,7 +310,8 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c2, ops, (size_t)(op - ops), tag(401), nullptr); + error = grpc_call_start_batch(c2, ops, static_cast<size_t>(op - ops), + tag(401), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -325,7 +329,8 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c2, ops, (size_t)(op - ops), tag(402), nullptr); + error = grpc_call_start_batch(c2, ops, static_cast<size_t>(op - ops), + tag(402), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); got_client_start = 0; @@ -346,7 +351,7 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { * both); * check this here */ /* We'll get tag 303 or 403, we want 300, 400 */ - live_call = ((int)(intptr_t)ev.tag) - 1; + live_call = (static_cast<int>((intptr_t)ev.tag)) - 1; got_client_start = 1; } } @@ -372,7 +377,8 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s1, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s1, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -409,7 +415,8 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s2, ops, (size_t)(op - ops), tag(202), nullptr); + error = grpc_call_start_batch(s2, ops, static_cast<size_t>(op - ops), + tag(202), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(live_call + 2), 1); @@ -515,7 +522,8 @@ static void test_max_concurrent_streams_with_timeout_on_first( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c1, ops, (size_t)(op - ops), tag(301), nullptr); + error = grpc_call_start_batch(c1, ops, static_cast<size_t>(op - ops), + tag(301), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -533,7 +541,8 @@ static void test_max_concurrent_streams_with_timeout_on_first( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c1, ops, (size_t)(op - ops), tag(302), nullptr); + error = grpc_call_start_batch(c1, ops, static_cast<size_t>(op - ops), + tag(302), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(101), 1); @@ -551,7 +560,8 @@ static void test_max_concurrent_streams_with_timeout_on_first( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c2, ops, (size_t)(op - ops), tag(401), nullptr); + error = grpc_call_start_batch(c2, ops, static_cast<size_t>(op - ops), + tag(401), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -569,7 +579,8 @@ static void test_max_concurrent_streams_with_timeout_on_first( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c2, ops, (size_t)(op - ops), tag(402), nullptr); + error = grpc_call_start_batch(c2, ops, static_cast<size_t>(op - ops), + tag(402), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); grpc_call_details_destroy(&call_details); @@ -604,7 +615,8 @@ static void test_max_concurrent_streams_with_timeout_on_first( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s2, ops, (size_t)(op - ops), tag(202), nullptr); + error = grpc_call_start_batch(s2, ops, static_cast<size_t>(op - ops), + tag(202), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(402), 1); @@ -710,7 +722,8 @@ static void test_max_concurrent_streams_with_timeout_on_second( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c1, ops, (size_t)(op - ops), tag(301), nullptr); + error = grpc_call_start_batch(c1, ops, static_cast<size_t>(op - ops), + tag(301), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -728,7 +741,8 @@ static void test_max_concurrent_streams_with_timeout_on_second( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c1, ops, (size_t)(op - ops), tag(302), nullptr); + error = grpc_call_start_batch(c1, ops, static_cast<size_t>(op - ops), + tag(302), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(101), 1); @@ -746,7 +760,8 @@ static void test_max_concurrent_streams_with_timeout_on_second( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c2, ops, (size_t)(op - ops), tag(401), nullptr); + error = grpc_call_start_batch(c2, ops, static_cast<size_t>(op - ops), + tag(401), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -764,7 +779,8 @@ static void test_max_concurrent_streams_with_timeout_on_second( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c2, ops, (size_t)(op - ops), tag(402), nullptr); + error = grpc_call_start_batch(c2, ops, static_cast<size_t>(op - ops), + tag(402), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* the second request is time out*/ @@ -797,7 +813,8 @@ static void test_max_concurrent_streams_with_timeout_on_second( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s1, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s1, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(302), 1); diff --git a/test/core/end2end/tests/max_connection_age.cc b/test/core/end2end/tests/max_connection_age.cc index ddccfc3b51..e494dad19c 100644 --- a/test/core/end2end/tests/max_connection_age.cc +++ b/test/core/end2end/tests/max_connection_age.cc @@ -24,8 +24,8 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" #define MAX_CONNECTION_AGE_MS 500 @@ -145,7 +145,8 @@ static void test_max_age_forcibly_close(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -156,7 +157,8 @@ static void test_max_age_forcibly_close(grpc_end2end_test_config config) { cq_verify(cqv); gpr_timespec expect_shutdown_time = grpc_timeout_milliseconds_to_deadline( - (int)(MAX_CONNECTION_AGE_MS * MAX_CONNECTION_AGE_JITTER_MULTIPLIER) + + static_cast<int>(MAX_CONNECTION_AGE_MS * + MAX_CONNECTION_AGE_JITTER_MULTIPLIER) + MAX_CONNECTION_AGE_GRACE_MS + IMMEDIATE_SHUTDOWN_GRACE_TIME_MS); /* Wait for the channel to reach its max age */ @@ -190,7 +192,8 @@ static void test_max_age_forcibly_close(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), true); cq_verify(cqv); @@ -288,7 +291,8 @@ static void test_max_age_gracefully_close(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -325,7 +329,8 @@ static void test_max_age_gracefully_close(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), true); diff --git a/test/core/end2end/tests/max_connection_idle.cc b/test/core/end2end/tests/max_connection_idle.cc index 293ff7d1f2..2f212b965f 100644 --- a/test/core/end2end/tests/max_connection_idle.cc +++ b/test/core/end2end/tests/max_connection_idle.cc @@ -25,8 +25,8 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" #define MAX_CONNECTION_IDLE_MS 500 @@ -100,7 +100,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -139,7 +140,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/max_message_length.cc b/test/core/end2end/tests/max_message_length.cc index e581f1fc20..3dd1737793 100644 --- a/test/core/end2end/tests/max_message_length.cc +++ b/test/core/end2end/tests/max_message_length.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/slice/slice_internal.h" @@ -220,7 +219,8 @@ static void test_max_message_length_on_request(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); if (send_limit) { @@ -248,7 +248,8 @@ static void test_max_message_length_on_request(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -409,7 +410,8 @@ static void test_max_message_length_on_response(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -444,7 +446,8 @@ static void test_max_message_length_on_response(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/negative_deadline.cc b/test/core/end2end/tests/negative_deadline.cc index b752bf9482..b28bee0fb2 100644 --- a/test/core/end2end/tests/negative_deadline.cc +++ b/test/core/end2end/tests/negative_deadline.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" diff --git a/test/core/end2end/tests/network_status_change.cc b/test/core/end2end/tests/network_status_change.cc index 7d0318fda6..83cb172f26 100644 --- a/test/core/end2end/tests/network_status_change.cc +++ b/test/core/end2end/tests/network_status_change.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" /* this is a private API but exposed here for testing*/ @@ -151,7 +150,8 @@ static void test_invoke_network_status_change(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( @@ -171,7 +171,8 @@ static void test_invoke_network_status_change(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -194,7 +195,8 @@ static void test_invoke_network_status_change(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/no_logging.cc b/test/core/end2end/tests/no_logging.cc index d89918bd3e..b357e3b0ad 100644 --- a/test/core/end2end/tests/no_logging.cc +++ b/test/core/end2end/tests/no_logging.cc @@ -27,7 +27,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "src/core/lib/iomgr/error.h" #include "test/core/end2end/cq_verifier.h" @@ -171,7 +170,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -208,7 +208,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/no_op.cc b/test/core/end2end/tests/no_op.cc index 18c2367ac4..020f842219 100644 --- a/test/core/end2end/tests/no_op.cc +++ b/test/core/end2end/tests/no_op.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } diff --git a/test/core/end2end/tests/payload.cc b/test/core/end2end/tests/payload.cc index 2e9513b9cb..340c76e173 100644 --- a/test/core/end2end/tests/payload.cc +++ b/test/core/end2end/tests/payload.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -91,9 +90,9 @@ static grpc_slice generate_random_slice() { static const char chars[] = "abcdefghijklmnopqrstuvwxyz1234567890"; char* output; const size_t output_size = 1024 * 1024; - output = (char*)gpr_malloc(output_size); + output = static_cast<char*>(gpr_malloc(output_size)); for (i = 0; i < output_size - 1; ++i) { - output[i] = chars[rand() % (int)(sizeof(chars) - 1)]; + output[i] = chars[rand() % static_cast<int>(sizeof(chars) - 1)]; } output[output_size - 1] = '\0'; grpc_slice out = grpc_slice_from_copied_string(output); @@ -175,7 +174,8 @@ static void request_response_with_payload(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -197,7 +197,8 @@ static void request_response_with_payload(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -223,7 +224,8 @@ static void request_response_with_payload(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/ping.cc b/test/core/end2end/tests/ping.cc index 725a425fbf..c01dfa858f 100644 --- a/test/core/end2end/tests/ping.cc +++ b/test/core/end2end/tests/ping.cc @@ -22,8 +22,8 @@ #include <grpc/support/sync.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "test/core/end2end/cq_verifier.h" #define PING_NUM 5 diff --git a/test/core/end2end/tests/ping_pong_streaming.cc b/test/core/end2end/tests/ping_pong_streaming.cc index ec7981fdcb..9ca880481f 100644 --- a/test/core/end2end/tests/ping_pong_streaming.cc +++ b/test/core/end2end/tests/ping_pong_streaming.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -144,7 +143,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -166,7 +166,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(101), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(101), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); for (i = 0; i < messages; i++) { @@ -185,7 +186,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -195,8 +197,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); cq_verify(cqv); @@ -208,8 +210,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(103), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); @@ -230,7 +232,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -243,7 +246,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); diff --git a/test/core/end2end/tests/proxy_auth.cc b/test/core/end2end/tests/proxy_auth.cc index 495151b592..5a2e0ef414 100644 --- a/test/core/end2end/tests/proxy_auth.cc +++ b/test/core/end2end/tests/proxy_auth.cc @@ -31,7 +31,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -149,7 +148,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -188,7 +188,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/registered_call.cc b/test/core/end2end/tests/registered_call.cc index cefa89db4d..d4ca146707 100644 --- a/test/core/end2end/tests/registered_call.cc +++ b/test/core/end2end/tests/registered_call.cc @@ -26,7 +26,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -135,7 +135,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -165,7 +166,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/request_with_flags.cc b/test/core/end2end/tests/request_with_flags.cc index 984d8b10f1..4a54318d0f 100644 --- a/test/core/end2end/tests/request_with_flags.cc +++ b/test/core/end2end/tests/request_with_flags.cc @@ -25,7 +25,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/transport/byte_stream.h" #include "test/core/end2end/cq_verifier.h" @@ -150,7 +151,8 @@ static void test_invoke_request_with_flags( op->reserved = nullptr; op++; expectation = call_start_batch_expected_result; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(expectation == error); if (expectation == GRPC_CALL_OK) { diff --git a/test/core/end2end/tests/request_with_payload.cc b/test/core/end2end/tests/request_with_payload.cc index b3b9ee5726..44398df52d 100644 --- a/test/core/end2end/tests/request_with_payload.cc +++ b/test/core/end2end/tests/request_with_payload.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -148,7 +147,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( @@ -169,7 +169,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -190,7 +191,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/resource_quota_server.cc b/test/core/end2end/tests/resource_quota_server.cc index 0ee014f97d..33d6b4ef31 100644 --- a/test/core/end2end/tests/resource_quota_server.cc +++ b/test/core/end2end/tests/resource_quota_server.cc @@ -25,7 +25,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -91,9 +91,9 @@ static grpc_slice generate_random_slice() { static const char chars[] = "abcdefghijklmnopqrstuvwxyz1234567890"; char* output; const size_t output_size = 1024 * 1024; - output = (char*)gpr_malloc(output_size); + output = static_cast<char*>(gpr_malloc(output_size)); for (i = 0; i < output_size - 1; ++i) { - output[i] = chars[rand() % (int)(sizeof(chars) - 1)]; + output[i] = chars[rand() % static_cast<int>(sizeof(chars) - 1)]; } output[output_size - 1] = '\0'; grpc_slice out = grpc_slice_from_copied_string(output); @@ -132,25 +132,29 @@ void resource_quota_server(grpc_end2end_test_config config) { grpc_slice request_payload_slice = generate_random_slice(); grpc_call** client_calls = - (grpc_call**)malloc(sizeof(grpc_call*) * NUM_CALLS); + static_cast<grpc_call**>(malloc(sizeof(grpc_call*) * NUM_CALLS)); grpc_call** server_calls = - (grpc_call**)malloc(sizeof(grpc_call*) * NUM_CALLS); + static_cast<grpc_call**>(malloc(sizeof(grpc_call*) * NUM_CALLS)); grpc_metadata_array* initial_metadata_recv = - (grpc_metadata_array*)malloc(sizeof(grpc_metadata_array) * NUM_CALLS); + static_cast<grpc_metadata_array*>( + malloc(sizeof(grpc_metadata_array) * NUM_CALLS)); grpc_metadata_array* trailing_metadata_recv = - (grpc_metadata_array*)malloc(sizeof(grpc_metadata_array) * NUM_CALLS); + static_cast<grpc_metadata_array*>( + malloc(sizeof(grpc_metadata_array) * NUM_CALLS)); grpc_metadata_array* request_metadata_recv = - (grpc_metadata_array*)malloc(sizeof(grpc_metadata_array) * NUM_CALLS); - grpc_call_details* call_details = - (grpc_call_details*)malloc(sizeof(grpc_call_details) * NUM_CALLS); - grpc_status_code* status = - (grpc_status_code*)malloc(sizeof(grpc_status_code) * NUM_CALLS); - grpc_slice* details = (grpc_slice*)malloc(sizeof(grpc_slice) * NUM_CALLS); - grpc_byte_buffer** request_payload = - (grpc_byte_buffer**)malloc(sizeof(grpc_byte_buffer*) * NUM_CALLS); - grpc_byte_buffer** request_payload_recv = - (grpc_byte_buffer**)malloc(sizeof(grpc_byte_buffer*) * NUM_CALLS); - int* was_cancelled = (int*)malloc(sizeof(int) * NUM_CALLS); + static_cast<grpc_metadata_array*>( + malloc(sizeof(grpc_metadata_array) * NUM_CALLS)); + grpc_call_details* call_details = static_cast<grpc_call_details*>( + malloc(sizeof(grpc_call_details) * NUM_CALLS)); + grpc_status_code* status = static_cast<grpc_status_code*>( + malloc(sizeof(grpc_status_code) * NUM_CALLS)); + grpc_slice* details = + static_cast<grpc_slice*>(malloc(sizeof(grpc_slice) * NUM_CALLS)); + grpc_byte_buffer** request_payload = static_cast<grpc_byte_buffer**>( + malloc(sizeof(grpc_byte_buffer*) * NUM_CALLS)); + grpc_byte_buffer** request_payload_recv = static_cast<grpc_byte_buffer**>( + malloc(sizeof(grpc_byte_buffer*) * NUM_CALLS)); + int* was_cancelled = static_cast<int*>(malloc(sizeof(int) * NUM_CALLS)); grpc_call_error error; int pending_client_calls = 0; int pending_server_start_calls = 0; @@ -220,7 +224,8 @@ void resource_quota_server(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(client_calls[i], ops, (size_t)(op - ops), + error = grpc_call_start_batch(client_calls[i], ops, + static_cast<size_t>(op - ops), tag(CLIENT_BASE_TAG + i), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); @@ -234,7 +239,7 @@ void resource_quota_server(grpc_end2end_test_config config) { grpc_completion_queue_next(f.cq, n_seconds_from_now(60), nullptr); GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); - int ev_tag = (int)(intptr_t)ev.tag; + int ev_tag = static_cast<int>((intptr_t)ev.tag); if (ev_tag < CLIENT_BASE_TAG) { abort(); /* illegal tag */ } else if (ev_tag < SERVER_START_BASE_TAG) { @@ -285,9 +290,9 @@ void resource_quota_server(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(server_calls[call_id], ops, (size_t)(op - ops), - tag(SERVER_RECV_BASE_TAG + call_id), nullptr); + error = grpc_call_start_batch( + server_calls[call_id], ops, static_cast<size_t>(op - ops), + tag(SERVER_RECV_BASE_TAG + call_id), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(pending_server_start_calls > 0); @@ -326,9 +331,9 @@ void resource_quota_server(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(server_calls[call_id], ops, (size_t)(op - ops), - tag(SERVER_END_BASE_TAG + call_id), nullptr); + error = grpc_call_start_batch( + server_calls[call_id], ops, static_cast<size_t>(op - ops), + tag(SERVER_END_BASE_TAG + call_id), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(pending_server_recv_calls > 0); diff --git a/test/core/end2end/tests/server_finishes_request.cc b/test/core/end2end/tests/server_finishes_request.cc index 743b3aeb91..6fc06cfaa1 100644 --- a/test/core/end2end/tests/server_finishes_request.cc +++ b/test/core/end2end/tests/server_finishes_request.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -134,7 +133,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -164,7 +164,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/shutdown_finishes_calls.cc b/test/core/end2end/tests/shutdown_finishes_calls.cc index fce23f3b6a..34c4ebbf0a 100644 --- a/test/core/end2end/tests/shutdown_finishes_calls.cc +++ b/test/core/end2end/tests/shutdown_finishes_calls.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -129,7 +128,8 @@ static void test_early_server_shutdown_finishes_inflight_calls( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -146,7 +146,8 @@ static void test_early_server_shutdown_finishes_inflight_calls( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* shutdown and destroy the server */ diff --git a/test/core/end2end/tests/shutdown_finishes_tags.cc b/test/core/end2end/tests/shutdown_finishes_tags.cc index de64eba612..55caacb7ff 100644 --- a/test/core/end2end/tests/shutdown_finishes_tags.cc +++ b/test/core/end2end/tests/shutdown_finishes_tags.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -78,7 +77,7 @@ static void test_early_server_shutdown_finishes_tags( grpc_end2end_test_fixture f = begin_test( config, "test_early_server_shutdown_finishes_tags", nullptr, nullptr); cq_verifier* cqv = cq_verifier_create(f.cq); - grpc_call* s = (grpc_call*)(uintptr_t)1; + grpc_call* s = (grpc_call*)static_cast<uintptr_t>(1); grpc_call_details call_details; grpc_metadata_array request_metadata_recv; diff --git a/test/core/end2end/tests/simple_cacheable_request.cc b/test/core/end2end/tests/simple_cacheable_request.cc index d8034dcf6d..4ae8398a6e 100644 --- a/test/core/end2end/tests/simple_cacheable_request.cc +++ b/test/core/end2end/tests/simple_cacheable_request.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" enum { TIMEOUT = 200000 }; @@ -179,7 +178,8 @@ static void test_cacheable_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -202,7 +202,8 @@ static void test_cacheable_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -228,7 +229,8 @@ static void test_cacheable_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/simple_delayed_request.cc b/test/core/end2end/tests/simple_delayed_request.cc index 0ad224f579..f8a1ddfdc3 100644 --- a/test/core/end2end/tests/simple_delayed_request.cc +++ b/test/core/end2end/tests/simple_delayed_request.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -130,7 +129,8 @@ static void simple_delayed_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -160,7 +160,8 @@ static void simple_delayed_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/simple_metadata.cc b/test/core/end2end/tests/simple_metadata.cc index 1a741169d4..1f39f8983b 100644 --- a/test/core/end2end/tests/simple_metadata.cc +++ b/test/core/end2end/tests/simple_metadata.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -177,7 +176,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -200,7 +200,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -226,7 +227,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/simple_request.cc b/test/core/end2end/tests/simple_request.cc index ae93f79c9d..926e2c7452 100644 --- a/test/core/end2end/tests/simple_request.cc +++ b/test/core/end2end/tests/simple_request.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/debug/stats.h" #include "src/core/lib/gpr/string.h" #include "test/core/end2end/cq_verifier.h" @@ -153,7 +152,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -192,7 +192,8 @@ static void simple_request_body(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); diff --git a/test/core/end2end/tests/stream_compression_compressed_payload.cc b/test/core/end2end/tests/stream_compression_compressed_payload.cc index 9a384441f0..e90d54f054 100644 --- a/test/core/end2end/tests/stream_compression_compressed_payload.cc +++ b/test/core/end2end/tests/stream_compression_compressed_payload.cc @@ -28,7 +28,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/surface/call.h" @@ -188,7 +187,8 @@ static void request_for_disabled_algorithm( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(101), true); @@ -206,7 +206,8 @@ static void request_for_disabled_algorithm( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), false); @@ -217,7 +218,8 @@ static void request_for_disabled_algorithm( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), true); @@ -346,7 +348,8 @@ static void request_with_payload_template( op->flags = client_send_flags_bitmask; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), true); } @@ -375,7 +378,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -390,9 +394,9 @@ static void request_with_payload_template( GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), GRPC_COMPRESS_NONE) != 0); GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), - GRPC_COMPRESS_MESSAGE_DEFLATE) != 0); + GRPC_COMPRESS_DEFLATE) != 0); GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), - GRPC_COMPRESS_MESSAGE_GZIP) != 0); + GRPC_COMPRESS_GZIP) != 0); GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), GRPC_COMPRESS_STREAM_GZIP) != 0); GPR_ASSERT(GPR_BITCOUNT(grpc_call_test_only_get_encodings_accepted_by_peer( @@ -415,7 +419,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(101), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(101), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); for (int i = 0; i < 2; i++) { @@ -430,8 +435,8 @@ static void request_with_payload_template( op->flags = client_send_flags_bitmask; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), + tag(2), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); } @@ -443,8 +448,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -460,8 +465,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(103), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -471,7 +476,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); @@ -496,7 +502,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(4), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(4), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -509,7 +516,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); diff --git a/test/core/end2end/tests/stream_compression_payload.cc b/test/core/end2end/tests/stream_compression_payload.cc index 9a27957fee..9eace97afd 100644 --- a/test/core/end2end/tests/stream_compression_payload.cc +++ b/test/core/end2end/tests/stream_compression_payload.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/surface/call.h" #include "test/core/end2end/cq_verifier.h" @@ -94,9 +93,9 @@ static grpc_slice generate_random_slice() { static const char chars[] = "abcdefghijklmnopqrstuvwxyz1234567890"; char* output; const size_t output_size = 1024 * 1024; - output = (char*)gpr_malloc(output_size); + output = static_cast<char*>(gpr_malloc(output_size)); for (i = 0; i < output_size - 1; ++i) { - output[i] = chars[rand() % (int)(sizeof(chars) - 1)]; + output[i] = chars[rand() % static_cast<int>(sizeof(chars) - 1)]; } output[output_size - 1] = '\0'; grpc_slice out = grpc_slice_from_copied_string(output); @@ -178,7 +177,8 @@ static void request_response_with_payload(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -200,7 +200,8 @@ static void request_response_with_payload(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -226,7 +227,8 @@ static void request_response_with_payload(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/stream_compression_ping_pong_streaming.cc b/test/core/end2end/tests/stream_compression_ping_pong_streaming.cc index 4dc306b79e..5b033292b0 100644 --- a/test/core/end2end/tests/stream_compression_ping_pong_streaming.cc +++ b/test/core/end2end/tests/stream_compression_ping_pong_streaming.cc @@ -26,7 +26,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/surface/call.h" #include "test/core/end2end/cq_verifier.h" @@ -151,7 +151,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -173,7 +174,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(101), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(101), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); for (i = 0; i < messages; i++) { @@ -192,7 +194,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -202,8 +205,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); cq_verify(cqv); @@ -215,8 +218,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(103), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); @@ -237,7 +240,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -250,7 +254,8 @@ static void test_pingpong_streaming(grpc_end2end_test_config config, op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); diff --git a/test/core/end2end/tests/streaming_error_response.cc b/test/core/end2end/tests/streaming_error_response.cc index 6ad1cec086..7c7d778d1e 100644 --- a/test/core/end2end/tests/streaming_error_response.cc +++ b/test/core/end2end/tests/streaming_error_response.cc @@ -28,7 +28,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -149,7 +148,8 @@ static void test(grpc_end2end_test_config config, bool request_status_early) { op->data.recv_status_on_client.status_details = &details; op++; } - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( @@ -166,7 +166,8 @@ static void test(grpc_end2end_test_config config, bool request_status_early) { op->op = GRPC_OP_SEND_MESSAGE; op->data.send_message.send_message = response_payload1; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -180,7 +181,8 @@ static void test(grpc_end2end_test_config config, bool request_status_early) { op->op = GRPC_OP_SEND_MESSAGE; op->data.send_message.send_message = response_payload2; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); @@ -191,7 +193,8 @@ static void test(grpc_end2end_test_config config, bool request_status_early) { op->op = GRPC_OP_RECV_MESSAGE; op->data.recv_message.recv_message = &response_payload2_recv; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); @@ -209,7 +212,8 @@ static void test(grpc_end2end_test_config config, bool request_status_early) { grpc_slice status_details = grpc_slice_from_static_string("xyz"); op->data.send_status_from_server.status_details = &status_details; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(104), 1); @@ -226,7 +230,8 @@ static void test(grpc_end2end_test_config config, bool request_status_early) { op->data.recv_status_on_client.status = &status; op->data.recv_status_on_client.status_details = &details; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(3), 1); diff --git a/test/core/end2end/tests/trailing_metadata.cc b/test/core/end2end/tests/trailing_metadata.cc index afc56c8dfa..24069854ac 100644 --- a/test/core/end2end/tests/trailing_metadata.cc +++ b/test/core/end2end/tests/trailing_metadata.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -185,7 +184,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -208,7 +208,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); @@ -235,7 +236,8 @@ static void test_request_response_with_metadata_and_payload( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); diff --git a/test/core/end2end/tests/workaround_cronet_compression.cc b/test/core/end2end/tests/workaround_cronet_compression.cc index 97ab814d27..4d4c369a42 100644 --- a/test/core/end2end/tests/workaround_cronet_compression.cc +++ b/test/core/end2end/tests/workaround_cronet_compression.cc @@ -28,7 +28,6 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/surface/call.h" @@ -192,7 +191,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); error = @@ -207,9 +207,9 @@ static void request_with_payload_template( GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), GRPC_COMPRESS_NONE) != 0); GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), - GRPC_COMPRESS_MESSAGE_DEFLATE) != 0); + GRPC_COMPRESS_DEFLATE) != 0); GPR_ASSERT(GPR_BITGET(grpc_call_test_only_get_encodings_accepted_by_peer(s), - GRPC_COMPRESS_MESSAGE_GZIP) != 0); + GRPC_COMPRESS_GZIP) != 0); memset(ops, 0, sizeof(ops)); op = ops; @@ -228,7 +228,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(101), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(101), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); for (int i = 0; i < 2; i++) { @@ -247,7 +248,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -257,8 +259,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(102), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(102), 1); cq_verify(cqv); @@ -275,8 +277,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = - grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), + tag(103), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(103), 1); CQ_EXPECT_COMPLETION(cqv, tag(2), 1); @@ -309,7 +311,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -322,7 +325,8 @@ static void request_with_payload_template( op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(1), 1); @@ -365,16 +369,16 @@ typedef struct workaround_cronet_compression_config { } workaround_cronet_compression_config; static workaround_cronet_compression_config workaround_configs[] = { - {nullptr, GRPC_COMPRESS_MESSAGE_GZIP}, + {nullptr, GRPC_COMPRESS_GZIP}, {const_cast<char*>( "grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; cronet_http; gentle)"), GRPC_COMPRESS_NONE}, {const_cast<char*>( "grpc-objc/1.3.0-dev grpc-c/3.0.0-dev (ios; chttp2; gentle)"), - GRPC_COMPRESS_MESSAGE_GZIP}, + GRPC_COMPRESS_GZIP}, {const_cast<char*>( "grpc-objc/1.4.0 grpc-c/3.0.0-dev (ios; cronet_http; gentle)"), - GRPC_COMPRESS_MESSAGE_GZIP}}; + GRPC_COMPRESS_GZIP}}; static const size_t workaround_configs_num = sizeof(workaround_configs) / sizeof(*workaround_configs); @@ -383,8 +387,7 @@ static void test_workaround_cronet_compression( for (uint32_t i = 0; i < workaround_configs_num; i++) { request_with_payload_template( config, "test_invoke_request_with_compressed_payload", 0, - GRPC_COMPRESS_MESSAGE_GZIP, GRPC_COMPRESS_MESSAGE_GZIP, - GRPC_COMPRESS_MESSAGE_GZIP, + GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_GZIP, workaround_configs[i].expected_algorithm_from_server, nullptr, false, /* ignored */ GRPC_COMPRESS_LEVEL_NONE, workaround_configs[i].user_agent_override); diff --git a/test/core/end2end/tests/write_buffering.cc b/test/core/end2end/tests/write_buffering.cc index 40821dd6f0..5d76d238b9 100644 --- a/test/core/end2end/tests/write_buffering.cc +++ b/test/core/end2end/tests/write_buffering.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -129,7 +128,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -139,7 +139,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( @@ -155,7 +156,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->data.send_message.send_message = request_payload1; op->flags = GRPC_WRITE_BUFFER_HINT; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -163,7 +165,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* recv message should not succeed yet - it's buffered at the client still */ @@ -172,7 +175,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_RECV_MESSAGE; op->data.recv_message.recv_message = &request_payload_recv1; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), true); @@ -187,7 +191,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->data.send_message.send_message = request_payload2; op->flags = 0; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(4), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(4), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* now the first send should match up with the first recv */ @@ -201,7 +206,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_RECV_MESSAGE; op->data.recv_message.recv_message = &request_payload_recv2; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(104), true); @@ -220,7 +226,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(4), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(4), + nullptr); memset(ops, 0, sizeof(ops)); op = ops; @@ -237,7 +244,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(105), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(105), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(105), 1); diff --git a/test/core/end2end/tests/write_buffering_at_end.cc b/test/core/end2end/tests/write_buffering_at_end.cc index 1b9dc9632b..bd046ef9cc 100644 --- a/test/core/end2end/tests/write_buffering_at_end.cc +++ b/test/core/end2end/tests/write_buffering_at_end.cc @@ -25,7 +25,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "test/core/end2end/cq_verifier.h" static void* tag(intptr_t t) { return (void*)t; } @@ -126,7 +125,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -136,7 +136,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(2), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call( @@ -152,7 +153,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->data.send_message.send_message = request_payload; op->flags = GRPC_WRITE_BUFFER_HINT; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(3), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(3), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); memset(ops, 0, sizeof(ops)); @@ -160,7 +162,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(102), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* recv message should not succeed yet - it's buffered at the client still */ @@ -169,7 +172,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_RECV_MESSAGE; op->data.recv_message.recv_message = &request_payload_recv1; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(103), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(2), true); @@ -182,7 +186,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op = ops; op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(4), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(4), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* now the first send should match up with the first recv */ @@ -196,7 +201,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->op = GRPC_OP_RECV_MESSAGE; op->data.recv_message.recv_message = &request_payload_recv2; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(104), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(104), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(104), true); @@ -211,7 +217,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(4), nullptr); + error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(4), + nullptr); memset(ops, 0, sizeof(ops)); op = ops; @@ -228,7 +235,8 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(105), nullptr); + error = grpc_call_start_batch(s, ops, static_cast<size_t>(op - ops), tag(105), + nullptr); GPR_ASSERT(GRPC_CALL_OK == error); CQ_EXPECT_COMPLETION(cqv, tag(105), 1); diff --git a/test/core/fling/client.cc b/test/core/fling/client.cc index 28e62e0e83..05dc3052d1 100644 --- a/test/core/fling/client.cc +++ b/test/core/fling/client.cc @@ -21,11 +21,12 @@ #include <stdio.h> #include <string.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/profiling/timers.h" +#include "test/core/util/cmdline.h" #include "test/core/util/grpc_profiler.h" #include "test/core/util/histogram.h" #include "test/core/util/test_config.h" @@ -74,7 +75,7 @@ static void init_ping_pong_request(void) { } static void step_ping_pong_request(void) { - GPR_TIMER_BEGIN("ping_pong", 1); + GPR_TIMER_SCOPE("ping_pong", 1); grpc_slice host = grpc_slice_from_static_string("localhost"); call = grpc_channel_create_call( channel, nullptr, GRPC_PROPAGATE_DEFAULTS, cq, @@ -87,7 +88,6 @@ static void step_ping_pong_request(void) { grpc_call_unref(call); grpc_byte_buffer_destroy(response_payload_recv); call = nullptr; - GPR_TIMER_END("ping_pong", 1); } static void init_ping_pong_stream(void) { @@ -117,18 +117,17 @@ static void init_ping_pong_stream(void) { } static void step_ping_pong_stream(void) { + GPR_TIMER_SCOPE("ping_pong", 1); grpc_call_error error; - GPR_TIMER_BEGIN("ping_pong", 1); error = grpc_call_start_batch(call, stream_step_ops, 2, (void*)1, nullptr); GPR_ASSERT(GRPC_CALL_OK == error); grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), nullptr); grpc_byte_buffer_destroy(response_payload_recv); - GPR_TIMER_END("ping_pong", 1); } static double now(void) { gpr_timespec tv = gpr_now(GPR_CLOCK_REALTIME); - return 1e9 * (double)tv.tv_sec + tv.tv_nsec; + return 1e9 * static_cast<double>(tv.tv_sec) + tv.tv_nsec; } typedef struct { @@ -196,7 +195,8 @@ int main(int argc, char** argv) { channel = grpc_insecure_channel_create(target, nullptr, nullptr); cq = grpc_completion_queue_create_for_next(nullptr); - the_buffer = grpc_raw_byte_buffer_create(&slice, (size_t)payload_size); + the_buffer = + grpc_raw_byte_buffer_create(&slice, static_cast<size_t>(payload_size)); histogram = grpc_histogram_create(0.01, 60e9); sc.init(); diff --git a/test/core/fling/fling_stream_test.cc b/test/core/fling/fling_stream_test.cc index b5a5ce816e..32bc989641 100644 --- a/test/core/fling/fling_stream_test.cc +++ b/test/core/fling/fling_stream_test.cc @@ -20,11 +20,12 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/string_util.h> -#include <grpc/support/subprocess.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "test/core/util/port.h" +#include "test/core/util/subprocess.h" int main(int argc, char** argv) { char* me = argv[0]; @@ -36,7 +37,7 @@ int main(int argc, char** argv) { gpr_subprocess *svr, *cli; /* figure out where we are */ if (lslash) { - memcpy(root, me, (size_t)(lslash - me)); + memcpy(root, me, static_cast<size_t>(lslash - me)); root[lslash - me] = 0; } else { strcpy(root, "."); diff --git a/test/core/fling/fling_test.cc b/test/core/fling/fling_test.cc index 3792e45c42..3587a4acaa 100644 --- a/test/core/fling/fling_test.cc +++ b/test/core/fling/fling_test.cc @@ -20,11 +20,12 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/string_util.h> -#include <grpc/support/subprocess.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "test/core/util/port.h" +#include "test/core/util/subprocess.h" int main(int argc, const char** argv) { const char* me = argv[0]; @@ -36,7 +37,7 @@ int main(int argc, const char** argv) { gpr_subprocess *svr, *cli; /* figure out where we are */ if (lslash) { - memcpy(root, me, (size_t)(lslash - me)); + memcpy(root, me, static_cast<size_t>(lslash - me)); root[lslash - me] = 0; } else { strcpy(root, "."); diff --git a/test/core/fling/server.cc b/test/core/fling/server.cc index f3a8a1ccf8..cf7e2465d9 100644 --- a/test/core/fling/server.cc +++ b/test/core/fling/server.cc @@ -30,12 +30,13 @@ #endif #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/time.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/profiling/timers.h" #include "test/core/end2end/data/ssl_test_data.h" +#include "test/core/util/cmdline.h" #include "test/core/util/grpc_profiler.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" @@ -111,7 +112,8 @@ static void handle_unary_method(void) { op->data.recv_close_on_server.cancelled = &was_cancelled; op++; - error = grpc_call_start_batch(call, unary_ops, (size_t)(op - unary_ops), + error = grpc_call_start_batch(call, unary_ops, + static_cast<size_t>(op - unary_ops), tag(FLING_SERVER_BATCH_OPS_FOR_UNARY), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); } @@ -188,7 +190,7 @@ int main(int argc, char** argv) { grpc_test_init(1, fake_argv); grpc_init(); - srand((unsigned)clock()); + srand(static_cast<unsigned>(clock())); cl = gpr_cmdline_create("fling server"); gpr_cmdline_add_string(cl, "bind", "Bind host:port", &addr); diff --git a/test/core/gpr/BUILD b/test/core/gpr/BUILD index 1be1036d04..9aa74cc132 100644 --- a/test/core/gpr/BUILD +++ b/test/core/gpr/BUILD @@ -29,26 +29,6 @@ grpc_cc_test( ) grpc_cc_test( - name = "avl_test", - srcs = ["avl_test.cc"], - language = "C++", - deps = [ - "//:gpr", - "//test/core/util:gpr_test_util", - ], -) - -grpc_cc_test( - name = "cmdline_test", - srcs = ["cmdline_test.cc"], - language = "C++", - deps = [ - "//:gpr", - "//test/core/util:gpr_test_util", - ], -) - -grpc_cc_test( name = "cpu_test", srcs = ["cpu_test.cc"], language = "C++", diff --git a/test/core/gpr/alloc_test.cc b/test/core/gpr/alloc_test.cc index bf4471c36f..36cdc02ff2 100644 --- a/test/core/gpr/alloc_test.cc +++ b/test/core/gpr/alloc_test.cc @@ -27,7 +27,9 @@ static void* fake_malloc(size_t size) { return (void*)size; } static void* fake_realloc(void* addr, size_t size) { return (void*)size; } -static void fake_free(void* addr) { *((intptr_t*)addr) = (intptr_t)0xdeadd00d; } +static void fake_free(void* addr) { + *(static_cast<intptr_t*>(addr)) = static_cast<intptr_t>(0xdeadd00d); +} static void test_custom_allocs() { const gpr_allocation_functions default_fns = gpr_get_allocation_functions(); diff --git a/test/core/gpr/arena_test.cc b/test/core/gpr/arena_test.cc index 62a3f8bf50..c10d7eaff7 100644 --- a/test/core/gpr/arena_test.cc +++ b/test/core/gpr/arena_test.cc @@ -23,11 +23,11 @@ #include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> #include <inttypes.h> #include <string.h> #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "test/core/util/test_config.h" static void test_noop(void) { gpr_arena_destroy(gpr_arena_create(1)); } @@ -86,7 +86,7 @@ static void concurrent_test_body(void* arg) { concurrent_test_args* a = static_cast<concurrent_test_args*>(arg); gpr_event_wait(&a->ev_start, gpr_inf_future(GPR_CLOCK_REALTIME)); for (size_t i = 0; i < concurrent_test_iterations(); i++) { - *(char*)gpr_arena_alloc(a->arena, 1) = (char)i; + *static_cast<char*>(gpr_arena_alloc(a->arena, 1)) = static_cast<char>(i); } } diff --git a/test/core/gpr/avl_test.cc b/test/core/gpr/avl_test.cc deleted file mode 100644 index 345db557b9..0000000000 --- a/test/core/gpr/avl_test.cc +++ /dev/null @@ -1,3659 +0,0 @@ -/* - * - * Copyright 2015 gRPC authors. - * - * 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. - * - */ - -#include <grpc/support/avl.h> - -#include <stdio.h> -#include <string.h> - -#include <grpc/support/alloc.h> -#include <grpc/support/log.h> -#include <grpc/support/useful.h> - -#include "test/core/util/test_config.h" - -static int* box(int x) { - int* b = static_cast<int*>(gpr_malloc(sizeof(*b))); - *b = x; - return b; -} - -static long int_compare(void* int1, void* int2, void* unused) { - return (*(int*)int1) - (*(int*)int2); -} -static void* int_copy(void* p, void* unused) { return box(*(int*)p); } - -static void destroy(void* p, void* unused) { gpr_free(p); } - -static const gpr_avl_vtable int_int_vtable = {destroy, int_copy, int_compare, - destroy, int_copy}; - -static void check_get(gpr_avl avl, int key, int value) { - int* k = box(key); - GPR_ASSERT(*(int*)gpr_avl_get(avl, k, nullptr) == value); - gpr_free(k); -} - -static void check_negget(gpr_avl avl, int key) { - int* k = box(key); - GPR_ASSERT(gpr_avl_get(avl, k, nullptr) == nullptr); - gpr_free(k); -} - -static gpr_avl remove_int(gpr_avl avl, int key) { - int* k = box(key); - avl = gpr_avl_remove(avl, k, nullptr); - gpr_free(k); - return avl; -} - -static void test_get(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_get"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(1), box(11), nullptr); - avl = gpr_avl_add(avl, box(2), box(22), nullptr); - avl = gpr_avl_add(avl, box(3), box(33), nullptr); - check_get(avl, 1, 11); - check_get(avl, 2, 22); - check_get(avl, 3, 33); - check_negget(avl, 4); - gpr_avl_unref(avl, nullptr); -} - -static void test_ll(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_ll"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(5), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(3), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_lr(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_lr"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(5), box(1), nullptr); - avl = gpr_avl_add(avl, box(3), box(2), nullptr); - avl = gpr_avl_add(avl, box(4), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_rr(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_rr"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(3), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(5), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_rl(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_rl"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(3), box(1), nullptr); - avl = gpr_avl_add(avl, box(5), box(2), nullptr); - avl = gpr_avl_add(avl, box(4), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_unbalanced(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_unbalanced"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(5), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(3), box(3), nullptr); - avl = gpr_avl_add(avl, box(2), box(4), nullptr); - avl = gpr_avl_add(avl, box(1), box(5), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 2); - GPR_ASSERT(*(int*)avl.root->left->left->key == 1); - GPR_ASSERT(*(int*)avl.root->left->right->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_replace(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_replace"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(1), box(1), nullptr); - avl = gpr_avl_add(avl, box(1), box(2), nullptr); - check_get(avl, 1, 2); - check_negget(avl, 2); - gpr_avl_unref(avl, nullptr); -} - -static void test_remove(void) { - gpr_avl avl; - gpr_avl avl3, avl4, avl5, avln; - gpr_log(GPR_DEBUG, "test_remove"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(3), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(5), box(3), nullptr); - - avl3 = remove_int(gpr_avl_ref(avl, nullptr), 3); - avl4 = remove_int(gpr_avl_ref(avl, nullptr), 4); - avl5 = remove_int(gpr_avl_ref(avl, nullptr), 5); - avln = remove_int(gpr_avl_ref(avl, nullptr), 1); - - gpr_avl_unref(avl, nullptr); - - check_negget(avl3, 3); - check_get(avl3, 4, 2); - check_get(avl3, 5, 3); - gpr_avl_unref(avl3, nullptr); - - check_get(avl4, 3, 1); - check_negget(avl4, 4); - check_get(avl4, 5, 3); - gpr_avl_unref(avl4, nullptr); - - check_get(avl5, 3, 1); - check_get(avl5, 4, 2); - check_negget(avl5, 5); - gpr_avl_unref(avl5, nullptr); - - check_get(avln, 3, 1); - check_get(avln, 4, 2); - check_get(avln, 5, 3); - gpr_avl_unref(avln, nullptr); -} - -static void test_badcase1(void) { - gpr_avl avl; - - gpr_log(GPR_DEBUG, "test_badcase1"); - - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(88), box(1), nullptr); - avl = remove_int(avl, 643); - avl = remove_int(avl, 983); - avl = gpr_avl_add(avl, box(985), box(4), nullptr); - avl = gpr_avl_add(avl, box(640), box(5), nullptr); - avl = gpr_avl_add(avl, box(41), box(6), nullptr); - avl = gpr_avl_add(avl, box(112), box(7), nullptr); - avl = gpr_avl_add(avl, box(342), box(8), nullptr); - avl = remove_int(avl, 1013); - avl = gpr_avl_add(avl, box(434), box(10), nullptr); - avl = gpr_avl_add(avl, box(520), box(11), nullptr); - avl = gpr_avl_add(avl, box(231), box(12), nullptr); - avl = gpr_avl_add(avl, box(852), box(13), nullptr); - avl = remove_int(avl, 461); - avl = gpr_avl_add(avl, box(108), box(15), nullptr); - avl = gpr_avl_add(avl, box(806), box(16), nullptr); - avl = gpr_avl_add(avl, box(827), box(17), nullptr); - avl = remove_int(avl, 796); - avl = gpr_avl_add(avl, box(340), box(19), nullptr); - avl = gpr_avl_add(avl, box(498), box(20), nullptr); - avl = gpr_avl_add(avl, box(203), box(21), nullptr); - avl = gpr_avl_add(avl, box(751), box(22), nullptr); - avl = gpr_avl_add(avl, box(150), box(23), nullptr); - avl = remove_int(avl, 237); - avl = gpr_avl_add(avl, box(830), box(25), nullptr); - avl = remove_int(avl, 1007); - avl = remove_int(avl, 394); - avl = gpr_avl_add(avl, box(65), box(28), nullptr); - avl = remove_int(avl, 904); - avl = remove_int(avl, 123); - avl = gpr_avl_add(avl, box(238), box(31), nullptr); - avl = gpr_avl_add(avl, box(184), box(32), nullptr); - avl = remove_int(avl, 331); - avl = gpr_avl_add(avl, box(827), box(34), nullptr); - - check_get(avl, 830, 25); - - gpr_avl_unref(avl, nullptr); -} - -static void test_badcase2(void) { - gpr_avl avl; - - gpr_log(GPR_DEBUG, "test_badcase2"); - - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(288), box(1), nullptr); - avl = remove_int(avl, 415); - avl = gpr_avl_add(avl, box(953), box(3), nullptr); - avl = gpr_avl_add(avl, box(101), box(4), nullptr); - avl = gpr_avl_add(avl, box(516), box(5), nullptr); - avl = gpr_avl_add(avl, box(547), box(6), nullptr); - avl = gpr_avl_add(avl, box(467), box(7), nullptr); - avl = gpr_avl_add(avl, box(793), box(8), nullptr); - avl = remove_int(avl, 190); - avl = gpr_avl_add(avl, box(687), box(10), nullptr); - avl = gpr_avl_add(avl, box(242), box(11), nullptr); - avl = gpr_avl_add(avl, box(142), box(12), nullptr); - avl = remove_int(avl, 705); - avl = remove_int(avl, 578); - avl = remove_int(avl, 767); - avl = remove_int(avl, 183); - avl = gpr_avl_add(avl, box(950), box(17), nullptr); - avl = gpr_avl_add(avl, box(622), box(18), nullptr); - avl = remove_int(avl, 513); - avl = remove_int(avl, 429); - avl = gpr_avl_add(avl, box(205), box(21), nullptr); - avl = remove_int(avl, 663); - avl = remove_int(avl, 953); - avl = remove_int(avl, 892); - avl = gpr_avl_add(avl, box(236), box(25), nullptr); - avl = remove_int(avl, 982); - avl = remove_int(avl, 201); - avl = remove_int(avl, 684); - avl = gpr_avl_add(avl, box(572), box(29), nullptr); - avl = remove_int(avl, 817); - avl = gpr_avl_add(avl, box(970), box(31), nullptr); - avl = remove_int(avl, 347); - avl = remove_int(avl, 574); - avl = gpr_avl_add(avl, box(752), box(34), nullptr); - avl = gpr_avl_add(avl, box(670), box(35), nullptr); - avl = gpr_avl_add(avl, box(69), box(36), nullptr); - avl = remove_int(avl, 111); - avl = remove_int(avl, 523); - avl = gpr_avl_add(avl, box(141), box(39), nullptr); - avl = remove_int(avl, 159); - avl = gpr_avl_add(avl, box(947), box(41), nullptr); - avl = gpr_avl_add(avl, box(855), box(42), nullptr); - avl = remove_int(avl, 218); - avl = remove_int(avl, 6); - avl = gpr_avl_add(avl, box(753), box(45), nullptr); - avl = remove_int(avl, 82); - avl = remove_int(avl, 799); - avl = gpr_avl_add(avl, box(572), box(48), nullptr); - avl = remove_int(avl, 376); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(458), box(51), nullptr); - avl = remove_int(avl, 897); - avl = gpr_avl_add(avl, box(191), box(53), nullptr); - avl = gpr_avl_add(avl, box(609), box(54), nullptr); - avl = remove_int(avl, 787); - avl = remove_int(avl, 710); - avl = remove_int(avl, 886); - avl = remove_int(avl, 835); - avl = remove_int(avl, 33); - avl = gpr_avl_add(avl, box(871), box(60), nullptr); - avl = remove_int(avl, 641); - avl = gpr_avl_add(avl, box(462), box(62), nullptr); - avl = remove_int(avl, 359); - avl = remove_int(avl, 767); - avl = gpr_avl_add(avl, box(310), box(65), nullptr); - avl = remove_int(avl, 757); - avl = remove_int(avl, 639); - avl = remove_int(avl, 314); - avl = gpr_avl_add(avl, box(2), box(69), nullptr); - avl = remove_int(avl, 138); - avl = gpr_avl_add(avl, box(669), box(71), nullptr); - avl = remove_int(avl, 477); - avl = gpr_avl_add(avl, box(366), box(73), nullptr); - avl = gpr_avl_add(avl, box(612), box(74), nullptr); - avl = gpr_avl_add(avl, box(106), box(75), nullptr); - avl = remove_int(avl, 161); - avl = gpr_avl_add(avl, box(388), box(77), nullptr); - avl = gpr_avl_add(avl, box(141), box(78), nullptr); - avl = remove_int(avl, 633); - avl = remove_int(avl, 459); - avl = gpr_avl_add(avl, box(40), box(81), nullptr); - avl = remove_int(avl, 689); - avl = gpr_avl_add(avl, box(823), box(83), nullptr); - avl = remove_int(avl, 485); - avl = gpr_avl_add(avl, box(903), box(85), nullptr); - avl = gpr_avl_add(avl, box(592), box(86), nullptr); - avl = remove_int(avl, 448); - avl = gpr_avl_add(avl, box(56), box(88), nullptr); - avl = remove_int(avl, 333); - avl = gpr_avl_add(avl, box(189), box(90), nullptr); - avl = gpr_avl_add(avl, box(103), box(91), nullptr); - avl = remove_int(avl, 164); - avl = remove_int(avl, 974); - avl = gpr_avl_add(avl, box(215), box(94), nullptr); - avl = remove_int(avl, 189); - avl = remove_int(avl, 504); - avl = gpr_avl_add(avl, box(868), box(97), nullptr); - avl = remove_int(avl, 909); - avl = remove_int(avl, 148); - avl = remove_int(avl, 469); - avl = gpr_avl_add(avl, box(994), box(101), nullptr); - avl = gpr_avl_add(avl, box(576), box(102), nullptr); - avl = remove_int(avl, 82); - avl = remove_int(avl, 209); - avl = gpr_avl_add(avl, box(276), box(105), nullptr); - avl = remove_int(avl, 856); - avl = gpr_avl_add(avl, box(750), box(107), nullptr); - avl = remove_int(avl, 871); - avl = gpr_avl_add(avl, box(301), box(109), nullptr); - avl = remove_int(avl, 260); - avl = remove_int(avl, 737); - avl = remove_int(avl, 719); - avl = gpr_avl_add(avl, box(933), box(113), nullptr); - avl = gpr_avl_add(avl, box(225), box(114), nullptr); - avl = gpr_avl_add(avl, box(975), box(115), nullptr); - avl = gpr_avl_add(avl, box(86), box(116), nullptr); - avl = remove_int(avl, 732); - avl = gpr_avl_add(avl, box(340), box(118), nullptr); - avl = gpr_avl_add(avl, box(271), box(119), nullptr); - avl = remove_int(avl, 206); - avl = gpr_avl_add(avl, box(949), box(121), nullptr); - avl = gpr_avl_add(avl, box(927), box(122), nullptr); - avl = gpr_avl_add(avl, box(34), box(123), nullptr); - avl = gpr_avl_add(avl, box(351), box(124), nullptr); - avl = remove_int(avl, 836); - avl = gpr_avl_add(avl, box(825), box(126), nullptr); - avl = gpr_avl_add(avl, box(352), box(127), nullptr); - avl = remove_int(avl, 107); - avl = remove_int(avl, 101); - avl = gpr_avl_add(avl, box(320), box(130), nullptr); - avl = gpr_avl_add(avl, box(3), box(131), nullptr); - avl = remove_int(avl, 998); - avl = remove_int(avl, 44); - avl = gpr_avl_add(avl, box(525), box(134), nullptr); - avl = gpr_avl_add(avl, box(864), box(135), nullptr); - avl = gpr_avl_add(avl, box(863), box(136), nullptr); - avl = remove_int(avl, 770); - avl = gpr_avl_add(avl, box(440), box(138), nullptr); - avl = remove_int(avl, 516); - avl = gpr_avl_add(avl, box(116), box(140), nullptr); - avl = remove_int(avl, 380); - avl = gpr_avl_add(avl, box(878), box(142), nullptr); - avl = remove_int(avl, 439); - avl = gpr_avl_add(avl, box(994), box(144), nullptr); - avl = remove_int(avl, 294); - avl = remove_int(avl, 593); - avl = gpr_avl_add(avl, box(696), box(147), nullptr); - avl = remove_int(avl, 8); - avl = gpr_avl_add(avl, box(881), box(149), nullptr); - avl = remove_int(avl, 32); - avl = remove_int(avl, 242); - avl = gpr_avl_add(avl, box(487), box(152), nullptr); - avl = gpr_avl_add(avl, box(637), box(153), nullptr); - avl = gpr_avl_add(avl, box(793), box(154), nullptr); - avl = gpr_avl_add(avl, box(696), box(155), nullptr); - avl = remove_int(avl, 458); - avl = gpr_avl_add(avl, box(828), box(157), nullptr); - avl = remove_int(avl, 784); - avl = remove_int(avl, 274); - avl = gpr_avl_add(avl, box(783), box(160), nullptr); - avl = remove_int(avl, 21); - avl = gpr_avl_add(avl, box(866), box(162), nullptr); - avl = remove_int(avl, 919); - avl = gpr_avl_add(avl, box(435), box(164), nullptr); - avl = remove_int(avl, 385); - avl = gpr_avl_add(avl, box(475), box(166), nullptr); - avl = remove_int(avl, 339); - avl = gpr_avl_add(avl, box(615), box(168), nullptr); - avl = remove_int(avl, 866); - avl = remove_int(avl, 82); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(590), box(172), nullptr); - avl = gpr_avl_add(avl, box(852), box(173), nullptr); - avl = remove_int(avl, 318); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(672), box(176), nullptr); - avl = remove_int(avl, 430); - avl = gpr_avl_add(avl, box(821), box(178), nullptr); - avl = gpr_avl_add(avl, box(365), box(179), nullptr); - avl = remove_int(avl, 78); - avl = gpr_avl_add(avl, box(700), box(181), nullptr); - avl = gpr_avl_add(avl, box(353), box(182), nullptr); - avl = remove_int(avl, 492); - avl = gpr_avl_add(avl, box(991), box(184), nullptr); - avl = remove_int(avl, 330); - avl = gpr_avl_add(avl, box(873), box(186), nullptr); - avl = remove_int(avl, 589); - avl = gpr_avl_add(avl, box(676), box(188), nullptr); - avl = gpr_avl_add(avl, box(790), box(189), nullptr); - avl = remove_int(avl, 521); - avl = remove_int(avl, 47); - avl = gpr_avl_add(avl, box(976), box(192), nullptr); - avl = gpr_avl_add(avl, box(683), box(193), nullptr); - avl = remove_int(avl, 803); - avl = remove_int(avl, 1006); - avl = gpr_avl_add(avl, box(775), box(196), nullptr); - avl = gpr_avl_add(avl, box(411), box(197), nullptr); - avl = gpr_avl_add(avl, box(697), box(198), nullptr); - avl = remove_int(avl, 50); - avl = gpr_avl_add(avl, box(213), box(200), nullptr); - avl = remove_int(avl, 714); - avl = gpr_avl_add(avl, box(981), box(202), nullptr); - avl = gpr_avl_add(avl, box(502), box(203), nullptr); - avl = gpr_avl_add(avl, box(697), box(204), nullptr); - avl = gpr_avl_add(avl, box(603), box(205), nullptr); - avl = gpr_avl_add(avl, box(117), box(206), nullptr); - avl = remove_int(avl, 363); - avl = gpr_avl_add(avl, box(104), box(208), nullptr); - avl = remove_int(avl, 842); - avl = gpr_avl_add(avl, box(48), box(210), nullptr); - avl = remove_int(avl, 764); - avl = gpr_avl_add(avl, box(482), box(212), nullptr); - avl = gpr_avl_add(avl, box(928), box(213), nullptr); - avl = gpr_avl_add(avl, box(30), box(214), nullptr); - avl = gpr_avl_add(avl, box(820), box(215), nullptr); - avl = gpr_avl_add(avl, box(334), box(216), nullptr); - avl = remove_int(avl, 306); - avl = gpr_avl_add(avl, box(789), box(218), nullptr); - avl = remove_int(avl, 924); - avl = gpr_avl_add(avl, box(53), box(220), nullptr); - avl = remove_int(avl, 657); - avl = gpr_avl_add(avl, box(130), box(222), nullptr); - avl = gpr_avl_add(avl, box(239), box(223), nullptr); - avl = remove_int(avl, 20); - avl = gpr_avl_add(avl, box(117), box(225), nullptr); - avl = remove_int(avl, 882); - avl = remove_int(avl, 891); - avl = gpr_avl_add(avl, box(9), box(228), nullptr); - avl = gpr_avl_add(avl, box(496), box(229), nullptr); - avl = gpr_avl_add(avl, box(750), box(230), nullptr); - avl = gpr_avl_add(avl, box(283), box(231), nullptr); - avl = gpr_avl_add(avl, box(802), box(232), nullptr); - avl = remove_int(avl, 352); - avl = gpr_avl_add(avl, box(374), box(234), nullptr); - avl = gpr_avl_add(avl, box(6), box(235), nullptr); - avl = gpr_avl_add(avl, box(756), box(236), nullptr); - avl = gpr_avl_add(avl, box(597), box(237), nullptr); - avl = gpr_avl_add(avl, box(661), box(238), nullptr); - avl = remove_int(avl, 96); - avl = gpr_avl_add(avl, box(894), box(240), nullptr); - avl = remove_int(avl, 749); - avl = gpr_avl_add(avl, box(71), box(242), nullptr); - avl = remove_int(avl, 68); - avl = gpr_avl_add(avl, box(388), box(244), nullptr); - avl = remove_int(avl, 119); - avl = remove_int(avl, 856); - avl = gpr_avl_add(avl, box(176), box(247), nullptr); - avl = gpr_avl_add(avl, box(993), box(248), nullptr); - avl = remove_int(avl, 178); - avl = remove_int(avl, 781); - avl = remove_int(avl, 771); - avl = remove_int(avl, 848); - avl = remove_int(avl, 376); - avl = remove_int(avl, 157); - avl = remove_int(avl, 142); - avl = remove_int(avl, 686); - avl = gpr_avl_add(avl, box(779), box(257), nullptr); - avl = gpr_avl_add(avl, box(484), box(258), nullptr); - avl = remove_int(avl, 837); - avl = gpr_avl_add(avl, box(388), box(260), nullptr); - avl = remove_int(avl, 987); - avl = gpr_avl_add(avl, box(336), box(262), nullptr); - avl = remove_int(avl, 855); - avl = gpr_avl_add(avl, box(668), box(264), nullptr); - avl = remove_int(avl, 648); - avl = gpr_avl_add(avl, box(193), box(266), nullptr); - avl = remove_int(avl, 939); - avl = gpr_avl_add(avl, box(740), box(268), nullptr); - avl = gpr_avl_add(avl, box(503), box(269), nullptr); - avl = gpr_avl_add(avl, box(765), box(270), nullptr); - avl = remove_int(avl, 924); - avl = remove_int(avl, 513); - avl = gpr_avl_add(avl, box(161), box(273), nullptr); - avl = gpr_avl_add(avl, box(502), box(274), nullptr); - avl = gpr_avl_add(avl, box(846), box(275), nullptr); - avl = remove_int(avl, 931); - avl = gpr_avl_add(avl, box(87), box(277), nullptr); - avl = gpr_avl_add(avl, box(949), box(278), nullptr); - avl = gpr_avl_add(avl, box(548), box(279), nullptr); - avl = gpr_avl_add(avl, box(951), box(280), nullptr); - avl = remove_int(avl, 1018); - avl = remove_int(avl, 568); - avl = gpr_avl_add(avl, box(138), box(283), nullptr); - avl = gpr_avl_add(avl, box(202), box(284), nullptr); - avl = gpr_avl_add(avl, box(157), box(285), nullptr); - avl = gpr_avl_add(avl, box(264), box(286), nullptr); - avl = gpr_avl_add(avl, box(370), box(287), nullptr); - avl = remove_int(avl, 736); - avl = remove_int(avl, 751); - avl = remove_int(avl, 506); - avl = remove_int(avl, 81); - avl = remove_int(avl, 358); - avl = remove_int(avl, 657); - avl = remove_int(avl, 86); - avl = gpr_avl_add(avl, box(876), box(295), nullptr); - avl = remove_int(avl, 354); - avl = gpr_avl_add(avl, box(134), box(297), nullptr); - avl = remove_int(avl, 781); - avl = remove_int(avl, 183); - avl = gpr_avl_add(avl, box(914), box(300), nullptr); - avl = remove_int(avl, 926); - avl = remove_int(avl, 398); - avl = remove_int(avl, 932); - avl = remove_int(avl, 804); - avl = remove_int(avl, 326); - avl = gpr_avl_add(avl, box(208), box(306), nullptr); - avl = gpr_avl_add(avl, box(699), box(307), nullptr); - avl = remove_int(avl, 576); - avl = remove_int(avl, 850); - avl = remove_int(avl, 514); - avl = remove_int(avl, 676); - avl = remove_int(avl, 549); - avl = remove_int(avl, 767); - avl = gpr_avl_add(avl, box(58), box(314), nullptr); - avl = gpr_avl_add(avl, box(265), box(315), nullptr); - avl = gpr_avl_add(avl, box(268), box(316), nullptr); - avl = gpr_avl_add(avl, box(103), box(317), nullptr); - avl = gpr_avl_add(avl, box(440), box(318), nullptr); - avl = remove_int(avl, 777); - avl = gpr_avl_add(avl, box(670), box(320), nullptr); - avl = remove_int(avl, 506); - avl = remove_int(avl, 487); - avl = gpr_avl_add(avl, box(421), box(323), nullptr); - avl = remove_int(avl, 514); - avl = gpr_avl_add(avl, box(701), box(325), nullptr); - avl = remove_int(avl, 949); - avl = remove_int(avl, 872); - avl = remove_int(avl, 139); - avl = gpr_avl_add(avl, box(781), box(329), nullptr); - avl = gpr_avl_add(avl, box(543), box(330), nullptr); - avl = gpr_avl_add(avl, box(147), box(331), nullptr); - avl = remove_int(avl, 190); - avl = gpr_avl_add(avl, box(453), box(333), nullptr); - avl = remove_int(avl, 262); - avl = remove_int(avl, 850); - avl = remove_int(avl, 286); - avl = remove_int(avl, 787); - avl = gpr_avl_add(avl, box(514), box(338), nullptr); - avl = remove_int(avl, 812); - avl = gpr_avl_add(avl, box(431), box(340), nullptr); - avl = gpr_avl_add(avl, box(8), box(341), nullptr); - avl = remove_int(avl, 843); - avl = gpr_avl_add(avl, box(831), box(343), nullptr); - avl = remove_int(avl, 472); - avl = remove_int(avl, 157); - avl = gpr_avl_add(avl, box(612), box(346), nullptr); - avl = gpr_avl_add(avl, box(802), box(347), nullptr); - avl = remove_int(avl, 554); - avl = gpr_avl_add(avl, box(409), box(349), nullptr); - avl = gpr_avl_add(avl, box(439), box(350), nullptr); - avl = gpr_avl_add(avl, box(725), box(351), nullptr); - avl = gpr_avl_add(avl, box(568), box(352), nullptr); - avl = remove_int(avl, 475); - avl = remove_int(avl, 672); - avl = remove_int(avl, 62); - avl = remove_int(avl, 753); - avl = gpr_avl_add(avl, box(435), box(357), nullptr); - avl = gpr_avl_add(avl, box(950), box(358), nullptr); - avl = gpr_avl_add(avl, box(532), box(359), nullptr); - avl = gpr_avl_add(avl, box(832), box(360), nullptr); - avl = remove_int(avl, 390); - avl = gpr_avl_add(avl, box(993), box(362), nullptr); - avl = remove_int(avl, 198); - avl = remove_int(avl, 401); - avl = gpr_avl_add(avl, box(316), box(365), nullptr); - avl = remove_int(avl, 843); - avl = gpr_avl_add(avl, box(541), box(367), nullptr); - avl = gpr_avl_add(avl, box(505), box(368), nullptr); - avl = remove_int(avl, 445); - avl = remove_int(avl, 256); - avl = gpr_avl_add(avl, box(232), box(371), nullptr); - avl = remove_int(avl, 577); - avl = remove_int(avl, 558); - avl = gpr_avl_add(avl, box(910), box(374), nullptr); - avl = remove_int(avl, 902); - avl = remove_int(avl, 755); - avl = remove_int(avl, 114); - avl = remove_int(avl, 438); - avl = remove_int(avl, 224); - avl = gpr_avl_add(avl, box(920), box(380), nullptr); - avl = gpr_avl_add(avl, box(655), box(381), nullptr); - avl = remove_int(avl, 557); - avl = remove_int(avl, 102); - avl = remove_int(avl, 165); - avl = gpr_avl_add(avl, box(191), box(385), nullptr); - avl = remove_int(avl, 30); - avl = gpr_avl_add(avl, box(406), box(387), nullptr); - avl = gpr_avl_add(avl, box(66), box(388), nullptr); - avl = gpr_avl_add(avl, box(87), box(389), nullptr); - avl = remove_int(avl, 7); - avl = remove_int(avl, 671); - avl = gpr_avl_add(avl, box(234), box(392), nullptr); - avl = remove_int(avl, 463); - avl = gpr_avl_add(avl, box(75), box(394), nullptr); - avl = gpr_avl_add(avl, box(487), box(395), nullptr); - avl = remove_int(avl, 203); - avl = gpr_avl_add(avl, box(711), box(397), nullptr); - avl = remove_int(avl, 291); - avl = remove_int(avl, 798); - avl = remove_int(avl, 337); - avl = gpr_avl_add(avl, box(877), box(401), nullptr); - avl = gpr_avl_add(avl, box(388), box(402), nullptr); - avl = remove_int(avl, 975); - avl = gpr_avl_add(avl, box(200), box(404), nullptr); - avl = gpr_avl_add(avl, box(408), box(405), nullptr); - avl = gpr_avl_add(avl, box(3), box(406), nullptr); - avl = gpr_avl_add(avl, box(971), box(407), nullptr); - avl = remove_int(avl, 841); - avl = remove_int(avl, 910); - avl = remove_int(avl, 74); - avl = remove_int(avl, 888); - avl = gpr_avl_add(avl, box(492), box(412), nullptr); - avl = remove_int(avl, 14); - avl = remove_int(avl, 364); - avl = gpr_avl_add(avl, box(215), box(415), nullptr); - avl = remove_int(avl, 778); - avl = remove_int(avl, 45); - avl = gpr_avl_add(avl, box(328), box(418), nullptr); - avl = gpr_avl_add(avl, box(597), box(419), nullptr); - avl = remove_int(avl, 34); - avl = gpr_avl_add(avl, box(736), box(421), nullptr); - avl = remove_int(avl, 37); - avl = gpr_avl_add(avl, box(275), box(423), nullptr); - avl = gpr_avl_add(avl, box(70), box(424), nullptr); - avl = gpr_avl_add(avl, box(771), box(425), nullptr); - avl = remove_int(avl, 536); - avl = remove_int(avl, 421); - avl = gpr_avl_add(avl, box(186), box(428), nullptr); - avl = gpr_avl_add(avl, box(788), box(429), nullptr); - avl = gpr_avl_add(avl, box(224), box(430), nullptr); - avl = remove_int(avl, 228); - avl = gpr_avl_add(avl, box(48), box(432), nullptr); - avl = gpr_avl_add(avl, box(120), box(433), nullptr); - avl = gpr_avl_add(avl, box(269), box(434), nullptr); - avl = gpr_avl_add(avl, box(904), box(435), nullptr); - avl = remove_int(avl, 699); - avl = gpr_avl_add(avl, box(340), box(437), nullptr); - avl = remove_int(avl, 276); - avl = gpr_avl_add(avl, box(591), box(439), nullptr); - avl = gpr_avl_add(avl, box(778), box(440), nullptr); - avl = remove_int(avl, 490); - avl = remove_int(avl, 973); - avl = gpr_avl_add(avl, box(294), box(443), nullptr); - avl = gpr_avl_add(avl, box(323), box(444), nullptr); - avl = remove_int(avl, 685); - avl = gpr_avl_add(avl, box(38), box(446), nullptr); - avl = gpr_avl_add(avl, box(525), box(447), nullptr); - avl = remove_int(avl, 162); - avl = gpr_avl_add(avl, box(462), box(449), nullptr); - avl = gpr_avl_add(avl, box(340), box(450), nullptr); - avl = remove_int(avl, 734); - avl = remove_int(avl, 959); - avl = gpr_avl_add(avl, box(752), box(453), nullptr); - avl = gpr_avl_add(avl, box(667), box(454), nullptr); - avl = remove_int(avl, 558); - avl = remove_int(avl, 657); - avl = gpr_avl_add(avl, box(711), box(457), nullptr); - avl = remove_int(avl, 937); - avl = gpr_avl_add(avl, box(741), box(459), nullptr); - avl = gpr_avl_add(avl, box(40), box(460), nullptr); - avl = remove_int(avl, 784); - avl = gpr_avl_add(avl, box(292), box(462), nullptr); - avl = remove_int(avl, 164); - avl = remove_int(avl, 931); - avl = remove_int(avl, 886); - avl = gpr_avl_add(avl, box(968), box(466), nullptr); - avl = remove_int(avl, 263); - avl = gpr_avl_add(avl, box(647), box(468), nullptr); - avl = gpr_avl_add(avl, box(92), box(469), nullptr); - avl = remove_int(avl, 310); - avl = gpr_avl_add(avl, box(711), box(471), nullptr); - avl = gpr_avl_add(avl, box(675), box(472), nullptr); - avl = remove_int(avl, 549); - avl = gpr_avl_add(avl, box(380), box(474), nullptr); - avl = remove_int(avl, 825); - avl = gpr_avl_add(avl, box(668), box(476), nullptr); - avl = remove_int(avl, 498); - avl = gpr_avl_add(avl, box(870), box(478), nullptr); - avl = gpr_avl_add(avl, box(391), box(479), nullptr); - avl = gpr_avl_add(avl, box(264), box(480), nullptr); - avl = remove_int(avl, 1); - avl = remove_int(avl, 849); - avl = remove_int(avl, 88); - avl = remove_int(avl, 255); - avl = remove_int(avl, 763); - avl = remove_int(avl, 831); - avl = gpr_avl_add(avl, box(508), box(487), nullptr); - avl = remove_int(avl, 849); - avl = remove_int(avl, 47); - avl = gpr_avl_add(avl, box(299), box(490), nullptr); - avl = remove_int(avl, 625); - avl = remove_int(avl, 433); - avl = remove_int(avl, 904); - avl = remove_int(avl, 761); - avl = gpr_avl_add(avl, box(33), box(495), nullptr); - avl = gpr_avl_add(avl, box(524), box(496), nullptr); - avl = remove_int(avl, 210); - avl = remove_int(avl, 299); - avl = gpr_avl_add(avl, box(823), box(499), nullptr); - avl = remove_int(avl, 479); - avl = remove_int(avl, 96); - avl = remove_int(avl, 1013); - avl = gpr_avl_add(avl, box(768), box(503), nullptr); - avl = remove_int(avl, 638); - avl = remove_int(avl, 20); - avl = gpr_avl_add(avl, box(663), box(506), nullptr); - avl = remove_int(avl, 882); - avl = gpr_avl_add(avl, box(745), box(508), nullptr); - avl = remove_int(avl, 352); - avl = gpr_avl_add(avl, box(10), box(510), nullptr); - avl = remove_int(avl, 484); - avl = gpr_avl_add(avl, box(420), box(512), nullptr); - avl = gpr_avl_add(avl, box(884), box(513), nullptr); - avl = gpr_avl_add(avl, box(993), box(514), nullptr); - avl = gpr_avl_add(avl, box(251), box(515), nullptr); - avl = remove_int(avl, 222); - avl = gpr_avl_add(avl, box(734), box(517), nullptr); - avl = gpr_avl_add(avl, box(952), box(518), nullptr); - avl = remove_int(avl, 26); - avl = remove_int(avl, 270); - avl = remove_int(avl, 481); - avl = remove_int(avl, 693); - avl = remove_int(avl, 1006); - avl = gpr_avl_add(avl, box(77), box(524), nullptr); - avl = remove_int(avl, 897); - avl = gpr_avl_add(avl, box(719), box(526), nullptr); - avl = gpr_avl_add(avl, box(622), box(527), nullptr); - avl = remove_int(avl, 28); - avl = remove_int(avl, 836); - avl = remove_int(avl, 142); - avl = gpr_avl_add(avl, box(445), box(531), nullptr); - avl = gpr_avl_add(avl, box(410), box(532), nullptr); - avl = remove_int(avl, 575); - avl = gpr_avl_add(avl, box(634), box(534), nullptr); - avl = gpr_avl_add(avl, box(906), box(535), nullptr); - avl = remove_int(avl, 649); - avl = gpr_avl_add(avl, box(813), box(537), nullptr); - avl = remove_int(avl, 702); - avl = remove_int(avl, 732); - avl = gpr_avl_add(avl, box(105), box(540), nullptr); - avl = gpr_avl_add(avl, box(867), box(541), nullptr); - avl = remove_int(avl, 964); - avl = remove_int(avl, 941); - avl = gpr_avl_add(avl, box(947), box(544), nullptr); - avl = remove_int(avl, 990); - avl = gpr_avl_add(avl, box(816), box(546), nullptr); - avl = remove_int(avl, 429); - avl = remove_int(avl, 567); - avl = remove_int(avl, 541); - avl = remove_int(avl, 583); - avl = gpr_avl_add(avl, box(57), box(551), nullptr); - avl = gpr_avl_add(avl, box(786), box(552), nullptr); - avl = gpr_avl_add(avl, box(526), box(553), nullptr); - avl = remove_int(avl, 642); - avl = remove_int(avl, 220); - avl = remove_int(avl, 840); - avl = remove_int(avl, 548); - avl = gpr_avl_add(avl, box(528), box(558), nullptr); - avl = gpr_avl_add(avl, box(749), box(559), nullptr); - avl = gpr_avl_add(avl, box(194), box(560), nullptr); - avl = remove_int(avl, 517); - avl = gpr_avl_add(avl, box(102), box(562), nullptr); - avl = remove_int(avl, 189); - avl = gpr_avl_add(avl, box(927), box(564), nullptr); - avl = remove_int(avl, 846); - avl = remove_int(avl, 130); - avl = gpr_avl_add(avl, box(694), box(567), nullptr); - avl = remove_int(avl, 750); - avl = gpr_avl_add(avl, box(357), box(569), nullptr); - avl = remove_int(avl, 431); - avl = remove_int(avl, 91); - avl = gpr_avl_add(avl, box(640), box(572), nullptr); - avl = remove_int(avl, 4); - avl = gpr_avl_add(avl, box(81), box(574), nullptr); - avl = gpr_avl_add(avl, box(595), box(575), nullptr); - avl = remove_int(avl, 444); - avl = remove_int(avl, 262); - avl = remove_int(avl, 11); - avl = gpr_avl_add(avl, box(192), box(579), nullptr); - avl = gpr_avl_add(avl, box(158), box(580), nullptr); - avl = remove_int(avl, 401); - avl = remove_int(avl, 918); - avl = gpr_avl_add(avl, box(180), box(583), nullptr); - avl = remove_int(avl, 268); - avl = gpr_avl_add(avl, box(1012), box(585), nullptr); - avl = gpr_avl_add(avl, box(90), box(586), nullptr); - avl = gpr_avl_add(avl, box(946), box(587), nullptr); - avl = remove_int(avl, 719); - avl = gpr_avl_add(avl, box(874), box(589), nullptr); - avl = gpr_avl_add(avl, box(679), box(590), nullptr); - avl = remove_int(avl, 53); - avl = remove_int(avl, 534); - avl = gpr_avl_add(avl, box(646), box(593), nullptr); - avl = gpr_avl_add(avl, box(767), box(594), nullptr); - avl = gpr_avl_add(avl, box(460), box(595), nullptr); - avl = gpr_avl_add(avl, box(852), box(596), nullptr); - avl = gpr_avl_add(avl, box(189), box(597), nullptr); - avl = remove_int(avl, 932); - avl = remove_int(avl, 366); - avl = remove_int(avl, 907); - avl = gpr_avl_add(avl, box(875), box(601), nullptr); - avl = gpr_avl_add(avl, box(434), box(602), nullptr); - avl = gpr_avl_add(avl, box(704), box(603), nullptr); - avl = gpr_avl_add(avl, box(724), box(604), nullptr); - avl = gpr_avl_add(avl, box(930), box(605), nullptr); - avl = gpr_avl_add(avl, box(1000), box(606), nullptr); - avl = remove_int(avl, 479); - avl = gpr_avl_add(avl, box(275), box(608), nullptr); - avl = remove_int(avl, 32); - avl = gpr_avl_add(avl, box(939), box(610), nullptr); - avl = remove_int(avl, 943); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(490), box(613), nullptr); - avl = remove_int(avl, 477); - avl = remove_int(avl, 414); - avl = remove_int(avl, 187); - avl = remove_int(avl, 334); - avl = gpr_avl_add(avl, box(40), box(618), nullptr); - avl = remove_int(avl, 751); - avl = gpr_avl_add(avl, box(568), box(620), nullptr); - avl = gpr_avl_add(avl, box(120), box(621), nullptr); - avl = gpr_avl_add(avl, box(617), box(622), nullptr); - avl = gpr_avl_add(avl, box(32), box(623), nullptr); - avl = remove_int(avl, 701); - avl = gpr_avl_add(avl, box(910), box(625), nullptr); - avl = remove_int(avl, 557); - avl = remove_int(avl, 361); - avl = remove_int(avl, 937); - avl = remove_int(avl, 100); - avl = remove_int(avl, 684); - avl = gpr_avl_add(avl, box(751), box(631), nullptr); - avl = remove_int(avl, 781); - avl = remove_int(avl, 469); - avl = remove_int(avl, 75); - avl = remove_int(avl, 561); - avl = gpr_avl_add(avl, box(854), box(636), nullptr); - avl = remove_int(avl, 164); - avl = remove_int(avl, 258); - avl = remove_int(avl, 315); - avl = remove_int(avl, 261); - avl = gpr_avl_add(avl, box(552), box(641), nullptr); - avl = gpr_avl_add(avl, box(6), box(642), nullptr); - avl = gpr_avl_add(avl, box(680), box(643), nullptr); - avl = remove_int(avl, 741); - avl = remove_int(avl, 309); - avl = remove_int(avl, 272); - avl = gpr_avl_add(avl, box(249), box(647), nullptr); - avl = remove_int(avl, 97); - avl = remove_int(avl, 850); - avl = gpr_avl_add(avl, box(915), box(650), nullptr); - avl = gpr_avl_add(avl, box(816), box(651), nullptr); - avl = gpr_avl_add(avl, box(45), box(652), nullptr); - avl = gpr_avl_add(avl, box(168), box(653), nullptr); - avl = remove_int(avl, 153); - avl = remove_int(avl, 239); - avl = gpr_avl_add(avl, box(684), box(656), nullptr); - avl = gpr_avl_add(avl, box(208), box(657), nullptr); - avl = gpr_avl_add(avl, box(681), box(658), nullptr); - avl = gpr_avl_add(avl, box(609), box(659), nullptr); - avl = gpr_avl_add(avl, box(645), box(660), nullptr); - avl = remove_int(avl, 799); - avl = gpr_avl_add(avl, box(955), box(662), nullptr); - avl = gpr_avl_add(avl, box(946), box(663), nullptr); - avl = gpr_avl_add(avl, box(744), box(664), nullptr); - avl = gpr_avl_add(avl, box(201), box(665), nullptr); - avl = gpr_avl_add(avl, box(136), box(666), nullptr); - avl = remove_int(avl, 357); - avl = gpr_avl_add(avl, box(974), box(668), nullptr); - avl = remove_int(avl, 485); - avl = gpr_avl_add(avl, box(1009), box(670), nullptr); - avl = gpr_avl_add(avl, box(517), box(671), nullptr); - avl = remove_int(avl, 491); - avl = gpr_avl_add(avl, box(336), box(673), nullptr); - avl = gpr_avl_add(avl, box(589), box(674), nullptr); - avl = remove_int(avl, 546); - avl = remove_int(avl, 840); - avl = remove_int(avl, 104); - avl = remove_int(avl, 347); - avl = gpr_avl_add(avl, box(801), box(679), nullptr); - avl = remove_int(avl, 799); - avl = remove_int(avl, 702); - avl = remove_int(avl, 996); - avl = remove_int(avl, 93); - avl = gpr_avl_add(avl, box(561), box(684), nullptr); - avl = gpr_avl_add(avl, box(25), box(685), nullptr); - avl = remove_int(avl, 278); - avl = gpr_avl_add(avl, box(191), box(687), nullptr); - avl = remove_int(avl, 243); - avl = remove_int(avl, 918); - avl = remove_int(avl, 449); - avl = gpr_avl_add(avl, box(19), box(691), nullptr); - avl = gpr_avl_add(avl, box(762), box(692), nullptr); - avl = gpr_avl_add(avl, box(13), box(693), nullptr); - avl = gpr_avl_add(avl, box(151), box(694), nullptr); - avl = gpr_avl_add(avl, box(152), box(695), nullptr); - avl = gpr_avl_add(avl, box(793), box(696), nullptr); - avl = remove_int(avl, 862); - avl = remove_int(avl, 890); - avl = gpr_avl_add(avl, box(687), box(699), nullptr); - avl = gpr_avl_add(avl, box(509), box(700), nullptr); - avl = gpr_avl_add(avl, box(973), box(701), nullptr); - avl = remove_int(avl, 230); - avl = gpr_avl_add(avl, box(532), box(703), nullptr); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(281), box(705), nullptr); - avl = gpr_avl_add(avl, box(867), box(706), nullptr); - avl = gpr_avl_add(avl, box(359), box(707), nullptr); - avl = remove_int(avl, 425); - avl = gpr_avl_add(avl, box(691), box(709), nullptr); - avl = gpr_avl_add(avl, box(163), box(710), nullptr); - avl = gpr_avl_add(avl, box(502), box(711), nullptr); - avl = remove_int(avl, 674); - avl = gpr_avl_add(avl, box(697), box(713), nullptr); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(968), box(715), nullptr); - avl = gpr_avl_add(avl, box(48), box(716), nullptr); - avl = remove_int(avl, 543); - avl = gpr_avl_add(avl, box(35), box(718), nullptr); - avl = gpr_avl_add(avl, box(751), box(719), nullptr); - avl = gpr_avl_add(avl, box(478), box(720), nullptr); - avl = remove_int(avl, 797); - avl = remove_int(avl, 309); - avl = gpr_avl_add(avl, box(927), box(723), nullptr); - avl = remove_int(avl, 504); - avl = gpr_avl_add(avl, box(286), box(725), nullptr); - avl = gpr_avl_add(avl, box(413), box(726), nullptr); - avl = gpr_avl_add(avl, box(599), box(727), nullptr); - avl = remove_int(avl, 105); - avl = remove_int(avl, 605); - avl = gpr_avl_add(avl, box(632), box(730), nullptr); - avl = gpr_avl_add(avl, box(133), box(731), nullptr); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(958), box(733), nullptr); - avl = gpr_avl_add(avl, box(729), box(734), nullptr); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(694), box(736), nullptr); - avl = gpr_avl_add(avl, box(505), box(737), nullptr); - avl = remove_int(avl, 63); - avl = remove_int(avl, 714); - avl = gpr_avl_add(avl, box(1002), box(740), nullptr); - avl = remove_int(avl, 211); - avl = gpr_avl_add(avl, box(765), box(742), nullptr); - avl = gpr_avl_add(avl, box(455), box(743), nullptr); - avl = remove_int(avl, 59); - avl = remove_int(avl, 224); - avl = gpr_avl_add(avl, box(586), box(746), nullptr); - avl = gpr_avl_add(avl, box(348), box(747), nullptr); - avl = remove_int(avl, 10); - avl = remove_int(avl, 484); - avl = gpr_avl_add(avl, box(968), box(750), nullptr); - avl = gpr_avl_add(avl, box(923), box(751), nullptr); - avl = remove_int(avl, 573); - avl = remove_int(avl, 617); - avl = gpr_avl_add(avl, box(812), box(754), nullptr); - avl = gpr_avl_add(avl, box(179), box(755), nullptr); - avl = remove_int(avl, 284); - avl = remove_int(avl, 157); - avl = remove_int(avl, 177); - avl = remove_int(avl, 896); - avl = gpr_avl_add(avl, box(649), box(760), nullptr); - avl = gpr_avl_add(avl, box(927), box(761), nullptr); - avl = gpr_avl_add(avl, box(454), box(762), nullptr); - avl = gpr_avl_add(avl, box(217), box(763), nullptr); - avl = remove_int(avl, 534); - avl = gpr_avl_add(avl, box(180), box(765), nullptr); - avl = gpr_avl_add(avl, box(319), box(766), nullptr); - avl = remove_int(avl, 92); - avl = gpr_avl_add(avl, box(483), box(768), nullptr); - avl = remove_int(avl, 504); - avl = remove_int(avl, 1017); - avl = remove_int(avl, 37); - avl = remove_int(avl, 50); - avl = gpr_avl_add(avl, box(302), box(773), nullptr); - avl = remove_int(avl, 807); - avl = gpr_avl_add(avl, box(463), box(775), nullptr); - avl = gpr_avl_add(avl, box(271), box(776), nullptr); - avl = gpr_avl_add(avl, box(644), box(777), nullptr); - avl = remove_int(avl, 618); - avl = gpr_avl_add(avl, box(166), box(779), nullptr); - avl = gpr_avl_add(avl, box(538), box(780), nullptr); - avl = remove_int(avl, 606); - avl = gpr_avl_add(avl, box(425), box(782), nullptr); - avl = remove_int(avl, 725); - avl = remove_int(avl, 383); - avl = gpr_avl_add(avl, box(155), box(785), nullptr); - avl = remove_int(avl, 889); - avl = gpr_avl_add(avl, box(653), box(787), nullptr); - avl = remove_int(avl, 386); - avl = gpr_avl_add(avl, box(142), box(789), nullptr); - avl = remove_int(avl, 107); - avl = remove_int(avl, 603); - avl = remove_int(avl, 971); - avl = gpr_avl_add(avl, box(80), box(793), nullptr); - avl = gpr_avl_add(avl, box(61), box(794), nullptr); - avl = gpr_avl_add(avl, box(693), box(795), nullptr); - avl = gpr_avl_add(avl, box(592), box(796), nullptr); - avl = gpr_avl_add(avl, box(433), box(797), nullptr); - avl = gpr_avl_add(avl, box(973), box(798), nullptr); - avl = remove_int(avl, 901); - avl = remove_int(avl, 340); - avl = remove_int(avl, 709); - avl = gpr_avl_add(avl, box(224), box(802), nullptr); - avl = remove_int(avl, 120); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(780), box(805), nullptr); - avl = gpr_avl_add(avl, box(867), box(806), nullptr); - avl = gpr_avl_add(avl, box(756), box(807), nullptr); - avl = gpr_avl_add(avl, box(583), box(808), nullptr); - avl = gpr_avl_add(avl, box(356), box(809), nullptr); - avl = gpr_avl_add(avl, box(58), box(810), nullptr); - avl = remove_int(avl, 219); - avl = gpr_avl_add(avl, box(301), box(812), nullptr); - avl = remove_int(avl, 643); - avl = remove_int(avl, 787); - avl = remove_int(avl, 583); - avl = remove_int(avl, 552); - avl = remove_int(avl, 308); - avl = remove_int(avl, 608); - avl = remove_int(avl, 363); - avl = remove_int(avl, 690); - avl = gpr_avl_add(avl, box(233), box(821), nullptr); - avl = gpr_avl_add(avl, box(479), box(822), nullptr); - avl = gpr_avl_add(avl, box(323), box(823), nullptr); - avl = gpr_avl_add(avl, box(802), box(824), nullptr); - avl = remove_int(avl, 682); - avl = remove_int(avl, 705); - avl = remove_int(avl, 487); - avl = gpr_avl_add(avl, box(530), box(828), nullptr); - avl = gpr_avl_add(avl, box(232), box(829), nullptr); - avl = remove_int(avl, 627); - avl = gpr_avl_add(avl, box(396), box(831), nullptr); - avl = gpr_avl_add(avl, box(61), box(832), nullptr); - avl = gpr_avl_add(avl, box(932), box(833), nullptr); - avl = gpr_avl_add(avl, box(108), box(834), nullptr); - avl = gpr_avl_add(avl, box(524), box(835), nullptr); - avl = remove_int(avl, 390); - avl = remove_int(avl, 307); - avl = gpr_avl_add(avl, box(722), box(838), nullptr); - avl = gpr_avl_add(avl, box(907), box(839), nullptr); - avl = remove_int(avl, 286); - avl = remove_int(avl, 337); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(973), box(843), nullptr); - avl = remove_int(avl, 930); - avl = remove_int(avl, 242); - avl = gpr_avl_add(avl, box(997), box(846), nullptr); - avl = gpr_avl_add(avl, box(689), box(847), nullptr); - avl = remove_int(avl, 318); - avl = gpr_avl_add(avl, box(703), box(849), nullptr); - avl = gpr_avl_add(avl, box(868), box(850), nullptr); - avl = gpr_avl_add(avl, box(200), box(851), nullptr); - avl = gpr_avl_add(avl, box(960), box(852), nullptr); - avl = gpr_avl_add(avl, box(80), box(853), nullptr); - avl = remove_int(avl, 113); - avl = gpr_avl_add(avl, box(135), box(855), nullptr); - avl = remove_int(avl, 529); - avl = gpr_avl_add(avl, box(366), box(857), nullptr); - avl = remove_int(avl, 272); - avl = gpr_avl_add(avl, box(921), box(859), nullptr); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(712), box(861), nullptr); - avl = remove_int(avl, 777); - avl = remove_int(avl, 505); - avl = remove_int(avl, 974); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(388), box(866), nullptr); - avl = gpr_avl_add(avl, box(29), box(867), nullptr); - avl = gpr_avl_add(avl, box(180), box(868), nullptr); - avl = gpr_avl_add(avl, box(983), box(869), nullptr); - avl = gpr_avl_add(avl, box(72), box(870), nullptr); - avl = gpr_avl_add(avl, box(693), box(871), nullptr); - avl = gpr_avl_add(avl, box(567), box(872), nullptr); - avl = remove_int(avl, 549); - avl = remove_int(avl, 351); - avl = gpr_avl_add(avl, box(1019), box(875), nullptr); - avl = remove_int(avl, 585); - avl = remove_int(avl, 294); - avl = remove_int(avl, 61); - avl = gpr_avl_add(avl, box(409), box(879), nullptr); - avl = gpr_avl_add(avl, box(984), box(880), nullptr); - avl = gpr_avl_add(avl, box(830), box(881), nullptr); - avl = remove_int(avl, 579); - avl = gpr_avl_add(avl, box(672), box(883), nullptr); - avl = remove_int(avl, 968); - - gpr_avl_unref(avl, nullptr); -} - -static void test_badcase3(void) { - gpr_avl avl; - - gpr_log(GPR_DEBUG, "test_badcase3"); - - avl = gpr_avl_create(&int_int_vtable); - avl = remove_int(avl, 624); - avl = gpr_avl_add(avl, box(59), box(2), nullptr); - avl = gpr_avl_add(avl, box(494), box(3), nullptr); - avl = gpr_avl_add(avl, box(226), box(4), nullptr); - avl = remove_int(avl, 524); - avl = gpr_avl_add(avl, box(540), box(6), nullptr); - avl = remove_int(avl, 1008); - avl = gpr_avl_add(avl, box(502), box(8), nullptr); - avl = remove_int(avl, 267); - avl = remove_int(avl, 764); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(8), box(12), nullptr); - avl = remove_int(avl, 291); - avl = remove_int(avl, 796); - avl = remove_int(avl, 1002); - avl = gpr_avl_add(avl, box(778), box(16), nullptr); - avl = remove_int(avl, 621); - avl = remove_int(avl, 891); - avl = remove_int(avl, 880); - avl = gpr_avl_add(avl, box(197), box(20), nullptr); - avl = gpr_avl_add(avl, box(441), box(21), nullptr); - avl = gpr_avl_add(avl, box(719), box(22), nullptr); - avl = remove_int(avl, 109); - avl = gpr_avl_add(avl, box(458), box(24), nullptr); - avl = remove_int(avl, 86); - avl = gpr_avl_add(avl, box(897), box(26), nullptr); - avl = gpr_avl_add(avl, box(997), box(27), nullptr); - avl = remove_int(avl, 235); - avl = remove_int(avl, 425); - avl = remove_int(avl, 186); - avl = gpr_avl_add(avl, box(887), box(31), nullptr); - avl = gpr_avl_add(avl, box(1005), box(32), nullptr); - avl = gpr_avl_add(avl, box(778), box(33), nullptr); - avl = gpr_avl_add(avl, box(575), box(34), nullptr); - avl = remove_int(avl, 966); - avl = remove_int(avl, 1015); - avl = gpr_avl_add(avl, box(486), box(37), nullptr); - avl = gpr_avl_add(avl, box(809), box(38), nullptr); - avl = gpr_avl_add(avl, box(907), box(39), nullptr); - avl = gpr_avl_add(avl, box(971), box(40), nullptr); - avl = remove_int(avl, 441); - avl = remove_int(avl, 498); - avl = gpr_avl_add(avl, box(727), box(43), nullptr); - avl = remove_int(avl, 679); - avl = remove_int(avl, 740); - avl = remove_int(avl, 532); - avl = gpr_avl_add(avl, box(805), box(47), nullptr); - avl = remove_int(avl, 64); - avl = gpr_avl_add(avl, box(362), box(49), nullptr); - avl = gpr_avl_add(avl, box(170), box(50), nullptr); - avl = gpr_avl_add(avl, box(389), box(51), nullptr); - avl = gpr_avl_add(avl, box(689), box(52), nullptr); - avl = remove_int(avl, 871); - avl = gpr_avl_add(avl, box(447), box(54), nullptr); - avl = remove_int(avl, 718); - avl = gpr_avl_add(avl, box(724), box(56), nullptr); - avl = remove_int(avl, 215); - avl = gpr_avl_add(avl, box(550), box(58), nullptr); - avl = remove_int(avl, 932); - avl = gpr_avl_add(avl, box(47), box(60), nullptr); - avl = remove_int(avl, 46); - avl = remove_int(avl, 229); - avl = gpr_avl_add(avl, box(68), box(63), nullptr); - avl = gpr_avl_add(avl, box(387), box(64), nullptr); - avl = remove_int(avl, 933); - avl = remove_int(avl, 736); - avl = remove_int(avl, 719); - avl = gpr_avl_add(avl, box(150), box(68), nullptr); - avl = remove_int(avl, 875); - avl = remove_int(avl, 298); - avl = gpr_avl_add(avl, box(991), box(71), nullptr); - avl = remove_int(avl, 705); - avl = gpr_avl_add(avl, box(197), box(73), nullptr); - avl = gpr_avl_add(avl, box(101), box(74), nullptr); - avl = remove_int(avl, 436); - avl = gpr_avl_add(avl, box(755), box(76), nullptr); - avl = gpr_avl_add(avl, box(727), box(77), nullptr); - avl = remove_int(avl, 309); - avl = remove_int(avl, 253); - avl = gpr_avl_add(avl, box(203), box(80), nullptr); - avl = remove_int(avl, 231); - avl = gpr_avl_add(avl, box(461), box(82), nullptr); - avl = remove_int(avl, 316); - avl = remove_int(avl, 493); - avl = gpr_avl_add(avl, box(184), box(85), nullptr); - avl = remove_int(avl, 737); - avl = gpr_avl_add(avl, box(790), box(87), nullptr); - avl = gpr_avl_add(avl, box(335), box(88), nullptr); - avl = remove_int(avl, 649); - avl = gpr_avl_add(avl, box(69), box(90), nullptr); - avl = remove_int(avl, 585); - avl = remove_int(avl, 543); - avl = gpr_avl_add(avl, box(784), box(93), nullptr); - avl = gpr_avl_add(avl, box(60), box(94), nullptr); - avl = gpr_avl_add(avl, box(525), box(95), nullptr); - avl = gpr_avl_add(avl, box(177), box(96), nullptr); - avl = gpr_avl_add(avl, box(178), box(97), nullptr); - avl = gpr_avl_add(avl, box(683), box(98), nullptr); - avl = gpr_avl_add(avl, box(226), box(99), nullptr); - avl = gpr_avl_add(avl, box(662), box(100), nullptr); - avl = remove_int(avl, 944); - avl = gpr_avl_add(avl, box(562), box(102), nullptr); - avl = gpr_avl_add(avl, box(793), box(103), nullptr); - avl = remove_int(avl, 673); - avl = gpr_avl_add(avl, box(310), box(105), nullptr); - avl = remove_int(avl, 479); - avl = remove_int(avl, 543); - avl = remove_int(avl, 159); - avl = remove_int(avl, 850); - avl = gpr_avl_add(avl, box(318), box(110), nullptr); - avl = gpr_avl_add(avl, box(483), box(111), nullptr); - avl = gpr_avl_add(avl, box(84), box(112), nullptr); - avl = remove_int(avl, 109); - avl = gpr_avl_add(avl, box(132), box(114), nullptr); - avl = gpr_avl_add(avl, box(920), box(115), nullptr); - avl = remove_int(avl, 746); - avl = gpr_avl_add(avl, box(145), box(117), nullptr); - avl = gpr_avl_add(avl, box(526), box(118), nullptr); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(332), box(120), nullptr); - avl = gpr_avl_add(avl, box(918), box(121), nullptr); - avl = remove_int(avl, 339); - avl = gpr_avl_add(avl, box(809), box(123), nullptr); - avl = gpr_avl_add(avl, box(742), box(124), nullptr); - avl = gpr_avl_add(avl, box(718), box(125), nullptr); - avl = remove_int(avl, 988); - avl = remove_int(avl, 531); - avl = remove_int(avl, 840); - avl = gpr_avl_add(avl, box(816), box(129), nullptr); - avl = gpr_avl_add(avl, box(976), box(130), nullptr); - avl = remove_int(avl, 743); - avl = remove_int(avl, 528); - avl = remove_int(avl, 982); - avl = gpr_avl_add(avl, box(803), box(134), nullptr); - avl = gpr_avl_add(avl, box(205), box(135), nullptr); - avl = gpr_avl_add(avl, box(584), box(136), nullptr); - avl = remove_int(avl, 923); - avl = remove_int(avl, 538); - avl = remove_int(avl, 398); - avl = remove_int(avl, 320); - avl = remove_int(avl, 292); - avl = gpr_avl_add(avl, box(270), box(142), nullptr); - avl = gpr_avl_add(avl, box(333), box(143), nullptr); - avl = remove_int(avl, 439); - avl = gpr_avl_add(avl, box(35), box(145), nullptr); - avl = gpr_avl_add(avl, box(837), box(146), nullptr); - avl = remove_int(avl, 65); - avl = remove_int(avl, 642); - avl = remove_int(avl, 371); - avl = remove_int(avl, 140); - avl = remove_int(avl, 533); - avl = remove_int(avl, 676); - avl = gpr_avl_add(avl, box(624), box(153), nullptr); - avl = gpr_avl_add(avl, box(116), box(154), nullptr); - avl = gpr_avl_add(avl, box(446), box(155), nullptr); - avl = remove_int(avl, 91); - avl = remove_int(avl, 721); - avl = remove_int(avl, 537); - avl = gpr_avl_add(avl, box(448), box(159), nullptr); - avl = remove_int(avl, 155); - avl = remove_int(avl, 344); - avl = remove_int(avl, 237); - avl = gpr_avl_add(avl, box(309), box(163), nullptr); - avl = gpr_avl_add(avl, box(434), box(164), nullptr); - avl = gpr_avl_add(avl, box(277), box(165), nullptr); - avl = remove_int(avl, 233); - avl = gpr_avl_add(avl, box(275), box(167), nullptr); - avl = gpr_avl_add(avl, box(218), box(168), nullptr); - avl = gpr_avl_add(avl, box(76), box(169), nullptr); - avl = gpr_avl_add(avl, box(898), box(170), nullptr); - avl = remove_int(avl, 771); - avl = gpr_avl_add(avl, box(237), box(172), nullptr); - avl = remove_int(avl, 327); - avl = gpr_avl_add(avl, box(499), box(174), nullptr); - avl = remove_int(avl, 727); - avl = remove_int(avl, 234); - avl = remove_int(avl, 623); - avl = remove_int(avl, 458); - avl = remove_int(avl, 326); - avl = remove_int(avl, 589); - avl = gpr_avl_add(avl, box(442), box(181), nullptr); - avl = remove_int(avl, 389); - avl = gpr_avl_add(avl, box(708), box(183), nullptr); - avl = gpr_avl_add(avl, box(594), box(184), nullptr); - avl = gpr_avl_add(avl, box(942), box(185), nullptr); - avl = gpr_avl_add(avl, box(282), box(186), nullptr); - avl = remove_int(avl, 434); - avl = remove_int(avl, 134); - avl = remove_int(avl, 270); - avl = remove_int(avl, 512); - avl = remove_int(avl, 265); - avl = remove_int(avl, 21); - avl = remove_int(avl, 193); - avl = remove_int(avl, 797); - avl = remove_int(avl, 347); - avl = gpr_avl_add(avl, box(99), box(196), nullptr); - avl = gpr_avl_add(avl, box(161), box(197), nullptr); - avl = remove_int(avl, 484); - avl = gpr_avl_add(avl, box(72), box(199), nullptr); - avl = remove_int(avl, 629); - avl = gpr_avl_add(avl, box(522), box(201), nullptr); - avl = remove_int(avl, 679); - avl = gpr_avl_add(avl, box(407), box(203), nullptr); - avl = remove_int(avl, 693); - avl = gpr_avl_add(avl, box(424), box(205), nullptr); - avl = gpr_avl_add(avl, box(651), box(206), nullptr); - avl = gpr_avl_add(avl, box(927), box(207), nullptr); - avl = remove_int(avl, 553); - avl = gpr_avl_add(avl, box(128), box(209), nullptr); - avl = gpr_avl_add(avl, box(616), box(210), nullptr); - avl = gpr_avl_add(avl, box(690), box(211), nullptr); - avl = remove_int(avl, 241); - avl = remove_int(avl, 179); - avl = gpr_avl_add(avl, box(697), box(214), nullptr); - avl = remove_int(avl, 779); - avl = gpr_avl_add(avl, box(241), box(216), nullptr); - avl = remove_int(avl, 190); - avl = remove_int(avl, 210); - avl = gpr_avl_add(avl, box(711), box(219), nullptr); - avl = remove_int(avl, 251); - avl = remove_int(avl, 61); - avl = gpr_avl_add(avl, box(800), box(222), nullptr); - avl = remove_int(avl, 551); - avl = gpr_avl_add(avl, box(61), box(224), nullptr); - avl = gpr_avl_add(avl, box(656), box(225), nullptr); - avl = remove_int(avl, 130); - avl = remove_int(avl, 368); - avl = remove_int(avl, 150); - avl = remove_int(avl, 73); - avl = gpr_avl_add(avl, box(799), box(230), nullptr); - avl = gpr_avl_add(avl, box(125), box(231), nullptr); - avl = remove_int(avl, 107); - avl = gpr_avl_add(avl, box(938), box(233), nullptr); - avl = gpr_avl_add(avl, box(914), box(234), nullptr); - avl = gpr_avl_add(avl, box(197), box(235), nullptr); - avl = remove_int(avl, 736); - avl = gpr_avl_add(avl, box(20), box(237), nullptr); - avl = remove_int(avl, 224); - avl = remove_int(avl, 841); - avl = gpr_avl_add(avl, box(226), box(240), nullptr); - avl = remove_int(avl, 963); - avl = remove_int(avl, 796); - avl = remove_int(avl, 728); - avl = gpr_avl_add(avl, box(855), box(244), nullptr); - avl = gpr_avl_add(avl, box(769), box(245), nullptr); - avl = gpr_avl_add(avl, box(631), box(246), nullptr); - avl = remove_int(avl, 648); - avl = gpr_avl_add(avl, box(187), box(248), nullptr); - avl = gpr_avl_add(avl, box(31), box(249), nullptr); - avl = remove_int(avl, 163); - avl = gpr_avl_add(avl, box(218), box(251), nullptr); - avl = gpr_avl_add(avl, box(488), box(252), nullptr); - avl = gpr_avl_add(avl, box(387), box(253), nullptr); - avl = gpr_avl_add(avl, box(809), box(254), nullptr); - avl = gpr_avl_add(avl, box(997), box(255), nullptr); - avl = remove_int(avl, 678); - avl = gpr_avl_add(avl, box(368), box(257), nullptr); - avl = gpr_avl_add(avl, box(220), box(258), nullptr); - avl = gpr_avl_add(avl, box(373), box(259), nullptr); - avl = remove_int(avl, 874); - avl = remove_int(avl, 682); - avl = remove_int(avl, 1014); - avl = remove_int(avl, 195); - avl = gpr_avl_add(avl, box(868), box(264), nullptr); - avl = remove_int(avl, 254); - avl = remove_int(avl, 456); - avl = gpr_avl_add(avl, box(906), box(267), nullptr); - avl = remove_int(avl, 711); - avl = gpr_avl_add(avl, box(632), box(269), nullptr); - avl = remove_int(avl, 474); - avl = gpr_avl_add(avl, box(508), box(271), nullptr); - avl = gpr_avl_add(avl, box(518), box(272), nullptr); - avl = remove_int(avl, 579); - avl = remove_int(avl, 948); - avl = gpr_avl_add(avl, box(789), box(275), nullptr); - avl = gpr_avl_add(avl, box(48), box(276), nullptr); - avl = gpr_avl_add(avl, box(256), box(277), nullptr); - avl = gpr_avl_add(avl, box(754), box(278), nullptr); - avl = remove_int(avl, 215); - avl = gpr_avl_add(avl, box(679), box(280), nullptr); - avl = gpr_avl_add(avl, box(606), box(281), nullptr); - avl = remove_int(avl, 941); - avl = remove_int(avl, 31); - avl = gpr_avl_add(avl, box(758), box(284), nullptr); - avl = remove_int(avl, 101); - avl = gpr_avl_add(avl, box(244), box(286), nullptr); - avl = gpr_avl_add(avl, box(337), box(287), nullptr); - avl = gpr_avl_add(avl, box(461), box(288), nullptr); - avl = remove_int(avl, 476); - avl = gpr_avl_add(avl, box(845), box(290), nullptr); - avl = remove_int(avl, 160); - avl = gpr_avl_add(avl, box(690), box(292), nullptr); - avl = remove_int(avl, 931); - avl = gpr_avl_add(avl, box(869), box(294), nullptr); - avl = gpr_avl_add(avl, box(1019), box(295), nullptr); - avl = remove_int(avl, 591); - avl = remove_int(avl, 635); - avl = remove_int(avl, 67); - avl = gpr_avl_add(avl, box(113), box(299), nullptr); - avl = remove_int(avl, 305); - avl = gpr_avl_add(avl, box(10), box(301), nullptr); - avl = remove_int(avl, 823); - avl = remove_int(avl, 288); - avl = remove_int(avl, 239); - avl = gpr_avl_add(avl, box(646), box(305), nullptr); - avl = gpr_avl_add(avl, box(1006), box(306), nullptr); - avl = gpr_avl_add(avl, box(954), box(307), nullptr); - avl = gpr_avl_add(avl, box(199), box(308), nullptr); - avl = gpr_avl_add(avl, box(69), box(309), nullptr); - avl = gpr_avl_add(avl, box(984), box(310), nullptr); - avl = remove_int(avl, 568); - avl = remove_int(avl, 666); - avl = remove_int(avl, 37); - avl = gpr_avl_add(avl, box(845), box(314), nullptr); - avl = remove_int(avl, 535); - avl = remove_int(avl, 365); - avl = remove_int(avl, 676); - avl = remove_int(avl, 892); - avl = remove_int(avl, 425); - avl = remove_int(avl, 704); - avl = remove_int(avl, 168); - avl = gpr_avl_add(avl, box(853), box(322), nullptr); - avl = gpr_avl_add(avl, box(335), box(323), nullptr); - avl = gpr_avl_add(avl, box(961), box(324), nullptr); - avl = gpr_avl_add(avl, box(73), box(325), nullptr); - avl = remove_int(avl, 469); - avl = gpr_avl_add(avl, box(449), box(327), nullptr); - avl = remove_int(avl, 821); - avl = gpr_avl_add(avl, box(845), box(329), nullptr); - avl = remove_int(avl, 637); - avl = gpr_avl_add(avl, box(769), box(331), nullptr); - avl = gpr_avl_add(avl, box(901), box(332), nullptr); - avl = remove_int(avl, 142); - avl = remove_int(avl, 361); - avl = remove_int(avl, 876); - avl = gpr_avl_add(avl, box(614), box(336), nullptr); - avl = gpr_avl_add(avl, box(729), box(337), nullptr); - avl = remove_int(avl, 120); - avl = remove_int(avl, 473); - avl = remove_int(avl, 445); - avl = gpr_avl_add(avl, box(978), box(341), nullptr); - avl = gpr_avl_add(avl, box(164), box(342), nullptr); - avl = gpr_avl_add(avl, box(1), box(343), nullptr); - avl = remove_int(avl, 890); - avl = gpr_avl_add(avl, box(605), box(345), nullptr); - avl = gpr_avl_add(avl, box(178), box(346), nullptr); - avl = gpr_avl_add(avl, box(481), box(347), nullptr); - avl = gpr_avl_add(avl, box(772), box(348), nullptr); - avl = remove_int(avl, 824); - avl = remove_int(avl, 167); - avl = remove_int(avl, 151); - avl = gpr_avl_add(avl, box(698), box(352), nullptr); - avl = gpr_avl_add(avl, box(202), box(353), nullptr); - avl = gpr_avl_add(avl, box(921), box(354), nullptr); - avl = gpr_avl_add(avl, box(875), box(355), nullptr); - avl = remove_int(avl, 197); - avl = remove_int(avl, 232); - avl = gpr_avl_add(avl, box(209), box(358), nullptr); - avl = remove_int(avl, 324); - avl = remove_int(avl, 56); - avl = remove_int(avl, 579); - avl = remove_int(avl, 255); - avl = remove_int(avl, 290); - avl = gpr_avl_add(avl, box(661), box(364), nullptr); - avl = gpr_avl_add(avl, box(113), box(365), nullptr); - avl = remove_int(avl, 767); - avl = gpr_avl_add(avl, box(586), box(367), nullptr); - avl = gpr_avl_add(avl, box(121), box(368), nullptr); - avl = remove_int(avl, 235); - avl = remove_int(avl, 439); - avl = remove_int(avl, 360); - avl = gpr_avl_add(avl, box(916), box(372), nullptr); - avl = remove_int(avl, 999); - avl = gpr_avl_add(avl, box(825), box(374), nullptr); - avl = gpr_avl_add(avl, box(177), box(375), nullptr); - avl = remove_int(avl, 204); - avl = remove_int(avl, 92); - avl = gpr_avl_add(avl, box(794), box(378), nullptr); - avl = gpr_avl_add(avl, box(463), box(379), nullptr); - avl = gpr_avl_add(avl, box(472), box(380), nullptr); - avl = remove_int(avl, 235); - avl = gpr_avl_add(avl, box(840), box(382), nullptr); - avl = remove_int(avl, 657); - avl = gpr_avl_add(avl, box(586), box(384), nullptr); - avl = gpr_avl_add(avl, box(979), box(385), nullptr); - avl = remove_int(avl, 979); - avl = gpr_avl_add(avl, box(639), box(387), nullptr); - avl = remove_int(avl, 907); - avl = remove_int(avl, 973); - avl = gpr_avl_add(avl, box(913), box(390), nullptr); - avl = gpr_avl_add(avl, box(566), box(391), nullptr); - avl = gpr_avl_add(avl, box(883), box(392), nullptr); - avl = gpr_avl_add(avl, box(552), box(393), nullptr); - avl = gpr_avl_add(avl, box(16), box(394), nullptr); - avl = remove_int(avl, 60); - avl = gpr_avl_add(avl, box(567), box(396), nullptr); - avl = gpr_avl_add(avl, box(705), box(397), nullptr); - avl = gpr_avl_add(avl, box(94), box(398), nullptr); - avl = remove_int(avl, 321); - avl = gpr_avl_add(avl, box(207), box(400), nullptr); - avl = gpr_avl_add(avl, box(682), box(401), nullptr); - avl = gpr_avl_add(avl, box(592), box(402), nullptr); - avl = gpr_avl_add(avl, box(10), box(403), nullptr); - avl = remove_int(avl, 911); - avl = remove_int(avl, 161); - avl = gpr_avl_add(avl, box(86), box(406), nullptr); - avl = remove_int(avl, 893); - avl = remove_int(avl, 362); - avl = gpr_avl_add(avl, box(599), box(409), nullptr); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(867), box(411), nullptr); - avl = remove_int(avl, 955); - avl = gpr_avl_add(avl, box(341), box(413), nullptr); - avl = gpr_avl_add(avl, box(887), box(414), nullptr); - avl = remove_int(avl, 706); - avl = gpr_avl_add(avl, box(939), box(416), nullptr); - avl = remove_int(avl, 233); - avl = remove_int(avl, 662); - avl = remove_int(avl, 984); - avl = remove_int(avl, 203); - avl = gpr_avl_add(avl, box(326), box(421), nullptr); - avl = remove_int(avl, 848); - avl = gpr_avl_add(avl, box(235), box(423), nullptr); - avl = remove_int(avl, 617); - avl = gpr_avl_add(avl, box(565), box(425), nullptr); - avl = remove_int(avl, 469); - avl = gpr_avl_add(avl, box(988), box(427), nullptr); - avl = remove_int(avl, 957); - avl = gpr_avl_add(avl, box(426), box(429), nullptr); - avl = remove_int(avl, 967); - avl = gpr_avl_add(avl, box(890), box(431), nullptr); - avl = gpr_avl_add(avl, box(473), box(432), nullptr); - avl = remove_int(avl, 367); - avl = remove_int(avl, 344); - avl = remove_int(avl, 660); - avl = remove_int(avl, 448); - avl = remove_int(avl, 837); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(459), box(439), nullptr); - avl = remove_int(avl, 882); - avl = remove_int(avl, 782); - avl = gpr_avl_add(avl, box(408), box(442), nullptr); - avl = gpr_avl_add(avl, box(728), box(443), nullptr); - avl = remove_int(avl, 27); - avl = gpr_avl_add(avl, box(137), box(445), nullptr); - avl = gpr_avl_add(avl, box(239), box(446), nullptr); - avl = remove_int(avl, 854); - avl = gpr_avl_add(avl, box(104), box(448), nullptr); - avl = gpr_avl_add(avl, box(823), box(449), nullptr); - avl = gpr_avl_add(avl, box(524), box(450), nullptr); - avl = gpr_avl_add(avl, box(995), box(451), nullptr); - avl = remove_int(avl, 422); - avl = remove_int(avl, 220); - avl = gpr_avl_add(avl, box(856), box(454), nullptr); - avl = remove_int(avl, 332); - avl = gpr_avl_add(avl, box(679), box(456), nullptr); - avl = remove_int(avl, 18); - avl = gpr_avl_add(avl, box(837), box(458), nullptr); - avl = remove_int(avl, 405); - avl = remove_int(avl, 877); - avl = remove_int(avl, 835); - avl = gpr_avl_add(avl, box(547), box(462), nullptr); - avl = remove_int(avl, 805); - avl = remove_int(avl, 862); - avl = gpr_avl_add(avl, box(75), box(465), nullptr); - avl = remove_int(avl, 41); - avl = gpr_avl_add(avl, box(310), box(467), nullptr); - avl = remove_int(avl, 855); - avl = gpr_avl_add(avl, box(20), box(469), nullptr); - avl = remove_int(avl, 186); - avl = remove_int(avl, 378); - avl = remove_int(avl, 442); - avl = remove_int(avl, 930); - avl = gpr_avl_add(avl, box(118), box(474), nullptr); - avl = gpr_avl_add(avl, box(96), box(475), nullptr); - avl = remove_int(avl, 854); - avl = gpr_avl_add(avl, box(65), box(477), nullptr); - avl = gpr_avl_add(avl, box(573), box(478), nullptr); - avl = gpr_avl_add(avl, box(4), box(479), nullptr); - avl = gpr_avl_add(avl, box(451), box(480), nullptr); - avl = gpr_avl_add(avl, box(774), box(481), nullptr); - avl = gpr_avl_add(avl, box(126), box(482), nullptr); - avl = remove_int(avl, 956); - avl = remove_int(avl, 591); - avl = remove_int(avl, 644); - avl = gpr_avl_add(avl, box(304), box(486), nullptr); - avl = remove_int(avl, 620); - avl = remove_int(avl, 394); - avl = gpr_avl_add(avl, box(1002), box(489), nullptr); - avl = gpr_avl_add(avl, box(837), box(490), nullptr); - avl = remove_int(avl, 485); - avl = gpr_avl_add(avl, box(1005), box(492), nullptr); - avl = remove_int(avl, 21); - avl = gpr_avl_add(avl, box(396), box(494), nullptr); - avl = remove_int(avl, 966); - avl = gpr_avl_add(avl, box(105), box(496), nullptr); - avl = gpr_avl_add(avl, box(316), box(497), nullptr); - avl = remove_int(avl, 776); - avl = gpr_avl_add(avl, box(188), box(499), nullptr); - avl = remove_int(avl, 200); - avl = gpr_avl_add(avl, box(98), box(501), nullptr); - avl = gpr_avl_add(avl, box(831), box(502), nullptr); - avl = gpr_avl_add(avl, box(227), box(503), nullptr); - avl = gpr_avl_add(avl, box(220), box(504), nullptr); - avl = remove_int(avl, 715); - avl = remove_int(avl, 279); - avl = gpr_avl_add(avl, box(701), box(507), nullptr); - avl = gpr_avl_add(avl, box(726), box(508), nullptr); - avl = gpr_avl_add(avl, box(815), box(509), nullptr); - avl = gpr_avl_add(avl, box(749), box(510), nullptr); - avl = remove_int(avl, 946); - avl = remove_int(avl, 449); - avl = remove_int(avl, 62); - avl = remove_int(avl, 487); - avl = gpr_avl_add(avl, box(545), box(515), nullptr); - avl = remove_int(avl, 59); - avl = gpr_avl_add(avl, box(168), box(517), nullptr); - avl = remove_int(avl, 337); - avl = gpr_avl_add(avl, box(69), box(519), nullptr); - avl = remove_int(avl, 600); - avl = gpr_avl_add(avl, box(591), box(521), nullptr); - avl = gpr_avl_add(avl, box(960), box(522), nullptr); - avl = gpr_avl_add(avl, box(116), box(523), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(760), box(525), nullptr); - avl = gpr_avl_add(avl, box(664), box(526), nullptr); - avl = gpr_avl_add(avl, box(547), box(527), nullptr); - avl = remove_int(avl, 922); - avl = gpr_avl_add(avl, box(290), box(529), nullptr); - avl = gpr_avl_add(avl, box(859), box(530), nullptr); - avl = gpr_avl_add(avl, box(49), box(531), nullptr); - avl = remove_int(avl, 455); - avl = remove_int(avl, 786); - avl = gpr_avl_add(avl, box(613), box(534), nullptr); - avl = gpr_avl_add(avl, box(326), box(535), nullptr); - avl = remove_int(avl, 615); - avl = gpr_avl_add(avl, box(45), box(537), nullptr); - avl = gpr_avl_add(avl, box(162), box(538), nullptr); - avl = gpr_avl_add(avl, box(189), box(539), nullptr); - avl = remove_int(avl, 68); - avl = remove_int(avl, 846); - avl = gpr_avl_add(avl, box(608), box(542), nullptr); - avl = remove_int(avl, 821); - avl = gpr_avl_add(avl, box(978), box(544), nullptr); - avl = gpr_avl_add(avl, box(892), box(545), nullptr); - avl = remove_int(avl, 924); - avl = gpr_avl_add(avl, box(708), box(547), nullptr); - avl = remove_int(avl, 135); - avl = remove_int(avl, 124); - avl = gpr_avl_add(avl, box(301), box(550), nullptr); - avl = gpr_avl_add(avl, box(939), box(551), nullptr); - avl = gpr_avl_add(avl, box(344), box(552), nullptr); - avl = remove_int(avl, 443); - avl = remove_int(avl, 122); - avl = gpr_avl_add(avl, box(636), box(555), nullptr); - avl = remove_int(avl, 558); - avl = gpr_avl_add(avl, box(923), box(557), nullptr); - avl = remove_int(avl, 827); - avl = gpr_avl_add(avl, box(649), box(559), nullptr); - avl = gpr_avl_add(avl, box(808), box(560), nullptr); - avl = remove_int(avl, 570); - avl = remove_int(avl, 434); - avl = gpr_avl_add(avl, box(40), box(563), nullptr); - avl = gpr_avl_add(avl, box(725), box(564), nullptr); - avl = remove_int(avl, 295); - avl = remove_int(avl, 615); - avl = remove_int(avl, 919); - avl = remove_int(avl, 170); - avl = remove_int(avl, 442); - avl = remove_int(avl, 971); - avl = gpr_avl_add(avl, box(483), box(571), nullptr); - avl = gpr_avl_add(avl, box(512), box(572), nullptr); - avl = remove_int(avl, 648); - avl = remove_int(avl, 78); - avl = remove_int(avl, 72); - avl = remove_int(avl, 790); - avl = remove_int(avl, 571); - avl = gpr_avl_add(avl, box(898), box(578), nullptr); - avl = remove_int(avl, 770); - avl = remove_int(avl, 776); - avl = gpr_avl_add(avl, box(602), box(581), nullptr); - avl = remove_int(avl, 251); - avl = gpr_avl_add(avl, box(303), box(583), nullptr); - avl = remove_int(avl, 837); - avl = gpr_avl_add(avl, box(714), box(585), nullptr); - avl = remove_int(avl, 800); - avl = gpr_avl_add(avl, box(266), box(587), nullptr); - avl = gpr_avl_add(avl, box(555), box(588), nullptr); - avl = remove_int(avl, 604); - avl = remove_int(avl, 163); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(296), box(592), nullptr); - avl = remove_int(avl, 129); - avl = gpr_avl_add(avl, box(656), box(594), nullptr); - avl = remove_int(avl, 769); - avl = remove_int(avl, 941); - avl = gpr_avl_add(avl, box(775), box(597), nullptr); - avl = gpr_avl_add(avl, box(846), box(598), nullptr); - avl = remove_int(avl, 591); - avl = remove_int(avl, 801); - avl = remove_int(avl, 419); - avl = remove_int(avl, 455); - avl = gpr_avl_add(avl, box(866), box(603), nullptr); - avl = gpr_avl_add(avl, box(575), box(604), nullptr); - avl = gpr_avl_add(avl, box(620), box(605), nullptr); - avl = remove_int(avl, 100); - avl = remove_int(avl, 667); - avl = gpr_avl_add(avl, box(138), box(608), nullptr); - avl = gpr_avl_add(avl, box(566), box(609), nullptr); - avl = gpr_avl_add(avl, box(673), box(610), nullptr); - avl = gpr_avl_add(avl, box(178), box(611), nullptr); - avl = remove_int(avl, 659); - avl = gpr_avl_add(avl, box(759), box(613), nullptr); - avl = gpr_avl_add(avl, box(1008), box(614), nullptr); - avl = remove_int(avl, 116); - avl = gpr_avl_add(avl, box(608), box(616), nullptr); - avl = gpr_avl_add(avl, box(339), box(617), nullptr); - avl = gpr_avl_add(avl, box(197), box(618), nullptr); - avl = remove_int(avl, 25); - avl = remove_int(avl, 628); - avl = gpr_avl_add(avl, box(487), box(621), nullptr); - avl = remove_int(avl, 739); - avl = remove_int(avl, 100); - avl = remove_int(avl, 928); - avl = gpr_avl_add(avl, box(647), box(625), nullptr); - avl = remove_int(avl, 978); - avl = remove_int(avl, 143); - avl = remove_int(avl, 755); - avl = gpr_avl_add(avl, box(71), box(629), nullptr); - avl = remove_int(avl, 205); - avl = gpr_avl_add(avl, box(501), box(631), nullptr); - avl = remove_int(avl, 723); - avl = remove_int(avl, 852); - avl = remove_int(avl, 1021); - avl = remove_int(avl, 670); - avl = remove_int(avl, 500); - avl = gpr_avl_add(avl, box(330), box(637), nullptr); - avl = remove_int(avl, 264); - avl = gpr_avl_add(avl, box(69), box(639), nullptr); - avl = remove_int(avl, 73); - avl = gpr_avl_add(avl, box(745), box(641), nullptr); - avl = remove_int(avl, 518); - avl = remove_int(avl, 641); - avl = remove_int(avl, 768); - avl = gpr_avl_add(avl, box(988), box(645), nullptr); - avl = gpr_avl_add(avl, box(899), box(646), nullptr); - avl = remove_int(avl, 763); - avl = remove_int(avl, 281); - avl = remove_int(avl, 496); - avl = gpr_avl_add(avl, box(445), box(650), nullptr); - avl = remove_int(avl, 905); - avl = gpr_avl_add(avl, box(275), box(652), nullptr); - avl = gpr_avl_add(avl, box(137), box(653), nullptr); - avl = remove_int(avl, 642); - avl = gpr_avl_add(avl, box(708), box(655), nullptr); - avl = remove_int(avl, 922); - avl = gpr_avl_add(avl, box(743), box(657), nullptr); - avl = remove_int(avl, 295); - avl = remove_int(avl, 665); - avl = remove_int(avl, 48); - avl = gpr_avl_add(avl, box(1012), box(661), nullptr); - avl = remove_int(avl, 71); - avl = remove_int(avl, 523); - avl = gpr_avl_add(avl, box(319), box(664), nullptr); - avl = remove_int(avl, 632); - avl = gpr_avl_add(avl, box(137), box(666), nullptr); - avl = gpr_avl_add(avl, box(686), box(667), nullptr); - avl = gpr_avl_add(avl, box(724), box(668), nullptr); - avl = gpr_avl_add(avl, box(952), box(669), nullptr); - avl = gpr_avl_add(avl, box(5), box(670), nullptr); - avl = remove_int(avl, 35); - avl = gpr_avl_add(avl, box(43), box(672), nullptr); - avl = gpr_avl_add(avl, box(320), box(673), nullptr); - avl = gpr_avl_add(avl, box(115), box(674), nullptr); - avl = remove_int(avl, 377); - avl = remove_int(avl, 591); - avl = remove_int(avl, 87); - avl = remove_int(avl, 93); - avl = gpr_avl_add(avl, box(1016), box(679), nullptr); - avl = gpr_avl_add(avl, box(605), box(680), nullptr); - avl = gpr_avl_add(avl, box(152), box(681), nullptr); - avl = gpr_avl_add(avl, box(113), box(682), nullptr); - avl = remove_int(avl, 131); - avl = remove_int(avl, 637); - avl = gpr_avl_add(avl, box(156), box(685), nullptr); - avl = remove_int(avl, 696); - avl = gpr_avl_add(avl, box(546), box(687), nullptr); - avl = remove_int(avl, 970); - avl = remove_int(avl, 53); - avl = remove_int(avl, 827); - avl = remove_int(avl, 224); - avl = remove_int(avl, 796); - avl = remove_int(avl, 34); - avl = remove_int(avl, 922); - avl = remove_int(avl, 277); - avl = remove_int(avl, 650); - avl = remove_int(avl, 222); - avl = remove_int(avl, 244); - avl = remove_int(avl, 576); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(500), box(701), nullptr); - avl = remove_int(avl, 924); - avl = gpr_avl_add(avl, box(825), box(703), nullptr); - avl = remove_int(avl, 888); - avl = remove_int(avl, 931); - avl = gpr_avl_add(avl, box(285), box(706), nullptr); - avl = remove_int(avl, 62); - avl = remove_int(avl, 444); - avl = remove_int(avl, 946); - avl = gpr_avl_add(avl, box(122), box(710), nullptr); - avl = gpr_avl_add(avl, box(846), box(711), nullptr); - avl = remove_int(avl, 628); - avl = gpr_avl_add(avl, box(511), box(713), nullptr); - avl = gpr_avl_add(avl, box(398), box(714), nullptr); - avl = remove_int(avl, 730); - avl = gpr_avl_add(avl, box(797), box(716), nullptr); - avl = remove_int(avl, 897); - avl = remove_int(avl, 228); - avl = remove_int(avl, 544); - avl = remove_int(avl, 552); - avl = remove_int(avl, 783); - avl = remove_int(avl, 583); - avl = remove_int(avl, 894); - avl = remove_int(avl, 942); - avl = gpr_avl_add(avl, box(346), box(725), nullptr); - avl = gpr_avl_add(avl, box(1015), box(726), nullptr); - avl = remove_int(avl, 813); - avl = gpr_avl_add(avl, box(213), box(728), nullptr); - avl = remove_int(avl, 468); - avl = remove_int(avl, 365); - avl = remove_int(avl, 399); - avl = gpr_avl_add(avl, box(380), box(732), nullptr); - avl = remove_int(avl, 835); - avl = remove_int(avl, 970); - avl = gpr_avl_add(avl, box(700), box(735), nullptr); - avl = gpr_avl_add(avl, box(807), box(736), nullptr); - avl = remove_int(avl, 312); - avl = remove_int(avl, 282); - avl = remove_int(avl, 370); - avl = remove_int(avl, 999); - avl = remove_int(avl, 241); - avl = remove_int(avl, 884); - avl = gpr_avl_add(avl, box(587), box(743), nullptr); - avl = gpr_avl_add(avl, box(332), box(744), nullptr); - avl = remove_int(avl, 686); - avl = remove_int(avl, 206); - avl = remove_int(avl, 835); - avl = gpr_avl_add(avl, box(334), box(748), nullptr); - avl = remove_int(avl, 171); - avl = gpr_avl_add(avl, box(1002), box(750), nullptr); - avl = gpr_avl_add(avl, box(779), box(751), nullptr); - avl = gpr_avl_add(avl, box(307), box(752), nullptr); - avl = gpr_avl_add(avl, box(127), box(753), nullptr); - avl = gpr_avl_add(avl, box(251), box(754), nullptr); - avl = remove_int(avl, 790); - avl = remove_int(avl, 189); - avl = remove_int(avl, 193); - avl = remove_int(avl, 38); - avl = remove_int(avl, 124); - avl = gpr_avl_add(avl, box(812), box(760), nullptr); - avl = remove_int(avl, 43); - avl = gpr_avl_add(avl, box(871), box(762), nullptr); - avl = gpr_avl_add(avl, box(580), box(763), nullptr); - avl = remove_int(avl, 501); - avl = remove_int(avl, 462); - avl = remove_int(avl, 599); - avl = gpr_avl_add(avl, box(240), box(767), nullptr); - avl = gpr_avl_add(avl, box(285), box(768), nullptr); - avl = gpr_avl_add(avl, box(472), box(769), nullptr); - avl = remove_int(avl, 865); - avl = remove_int(avl, 763); - avl = remove_int(avl, 245); - avl = remove_int(avl, 80); - avl = remove_int(avl, 713); - avl = remove_int(avl, 654); - avl = remove_int(avl, 1014); - avl = gpr_avl_add(avl, box(495), box(777), nullptr); - avl = gpr_avl_add(avl, box(552), box(778), nullptr); - avl = remove_int(avl, 19); - avl = remove_int(avl, 803); - avl = gpr_avl_add(avl, box(508), box(781), nullptr); - avl = remove_int(avl, 699); - avl = remove_int(avl, 260); - avl = remove_int(avl, 92); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(970), box(786), nullptr); - avl = remove_int(avl, 987); - avl = remove_int(avl, 168); - avl = remove_int(avl, 476); - avl = remove_int(avl, 248); - avl = gpr_avl_add(avl, box(358), box(791), nullptr); - avl = remove_int(avl, 804); - avl = remove_int(avl, 77); - avl = remove_int(avl, 905); - avl = remove_int(avl, 362); - avl = gpr_avl_add(avl, box(578), box(796), nullptr); - avl = remove_int(avl, 38); - avl = remove_int(avl, 595); - avl = gpr_avl_add(avl, box(213), box(799), nullptr); - avl = remove_int(avl, 7); - avl = remove_int(avl, 620); - avl = gpr_avl_add(avl, box(946), box(802), nullptr); - avl = remove_int(avl, 145); - avl = gpr_avl_add(avl, box(628), box(804), nullptr); - avl = remove_int(avl, 972); - avl = gpr_avl_add(avl, box(728), box(806), nullptr); - avl = remove_int(avl, 91); - avl = gpr_avl_add(avl, box(136), box(808), nullptr); - avl = gpr_avl_add(avl, box(841), box(809), nullptr); - avl = gpr_avl_add(avl, box(265), box(810), nullptr); - avl = gpr_avl_add(avl, box(701), box(811), nullptr); - avl = gpr_avl_add(avl, box(27), box(812), nullptr); - avl = remove_int(avl, 72); - avl = remove_int(avl, 14); - avl = gpr_avl_add(avl, box(286), box(815), nullptr); - avl = remove_int(avl, 996); - avl = remove_int(avl, 998); - avl = gpr_avl_add(avl, box(466), box(818), nullptr); - avl = remove_int(avl, 1009); - avl = remove_int(avl, 741); - avl = remove_int(avl, 947); - avl = remove_int(avl, 241); - avl = remove_int(avl, 954); - avl = remove_int(avl, 183); - avl = remove_int(avl, 395); - avl = remove_int(avl, 951); - avl = gpr_avl_add(avl, box(267), box(827), nullptr); - avl = remove_int(avl, 812); - avl = gpr_avl_add(avl, box(577), box(829), nullptr); - avl = remove_int(avl, 624); - avl = remove_int(avl, 847); - avl = remove_int(avl, 745); - avl = gpr_avl_add(avl, box(491), box(833), nullptr); - avl = gpr_avl_add(avl, box(941), box(834), nullptr); - avl = remove_int(avl, 258); - avl = gpr_avl_add(avl, box(410), box(836), nullptr); - avl = gpr_avl_add(avl, box(80), box(837), nullptr); - avl = gpr_avl_add(avl, box(196), box(838), nullptr); - avl = gpr_avl_add(avl, box(5), box(839), nullptr); - avl = remove_int(avl, 782); - avl = gpr_avl_add(avl, box(827), box(841), nullptr); - avl = remove_int(avl, 472); - avl = remove_int(avl, 664); - avl = gpr_avl_add(avl, box(409), box(844), nullptr); - avl = gpr_avl_add(avl, box(62), box(845), nullptr); - avl = remove_int(avl, 56); - avl = remove_int(avl, 606); - avl = remove_int(avl, 707); - avl = remove_int(avl, 989); - avl = remove_int(avl, 549); - avl = remove_int(avl, 259); - avl = gpr_avl_add(avl, box(405), box(852), nullptr); - avl = remove_int(avl, 587); - avl = remove_int(avl, 350); - avl = gpr_avl_add(avl, box(980), box(855), nullptr); - avl = gpr_avl_add(avl, box(992), box(856), nullptr); - avl = gpr_avl_add(avl, box(818), box(857), nullptr); - avl = remove_int(avl, 853); - avl = remove_int(avl, 701); - avl = gpr_avl_add(avl, box(675), box(860), nullptr); - avl = remove_int(avl, 248); - avl = remove_int(avl, 649); - avl = gpr_avl_add(avl, box(508), box(863), nullptr); - avl = remove_int(avl, 927); - avl = gpr_avl_add(avl, box(957), box(865), nullptr); - avl = gpr_avl_add(avl, box(698), box(866), nullptr); - avl = gpr_avl_add(avl, box(388), box(867), nullptr); - avl = gpr_avl_add(avl, box(532), box(868), nullptr); - avl = gpr_avl_add(avl, box(681), box(869), nullptr); - avl = remove_int(avl, 544); - avl = remove_int(avl, 991); - avl = remove_int(avl, 397); - avl = gpr_avl_add(avl, box(954), box(873), nullptr); - avl = gpr_avl_add(avl, box(219), box(874), nullptr); - avl = gpr_avl_add(avl, box(465), box(875), nullptr); - avl = remove_int(avl, 371); - avl = gpr_avl_add(avl, box(601), box(877), nullptr); - avl = gpr_avl_add(avl, box(543), box(878), nullptr); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(560), box(880), nullptr); - avl = remove_int(avl, 898); - avl = gpr_avl_add(avl, box(455), box(882), nullptr); - avl = remove_int(avl, 313); - avl = gpr_avl_add(avl, box(215), box(884), nullptr); - avl = remove_int(avl, 846); - avl = gpr_avl_add(avl, box(608), box(886), nullptr); - avl = remove_int(avl, 248); - avl = gpr_avl_add(avl, box(575), box(888), nullptr); - avl = remove_int(avl, 207); - avl = remove_int(avl, 810); - avl = remove_int(avl, 665); - avl = remove_int(avl, 361); - avl = gpr_avl_add(avl, box(154), box(893), nullptr); - avl = gpr_avl_add(avl, box(329), box(894), nullptr); - avl = gpr_avl_add(avl, box(326), box(895), nullptr); - avl = remove_int(avl, 746); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(464), box(898), nullptr); - avl = gpr_avl_add(avl, box(141), box(899), nullptr); - avl = remove_int(avl, 383); - avl = gpr_avl_add(avl, box(414), box(901), nullptr); - avl = gpr_avl_add(avl, box(777), box(902), nullptr); - avl = remove_int(avl, 972); - avl = remove_int(avl, 841); - avl = remove_int(avl, 100); - avl = gpr_avl_add(avl, box(828), box(906), nullptr); - avl = remove_int(avl, 785); - avl = gpr_avl_add(avl, box(1008), box(908), nullptr); - avl = gpr_avl_add(avl, box(46), box(909), nullptr); - avl = remove_int(avl, 399); - avl = gpr_avl_add(avl, box(178), box(911), nullptr); - avl = gpr_avl_add(avl, box(573), box(912), nullptr); - avl = remove_int(avl, 299); - avl = gpr_avl_add(avl, box(690), box(914), nullptr); - avl = gpr_avl_add(avl, box(692), box(915), nullptr); - avl = remove_int(avl, 404); - avl = remove_int(avl, 16); - avl = remove_int(avl, 746); - avl = remove_int(avl, 486); - avl = remove_int(avl, 119); - avl = gpr_avl_add(avl, box(167), box(921), nullptr); - avl = remove_int(avl, 328); - avl = gpr_avl_add(avl, box(89), box(923), nullptr); - avl = remove_int(avl, 867); - avl = remove_int(avl, 626); - avl = remove_int(avl, 507); - avl = gpr_avl_add(avl, box(365), box(927), nullptr); - avl = gpr_avl_add(avl, box(58), box(928), nullptr); - avl = gpr_avl_add(avl, box(70), box(929), nullptr); - avl = remove_int(avl, 81); - avl = remove_int(avl, 797); - avl = gpr_avl_add(avl, box(846), box(932), nullptr); - avl = remove_int(avl, 642); - avl = gpr_avl_add(avl, box(777), box(934), nullptr); - avl = remove_int(avl, 107); - avl = gpr_avl_add(avl, box(691), box(936), nullptr); - avl = gpr_avl_add(avl, box(820), box(937), nullptr); - avl = gpr_avl_add(avl, box(202), box(938), nullptr); - avl = gpr_avl_add(avl, box(308), box(939), nullptr); - avl = gpr_avl_add(avl, box(20), box(940), nullptr); - avl = remove_int(avl, 289); - avl = gpr_avl_add(avl, box(714), box(942), nullptr); - avl = gpr_avl_add(avl, box(584), box(943), nullptr); - avl = remove_int(avl, 294); - avl = gpr_avl_add(avl, box(496), box(945), nullptr); - avl = gpr_avl_add(avl, box(394), box(946), nullptr); - avl = gpr_avl_add(avl, box(860), box(947), nullptr); - avl = gpr_avl_add(avl, box(58), box(948), nullptr); - avl = remove_int(avl, 784); - avl = remove_int(avl, 584); - avl = remove_int(avl, 708); - avl = gpr_avl_add(avl, box(142), box(952), nullptr); - avl = gpr_avl_add(avl, box(247), box(953), nullptr); - avl = gpr_avl_add(avl, box(389), box(954), nullptr); - avl = remove_int(avl, 390); - avl = gpr_avl_add(avl, box(465), box(956), nullptr); - avl = gpr_avl_add(avl, box(936), box(957), nullptr); - avl = gpr_avl_add(avl, box(309), box(958), nullptr); - avl = remove_int(avl, 928); - avl = remove_int(avl, 128); - avl = remove_int(avl, 979); - avl = remove_int(avl, 670); - avl = remove_int(avl, 738); - avl = remove_int(avl, 271); - avl = remove_int(avl, 540); - avl = gpr_avl_add(avl, box(365), box(966), nullptr); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(728), box(968), nullptr); - avl = remove_int(avl, 852); - avl = gpr_avl_add(avl, box(884), box(970), nullptr); - avl = gpr_avl_add(avl, box(502), box(971), nullptr); - avl = remove_int(avl, 898); - avl = remove_int(avl, 481); - avl = gpr_avl_add(avl, box(911), box(974), nullptr); - avl = remove_int(avl, 787); - avl = remove_int(avl, 785); - avl = remove_int(avl, 537); - avl = remove_int(avl, 535); - avl = remove_int(avl, 136); - avl = remove_int(avl, 749); - avl = remove_int(avl, 637); - avl = remove_int(avl, 900); - avl = gpr_avl_add(avl, box(598), box(983), nullptr); - avl = remove_int(avl, 25); - avl = remove_int(avl, 697); - avl = gpr_avl_add(avl, box(645), box(986), nullptr); - avl = gpr_avl_add(avl, box(211), box(987), nullptr); - avl = gpr_avl_add(avl, box(589), box(988), nullptr); - avl = remove_int(avl, 702); - avl = gpr_avl_add(avl, box(53), box(990), nullptr); - avl = remove_int(avl, 492); - avl = remove_int(avl, 185); - avl = remove_int(avl, 246); - avl = remove_int(avl, 257); - avl = remove_int(avl, 502); - avl = remove_int(avl, 34); - avl = gpr_avl_add(avl, box(74), box(997), nullptr); - avl = gpr_avl_add(avl, box(834), box(998), nullptr); - avl = gpr_avl_add(avl, box(514), box(999), nullptr); - avl = gpr_avl_add(avl, box(75), box(1000), nullptr); - avl = remove_int(avl, 745); - avl = gpr_avl_add(avl, box(362), box(1002), nullptr); - avl = remove_int(avl, 215); - avl = gpr_avl_add(avl, box(624), box(1004), nullptr); - avl = remove_int(avl, 404); - avl = remove_int(avl, 359); - avl = remove_int(avl, 491); - avl = gpr_avl_add(avl, box(903), box(1008), nullptr); - avl = gpr_avl_add(avl, box(240), box(1009), nullptr); - avl = remove_int(avl, 95); - avl = gpr_avl_add(avl, box(119), box(1011), nullptr); - avl = gpr_avl_add(avl, box(857), box(1012), nullptr); - avl = remove_int(avl, 39); - avl = remove_int(avl, 866); - avl = gpr_avl_add(avl, box(503), box(1015), nullptr); - avl = gpr_avl_add(avl, box(740), box(1016), nullptr); - avl = remove_int(avl, 637); - avl = remove_int(avl, 156); - avl = remove_int(avl, 6); - avl = remove_int(avl, 745); - avl = remove_int(avl, 433); - avl = remove_int(avl, 283); - avl = gpr_avl_add(avl, box(625), box(1023), nullptr); - avl = remove_int(avl, 638); - avl = gpr_avl_add(avl, box(299), box(1025), nullptr); - avl = gpr_avl_add(avl, box(584), box(1026), nullptr); - avl = remove_int(avl, 863); - avl = gpr_avl_add(avl, box(612), box(1028), nullptr); - avl = gpr_avl_add(avl, box(62), box(1029), nullptr); - avl = gpr_avl_add(avl, box(432), box(1030), nullptr); - avl = remove_int(avl, 371); - avl = remove_int(avl, 790); - avl = remove_int(avl, 227); - avl = remove_int(avl, 836); - avl = gpr_avl_add(avl, box(703), box(1035), nullptr); - avl = gpr_avl_add(avl, box(644), box(1036), nullptr); - avl = remove_int(avl, 638); - avl = gpr_avl_add(avl, box(13), box(1038), nullptr); - avl = remove_int(avl, 66); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(362), box(1041), nullptr); - avl = gpr_avl_add(avl, box(783), box(1042), nullptr); - avl = remove_int(avl, 60); - avl = gpr_avl_add(avl, box(80), box(1044), nullptr); - avl = gpr_avl_add(avl, box(825), box(1045), nullptr); - avl = gpr_avl_add(avl, box(688), box(1046), nullptr); - avl = gpr_avl_add(avl, box(662), box(1047), nullptr); - avl = remove_int(avl, 156); - avl = remove_int(avl, 376); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(526), box(1051), nullptr); - avl = gpr_avl_add(avl, box(168), box(1052), nullptr); - avl = remove_int(avl, 646); - avl = remove_int(avl, 380); - avl = remove_int(avl, 833); - avl = gpr_avl_add(avl, box(53), box(1056), nullptr); - avl = remove_int(avl, 105); - avl = gpr_avl_add(avl, box(373), box(1058), nullptr); - avl = gpr_avl_add(avl, box(184), box(1059), nullptr); - avl = remove_int(avl, 288); - avl = gpr_avl_add(avl, box(966), box(1061), nullptr); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(406), box(1063), nullptr); - avl = remove_int(avl, 470); - avl = gpr_avl_add(avl, box(283), box(1065), nullptr); - avl = gpr_avl_add(avl, box(838), box(1066), nullptr); - avl = gpr_avl_add(avl, box(288), box(1067), nullptr); - avl = gpr_avl_add(avl, box(950), box(1068), nullptr); - avl = gpr_avl_add(avl, box(163), box(1069), nullptr); - avl = remove_int(avl, 623); - avl = remove_int(avl, 769); - avl = gpr_avl_add(avl, box(144), box(1072), nullptr); - avl = gpr_avl_add(avl, box(489), box(1073), nullptr); - avl = remove_int(avl, 15); - avl = gpr_avl_add(avl, box(971), box(1075), nullptr); - avl = remove_int(avl, 660); - avl = gpr_avl_add(avl, box(255), box(1077), nullptr); - avl = remove_int(avl, 494); - avl = gpr_avl_add(avl, box(109), box(1079), nullptr); - avl = gpr_avl_add(avl, box(420), box(1080), nullptr); - avl = gpr_avl_add(avl, box(509), box(1081), nullptr); - avl = remove_int(avl, 178); - avl = gpr_avl_add(avl, box(216), box(1083), nullptr); - avl = gpr_avl_add(avl, box(707), box(1084), nullptr); - avl = gpr_avl_add(avl, box(411), box(1085), nullptr); - avl = gpr_avl_add(avl, box(352), box(1086), nullptr); - avl = remove_int(avl, 983); - avl = gpr_avl_add(avl, box(6), box(1088), nullptr); - avl = gpr_avl_add(avl, box(1014), box(1089), nullptr); - avl = remove_int(avl, 98); - avl = remove_int(avl, 325); - avl = gpr_avl_add(avl, box(851), box(1092), nullptr); - avl = remove_int(avl, 553); - avl = gpr_avl_add(avl, box(218), box(1094), nullptr); - avl = gpr_avl_add(avl, box(261), box(1095), nullptr); - avl = remove_int(avl, 31); - avl = gpr_avl_add(avl, box(872), box(1097), nullptr); - avl = remove_int(avl, 543); - avl = remove_int(avl, 314); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(533), box(1101), nullptr); - avl = remove_int(avl, 881); - avl = remove_int(avl, 269); - avl = remove_int(avl, 940); - avl = remove_int(avl, 909); - avl = remove_int(avl, 197); - avl = remove_int(avl, 773); - avl = remove_int(avl, 790); - avl = remove_int(avl, 345); - avl = gpr_avl_add(avl, box(965), box(1110), nullptr); - avl = remove_int(avl, 622); - avl = gpr_avl_add(avl, box(352), box(1112), nullptr); - avl = remove_int(avl, 182); - avl = gpr_avl_add(avl, box(534), box(1114), nullptr); - avl = gpr_avl_add(avl, box(97), box(1115), nullptr); - avl = gpr_avl_add(avl, box(198), box(1116), nullptr); - avl = remove_int(avl, 750); - avl = gpr_avl_add(avl, box(98), box(1118), nullptr); - avl = remove_int(avl, 943); - avl = gpr_avl_add(avl, box(254), box(1120), nullptr); - avl = gpr_avl_add(avl, box(30), box(1121), nullptr); - avl = remove_int(avl, 14); - avl = remove_int(avl, 475); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(789), box(1125), nullptr); - avl = gpr_avl_add(avl, box(402), box(1126), nullptr); - avl = remove_int(avl, 1019); - avl = gpr_avl_add(avl, box(858), box(1128), nullptr); - avl = gpr_avl_add(avl, box(625), box(1129), nullptr); - avl = remove_int(avl, 675); - avl = remove_int(avl, 323); - avl = gpr_avl_add(avl, box(329), box(1132), nullptr); - avl = remove_int(avl, 929); - avl = remove_int(avl, 44); - avl = gpr_avl_add(avl, box(443), box(1135), nullptr); - avl = gpr_avl_add(avl, box(653), box(1136), nullptr); - avl = gpr_avl_add(avl, box(750), box(1137), nullptr); - avl = gpr_avl_add(avl, box(252), box(1138), nullptr); - avl = gpr_avl_add(avl, box(449), box(1139), nullptr); - avl = remove_int(avl, 1022); - avl = remove_int(avl, 357); - avl = remove_int(avl, 602); - avl = remove_int(avl, 131); - avl = gpr_avl_add(avl, box(531), box(1144), nullptr); - avl = remove_int(avl, 806); - avl = gpr_avl_add(avl, box(455), box(1146), nullptr); - avl = remove_int(avl, 31); - avl = gpr_avl_add(avl, box(154), box(1148), nullptr); - avl = gpr_avl_add(avl, box(189), box(1149), nullptr); - avl = remove_int(avl, 786); - avl = gpr_avl_add(avl, box(496), box(1151), nullptr); - avl = gpr_avl_add(avl, box(81), box(1152), nullptr); - avl = gpr_avl_add(avl, box(59), box(1153), nullptr); - avl = remove_int(avl, 424); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(723), box(1156), nullptr); - avl = gpr_avl_add(avl, box(822), box(1157), nullptr); - avl = gpr_avl_add(avl, box(354), box(1158), nullptr); - avl = remove_int(avl, 738); - avl = gpr_avl_add(avl, box(686), box(1160), nullptr); - avl = gpr_avl_add(avl, box(43), box(1161), nullptr); - avl = gpr_avl_add(avl, box(625), box(1162), nullptr); - avl = gpr_avl_add(avl, box(902), box(1163), nullptr); - avl = gpr_avl_add(avl, box(12), box(1164), nullptr); - avl = gpr_avl_add(avl, box(977), box(1165), nullptr); - avl = gpr_avl_add(avl, box(699), box(1166), nullptr); - avl = gpr_avl_add(avl, box(189), box(1167), nullptr); - avl = remove_int(avl, 672); - avl = remove_int(avl, 90); - avl = remove_int(avl, 757); - avl = remove_int(avl, 494); - avl = gpr_avl_add(avl, box(759), box(1172), nullptr); - avl = remove_int(avl, 758); - avl = remove_int(avl, 222); - avl = gpr_avl_add(avl, box(975), box(1175), nullptr); - avl = remove_int(avl, 993); - avl = gpr_avl_add(avl, box(2), box(1177), nullptr); - avl = gpr_avl_add(avl, box(70), box(1178), nullptr); - avl = remove_int(avl, 350); - avl = remove_int(avl, 972); - avl = remove_int(avl, 880); - avl = gpr_avl_add(avl, box(753), box(1182), nullptr); - avl = remove_int(avl, 404); - avl = gpr_avl_add(avl, box(294), box(1184), nullptr); - avl = remove_int(avl, 474); - avl = gpr_avl_add(avl, box(228), box(1186), nullptr); - avl = gpr_avl_add(avl, box(484), box(1187), nullptr); - avl = remove_int(avl, 238); - avl = remove_int(avl, 53); - avl = remove_int(avl, 691); - avl = gpr_avl_add(avl, box(345), box(1191), nullptr); - avl = remove_int(avl, 0); - avl = gpr_avl_add(avl, box(230), box(1193), nullptr); - avl = remove_int(avl, 227); - avl = remove_int(avl, 152); - avl = gpr_avl_add(avl, box(884), box(1196), nullptr); - avl = remove_int(avl, 823); - avl = remove_int(avl, 53); - avl = gpr_avl_add(avl, box(1015), box(1199), nullptr); - avl = gpr_avl_add(avl, box(697), box(1200), nullptr); - avl = gpr_avl_add(avl, box(376), box(1201), nullptr); - avl = remove_int(avl, 411); - avl = gpr_avl_add(avl, box(888), box(1203), nullptr); - avl = remove_int(avl, 55); - avl = gpr_avl_add(avl, box(85), box(1205), nullptr); - avl = remove_int(avl, 947); - avl = remove_int(avl, 382); - avl = remove_int(avl, 777); - avl = gpr_avl_add(avl, box(1017), box(1209), nullptr); - avl = gpr_avl_add(avl, box(169), box(1210), nullptr); - avl = gpr_avl_add(avl, box(156), box(1211), nullptr); - avl = remove_int(avl, 153); - avl = remove_int(avl, 642); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(554), box(1215), nullptr); - avl = gpr_avl_add(avl, box(76), box(1216), nullptr); - avl = gpr_avl_add(avl, box(756), box(1217), nullptr); - avl = remove_int(avl, 767); - avl = remove_int(avl, 112); - avl = remove_int(avl, 539); - avl = remove_int(avl, 544); - avl = remove_int(avl, 628); - avl = remove_int(avl, 385); - avl = remove_int(avl, 514); - avl = remove_int(avl, 362); - avl = gpr_avl_add(avl, box(523), box(1226), nullptr); - avl = gpr_avl_add(avl, box(712), box(1227), nullptr); - avl = gpr_avl_add(avl, box(474), box(1228), nullptr); - avl = gpr_avl_add(avl, box(882), box(1229), nullptr); - avl = gpr_avl_add(avl, box(965), box(1230), nullptr); - avl = remove_int(avl, 464); - avl = gpr_avl_add(avl, box(319), box(1232), nullptr); - avl = gpr_avl_add(avl, box(504), box(1233), nullptr); - avl = remove_int(avl, 818); - avl = gpr_avl_add(avl, box(884), box(1235), nullptr); - avl = gpr_avl_add(avl, box(813), box(1236), nullptr); - avl = gpr_avl_add(avl, box(795), box(1237), nullptr); - avl = remove_int(avl, 306); - avl = gpr_avl_add(avl, box(799), box(1239), nullptr); - avl = remove_int(avl, 534); - avl = gpr_avl_add(avl, box(480), box(1241), nullptr); - avl = gpr_avl_add(avl, box(656), box(1242), nullptr); - avl = gpr_avl_add(avl, box(709), box(1243), nullptr); - avl = gpr_avl_add(avl, box(500), box(1244), nullptr); - avl = remove_int(avl, 740); - avl = gpr_avl_add(avl, box(980), box(1246), nullptr); - avl = gpr_avl_add(avl, box(458), box(1247), nullptr); - avl = remove_int(avl, 377); - avl = remove_int(avl, 338); - avl = gpr_avl_add(avl, box(554), box(1250), nullptr); - avl = gpr_avl_add(avl, box(504), box(1251), nullptr); - avl = gpr_avl_add(avl, box(603), box(1252), nullptr); - avl = gpr_avl_add(avl, box(761), box(1253), nullptr); - avl = remove_int(avl, 431); - avl = gpr_avl_add(avl, box(707), box(1255), nullptr); - avl = gpr_avl_add(avl, box(673), box(1256), nullptr); - avl = remove_int(avl, 998); - avl = remove_int(avl, 332); - avl = remove_int(avl, 413); - avl = remove_int(avl, 227); - avl = remove_int(avl, 249); - avl = remove_int(avl, 309); - avl = remove_int(avl, 459); - avl = gpr_avl_add(avl, box(645), box(1264), nullptr); - avl = remove_int(avl, 858); - avl = remove_int(avl, 997); - avl = gpr_avl_add(avl, box(519), box(1267), nullptr); - avl = remove_int(avl, 614); - avl = remove_int(avl, 462); - avl = remove_int(avl, 792); - avl = gpr_avl_add(avl, box(987), box(1271), nullptr); - avl = gpr_avl_add(avl, box(309), box(1272), nullptr); - avl = remove_int(avl, 747); - avl = gpr_avl_add(avl, box(621), box(1274), nullptr); - avl = gpr_avl_add(avl, box(450), box(1275), nullptr); - avl = remove_int(avl, 265); - avl = remove_int(avl, 8); - avl = remove_int(avl, 383); - avl = gpr_avl_add(avl, box(238), box(1279), nullptr); - avl = remove_int(avl, 241); - avl = gpr_avl_add(avl, box(180), box(1281), nullptr); - avl = gpr_avl_add(avl, box(411), box(1282), nullptr); - avl = gpr_avl_add(avl, box(791), box(1283), nullptr); - avl = gpr_avl_add(avl, box(955), box(1284), nullptr); - avl = remove_int(avl, 24); - avl = remove_int(avl, 375); - avl = gpr_avl_add(avl, box(140), box(1287), nullptr); - avl = remove_int(avl, 949); - avl = gpr_avl_add(avl, box(301), box(1289), nullptr); - avl = gpr_avl_add(avl, box(0), box(1290), nullptr); - avl = remove_int(avl, 371); - avl = remove_int(avl, 427); - avl = remove_int(avl, 841); - avl = remove_int(avl, 847); - avl = gpr_avl_add(avl, box(814), box(1295), nullptr); - avl = gpr_avl_add(avl, box(127), box(1296), nullptr); - avl = gpr_avl_add(avl, box(279), box(1297), nullptr); - avl = remove_int(avl, 669); - avl = remove_int(avl, 541); - avl = remove_int(avl, 275); - avl = remove_int(avl, 299); - avl = remove_int(avl, 552); - avl = gpr_avl_add(avl, box(310), box(1303), nullptr); - avl = gpr_avl_add(avl, box(304), box(1304), nullptr); - avl = gpr_avl_add(avl, box(1), box(1305), nullptr); - avl = gpr_avl_add(avl, box(339), box(1306), nullptr); - avl = remove_int(avl, 570); - avl = remove_int(avl, 752); - avl = remove_int(avl, 552); - avl = remove_int(avl, 442); - avl = remove_int(avl, 639); - avl = gpr_avl_add(avl, box(313), box(1312), nullptr); - avl = remove_int(avl, 85); - avl = gpr_avl_add(avl, box(964), box(1314), nullptr); - avl = gpr_avl_add(avl, box(559), box(1315), nullptr); - avl = remove_int(avl, 167); - avl = gpr_avl_add(avl, box(866), box(1317), nullptr); - avl = remove_int(avl, 275); - avl = gpr_avl_add(avl, box(173), box(1319), nullptr); - avl = gpr_avl_add(avl, box(765), box(1320), nullptr); - avl = remove_int(avl, 883); - avl = gpr_avl_add(avl, box(547), box(1322), nullptr); - avl = gpr_avl_add(avl, box(847), box(1323), nullptr); - avl = remove_int(avl, 817); - avl = remove_int(avl, 850); - avl = remove_int(avl, 718); - avl = gpr_avl_add(avl, box(806), box(1327), nullptr); - avl = gpr_avl_add(avl, box(360), box(1328), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(493), box(1330), nullptr); - avl = remove_int(avl, 516); - avl = gpr_avl_add(avl, box(361), box(1332), nullptr); - avl = remove_int(avl, 355); - avl = gpr_avl_add(avl, box(512), box(1334), nullptr); - avl = gpr_avl_add(avl, box(191), box(1335), nullptr); - avl = remove_int(avl, 703); - avl = gpr_avl_add(avl, box(333), box(1337), nullptr); - avl = remove_int(avl, 481); - avl = gpr_avl_add(avl, box(501), box(1339), nullptr); - avl = remove_int(avl, 532); - avl = remove_int(avl, 510); - avl = gpr_avl_add(avl, box(793), box(1342), nullptr); - avl = gpr_avl_add(avl, box(234), box(1343), nullptr); - avl = remove_int(avl, 159); - avl = remove_int(avl, 429); - avl = remove_int(avl, 728); - avl = remove_int(avl, 288); - avl = gpr_avl_add(avl, box(281), box(1348), nullptr); - avl = gpr_avl_add(avl, box(702), box(1349), nullptr); - avl = gpr_avl_add(avl, box(149), box(1350), nullptr); - avl = remove_int(avl, 22); - avl = remove_int(avl, 944); - avl = remove_int(avl, 55); - avl = remove_int(avl, 512); - avl = remove_int(avl, 676); - avl = remove_int(avl, 884); - avl = gpr_avl_add(avl, box(246), box(1357), nullptr); - avl = gpr_avl_add(avl, box(455), box(1358), nullptr); - avl = remove_int(avl, 782); - avl = remove_int(avl, 682); - avl = gpr_avl_add(avl, box(243), box(1361), nullptr); - avl = gpr_avl_add(avl, box(109), box(1362), nullptr); - avl = gpr_avl_add(avl, box(452), box(1363), nullptr); - avl = remove_int(avl, 151); - avl = gpr_avl_add(avl, box(159), box(1365), nullptr); - avl = remove_int(avl, 1023); - avl = gpr_avl_add(avl, box(129), box(1367), nullptr); - avl = gpr_avl_add(avl, box(537), box(1368), nullptr); - avl = remove_int(avl, 321); - avl = gpr_avl_add(avl, box(740), box(1370), nullptr); - avl = remove_int(avl, 45); - avl = remove_int(avl, 136); - avl = gpr_avl_add(avl, box(229), box(1373), nullptr); - avl = remove_int(avl, 772); - avl = gpr_avl_add(avl, box(181), box(1375), nullptr); - avl = remove_int(avl, 175); - avl = gpr_avl_add(avl, box(817), box(1377), nullptr); - avl = remove_int(avl, 956); - avl = gpr_avl_add(avl, box(675), box(1379), nullptr); - avl = gpr_avl_add(avl, box(375), box(1380), nullptr); - avl = remove_int(avl, 384); - avl = gpr_avl_add(avl, box(1016), box(1382), nullptr); - avl = remove_int(avl, 295); - avl = remove_int(avl, 697); - avl = remove_int(avl, 554); - avl = remove_int(avl, 590); - avl = remove_int(avl, 1014); - avl = gpr_avl_add(avl, box(890), box(1388), nullptr); - avl = gpr_avl_add(avl, box(293), box(1389), nullptr); - avl = remove_int(avl, 207); - avl = remove_int(avl, 46); - avl = gpr_avl_add(avl, box(899), box(1392), nullptr); - avl = gpr_avl_add(avl, box(666), box(1393), nullptr); - avl = gpr_avl_add(avl, box(85), box(1394), nullptr); - avl = gpr_avl_add(avl, box(914), box(1395), nullptr); - avl = gpr_avl_add(avl, box(128), box(1396), nullptr); - avl = gpr_avl_add(avl, box(835), box(1397), nullptr); - avl = gpr_avl_add(avl, box(787), box(1398), nullptr); - avl = gpr_avl_add(avl, box(649), box(1399), nullptr); - avl = gpr_avl_add(avl, box(723), box(1400), nullptr); - avl = remove_int(avl, 874); - avl = gpr_avl_add(avl, box(778), box(1402), nullptr); - avl = gpr_avl_add(avl, box(1015), box(1403), nullptr); - avl = gpr_avl_add(avl, box(59), box(1404), nullptr); - avl = gpr_avl_add(avl, box(259), box(1405), nullptr); - avl = gpr_avl_add(avl, box(758), box(1406), nullptr); - avl = remove_int(avl, 648); - avl = gpr_avl_add(avl, box(145), box(1408), nullptr); - avl = gpr_avl_add(avl, box(440), box(1409), nullptr); - avl = remove_int(avl, 608); - avl = remove_int(avl, 690); - avl = gpr_avl_add(avl, box(605), box(1412), nullptr); - avl = remove_int(avl, 856); - avl = remove_int(avl, 608); - avl = gpr_avl_add(avl, box(829), box(1415), nullptr); - avl = gpr_avl_add(avl, box(660), box(1416), nullptr); - avl = remove_int(avl, 596); - avl = gpr_avl_add(avl, box(519), box(1418), nullptr); - avl = gpr_avl_add(avl, box(35), box(1419), nullptr); - avl = gpr_avl_add(avl, box(871), box(1420), nullptr); - avl = remove_int(avl, 845); - avl = gpr_avl_add(avl, box(600), box(1422), nullptr); - avl = gpr_avl_add(avl, box(215), box(1423), nullptr); - avl = remove_int(avl, 761); - avl = gpr_avl_add(avl, box(975), box(1425), nullptr); - avl = remove_int(avl, 987); - avl = gpr_avl_add(avl, box(58), box(1427), nullptr); - avl = remove_int(avl, 119); - avl = gpr_avl_add(avl, box(937), box(1429), nullptr); - avl = gpr_avl_add(avl, box(372), box(1430), nullptr); - avl = gpr_avl_add(avl, box(11), box(1431), nullptr); - avl = gpr_avl_add(avl, box(398), box(1432), nullptr); - avl = gpr_avl_add(avl, box(423), box(1433), nullptr); - avl = remove_int(avl, 171); - avl = gpr_avl_add(avl, box(473), box(1435), nullptr); - avl = remove_int(avl, 752); - avl = remove_int(avl, 625); - avl = remove_int(avl, 764); - avl = remove_int(avl, 49); - avl = gpr_avl_add(avl, box(472), box(1440), nullptr); - avl = remove_int(avl, 847); - avl = remove_int(avl, 642); - avl = remove_int(avl, 1004); - avl = remove_int(avl, 795); - avl = remove_int(avl, 465); - avl = gpr_avl_add(avl, box(636), box(1446), nullptr); - avl = remove_int(avl, 152); - avl = gpr_avl_add(avl, box(61), box(1448), nullptr); - avl = remove_int(avl, 929); - avl = remove_int(avl, 9); - avl = gpr_avl_add(avl, box(251), box(1451), nullptr); - avl = gpr_avl_add(avl, box(672), box(1452), nullptr); - avl = gpr_avl_add(avl, box(66), box(1453), nullptr); - avl = remove_int(avl, 693); - avl = remove_int(avl, 914); - avl = remove_int(avl, 116); - avl = remove_int(avl, 577); - avl = gpr_avl_add(avl, box(618), box(1458), nullptr); - avl = gpr_avl_add(avl, box(495), box(1459), nullptr); - avl = remove_int(avl, 450); - avl = gpr_avl_add(avl, box(533), box(1461), nullptr); - avl = gpr_avl_add(avl, box(414), box(1462), nullptr); - avl = remove_int(avl, 74); - avl = remove_int(avl, 236); - avl = gpr_avl_add(avl, box(707), box(1465), nullptr); - avl = gpr_avl_add(avl, box(357), box(1466), nullptr); - avl = gpr_avl_add(avl, box(1007), box(1467), nullptr); - avl = gpr_avl_add(avl, box(811), box(1468), nullptr); - avl = gpr_avl_add(avl, box(418), box(1469), nullptr); - avl = gpr_avl_add(avl, box(164), box(1470), nullptr); - avl = gpr_avl_add(avl, box(622), box(1471), nullptr); - avl = remove_int(avl, 22); - avl = remove_int(avl, 14); - avl = remove_int(avl, 732); - avl = remove_int(avl, 7); - avl = remove_int(avl, 447); - avl = gpr_avl_add(avl, box(221), box(1477), nullptr); - avl = gpr_avl_add(avl, box(202), box(1478), nullptr); - avl = gpr_avl_add(avl, box(312), box(1479), nullptr); - avl = remove_int(avl, 274); - avl = gpr_avl_add(avl, box(684), box(1481), nullptr); - avl = gpr_avl_add(avl, box(954), box(1482), nullptr); - avl = gpr_avl_add(avl, box(637), box(1483), nullptr); - avl = remove_int(avl, 716); - avl = gpr_avl_add(avl, box(198), box(1485), nullptr); - avl = remove_int(avl, 340); - avl = remove_int(avl, 137); - avl = remove_int(avl, 995); - avl = remove_int(avl, 1004); - avl = gpr_avl_add(avl, box(661), box(1490), nullptr); - avl = gpr_avl_add(avl, box(862), box(1491), nullptr); - avl = remove_int(avl, 527); - avl = gpr_avl_add(avl, box(945), box(1493), nullptr); - avl = remove_int(avl, 355); - avl = remove_int(avl, 144); - avl = gpr_avl_add(avl, box(229), box(1496), nullptr); - avl = gpr_avl_add(avl, box(237), box(1497), nullptr); - avl = remove_int(avl, 471); - avl = remove_int(avl, 901); - avl = gpr_avl_add(avl, box(905), box(1500), nullptr); - avl = remove_int(avl, 19); - avl = remove_int(avl, 896); - avl = remove_int(avl, 585); - avl = remove_int(avl, 308); - avl = gpr_avl_add(avl, box(547), box(1505), nullptr); - avl = gpr_avl_add(avl, box(552), box(1506), nullptr); - avl = gpr_avl_add(avl, box(30), box(1507), nullptr); - avl = gpr_avl_add(avl, box(445), box(1508), nullptr); - avl = remove_int(avl, 785); - avl = remove_int(avl, 185); - avl = gpr_avl_add(avl, box(405), box(1511), nullptr); - avl = gpr_avl_add(avl, box(733), box(1512), nullptr); - avl = gpr_avl_add(avl, box(573), box(1513), nullptr); - avl = gpr_avl_add(avl, box(492), box(1514), nullptr); - avl = gpr_avl_add(avl, box(343), box(1515), nullptr); - avl = gpr_avl_add(avl, box(527), box(1516), nullptr); - avl = gpr_avl_add(avl, box(596), box(1517), nullptr); - avl = gpr_avl_add(avl, box(519), box(1518), nullptr); - avl = remove_int(avl, 243); - avl = remove_int(avl, 722); - avl = gpr_avl_add(avl, box(772), box(1521), nullptr); - avl = remove_int(avl, 152); - avl = remove_int(avl, 305); - avl = gpr_avl_add(avl, box(754), box(1524), nullptr); - avl = gpr_avl_add(avl, box(373), box(1525), nullptr); - avl = remove_int(avl, 995); - avl = gpr_avl_add(avl, box(329), box(1527), nullptr); - avl = remove_int(avl, 397); - avl = gpr_avl_add(avl, box(884), box(1529), nullptr); - avl = remove_int(avl, 329); - avl = remove_int(avl, 240); - avl = gpr_avl_add(avl, box(566), box(1532), nullptr); - avl = gpr_avl_add(avl, box(232), box(1533), nullptr); - avl = remove_int(avl, 993); - avl = gpr_avl_add(avl, box(888), box(1535), nullptr); - avl = remove_int(avl, 242); - avl = gpr_avl_add(avl, box(941), box(1537), nullptr); - avl = remove_int(avl, 415); - avl = gpr_avl_add(avl, box(992), box(1539), nullptr); - avl = remove_int(avl, 289); - avl = gpr_avl_add(avl, box(60), box(1541), nullptr); - avl = gpr_avl_add(avl, box(97), box(1542), nullptr); - avl = remove_int(avl, 965); - avl = remove_int(avl, 267); - avl = remove_int(avl, 360); - avl = gpr_avl_add(avl, box(5), box(1546), nullptr); - avl = remove_int(avl, 429); - avl = gpr_avl_add(avl, box(412), box(1548), nullptr); - avl = remove_int(avl, 632); - avl = remove_int(avl, 113); - avl = gpr_avl_add(avl, box(48), box(1551), nullptr); - avl = gpr_avl_add(avl, box(108), box(1552), nullptr); - avl = gpr_avl_add(avl, box(750), box(1553), nullptr); - avl = remove_int(avl, 188); - avl = gpr_avl_add(avl, box(668), box(1555), nullptr); - avl = remove_int(avl, 37); - avl = remove_int(avl, 737); - avl = gpr_avl_add(avl, box(93), box(1558), nullptr); - avl = gpr_avl_add(avl, box(628), box(1559), nullptr); - avl = gpr_avl_add(avl, box(480), box(1560), nullptr); - avl = remove_int(avl, 958); - avl = remove_int(avl, 565); - avl = remove_int(avl, 32); - avl = remove_int(avl, 1); - avl = remove_int(avl, 335); - avl = gpr_avl_add(avl, box(136), box(1566), nullptr); - avl = gpr_avl_add(avl, box(469), box(1567), nullptr); - avl = remove_int(avl, 349); - avl = gpr_avl_add(avl, box(768), box(1569), nullptr); - avl = gpr_avl_add(avl, box(915), box(1570), nullptr); - avl = remove_int(avl, 1014); - avl = gpr_avl_add(avl, box(117), box(1572), nullptr); - avl = remove_int(avl, 62); - avl = gpr_avl_add(avl, box(382), box(1574), nullptr); - avl = remove_int(avl, 571); - avl = gpr_avl_add(avl, box(655), box(1576), nullptr); - avl = gpr_avl_add(avl, box(323), box(1577), nullptr); - avl = remove_int(avl, 869); - avl = remove_int(avl, 151); - avl = gpr_avl_add(avl, box(1019), box(1580), nullptr); - avl = gpr_avl_add(avl, box(984), box(1581), nullptr); - avl = gpr_avl_add(avl, box(870), box(1582), nullptr); - avl = gpr_avl_add(avl, box(376), box(1583), nullptr); - avl = remove_int(avl, 625); - avl = gpr_avl_add(avl, box(733), box(1585), nullptr); - avl = remove_int(avl, 532); - avl = remove_int(avl, 444); - avl = gpr_avl_add(avl, box(428), box(1588), nullptr); - avl = gpr_avl_add(avl, box(860), box(1589), nullptr); - avl = gpr_avl_add(avl, box(173), box(1590), nullptr); - avl = remove_int(avl, 649); - avl = remove_int(avl, 913); - avl = remove_int(avl, 1); - avl = remove_int(avl, 304); - avl = gpr_avl_add(avl, box(604), box(1595), nullptr); - avl = gpr_avl_add(avl, box(639), box(1596), nullptr); - avl = remove_int(avl, 431); - avl = gpr_avl_add(avl, box(993), box(1598), nullptr); - avl = remove_int(avl, 681); - avl = remove_int(avl, 927); - avl = gpr_avl_add(avl, box(87), box(1601), nullptr); - avl = gpr_avl_add(avl, box(91), box(1602), nullptr); - avl = remove_int(avl, 61); - avl = remove_int(avl, 14); - avl = remove_int(avl, 305); - avl = remove_int(avl, 304); - avl = remove_int(avl, 1016); - avl = gpr_avl_add(avl, box(903), box(1608), nullptr); - avl = gpr_avl_add(avl, box(951), box(1609), nullptr); - avl = gpr_avl_add(avl, box(146), box(1610), nullptr); - avl = gpr_avl_add(avl, box(482), box(1611), nullptr); - avl = gpr_avl_add(avl, box(71), box(1612), nullptr); - avl = remove_int(avl, 246); - avl = remove_int(avl, 696); - avl = gpr_avl_add(avl, box(636), box(1615), nullptr); - avl = gpr_avl_add(avl, box(295), box(1616), nullptr); - avl = remove_int(avl, 11); - avl = remove_int(avl, 231); - avl = gpr_avl_add(avl, box(905), box(1619), nullptr); - avl = gpr_avl_add(avl, box(993), box(1620), nullptr); - avl = gpr_avl_add(avl, box(433), box(1621), nullptr); - avl = gpr_avl_add(avl, box(117), box(1622), nullptr); - avl = gpr_avl_add(avl, box(467), box(1623), nullptr); - avl = remove_int(avl, 419); - avl = gpr_avl_add(avl, box(179), box(1625), nullptr); - avl = remove_int(avl, 926); - avl = remove_int(avl, 326); - avl = gpr_avl_add(avl, box(551), box(1628), nullptr); - avl = remove_int(avl, 14); - avl = remove_int(avl, 476); - avl = remove_int(avl, 823); - avl = gpr_avl_add(avl, box(350), box(1632), nullptr); - avl = gpr_avl_add(avl, box(133), box(1633), nullptr); - avl = remove_int(avl, 906); - avl = gpr_avl_add(avl, box(827), box(1635), nullptr); - avl = gpr_avl_add(avl, box(201), box(1636), nullptr); - avl = remove_int(avl, 124); - avl = remove_int(avl, 662); - avl = gpr_avl_add(avl, box(314), box(1639), nullptr); - avl = gpr_avl_add(avl, box(986), box(1640), nullptr); - avl = gpr_avl_add(avl, box(622), box(1641), nullptr); - avl = remove_int(avl, 130); - avl = gpr_avl_add(avl, box(861), box(1643), nullptr); - avl = remove_int(avl, 497); - avl = remove_int(avl, 905); - avl = gpr_avl_add(avl, box(502), box(1646), nullptr); - avl = remove_int(avl, 721); - avl = gpr_avl_add(avl, box(514), box(1648), nullptr); - avl = gpr_avl_add(avl, box(410), box(1649), nullptr); - avl = remove_int(avl, 869); - avl = remove_int(avl, 247); - avl = gpr_avl_add(avl, box(450), box(1652), nullptr); - avl = remove_int(avl, 364); - avl = gpr_avl_add(avl, box(963), box(1654), nullptr); - avl = gpr_avl_add(avl, box(146), box(1655), nullptr); - avl = remove_int(avl, 147); - avl = remove_int(avl, 789); - avl = gpr_avl_add(avl, box(693), box(1658), nullptr); - avl = gpr_avl_add(avl, box(959), box(1659), nullptr); - avl = remove_int(avl, 478); - avl = gpr_avl_add(avl, box(116), box(1661), nullptr); - avl = gpr_avl_add(avl, box(520), box(1662), nullptr); - avl = gpr_avl_add(avl, box(809), box(1663), nullptr); - avl = gpr_avl_add(avl, box(667), box(1664), nullptr); - avl = gpr_avl_add(avl, box(406), box(1665), nullptr); - avl = remove_int(avl, 409); - avl = gpr_avl_add(avl, box(558), box(1667), nullptr); - avl = gpr_avl_add(avl, box(0), box(1668), nullptr); - avl = gpr_avl_add(avl, box(948), box(1669), nullptr); - avl = gpr_avl_add(avl, box(576), box(1670), nullptr); - avl = remove_int(avl, 864); - avl = remove_int(avl, 840); - avl = remove_int(avl, 1001); - avl = gpr_avl_add(avl, box(232), box(1674), nullptr); - avl = remove_int(avl, 676); - avl = remove_int(avl, 752); - avl = remove_int(avl, 667); - avl = remove_int(avl, 605); - avl = gpr_avl_add(avl, box(258), box(1679), nullptr); - avl = gpr_avl_add(avl, box(648), box(1680), nullptr); - avl = gpr_avl_add(avl, box(761), box(1681), nullptr); - avl = remove_int(avl, 293); - avl = remove_int(avl, 893); - avl = gpr_avl_add(avl, box(194), box(1684), nullptr); - avl = remove_int(avl, 233); - avl = gpr_avl_add(avl, box(888), box(1686), nullptr); - avl = remove_int(avl, 470); - avl = remove_int(avl, 703); - avl = remove_int(avl, 190); - avl = remove_int(avl, 359); - avl = gpr_avl_add(avl, box(621), box(1691), nullptr); - avl = remove_int(avl, 634); - avl = remove_int(avl, 335); - avl = gpr_avl_add(avl, box(718), box(1694), nullptr); - avl = gpr_avl_add(avl, box(463), box(1695), nullptr); - avl = gpr_avl_add(avl, box(233), box(1696), nullptr); - avl = remove_int(avl, 376); - avl = remove_int(avl, 496); - avl = remove_int(avl, 819); - avl = remove_int(avl, 38); - avl = remove_int(avl, 436); - avl = remove_int(avl, 102); - avl = gpr_avl_add(avl, box(607), box(1703), nullptr); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(716), box(1705), nullptr); - avl = remove_int(avl, 639); - avl = remove_int(avl, 775); - avl = remove_int(avl, 578); - avl = remove_int(avl, 464); - avl = remove_int(avl, 679); - avl = remove_int(avl, 615); - avl = remove_int(avl, 104); - avl = gpr_avl_add(avl, box(414), box(1713), nullptr); - avl = gpr_avl_add(avl, box(212), box(1714), nullptr); - avl = gpr_avl_add(avl, box(266), box(1715), nullptr); - avl = gpr_avl_add(avl, box(238), box(1716), nullptr); - avl = remove_int(avl, 153); - avl = gpr_avl_add(avl, box(585), box(1718), nullptr); - avl = remove_int(avl, 121); - avl = gpr_avl_add(avl, box(534), box(1720), nullptr); - avl = remove_int(avl, 579); - avl = gpr_avl_add(avl, box(127), box(1722), nullptr); - avl = gpr_avl_add(avl, box(399), box(1723), nullptr); - avl = remove_int(avl, 417); - avl = gpr_avl_add(avl, box(978), box(1725), nullptr); - avl = gpr_avl_add(avl, box(768), box(1726), nullptr); - avl = remove_int(avl, 985); - avl = gpr_avl_add(avl, box(536), box(1728), nullptr); - avl = gpr_avl_add(avl, box(449), box(1729), nullptr); - avl = gpr_avl_add(avl, box(586), box(1730), nullptr); - avl = remove_int(avl, 998); - avl = remove_int(avl, 394); - avl = remove_int(avl, 141); - avl = gpr_avl_add(avl, box(889), box(1734), nullptr); - avl = gpr_avl_add(avl, box(871), box(1735), nullptr); - avl = gpr_avl_add(avl, box(76), box(1736), nullptr); - avl = gpr_avl_add(avl, box(549), box(1737), nullptr); - avl = gpr_avl_add(avl, box(757), box(1738), nullptr); - avl = remove_int(avl, 908); - avl = gpr_avl_add(avl, box(789), box(1740), nullptr); - avl = remove_int(avl, 224); - avl = gpr_avl_add(avl, box(407), box(1742), nullptr); - avl = gpr_avl_add(avl, box(381), box(1743), nullptr); - avl = gpr_avl_add(avl, box(561), box(1744), nullptr); - avl = gpr_avl_add(avl, box(667), box(1745), nullptr); - avl = gpr_avl_add(avl, box(522), box(1746), nullptr); - avl = gpr_avl_add(avl, box(948), box(1747), nullptr); - avl = remove_int(avl, 770); - avl = gpr_avl_add(avl, box(872), box(1749), nullptr); - avl = gpr_avl_add(avl, box(327), box(1750), nullptr); - avl = remove_int(avl, 10); - avl = gpr_avl_add(avl, box(122), box(1752), nullptr); - avl = remove_int(avl, 606); - avl = gpr_avl_add(avl, box(485), box(1754), nullptr); - avl = remove_int(avl, 6); - avl = gpr_avl_add(avl, box(329), box(1756), nullptr); - avl = gpr_avl_add(avl, box(783), box(1757), nullptr); - avl = remove_int(avl, 416); - avl = gpr_avl_add(avl, box(656), box(1759), nullptr); - avl = gpr_avl_add(avl, box(971), box(1760), nullptr); - avl = gpr_avl_add(avl, box(77), box(1761), nullptr); - avl = gpr_avl_add(avl, box(942), box(1762), nullptr); - avl = remove_int(avl, 361); - avl = gpr_avl_add(avl, box(66), box(1764), nullptr); - avl = gpr_avl_add(avl, box(299), box(1765), nullptr); - avl = gpr_avl_add(avl, box(929), box(1766), nullptr); - avl = gpr_avl_add(avl, box(797), box(1767), nullptr); - avl = remove_int(avl, 869); - avl = remove_int(avl, 907); - avl = gpr_avl_add(avl, box(870), box(1770), nullptr); - avl = remove_int(avl, 580); - avl = remove_int(avl, 120); - avl = gpr_avl_add(avl, box(913), box(1773), nullptr); - avl = remove_int(avl, 480); - avl = gpr_avl_add(avl, box(489), box(1775), nullptr); - avl = remove_int(avl, 845); - avl = gpr_avl_add(avl, box(896), box(1777), nullptr); - avl = remove_int(avl, 567); - avl = remove_int(avl, 427); - avl = gpr_avl_add(avl, box(443), box(1780), nullptr); - avl = gpr_avl_add(avl, box(3), box(1781), nullptr); - avl = remove_int(avl, 12); - avl = gpr_avl_add(avl, box(376), box(1783), nullptr); - avl = gpr_avl_add(avl, box(155), box(1784), nullptr); - avl = gpr_avl_add(avl, box(188), box(1785), nullptr); - avl = gpr_avl_add(avl, box(149), box(1786), nullptr); - avl = gpr_avl_add(avl, box(178), box(1787), nullptr); - avl = remove_int(avl, 84); - avl = gpr_avl_add(avl, box(805), box(1789), nullptr); - avl = gpr_avl_add(avl, box(612), box(1790), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(837), box(1792), nullptr); - avl = remove_int(avl, 173); - avl = remove_int(avl, 72); - avl = gpr_avl_add(avl, box(1014), box(1795), nullptr); - avl = remove_int(avl, 303); - avl = gpr_avl_add(avl, box(865), box(1797), nullptr); - avl = gpr_avl_add(avl, box(793), box(1798), nullptr); - avl = remove_int(avl, 173); - avl = remove_int(avl, 477); - avl = gpr_avl_add(avl, box(950), box(1801), nullptr); - avl = gpr_avl_add(avl, box(105), box(1802), nullptr); - avl = gpr_avl_add(avl, box(895), box(1803), nullptr); - avl = gpr_avl_add(avl, box(171), box(1804), nullptr); - avl = gpr_avl_add(avl, box(753), box(1805), nullptr); - avl = gpr_avl_add(avl, box(946), box(1806), nullptr); - avl = remove_int(avl, 194); - avl = remove_int(avl, 559); - avl = remove_int(avl, 116); - avl = gpr_avl_add(avl, box(968), box(1810), nullptr); - avl = remove_int(avl, 124); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(563), box(1813), nullptr); - avl = remove_int(avl, 182); - avl = gpr_avl_add(avl, box(816), box(1815), nullptr); - avl = remove_int(avl, 73); - avl = remove_int(avl, 261); - avl = gpr_avl_add(avl, box(847), box(1818), nullptr); - avl = gpr_avl_add(avl, box(368), box(1819), nullptr); - avl = gpr_avl_add(avl, box(808), box(1820), nullptr); - avl = gpr_avl_add(avl, box(779), box(1821), nullptr); - avl = remove_int(avl, 818); - avl = gpr_avl_add(avl, box(466), box(1823), nullptr); - avl = remove_int(avl, 316); - avl = gpr_avl_add(avl, box(986), box(1825), nullptr); - avl = gpr_avl_add(avl, box(688), box(1826), nullptr); - avl = gpr_avl_add(avl, box(509), box(1827), nullptr); - avl = gpr_avl_add(avl, box(51), box(1828), nullptr); - avl = remove_int(avl, 655); - avl = remove_int(avl, 785); - avl = remove_int(avl, 893); - avl = gpr_avl_add(avl, box(167), box(1832), nullptr); - avl = remove_int(avl, 13); - avl = remove_int(avl, 263); - avl = gpr_avl_add(avl, box(1009), box(1835), nullptr); - avl = remove_int(avl, 480); - avl = remove_int(avl, 778); - avl = remove_int(avl, 713); - avl = remove_int(avl, 628); - avl = gpr_avl_add(avl, box(803), box(1840), nullptr); - avl = remove_int(avl, 267); - avl = gpr_avl_add(avl, box(676), box(1842), nullptr); - avl = gpr_avl_add(avl, box(231), box(1843), nullptr); - avl = gpr_avl_add(avl, box(824), box(1844), nullptr); - avl = remove_int(avl, 961); - avl = gpr_avl_add(avl, box(311), box(1846), nullptr); - avl = gpr_avl_add(avl, box(420), box(1847), nullptr); - avl = gpr_avl_add(avl, box(960), box(1848), nullptr); - avl = gpr_avl_add(avl, box(468), box(1849), nullptr); - avl = gpr_avl_add(avl, box(815), box(1850), nullptr); - avl = remove_int(avl, 247); - avl = remove_int(avl, 194); - avl = gpr_avl_add(avl, box(546), box(1853), nullptr); - avl = remove_int(avl, 222); - avl = remove_int(avl, 914); - avl = remove_int(avl, 741); - avl = gpr_avl_add(avl, box(470), box(1857), nullptr); - avl = gpr_avl_add(avl, box(933), box(1858), nullptr); - avl = gpr_avl_add(avl, box(97), box(1859), nullptr); - avl = remove_int(avl, 564); - avl = remove_int(avl, 295); - avl = gpr_avl_add(avl, box(864), box(1862), nullptr); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(124), box(1864), nullptr); - avl = gpr_avl_add(avl, box(1000), box(1865), nullptr); - avl = gpr_avl_add(avl, box(228), box(1866), nullptr); - avl = gpr_avl_add(avl, box(187), box(1867), nullptr); - avl = remove_int(avl, 224); - avl = remove_int(avl, 306); - avl = remove_int(avl, 884); - avl = gpr_avl_add(avl, box(449), box(1871), nullptr); - avl = gpr_avl_add(avl, box(353), box(1872), nullptr); - avl = gpr_avl_add(avl, box(994), box(1873), nullptr); - avl = gpr_avl_add(avl, box(596), box(1874), nullptr); - avl = gpr_avl_add(avl, box(996), box(1875), nullptr); - avl = gpr_avl_add(avl, box(101), box(1876), nullptr); - avl = gpr_avl_add(avl, box(1012), box(1877), nullptr); - avl = gpr_avl_add(avl, box(982), box(1878), nullptr); - avl = gpr_avl_add(avl, box(742), box(1879), nullptr); - avl = remove_int(avl, 92); - avl = remove_int(avl, 1022); - avl = gpr_avl_add(avl, box(941), box(1882), nullptr); - avl = remove_int(avl, 742); - avl = remove_int(avl, 919); - avl = gpr_avl_add(avl, box(588), box(1885), nullptr); - avl = remove_int(avl, 221); - avl = gpr_avl_add(avl, box(356), box(1887), nullptr); - avl = gpr_avl_add(avl, box(932), box(1888), nullptr); - avl = remove_int(avl, 837); - avl = gpr_avl_add(avl, box(394), box(1890), nullptr); - avl = gpr_avl_add(avl, box(642), box(1891), nullptr); - avl = gpr_avl_add(avl, box(52), box(1892), nullptr); - avl = gpr_avl_add(avl, box(437), box(1893), nullptr); - avl = gpr_avl_add(avl, box(948), box(1894), nullptr); - avl = gpr_avl_add(avl, box(93), box(1895), nullptr); - avl = remove_int(avl, 873); - avl = remove_int(avl, 336); - avl = remove_int(avl, 277); - avl = remove_int(avl, 932); - avl = gpr_avl_add(avl, box(80), box(1900), nullptr); - avl = gpr_avl_add(avl, box(952), box(1901), nullptr); - avl = gpr_avl_add(avl, box(510), box(1902), nullptr); - avl = remove_int(avl, 876); - avl = remove_int(avl, 612); - avl = gpr_avl_add(avl, box(923), box(1905), nullptr); - avl = gpr_avl_add(avl, box(475), box(1906), nullptr); - avl = remove_int(avl, 478); - avl = remove_int(avl, 148); - avl = gpr_avl_add(avl, box(538), box(1909), nullptr); - avl = remove_int(avl, 47); - avl = gpr_avl_add(avl, box(89), box(1911), nullptr); - avl = remove_int(avl, 723); - avl = gpr_avl_add(avl, box(687), box(1913), nullptr); - avl = gpr_avl_add(avl, box(480), box(1914), nullptr); - avl = gpr_avl_add(avl, box(149), box(1915), nullptr); - avl = remove_int(avl, 68); - avl = remove_int(avl, 862); - avl = remove_int(avl, 363); - avl = gpr_avl_add(avl, box(996), box(1919), nullptr); - avl = remove_int(avl, 380); - avl = gpr_avl_add(avl, box(957), box(1921), nullptr); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(360), box(1923), nullptr); - avl = gpr_avl_add(avl, box(304), box(1924), nullptr); - avl = gpr_avl_add(avl, box(634), box(1925), nullptr); - avl = gpr_avl_add(avl, box(506), box(1926), nullptr); - avl = remove_int(avl, 248); - avl = gpr_avl_add(avl, box(124), box(1928), nullptr); - avl = gpr_avl_add(avl, box(181), box(1929), nullptr); - avl = remove_int(avl, 507); - avl = gpr_avl_add(avl, box(141), box(1931), nullptr); - avl = remove_int(avl, 409); - avl = remove_int(avl, 129); - avl = remove_int(avl, 694); - avl = remove_int(avl, 723); - avl = gpr_avl_add(avl, box(998), box(1936), nullptr); - avl = gpr_avl_add(avl, box(906), box(1937), nullptr); - avl = gpr_avl_add(avl, box(44), box(1938), nullptr); - avl = remove_int(avl, 949); - avl = remove_int(avl, 117); - avl = gpr_avl_add(avl, box(700), box(1941), nullptr); - avl = gpr_avl_add(avl, box(258), box(1942), nullptr); - avl = remove_int(avl, 828); - avl = gpr_avl_add(avl, box(860), box(1944), nullptr); - avl = gpr_avl_add(avl, box(987), box(1945), nullptr); - avl = gpr_avl_add(avl, box(316), box(1946), nullptr); - avl = gpr_avl_add(avl, box(919), box(1947), nullptr); - avl = remove_int(avl, 84); - avl = gpr_avl_add(avl, box(473), box(1949), nullptr); - avl = remove_int(avl, 127); - avl = remove_int(avl, 829); - avl = remove_int(avl, 829); - avl = gpr_avl_add(avl, box(488), box(1953), nullptr); - avl = gpr_avl_add(avl, box(954), box(1954), nullptr); - avl = remove_int(avl, 198); - avl = remove_int(avl, 972); - avl = remove_int(avl, 670); - avl = gpr_avl_add(avl, box(822), box(1958), nullptr); - avl = remove_int(avl, 589); - avl = remove_int(avl, 459); - avl = gpr_avl_add(avl, box(1003), box(1961), nullptr); - avl = gpr_avl_add(avl, box(657), box(1962), nullptr); - avl = gpr_avl_add(avl, box(477), box(1963), nullptr); - avl = gpr_avl_add(avl, box(923), box(1964), nullptr); - avl = remove_int(avl, 496); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(127), box(1967), nullptr); - avl = gpr_avl_add(avl, box(1013), box(1968), nullptr); - avl = gpr_avl_add(avl, box(778), box(1969), nullptr); - avl = remove_int(avl, 5); - avl = remove_int(avl, 990); - avl = remove_int(avl, 850); - avl = remove_int(avl, 160); - avl = remove_int(avl, 86); - avl = gpr_avl_add(avl, box(283), box(1975), nullptr); - avl = remove_int(avl, 278); - avl = remove_int(avl, 297); - avl = remove_int(avl, 137); - avl = remove_int(avl, 653); - avl = gpr_avl_add(avl, box(702), box(1980), nullptr); - avl = remove_int(avl, 63); - avl = remove_int(avl, 427); - avl = remove_int(avl, 706); - avl = remove_int(avl, 806); - avl = gpr_avl_add(avl, box(335), box(1985), nullptr); - avl = gpr_avl_add(avl, box(412), box(1986), nullptr); - avl = remove_int(avl, 766); - avl = remove_int(avl, 937); - avl = remove_int(avl, 886); - avl = remove_int(avl, 652); - avl = gpr_avl_add(avl, box(545), box(1991), nullptr); - avl = gpr_avl_add(avl, box(408), box(1992), nullptr); - avl = gpr_avl_add(avl, box(841), box(1993), nullptr); - avl = remove_int(avl, 593); - avl = gpr_avl_add(avl, box(582), box(1995), nullptr); - avl = gpr_avl_add(avl, box(597), box(1996), nullptr); - avl = remove_int(avl, 49); - avl = remove_int(avl, 835); - avl = gpr_avl_add(avl, box(417), box(1999), nullptr); - avl = gpr_avl_add(avl, box(191), box(2000), nullptr); - avl = remove_int(avl, 406); - avl = gpr_avl_add(avl, box(30), box(2002), nullptr); - avl = remove_int(avl, 841); - avl = remove_int(avl, 50); - avl = gpr_avl_add(avl, box(967), box(2005), nullptr); - avl = gpr_avl_add(avl, box(849), box(2006), nullptr); - avl = remove_int(avl, 608); - avl = gpr_avl_add(avl, box(306), box(2008), nullptr); - avl = remove_int(avl, 779); - avl = gpr_avl_add(avl, box(897), box(2010), nullptr); - avl = gpr_avl_add(avl, box(147), box(2011), nullptr); - avl = remove_int(avl, 982); - avl = gpr_avl_add(avl, box(470), box(2013), nullptr); - avl = remove_int(avl, 951); - avl = gpr_avl_add(avl, box(388), box(2015), nullptr); - avl = remove_int(avl, 616); - avl = remove_int(avl, 721); - avl = remove_int(avl, 942); - avl = remove_int(avl, 589); - avl = gpr_avl_add(avl, box(218), box(2020), nullptr); - avl = remove_int(avl, 671); - avl = gpr_avl_add(avl, box(1020), box(2022), nullptr); - avl = remove_int(avl, 277); - avl = gpr_avl_add(avl, box(681), box(2024), nullptr); - avl = gpr_avl_add(avl, box(179), box(2025), nullptr); - avl = gpr_avl_add(avl, box(370), box(2026), nullptr); - avl = gpr_avl_add(avl, box(0), box(2027), nullptr); - avl = remove_int(avl, 523); - avl = gpr_avl_add(avl, box(99), box(2029), nullptr); - avl = gpr_avl_add(avl, box(334), box(2030), nullptr); - avl = gpr_avl_add(avl, box(569), box(2031), nullptr); - avl = gpr_avl_add(avl, box(257), box(2032), nullptr); - avl = remove_int(avl, 572); - avl = gpr_avl_add(avl, box(805), box(2034), nullptr); - avl = gpr_avl_add(avl, box(143), box(2035), nullptr); - avl = gpr_avl_add(avl, box(670), box(2036), nullptr); - avl = remove_int(avl, 42); - avl = gpr_avl_add(avl, box(46), box(2038), nullptr); - avl = remove_int(avl, 970); - avl = gpr_avl_add(avl, box(353), box(2040), nullptr); - avl = remove_int(avl, 258); - avl = gpr_avl_add(avl, box(451), box(2042), nullptr); - avl = gpr_avl_add(avl, box(28), box(2043), nullptr); - avl = gpr_avl_add(avl, box(729), box(2044), nullptr); - avl = gpr_avl_add(avl, box(401), box(2045), nullptr); - avl = gpr_avl_add(avl, box(614), box(2046), nullptr); - avl = remove_int(avl, 990); - avl = remove_int(avl, 212); - avl = remove_int(avl, 22); - avl = remove_int(avl, 677); - avl = gpr_avl_add(avl, box(1016), box(2051), nullptr); - avl = gpr_avl_add(avl, box(980), box(2052), nullptr); - avl = gpr_avl_add(avl, box(990), box(2053), nullptr); - avl = gpr_avl_add(avl, box(355), box(2054), nullptr); - avl = remove_int(avl, 730); - avl = remove_int(avl, 37); - avl = gpr_avl_add(avl, box(407), box(2057), nullptr); - avl = gpr_avl_add(avl, box(222), box(2058), nullptr); - avl = gpr_avl_add(avl, box(439), box(2059), nullptr); - avl = gpr_avl_add(avl, box(563), box(2060), nullptr); - avl = remove_int(avl, 992); - avl = remove_int(avl, 786); - avl = gpr_avl_add(avl, box(1), box(2063), nullptr); - avl = gpr_avl_add(avl, box(473), box(2064), nullptr); - avl = gpr_avl_add(avl, box(992), box(2065), nullptr); - avl = remove_int(avl, 190); - avl = remove_int(avl, 450); - avl = remove_int(avl, 1020); - avl = remove_int(avl, 149); - avl = gpr_avl_add(avl, box(329), box(2070), nullptr); - avl = gpr_avl_add(avl, box(35), box(2071), nullptr); - avl = remove_int(avl, 843); - avl = gpr_avl_add(avl, box(855), box(2073), nullptr); - avl = remove_int(avl, 878); - avl = gpr_avl_add(avl, box(993), box(2075), nullptr); - avl = gpr_avl_add(avl, box(87), box(2076), nullptr); - avl = gpr_avl_add(avl, box(572), box(2077), nullptr); - avl = remove_int(avl, 896); - avl = gpr_avl_add(avl, box(849), box(2079), nullptr); - avl = remove_int(avl, 597); - avl = gpr_avl_add(avl, box(472), box(2081), nullptr); - avl = remove_int(avl, 778); - avl = remove_int(avl, 934); - avl = remove_int(avl, 314); - avl = gpr_avl_add(avl, box(101), box(2085), nullptr); - avl = remove_int(avl, 938); - avl = remove_int(avl, 1010); - avl = gpr_avl_add(avl, box(579), box(2088), nullptr); - avl = remove_int(avl, 798); - avl = remove_int(avl, 88); - avl = gpr_avl_add(avl, box(851), box(2091), nullptr); - avl = remove_int(avl, 705); - avl = gpr_avl_add(avl, box(26), box(2093), nullptr); - avl = remove_int(avl, 973); - avl = gpr_avl_add(avl, box(923), box(2095), nullptr); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(310), box(2097), nullptr); - avl = gpr_avl_add(avl, box(269), box(2098), nullptr); - avl = remove_int(avl, 173); - avl = gpr_avl_add(avl, box(279), box(2100), nullptr); - avl = remove_int(avl, 203); - avl = gpr_avl_add(avl, box(411), box(2102), nullptr); - avl = remove_int(avl, 950); - avl = gpr_avl_add(avl, box(6), box(2104), nullptr); - avl = remove_int(avl, 400); - avl = remove_int(avl, 468); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(627), box(2108), nullptr); - avl = remove_int(avl, 727); - avl = remove_int(avl, 148); - avl = remove_int(avl, 98); - avl = remove_int(avl, 997); - avl = remove_int(avl, 215); - avl = remove_int(avl, 628); - avl = remove_int(avl, 826); - avl = remove_int(avl, 664); - avl = gpr_avl_add(avl, box(76), box(2117), nullptr); - avl = remove_int(avl, 194); - avl = remove_int(avl, 18); - avl = gpr_avl_add(avl, box(727), box(2120), nullptr); - avl = remove_int(avl, 295); - avl = gpr_avl_add(avl, box(645), box(2122), nullptr); - avl = remove_int(avl, 321); - avl = remove_int(avl, 863); - avl = gpr_avl_add(avl, box(824), box(2125), nullptr); - avl = gpr_avl_add(avl, box(651), box(2126), nullptr); - avl = gpr_avl_add(avl, box(804), box(2127), nullptr); - avl = remove_int(avl, 307); - avl = gpr_avl_add(avl, box(867), box(2129), nullptr); - avl = remove_int(avl, 384); - avl = gpr_avl_add(avl, box(819), box(2131), nullptr); - avl = remove_int(avl, 674); - avl = gpr_avl_add(avl, box(76), box(2133), nullptr); - avl = remove_int(avl, 898); - avl = gpr_avl_add(avl, box(45), box(2135), nullptr); - avl = gpr_avl_add(avl, box(512), box(2136), nullptr); - avl = remove_int(avl, 773); - avl = remove_int(avl, 907); - avl = remove_int(avl, 382); - avl = remove_int(avl, 95); - avl = remove_int(avl, 734); - avl = remove_int(avl, 81); - avl = gpr_avl_add(avl, box(348), box(2143), nullptr); - avl = remove_int(avl, 509); - avl = remove_int(avl, 301); - avl = gpr_avl_add(avl, box(861), box(2146), nullptr); - avl = gpr_avl_add(avl, box(918), box(2147), nullptr); - avl = remove_int(avl, 992); - avl = gpr_avl_add(avl, box(356), box(2149), nullptr); - avl = remove_int(avl, 64); - avl = remove_int(avl, 444); - avl = remove_int(avl, 741); - avl = gpr_avl_add(avl, box(710), box(2153), nullptr); - avl = gpr_avl_add(avl, box(264), box(2154), nullptr); - avl = remove_int(avl, 347); - avl = remove_int(avl, 250); - avl = gpr_avl_add(avl, box(82), box(2157), nullptr); - avl = gpr_avl_add(avl, box(571), box(2158), nullptr); - avl = remove_int(avl, 721); - avl = remove_int(avl, 622); - avl = gpr_avl_add(avl, box(950), box(2161), nullptr); - avl = gpr_avl_add(avl, box(94), box(2162), nullptr); - avl = remove_int(avl, 970); - avl = gpr_avl_add(avl, box(815), box(2164), nullptr); - avl = remove_int(avl, 930); - avl = remove_int(avl, 703); - avl = gpr_avl_add(avl, box(432), box(2167), nullptr); - avl = remove_int(avl, 544); - avl = gpr_avl_add(avl, box(21), box(2169), nullptr); - avl = gpr_avl_add(avl, box(186), box(2170), nullptr); - avl = remove_int(avl, 143); - avl = gpr_avl_add(avl, box(425), box(2172), nullptr); - avl = remove_int(avl, 769); - avl = gpr_avl_add(avl, box(656), box(2174), nullptr); - avl = remove_int(avl, 29); - avl = gpr_avl_add(avl, box(464), box(2176), nullptr); - avl = remove_int(avl, 713); - avl = gpr_avl_add(avl, box(800), box(2178), nullptr); - avl = remove_int(avl, 621); - avl = gpr_avl_add(avl, box(962), box(2180), nullptr); - avl = remove_int(avl, 448); - avl = gpr_avl_add(avl, box(878), box(2182), nullptr); - avl = remove_int(avl, 39); - avl = remove_int(avl, 999); - avl = gpr_avl_add(avl, box(182), box(2185), nullptr); - avl = gpr_avl_add(avl, box(429), box(2186), nullptr); - avl = gpr_avl_add(avl, box(598), box(2187), nullptr); - avl = remove_int(avl, 551); - avl = gpr_avl_add(avl, box(827), box(2189), nullptr); - avl = gpr_avl_add(avl, box(809), box(2190), nullptr); - avl = remove_int(avl, 438); - avl = remove_int(avl, 811); - avl = gpr_avl_add(avl, box(808), box(2193), nullptr); - avl = gpr_avl_add(avl, box(788), box(2194), nullptr); - avl = remove_int(avl, 156); - avl = gpr_avl_add(avl, box(933), box(2196), nullptr); - avl = gpr_avl_add(avl, box(344), box(2197), nullptr); - avl = remove_int(avl, 460); - avl = gpr_avl_add(avl, box(161), box(2199), nullptr); - avl = gpr_avl_add(avl, box(444), box(2200), nullptr); - avl = remove_int(avl, 597); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(703), box(2203), nullptr); - avl = remove_int(avl, 515); - avl = gpr_avl_add(avl, box(380), box(2205), nullptr); - avl = gpr_avl_add(avl, box(338), box(2206), nullptr); - avl = remove_int(avl, 550); - avl = remove_int(avl, 946); - avl = remove_int(avl, 714); - avl = remove_int(avl, 739); - avl = gpr_avl_add(avl, box(413), box(2211), nullptr); - avl = remove_int(avl, 450); - avl = gpr_avl_add(avl, box(411), box(2213), nullptr); - avl = gpr_avl_add(avl, box(117), box(2214), nullptr); - avl = gpr_avl_add(avl, box(322), box(2215), nullptr); - avl = gpr_avl_add(avl, box(915), box(2216), nullptr); - avl = gpr_avl_add(avl, box(410), box(2217), nullptr); - avl = gpr_avl_add(avl, box(66), box(2218), nullptr); - avl = remove_int(avl, 756); - avl = remove_int(avl, 596); - avl = gpr_avl_add(avl, box(882), box(2221), nullptr); - avl = gpr_avl_add(avl, box(930), box(2222), nullptr); - avl = gpr_avl_add(avl, box(36), box(2223), nullptr); - avl = remove_int(avl, 742); - avl = gpr_avl_add(avl, box(539), box(2225), nullptr); - avl = gpr_avl_add(avl, box(596), box(2226), nullptr); - avl = remove_int(avl, 82); - avl = remove_int(avl, 686); - avl = remove_int(avl, 933); - avl = remove_int(avl, 42); - avl = remove_int(avl, 340); - avl = gpr_avl_add(avl, box(126), box(2232), nullptr); - avl = gpr_avl_add(avl, box(493), box(2233), nullptr); - avl = gpr_avl_add(avl, box(839), box(2234), nullptr); - avl = remove_int(avl, 774); - avl = gpr_avl_add(avl, box(337), box(2236), nullptr); - avl = remove_int(avl, 322); - avl = gpr_avl_add(avl, box(16), box(2238), nullptr); - avl = remove_int(avl, 73); - avl = remove_int(avl, 85); - avl = remove_int(avl, 191); - avl = remove_int(avl, 541); - avl = gpr_avl_add(avl, box(704), box(2243), nullptr); - avl = remove_int(avl, 767); - avl = remove_int(avl, 1006); - avl = remove_int(avl, 844); - avl = remove_int(avl, 742); - avl = gpr_avl_add(avl, box(48), box(2248), nullptr); - avl = gpr_avl_add(avl, box(138), box(2249), nullptr); - avl = gpr_avl_add(avl, box(437), box(2250), nullptr); - avl = gpr_avl_add(avl, box(275), box(2251), nullptr); - avl = remove_int(avl, 520); - avl = gpr_avl_add(avl, box(1019), box(2253), nullptr); - avl = remove_int(avl, 955); - avl = gpr_avl_add(avl, box(270), box(2255), nullptr); - avl = remove_int(avl, 680); - avl = remove_int(avl, 698); - avl = gpr_avl_add(avl, box(735), box(2258), nullptr); - avl = gpr_avl_add(avl, box(400), box(2259), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(263), box(2261), nullptr); - avl = remove_int(avl, 704); - avl = gpr_avl_add(avl, box(757), box(2263), nullptr); - avl = remove_int(avl, 194); - avl = remove_int(avl, 616); - avl = remove_int(avl, 784); - avl = gpr_avl_add(avl, box(382), box(2267), nullptr); - avl = gpr_avl_add(avl, box(464), box(2268), nullptr); - avl = gpr_avl_add(avl, box(817), box(2269), nullptr); - avl = remove_int(avl, 445); - avl = gpr_avl_add(avl, box(412), box(2271), nullptr); - avl = remove_int(avl, 525); - avl = gpr_avl_add(avl, box(299), box(2273), nullptr); - avl = gpr_avl_add(avl, box(464), box(2274), nullptr); - avl = gpr_avl_add(avl, box(715), box(2275), nullptr); - avl = remove_int(avl, 58); - avl = remove_int(avl, 218); - avl = gpr_avl_add(avl, box(961), box(2278), nullptr); - avl = gpr_avl_add(avl, box(491), box(2279), nullptr); - avl = remove_int(avl, 846); - avl = gpr_avl_add(avl, box(762), box(2281), nullptr); - avl = remove_int(avl, 974); - avl = remove_int(avl, 887); - avl = gpr_avl_add(avl, box(498), box(2284), nullptr); - avl = remove_int(avl, 810); - avl = remove_int(avl, 743); - avl = remove_int(avl, 22); - avl = remove_int(avl, 284); - avl = gpr_avl_add(avl, box(482), box(2289), nullptr); - avl = gpr_avl_add(avl, box(1021), box(2290), nullptr); - avl = remove_int(avl, 155); - avl = remove_int(avl, 128); - avl = gpr_avl_add(avl, box(819), box(2293), nullptr); - avl = gpr_avl_add(avl, box(324), box(2294), nullptr); - avl = remove_int(avl, 196); - avl = remove_int(avl, 370); - avl = remove_int(avl, 753); - avl = remove_int(avl, 56); - avl = remove_int(avl, 735); - avl = gpr_avl_add(avl, box(272), box(2300), nullptr); - avl = gpr_avl_add(avl, box(474), box(2301), nullptr); - avl = gpr_avl_add(avl, box(719), box(2302), nullptr); - avl = gpr_avl_add(avl, box(236), box(2303), nullptr); - avl = remove_int(avl, 818); - avl = gpr_avl_add(avl, box(727), box(2305), nullptr); - avl = remove_int(avl, 892); - avl = remove_int(avl, 871); - avl = remove_int(avl, 231); - avl = gpr_avl_add(avl, box(62), box(2309), nullptr); - avl = gpr_avl_add(avl, box(953), box(2310), nullptr); - avl = remove_int(avl, 701); - avl = gpr_avl_add(avl, box(193), box(2312), nullptr); - avl = remove_int(avl, 619); - avl = remove_int(avl, 22); - avl = remove_int(avl, 804); - avl = remove_int(avl, 851); - avl = gpr_avl_add(avl, box(286), box(2317), nullptr); - avl = gpr_avl_add(avl, box(751), box(2318), nullptr); - avl = remove_int(avl, 525); - avl = gpr_avl_add(avl, box(217), box(2320), nullptr); - avl = remove_int(avl, 336); - avl = gpr_avl_add(avl, box(86), box(2322), nullptr); - avl = gpr_avl_add(avl, box(81), box(2323), nullptr); - avl = gpr_avl_add(avl, box(850), box(2324), nullptr); - avl = remove_int(avl, 872); - avl = gpr_avl_add(avl, box(402), box(2326), nullptr); - avl = gpr_avl_add(avl, box(54), box(2327), nullptr); - avl = gpr_avl_add(avl, box(980), box(2328), nullptr); - avl = gpr_avl_add(avl, box(845), box(2329), nullptr); - avl = remove_int(avl, 1004); - avl = remove_int(avl, 273); - avl = remove_int(avl, 879); - avl = gpr_avl_add(avl, box(354), box(2333), nullptr); - avl = gpr_avl_add(avl, box(58), box(2334), nullptr); - avl = gpr_avl_add(avl, box(127), box(2335), nullptr); - avl = remove_int(avl, 84); - avl = gpr_avl_add(avl, box(360), box(2337), nullptr); - avl = remove_int(avl, 648); - avl = remove_int(avl, 488); - avl = remove_int(avl, 585); - avl = remove_int(avl, 230); - avl = gpr_avl_add(avl, box(887), box(2342), nullptr); - avl = remove_int(avl, 558); - avl = remove_int(avl, 958); - avl = gpr_avl_add(avl, box(822), box(2345), nullptr); - avl = remove_int(avl, 1004); - avl = remove_int(avl, 747); - avl = gpr_avl_add(avl, box(631), box(2348), nullptr); - avl = gpr_avl_add(avl, box(442), box(2349), nullptr); - avl = remove_int(avl, 957); - avl = remove_int(avl, 964); - avl = gpr_avl_add(avl, box(10), box(2352), nullptr); - avl = remove_int(avl, 189); - avl = gpr_avl_add(avl, box(742), box(2354), nullptr); - avl = remove_int(avl, 108); - avl = gpr_avl_add(avl, box(1014), box(2356), nullptr); - avl = remove_int(avl, 266); - avl = remove_int(avl, 623); - avl = remove_int(avl, 697); - avl = gpr_avl_add(avl, box(180), box(2360), nullptr); - avl = remove_int(avl, 472); - avl = gpr_avl_add(avl, box(567), box(2362), nullptr); - avl = remove_int(avl, 1020); - avl = remove_int(avl, 273); - avl = gpr_avl_add(avl, box(864), box(2365), nullptr); - avl = gpr_avl_add(avl, box(1009), box(2366), nullptr); - avl = remove_int(avl, 224); - avl = remove_int(avl, 81); - avl = gpr_avl_add(avl, box(653), box(2369), nullptr); - avl = remove_int(avl, 67); - avl = remove_int(avl, 102); - avl = remove_int(avl, 76); - avl = remove_int(avl, 935); - avl = remove_int(avl, 169); - avl = remove_int(avl, 232); - avl = remove_int(avl, 79); - avl = gpr_avl_add(avl, box(509), box(2377), nullptr); - avl = remove_int(avl, 900); - avl = remove_int(avl, 822); - avl = remove_int(avl, 945); - avl = remove_int(avl, 356); - avl = gpr_avl_add(avl, box(443), box(2382), nullptr); - avl = gpr_avl_add(avl, box(925), box(2383), nullptr); - avl = remove_int(avl, 994); - avl = remove_int(avl, 324); - avl = gpr_avl_add(avl, box(291), box(2386), nullptr); - avl = remove_int(avl, 94); - avl = remove_int(avl, 795); - avl = remove_int(avl, 42); - avl = gpr_avl_add(avl, box(613), box(2390), nullptr); - avl = remove_int(avl, 289); - avl = gpr_avl_add(avl, box(980), box(2392), nullptr); - avl = remove_int(avl, 316); - avl = gpr_avl_add(avl, box(281), box(2394), nullptr); - avl = gpr_avl_add(avl, box(1006), box(2395), nullptr); - avl = remove_int(avl, 776); - avl = gpr_avl_add(avl, box(108), box(2397), nullptr); - avl = gpr_avl_add(avl, box(918), box(2398), nullptr); - avl = remove_int(avl, 721); - avl = remove_int(avl, 563); - avl = gpr_avl_add(avl, box(925), box(2401), nullptr); - avl = remove_int(avl, 448); - avl = remove_int(avl, 198); - avl = remove_int(avl, 1); - avl = gpr_avl_add(avl, box(160), box(2405), nullptr); - avl = remove_int(avl, 515); - avl = gpr_avl_add(avl, box(284), box(2407), nullptr); - avl = gpr_avl_add(avl, box(225), box(2408), nullptr); - avl = remove_int(avl, 304); - avl = gpr_avl_add(avl, box(714), box(2410), nullptr); - avl = gpr_avl_add(avl, box(708), box(2411), nullptr); - avl = gpr_avl_add(avl, box(624), box(2412), nullptr); - avl = remove_int(avl, 662); - avl = remove_int(avl, 825); - avl = remove_int(avl, 383); - avl = remove_int(avl, 381); - avl = gpr_avl_add(avl, box(194), box(2417), nullptr); - avl = remove_int(avl, 280); - avl = remove_int(avl, 25); - avl = remove_int(avl, 633); - avl = gpr_avl_add(avl, box(897), box(2421), nullptr); - avl = remove_int(avl, 636); - avl = remove_int(avl, 596); - avl = remove_int(avl, 757); - avl = remove_int(avl, 343); - avl = remove_int(avl, 162); - avl = remove_int(avl, 913); - avl = remove_int(avl, 843); - avl = remove_int(avl, 280); - avl = remove_int(avl, 911); - avl = gpr_avl_add(avl, box(1008), box(2431), nullptr); - avl = remove_int(avl, 948); - avl = remove_int(avl, 74); - avl = remove_int(avl, 571); - avl = gpr_avl_add(avl, box(486), box(2435), nullptr); - avl = gpr_avl_add(avl, box(285), box(2436), nullptr); - avl = remove_int(avl, 304); - avl = remove_int(avl, 516); - avl = gpr_avl_add(avl, box(758), box(2439), nullptr); - avl = gpr_avl_add(avl, box(776), box(2440), nullptr); - avl = remove_int(avl, 696); - avl = gpr_avl_add(avl, box(104), box(2442), nullptr); - avl = gpr_avl_add(avl, box(700), box(2443), nullptr); - avl = gpr_avl_add(avl, box(114), box(2444), nullptr); - avl = gpr_avl_add(avl, box(567), box(2445), nullptr); - avl = remove_int(avl, 620); - avl = gpr_avl_add(avl, box(270), box(2447), nullptr); - avl = remove_int(avl, 730); - avl = gpr_avl_add(avl, box(749), box(2449), nullptr); - avl = gpr_avl_add(avl, box(443), box(2450), nullptr); - avl = remove_int(avl, 457); - avl = gpr_avl_add(avl, box(571), box(2452), nullptr); - avl = gpr_avl_add(avl, box(626), box(2453), nullptr); - avl = remove_int(avl, 638); - avl = remove_int(avl, 313); - - gpr_avl_unref(avl, nullptr); -} - -static void test_stress(int amount_of_stress) { - int added[1024]; - int i, j; - int deletions = 0; - gpr_avl avl; - - unsigned seed = (unsigned)time(nullptr); - - gpr_log(GPR_DEBUG, "test_stress amount=%d seed=%u", amount_of_stress, seed); - - srand((unsigned)time(nullptr)); - avl = gpr_avl_create(&int_int_vtable); - - memset(added, 0, sizeof(added)); - - for (i = 1; deletions < amount_of_stress; i++) { - int idx = rand() % (int)GPR_ARRAY_SIZE(added); - GPR_ASSERT(i); - if (rand() < RAND_MAX / 2) { - added[idx] = i; - printf("avl = gpr_avl_add(avl, box(%d), box(%d), NULL); /* d=%d */\n", - idx, i, deletions); - avl = gpr_avl_add(avl, box(idx), box(i), nullptr); - } else { - deletions += (added[idx] != 0); - added[idx] = 0; - printf("avl = remove_int(avl, %d); /* d=%d */\n", idx, deletions); - avl = remove_int(avl, idx); - } - for (j = 0; j < (int)GPR_ARRAY_SIZE(added); j++) { - if (added[j] != 0) { - check_get(avl, j, added[j]); - } else { - check_negget(avl, j); - } - } - } - - gpr_avl_unref(avl, nullptr); -} - -int main(int argc, char* argv[]) { - grpc_test_init(argc, argv); - - test_get(); - test_ll(); - test_lr(); - test_rr(); - test_rl(); - test_unbalanced(); - test_replace(); - test_remove(); - test_badcase1(); - test_badcase2(); - test_badcase3(); - test_stress(10); - - return 0; -} diff --git a/test/core/gpr/cpu_test.cc b/test/core/gpr/cpu_test.cc index 87cdc0fb50..46a168665c 100644 --- a/test/core/gpr/cpu_test.cc +++ b/test/core/gpr/cpu_test.cc @@ -62,7 +62,7 @@ struct cpu_test { }; static void worker_thread(void* arg) { - struct cpu_test* ct = (struct cpu_test*)arg; + struct cpu_test* ct = static_cast<struct cpu_test*>(arg); uint32_t cpu; unsigned r = 12345678; unsigned i, j; @@ -103,7 +103,7 @@ static void cpu_test(void) { gpr_thd_id thd; ct.ncores = gpr_cpu_num_cores(); GPR_ASSERT(ct.ncores > 0); - ct.nthreads = (int)ct.ncores * 3; + ct.nthreads = static_cast<int>(ct.ncores) * 3; ct.used = static_cast<int*>(gpr_malloc(ct.ncores * sizeof(int))); memset(ct.used, 0, ct.ncores * sizeof(int)); gpr_mu_init(&ct.mu); diff --git a/test/core/gpr/host_port_test.cc b/test/core/gpr/host_port_test.cc index 42dd56524f..b5d88b2b01 100644 --- a/test/core/gpr/host_port_test.cc +++ b/test/core/gpr/host_port_test.cc @@ -19,8 +19,9 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> + +#include "src/core/lib/gpr/host_port.h" #include "test/core/util/test_config.h" static void join_host_port_expect(const char* host, int port, diff --git a/test/core/gpr/mpscq_test.cc b/test/core/gpr/mpscq_test.cc index 5a8177543c..333390e928 100644 --- a/test/core/gpr/mpscq_test.cc +++ b/test/core/gpr/mpscq_test.cc @@ -24,7 +24,8 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/util/test_config.h" typedef struct test_node { @@ -48,7 +49,7 @@ static void test_serial(void) { gpr_mpscq_push(&q, &new_node(i, nullptr)->node); } for (size_t i = 0; i < 10000000; i++) { - test_node* n = (test_node*)gpr_mpscq_pop(&q); + test_node* n = reinterpret_cast<test_node*>(gpr_mpscq_pop(&q)); GPR_ASSERT(n); GPR_ASSERT(n->i == i); gpr_free(n); @@ -96,7 +97,7 @@ static void test_mt(void) { while ((n = gpr_mpscq_pop(&q)) == nullptr) { spins++; } - test_node* tn = (test_node*)n; + test_node* tn = reinterpret_cast<test_node*>(n); GPR_ASSERT(*tn->ctr == tn->i - 1); *tn->ctr = tn->i; if (tn->i == THREAD_ITERATIONS) num_done++; @@ -133,7 +134,7 @@ static void pull_thread(void* arg) { while ((n = gpr_mpscq_pop(pa->q)) == nullptr) { pa->spins++; } - test_node* tn = (test_node*)n; + test_node* tn = reinterpret_cast<test_node*>(n); GPR_ASSERT(*tn->ctr == tn->i - 1); *tn->ctr = tn->i; if (tn->i == THREAD_ITERATIONS) pa->num_done++; diff --git a/test/core/gpr/murmur_hash_test.cc b/test/core/gpr/murmur_hash_test.cc index d920dd3f95..2d2fa72cfb 100644 --- a/test/core/gpr/murmur_hash_test.cc +++ b/test/core/gpr/murmur_hash_test.cc @@ -42,8 +42,8 @@ static void verification_test(hash_func hash, uint32_t expected) { the seed */ for (i = 0; i < 256; i++) { - key[i] = (uint8_t)i; - hashes[i] = hash(key, i, (uint32_t)(256u - i)); + key[i] = static_cast<uint8_t>(i); + hashes[i] = hash(key, i, static_cast<uint32_t>(256u - i)); } /* Then hash the result array */ diff --git a/test/core/gpr/spinlock_test.cc b/test/core/gpr/spinlock_test.cc index 77e3dfbede..cd6de69126 100644 --- a/test/core/gpr/spinlock_test.cc +++ b/test/core/gpr/spinlock_test.cc @@ -46,7 +46,7 @@ static struct test* test_new(int threads, int64_t iterations, int incr_step) { struct test* m = static_cast<struct test*>(gpr_malloc(sizeof(*m))); m->thread_count = threads; m->threads = static_cast<gpr_thd_id*>( - gpr_malloc(sizeof(*m->threads) * (size_t)threads)); + gpr_malloc(sizeof(*m->threads) * static_cast<size_t>(threads))); m->iterations = iterations; m->counter = 0; m->thread_count = 0; @@ -93,27 +93,30 @@ static void test(const char* name, void (*body)(void* m), int timeout_s, gpr_timespec start = gpr_now(GPR_CLOCK_REALTIME); gpr_timespec time_taken; gpr_timespec deadline = gpr_time_add( - start, gpr_time_from_micros((int64_t)timeout_s * 1000000, GPR_TIMESPAN)); + start, gpr_time_from_micros(static_cast<int64_t>(timeout_s) * 1000000, + GPR_TIMESPAN)); fprintf(stderr, "%s:", name); fflush(stderr); while (gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), deadline) < 0) { if (iterations < INT64_MAX / 2) iterations <<= 1; - fprintf(stderr, " %ld", (long)iterations); + fprintf(stderr, " %ld", static_cast<long>(iterations)); fflush(stderr); m = test_new(10, iterations, incr_step); test_create_threads(m, body); test_wait(m); if (m->counter != m->thread_count * m->iterations * m->incr_step) { fprintf(stderr, "counter %ld threads %d iterations %ld\n", - (long)m->counter, m->thread_count, (long)m->iterations); + static_cast<long>(m->counter), m->thread_count, + static_cast<long>(m->iterations)); fflush(stderr); GPR_ASSERT(0); } test_destroy(m); } time_taken = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), start); - fprintf(stderr, " done %lld.%09d s\n", (long long)time_taken.tv_sec, - (int)time_taken.tv_nsec); + fprintf(stderr, " done %lld.%09d s\n", + static_cast<long long>(time_taken.tv_sec), + static_cast<int>(time_taken.tv_nsec)); fflush(stderr); } diff --git a/test/core/gpr/string_test.cc b/test/core/gpr/string_test.cc index 57068eb2c9..9f3b312465 100644 --- a/test/core/gpr/string_test.cc +++ b/test/core/gpr/string_test.cc @@ -26,7 +26,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> + #include "test/core/util/test_config.h" #define LOG_TEST_NAME(x) gpr_log(GPR_INFO, "%s", x) diff --git a/test/core/gpr/sync_test.cc b/test/core/gpr/sync_test.cc index 768f96d093..39ff8852b6 100644 --- a/test/core/gpr/sync_test.cc +++ b/test/core/gpr/sync_test.cc @@ -236,11 +236,12 @@ static void test(const char* name, void (*body)(void* m), gpr_timespec start = gpr_now(GPR_CLOCK_REALTIME); gpr_timespec time_taken; gpr_timespec deadline = gpr_time_add( - start, gpr_time_from_micros((int64_t)timeout_s * 1000000, GPR_TIMESPAN)); + start, gpr_time_from_micros(static_cast<int64_t>(timeout_s) * 1000000, + GPR_TIMESPAN)); fprintf(stderr, "%s:", name); fflush(stderr); while (gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), deadline) < 0) { - fprintf(stderr, " %ld", (long)iterations); + fprintf(stderr, " %ld", static_cast<long>(iterations)); fflush(stderr); m = test_new(10, iterations, incr_step); if (extra != nullptr) { @@ -252,7 +253,8 @@ static void test(const char* name, void (*body)(void* m), test_wait(m); if (m->counter != m->threads * m->iterations * m->incr_step) { fprintf(stderr, "counter %ld threads %d iterations %ld\n", - (long)m->counter, m->threads, (long)m->iterations); + static_cast<long>(m->counter), m->threads, + static_cast<long>(m->iterations)); fflush(stderr); GPR_ASSERT(0); } @@ -260,8 +262,9 @@ static void test(const char* name, void (*body)(void* m), iterations <<= 1; } time_taken = gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), start); - fprintf(stderr, " done %lld.%09d s\n", (long long)time_taken.tv_sec, - (int)time_taken.tv_nsec); + fprintf(stderr, " done %lld.%09d s\n", + static_cast<long long>(time_taken.tv_sec), + static_cast<int>(time_taken.tv_nsec)); fflush(stderr); } diff --git a/test/core/gpr/time_test.cc b/test/core/gpr/time_test.cc index b2b4dce58e..ef7a961d0a 100644 --- a/test/core/gpr/time_test.cc +++ b/test/core/gpr/time_test.cc @@ -29,7 +29,7 @@ #include "test/core/util/test_config.h" static void to_fp(void* arg, const char* buf, size_t len) { - fwrite(buf, 1, len, (FILE*)arg); + fwrite(buf, 1, len, static_cast<FILE*>(arg)); } /* Convert gpr_intmax x to ascii base b (2..16), and write with diff --git a/test/core/gpr/tls_test.cc b/test/core/gpr/tls_test.cc index 743b10f090..1ef253ed6f 100644 --- a/test/core/gpr/tls_test.cc +++ b/test/core/gpr/tls_test.cc @@ -21,9 +21,10 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/thd.h> -#include <grpc/support/tls.h> #include <stdio.h> #include <stdlib.h> + +#include "src/core/lib/gpr/tls.h" #include "test/core/util/test_config.h" #define NUM_THREADS 100 diff --git a/test/core/gpr/useful_test.cc b/test/core/gpr/useful_test.cc index 2f86010d77..619c800c4d 100644 --- a/test/core/gpr/useful_test.cc +++ b/test/core/gpr/useful_test.cc @@ -18,7 +18,8 @@ #include <grpc/support/log.h> #include <grpc/support/port_platform.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/util/test_config.h" int main(int argc, char** argv) { diff --git a/test/core/gprpp/orphanable_test.cc b/test/core/gprpp/orphanable_test.cc index ff2f6d8bc2..ad6b9ac867 100644 --- a/test/core/gprpp/orphanable_test.cc +++ b/test/core/gprpp/orphanable_test.cc @@ -58,18 +58,19 @@ TEST(MakeOrphanable, WithParameters) { EXPECT_EQ(5, foo->value()); } -class Bar : public InternallyRefCounted { +class Bar : public InternallyRefCounted<Bar> { public: Bar() : Bar(0) {} explicit Bar(int value) : value_(value) {} void Orphan() override { Unref(); } int value() const { return value_; } - void StartWork() { Ref(); } - void FinishWork() { Unref(); } + void StartWork() { self_ref_ = Ref(); } + void FinishWork() { self_ref_.reset(); } private: int value_; + RefCountedPtr<Bar> self_ref_; }; TEST(OrphanablePtr, InternallyRefCounted) { @@ -82,19 +83,24 @@ TEST(OrphanablePtr, InternallyRefCounted) { // things build properly in both debug and non-debug cases. DebugOnlyTraceFlag baz_tracer(true, "baz"); -class Baz : public InternallyRefCountedWithTracing { +class Baz : public InternallyRefCountedWithTracing<Baz> { public: Baz() : Baz(0) {} explicit Baz(int value) - : InternallyRefCountedWithTracing(&baz_tracer), value_(value) {} + : InternallyRefCountedWithTracing<Baz>(&baz_tracer), value_(value) {} void Orphan() override { Unref(); } int value() const { return value_; } - void StartWork() { Ref(DEBUG_LOCATION, "work"); } - void FinishWork() { Unref(DEBUG_LOCATION, "work"); } + void StartWork() { self_ref_ = Ref(DEBUG_LOCATION, "work"); } + void FinishWork() { + // This is a little ugly, but it makes the logged ref and unref match up. + self_ref_.release(); + Unref(DEBUG_LOCATION, "work"); + } private: int value_; + RefCountedPtr<Baz> self_ref_; }; TEST(OrphanablePtr, InternallyRefCountedWithTracing) { diff --git a/test/core/gprpp/ref_counted_ptr_test.cc b/test/core/gprpp/ref_counted_ptr_test.cc index f1f13f3183..2e398a7722 100644 --- a/test/core/gprpp/ref_counted_ptr_test.cc +++ b/test/core/gprpp/ref_counted_ptr_test.cc @@ -30,7 +30,7 @@ namespace grpc_core { namespace testing { namespace { -class Foo : public RefCounted { +class Foo : public RefCounted<Foo> { public: Foo() : value_(0) {} @@ -163,14 +163,15 @@ TEST(MakeRefCounted, Args) { TraceFlag foo_tracer(true, "foo"); -class FooWithTracing : public RefCountedWithTracing { +class FooWithTracing : public RefCountedWithTracing<FooWithTracing> { public: FooWithTracing() : RefCountedWithTracing(&foo_tracer) {} }; TEST(RefCountedPtr, RefCountedWithTracing) { RefCountedPtr<FooWithTracing> foo(New<FooWithTracing>()); - foo->Ref(DEBUG_LOCATION, "foo"); + RefCountedPtr<FooWithTracing> foo2 = foo->Ref(DEBUG_LOCATION, "foo"); + foo2.release(); foo->Unref(DEBUG_LOCATION, "foo"); } diff --git a/test/core/gprpp/ref_counted_test.cc b/test/core/gprpp/ref_counted_test.cc index b1b0fee5c0..f85a2e4675 100644 --- a/test/core/gprpp/ref_counted_test.cc +++ b/test/core/gprpp/ref_counted_test.cc @@ -27,7 +27,7 @@ namespace grpc_core { namespace testing { namespace { -class Foo : public RefCounted { +class Foo : public RefCounted<Foo> { public: Foo() {} }; @@ -39,7 +39,8 @@ TEST(RefCounted, Basic) { TEST(RefCounted, ExtraRef) { Foo* foo = New<Foo>(); - foo->Ref(); + RefCountedPtr<Foo> foop = foo->Ref(); + foop.release(); foo->Unref(); foo->Unref(); } @@ -48,17 +49,19 @@ TEST(RefCounted, ExtraRef) { // things build properly in both debug and non-debug cases. DebugOnlyTraceFlag foo_tracer(true, "foo"); -class FooWithTracing : public RefCountedWithTracing { +class FooWithTracing : public RefCountedWithTracing<FooWithTracing> { public: FooWithTracing() : RefCountedWithTracing(&foo_tracer) {} }; TEST(RefCountedWithTracing, Basic) { FooWithTracing* foo = New<FooWithTracing>(); - foo->Ref(DEBUG_LOCATION, "extra_ref"); + RefCountedPtr<FooWithTracing> foop = foo->Ref(DEBUG_LOCATION, "extra_ref"); + foop.release(); foo->Unref(DEBUG_LOCATION, "extra_ref"); // Can use the no-argument methods, too. - foo->Ref(); + foop = foo->Ref(); + foop.release(); foo->Unref(); foo->Unref(DEBUG_LOCATION, "original_ref"); } diff --git a/test/core/handshake/client_ssl.cc b/test/core/handshake/client_ssl.cc index 2302e3da2f..088df3845e 100644 --- a/test/core/handshake/client_ssl.cc +++ b/test/core/handshake/client_ssl.cc @@ -68,7 +68,7 @@ static int create_socket(int* out_port) { return -1; } - if (bind(s, (struct sockaddr*)&addr, sizeof(addr)) < 0) { + if (bind(s, reinterpret_cast<struct sockaddr*>(&addr), sizeof(addr)) < 0) { perror("Unable to bind"); gpr_log(GPR_ERROR, "%s", "Unable to bind to any port"); close(s); @@ -82,7 +82,8 @@ static int create_socket(int* out_port) { } addr_len = sizeof(addr); - if (getsockname(s, (struct sockaddr*)&addr, &addr_len) != 0 || + if (getsockname(s, reinterpret_cast<struct sockaddr*>(&addr), &addr_len) != + 0 || addr_len > sizeof(addr)) { perror("getsockname"); gpr_log(GPR_ERROR, "%s", "Unable to get socket local address"); @@ -98,19 +99,19 @@ static int create_socket(int* out_port) { // SSL_CTX_set_alpn_select_cb. static int alpn_select_cb(SSL* ssl, const uint8_t** out, uint8_t* out_len, const uint8_t* in, unsigned in_len, void* arg) { - const uint8_t* alpn_preferred = (const uint8_t*)arg; + const uint8_t* alpn_preferred = static_cast<const uint8_t*>(arg); *out = alpn_preferred; - *out_len = (uint8_t)strlen((char*)alpn_preferred); + *out_len = static_cast<uint8_t>(strlen((char*)alpn_preferred)); // Validate that the ALPN list includes "h2" and "grpc-exp", that "grpc-exp" // precedes "h2". bool grpc_exp_seen = false; bool h2_seen = false; - const char* inp = (const char*)in; + const char* inp = reinterpret_cast<const char*>(in); const char* in_end = inp + in_len; while (inp < in_end) { - const size_t length = (size_t)*inp++; + const size_t length = static_cast<size_t>(*inp++); if (length == strlen("grpc-exp") && strncmp(inp, "grpc-exp", length) == 0) { grpc_exp_seen = true; GPR_ASSERT(!h2_seen); @@ -133,7 +134,7 @@ static int alpn_select_cb(SSL* ssl, const uint8_t** out, uint8_t* out_len, // https://wiki.openssl.org/index.php/Simple_TLS_Server and the gRPC core // internals in src/core/tsi/ssl_transport_security.c. static void server_thread(void* arg) { - const server_args* args = (server_args*)arg; + const server_args* args = static_cast<server_args*>(arg); SSL_load_error_strings(); OpenSSL_add_ssl_algorithms(); @@ -175,7 +176,8 @@ static void server_thread(void* arg) { gpr_log(GPR_INFO, "Server listening"); struct sockaddr_in addr; socklen_t len = sizeof(addr); - const int client = accept(sock, (struct sockaddr*)&addr, &len); + const int client = + accept(sock, reinterpret_cast<struct sockaddr*>(&addr), &len); if (client < 0) { perror("Unable to accept"); abort(); @@ -243,9 +245,12 @@ static bool client_ssl_test(char* server_alpn_preferred) { grpc_load_file(SSL_CERT_PATH, 1, &cert_slice))); GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", grpc_load_file(SSL_KEY_PATH, 1, &key_slice))); - const char* ca_cert = (const char*)GRPC_SLICE_START_PTR(ca_slice); - pem_key_cert_pair.private_key = (const char*)GRPC_SLICE_START_PTR(key_slice); - pem_key_cert_pair.cert_chain = (const char*)GRPC_SLICE_START_PTR(cert_slice); + const char* ca_cert = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(ca_slice); + pem_key_cert_pair.private_key = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(key_slice); + pem_key_cert_pair.cert_chain = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(cert_slice); grpc_channel_credentials* ssl_creds = grpc_ssl_credentials_create(ca_cert, &pem_key_cert_pair, nullptr); diff --git a/test/core/handshake/readahead_handshaker_server_ssl.cc b/test/core/handshake/readahead_handshaker_server_ssl.cc index 599e0e16e2..fa3ee0bc1e 100644 --- a/test/core/handshake/readahead_handshaker_server_ssl.cc +++ b/test/core/handshake/readahead_handshaker_server_ssl.cc @@ -67,7 +67,8 @@ const grpc_handshaker_vtable readahead_handshaker_vtable = { readahead_handshaker_do_handshake}; static grpc_handshaker* readahead_handshaker_create() { - grpc_handshaker* h = (grpc_handshaker*)gpr_zalloc(sizeof(grpc_handshaker)); + grpc_handshaker* h = + static_cast<grpc_handshaker*>(gpr_zalloc(sizeof(grpc_handshaker))); grpc_handshaker_init(&readahead_handshaker_vtable, h); return h; } diff --git a/test/core/handshake/server_ssl_common.cc b/test/core/handshake/server_ssl_common.cc index 0bf453a204..6f1a097dbd 100644 --- a/test/core/handshake/server_ssl_common.cc +++ b/test/core/handshake/server_ssl_common.cc @@ -48,7 +48,7 @@ static int create_socket(int port) { struct sockaddr_in addr; addr.sin_family = AF_INET; - addr.sin_port = htons((uint16_t)port); + addr.sin_port = htons(static_cast<uint16_t>(port)); addr.sin_addr.s_addr = htonl(INADDR_ANY); s = socket(AF_INET, SOCK_STREAM, 0); @@ -57,7 +57,7 @@ static int create_socket(int port) { return -1; } - if (connect(s, (struct sockaddr*)&addr, sizeof(addr)) < 0) { + if (connect(s, reinterpret_cast<struct sockaddr*>(&addr), sizeof(addr)) < 0) { perror("Unable to connect"); return -1; } @@ -67,7 +67,7 @@ static int create_socket(int port) { // Simple gRPC server. This listens until client_handshake_complete occurs. static void server_thread(void* arg) { - const int port = *(int*)arg; + const int port = *static_cast<int*>(arg); // Load key pair and establish server SSL credentials. grpc_ssl_pem_key_cert_pair pem_key_cert_pair; @@ -78,9 +78,12 @@ static void server_thread(void* arg) { grpc_load_file(SSL_CERT_PATH, 1, &cert_slice))); GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", grpc_load_file(SSL_KEY_PATH, 1, &key_slice))); - const char* ca_cert = (const char*)GRPC_SLICE_START_PTR(ca_slice); - pem_key_cert_pair.private_key = (const char*)GRPC_SLICE_START_PTR(key_slice); - pem_key_cert_pair.cert_chain = (const char*)GRPC_SLICE_START_PTR(cert_slice); + const char* ca_cert = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(ca_slice); + pem_key_cert_pair.private_key = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(key_slice); + pem_key_cert_pair.cert_chain = + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(cert_slice); grpc_server_credentials* ssl_creds = grpc_ssl_server_credentials_create( ca_cert, &pem_key_cert_pair, 1, 0, nullptr); @@ -176,13 +179,13 @@ bool server_ssl_test(const char* alpn_list[], unsigned int alpn_list_len, // wire format, see documentation for SSL_CTX_set_alpn_protos. unsigned int alpn_protos_len = alpn_list_len; for (unsigned int i = 0; i < alpn_list_len; ++i) { - alpn_protos_len += (unsigned int)strlen(alpn_list[i]); + alpn_protos_len += static_cast<unsigned int>(strlen(alpn_list[i])); } unsigned char* alpn_protos = static_cast<unsigned char*>(gpr_malloc(alpn_protos_len)); unsigned char* p = alpn_protos; for (unsigned int i = 0; i < alpn_list_len; ++i) { - const uint8_t len = (uint8_t)strlen(alpn_list[i]); + const uint8_t len = static_cast<uint8_t>(strlen(alpn_list[i])); *p++ = len; memcpy(p, alpn_list[i], len); p += len; @@ -217,8 +220,8 @@ bool server_ssl_test(const char* alpn_list[], unsigned int alpn_list_len, unsigned int alpn_selected_len; SSL_get0_alpn_selected(ssl, &alpn_selected, &alpn_selected_len); if (strlen(alpn_expected) != alpn_selected_len || - strncmp((const char*)alpn_selected, alpn_expected, alpn_selected_len) != - 0) { + strncmp(reinterpret_cast<const char*>(alpn_selected), alpn_expected, + alpn_selected_len) != 0) { gpr_log(GPR_ERROR, "Unexpected ALPN protocol preference"); success = false; } diff --git a/test/core/http/BUILD b/test/core/http/BUILD index a5ae6272db..be51ea0737 100644 --- a/test/core/http/BUILD +++ b/test/core/http/BUILD @@ -66,7 +66,12 @@ grpc_cc_test( name = "httpcli_test", srcs = ["httpcli_test.cc"], language = "C++", - data = ["test_server.py"], + data = [ + "python_wrapper.sh", + "test_server.py", + "//src/core/tsi/test_creds:server1.pem", + "//src/core/tsi/test_creds:server1.key" + ], deps = [ "//:gpr", "//:grpc", @@ -80,7 +85,13 @@ grpc_cc_test( name = "httpscli_test", srcs = ["httpscli_test.cc"], language = "C++", - data = ["test_server.py"], + data = [ + "python_wrapper.sh", + "test_server.py", + "//src/core/tsi/test_creds:ca.pem", + "//src/core/tsi/test_creds:server1.pem", + "//src/core/tsi/test_creds:server1.key" + ], deps = [ "//:gpr", "//:grpc", @@ -102,3 +113,16 @@ grpc_cc_test( "//test/core/util:grpc_test_util", ], ) + +grpc_cc_test( + name = "format_request_test", + srcs = ["format_request_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc", + "//test/core/end2end:ssl_test_data", + "//test/core/util:gpr_test_util", + "//test/core/util:grpc_test_util", + ], +) diff --git a/test/core/http/httpcli_test.cc b/test/core/http/httpcli_test.cc index 259e3aa463..346568fcf2 100644 --- a/test/core/http/httpcli_test.cc +++ b/test/core/http/httpcli_test.cc @@ -24,10 +24,11 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/subprocess.h> #include <grpc/support/sync.h> + #include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/port.h" +#include "test/core/util/subprocess.h" #include "test/core/util/test_config.h" static int g_done = 0; @@ -154,10 +155,17 @@ int main(int argc, char** argv) { int arg_shift = 0; /* figure out where we are */ char* root; - if (lslash) { - root = static_cast<char*>(gpr_malloc((size_t)(lslash - me + 1))); - memcpy(root, me, (size_t)(lslash - me)); - root[lslash - me] = 0; + if (lslash != nullptr) { + /* Hack for bazel target */ + if (static_cast<unsigned>(lslash - me) >= (sizeof("http") - 1) && + strncmp(me + (lslash - me) - sizeof("http") + 1, "http", + sizeof("http") - 1) == 0) { + lslash = me + (lslash - me) - sizeof("http"); + } + root = static_cast<char*>( + gpr_malloc(static_cast<size_t>(lslash - me + sizeof("/../..")))); + memcpy(root, me, static_cast<size_t>(lslash - me)); + memcpy(root + (lslash - me), "/../..", sizeof("/../..")); } else { root = gpr_strdup("."); } @@ -167,8 +175,8 @@ int main(int argc, char** argv) { args[0] = gpr_strdup(argv[1]); } else { arg_shift = 1; - gpr_asprintf(&args[0], "%s/../../tools/distrib/python_wrapper.sh", root); - gpr_asprintf(&args[1], "%s/../../test/core/http/test_server.py", root); + gpr_asprintf(&args[0], "%s/test/core/http/python_wrapper.sh", root); + gpr_asprintf(&args[1], "%s/test/core/http/test_server.py", root); } /* start the server */ diff --git a/test/core/http/httpscli_test.cc b/test/core/http/httpscli_test.cc index adf69f1b16..a38f306ef3 100644 --- a/test/core/http/httpscli_test.cc +++ b/test/core/http/httpscli_test.cc @@ -21,13 +21,16 @@ #include <string.h> #include <grpc/grpc.h> +#include <grpc/grpc_security_constants.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/subprocess.h> #include <grpc/support/sync.h> + +#include "src/core/lib/gpr/env.h" #include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/port.h" +#include "test/core/util/subprocess.h" #include "test/core/util/test_config.h" static int g_done = 0; @@ -152,10 +155,17 @@ int main(int argc, char** argv) { int arg_shift = 0; /* figure out where we are */ char* root; - if (lslash) { - root = static_cast<char*>(gpr_malloc((size_t)(lslash - me + 1))); - memcpy(root, me, (size_t)(lslash - me)); - root[lslash - me] = 0; + if (lslash != nullptr) { + /* Hack for bazel target */ + if (static_cast<unsigned>(lslash - me) >= (sizeof("http") - 1) && + strncmp(me + (lslash - me) - sizeof("http") + 1, "http", + sizeof("http") - 1) == 0) { + lslash = me + (lslash - me) - sizeof("http"); + } + root = static_cast<char*>( + gpr_malloc(static_cast<size_t>(lslash - me + sizeof("/../..")))); + memcpy(root, me, static_cast<size_t>(lslash - me)); + memcpy(root + (lslash - me), "/../..", sizeof("/../..")); } else { root = gpr_strdup("."); } @@ -165,10 +175,16 @@ int main(int argc, char** argv) { args[0] = gpr_strdup(argv[1]); } else { arg_shift = 1; - gpr_asprintf(&args[0], "%s/../../tools/distrib/python_wrapper.sh", root); - gpr_asprintf(&args[1], "%s/../../test/core/http/test_server.py", root); + gpr_asprintf(&args[0], "%s/test/core/http/python_wrapper.sh", root); + gpr_asprintf(&args[1], "%s/test/core/http/test_server.py", root); } + /* Set the environment variable for the SSL certificate file */ + char* pem_file; + gpr_asprintf(&pem_file, "%s/src/core/tsi/test_creds/ca.pem", root); + gpr_setenv(GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR, pem_file); + gpr_free(pem_file); + /* start the server */ args[1 + arg_shift] = const_cast<char*>("--port"); gpr_asprintf(&args[2 + arg_shift], "%d", port); diff --git a/test/core/http/parser_test.cc b/test/core/http/parser_test.cc index 18f19856bd..fe824f57fc 100644 --- a/test/core/http/parser_test.cc +++ b/test/core/http/parser_test.cc @@ -25,7 +25,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/util/slice_splitter.h" #include "test/core/util/test_config.h" diff --git a/test/core/http/python_wrapper.sh b/test/core/http/python_wrapper.sh new file mode 120000 index 0000000000..9ed6e3293f --- /dev/null +++ b/test/core/http/python_wrapper.sh @@ -0,0 +1 @@ +../../../tools/distrib/python_wrapper.sh
\ No newline at end of file diff --git a/test/core/iomgr/combiner_test.cc b/test/core/iomgr/combiner_test.cc index 891008c774..eb926cc620 100644 --- a/test/core/iomgr/combiner_test.cc +++ b/test/core/iomgr/combiner_test.cc @@ -22,8 +22,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "test/core/util/test_config.h" static void test_no_op(void) { diff --git a/test/core/iomgr/endpoint_pair_test.cc b/test/core/iomgr/endpoint_pair_test.cc index 90dd40d9c4..ad38076b51 100644 --- a/test/core/iomgr/endpoint_pair_test.cc +++ b/test/core/iomgr/endpoint_pair_test.cc @@ -21,7 +21,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "test/core/iomgr/endpoint_tests.h" #include "test/core/util/test_config.h" @@ -37,7 +38,7 @@ static grpc_endpoint_test_fixture create_fixture_endpoint_pair( grpc_arg a[1]; a[0].key = const_cast<char*>(GRPC_ARG_TCP_READ_CHUNK_SIZE); a[0].type = GRPC_ARG_INTEGER; - a[0].value.integer = (int)slice_size; + a[0].value.integer = static_cast<int>(slice_size); grpc_channel_args args = {GPR_ARRAY_SIZE(a), a}; grpc_endpoint_pair p = grpc_iomgr_create_endpoint_pair("test", &args); diff --git a/test/core/iomgr/endpoint_tests.cc b/test/core/iomgr/endpoint_tests.cc index 8ccae52067..8db8ac5ed6 100644 --- a/test/core/iomgr/endpoint_tests.cc +++ b/test/core/iomgr/endpoint_tests.cc @@ -25,8 +25,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/slice/slice_internal.h" #include "test/core/util/test_config.h" @@ -77,7 +77,8 @@ static void end_test(grpc_endpoint_test_config config) { config.clean_up(); } static grpc_slice* allocate_blocks(size_t num_bytes, size_t slice_size, size_t* num_blocks, uint8_t* current_data) { size_t nslices = num_bytes / slice_size + (num_bytes % slice_size ? 1 : 0); - grpc_slice* slices = (grpc_slice*)gpr_malloc(sizeof(grpc_slice) * nslices); + grpc_slice* slices = + static_cast<grpc_slice*>(gpr_malloc(sizeof(grpc_slice) * nslices)); size_t num_bytes_left = num_bytes; size_t i; size_t j; @@ -117,7 +118,7 @@ struct read_and_write_test_state { static void read_and_write_test_read_handler(void* data, grpc_error* error) { struct read_and_write_test_state* state = - (struct read_and_write_test_state*)data; + static_cast<struct read_and_write_test_state*>(data); state->bytes_read += count_slices( state->incoming.slices, state->incoming.count, &state->current_read_data); @@ -134,7 +135,7 @@ static void read_and_write_test_read_handler(void* data, grpc_error* error) { static void read_and_write_test_write_handler(void* data, grpc_error* error) { struct read_and_write_test_state* state = - (struct read_and_write_test_state*)data; + static_cast<struct read_and_write_test_state*>(data); grpc_slice* slices = nullptr; size_t nslices; @@ -246,7 +247,7 @@ static void read_and_write_test(grpc_endpoint_test_config config, static void inc_on_failure(void* arg, grpc_error* error) { gpr_mu_lock(g_mu); - *(int*)arg += (error != GRPC_ERROR_NONE); + *static_cast<int*>(arg) += (error != GRPC_ERROR_NONE); GPR_ASSERT(GRPC_LOG_IF_ERROR("kick", grpc_pollset_kick(g_pollset, nullptr))); gpr_mu_unlock(g_mu); } diff --git a/test/core/iomgr/error_test.cc b/test/core/iomgr/error_test.cc index 51f8af1957..064ce0a6b2 100644 --- a/test/core/iomgr/error_test.cc +++ b/test/core/iomgr/error_test.cc @@ -22,7 +22,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> #include <string.h> diff --git a/test/core/iomgr/ev_epollsig_linux_test.cc b/test/core/iomgr/ev_epollsig_linux_test.cc index 262470300e..5ae68d2e47 100644 --- a/test/core/iomgr/ev_epollsig_linux_test.cc +++ b/test/core/iomgr/ev_epollsig_linux_test.cc @@ -30,8 +30,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/thd.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/test_config.h" @@ -98,7 +98,7 @@ static void test_pollset_init(test_pollset* pollsets, int num_pollsets) { } static void destroy_pollset(void* p, grpc_error* error) { - grpc_pollset_destroy((grpc_pollset*)p); + grpc_pollset_destroy(static_cast<grpc_pollset*>(p)); } static void test_pollset_cleanup(test_pollset* pollsets, int num_pollsets) { diff --git a/test/core/iomgr/fd_posix_test.cc b/test/core/iomgr/fd_posix_test.cc index cf75517538..b81c73b2c0 100644 --- a/test/core/iomgr/fd_posix_test.cc +++ b/test/core/iomgr/fd_posix_test.cc @@ -78,7 +78,7 @@ static void create_test_socket(int port, int* socket_fd, sin->sin_family = AF_INET; sin->sin_addr.s_addr = htonl(0x7f000001); GPR_ASSERT(port >= 0 && port < 65536); - sin->sin_port = htons((uint16_t)port); + sin->sin_port = htons(static_cast<uint16_t>(port)); } /* Dummy gRPC callback */ @@ -196,7 +196,8 @@ static void listen_cb(void* arg, /*=sv_arg*/ return; } - fd = accept(grpc_fd_wrapped_fd(listen_em_fd), (struct sockaddr*)&ss, &slen); + fd = accept(grpc_fd_wrapped_fd(listen_em_fd), + reinterpret_cast<struct sockaddr*>(&ss), &slen); GPR_ASSERT(fd >= 0); GPR_ASSERT(fd < FD_SETSIZE); flags = fcntl(fd, F_GETFL, 0); @@ -335,7 +336,8 @@ static void client_start(client* cl, int port) { int fd; struct sockaddr_in sin; create_test_socket(port, &fd, &sin); - if (connect(fd, (struct sockaddr*)&sin, sizeof(sin)) == -1) { + if (connect(fd, reinterpret_cast<struct sockaddr*>(&sin), sizeof(sin)) == + -1) { if (errno == EINPROGRESS) { struct pollfd pfd; pfd.fd = fd; diff --git a/test/core/iomgr/pollset_set_test.cc b/test/core/iomgr/pollset_set_test.cc index 7d2f59bed4..0dc75a5f3f 100644 --- a/test/core/iomgr/pollset_set_test.cc +++ b/test/core/iomgr/pollset_set_test.cc @@ -27,8 +27,8 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/ev_posix.h" #include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/test_config.h" @@ -103,7 +103,7 @@ typedef struct test_fd { } test_fd; void on_readable(void* tfd, grpc_error* error) { - ((test_fd*)tfd)->is_on_readable_called = true; + (static_cast<test_fd*>(tfd))->is_on_readable_called = true; } static void reset_test_fd(test_fd* tfd) { diff --git a/test/core/iomgr/resolve_address_posix_test.cc b/test/core/iomgr/resolve_address_posix_test.cc index e36315333c..92d2338a02 100644 --- a/test/core/iomgr/resolve_address_posix_test.cc +++ b/test/core/iomgr/resolve_address_posix_test.cc @@ -27,8 +27,8 @@ #include <grpc/support/sync.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/executor.h" #include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/test_config.h" diff --git a/test/core/iomgr/resource_quota_test.cc b/test/core/iomgr/resource_quota_test.cc index 07682d2630..921a24ebf2 100644 --- a/test/core/iomgr/resource_quota_test.cc +++ b/test/core/iomgr/resource_quota_test.cc @@ -29,7 +29,7 @@ gpr_cv g_cv; static void inc_int_cb(void* a, grpc_error* error) { gpr_mu_lock(&g_mu); - ++*(int*)a; + ++*static_cast<int*>(a); gpr_cv_signal(&g_cv); gpr_mu_unlock(&g_mu); } @@ -44,7 +44,7 @@ static void assert_counter_becomes(int* ctr, int value) { } static void set_event_cb(void* a, grpc_error* error) { - gpr_event_set((gpr_event*)a, (void*)1); + gpr_event_set(static_cast<gpr_event*>(a), (void*)1); } grpc_closure* set_event(gpr_event* ev) { return GRPC_CLOSURE_CREATE(set_event_cb, ev, grpc_schedule_on_exec_ctx); diff --git a/test/core/iomgr/sockaddr_utils_test.cc b/test/core/iomgr/sockaddr_utils_test.cc index a445714851..32d2a384bd 100644 --- a/test/core/iomgr/sockaddr_utils_test.cc +++ b/test/core/iomgr/sockaddr_utils_test.cc @@ -33,7 +33,8 @@ static grpc_resolved_address make_addr4(const uint8_t* data, size_t data_len) { grpc_resolved_address resolved_addr4; - struct sockaddr_in* addr4 = (struct sockaddr_in*)resolved_addr4.addr; + struct sockaddr_in* addr4 = + reinterpret_cast<struct sockaddr_in*>(resolved_addr4.addr); memset(&resolved_addr4, 0, sizeof(resolved_addr4)); addr4->sin_family = AF_INET; GPR_ASSERT(data_len == sizeof(addr4->sin_addr.s_addr)); @@ -45,7 +46,8 @@ static grpc_resolved_address make_addr4(const uint8_t* data, size_t data_len) { static grpc_resolved_address make_addr6(const uint8_t* data, size_t data_len) { grpc_resolved_address resolved_addr6; - struct sockaddr_in6* addr6 = (struct sockaddr_in6*)resolved_addr6.addr; + struct sockaddr_in6* addr6 = + reinterpret_cast<struct sockaddr_in6*>(resolved_addr6.addr); memset(&resolved_addr6, 0, sizeof(resolved_addr6)); addr6->sin6_family = AF_INET6; GPR_ASSERT(data_len == sizeof(addr6->sin6_addr.s6_addr)); @@ -56,7 +58,8 @@ static grpc_resolved_address make_addr6(const uint8_t* data, size_t data_len) { } static void set_addr6_scope_id(grpc_resolved_address* addr, uint32_t scope_id) { - struct sockaddr_in6* addr6 = (struct sockaddr_in6*)addr->addr; + struct sockaddr_in6* addr6 = + reinterpret_cast<struct sockaddr_in6*>(addr->addr); GPR_ASSERT(addr6->sin6_family == AF_INET6); addr6->sin6_scope_id = scope_id; } @@ -143,7 +146,7 @@ static void test_sockaddr_is_wildcard(void) { port = -1; GPR_ASSERT(grpc_sockaddr_is_wildcard(&wild4, &port)); GPR_ASSERT(port == 555); - wild4_addr = (struct sockaddr_in*)&wild4.addr; + wild4_addr = reinterpret_cast<struct sockaddr_in*>(&wild4.addr); memset(&wild4_addr->sin_addr.s_addr, 0xbd, 1); GPR_ASSERT(!grpc_sockaddr_is_wildcard(&wild4, &port)); @@ -151,7 +154,7 @@ static void test_sockaddr_is_wildcard(void) { port = -1; GPR_ASSERT(grpc_sockaddr_is_wildcard(&wild6, &port)); GPR_ASSERT(port == 555); - wild6_addr = (struct sockaddr_in6*)&wild6.addr; + wild6_addr = reinterpret_cast<struct sockaddr_in6*>(&wild6.addr); memset(&wild6_addr->sin6_addr.s6_addr, 0xbd, 1); GPR_ASSERT(!grpc_sockaddr_is_wildcard(&wild6, &port)); @@ -159,7 +162,7 @@ static void test_sockaddr_is_wildcard(void) { port = -1; GPR_ASSERT(grpc_sockaddr_is_wildcard(&wild_mapped, &port)); GPR_ASSERT(port == 555); - wild_mapped_addr = (struct sockaddr_in6*)&wild_mapped.addr; + wild_mapped_addr = reinterpret_cast<struct sockaddr_in6*>(&wild_mapped.addr); memset(&wild_mapped_addr->sin6_addr.s6_addr, 0xbd, 1); GPR_ASSERT(!grpc_sockaddr_is_wildcard(&wild_mapped, &port)); @@ -234,7 +237,7 @@ static void test_sockaddr_to_string(void) { expect_sockaddr_uri("ipv6:[::fffe:c000:263]:12345", &input6); memset(&dummy, 0, sizeof(dummy)); - dummy_addr = (struct sockaddr*)dummy.addr; + dummy_addr = reinterpret_cast<struct sockaddr*>(dummy.addr); dummy_addr->sa_family = 123; expect_sockaddr_str("(sockaddr family=123)", &dummy, 0); expect_sockaddr_str("(sockaddr family=123)", &dummy, 1); @@ -260,7 +263,7 @@ static void test_sockaddr_set_get_port(void) { GPR_ASSERT(grpc_sockaddr_get_port(&input6) == 54321); memset(&dummy, 0, sizeof(dummy)); - dummy_addr = (struct sockaddr*)dummy.addr; + dummy_addr = reinterpret_cast<struct sockaddr*>(dummy.addr); dummy_addr->sa_family = 123; GPR_ASSERT(grpc_sockaddr_get_port(&dummy) == 0); GPR_ASSERT(grpc_sockaddr_set_port(&dummy, 1234) == 0); diff --git a/test/core/iomgr/socket_utils_test.cc b/test/core/iomgr/socket_utils_test.cc index 49c6f799e7..a21f3fac62 100644 --- a/test/core/iomgr/socket_utils_test.cc +++ b/test/core/iomgr/socket_utils_test.cc @@ -30,7 +30,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/socket_mutator.h" #include "test/core/util/test_config.h" @@ -42,7 +43,8 @@ struct test_socket_mutator { static bool mutate_fd(int fd, grpc_socket_mutator* mutator) { int newval; socklen_t intlen = sizeof(newval); - struct test_socket_mutator* m = (struct test_socket_mutator*)mutator; + struct test_socket_mutator* m = + reinterpret_cast<struct test_socket_mutator*>(mutator); if (0 != setsockopt(fd, IPPROTO_IP, IP_TOS, &m->option_value, sizeof(m->option_value))) { @@ -58,14 +60,17 @@ static bool mutate_fd(int fd, grpc_socket_mutator* mutator) { } static void destroy_test_mutator(grpc_socket_mutator* mutator) { - struct test_socket_mutator* m = (struct test_socket_mutator*)mutator; + struct test_socket_mutator* m = + reinterpret_cast<struct test_socket_mutator*>(mutator); gpr_free(m); } static int compare_test_mutator(grpc_socket_mutator* a, grpc_socket_mutator* b) { - struct test_socket_mutator* ma = (struct test_socket_mutator*)a; - struct test_socket_mutator* mb = (struct test_socket_mutator*)b; + struct test_socket_mutator* ma = + reinterpret_cast<struct test_socket_mutator*>(a); + struct test_socket_mutator* mb = + reinterpret_cast<struct test_socket_mutator*>(b); return GPR_ICMP(ma->option_value, mb->option_value); } @@ -116,7 +121,8 @@ int main(int argc, char** argv) { grpc_set_socket_with_mutator(sock, (grpc_socket_mutator*)&mutator))); mutator.option_value = -1; - err = grpc_set_socket_with_mutator(sock, (grpc_socket_mutator*)&mutator); + err = grpc_set_socket_with_mutator( + sock, reinterpret_cast<grpc_socket_mutator*>(&mutator)); GPR_ASSERT(err != GRPC_ERROR_NONE); GRPC_ERROR_UNREF(err); diff --git a/test/core/iomgr/tcp_client_posix_test.cc b/test/core/iomgr/tcp_client_posix_test.cc index 40a050ed9f..8a43170043 100644 --- a/test/core/iomgr/tcp_client_posix_test.cc +++ b/test/core/iomgr/tcp_client_posix_test.cc @@ -78,7 +78,8 @@ static void must_fail(void* arg, grpc_error* error) { void test_succeeds(void) { grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); int svr_fd; int r; int connections_complete_before; @@ -112,7 +113,8 @@ void test_succeeds(void) { /* await the connection */ do { resolved_addr.len = sizeof(addr); - r = accept(svr_fd, (struct sockaddr*)addr, (socklen_t*)&resolved_addr.len); + r = accept(svr_fd, reinterpret_cast<struct sockaddr*>(addr), + reinterpret_cast<socklen_t*>(&resolved_addr.len)); } while (r == -1 && errno == EINTR); GPR_ASSERT(r >= 0); close(r); @@ -136,7 +138,8 @@ void test_succeeds(void) { void test_fails(void) { grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); int connections_complete_before; grpc_closure done; grpc_core::ExecCtx exec_ctx; diff --git a/test/core/iomgr/tcp_posix_test.cc b/test/core/iomgr/tcp_posix_test.cc index f4acba8302..f4df6fca23 100644 --- a/test/core/iomgr/tcp_posix_test.cc +++ b/test/core/iomgr/tcp_posix_test.cc @@ -34,8 +34,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/slice/slice_internal.h" #include "test/core/iomgr/endpoint_tests.h" #include "test/core/util/test_config.h" @@ -74,7 +74,7 @@ static ssize_t fill_socket(int fd) { int i; unsigned char buf[256]; for (i = 0; i < 256; ++i) { - buf[i] = (uint8_t)i; + buf[i] = static_cast<uint8_t>(i); } do { write_bytes = write(fd, buf, 256); @@ -89,16 +89,16 @@ static ssize_t fill_socket(int fd) { static size_t fill_socket_partial(int fd, size_t bytes) { ssize_t write_bytes; size_t total_bytes = 0; - unsigned char* buf = (unsigned char*)gpr_malloc(bytes); + unsigned char* buf = static_cast<unsigned char*>(gpr_malloc(bytes)); unsigned i; for (i = 0; i < bytes; ++i) { - buf[i] = (uint8_t)(i % 256); + buf[i] = static_cast<uint8_t>(i % 256); } do { write_bytes = write(fd, buf, bytes - total_bytes); if (write_bytes > 0) { - total_bytes += (size_t)write_bytes; + total_bytes += static_cast<size_t>(write_bytes); } } while ((write_bytes >= 0 || errno == EINTR) && bytes > total_bytes); @@ -132,7 +132,8 @@ static size_t count_slices(grpc_slice* slices, size_t nslices, } static void read_cb(void* user_data, grpc_error* error) { - struct read_socket_state* state = (struct read_socket_state*)user_data; + struct read_socket_state* state = + static_cast<struct read_socket_state*>(user_data); size_t read_bytes; int current_data; @@ -172,7 +173,8 @@ static void read_test(size_t num_bytes, size_t slice_size) { grpc_arg a[1]; a[0].key = const_cast<char*>(GRPC_ARG_TCP_READ_CHUNK_SIZE); - a[0].type = GRPC_ARG_INTEGER, a[0].value.integer = (int)slice_size; + a[0].type = GRPC_ARG_INTEGER, + a[0].value.integer = static_cast<int>(slice_size); grpc_channel_args args = {GPR_ARRAY_SIZE(a), a}; ep = grpc_tcp_create(grpc_fd_create(sv[1], "read_test"), &args, "test"); grpc_endpoint_add_to_pollset(ep, g_pollset); @@ -222,7 +224,7 @@ static void large_read_test(size_t slice_size) { grpc_arg a[1]; a[0].key = const_cast<char*>(GRPC_ARG_TCP_READ_CHUNK_SIZE); a[0].type = GRPC_ARG_INTEGER; - a[0].value.integer = (int)slice_size; + a[0].value.integer = static_cast<int>(slice_size); grpc_channel_args args = {GPR_ARRAY_SIZE(a), a}; ep = grpc_tcp_create(grpc_fd_create(sv[1], "large_read_test"), &args, "test"); grpc_endpoint_add_to_pollset(ep, g_pollset); @@ -232,7 +234,7 @@ static void large_read_test(size_t slice_size) { state.ep = ep; state.read_bytes = 0; - state.target_read_bytes = (size_t)written_bytes; + state.target_read_bytes = static_cast<size_t>(written_bytes); grpc_slice_buffer_init(&state.incoming); GRPC_CLOSURE_INIT(&state.read_cb, read_cb, &state, grpc_schedule_on_exec_ctx); @@ -262,7 +264,8 @@ struct write_socket_state { static grpc_slice* allocate_blocks(size_t num_bytes, size_t slice_size, size_t* num_blocks, uint8_t* current_data) { size_t nslices = num_bytes / slice_size + (num_bytes % slice_size ? 1u : 0u); - grpc_slice* slices = (grpc_slice*)gpr_malloc(sizeof(grpc_slice) * nslices); + grpc_slice* slices = + static_cast<grpc_slice*>(gpr_malloc(sizeof(grpc_slice) * nslices)); size_t num_bytes_left = num_bytes; unsigned i, j; unsigned char* buf; @@ -284,7 +287,8 @@ static grpc_slice* allocate_blocks(size_t num_bytes, size_t slice_size, static void write_done(void* user_data /* write_socket_state */, grpc_error* error) { - struct write_socket_state* state = (struct write_socket_state*)user_data; + struct write_socket_state* state = + static_cast<struct write_socket_state*>(user_data); gpr_log(GPR_INFO, "Write done callback called"); gpr_mu_lock(g_mu); gpr_log(GPR_INFO, "Signalling write done"); @@ -295,7 +299,7 @@ static void write_done(void* user_data /* write_socket_state */, } void drain_socket_blocking(int fd, size_t num_bytes, size_t read_size) { - unsigned char* buf = (unsigned char*)gpr_malloc(read_size); + unsigned char* buf = static_cast<unsigned char*>(gpr_malloc(read_size)); ssize_t bytes_read; size_t bytes_left = num_bytes; int flags; @@ -325,7 +329,7 @@ void drain_socket_blocking(int fd, size_t num_bytes, size_t read_size) { GPR_ASSERT(buf[i] == current); current = (current + 1) % 256; } - bytes_left -= (size_t)bytes_read; + bytes_left -= static_cast<size_t>(bytes_read); if (bytes_left == 0) break; } flags = fcntl(fd, F_GETFL, 0); @@ -358,7 +362,8 @@ static void write_test(size_t num_bytes, size_t slice_size) { grpc_arg a[1]; a[0].key = const_cast<char*>(GRPC_ARG_TCP_READ_CHUNK_SIZE); - a[0].type = GRPC_ARG_INTEGER, a[0].value.integer = (int)slice_size; + a[0].type = GRPC_ARG_INTEGER, + a[0].value.integer = static_cast<int>(slice_size); grpc_channel_args args = {GPR_ARRAY_SIZE(a), a}; ep = grpc_tcp_create(grpc_fd_create(sv[1], "write_test"), &args, "test"); grpc_endpoint_add_to_pollset(ep, g_pollset); @@ -395,7 +400,7 @@ static void write_test(size_t num_bytes, size_t slice_size) { } void on_fd_released(void* arg, grpc_error* errors) { - int* done = (int*)arg; + int* done = static_cast<int*>(arg); *done = 1; GPR_ASSERT( GRPC_LOG_IF_ERROR("pollset_kick", grpc_pollset_kick(g_pollset, nullptr))); @@ -426,7 +431,7 @@ static void release_fd_test(size_t num_bytes, size_t slice_size) { grpc_arg a[1]; a[0].key = const_cast<char*>(GRPC_ARG_TCP_READ_CHUNK_SIZE); a[0].type = GRPC_ARG_INTEGER; - a[0].value.integer = (int)slice_size; + a[0].value.integer = static_cast<int>(slice_size); grpc_channel_args args = {GPR_ARRAY_SIZE(a), a}; ep = grpc_tcp_create(grpc_fd_create(sv[1], "read_test"), &args, "test"); GPR_ASSERT(grpc_tcp_fd(ep) == sv[1] && sv[1] >= 0); @@ -515,7 +520,7 @@ static grpc_endpoint_test_fixture create_fixture_tcp_socketpair( grpc_arg a[1]; a[0].key = const_cast<char*>(GRPC_ARG_TCP_READ_CHUNK_SIZE); a[0].type = GRPC_ARG_INTEGER; - a[0].value.integer = (int)slice_size; + a[0].value.integer = static_cast<int>(slice_size); grpc_channel_args args = {GPR_ARRAY_SIZE(a), a}; f.client_ep = grpc_tcp_create(grpc_fd_create(sv[0], "fixture:client"), &args, "test"); @@ -533,7 +538,7 @@ static grpc_endpoint_test_config configs[] = { }; static void destroy_pollset(void* p, grpc_error* error) { - grpc_pollset_destroy((grpc_pollset*)p); + grpc_pollset_destroy(static_cast<grpc_pollset*>(p)); } int main(int argc, char** argv) { @@ -542,7 +547,7 @@ int main(int argc, char** argv) { grpc_init(); { grpc_core::ExecCtx exec_ctx; - g_pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(g_pollset, &g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu); run_tests(); diff --git a/test/core/iomgr/tcp_server_posix_test.cc b/test/core/iomgr/tcp_server_posix_test.cc index 3c9ca2109e..dde77da547 100644 --- a/test/core/iomgr/tcp_server_posix_test.cc +++ b/test/core/iomgr/tcp_server_posix_test.cc @@ -181,7 +181,8 @@ static void test_no_op_with_start(void) { static void test_no_op_with_port(void) { grpc_core::ExecCtx exec_ctx; grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); grpc_tcp_server* s; GPR_ASSERT(GRPC_ERROR_NONE == grpc_tcp_server_create(nullptr, nullptr, &s)); LOG_TEST("test_no_op_with_port"); @@ -200,7 +201,8 @@ static void test_no_op_with_port(void) { static void test_no_op_with_port_and_start(void) { grpc_core::ExecCtx exec_ctx; grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); grpc_tcp_server* s; GPR_ASSERT(GRPC_ERROR_NONE == grpc_tcp_server_create(nullptr, nullptr, &s)); LOG_TEST("test_no_op_with_port_and_start"); @@ -225,7 +227,7 @@ static grpc_error* tcp_connect(const test_addr* remote, int clifd; int nconnects_before; const struct sockaddr* remote_addr = - (const struct sockaddr*)remote->addr.addr; + reinterpret_cast<const struct sockaddr*>(remote->addr.addr); gpr_log(GPR_INFO, "Connecting to %s", remote->str); gpr_mu_lock(g_mu); @@ -237,7 +239,8 @@ static grpc_error* tcp_connect(const test_addr* remote, return GRPC_OS_ERROR(errno, "Failed to create socket"); } gpr_log(GPR_DEBUG, "start connect to %s", remote->str); - if (connect(clifd, remote_addr, (socklen_t)remote->addr.len) != 0) { + if (connect(clifd, remote_addr, static_cast<socklen_t>(remote->addr.len)) != + 0) { gpr_mu_unlock(g_mu); close(clifd); return GRPC_OS_ERROR(errno, "connect"); @@ -286,9 +289,9 @@ static void test_connect(size_t num_connects, grpc_resolved_address resolved_addr; grpc_resolved_address resolved_addr1; struct sockaddr_storage* const addr = - (struct sockaddr_storage*)resolved_addr.addr; + reinterpret_cast<struct sockaddr_storage*>(resolved_addr.addr); struct sockaddr_storage* const addr1 = - (struct sockaddr_storage*)resolved_addr1.addr; + reinterpret_cast<struct sockaddr_storage*>(resolved_addr1.addr); unsigned svr_fd_count; int port; int svr_port; @@ -305,8 +308,9 @@ static void test_connect(size_t num_connects, LOG_TEST("test_connect"); gpr_log(GPR_INFO, "clients=%lu, num chan args=%lu, remote IP=%s, test_dst_addrs=%d", - (unsigned long)num_connects, - (unsigned long)(channel_args != nullptr ? channel_args->num_args : 0), + static_cast<unsigned long>(num_connects), + static_cast<unsigned long>( + channel_args != nullptr ? channel_args->num_args : 0), dst_addrs != nullptr ? "<specific>" : "::", test_dst_addrs); memset(&resolved_addr, 0, sizeof(resolved_addr)); memset(&resolved_addr1, 0, sizeof(resolved_addr1)); diff --git a/test/core/iomgr/timer_heap_test.cc b/test/core/iomgr/timer_heap_test.cc index f0ab4343cb..08f5d632e3 100644 --- a/test/core/iomgr/timer_heap_test.cc +++ b/test/core/iomgr/timer_heap_test.cc @@ -28,8 +28,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "test/core/util/test_config.h" static gpr_atm random_deadline(void) { return rand(); } @@ -102,7 +102,7 @@ static void test1(void) { check_valid(&pq); for (i = 0; i < num_test_operations; ++i) { - size_t elem_num = (size_t)rand() % num_test_elements; + size_t elem_num = static_cast<size_t>(rand()) % num_test_elements; grpc_timer* el = &test_elements[elem_num]; if (!inpq[elem_num]) { /* not in pq */ GPR_ASSERT(!contains(&pq, el)); @@ -142,8 +142,8 @@ static elem_struct* search_elems(elem_struct* elems, size_t count, search_order[i] = i; } for (size_t i = 0; i < count * 2; i++) { - size_t a = (size_t)rand() % count; - size_t b = (size_t)rand() % count; + size_t a = static_cast<size_t>(rand()) % count; + size_t b = static_cast<size_t>(rand()) % count; GPR_SWAP(size_t, search_order[a], search_order[b]); } elem_struct* out = nullptr; @@ -235,7 +235,7 @@ static void shrink_test(void) { size_t expected_size; /* A large random number to allow for multiple shrinkages, at least 512. */ - const size_t num_elements = (size_t)rand() % 2000 + 512; + const size_t num_elements = static_cast<size_t>(rand()) % 2000 + 512; grpc_timer_heap_init(&pq); @@ -265,7 +265,7 @@ static void shrink_test(void) { 4 times the Size and not less than 2 times, but never goes below 16. */ expected_size = pq.timer_count; while (pq.timer_count > 0) { - const size_t which = (size_t)rand() % pq.timer_count; + const size_t which = static_cast<size_t>(rand()) % pq.timer_count; grpc_timer* te = pq.timers[which]; grpc_timer_heap_remove(&pq, te); gpr_free(te); diff --git a/test/core/iomgr/udp_server_test.cc b/test/core/iomgr/udp_server_test.cc index 09f0283013..13cbf2f6df 100644 --- a/test/core/iomgr/udp_server_test.cc +++ b/test/core/iomgr/udp_server_test.cc @@ -33,9 +33,9 @@ #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/ev_posix.h" #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/iomgr/socket_factory_posix.h" @@ -65,7 +65,7 @@ static bool on_read(grpc_fd* emfd) { recv(grpc_fd_wrapped_fd(emfd), read_buffer, sizeof(read_buffer), 0); g_number_of_reads++; - g_number_of_bytes_read += (int)byte_count; + g_number_of_bytes_read += static_cast<int>(byte_count); GPR_ASSERT( GRPC_LOG_IF_ERROR("pollset_kick", grpc_pollset_kick(g_pollset, nullptr))); @@ -100,16 +100,18 @@ typedef struct test_socket_factory test_socket_factory; static int test_socket_factory_socket(grpc_socket_factory* factory, int domain, int type, int protocol) { - test_socket_factory* f = (test_socket_factory*)factory; + test_socket_factory* f = reinterpret_cast<test_socket_factory*>(factory); f->number_of_socket_calls++; return socket(domain, type, protocol); } static int test_socket_factory_bind(grpc_socket_factory* factory, int sockfd, const grpc_resolved_address* addr) { - test_socket_factory* f = (test_socket_factory*)factory; + test_socket_factory* f = reinterpret_cast<test_socket_factory*>(factory); f->number_of_bind_calls++; - return bind(sockfd, (struct sockaddr*)addr->addr, (socklen_t)addr->len); + return bind(sockfd, + reinterpret_cast<struct sockaddr*>(const_cast<char*>(addr->addr)), + static_cast<socklen_t>(addr->len)); } static int test_socket_factory_compare(grpc_socket_factory* a, @@ -118,7 +120,7 @@ static int test_socket_factory_compare(grpc_socket_factory* a, } static void test_socket_factory_destroy(grpc_socket_factory* factory) { - test_socket_factory* f = (test_socket_factory*)factory; + test_socket_factory* f = reinterpret_cast<test_socket_factory*>(factory); gpr_free(f); } @@ -173,7 +175,8 @@ static void test_no_op_with_port(void) { g_number_of_orphan_calls = 0; grpc_core::ExecCtx exec_ctx; grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); grpc_udp_server* s = grpc_udp_server_create(nullptr); LOG_TEST("test_no_op_with_port"); @@ -196,7 +199,8 @@ static void test_no_op_with_port_and_socket_factory(void) { g_number_of_orphan_calls = 0; grpc_core::ExecCtx exec_ctx; grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); test_socket_factory* socket_factory = test_socket_factory_create(); grpc_arg socket_factory_arg = @@ -231,7 +235,8 @@ static void test_no_op_with_port_and_start(void) { g_number_of_orphan_calls = 0; grpc_core::ExecCtx exec_ctx; grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); grpc_udp_server* s = grpc_udp_server_create(nullptr); LOG_TEST("test_no_op_with_port_and_start"); @@ -256,7 +261,8 @@ static void test_receive(int number_of_clients) { grpc_pollset_init(g_pollset, &g_mu); grpc_core::ExecCtx exec_ctx; grpc_resolved_address resolved_addr; - struct sockaddr_storage* addr = (struct sockaddr_storage*)resolved_addr.addr; + struct sockaddr_storage* addr = + reinterpret_cast<struct sockaddr_storage*>(resolved_addr.addr); int clifd, svrfd; grpc_udp_server* s = grpc_udp_server_create(nullptr); int i; diff --git a/test/core/iomgr/wakeup_fd_cv_test.cc b/test/core/iomgr/wakeup_fd_cv_test.cc index c092a8f3bf..a3f3f2008b 100644 --- a/test/core/iomgr/wakeup_fd_cv_test.cc +++ b/test/core/iomgr/wakeup_fd_cv_test.cc @@ -25,7 +25,6 @@ #include <grpc/support/log.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/env.h" #include "src/core/lib/iomgr/ev_posix.h" @@ -85,7 +84,7 @@ int mock_poll(struct pollfd* fds, nfds_t nfds, int timeout) { } void background_poll(void* args) { - poll_args* pargs = (poll_args*)args; + poll_args* pargs = static_cast<poll_args*>(args); pargs->result = grpc_poll_function(pargs->fds, pargs->nfds, pargs->timeout); } diff --git a/test/core/json/json_rewrite.cc b/test/core/json/json_rewrite.cc index 6891a57f9f..da2f50ec59 100644 --- a/test/core/json/json_rewrite.cc +++ b/test/core/json/json_rewrite.cc @@ -20,11 +20,11 @@ #include <stdlib.h> #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include "src/core/lib/json/json_reader.h" #include "src/core/lib/json/json_writer.h" +#include "test/core/util/cmdline.h" typedef struct json_writer_userdata { FILE* out; @@ -86,7 +86,7 @@ static void json_reader_string_add_char(void* userdata, uint32_t c) { json_reader_userdata* state = static_cast<json_reader_userdata*>(userdata); check_string(state, 1); GPR_ASSERT(c < 256); - state->scratchpad[state->string_len++] = (char)c; + state->scratchpad[state->string_len++] = static_cast<char>(c); } static void json_reader_string_add_utf32(void* userdata, uint32_t c) { @@ -122,7 +122,7 @@ static uint32_t json_reader_read_char(void* userdata) { r = fgetc(state->in); if (r == EOF) r = GRPC_JSON_READ_CHAR_EOF; - return (uint32_t)r; + return static_cast<uint32_t>(r); } static void json_reader_container_begins(void* userdata, grpc_json_type type) { diff --git a/test/core/json/json_rewrite_test.cc b/test/core/json/json_rewrite_test.cc index 3104afc442..2fade12e13 100644 --- a/test/core/json/json_rewrite_test.cc +++ b/test/core/json/json_rewrite_test.cc @@ -21,9 +21,9 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "test/core/util/test_config.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/json/json_reader.h" #include "src/core/lib/json/json_writer.h" @@ -97,7 +97,7 @@ static void json_reader_string_add_char(void* userdata, uint32_t c) { json_reader_userdata* state = static_cast<json_reader_userdata*>(userdata); check_string(state, 1); GPR_ASSERT(c <= 256); - state->scratchpad[state->string_len++] = (char)c; + state->scratchpad[state->string_len++] = static_cast<char>(c); } static void json_reader_string_add_utf32(void* userdata, uint32_t c) { @@ -140,7 +140,7 @@ static uint32_t json_reader_read_char(void* userdata) { r = fgetc(state->in); if (r == EOF) r = GRPC_JSON_READ_CHAR_EOF; - return (uint32_t)r; + return static_cast<uint32_t>(r); } static void json_reader_container_begins(void* userdata, grpc_json_type type) { diff --git a/test/core/json/json_stream_error_test.cc b/test/core/json/json_stream_error_test.cc index b367d3fbf7..00288d6d5e 100644 --- a/test/core/json/json_stream_error_test.cc +++ b/test/core/json/json_stream_error_test.cc @@ -21,7 +21,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "test/core/util/test_config.h" #include "src/core/lib/json/json_reader.h" diff --git a/test/core/json/json_test.cc b/test/core/json/json_test.cc index 902f1cd90e..7f1dbb774a 100644 --- a/test/core/json/json_test.cc +++ b/test/core/json/json_test.cc @@ -21,8 +21,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/json/json.h" #include "test/core/util/test_config.h" diff --git a/test/core/memory_usage/client.cc b/test/core/memory_usage/client.cc index ca841434aa..3c3fa53b51 100644 --- a/test/core/memory_usage/client.cc +++ b/test/core/memory_usage/client.cc @@ -24,12 +24,13 @@ #include <grpc/byte_buffer.h> #include <grpc/byte_buffer_reader.h> #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/env.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" + +#include "test/core/util/cmdline.h" #include "test/core/util/memory_counters.h" #include "test/core/util/test_config.h" @@ -154,16 +155,20 @@ static struct grpc_memory_counters send_snapshot_request(int call_idx, struct grpc_memory_counters snapshot; snapshot.total_size_absolute = - ((struct grpc_memory_counters*)GRPC_SLICE_START_PTR(response)) + (reinterpret_cast<struct grpc_memory_counters*> GRPC_SLICE_START_PTR( + response)) ->total_size_absolute; snapshot.total_allocs_absolute = - ((struct grpc_memory_counters*)GRPC_SLICE_START_PTR(response)) + (reinterpret_cast<struct grpc_memory_counters*> GRPC_SLICE_START_PTR( + response)) ->total_allocs_absolute; snapshot.total_size_relative = - ((struct grpc_memory_counters*)GRPC_SLICE_START_PTR(response)) + (reinterpret_cast<struct grpc_memory_counters*> GRPC_SLICE_START_PTR( + response)) ->total_size_relative; snapshot.total_allocs_relative = - ((struct grpc_memory_counters*)GRPC_SLICE_START_PTR(response)) + (reinterpret_cast<struct grpc_memory_counters*> GRPC_SLICE_START_PTR( + response)) ->total_allocs_relative; grpc_metadata_array_destroy(&calls[call_idx].initial_metadata_recv); @@ -283,10 +288,11 @@ int main(int argc, char** argv) { grpc_shutdown(); gpr_log(GPR_INFO, "---------client stats--------"); - gpr_log(GPR_INFO, "client call memory usage: %f bytes per call", - (double)(client_calls_inflight.total_size_relative - - client_benchmark_calls_start.total_size_relative) / - benchmark_iterations); + gpr_log( + GPR_INFO, "client call memory usage: %f bytes per call", + static_cast<double>(client_calls_inflight.total_size_relative - + client_benchmark_calls_start.total_size_relative) / + benchmark_iterations); gpr_log(GPR_INFO, "client channel memory usage %zi bytes", client_channel_end.total_size_relative - client_channel_start.total_size_relative); @@ -295,10 +301,11 @@ int main(int argc, char** argv) { gpr_log(GPR_INFO, "server create: %zi bytes", after_server_create.total_size_relative - before_server_create.total_size_relative); - gpr_log(GPR_INFO, "server call memory usage: %f bytes per call", - (double)(server_calls_inflight.total_size_relative - - server_benchmark_calls_start.total_size_relative) / - benchmark_iterations); + gpr_log( + GPR_INFO, "server call memory usage: %f bytes per call", + static_cast<double>(server_calls_inflight.total_size_relative - + server_benchmark_calls_start.total_size_relative) / + benchmark_iterations); gpr_log(GPR_INFO, "server channel memory usage %zi bytes", server_calls_end.total_size_relative - after_server_create.total_size_relative); @@ -308,21 +315,22 @@ int main(int argc, char** argv) { if (csv) { char* env_build = gpr_getenv("BUILD_NUMBER"); char* env_job = gpr_getenv("JOB_NAME"); - fprintf(csv, "%f,%zi,%zi,%f,%zi,%s,%s\n", - (double)(client_calls_inflight.total_size_relative - - client_benchmark_calls_start.total_size_relative) / - benchmark_iterations, - client_channel_end.total_size_relative - - client_channel_start.total_size_relative, - after_server_create.total_size_relative - - before_server_create.total_size_relative, - (double)(server_calls_inflight.total_size_relative - - server_benchmark_calls_start.total_size_relative) / - benchmark_iterations, - server_calls_end.total_size_relative - - after_server_create.total_size_relative, - env_build == nullptr ? "" : env_build, - env_job == nullptr ? "" : env_job); + fprintf( + csv, "%f,%zi,%zi,%f,%zi,%s,%s\n", + static_cast<double>(client_calls_inflight.total_size_relative - + client_benchmark_calls_start.total_size_relative) / + benchmark_iterations, + client_channel_end.total_size_relative - + client_channel_start.total_size_relative, + after_server_create.total_size_relative - + before_server_create.total_size_relative, + static_cast<double>(server_calls_inflight.total_size_relative - + server_benchmark_calls_start.total_size_relative) / + benchmark_iterations, + server_calls_end.total_size_relative - + after_server_create.total_size_relative, + env_build == nullptr ? "" : env_build, + env_job == nullptr ? "" : env_job); fclose(csv); gpr_log(GPR_INFO, "Summary written to %s", csv_file); } diff --git a/test/core/memory_usage/memory_usage_test.cc b/test/core/memory_usage/memory_usage_test.cc index fb6d290130..c170f5ad26 100644 --- a/test/core/memory_usage/memory_usage_test.cc +++ b/test/core/memory_usage/memory_usage_test.cc @@ -20,11 +20,12 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/string_util.h> -#include <grpc/support/subprocess.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/gpr/string.h" #include "test/core/util/port.h" +#include "test/core/util/subprocess.h" int main(int argc, char** argv) { char* me = argv[0]; @@ -36,7 +37,7 @@ int main(int argc, char** argv) { gpr_subprocess *svr, *cli; /* figure out where we are */ if (lslash) { - memcpy(root, me, (size_t)(lslash - me)); + memcpy(root, me, static_cast<size_t>(lslash - me)); root[lslash - me] = 0; } else { strcpy(root, "."); diff --git a/test/core/memory_usage/server.cc b/test/core/memory_usage/server.cc index 45aeaea661..3e7bb7e11f 100644 --- a/test/core/memory_usage/server.cc +++ b/test/core/memory_usage/server.cc @@ -30,11 +30,12 @@ #endif #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/time.h> + +#include "src/core/lib/gpr/host_port.h" #include "test/core/end2end/data/ssl_test_data.h" +#include "test/core/util/cmdline.h" #include "test/core/util/memory_counters.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" @@ -72,7 +73,7 @@ typedef struct { static fling_call calls[100006]; static void request_call_unary(int call_idx) { - if (call_idx == (int)(sizeof(calls) / sizeof(fling_call))) { + if (call_idx == static_cast<int>(sizeof(calls) / sizeof(fling_call))) { gpr_log(GPR_INFO, "Used all call slots (10000) on server. Server exit."); _exit(0); } @@ -83,7 +84,8 @@ static void request_call_unary(int call_idx) { } static void send_initial_metadata_unary(void* tag) { - grpc_metadata_array_init(&(*(fling_call*)tag).initial_metadata_send); + grpc_metadata_array_init( + &(*static_cast<fling_call*>(tag)).initial_metadata_send); metadata_ops[0].op = GRPC_OP_SEND_INITIAL_METADATA; metadata_ops[0].data.send_initial_metadata.count = 0; @@ -110,7 +112,8 @@ static void send_snapshot(void* tag, struct grpc_memory_counters* snapshot) { grpc_slice snapshot_slice = grpc_slice_new(snapshot, sizeof(*snapshot), gpr_free); payload_buffer = grpc_raw_byte_buffer_create(&snapshot_slice, 1); - grpc_metadata_array_init(&(*(fling_call*)tag).initial_metadata_send); + grpc_metadata_array_init( + &(*static_cast<fling_call*>(tag)).initial_metadata_send); op = snapshot_ops; op->op = GRPC_OP_SEND_INITIAL_METADATA; @@ -162,7 +165,7 @@ int main(int argc, char** argv) { grpc_test_init(1, fake_argv); grpc_init(); - srand((unsigned)clock()); + srand(static_cast<unsigned>(clock())); cl = gpr_cmdline_create("fling server"); gpr_cmdline_add_string(cl, "bind", "Bind host:port", &addr); @@ -203,7 +206,8 @@ int main(int argc, char** argv) { addr = addr_buf = nullptr; // initialize call instances - for (int i = 0; i < (int)(sizeof(calls) / sizeof(fling_call)); i++) { + for (int i = 0; i < static_cast<int>(sizeof(calls) / sizeof(fling_call)); + i++) { grpc_call_details_init(&calls[i].call_details); calls[i].state = FLING_SERVER_NEW_REQUEST; } @@ -280,7 +284,8 @@ int main(int argc, char** argv) { grpc_metadata_array_destroy(&s->request_metadata_recv); break; case FLING_SERVER_BATCH_SEND_STATUS_FLING_CALL: - for (int k = 0; k < (int)(sizeof(calls) / sizeof(fling_call)); + for (int k = 0; + k < static_cast<int>(sizeof(calls) / sizeof(fling_call)); ++k) { if (calls[k].state == FLING_SERVER_WAIT_FOR_DESTROY) { calls[k].state = FLING_SERVER_SEND_STATUS_FLING_CALL; diff --git a/test/core/network_benchmarks/low_level_ping_pong.cc b/test/core/network_benchmarks/low_level_ping_pong.cc index fb982a10fd..52c423b14a 100644 --- a/test/core/network_benchmarks/low_level_ping_pong.cc +++ b/test/core/network_benchmarks/low_level_ping_pong.cc @@ -35,13 +35,14 @@ #include <sys/socket.h> #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/socket_utils_posix.h" +#include "test/core/util/cmdline.h" #include "test/core/util/histogram.h" typedef struct fd_pair { @@ -83,7 +84,7 @@ static int read_bytes(int fd, char* buf, size_t read_size, int spin) { return -1; } } else { - bytes_read += (size_t)err; + bytes_read += static_cast<size_t>(err); } } while (bytes_read < read_size); return 0; @@ -126,7 +127,7 @@ static int poll_read_bytes(int fd, char* buf, size_t read_size, int spin) { gpr_log(GPR_ERROR, "Read failed: %s", strerror(errno)); return -1; } - bytes_read += (size_t)err2; + bytes_read += static_cast<size_t>(err2); } while (bytes_read < read_size); return 0; } @@ -165,7 +166,7 @@ static int epoll_read_bytes(struct thread_args* args, char* buf, int spin) { read(args->fds.read_fd, buf + bytes_read, read_size - bytes_read); } while (err2 < 0 && errno == EINTR); if (errno == EAGAIN) break; - bytes_read += (size_t)err2; + bytes_read += static_cast<size_t>(err2); /* TODO(klempner): This should really be doing an extra call after we are done to ensure we see an EAGAIN */ } while (bytes_read < read_size); @@ -202,7 +203,7 @@ static int blocking_write_bytes(struct thread_args* args, char* buf) { return -1; } } else { - bytes_written += (size_t)err; + bytes_written += static_cast<size_t>(err); } } while (bytes_written < write_size); return 0; @@ -287,7 +288,7 @@ static void print_histogram(grpc_histogram* histogram) { static double now(void) { gpr_timespec tv = gpr_now(GPR_CLOCK_REALTIME); - return 1e9 * (double)tv.tv_sec + (double)tv.tv_nsec; + return 1e9 * static_cast<double>(tv.tv_sec) + static_cast<double>(tv.tv_nsec); } static void client_thread(thread_args* args) { @@ -419,7 +420,7 @@ static int create_sockets_tcp(fd_pair* client_fds, fd_pair* server_fds) { int server_fd = -1; struct sockaddr_in port; - struct sockaddr* sa_port = (struct sockaddr*)&port; + struct sockaddr* sa_port = reinterpret_cast<struct sockaddr*>(&port); port.sin_family = AF_INET; port.sin_port = 0; @@ -651,7 +652,7 @@ int main(int argc, char** argv) { if (read_strategy == nullptr) { gpr_log(GPR_INFO, "No strategy specified, running all benchmarks"); - return run_all_benchmarks((size_t)msg_size); + return run_all_benchmarks(static_cast<size_t>(msg_size)); } if (socket_type == nullptr) { @@ -678,12 +679,12 @@ int main(int argc, char** argv) { client_args->read_bytes = strategy->read_strategy; client_args->write_bytes = blocking_write_bytes; client_args->setup = strategy->setup; - client_args->msg_size = (size_t)msg_size; + client_args->msg_size = static_cast<size_t>(msg_size); client_args->strategy_name = read_strategy; server_args->read_bytes = strategy->read_strategy; server_args->write_bytes = blocking_write_bytes; server_args->setup = strategy->setup; - server_args->msg_size = (size_t)msg_size; + server_args->msg_size = static_cast<size_t>(msg_size); server_args->strategy_name = read_strategy; error = run_benchmark(socket_type, client_args, server_args); diff --git a/test/core/security/BUILD b/test/core/security/BUILD index 7cd3ae58da..425c617fd1 100644 --- a/test/core/security/BUILD +++ b/test/core/security/BUILD @@ -110,6 +110,7 @@ grpc_cc_binary( deps = [ "//:gpr", "//:grpc", + "//test/core/util:grpc_test_util", ], ) @@ -121,6 +122,7 @@ grpc_cc_binary( ":oauth2_utils", "//:gpr", "//:grpc", + "//test/core/util:grpc_test_util", ], ) @@ -131,5 +133,6 @@ grpc_cc_binary( deps = [ "//:gpr", "//:grpc", + "//test/core/util:grpc_test_util", ], ) diff --git a/test/core/security/create_jwt.cc b/test/core/security/create_jwt.cc index 56ae9c891c..2ea640b605 100644 --- a/test/core/security/create_jwt.cc +++ b/test/core/security/create_jwt.cc @@ -24,9 +24,10 @@ #include <grpc/slice.h> #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> +#include "test/core/util/cmdline.h" + void create_jwt(const char* json_key_file_path, const char* service_url, const char* scope) { grpc_auth_json_key key; @@ -35,7 +36,7 @@ void create_jwt(const char* json_key_file_path, const char* service_url, GPR_ASSERT(GRPC_LOG_IF_ERROR( "load_file", grpc_load_file(json_key_file_path, 1, &json_key_data))); key = grpc_auth_json_key_create_from_string( - (const char*)GRPC_SLICE_START_PTR(json_key_data)); + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(json_key_data)); grpc_slice_unref(json_key_data); if (!grpc_auth_json_key_is_valid(&key)) { fprintf(stderr, "Could not parse json key.\n"); diff --git a/test/core/security/credentials_test.cc b/test/core/security/credentials_test.cc index 90310469aa..ce92e21d73 100644 --- a/test/core/security/credentials_test.cc +++ b/test/core/security/credentials_test.cc @@ -140,7 +140,7 @@ static grpc_httpcli_response http_response(int status, const char* body) { grpc_httpcli_response response; memset(&response, 0, sizeof(grpc_httpcli_response)); response.status = status; - response.body = gpr_strdup((char*)body); + response.body = gpr_strdup(const_cast<char*>(body)); response.body_length = strlen(body); return response; } @@ -324,7 +324,7 @@ static void check_metadata(const expected_md* expected, } static void check_request_metadata(void* arg, grpc_error* error) { - request_metadata_state* state = (request_metadata_state*)arg; + request_metadata_state* state = static_cast<request_metadata_state*>(arg); gpr_log(GPR_INFO, "expected_error: %s", grpc_error_string(state->expected_error)); gpr_log(GPR_INFO, "actual_error: %s", grpc_error_string(error)); @@ -754,7 +754,7 @@ static grpc_service_account_jwt_access_credentials* creds_as_jwt( grpc_call_credentials* creds) { GPR_ASSERT(creds != nullptr); GPR_ASSERT(strcmp(creds->type, GRPC_CALL_CREDENTIALS_TYPE_JWT) == 0); - return (grpc_service_account_jwt_access_credentials*)creds; + return reinterpret_cast<grpc_service_account_jwt_access_credentials*>(creds); } static void test_jwt_creds_lifetime(void) { @@ -873,10 +873,11 @@ static void test_google_default_creds_auth_key(void) { set_google_default_creds_env_var_with_file_contents( "json_key_google_default_creds", json_key); gpr_free(json_key); - creds = (grpc_composite_channel_credentials*) - grpc_google_default_credentials_create(); + creds = reinterpret_cast<grpc_composite_channel_credentials*>( + grpc_google_default_credentials_create()); GPR_ASSERT(creds != nullptr); - jwt = (grpc_service_account_jwt_access_credentials*)creds->call_creds; + jwt = reinterpret_cast<grpc_service_account_jwt_access_credentials*>( + creds->call_creds); GPR_ASSERT( strcmp(jwt->key.client_id, "777-abaslkan11hlb6nmim3bpspl31ud.apps.googleusercontent.com") == @@ -892,10 +893,11 @@ static void test_google_default_creds_refresh_token(void) { grpc_flush_cached_google_default_credentials(); set_google_default_creds_env_var_with_file_contents( "refresh_token_google_default_creds", test_refresh_token_str); - creds = (grpc_composite_channel_credentials*) - grpc_google_default_credentials_create(); + creds = reinterpret_cast<grpc_composite_channel_credentials*>( + grpc_google_default_credentials_create()); GPR_ASSERT(creds != nullptr); - refresh = (grpc_google_refresh_token_credentials*)creds->call_creds; + refresh = reinterpret_cast<grpc_google_refresh_token_credentials*>( + creds->call_creds); GPR_ASSERT(strcmp(refresh->refresh_token.client_id, "32555999999.apps.googleusercontent.com") == 0); grpc_channel_credentials_unref(&creds->base); @@ -938,8 +940,8 @@ static void test_google_default_creds_gce(void) { default_creds_gce_detection_httpcli_get_success_override, httpcli_post_should_not_be_called); grpc_composite_channel_credentials* creds = - (grpc_composite_channel_credentials*) - grpc_google_default_credentials_create(); + reinterpret_cast<grpc_composite_channel_credentials*>( + grpc_google_default_credentials_create()); /* Verify that the default creds actually embeds a GCE creds. */ GPR_ASSERT(creds != nullptr); @@ -1018,7 +1020,7 @@ static int plugin_get_metadata_success( GPR_ASSERT(context.reserved == nullptr); GPR_ASSERT(GPR_ARRAY_SIZE(plugin_md) < GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX); - plugin_state* s = (plugin_state*)state; + plugin_state* s = static_cast<plugin_state*>(state); *s = PLUGIN_GET_METADATA_CALLED_STATE; for (size_t i = 0; i < GPR_ARRAY_SIZE(plugin_md); ++i) { memset(&creds_md[i], 0, sizeof(grpc_metadata)); @@ -1041,7 +1043,7 @@ static int plugin_get_metadata_failure( GPR_ASSERT(strcmp(context.method_name, test_method) == 0); GPR_ASSERT(context.channel_auth_context == nullptr); GPR_ASSERT(context.reserved == nullptr); - plugin_state* s = (plugin_state*)state; + plugin_state* s = static_cast<plugin_state*>(state); *s = PLUGIN_GET_METADATA_CALLED_STATE; *status = GRPC_STATUS_UNAUTHENTICATED; *error_details = gpr_strdup(plugin_error_details); @@ -1049,7 +1051,7 @@ static int plugin_get_metadata_failure( } static void plugin_destroy(void* state) { - plugin_state* s = (plugin_state*)state; + plugin_state* s = static_cast<plugin_state*>(state); *s = PLUGIN_DESTROY_CALLED_STATE; } diff --git a/test/core/security/fetch_oauth2.cc b/test/core/security/fetch_oauth2.cc index cb28a0487c..82efe682be 100644 --- a/test/core/security/fetch_oauth2.cc +++ b/test/core/security/fetch_oauth2.cc @@ -23,13 +23,13 @@ #include <grpc/grpc_security.h> #include <grpc/slice.h> #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include "src/core/lib/iomgr/load_file.h" #include "src/core/lib/security/credentials/credentials.h" #include "test/core/security/oauth2_utils.h" +#include "test/core/util/cmdline.h" static grpc_call_credentials* create_refresh_token_creds( const char* json_refresh_token_file_path) { @@ -38,7 +38,8 @@ static grpc_call_credentials* create_refresh_token_creds( "load_file", grpc_load_file(json_refresh_token_file_path, 1, &refresh_token))); return grpc_google_refresh_token_credentials_create( - (const char*)GRPC_SLICE_START_PTR(refresh_token), nullptr); + reinterpret_cast<const char*> GRPC_SLICE_START_PTR(refresh_token), + nullptr); } int main(int argc, char** argv) { diff --git a/test/core/security/json_token_test.cc b/test/core/security/json_token_test.cc index aac9cc0029..7a5b3355fe 100644 --- a/test/core/security/json_token_test.cc +++ b/test/core/security/json_token_test.cc @@ -218,7 +218,7 @@ static grpc_json* parse_json_part_from_jwt(const char* str, size_t len, slice = grpc_base64_decode(b64, 1); GPR_ASSERT(!GRPC_SLICE_IS_EMPTY(slice)); decoded = static_cast<char*>(gpr_malloc(GRPC_SLICE_LENGTH(slice) + 1)); - strncpy(decoded, (const char*)GRPC_SLICE_START_PTR(slice), + strncpy(decoded, reinterpret_cast<const char*> GRPC_SLICE_START_PTR(slice), GRPC_SLICE_LENGTH(slice)); decoded[GRPC_SLICE_LENGTH(slice)] = '\0'; json = grpc_json_parse_string(decoded); @@ -385,21 +385,21 @@ static void test_jwt_encode_and_sign( char* jwt = jwt_encode_and_sign_func(&json_key); const char* dot = strchr(jwt, '.'); GPR_ASSERT(dot != nullptr); - parsed_header = - parse_json_part_from_jwt(jwt, (size_t)(dot - jwt), &scratchpad); + parsed_header = parse_json_part_from_jwt(jwt, static_cast<size_t>(dot - jwt), + &scratchpad); GPR_ASSERT(parsed_header != nullptr); check_jwt_header(parsed_header); - offset = (size_t)(dot - jwt) + 1; + offset = static_cast<size_t>(dot - jwt) + 1; grpc_json_destroy(parsed_header); gpr_free(scratchpad); dot = strchr(jwt + offset, '.'); GPR_ASSERT(dot != nullptr); parsed_claim = parse_json_part_from_jwt( - jwt + offset, (size_t)(dot - (jwt + offset)), &scratchpad); + jwt + offset, static_cast<size_t>(dot - (jwt + offset)), &scratchpad); GPR_ASSERT(parsed_claim != nullptr); check_jwt_claim_func(parsed_claim); - offset = (size_t)(dot - jwt) + 1; + offset = static_cast<size_t>(dot - jwt) + 1; grpc_json_destroy(parsed_claim); gpr_free(scratchpad); diff --git a/test/core/security/jwt_verifier_test.cc b/test/core/security/jwt_verifier_test.cc index e219260b1d..9718580a08 100644 --- a/test/core/security/jwt_verifier_test.cc +++ b/test/core/security/jwt_verifier_test.cc @@ -207,7 +207,7 @@ static void test_claims_success(void) { grpc_jwt_claims* claims; grpc_slice s = grpc_slice_from_copied_string(claims_without_time_constraint); grpc_json* json = grpc_json_parse_string_with_len( - (char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); + reinterpret_cast<char*> GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); GPR_ASSERT(json != nullptr); grpc_core::ExecCtx exec_ctx; claims = grpc_jwt_claims_from_json(json, s); @@ -226,7 +226,7 @@ static void test_expired_claims_failure(void) { grpc_jwt_claims* claims; grpc_slice s = grpc_slice_from_copied_string(expired_claims); grpc_json* json = grpc_json_parse_string_with_len( - (char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); + reinterpret_cast<char*> GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); gpr_timespec exp_iat = {100, 0, GPR_CLOCK_REALTIME}; gpr_timespec exp_exp = {120, 0, GPR_CLOCK_REALTIME}; gpr_timespec exp_nbf = {60, 0, GPR_CLOCK_REALTIME}; @@ -251,7 +251,7 @@ static void test_expired_claims_failure(void) { static void test_invalid_claims_failure(void) { grpc_slice s = grpc_slice_from_copied_string(invalid_claims); grpc_json* json = grpc_json_parse_string_with_len( - (char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); + reinterpret_cast<char*> GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); grpc_core::ExecCtx exec_ctx; GPR_ASSERT(grpc_jwt_claims_from_json(json, s) == nullptr); } @@ -260,7 +260,7 @@ static void test_bad_audience_claims_failure(void) { grpc_jwt_claims* claims; grpc_slice s = grpc_slice_from_copied_string(claims_without_time_constraint); grpc_json* json = grpc_json_parse_string_with_len( - (char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); + reinterpret_cast<char*> GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); GPR_ASSERT(json != nullptr); grpc_core::ExecCtx exec_ctx; claims = grpc_jwt_claims_from_json(json, s); @@ -274,7 +274,7 @@ static void test_bad_subject_claims_failure(void) { grpc_jwt_claims* claims; grpc_slice s = grpc_slice_from_copied_string(claims_with_bad_subject); grpc_json* json = grpc_json_parse_string_with_len( - (char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); + reinterpret_cast<char*> GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s)); GPR_ASSERT(json != nullptr); grpc_core::ExecCtx exec_ctx; claims = grpc_jwt_claims_from_json(json, s); diff --git a/test/core/security/oauth2_utils.cc b/test/core/security/oauth2_utils.cc index 0d3a1279af..469129a6d0 100644 --- a/test/core/security/oauth2_utils.cc +++ b/test/core/security/oauth2_utils.cc @@ -40,7 +40,7 @@ typedef struct { } oauth2_request; static void on_oauth2_response(void* arg, grpc_error* error) { - oauth2_request* request = (oauth2_request*)arg; + oauth2_request* request = static_cast<oauth2_request*>(arg); char* token = nullptr; grpc_slice token_slice; if (error != GRPC_ERROR_NONE) { @@ -48,7 +48,7 @@ static void on_oauth2_response(void* arg, grpc_error* error) { } else { GPR_ASSERT(request->md_array.size == 1); token_slice = GRPC_MDVALUE(request->md_array.md[0]); - token = (char*)gpr_malloc(GRPC_SLICE_LENGTH(token_slice) + 1); + token = static_cast<char*>(gpr_malloc(GRPC_SLICE_LENGTH(token_slice) + 1)); memcpy(token, GRPC_SLICE_START_PTR(token_slice), GRPC_SLICE_LENGTH(token_slice)); token[GRPC_SLICE_LENGTH(token_slice)] = '\0'; @@ -73,7 +73,8 @@ char* grpc_test_fetch_oauth2_token_with_credentials( grpc_closure do_nothing_closure; grpc_auth_metadata_context null_ctx = {"", "", nullptr, nullptr}; - grpc_pollset* pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + grpc_pollset* pollset = + static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(pollset, &request.mu); request.pops = grpc_polling_entity_create_from_pollset(pollset); request.is_done = false; diff --git a/test/core/security/print_google_default_creds_token.cc b/test/core/security/print_google_default_creds_token.cc index a90f997bda..4d251391ff 100644 --- a/test/core/security/print_google_default_creds_token.cc +++ b/test/core/security/print_google_default_creds_token.cc @@ -23,7 +23,6 @@ #include <grpc/grpc_security.h> #include <grpc/slice.h> #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> @@ -31,6 +30,7 @@ #include "src/core/lib/security/credentials/composite/composite_credentials.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/slice/slice_string_helpers.h" +#include "test/core/util/cmdline.h" typedef struct { gpr_mu* mu; @@ -88,7 +88,7 @@ int main(int argc, char** argv) { } memset(&sync, 0, sizeof(sync)); - pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(pollset, &sync.mu); sync.pops = grpc_polling_entity_create_from_pollset(pollset); sync.is_done = false; @@ -97,8 +97,10 @@ int main(int argc, char** argv) { error = GRPC_ERROR_NONE; if (grpc_call_credentials_get_request_metadata( - ((grpc_composite_channel_credentials*)creds)->call_creds, &sync.pops, - context, &sync.md_array, &sync.on_request_metadata, &error)) { + (reinterpret_cast<grpc_composite_channel_credentials*>(creds)) + ->call_creds, + &sync.pops, context, &sync.md_array, &sync.on_request_metadata, + &error)) { // Synchronous response. Invoke callback directly. on_metadata_response(&sync, error); GRPC_ERROR_UNREF(error); diff --git a/test/core/security/secure_endpoint_test.cc b/test/core/security/secure_endpoint_test.cc index 38c78fed42..23cef99dfa 100644 --- a/test/core/security/secure_endpoint_test.cc +++ b/test/core/security/secure_endpoint_test.cc @@ -24,7 +24,7 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/endpoint_pair.h" #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/security/transport/secure_endpoint.h" @@ -57,7 +57,7 @@ static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair( grpc_arg a[1]; a[0].key = const_cast<char*>(GRPC_ARG_TCP_READ_CHUNK_SIZE); a[0].type = GRPC_ARG_INTEGER; - a[0].value.integer = (int)slice_size; + a[0].value.integer = static_cast<int>(slice_size); grpc_channel_args args = {GPR_ARRAY_SIZE(a), a}; tcp = grpc_iomgr_create_endpoint_pair("fixture", &args); grpc_endpoint_add_to_pollset(tcp.client, g_pollset); @@ -73,7 +73,7 @@ static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair( size_t still_pending_size; size_t total_buffer_size = 8192; size_t buffer_size = total_buffer_size; - uint8_t* encrypted_buffer = (uint8_t*)gpr_malloc(buffer_size); + uint8_t* encrypted_buffer = static_cast<uint8_t*>(gpr_malloc(buffer_size)); uint8_t* cur = encrypted_buffer; grpc_slice encrypted_leftover; for (i = 0; i < leftover_nslices; i++) { @@ -106,7 +106,8 @@ static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair( buffer_size -= protected_buffer_size_to_send; } while (still_pending_size > 0); encrypted_leftover = grpc_slice_from_copied_buffer( - (const char*)encrypted_buffer, total_buffer_size - buffer_size); + reinterpret_cast<const char*>(encrypted_buffer), + total_buffer_size - buffer_size); f.client_ep = grpc_secure_endpoint_create( fake_read_protector, fake_read_zero_copy_protector, tcp.client, &encrypted_leftover, 1); @@ -165,7 +166,9 @@ static grpc_endpoint_test_config configs[] = { clean_up}, }; -static void inc_call_ctr(void* arg, grpc_error* error) { ++*(int*)arg; } +static void inc_call_ctr(void* arg, grpc_error* error) { + ++*static_cast<int*>(arg); +} static void test_leftover(grpc_endpoint_test_config config, size_t slice_size) { grpc_endpoint_test_fixture f = config.create_fixture(slice_size); @@ -200,7 +203,7 @@ static void test_leftover(grpc_endpoint_test_config config, size_t slice_size) { } static void destroy_pollset(void* p, grpc_error* error) { - grpc_pollset_destroy((grpc_pollset*)p); + grpc_pollset_destroy(static_cast<grpc_pollset*>(p)); } int main(int argc, char** argv) { @@ -210,7 +213,7 @@ int main(int argc, char** argv) { { grpc_core::ExecCtx exec_ctx; - g_pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + g_pollset = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(g_pollset, &g_mu); grpc_endpoint_tests(configs[0], g_pollset, g_mu); grpc_endpoint_tests(configs[1], g_pollset, g_mu); diff --git a/test/core/security/security_connector_test.cc b/test/core/security/security_connector_test.cc index 6eaef2bf49..e4731fb039 100644 --- a/test/core/security/security_connector_test.cc +++ b/test/core/security/security_connector_test.cc @@ -23,7 +23,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/env.h" #include "src/core/lib/gpr/string.h" diff --git a/test/core/security/verify_jwt.cc b/test/core/security/verify_jwt.cc index 5d32ce0cdb..61dde0e7d9 100644 --- a/test/core/security/verify_jwt.cc +++ b/test/core/security/verify_jwt.cc @@ -23,11 +23,11 @@ #include <grpc/grpc_security.h> #include <grpc/slice.h> #include <grpc/support/alloc.h> -#include <grpc/support/cmdline.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include "src/core/lib/security/credentials/jwt/jwt_verifier.h" +#include "test/core/util/cmdline.h" typedef struct { grpc_pollset* pollset; @@ -54,8 +54,8 @@ static void on_jwt_verification_done(void* user_data, if (sync->success) { char* claims_str; GPR_ASSERT(claims != nullptr); - claims_str = - grpc_json_dump_to_string((grpc_json*)grpc_jwt_claims_json(claims), 2); + claims_str = grpc_json_dump_to_string( + const_cast<grpc_json*>(grpc_jwt_claims_json(claims)), 2); printf("Claims: \n\n%s\n", claims_str); gpr_free(claims_str); grpc_jwt_claims_destroy(claims); diff --git a/test/core/slice/b64_test.cc b/test/core/slice/b64_test.cc index 94785fd1e2..6b29443ba1 100644 --- a/test/core/slice/b64_test.cc +++ b/test/core/slice/b64_test.cc @@ -34,7 +34,7 @@ static int buffers_are_equal(const unsigned char* buf1, for (i = 0; i < size; i++) { if (buf1[i] != buf2[i]) { gpr_log(GPR_ERROR, "buf1 and buf2 differ: buf1[%d] = %x vs buf2[%d] = %x", - (int)i, buf1[i], (int)i, buf2[i]); + static_cast<int>(i), buf1[i], static_cast<int>(i), buf2[i]); return 0; } } @@ -61,7 +61,7 @@ static void test_full_range_encode_decode_b64(int url_safe, int multiline) { size_t i; char* b64; grpc_slice orig_decoded; - for (i = 0; i < sizeof(orig); i++) orig[i] = (uint8_t)i; + for (i = 0; i < sizeof(orig); i++) orig[i] = static_cast<uint8_t>(i); /* Try all the different paddings. */ for (i = 0; i < 3; i++) { @@ -114,7 +114,7 @@ static void test_url_safe_unsafe_mismatch_failure(void) { char* b64; grpc_slice orig_decoded; int url_safe = 1; - for (i = 0; i < sizeof(orig); i++) orig[i] = (uint8_t)i; + for (i = 0; i < sizeof(orig); i++) orig[i] = static_cast<uint8_t>(i); grpc_core::ExecCtx exec_ctx; b64 = grpc_base64_encode(orig, sizeof(orig), url_safe, 0); diff --git a/test/core/slice/percent_encode_fuzzer.cc b/test/core/slice/percent_encode_fuzzer.cc index 201ae2790e..1fd197e180 100644 --- a/test/core/slice/percent_encode_fuzzer.cc +++ b/test/core/slice/percent_encode_fuzzer.cc @@ -34,7 +34,8 @@ static void test(const uint8_t* data, size_t size, const uint8_t* dict) { struct grpc_memory_counters counters; grpc_init(); grpc_memory_counters_init(); - grpc_slice input = grpc_slice_from_copied_buffer((const char*)data, size); + grpc_slice input = + grpc_slice_from_copied_buffer(reinterpret_cast<const char*>(data), size); grpc_slice output = grpc_percent_encode_slice(input, dict); grpc_slice decoded_output; // encoder must always produce decodable output diff --git a/test/core/slice/slice_string_helpers_test.cc b/test/core/slice/slice_string_helpers_test.cc index 1e38f8daca..860a1bfe03 100644 --- a/test/core/slice/slice_string_helpers_test.cc +++ b/test/core/slice/slice_string_helpers_test.cc @@ -26,7 +26,6 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> #include "src/core/lib/gpr/string.h" #include "test/core/util/test_config.h" diff --git a/test/core/slice/slice_test.cc b/test/core/slice/slice_test.cc index e40154dd0e..5a49793a9e 100644 --- a/test/core/slice/slice_test.cc +++ b/test/core/slice/slice_test.cc @@ -57,7 +57,7 @@ static void test_slice_malloc_returns_something_sensible(void) { } /* We must be able to write to every byte of the data */ for (i = 0; i < length; i++) { - GRPC_SLICE_START_PTR(slice)[i] = (uint8_t)i; + GRPC_SLICE_START_PTR(slice)[i] = static_cast<uint8_t>(i); } /* And finally we must succeed in destroying the slice */ grpc_slice_unref(slice); @@ -77,7 +77,7 @@ static void test_slice_new_returns_something_sensible(void) { } /* destroy function that sets a mark to indicate it was called. */ -static void set_mark(void* p) { *((int*)p) = 1; } +static void set_mark(void* p) { *(static_cast<int*>(p)) = 1; } static void test_slice_new_with_user_data(void) { int marker = 0; @@ -143,7 +143,7 @@ static void test_slice_sub_works(unsigned length) { beginning of the slice. */ slice = grpc_slice_malloc(length); for (i = 0; i < length; i++) { - GRPC_SLICE_START_PTR(slice)[i] = (uint8_t)i; + GRPC_SLICE_START_PTR(slice)[i] = static_cast<uint8_t>(i); } /* Ensure that for all subsets length is correct and that we start on the @@ -183,7 +183,7 @@ static void test_slice_split_head_works(size_t length) { beginning of the slice. */ slice = grpc_slice_malloc(length); for (i = 0; i < length; i++) { - GRPC_SLICE_START_PTR(slice)[i] = (uint8_t)i; + GRPC_SLICE_START_PTR(slice)[i] = static_cast<uint8_t>(i); } /* Ensure that for all subsets length is correct and that we start on the @@ -211,7 +211,7 @@ static void test_slice_split_tail_works(size_t length) { beginning of the slice. */ slice = grpc_slice_malloc(length); for (i = 0; i < length; i++) { - GRPC_SLICE_START_PTR(slice)[i] = (uint8_t)i; + GRPC_SLICE_START_PTR(slice)[i] = static_cast<uint8_t>(i); } /* Ensure that for all subsets length is correct and that we start on the diff --git a/test/core/surface/BUILD b/test/core/surface/BUILD index 6cec7feabc..d27123d1a3 100644 --- a/test/core/surface/BUILD +++ b/test/core/surface/BUILD @@ -19,18 +19,6 @@ licenses(["notice"]) # Apache v2 grpc_package(name = "test/core/surface") grpc_cc_test( - name = "alarm_test", - srcs = ["alarm_test.cc"], - language = "C++", - deps = [ - "//:gpr", - "//:grpc", - "//test/core/util:gpr_test_util", - "//test/core/util:grpc_test_util", - ], -) - -grpc_cc_test( name = "grpc_byte_buffer_reader_test", srcs = ["byte_buffer_reader_test.cc"], language = "C++", diff --git a/test/core/surface/alarm_test.cc b/test/core/surface/alarm_test.cc deleted file mode 100644 index 67fc6833a5..0000000000 --- a/test/core/surface/alarm_test.cc +++ /dev/null @@ -1,116 +0,0 @@ -/* - * - * Copyright 2015 gRPC authors. - * - * 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. - * - */ - -#include <grpc/grpc.h> -#include <grpc/support/alloc.h> -#include <grpc/support/log.h> -#include <grpc/support/time.h> -#include <grpc/support/useful.h> -#include "test/core/util/test_config.h" - -#define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x) - -static void* create_test_tag(void) { - static intptr_t i = 0; - return (void*)(++i); -} - -/* helper for tests to shutdown correctly and tersely */ -static void shutdown_and_destroy(grpc_completion_queue* cc) { - grpc_event ev; - grpc_completion_queue_shutdown(cc); - /* By the time grpc_completion_queue_shutdown runs, the cq's internal - pending event counter might not have been updated yet by a previous - cq_end_op_for_next (which releases a completed event first and only later - updates the pending event counter), so we can't rely on a no-polling - cq_next to never return GRPC_QUEUE_TIMEOUT. Using a deadline in the future - solves the problem. See https://github.com/grpc/grpc/issues/13693. - */ - ev = grpc_completion_queue_next(cc, grpc_timeout_seconds_to_deadline(2), - nullptr); - GPR_ASSERT(ev.type == GRPC_QUEUE_SHUTDOWN); - grpc_completion_queue_destroy(cc); -} - -static void test_alarm(void) { - grpc_completion_queue* cc; - - LOG_TEST("test_alarm"); - cc = grpc_completion_queue_create_for_next(nullptr); - { - /* regular expiry */ - grpc_event ev; - void* tag = create_test_tag(); - grpc_alarm* alarm = grpc_alarm_create(nullptr); - grpc_alarm_set(alarm, cc, grpc_timeout_seconds_to_deadline(1), tag, - nullptr); - - ev = grpc_completion_queue_next(cc, grpc_timeout_seconds_to_deadline(2), - nullptr); - GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); - GPR_ASSERT(ev.tag == tag); - GPR_ASSERT(ev.success); - grpc_alarm_destroy(alarm, nullptr); - } - { - /* cancellation */ - grpc_event ev; - void* tag = create_test_tag(); - grpc_alarm* alarm = grpc_alarm_create(nullptr); - grpc_alarm_set(alarm, cc, grpc_timeout_seconds_to_deadline(2), tag, - nullptr); - - grpc_alarm_cancel(alarm, nullptr); - ev = grpc_completion_queue_next(cc, grpc_timeout_seconds_to_deadline(1), - nullptr); - GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); - GPR_ASSERT(ev.tag == tag); - GPR_ASSERT(ev.success == 0); - grpc_alarm_destroy(alarm, nullptr); - } - { - /* alarm_destroy before cq_next */ - grpc_event ev; - void* tag = create_test_tag(); - grpc_alarm* alarm = grpc_alarm_create(nullptr); - grpc_alarm_set(alarm, cc, grpc_timeout_seconds_to_deadline(2), tag, - nullptr); - - grpc_alarm_destroy(alarm, nullptr); - ev = grpc_completion_queue_next(cc, grpc_timeout_seconds_to_deadline(1), - nullptr); - GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); - GPR_ASSERT(ev.tag == tag); - GPR_ASSERT(ev.success == 0); - } - { - /* alarm_destroy before set */ - grpc_alarm* alarm = grpc_alarm_create(nullptr); - grpc_alarm_destroy(alarm, nullptr); - } - - shutdown_and_destroy(cc); -} - -int main(int argc, char** argv) { - grpc_test_init(argc, argv); - grpc_init(); - test_alarm(); - grpc_shutdown(); - return 0; -} diff --git a/test/core/surface/byte_buffer_reader_test.cc b/test/core/surface/byte_buffer_reader_test.cc index 91662b027a..648a9d6986 100644 --- a/test/core/surface/byte_buffer_reader_test.cc +++ b/test/core/surface/byte_buffer_reader_test.cc @@ -109,7 +109,7 @@ static void test_read_corrupted_slice(void) { LOG_TEST("test_read_corrupted_slice"); slice = grpc_slice_from_copied_string("test"); buffer = grpc_raw_byte_buffer_create(&slice, 1); - buffer->data.raw.compression = GRPC_COMPRESS_MESSAGE_GZIP; /* lies! */ + buffer->data.raw.compression = GRPC_COMPRESS_GZIP; /* lies! */ grpc_slice_unref(slice); GPR_ASSERT(!grpc_byte_buffer_reader_init(&reader, buffer)); grpc_byte_buffer_destroy(buffer); @@ -161,13 +161,13 @@ static void read_compressed_slice(grpc_compression_algorithm algorithm, static void test_read_gzip_compressed_slice(void) { const size_t INPUT_SIZE = 2048; LOG_TEST("test_read_gzip_compressed_slice"); - read_compressed_slice(GRPC_COMPRESS_MESSAGE_GZIP, INPUT_SIZE); + read_compressed_slice(GRPC_COMPRESS_GZIP, INPUT_SIZE); } static void test_read_deflate_compressed_slice(void) { const size_t INPUT_SIZE = 2048; LOG_TEST("test_read_deflate_compressed_slice"); - read_compressed_slice(GRPC_COMPRESS_MESSAGE_DEFLATE, INPUT_SIZE); + read_compressed_slice(GRPC_COMPRESS_DEFLATE, INPUT_SIZE); } static void test_byte_buffer_from_reader(void) { diff --git a/test/core/surface/channel_create_test.cc b/test/core/surface/channel_create_test.cc index 37247f89d0..56f4f602e8 100644 --- a/test/core/surface/channel_create_test.cc +++ b/test/core/surface/channel_create_test.cc @@ -29,8 +29,8 @@ void test_unknown_scheme_target(void) { grpc_channel* chan; /* avoid default prefix */ - grpc_resolver_registry_shutdown(); - grpc_resolver_registry_init(); + grpc_core::ResolverRegistry::Builder::ShutdownRegistry(); + grpc_core::ResolverRegistry::Builder::InitRegistry(); chan = grpc_insecure_channel_create("blah://blah", nullptr, nullptr); GPR_ASSERT(chan != nullptr); diff --git a/test/core/surface/completion_queue_test.cc b/test/core/surface/completion_queue_test.cc index fefbb3c185..68129146cc 100644 --- a/test/core/surface/completion_queue_test.cc +++ b/test/core/surface/completion_queue_test.cc @@ -21,7 +21,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/test_config.h" diff --git a/test/core/surface/completion_queue_threading_test.cc b/test/core/surface/completion_queue_threading_test.cc index 4a9e818b45..e5015723f7 100644 --- a/test/core/surface/completion_queue_threading_test.cc +++ b/test/core/surface/completion_queue_threading_test.cc @@ -22,7 +22,8 @@ #include <grpc/support/log.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/test_config.h" @@ -145,7 +146,7 @@ static void producer_thread(void* arg) { int i; gpr_log(GPR_INFO, "producer %d started", opt->id); - gpr_event_set(&opt->on_started, (void*)(intptr_t)1); + gpr_event_set(&opt->on_started, (void*)static_cast<intptr_t>(1)); GPR_ASSERT(gpr_event_wait(opt->phase1, ten_seconds_time())); gpr_log(GPR_INFO, "producer %d phase 1", opt->id); @@ -154,13 +155,13 @@ static void producer_thread(void* arg) { } gpr_log(GPR_INFO, "producer %d phase 1 done", opt->id); - gpr_event_set(&opt->on_phase1_done, (void*)(intptr_t)1); + gpr_event_set(&opt->on_phase1_done, (void*)static_cast<intptr_t>(1)); GPR_ASSERT(gpr_event_wait(opt->phase2, ten_seconds_time())); gpr_log(GPR_INFO, "producer %d phase 2", opt->id); for (i = 0; i < TEST_THREAD_EVENTS; i++) { grpc_core::ExecCtx exec_ctx; - grpc_cq_end_op(opt->cc, (void*)(intptr_t)1, GRPC_ERROR_NONE, + grpc_cq_end_op(opt->cc, (void*)static_cast<intptr_t>(1), GRPC_ERROR_NONE, free_completion, nullptr, static_cast<grpc_cq_completion*>( gpr_malloc(sizeof(grpc_cq_completion)))); @@ -168,7 +169,7 @@ static void producer_thread(void* arg) { } gpr_log(GPR_INFO, "producer %d phase 2 done", opt->id); - gpr_event_set(&opt->on_finished, (void*)(intptr_t)1); + gpr_event_set(&opt->on_finished, (void*)static_cast<intptr_t>(1)); } static void consumer_thread(void* arg) { @@ -176,13 +177,13 @@ static void consumer_thread(void* arg) { grpc_event ev; gpr_log(GPR_INFO, "consumer %d started", opt->id); - gpr_event_set(&opt->on_started, (void*)(intptr_t)1); + gpr_event_set(&opt->on_started, (void*)static_cast<intptr_t>(1)); GPR_ASSERT(gpr_event_wait(opt->phase1, ten_seconds_time())); gpr_log(GPR_INFO, "consumer %d phase 1", opt->id); gpr_log(GPR_INFO, "consumer %d phase 1 done", opt->id); - gpr_event_set(&opt->on_phase1_done, (void*)(intptr_t)1); + gpr_event_set(&opt->on_phase1_done, (void*)static_cast<intptr_t>(1)); GPR_ASSERT(gpr_event_wait(opt->phase2, ten_seconds_time())); gpr_log(GPR_INFO, "consumer %d phase 2", opt->id); @@ -196,7 +197,7 @@ static void consumer_thread(void* arg) { break; case GRPC_QUEUE_SHUTDOWN: gpr_log(GPR_INFO, "consumer %d phase 2 done", opt->id); - gpr_event_set(&opt->on_finished, (void*)(intptr_t)1); + gpr_event_set(&opt->on_finished, (void*)static_cast<intptr_t>(1)); return; case GRPC_QUEUE_TIMEOUT: gpr_log(GPR_ERROR, "Invalid timeout received"); @@ -239,7 +240,7 @@ static void test_threading(size_t producers, size_t consumers) { /* start phase1: producers will pre-declare all operations they will complete */ gpr_log(GPR_INFO, "start phase 1"); - gpr_event_set(&phase1, (void*)(intptr_t)1); + gpr_event_set(&phase1, (void*)static_cast<intptr_t>(1)); gpr_log(GPR_INFO, "wait phase 1"); for (i = 0; i < producers + consumers; i++) { @@ -249,7 +250,7 @@ static void test_threading(size_t producers, size_t consumers) { /* start phase2: operations will complete, and consumers will consume them */ gpr_log(GPR_INFO, "start phase 2"); - gpr_event_set(&phase2, (void*)(intptr_t)1); + gpr_event_set(&phase2, (void*)static_cast<intptr_t>(1)); /* in parallel, we shutdown the completion channel - all events should still be consumed */ diff --git a/test/core/surface/concurrent_connectivity_test.cc b/test/core/surface/concurrent_connectivity_test.cc index 235d136376..bbee073c71 100644 --- a/test/core/surface/concurrent_connectivity_test.cc +++ b/test/core/surface/concurrent_connectivity_test.cc @@ -55,14 +55,14 @@ // it should never take longer that this to shutdown the server #define SERVER_SHUTDOWN_TIMEOUT 30000 -static void* tag(int n) { return (void*)(uintptr_t)n; } -static int detag(void* p) { return (int)(uintptr_t)p; } +static void* tag(int n) { return (void*)static_cast<uintptr_t>(n); } +static int detag(void* p) { return static_cast<int>((uintptr_t)p); } void create_loop_destroy(void* addr) { for (int i = 0; i < NUM_OUTER_LOOPS; ++i) { grpc_completion_queue* cq = grpc_completion_queue_create_for_next(nullptr); - grpc_channel* chan = - grpc_insecure_channel_create((char*)addr, nullptr, nullptr); + grpc_channel* chan = grpc_insecure_channel_create(static_cast<char*>(addr), + nullptr, nullptr); for (int j = 0; j < NUM_INNER_LOOPS; ++j) { gpr_timespec later_time = @@ -94,7 +94,8 @@ struct server_thread_args { }; void server_thread(void* vargs) { - struct server_thread_args* args = (struct server_thread_args*)vargs; + struct server_thread_args* args = + static_cast<struct server_thread_args*>(vargs); grpc_event ev; gpr_timespec deadline = grpc_timeout_milliseconds_to_deadline(SERVER_SHUTDOWN_TIMEOUT); @@ -107,7 +108,8 @@ static void on_connect(void* vargs, grpc_endpoint* tcp, grpc_pollset* accepting_pollset, grpc_tcp_server_acceptor* acceptor) { gpr_free(acceptor); - struct server_thread_args* args = (struct server_thread_args*)vargs; + struct server_thread_args* args = + static_cast<struct server_thread_args*>(vargs); grpc_endpoint_shutdown(tcp, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Connected")); grpc_endpoint_destroy(tcp); @@ -117,11 +119,13 @@ static void on_connect(void* vargs, grpc_endpoint* tcp, } void bad_server_thread(void* vargs) { - struct server_thread_args* args = (struct server_thread_args*)vargs; + struct server_thread_args* args = + static_cast<struct server_thread_args*>(vargs); grpc_core::ExecCtx exec_ctx; grpc_resolved_address resolved_addr; - struct sockaddr_storage* addr = (struct sockaddr_storage*)resolved_addr.addr; + struct sockaddr_storage* addr = + reinterpret_cast<struct sockaddr_storage*>(resolved_addr.addr); int port; grpc_tcp_server* s; grpc_error* error = grpc_tcp_server_create(nullptr, nullptr, &s); @@ -244,8 +248,8 @@ int run_concurrent_connectivity_test() { void watches_with_short_timeouts(void* addr) { for (int i = 0; i < NUM_OUTER_LOOPS_SHORT_TIMEOUTS; ++i) { grpc_completion_queue* cq = grpc_completion_queue_create_for_next(nullptr); - grpc_channel* chan = - grpc_insecure_channel_create((char*)addr, nullptr, nullptr); + grpc_channel* chan = grpc_insecure_channel_create(static_cast<char*>(addr), + nullptr, nullptr); for (int j = 0; j < NUM_INNER_LOOPS_SHORT_TIMEOUTS; ++j) { gpr_timespec later_time = diff --git a/test/core/surface/lame_client_test.cc b/test/core/surface/lame_client_test.cc index 4bf40569e6..fac5ca8f7f 100644 --- a/test/core/surface/lame_client_test.cc +++ b/test/core/surface/lame_client_test.cc @@ -112,7 +112,8 @@ int main(int argc, char** argv) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(call, ops, (size_t)(op - ops), tag(1), nullptr); + error = grpc_call_start_batch(call, ops, static_cast<size_t>(op - ops), + tag(1), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* the call should immediately fail */ @@ -128,7 +129,8 @@ int main(int argc, char** argv) { op->flags = 0; op->reserved = nullptr; op++; - error = grpc_call_start_batch(call, ops, (size_t)(op - ops), tag(2), nullptr); + error = grpc_call_start_batch(call, ops, static_cast<size_t>(op - ops), + tag(2), nullptr); GPR_ASSERT(GRPC_CALL_OK == error); /* the call should immediately fail */ diff --git a/test/core/surface/num_external_connectivity_watchers_test.cc b/test/core/surface/num_external_connectivity_watchers_test.cc index 9cdd299ae3..e48fd7fcf2 100644 --- a/test/core/surface/num_external_connectivity_watchers_test.cc +++ b/test/core/surface/num_external_connectivity_watchers_test.cc @@ -19,11 +19,11 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/thd.h> #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/end2end/data/ssl_test_data.h" #include "test/core/util/port.h" diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c index f4de5d7d8a..14267c1214 100644 --- a/test/core/surface/public_headers_must_be_c89.c +++ b/test/core/surface/public_headers_must_be_c89.c @@ -20,7 +20,6 @@ #include <grpc/byte_buffer_reader.h> #include <grpc/census.h> #include <grpc/compression.h> -#include <grpc/compression_ruby.h> #include <grpc/fork.h> #include <grpc/grpc.h> #include <grpc/grpc_security.h> @@ -47,21 +46,15 @@ #include <grpc/status.h> #include <grpc/support/alloc.h> #include <grpc/support/atm.h> -#include <grpc/support/avl.h> -#include <grpc/support/cmdline.h> #include <grpc/support/cpu.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/port_platform.h> #include <grpc/support/string_util.h> -#include <grpc/support/subprocess.h> #include <grpc/support/sync.h> #include <grpc/support/sync_custom.h> #include <grpc/support/sync_generic.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> -#include <grpc/support/tls.h> -#include <grpc/support/useful.h> #include <grpc/support/workaround_list.h> #include <stdio.h> @@ -76,8 +69,6 @@ int main(int argc, char **argv) { printf("%lx", (unsigned long) grpc_compression_options_enable_algorithm); printf("%lx", (unsigned long) grpc_compression_options_disable_algorithm); printf("%lx", (unsigned long) grpc_compression_options_is_algorithm_enabled); - printf("%lx", (unsigned long) grpc_compression_algorithm_parse_ruby); - printf("%lx", (unsigned long) grpc_compression_algorithm_name_ruby); printf("%lx", (unsigned long) grpc_metadata_array_init); printf("%lx", (unsigned long) grpc_metadata_array_destroy); printf("%lx", (unsigned long) grpc_call_details_init); @@ -97,10 +88,6 @@ int main(int argc, char **argv) { printf("%lx", (unsigned long) grpc_completion_queue_destroy); printf("%lx", (unsigned long) grpc_completion_queue_thread_local_cache_init); printf("%lx", (unsigned long) grpc_completion_queue_thread_local_cache_flush); - printf("%lx", (unsigned long) grpc_alarm_create); - printf("%lx", (unsigned long) grpc_alarm_set); - printf("%lx", (unsigned long) grpc_alarm_cancel); - printf("%lx", (unsigned long) grpc_alarm_destroy); printf("%lx", (unsigned long) grpc_channel_check_connectivity_state); printf("%lx", (unsigned long) grpc_channel_num_external_connectivity_watchers); printf("%lx", (unsigned long) grpc_channel_watch_connectivity_state); @@ -247,27 +234,8 @@ int main(int argc, char **argv) { printf("%lx", (unsigned long) gpr_free_aligned); printf("%lx", (unsigned long) gpr_set_allocation_functions); printf("%lx", (unsigned long) gpr_get_allocation_functions); - printf("%lx", (unsigned long) gpr_avl_create); - printf("%lx", (unsigned long) gpr_avl_ref); - printf("%lx", (unsigned long) gpr_avl_unref); - printf("%lx", (unsigned long) gpr_avl_add); - printf("%lx", (unsigned long) gpr_avl_remove); - printf("%lx", (unsigned long) gpr_avl_get); - printf("%lx", (unsigned long) gpr_avl_maybe_get); - printf("%lx", (unsigned long) gpr_avl_is_empty); - printf("%lx", (unsigned long) gpr_cmdline_create); - printf("%lx", (unsigned long) gpr_cmdline_add_int); - printf("%lx", (unsigned long) gpr_cmdline_add_flag); - printf("%lx", (unsigned long) gpr_cmdline_add_string); - printf("%lx", (unsigned long) gpr_cmdline_on_extra_arg); - printf("%lx", (unsigned long) gpr_cmdline_set_survive_failure); - printf("%lx", (unsigned long) gpr_cmdline_parse); - printf("%lx", (unsigned long) gpr_cmdline_destroy); - printf("%lx", (unsigned long) gpr_cmdline_usage_string); printf("%lx", (unsigned long) gpr_cpu_num_cores); printf("%lx", (unsigned long) gpr_cpu_current_cpu); - printf("%lx", (unsigned long) gpr_join_host_port); - printf("%lx", (unsigned long) gpr_split_host_port); printf("%lx", (unsigned long) gpr_log_severity_string); printf("%lx", (unsigned long) gpr_log); printf("%lx", (unsigned long) gpr_log_message); @@ -276,11 +244,6 @@ int main(int argc, char **argv) { printf("%lx", (unsigned long) gpr_set_log_function); printf("%lx", (unsigned long) gpr_strdup); printf("%lx", (unsigned long) gpr_asprintf); - printf("%lx", (unsigned long) gpr_subprocess_binary_extension); - printf("%lx", (unsigned long) gpr_subprocess_create); - printf("%lx", (unsigned long) gpr_subprocess_destroy); - printf("%lx", (unsigned long) gpr_subprocess_join); - printf("%lx", (unsigned long) gpr_subprocess_interrupt); printf("%lx", (unsigned long) gpr_mu_init); printf("%lx", (unsigned long) gpr_mu_destroy); printf("%lx", (unsigned long) gpr_mu_lock); diff --git a/test/core/surface/secure_channel_create_test.cc b/test/core/surface/secure_channel_create_test.cc index fa22cd6873..c10d6796a7 100644 --- a/test/core/surface/secure_channel_create_test.cc +++ b/test/core/surface/secure_channel_create_test.cc @@ -28,8 +28,8 @@ #include "test/core/util/test_config.h" void test_unknown_scheme_target(void) { - grpc_resolver_registry_shutdown(); - grpc_resolver_registry_init(); + grpc_core::ResolverRegistry::Builder::ShutdownRegistry(); + grpc_core::ResolverRegistry::Builder::InitRegistry(); grpc_channel_credentials* creds = grpc_fake_transport_security_credentials_create(); grpc_channel* chan = diff --git a/test/core/surface/sequential_connectivity_test.cc b/test/core/surface/sequential_connectivity_test.cc index ac49bd9823..1ac0a5ee13 100644 --- a/test/core/surface/sequential_connectivity_test.cc +++ b/test/core/surface/sequential_connectivity_test.cc @@ -19,11 +19,11 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/thd.h> #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/end2end/data/ssl_test_data.h" #include "test/core/util/port.h" diff --git a/test/core/surface/server_chttp2_test.cc b/test/core/surface/server_chttp2_test.cc index 96eaa6a7a9..f0412d01d9 100644 --- a/test/core/surface/server_chttp2_test.cc +++ b/test/core/surface/server_chttp2_test.cc @@ -19,9 +19,10 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/time.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/security/credentials/credentials.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "src/core/tsi/fake_transport_security.h" diff --git a/test/core/surface/server_test.cc b/test/core/surface/server_test.cc index 969b8cb11b..3b08efb563 100644 --- a/test/core/surface/server_test.cc +++ b/test/core/surface/server_test.cc @@ -19,9 +19,10 @@ #include <grpc/grpc.h> #include <grpc/grpc_security.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/security/credentials/fake/fake_credentials.h" #include "test/core/util/port.h" diff --git a/test/core/transport/bdp_estimator_test.cc b/test/core/transport/bdp_estimator_test.cc index 3afcad7f17..c7e6b2bd84 100644 --- a/test/core/transport/bdp_estimator_test.cc +++ b/test/core/transport/bdp_estimator_test.cc @@ -22,10 +22,12 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> + #include <gtest/gtest.h> #include <limits.h> + #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/timer_manager.h" #include "test/core/util/test_config.h" diff --git a/test/core/transport/byte_stream_test.cc b/test/core/transport/byte_stream_test.cc index 2aab6e9262..6947d50976 100644 --- a/test/core/transport/byte_stream_test.cc +++ b/test/core/transport/byte_stream_test.cc @@ -21,8 +21,8 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/slice/slice_internal.h" #include "test/core/util/test_config.h" diff --git a/test/core/transport/chttp2/hpack_encoder_test.cc b/test/core/transport/chttp2/hpack_encoder_test.cc index a40bd643ec..d3ba50a91c 100644 --- a/test/core/transport/chttp2/hpack_encoder_test.cc +++ b/test/core/transport/chttp2/hpack_encoder_test.cc @@ -152,10 +152,10 @@ static void test_basic_headers() { } static void encode_int_to_str(int i, char* p) { - p[0] = (char)('a' + i % 26); + p[0] = static_cast<char>('a' + i % 26); i /= 26; GPR_ASSERT(i < 26); - p[1] = (char)('a' + i); + p[1] = static_cast<char>('a' + i); p[2] = 0; } diff --git a/test/core/transport/chttp2/settings_timeout_test.cc b/test/core/transport/chttp2/settings_timeout_test.cc index d7d6ee7508..39ae587bae 100644 --- a/test/core/transport/chttp2/settings_timeout_test.cc +++ b/test/core/transport/chttp2/settings_timeout_test.cc @@ -104,7 +104,7 @@ class Client { grpc_blocking_resolve_address(server_address_, "80", &server_addresses); ASSERT_EQ(GRPC_ERROR_NONE, error) << grpc_error_string(error); ASSERT_GE(server_addresses->naddrs, 1UL); - pollset_ = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + pollset_ = static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(pollset_, &mu_); grpc_pollset_set* pollset_set = grpc_pollset_set_create(); grpc_pollset_set_add_pollset(pollset_set, pollset_); @@ -169,7 +169,7 @@ class Client { grpc_closure* closure() { return &closure_; } - bool done() const { return done_; } + bool done() const { return gpr_atm_acq_load(&done_atm_) != 0; } // Caller does NOT take ownership of the error. grpc_error* error() const { return error_; } @@ -177,13 +177,13 @@ class Client { private: static void OnEventDone(void* arg, grpc_error* error) { gpr_log(GPR_INFO, "OnEventDone(): %s", grpc_error_string(error)); - EventState* state = (EventState*)arg; + EventState* state = static_cast<EventState*>(arg); state->error_ = GRPC_ERROR_REF(error); - state->done_ = true; + gpr_atm_rel_store(&state->done_atm_, 1); } grpc_closure closure_; - bool done_ = false; + gpr_atm done_atm_ = 0; grpc_error* error_ = GRPC_ERROR_NONE; }; @@ -203,7 +203,7 @@ class Client { } static void PollsetDestroy(void* arg, grpc_error* error) { - grpc_pollset* pollset = (grpc_pollset*)arg; + grpc_pollset* pollset = static_cast<grpc_pollset*>(arg); grpc_pollset_destroy(pollset); gpr_free(pollset); } diff --git a/test/core/transport/chttp2/stream_map_test.cc b/test/core/transport/chttp2/stream_map_test.cc index 9b21cb2364..773eb3a35f 100644 --- a/test/core/transport/chttp2/stream_map_test.cc +++ b/test/core/transport/chttp2/stream_map_test.cc @@ -78,7 +78,7 @@ static void test_basic_add_find(uint32_t n) { grpc_chttp2_stream_map_init(&map, 8); GPR_ASSERT(0 == grpc_chttp2_stream_map_size(&map)); for (i = 1; i <= n; i++) { - grpc_chttp2_stream_map_add(&map, i, (void*)(uintptr_t)i); + grpc_chttp2_stream_map_add(&map, i, (void*)static_cast<uintptr_t>(i)); } GPR_ASSERT(n == grpc_chttp2_stream_map_size(&map)); GPR_ASSERT(nullptr == grpc_chttp2_stream_map_find(&map, 0)); @@ -133,7 +133,7 @@ static void test_delete_evens_sweep(uint32_t n) { grpc_chttp2_stream_map_init(&map, 8); for (i = 1; i <= n; i++) { - grpc_chttp2_stream_map_add(&map, i, (void*)(uintptr_t)i); + grpc_chttp2_stream_map_add(&map, i, (void*)static_cast<uintptr_t>(i)); } for (i = 1; i <= n; i++) { if ((i & 1) == 0) { @@ -155,7 +155,7 @@ static void test_delete_evens_incremental(uint32_t n) { grpc_chttp2_stream_map_init(&map, 8); for (i = 1; i <= n; i++) { - grpc_chttp2_stream_map_add(&map, i, (void*)(uintptr_t)i); + grpc_chttp2_stream_map_add(&map, i, (void*)static_cast<uintptr_t>(i)); if ((i & 1) == 0) { grpc_chttp2_stream_map_delete(&map, i); } @@ -177,7 +177,7 @@ static void test_periodic_compaction(uint32_t n) { grpc_chttp2_stream_map_init(&map, 16); GPR_ASSERT(map.capacity == 16); for (i = 1; i <= n; i++) { - grpc_chttp2_stream_map_add(&map, i, (void*)(uintptr_t)i); + grpc_chttp2_stream_map_add(&map, i, (void*)static_cast<uintptr_t>(i)); if (i > 8) { del = i - 8; GPR_ASSERT((void*)(uintptr_t)del == diff --git a/test/core/transport/metadata_test.cc b/test/core/transport/metadata_test.cc index 7d943fd5c7..786df97285 100644 --- a/test/core/transport/metadata_test.cc +++ b/test/core/transport/metadata_test.cc @@ -240,8 +240,8 @@ static void test_things_stick_around(void) { } for (i = 0; i < nstrs; i++) { - size_t p = (size_t)rand() % nstrs; - size_t q = (size_t)rand() % nstrs; + size_t p = static_cast<size_t>(rand()) % nstrs; + size_t q = static_cast<size_t>(rand()) % nstrs; size_t temp = shuf[p]; shuf[p] = shuf[q]; shuf[q] = temp; @@ -307,8 +307,8 @@ static void verify_binary_header_size(const char* key, const uint8_t* value, intern_value)); GPR_ASSERT(grpc_is_binary_header(GRPC_MDKEY(elem))); size_t elem_size = grpc_mdelem_get_size_in_hpack_table(elem, false); - grpc_slice value_slice = - grpc_slice_from_copied_buffer((const char*)value, value_len); + grpc_slice value_slice = grpc_slice_from_copied_buffer( + reinterpret_cast<const char*>(value), value_len); grpc_slice base64_encoded = grpc_chttp2_base64_encode(value_slice); size_t expected_size = 32 + strlen(key) + GRPC_SLICE_LENGTH(base64_encoded); GPR_ASSERT(expected_size == elem_size); diff --git a/test/core/transport/pid_controller_test.cc b/test/core/transport/pid_controller_test.cc index 1a499c2fb7..8d2cec4042 100644 --- a/test/core/transport/pid_controller_test.cc +++ b/test/core/transport/pid_controller_test.cc @@ -24,7 +24,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> + #include <gtest/gtest.h> #include "src/core/lib/gpr/string.h" #include "test/core/util/test_config.h" diff --git a/test/core/transport/timeout_encoding_test.cc b/test/core/transport/timeout_encoding_test.cc index e94be138dd..2367accc2e 100644 --- a/test/core/transport/timeout_encoding_test.cc +++ b/test/core/transport/timeout_encoding_test.cc @@ -24,9 +24,10 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> + #include "src/core/lib/gpr/murmur_hash.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "test/core/util/test_config.h" #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x) @@ -102,20 +103,22 @@ void decode_suite(char ext, grpc_millis (*answer)(int64_t x)) { } static grpc_millis millis_from_nanos(int64_t x) { - return (grpc_millis)(x / GPR_NS_PER_MS + (x % GPR_NS_PER_MS != 0)); + return static_cast<grpc_millis>(x / GPR_NS_PER_MS + (x % GPR_NS_PER_MS != 0)); } static grpc_millis millis_from_micros(int64_t x) { - return (grpc_millis)(x / GPR_US_PER_MS + (x % GPR_US_PER_MS != 0)); + return static_cast<grpc_millis>(x / GPR_US_PER_MS + (x % GPR_US_PER_MS != 0)); +} +static grpc_millis millis_from_millis(int64_t x) { + return static_cast<grpc_millis>(x); } -static grpc_millis millis_from_millis(int64_t x) { return (grpc_millis)x; } static grpc_millis millis_from_seconds(int64_t x) { - return (grpc_millis)(x * GPR_MS_PER_SEC); + return static_cast<grpc_millis>(x * GPR_MS_PER_SEC); } static grpc_millis millis_from_minutes(int64_t x) { - return (grpc_millis)(x * 60 * GPR_MS_PER_SEC); + return static_cast<grpc_millis>(x * 60 * GPR_MS_PER_SEC); } static grpc_millis millis_from_hours(int64_t x) { - return (grpc_millis)(x * 3600 * GPR_MS_PER_SEC); + return static_cast<grpc_millis>(x * 3600 * GPR_MS_PER_SEC); } void test_decoding(void) { diff --git a/test/core/tsi/fake_transport_security_test.cc b/test/core/tsi/fake_transport_security_test.cc index 73643fc9fd..ea392d347d 100644 --- a/test/core/tsi/fake_transport_security_test.cc +++ b/test/core/tsi/fake_transport_security_test.cc @@ -102,7 +102,8 @@ void fake_tsi_test_do_round_trip_for_all_configs() { v <<= 1; } tsi_test_fixture* fixture = fake_tsi_test_fixture_create(); - fake_tsi_test_fixture* fake_fixture = (fake_tsi_test_fixture*)fixture; + fake_tsi_test_fixture* fake_fixture = + reinterpret_cast<fake_tsi_test_fixture*>(fixture); tsi_test_frame_protector_config_destroy(fake_fixture->base.config); fake_fixture->base.config = tsi_test_frame_protector_config_create( bit_array[0], bit_array[1], bit_array[2], bit_array[3], bit_array[4], @@ -123,7 +124,7 @@ void fake_tsi_test_do_round_trip_odd_buffer_size() { for (size_t ind5 = 0; ind5 < size; ind5++) { tsi_test_fixture* fixture = fake_tsi_test_fixture_create(); fake_tsi_test_fixture* fake_fixture = - (fake_tsi_test_fixture*)fixture; + reinterpret_cast<fake_tsi_test_fixture*>(fixture); tsi_test_frame_protector_config_set_buffer_size( fake_fixture->base.config, odd_sizes[ind1], odd_sizes[ind2], odd_sizes[ind3], odd_sizes[ind4], odd_sizes[ind5]); diff --git a/test/core/tsi/ssl_transport_security_test.cc b/test/core/tsi/ssl_transport_security_test.cc index 8939c0434b..d7a4d747e1 100644 --- a/test/core/tsi/ssl_transport_security_test.cc +++ b/test/core/tsi/ssl_transport_security_test.cc @@ -81,7 +81,8 @@ typedef struct ssl_tsi_test_fixture { } ssl_tsi_test_fixture; static void ssl_test_setup_handshakers(tsi_test_fixture* fixture) { - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); GPR_ASSERT(ssl_fixture != nullptr); GPR_ASSERT(ssl_fixture->key_cert_lib != nullptr); GPR_ASSERT(ssl_fixture->alpn_lib != nullptr); @@ -244,7 +245,8 @@ static void check_client_peer(ssl_tsi_test_fixture* ssl_fixture, } static void ssl_test_check_handshaker_peers(tsi_test_fixture* fixture) { - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); GPR_ASSERT(ssl_fixture != nullptr); GPR_ASSERT(ssl_fixture->key_cert_lib != nullptr); ssl_key_cert_lib* key_cert_lib = ssl_fixture->key_cert_lib; @@ -281,7 +283,8 @@ static void ssl_test_pem_key_cert_pair_destroy(tsi_ssl_pem_key_cert_pair kp) { } static void ssl_test_destruct(tsi_test_fixture* fixture) { - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); if (ssl_fixture == nullptr) { return; } @@ -425,7 +428,8 @@ void ssl_tsi_test_do_handshake() { void ssl_tsi_test_do_handshake_with_client_authentication() { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->force_client_auth = true; tsi_test_do_handshake(fixture); tsi_test_fixture_destroy(fixture); @@ -434,7 +438,8 @@ void ssl_tsi_test_do_handshake_with_client_authentication() { void ssl_tsi_test_do_handshake_with_server_name_indication_exact_domain() { /* server1 cert contains "waterzooi.test.google.be" in SAN. */ tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->server_name_indication = const_cast<char*>("waterzooi.test.google.be"); tsi_test_do_handshake(fixture); @@ -444,7 +449,8 @@ void ssl_tsi_test_do_handshake_with_server_name_indication_exact_domain() { void ssl_tsi_test_do_handshake_with_server_name_indication_wild_star_domain() { /* server1 cert contains "*.test.google.fr" in SAN. */ tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->server_name_indication = const_cast<char*>("juju.test.google.fr"); tsi_test_do_handshake(fixture); @@ -453,7 +459,8 @@ void ssl_tsi_test_do_handshake_with_server_name_indication_wild_star_domain() { void ssl_tsi_test_do_handshake_with_bad_server_cert() { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->key_cert_lib->use_bad_server_cert = true; tsi_test_do_handshake(fixture); tsi_test_fixture_destroy(fixture); @@ -461,7 +468,8 @@ void ssl_tsi_test_do_handshake_with_bad_server_cert() { void ssl_tsi_test_do_handshake_with_bad_client_cert() { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->key_cert_lib->use_bad_client_cert = true; ssl_fixture->force_client_auth = true; tsi_test_do_handshake(fixture); @@ -470,7 +478,8 @@ void ssl_tsi_test_do_handshake_with_bad_client_cert() { void ssl_tsi_test_do_handshake_alpn_client_no_server() { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->alpn_lib->alpn_mode = ALPN_CLIENT_NO_SERVER; tsi_test_do_handshake(fixture); tsi_test_fixture_destroy(fixture); @@ -478,7 +487,8 @@ void ssl_tsi_test_do_handshake_alpn_client_no_server() { void ssl_tsi_test_do_handshake_alpn_server_no_client() { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->alpn_lib->alpn_mode = ALPN_SERVER_NO_CLIENT; tsi_test_do_handshake(fixture); tsi_test_fixture_destroy(fixture); @@ -486,7 +496,8 @@ void ssl_tsi_test_do_handshake_alpn_server_no_client() { void ssl_tsi_test_do_handshake_alpn_client_server_mismatch() { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->alpn_lib->alpn_mode = ALPN_CLIENT_SERVER_MISMATCH; tsi_test_do_handshake(fixture); tsi_test_fixture_destroy(fixture); @@ -494,7 +505,8 @@ void ssl_tsi_test_do_handshake_alpn_client_server_mismatch() { void ssl_tsi_test_do_handshake_alpn_client_server_ok() { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); ssl_fixture->alpn_lib->alpn_mode = ALPN_CLIENT_SERVER_OK; tsi_test_do_handshake(fixture); tsi_test_fixture_destroy(fixture); @@ -511,7 +523,8 @@ void ssl_tsi_test_do_round_trip_for_all_configs() { v <<= 1; } tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); tsi_test_frame_protector_config_destroy(ssl_fixture->base.config); ssl_fixture->base.config = tsi_test_frame_protector_config_create( bit_array[0], bit_array[1], bit_array[2], bit_array[3], bit_array[4], @@ -531,7 +544,8 @@ void ssl_tsi_test_do_round_trip_odd_buffer_size() { for (size_t ind4 = 0; ind4 < size; ind4++) { for (size_t ind5 = 0; ind5 < size; ind5++) { tsi_test_fixture* fixture = ssl_tsi_test_fixture_create(); - ssl_tsi_test_fixture* ssl_fixture = (ssl_tsi_test_fixture*)fixture; + ssl_tsi_test_fixture* ssl_fixture = + reinterpret_cast<ssl_tsi_test_fixture*>(fixture); tsi_test_frame_protector_config_set_buffer_size( ssl_fixture->base.config, odd_sizes[ind1], odd_sizes[ind2], odd_sizes[ind3], odd_sizes[ind4], odd_sizes[ind5]); @@ -571,7 +585,7 @@ void test_tsi_ssl_client_handshaker_factory_refcounting() { handshaker_factory_destructor_called = false; original_vtable = tsi_ssl_handshaker_factory_swap_vtable( - (tsi_ssl_handshaker_factory*)client_handshaker_factory, + reinterpret_cast<tsi_ssl_handshaker_factory*>(client_handshaker_factory), &test_handshaker_factory_vtable); tsi_handshaker* handshaker[3]; @@ -615,7 +629,7 @@ void test_tsi_ssl_server_handshaker_factory_refcounting() { handshaker_factory_destructor_called = false; original_vtable = tsi_ssl_handshaker_factory_swap_vtable( - (tsi_ssl_handshaker_factory*)server_handshaker_factory, + reinterpret_cast<tsi_ssl_handshaker_factory*>(server_handshaker_factory), &test_handshaker_factory_vtable); for (i = 0; i < 3; ++i) { @@ -667,9 +681,15 @@ int main(int argc, char** argv) { ssl_tsi_test_do_handshake_with_server_name_indication_wild_star_domain(); ssl_tsi_test_do_handshake_with_bad_server_cert(); ssl_tsi_test_do_handshake_with_bad_client_cert(); - ssl_tsi_test_do_handshake_alpn_client_no_server(); + // TODO: BoringSSL and OpenSSL have different behaviors on handling mismatched + // ALPN. Re-enable this test if we can detect in the runtime which SSL library + // is used. + // ssl_tsi_test_do_handshake_alpn_client_no_server(); ssl_tsi_test_do_handshake_alpn_server_no_client(); - ssl_tsi_test_do_handshake_alpn_client_server_mismatch(); + // TODO: BoringSSL and OpenSSL have different behaviors on handling mismatched + // ALPN. Re-enable this test if we can detect in the runtime which SSL library + // is used. + // ssl_tsi_test_do_handshake_alpn_client_server_mismatch(); ssl_tsi_test_do_handshake_alpn_client_server_ok(); ssl_tsi_test_do_round_trip_for_all_configs(); ssl_tsi_test_do_round_trip_odd_buffer_size(); diff --git a/test/core/tsi/transport_security_test.cc b/test/core/tsi/transport_security_test.cc index 42e17df25d..5c92912f6f 100644 --- a/test/core/tsi/transport_security_test.cc +++ b/test/core/tsi/transport_security_test.cc @@ -23,11 +23,11 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> #include <openssl/crypto.h> #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/tsi/fake_transport_security.h" #include "src/core/tsi/ssl_transport_security.h" #include "test/core/util/test_config.h" diff --git a/test/core/tsi/transport_security_test_lib.cc b/test/core/tsi/transport_security_test_lib.cc index 3537366de9..080585365f 100644 --- a/test/core/tsi/transport_security_test_lib.cc +++ b/test/core/tsi/transport_security_test_lib.cc @@ -144,8 +144,9 @@ static void maybe_append_unused_bytes(handshaker_args* args) { tsi_test_fixture* fixture = args->fixture; if (fixture->test_unused_bytes && !args->appended_unused_bytes) { args->appended_unused_bytes = true; - send_bytes_to_peer(fixture, (const unsigned char*)TSI_TEST_UNUSED_BYTES, - strlen(TSI_TEST_UNUSED_BYTES), args->is_client); + send_bytes_to_peer( + fixture, reinterpret_cast<const unsigned char*>(TSI_TEST_UNUSED_BYTES), + strlen(TSI_TEST_UNUSED_BYTES), args->is_client); if (fixture->client_result != nullptr && fixture->server_result == nullptr) { fixture->has_client_finished_first = true; @@ -288,7 +289,7 @@ grpc_error* on_handshake_next_done(tsi_result result, void* user_data, const unsigned char* bytes_to_send, size_t bytes_to_send_size, tsi_handshaker_result* handshaker_result) { - handshaker_args* args = (handshaker_args*)user_data; + handshaker_args* args = static_cast<handshaker_args*>(user_data); GPR_ASSERT(args != nullptr); GPR_ASSERT(args->fixture != nullptr); tsi_test_fixture* fixture = args->fixture; @@ -327,7 +328,7 @@ grpc_error* on_handshake_next_done(tsi_result result, void* user_data, static void on_handshake_next_done_wrapper( tsi_result result, void* user_data, const unsigned char* bytes_to_send, size_t bytes_to_send_size, tsi_handshaker_result* handshaker_result) { - handshaker_args* args = (handshaker_args*)user_data; + handshaker_args* args = static_cast<handshaker_args*>(user_data); args->error = on_handshake_next_done(result, user_data, bytes_to_send, bytes_to_send_size, handshaker_result); } @@ -471,7 +472,7 @@ static unsigned char* generate_random_message(size_t size) { unsigned char* output = static_cast<unsigned char*>(gpr_zalloc(sizeof(unsigned char) * size)); for (i = 0; i < size - 1; ++i) { - output[i] = chars[rand() % (int)(sizeof(chars) - 1)]; + output[i] = chars[rand() % static_cast<int>(sizeof(chars) - 1)]; } return output; } diff --git a/test/core/util/BUILD b/test/core/util/BUILD index 974940b398..366cf05690 100644 --- a/test/core/util/BUILD +++ b/test/core/util/BUILD @@ -52,6 +52,7 @@ grpc_cc_library( name = "grpc_test_util_base", srcs = [ "channel_tracing_utils.cc", + "cmdline.cc", "grpc_profiler.cc", "histogram.cc", "mock_endpoint.cc", @@ -62,12 +63,15 @@ grpc_cc_library( "port_server_client.cc", "reconnect_server.cc", "slice_splitter.cc", + "subprocess_posix.cc", + "subprocess_windows.cc", "test_tcp_server.cc", "tracer_util.cc", "trickle_endpoint.cc", ], hdrs = [ "channel_tracing_utils.h", + "cmdline.h", "grpc_profiler.h", "histogram.h", "mock_endpoint.h", @@ -76,6 +80,7 @@ grpc_cc_library( "port.h", "port_server_client.h", "reconnect_server.h", + "subprocess.h", "slice_splitter.h", "test_tcp_server.h", "tracer_util.h", @@ -113,6 +118,16 @@ grpc_cc_library( ], ) +grpc_cc_test( + name = "cmdline_test", + srcs = ["cmdline_test.cc"], + language = "C++", + deps = [ + ":grpc_test_util", + "//:gpr", + ], +) + grpc_cc_library( name = "fuzzer_corpus_test", testonly = 1, diff --git a/test/core/util/channel_tracing_utils.cc b/test/core/util/channel_tracing_utils.cc index 5644d1811d..7e96d2d57d 100644 --- a/test/core/util/channel_tracing_utils.cc +++ b/test/core/util/channel_tracing_utils.cc @@ -20,8 +20,8 @@ #include <string.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> #include "src/core/lib/channel/channel_tracer.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/json/json.h" static grpc_json* get_json_child(grpc_json* parent, const char* key) { diff --git a/test/core/util/cmdline.cc b/test/core/util/cmdline.cc new file mode 100644 index 0000000000..e76acb5e2b --- /dev/null +++ b/test/core/util/cmdline.cc @@ -0,0 +1,331 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * 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. + * + */ + +#include "test/core/util/cmdline.h" + +#include <limits.h> +#include <stdio.h> +#include <string.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> +#include <grpc/support/string_util.h> +#include "src/core/lib/gpr/string.h" + +typedef enum { ARGTYPE_INT, ARGTYPE_BOOL, ARGTYPE_STRING } argtype; + +typedef struct arg { + const char* name; + const char* help; + argtype type; + void* value; + struct arg* next; +} arg; + +struct gpr_cmdline { + const char* description; + arg* args; + const char* argv0; + + const char* extra_arg_name; + const char* extra_arg_help; + void (*extra_arg)(void* user_data, const char* arg); + void* extra_arg_user_data; + + int (*state)(gpr_cmdline* cl, char* arg); + arg* cur_arg; + + int survive_failure; +}; + +static int normal_state(gpr_cmdline* cl, char* arg); + +gpr_cmdline* gpr_cmdline_create(const char* description) { + gpr_cmdline* cl = static_cast<gpr_cmdline*>(gpr_zalloc(sizeof(gpr_cmdline))); + + cl->description = description; + cl->state = normal_state; + + return cl; +} + +void gpr_cmdline_set_survive_failure(gpr_cmdline* cl) { + cl->survive_failure = 1; +} + +void gpr_cmdline_destroy(gpr_cmdline* cl) { + while (cl->args) { + arg* a = cl->args; + cl->args = a->next; + gpr_free(a); + } + gpr_free(cl); +} + +static void add_arg(gpr_cmdline* cl, const char* name, const char* help, + argtype type, void* value) { + arg* a; + + for (a = cl->args; a; a = a->next) { + GPR_ASSERT(0 != strcmp(a->name, name)); + } + + a = static_cast<arg*>(gpr_zalloc(sizeof(arg))); + a->name = name; + a->help = help; + a->type = type; + a->value = value; + a->next = cl->args; + cl->args = a; +} + +void gpr_cmdline_add_int(gpr_cmdline* cl, const char* name, const char* help, + int* value) { + add_arg(cl, name, help, ARGTYPE_INT, value); +} + +void gpr_cmdline_add_flag(gpr_cmdline* cl, const char* name, const char* help, + int* value) { + add_arg(cl, name, help, ARGTYPE_BOOL, value); +} + +void gpr_cmdline_add_string(gpr_cmdline* cl, const char* name, const char* help, + const char** value) { + add_arg(cl, name, help, ARGTYPE_STRING, value); +} + +void gpr_cmdline_on_extra_arg( + gpr_cmdline* cl, const char* name, const char* help, + void (*on_extra_arg)(void* user_data, const char* arg), void* user_data) { + GPR_ASSERT(!cl->extra_arg); + GPR_ASSERT(on_extra_arg); + + cl->extra_arg = on_extra_arg; + cl->extra_arg_user_data = user_data; + cl->extra_arg_name = name; + cl->extra_arg_help = help; +} + +/* recursively descend argument list, adding the last element + to s first - so that arguments are added in the order they were + added to the list by api calls */ +static void add_args_to_usage(gpr_strvec* s, arg* a) { + char* tmp; + + if (!a) return; + add_args_to_usage(s, a->next); + + switch (a->type) { + case ARGTYPE_BOOL: + gpr_asprintf(&tmp, " [--%s|--no-%s]", a->name, a->name); + gpr_strvec_add(s, tmp); + break; + case ARGTYPE_STRING: + gpr_asprintf(&tmp, " [--%s=string]", a->name); + gpr_strvec_add(s, tmp); + break; + case ARGTYPE_INT: + gpr_asprintf(&tmp, " [--%s=int]", a->name); + gpr_strvec_add(s, tmp); + break; + } +} + +char* gpr_cmdline_usage_string(gpr_cmdline* cl, const char* argv0) { + /* TODO(ctiller): make this prettier */ + gpr_strvec s; + char* tmp; + const char* name = strrchr(argv0, '/'); + + if (name) { + name++; + } else { + name = argv0; + } + + gpr_strvec_init(&s); + + gpr_asprintf(&tmp, "Usage: %s", name); + gpr_strvec_add(&s, tmp); + add_args_to_usage(&s, cl->args); + if (cl->extra_arg) { + gpr_asprintf(&tmp, " [%s...]", cl->extra_arg_name); + gpr_strvec_add(&s, tmp); + } + gpr_strvec_add(&s, gpr_strdup("\n")); + + tmp = gpr_strvec_flatten(&s, nullptr); + gpr_strvec_destroy(&s); + return tmp; +} + +static int print_usage_and_die(gpr_cmdline* cl) { + char* usage = gpr_cmdline_usage_string(cl, cl->argv0); + fprintf(stderr, "%s", usage); + gpr_free(usage); + if (!cl->survive_failure) { + exit(1); + } + return 0; +} + +static int extra_state(gpr_cmdline* cl, char* str) { + if (!cl->extra_arg) { + return print_usage_and_die(cl); + } + cl->extra_arg(cl->extra_arg_user_data, str); + return 1; +} + +static arg* find_arg(gpr_cmdline* cl, char* name) { + arg* a; + + for (a = cl->args; a; a = a->next) { + if (0 == strcmp(a->name, name)) { + break; + } + } + + if (!a) { + fprintf(stderr, "Unknown argument: %s\n", name); + return nullptr; + } + + return a; +} + +static int value_state(gpr_cmdline* cl, char* str) { + long intval; + char* end; + + GPR_ASSERT(cl->cur_arg); + + switch (cl->cur_arg->type) { + case ARGTYPE_INT: + intval = strtol(str, &end, 0); + if (*end || intval < INT_MIN || intval > INT_MAX) { + fprintf(stderr, "expected integer, got '%s' for %s\n", str, + cl->cur_arg->name); + return print_usage_and_die(cl); + } + *static_cast<int*>(cl->cur_arg->value) = static_cast<int>(intval); + break; + case ARGTYPE_BOOL: + if (0 == strcmp(str, "1") || 0 == strcmp(str, "true")) { + *static_cast<int*>(cl->cur_arg->value) = 1; + } else if (0 == strcmp(str, "0") || 0 == strcmp(str, "false")) { + *static_cast<int*>(cl->cur_arg->value) = 0; + } else { + fprintf(stderr, "expected boolean, got '%s' for %s\n", str, + cl->cur_arg->name); + return print_usage_and_die(cl); + } + break; + case ARGTYPE_STRING: + *static_cast<char**>(cl->cur_arg->value) = str; + break; + } + + cl->state = normal_state; + return 1; +} + +static int normal_state(gpr_cmdline* cl, char* str) { + char* eq = nullptr; + char* tmp = nullptr; + char* arg_name = nullptr; + int r = 1; + + if (0 == strcmp(str, "-help") || 0 == strcmp(str, "--help") || + 0 == strcmp(str, "-h")) { + return print_usage_and_die(cl); + } + + cl->cur_arg = nullptr; + + if (str[0] == '-') { + if (str[1] == '-') { + if (str[2] == 0) { + /* handle '--' to move to just extra args */ + cl->state = extra_state; + return 1; + } + str += 2; + } else { + str += 1; + } + /* first byte of str is now past the leading '-' or '--' */ + if (str[0] == 'n' && str[1] == 'o' && str[2] == '-') { + /* str is of the form '--no-foo' - it's a flag disable */ + str += 3; + cl->cur_arg = find_arg(cl, str); + if (cl->cur_arg == nullptr) { + return print_usage_and_die(cl); + } + if (cl->cur_arg->type != ARGTYPE_BOOL) { + fprintf(stderr, "%s is not a flag argument\n", str); + return print_usage_and_die(cl); + } + *static_cast<int*>(cl->cur_arg->value) = 0; + return 1; /* early out */ + } + eq = strchr(str, '='); + if (eq != nullptr) { + /* copy the string into a temp buffer and extract the name */ + tmp = arg_name = + static_cast<char*>(gpr_malloc(static_cast<size_t>(eq - str + 1))); + memcpy(arg_name, str, static_cast<size_t>(eq - str)); + arg_name[eq - str] = 0; + } else { + arg_name = str; + } + cl->cur_arg = find_arg(cl, arg_name); + if (cl->cur_arg == nullptr) { + return print_usage_and_die(cl); + } + if (eq != nullptr) { + /* str was of the type --foo=value, parse the value */ + r = value_state(cl, eq + 1); + } else if (cl->cur_arg->type != ARGTYPE_BOOL) { + /* flag types don't have a '--foo value' variant, other types do */ + cl->state = value_state; + } else { + /* flag parameter: just set the value */ + *static_cast<int*>(cl->cur_arg->value) = 1; + } + } else { + r = extra_state(cl, str); + } + + gpr_free(tmp); + return r; +} + +int gpr_cmdline_parse(gpr_cmdline* cl, int argc, char** argv) { + int i; + + GPR_ASSERT(argc >= 1); + cl->argv0 = argv[0]; + + for (i = 1; i < argc; i++) { + if (!cl->state(cl, argv[i])) { + return 0; + } + } + return 1; +} diff --git a/test/core/util/cmdline.h b/test/core/util/cmdline.h new file mode 100644 index 0000000000..3ae35d6e6a --- /dev/null +++ b/test/core/util/cmdline.h @@ -0,0 +1,80 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * 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. + * + */ + +#ifndef GRPC_TEST_CORE_UTIL_CMDLINE_H +#define GRPC_TEST_CORE_UTIL_CMDLINE_H + +#include <grpc/support/port_platform.h> + +/** Simple command line parser. + + Supports flags that can be specified as -foo, --foo, --no-foo, -no-foo, etc + And integers, strings that can be specified as -foo=4, -foo blah, etc + + No support for short command line options (but we may get that in the + future.) + + Usage (for a program with a single flag argument 'foo'): + + int main(int argc, char **argv) { + gpr_cmdline *cl; + int verbose = 0; + + cl = gpr_cmdline_create("My cool tool"); + gpr_cmdline_add_int(cl, "verbose", "Produce verbose output?", &verbose); + gpr_cmdline_parse(cl, argc, argv); + gpr_cmdline_destroy(cl); + + if (verbose) { + gpr_log(GPR_INFO, "Goodbye cruel world!"); + } + + return 0; + } */ + +typedef struct gpr_cmdline gpr_cmdline; + +/** Construct a command line parser: takes a short description of the tool + doing the parsing */ +gpr_cmdline* gpr_cmdline_create(const char* description); +/** Add an integer parameter, with a name (used on the command line) and some + helpful text (used in the command usage) */ +void gpr_cmdline_add_int(gpr_cmdline* cl, const char* name, const char* help, + int* value); +/** The same, for a boolean flag */ +void gpr_cmdline_add_flag(gpr_cmdline* cl, const char* name, const char* help, + int* value); +/** And for a string */ +void gpr_cmdline_add_string(gpr_cmdline* cl, const char* name, const char* help, + const char** value); +/** Set a callback for non-named arguments */ +void gpr_cmdline_on_extra_arg( + gpr_cmdline* cl, const char* name, const char* help, + void (*on_extra_arg)(void* user_data, const char* arg), void* user_data); +/** Enable surviving failure: default behavior is to exit the process */ +void gpr_cmdline_set_survive_failure(gpr_cmdline* cl); +/** Parse the command line; returns 1 on success, on failure either dies + (by default) or returns 0 if gpr_cmdline_set_survive_failure() has been + called */ +int gpr_cmdline_parse(gpr_cmdline* cl, int argc, char** argv); +/** Destroy the parser */ +void gpr_cmdline_destroy(gpr_cmdline* cl); +/** Get a string describing usage */ +char* gpr_cmdline_usage_string(gpr_cmdline* cl, const char* argv0); + +#endif /* GRPC_TEST_CORE_UTIL_CMDLINE_H */ diff --git a/test/core/gpr/cmdline_test.cc b/test/core/util/cmdline_test.cc index 172efda8a0..9f5ad88d57 100644 --- a/test/core/gpr/cmdline_test.cc +++ b/test/core/util/cmdline_test.cc @@ -16,13 +16,13 @@ * */ -#include <grpc/support/cmdline.h> - #include <string.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" +#include "test/core/util/cmdline.h" #include "test/core/util/test_config.h" #define LOG_TEST() gpr_log(GPR_INFO, "test at %s:%d", __FILE__, __LINE__) diff --git a/test/core/util/debugger_macros.cc b/test/core/util/debugger_macros.cc index bb96fc7054..05fb146173 100644 --- a/test/core/util/debugger_macros.cc +++ b/test/core/util/debugger_macros.cc @@ -54,5 +54,6 @@ grpc_stream* grpc_transport_stream_from_call(grpc_call* call) { } grpc_chttp2_stream* grpc_chttp2_stream_from_call(grpc_call* call) { - return (grpc_chttp2_stream*)grpc_transport_stream_from_call(call); + return reinterpret_cast<grpc_chttp2_stream*>( + grpc_transport_stream_from_call(call)); } diff --git a/test/core/util/fuzzer_one_entry_runner.sh b/test/core/util/fuzzer_one_entry_runner.sh index 2634a1b3a9..7c471afcc2 100755 --- a/test/core/util/fuzzer_one_entry_runner.sh +++ b/test/core/util/fuzzer_one_entry_runner.sh @@ -15,4 +15,4 @@ # 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. -$1 $2 +"$1" "$2" diff --git a/test/core/util/histogram.cc b/test/core/util/histogram.cc index 2f916f831d..f028ac404e 100644 --- a/test/core/util/histogram.cc +++ b/test/core/util/histogram.cc @@ -16,6 +16,8 @@ * */ +#include "test/core/util/histogram.h" + #include <math.h> #include <stddef.h> #include <string.h> @@ -23,9 +25,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/port_platform.h> -#include <grpc/support/useful.h> -#include "test/core/util/histogram.h" +#include "src/core/lib/gpr/useful.h" /* Histograms are stored with exponentially increasing bucket sizes. The first bucket is [0, m) where m = 1 + resolution @@ -56,7 +57,7 @@ struct grpc_histogram { /* determine a bucket index given a value - does no bounds checking */ static size_t bucket_for_unchecked(grpc_histogram* h, double x) { - return (size_t)(log(x) * h->one_on_log_multiplier); + return static_cast<size_t>(log(x) * h->one_on_log_multiplier); } /* bounds checked version of the above */ @@ -73,7 +74,8 @@ static double bucket_start(grpc_histogram* h, double x) { grpc_histogram* grpc_histogram_create(double resolution, double max_bucket_start) { - grpc_histogram* h = (grpc_histogram*)gpr_malloc(sizeof(grpc_histogram)); + grpc_histogram* h = + static_cast<grpc_histogram*>(gpr_malloc(sizeof(grpc_histogram))); GPR_ASSERT(resolution > 0.0); GPR_ASSERT(max_bucket_start > resolution); h->sum = 0.0; @@ -87,7 +89,8 @@ grpc_histogram* grpc_histogram_create(double resolution, h->num_buckets = bucket_for_unchecked(h, max_bucket_start) + 1; GPR_ASSERT(h->num_buckets > 1); GPR_ASSERT(h->num_buckets < 100000000); - h->buckets = (uint32_t*)gpr_zalloc(sizeof(uint32_t) * h->num_buckets); + h->buckets = + static_cast<uint32_t*>(gpr_zalloc(sizeof(uint32_t) * h->num_buckets)); return h; } @@ -175,14 +178,14 @@ static double threshold_for_count_below(grpc_histogram* h, double count_below) { break; } } - return (bucket_start(h, (double)lower_idx) + - bucket_start(h, (double)upper_idx)) / + return (bucket_start(h, static_cast<double>(lower_idx)) + + bucket_start(h, static_cast<double>(upper_idx))) / 2.0; } else { /* treat values as uniform throughout the bucket, and find where this value should lie */ - lower_bound = bucket_start(h, (double)lower_idx); - upper_bound = bucket_start(h, (double)(lower_idx + 1)); + lower_bound = bucket_start(h, static_cast<double>(lower_idx)); + upper_bound = bucket_start(h, static_cast<double>(lower_idx + 1)); return GPR_CLAMP(upper_bound - (upper_bound - lower_bound) * (count_so_far - count_below) / h->buckets[lower_idx], diff --git a/test/core/util/memory_counters.cc b/test/core/util/memory_counters.cc index 32d7b89c9a..4960fe0757 100644 --- a/test/core/util/memory_counters.cc +++ b/test/core/util/memory_counters.cc @@ -48,13 +48,13 @@ static void* guard_malloc(size_t size) { NO_BARRIER_FETCH_ADD(&g_memory_counters.total_size_relative, (gpr_atm)size); NO_BARRIER_FETCH_ADD(&g_memory_counters.total_allocs_absolute, (gpr_atm)1); NO_BARRIER_FETCH_ADD(&g_memory_counters.total_allocs_relative, (gpr_atm)1); - ptr = (size_t*)g_old_allocs.malloc_fn(size + sizeof(size)); + ptr = static_cast<size_t*>(g_old_allocs.malloc_fn(size + sizeof(size))); *ptr++ = size; return ptr; } static void* guard_realloc(void* vptr, size_t size) { - size_t* ptr = (size_t*)vptr; + size_t* ptr = static_cast<size_t*>(vptr); if (vptr == nullptr) { return guard_malloc(size); } @@ -67,13 +67,13 @@ static void* guard_realloc(void* vptr, size_t size) { NO_BARRIER_FETCH_ADD(&g_memory_counters.total_size_relative, -(gpr_atm)*ptr); NO_BARRIER_FETCH_ADD(&g_memory_counters.total_size_relative, (gpr_atm)size); NO_BARRIER_FETCH_ADD(&g_memory_counters.total_allocs_absolute, (gpr_atm)1); - ptr = (size_t*)g_old_allocs.realloc_fn(ptr, size + sizeof(size)); + ptr = static_cast<size_t*>(g_old_allocs.realloc_fn(ptr, size + sizeof(size))); *ptr++ = size; return ptr; } static void guard_free(void* vptr) { - size_t* ptr = (size_t*)vptr; + size_t* ptr = static_cast<size_t*>(vptr); if (!vptr) return; --ptr; NO_BARRIER_FETCH_ADD(&g_memory_counters.total_size_relative, -(gpr_atm)*ptr); diff --git a/test/core/util/mock_endpoint.cc b/test/core/util/mock_endpoint.cc index 4b35a581b1..adeff18ef0 100644 --- a/test/core/util/mock_endpoint.cc +++ b/test/core/util/mock_endpoint.cc @@ -42,7 +42,7 @@ typedef struct grpc_mock_endpoint { static void me_read(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb) { - grpc_mock_endpoint* m = (grpc_mock_endpoint*)ep; + grpc_mock_endpoint* m = reinterpret_cast<grpc_mock_endpoint*>(ep); gpr_mu_lock(&m->mu); if (m->read_buffer.count > 0) { grpc_slice_buffer_swap(&m->read_buffer, slices); @@ -56,7 +56,7 @@ static void me_read(grpc_endpoint* ep, grpc_slice_buffer* slices, static void me_write(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb) { - grpc_mock_endpoint* m = (grpc_mock_endpoint*)ep; + grpc_mock_endpoint* m = reinterpret_cast<grpc_mock_endpoint*>(ep); for (size_t i = 0; i < slices->count; i++) { m->on_write(slices->slices[i]); } @@ -72,7 +72,7 @@ static void me_delete_from_pollset_set(grpc_endpoint* ep, grpc_pollset_set* pollset) {} static void me_shutdown(grpc_endpoint* ep, grpc_error* why) { - grpc_mock_endpoint* m = (grpc_mock_endpoint*)ep; + grpc_mock_endpoint* m = reinterpret_cast<grpc_mock_endpoint*>(ep); gpr_mu_lock(&m->mu); if (m->on_read) { GRPC_CLOSURE_SCHED(m->on_read, @@ -86,7 +86,7 @@ static void me_shutdown(grpc_endpoint* ep, grpc_error* why) { } static void me_destroy(grpc_endpoint* ep) { - grpc_mock_endpoint* m = (grpc_mock_endpoint*)ep; + grpc_mock_endpoint* m = reinterpret_cast<grpc_mock_endpoint*>(ep); grpc_slice_buffer_destroy(&m->read_buffer); grpc_resource_user_unref(m->resource_user); gpr_free(m); @@ -97,7 +97,7 @@ static char* me_get_peer(grpc_endpoint* ep) { } static grpc_resource_user* me_get_resource_user(grpc_endpoint* ep) { - grpc_mock_endpoint* m = (grpc_mock_endpoint*)ep; + grpc_mock_endpoint* m = reinterpret_cast<grpc_mock_endpoint*>(ep); return m->resource_user; } @@ -118,7 +118,8 @@ static const grpc_endpoint_vtable vtable = { grpc_endpoint* grpc_mock_endpoint_create(void (*on_write)(grpc_slice slice), grpc_resource_quota* resource_quota) { - grpc_mock_endpoint* m = (grpc_mock_endpoint*)gpr_malloc(sizeof(*m)); + grpc_mock_endpoint* m = + static_cast<grpc_mock_endpoint*>(gpr_malloc(sizeof(*m))); m->base.vtable = &vtable; char* name; gpr_asprintf(&name, "mock_endpoint_%" PRIxPTR, (intptr_t)m); @@ -132,7 +133,7 @@ grpc_endpoint* grpc_mock_endpoint_create(void (*on_write)(grpc_slice slice), } void grpc_mock_endpoint_put_read(grpc_endpoint* ep, grpc_slice slice) { - grpc_mock_endpoint* m = (grpc_mock_endpoint*)ep; + grpc_mock_endpoint* m = reinterpret_cast<grpc_mock_endpoint*>(ep); gpr_mu_lock(&m->mu); if (m->on_read != nullptr) { grpc_slice_buffer_add(m->on_read_out, slice); diff --git a/test/core/util/parse_hexstring.cc b/test/core/util/parse_hexstring.cc index 622642a298..cd64843bd3 100644 --- a/test/core/util/parse_hexstring.cc +++ b/test/core/util/parse_hexstring.cc @@ -39,10 +39,11 @@ grpc_slice parse_hexstring(const char* hexstring) { temp = 0; for (p = hexstring; *p; p++) { if (*p >= '0' && *p <= '9') { - temp = (uint8_t)(temp << 4) | (uint8_t)(*p - '0'); + temp = static_cast<uint8_t>(temp << 4) | static_cast<uint8_t>(*p - '0'); nibbles++; } else if (*p >= 'a' && *p <= 'f') { - temp = (uint8_t)(temp << 4) | (uint8_t)(*p - 'a' + 10); + temp = + static_cast<uint8_t>(temp << 4) | static_cast<uint8_t>(*p - 'a' + 10); nibbles++; } if (nibbles == 2) { diff --git a/test/core/util/passthru_endpoint.cc b/test/core/util/passthru_endpoint.cc index 5f127cb960..5958216747 100644 --- a/test/core/util/passthru_endpoint.cc +++ b/test/core/util/passthru_endpoint.cc @@ -48,8 +48,6 @@ struct passthru_endpoint { gpr_mu mu; int halves; grpc_passthru_endpoint_stats* stats; - grpc_passthru_endpoint_stats - dummy_stats; // used if constructor stats == nullptr bool shutdown; half client; half server; @@ -57,7 +55,7 @@ struct passthru_endpoint { static void me_read(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb) { - half* m = (half*)ep; + half* m = reinterpret_cast<half*>(ep); gpr_mu_lock(&m->parent->mu); if (m->parent->shutdown) { GRPC_CLOSURE_SCHED( @@ -79,7 +77,7 @@ static half* other_half(half* h) { static void me_write(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb) { - half* m = other_half((half*)ep); + half* m = other_half(reinterpret_cast<half*>(ep)); gpr_mu_lock(&m->parent->mu); grpc_error* error = GRPC_ERROR_NONE; gpr_atm_no_barrier_fetch_add(&m->parent->stats->num_writes, (gpr_atm)1); @@ -110,7 +108,7 @@ static void me_delete_from_pollset_set(grpc_endpoint* ep, grpc_pollset_set* pollset) {} static void me_shutdown(grpc_endpoint* ep, grpc_error* why) { - half* m = (half*)ep; + half* m = reinterpret_cast<half*>(ep); gpr_mu_lock(&m->parent->mu); m->parent->shutdown = true; if (m->on_read) { @@ -132,11 +130,12 @@ static void me_shutdown(grpc_endpoint* ep, grpc_error* why) { } static void me_destroy(grpc_endpoint* ep) { - passthru_endpoint* p = ((half*)ep)->parent; + passthru_endpoint* p = (reinterpret_cast<half*>(ep))->parent; gpr_mu_lock(&p->mu); if (0 == --p->halves) { gpr_mu_unlock(&p->mu); gpr_mu_destroy(&p->mu); + grpc_passthru_endpoint_stats_destroy(p->stats); grpc_slice_buffer_destroy_internal(&p->client.read_buffer); grpc_slice_buffer_destroy_internal(&p->server.read_buffer); grpc_resource_user_unref(p->client.resource_user); @@ -148,15 +147,16 @@ static void me_destroy(grpc_endpoint* ep) { } static char* me_get_peer(grpc_endpoint* ep) { - passthru_endpoint* p = ((half*)ep)->parent; - return ((half*)ep) == &p->client ? gpr_strdup("fake:mock_client_endpoint") - : gpr_strdup("fake:mock_server_endpoint"); + passthru_endpoint* p = (reinterpret_cast<half*>(ep))->parent; + return (reinterpret_cast<half*>(ep)) == &p->client + ? gpr_strdup("fake:mock_client_endpoint") + : gpr_strdup("fake:mock_server_endpoint"); } static int me_get_fd(grpc_endpoint* ep) { return -1; } static grpc_resource_user* me_get_resource_user(grpc_endpoint* ep) { - half* m = (half*)ep; + half* m = reinterpret_cast<half*>(ep); return m->resource_user; } @@ -191,14 +191,34 @@ void grpc_passthru_endpoint_create(grpc_endpoint** client, grpc_endpoint** server, grpc_resource_quota* resource_quota, grpc_passthru_endpoint_stats* stats) { - passthru_endpoint* m = (passthru_endpoint*)gpr_malloc(sizeof(*m)); + passthru_endpoint* m = + static_cast<passthru_endpoint*>(gpr_malloc(sizeof(*m))); m->halves = 2; m->shutdown = 0; - m->stats = stats == nullptr ? &m->dummy_stats : stats; - memset(m->stats, 0, sizeof(*m->stats)); + if (stats == nullptr) { + m->stats = grpc_passthru_endpoint_stats_create(); + } else { + gpr_ref(&stats->refs); + m->stats = stats; + } half_init(&m->client, m, resource_quota, "client"); half_init(&m->server, m, resource_quota, "server"); gpr_mu_init(&m->mu); *client = &m->client.base; *server = &m->server.base; } + +grpc_passthru_endpoint_stats* grpc_passthru_endpoint_stats_create() { + grpc_passthru_endpoint_stats* stats = + static_cast<grpc_passthru_endpoint_stats*>( + gpr_malloc(sizeof(grpc_passthru_endpoint_stats))); + memset(stats, 0, sizeof(*stats)); + gpr_ref_init(&stats->refs, 1); + return stats; +} + +void grpc_passthru_endpoint_stats_destroy(grpc_passthru_endpoint_stats* stats) { + if (gpr_unref(&stats->refs)) { + gpr_free(stats); + } +} diff --git a/test/core/util/passthru_endpoint.h b/test/core/util/passthru_endpoint.h index bddd8ea6a2..a46c775505 100644 --- a/test/core/util/passthru_endpoint.h +++ b/test/core/util/passthru_endpoint.h @@ -23,7 +23,11 @@ #include "src/core/lib/iomgr/endpoint.h" +/* The struct is refcounted, always use grpc_passthru_endpoint_stats_create and + * grpc_passthru_endpoint_stats_destroy, rather then embedding it in your + * objects by value. */ typedef struct { + gpr_refcount refs; gpr_atm num_writes; } grpc_passthru_endpoint_stats; @@ -32,4 +36,8 @@ void grpc_passthru_endpoint_create(grpc_endpoint** client, grpc_resource_quota* resource_quota, grpc_passthru_endpoint_stats* stats); +grpc_passthru_endpoint_stats* grpc_passthru_endpoint_stats_create(); + +void grpc_passthru_endpoint_stats_destroy(grpc_passthru_endpoint_stats* stats); + #endif diff --git a/test/core/util/port.cc b/test/core/util/port.cc index 9d02b673ed..303306de45 100644 --- a/test/core/util/port.cc +++ b/test/core/util/port.cc @@ -75,8 +75,8 @@ static void chose_port(int port) { atexit(free_chosen_ports); } num_chosen_ports++; - chosen_ports = - (int*)gpr_realloc(chosen_ports, sizeof(int) * num_chosen_ports); + chosen_ports = static_cast<int*>( + gpr_realloc(chosen_ports, sizeof(int) * num_chosen_ports)); chosen_ports[num_chosen_ports - 1] = port; } diff --git a/test/core/util/port_server_client.cc b/test/core/util/port_server_client.cc index 7e76c8063f..9a4159944b 100644 --- a/test/core/util/port_server_client.cc +++ b/test/core/util/port_server_client.cc @@ -41,13 +41,14 @@ typedef struct freereq { } freereq; static void destroy_pops_and_shutdown(void* p, grpc_error* error) { - grpc_pollset* pollset = grpc_polling_entity_pollset((grpc_polling_entity*)p); + grpc_pollset* pollset = + grpc_polling_entity_pollset(static_cast<grpc_polling_entity*>(p)); grpc_pollset_destroy(pollset); gpr_free(pollset); } static void freed_port_from_server(void* arg, grpc_error* error) { - freereq* pr = (freereq*)arg; + freereq* pr = static_cast<freereq*>(arg); gpr_mu_lock(pr->mu); pr->done = 1; GRPC_LOG_IF_ERROR( @@ -71,7 +72,8 @@ void grpc_free_port_using_server(int port) { memset(&req, 0, sizeof(req)); memset(&rsp, 0, sizeof(rsp)); - grpc_pollset* pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + grpc_pollset* pollset = + static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(pollset, &pr.mu); pr.pops = grpc_polling_entity_create_from_pollset(pollset); shutdown_closure = GRPC_CLOSURE_CREATE(destroy_pops_and_shutdown, &pr.pops, @@ -127,7 +129,7 @@ typedef struct portreq { static void got_port_from_server(void* arg, grpc_error* error) { size_t i; int port = 0; - portreq* pr = (portreq*)arg; + portreq* pr = static_cast<portreq*>(arg); int failed = 0; grpc_httpcli_response* response = &pr->response; @@ -158,7 +160,8 @@ static void got_port_from_server(void* arg, grpc_error* error) { gpr_sleep_until(gpr_time_add( gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_millis( - (int64_t)(1000.0 * (1 + pow(1.3, pr->retries) * rand() / RAND_MAX)), + static_cast<int64_t>( + 1000.0 * (1 + pow(1.3, pr->retries) * rand() / RAND_MAX)), GPR_TIMESPAN))); pr->retries++; req.host = pr->server; @@ -201,7 +204,8 @@ int grpc_pick_port_using_server(void) { grpc_core::ExecCtx exec_ctx; memset(&pr, 0, sizeof(pr)); memset(&req, 0, sizeof(req)); - grpc_pollset* pollset = (grpc_pollset*)gpr_zalloc(grpc_pollset_size()); + grpc_pollset* pollset = + static_cast<grpc_pollset*>(gpr_zalloc(grpc_pollset_size())); grpc_pollset_init(pollset, &pr.mu); pr.pops = grpc_polling_entity_create_from_pollset(pollset); shutdown_closure = GRPC_CLOSURE_CREATE(destroy_pops_and_shutdown, &pr.pops, diff --git a/test/core/util/reconnect_server.cc b/test/core/util/reconnect_server.cc index bcafc4e898..ad7cf42f71 100644 --- a/test/core/util/reconnect_server.cc +++ b/test/core/util/reconnect_server.cc @@ -20,11 +20,12 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> #include <string.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/iomgr/endpoint.h" #include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/tcp_server.h" @@ -61,7 +62,7 @@ static void on_connect(void* arg, grpc_endpoint* tcp, gpr_free(acceptor); char* peer; char* last_colon; - reconnect_server* server = (reconnect_server*)arg; + reconnect_server* server = static_cast<reconnect_server*>(arg); gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME); timestamp_list* new_tail; peer = grpc_endpoint_get_peer(tcp); @@ -75,8 +76,8 @@ static void on_connect(void* arg, grpc_endpoint* tcp, } else { if (last_colon == nullptr) { gpr_log(GPR_ERROR, "peer does not contain a ':'"); - } else if (strncmp(server->peer, peer, (size_t)(last_colon - peer)) != - 0) { + } else if (strncmp(server->peer, peer, + static_cast<size_t>(last_colon - peer)) != 0) { gpr_log(GPR_ERROR, "mismatched peer! %s vs %s", server->peer, peer); } gpr_free(peer); diff --git a/test/core/util/run_with_poller.sh b/test/core/util/run_with_poller.sh index 05791457a2..382a63e8ae 100755 --- a/test/core/util/run_with_poller.sh +++ b/test/core/util/run_with_poller.sh @@ -16,4 +16,4 @@ set -ex export GRPC_POLL_STRATEGY=$1 shift -$@ +"$@" diff --git a/test/core/util/slice_splitter.cc b/test/core/util/slice_splitter.cc index 7225b6dc03..1f81d03d96 100644 --- a/test/core/util/slice_splitter.cc +++ b/test/core/util/slice_splitter.cc @@ -21,7 +21,8 @@ #include <string.h> #include <grpc/support/alloc.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" const char* grpc_slice_split_mode_name(grpc_slice_split_mode mode) { switch (mode) { @@ -44,8 +45,8 @@ void grpc_split_slices(grpc_slice_split_mode mode, grpc_slice* src_slices, switch (mode) { case GRPC_SLICE_SPLIT_IDENTITY: *dst_slice_count = src_slice_count; - *dst_slices = - (grpc_slice*)gpr_malloc(sizeof(grpc_slice) * src_slice_count); + *dst_slices = static_cast<grpc_slice*>( + gpr_malloc(sizeof(grpc_slice) * src_slice_count)); for (i = 0; i < src_slice_count; i++) { (*dst_slices)[i] = src_slices[i]; grpc_slice_ref((*dst_slices)[i]); @@ -57,7 +58,7 @@ void grpc_split_slices(grpc_slice_split_mode mode, grpc_slice* src_slices, for (i = 0; i < src_slice_count; i++) { length += GRPC_SLICE_LENGTH(src_slices[i]); } - *dst_slices = (grpc_slice*)gpr_malloc(sizeof(grpc_slice)); + *dst_slices = static_cast<grpc_slice*>(gpr_malloc(sizeof(grpc_slice))); **dst_slices = grpc_slice_malloc(length); length = 0; for (i = 0; i < src_slice_count; i++) { @@ -73,7 +74,8 @@ void grpc_split_slices(grpc_slice_split_mode mode, grpc_slice* src_slices, length += GRPC_SLICE_LENGTH(src_slices[i]); } *dst_slice_count = length; - *dst_slices = (grpc_slice*)gpr_malloc(sizeof(grpc_slice) * length); + *dst_slices = + static_cast<grpc_slice*>(gpr_malloc(sizeof(grpc_slice) * length)); length = 0; for (i = 0; i < src_slice_count; i++) { for (j = 0; j < GRPC_SLICE_LENGTH(src_slices[i]); j++) { @@ -113,7 +115,7 @@ grpc_slice grpc_slice_merge(grpc_slice* slices, size_t nslices) { for (i = 0; i < nslices; i++) { if (GRPC_SLICE_LENGTH(slices[i]) + length > capacity) { capacity = GPR_MAX(capacity * 2, GRPC_SLICE_LENGTH(slices[i]) + length); - out = (uint8_t*)gpr_realloc(out, capacity); + out = static_cast<uint8_t*>(gpr_realloc(out, capacity)); } memcpy(out + length, GRPC_SLICE_START_PTR(slices[i]), GRPC_SLICE_LENGTH(slices[i])); diff --git a/test/core/util/subprocess.h b/test/core/util/subprocess.h new file mode 100644 index 0000000000..c7fe9af435 --- /dev/null +++ b/test/core/util/subprocess.h @@ -0,0 +1,36 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * 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. + * + */ + +#ifndef GRPC_TEST_CORE_UTIL_SUBPROCESS_H +#define GRPC_TEST_CORE_UTIL_SUBPROCESS_H + +#include <grpc/support/port_platform.h> + +typedef struct gpr_subprocess gpr_subprocess; + +/** .exe on windows, empty on unices */ +const char* gpr_subprocess_binary_extension(); + +gpr_subprocess* gpr_subprocess_create(int argc, const char** argv); +/** if subprocess has not been joined, kill it */ +void gpr_subprocess_destroy(gpr_subprocess* p); +/** returns exit status; can be called at most once */ +int gpr_subprocess_join(gpr_subprocess* p); +void gpr_subprocess_interrupt(gpr_subprocess* p); + +#endif /* GRPC_TEST_CORE_UTIL_SUBPROCESS_H */ diff --git a/test/core/util/subprocess_posix.cc b/test/core/util/subprocess_posix.cc new file mode 100644 index 0000000000..ab288d777f --- /dev/null +++ b/test/core/util/subprocess_posix.cc @@ -0,0 +1,100 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * 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. + * + */ + +#include <grpc/support/port_platform.h> + +#ifdef GPR_POSIX_SUBPROCESS + +#include <assert.h> +#include <errno.h> +#include <signal.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/types.h> +#include <sys/wait.h> +#include <unistd.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> + +#include "test/core/util/subprocess.h" + +struct gpr_subprocess { + int pid; + bool joined; +}; + +const char* gpr_subprocess_binary_extension() { return ""; } + +gpr_subprocess* gpr_subprocess_create(int argc, const char** argv) { + gpr_subprocess* r; + int pid; + char** exec_args; + + pid = fork(); + if (pid == -1) { + return nullptr; + } else if (pid == 0) { + exec_args = static_cast<char**>( + gpr_malloc((static_cast<size_t>(argc) + 1) * sizeof(char*))); + memcpy(exec_args, argv, static_cast<size_t>(argc) * sizeof(char*)); + exec_args[argc] = nullptr; + execv(exec_args[0], exec_args); + /* if we reach here, an error has occurred */ + gpr_log(GPR_ERROR, "execv '%s' failed: %s", exec_args[0], strerror(errno)); + _exit(1); + return nullptr; + } else { + r = static_cast<gpr_subprocess*>(gpr_zalloc(sizeof(gpr_subprocess))); + r->pid = pid; + return r; + } +} + +void gpr_subprocess_destroy(gpr_subprocess* p) { + if (!p->joined) { + kill(p->pid, SIGKILL); + gpr_subprocess_join(p); + } + gpr_free(p); +} + +int gpr_subprocess_join(gpr_subprocess* p) { + int status; +retry: + if (waitpid(p->pid, &status, 0) == -1) { + if (errno == EINTR) { + goto retry; + } + gpr_log(GPR_ERROR, "waitpid failed for pid %d: %s", p->pid, + strerror(errno)); + return -1; + } + p->joined = true; + return status; +} + +void gpr_subprocess_interrupt(gpr_subprocess* p) { + if (!p->joined) { + kill(p->pid, SIGINT); + } +} + +#endif /* GPR_POSIX_SUBPROCESS */ diff --git a/test/core/util/subprocess_windows.cc b/test/core/util/subprocess_windows.cc new file mode 100644 index 0000000000..d3295244ea --- /dev/null +++ b/test/core/util/subprocess_windows.cc @@ -0,0 +1,126 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * 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. + * + */ + +#include <grpc/support/port_platform.h> + +#ifdef GPR_WINDOWS_SUBPROCESS + +#include <string.h> +#include <tchar.h> +#include <windows.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> +#include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/string_windows.h" +#include "test/core/util/subprocess.h" + +struct gpr_subprocess { + PROCESS_INFORMATION pi; + int joined; + int interrupted; +}; + +const char* gpr_subprocess_binary_extension() { return ".exe"; } + +gpr_subprocess* gpr_subprocess_create(int argc, const char** argv) { + gpr_subprocess* r; + + STARTUPINFO si; + PROCESS_INFORMATION pi; + + char* args = gpr_strjoin_sep(argv, (size_t)argc, " ", NULL); + TCHAR* args_tchar; + + args_tchar = gpr_char_to_tchar(args); + gpr_free(args); + + memset(&si, 0, sizeof(si)); + si.cb = sizeof(si); + memset(&pi, 0, sizeof(pi)); + + if (!CreateProcess(NULL, args_tchar, NULL, NULL, FALSE, + CREATE_NEW_PROCESS_GROUP, NULL, NULL, &si, &pi)) { + gpr_free(args_tchar); + return NULL; + } + gpr_free(args_tchar); + + r = (gpr_subprocess*)gpr_malloc(sizeof(gpr_subprocess)); + memset(r, 0, sizeof(*r)); + r->pi = pi; + return r; +} + +void gpr_subprocess_destroy(gpr_subprocess* p) { + if (p) { + if (!p->joined) { + gpr_subprocess_interrupt(p); + gpr_subprocess_join(p); + } + if (p->pi.hProcess) { + CloseHandle(p->pi.hProcess); + } + if (p->pi.hThread) { + CloseHandle(p->pi.hThread); + } + gpr_free(p); + } +} + +int gpr_subprocess_join(gpr_subprocess* p) { + DWORD dwExitCode; + if (GetExitCodeProcess(p->pi.hProcess, &dwExitCode)) { + if (dwExitCode == STILL_ACTIVE) { + if (WaitForSingleObject(p->pi.hProcess, INFINITE) == WAIT_OBJECT_0) { + p->joined = 1; + goto getExitCode; + } + return -1; // failed to join + } else { + goto getExitCode; + } + } else { + return -1; // failed to get exit code + } + +getExitCode: + if (p->interrupted) { + return 0; + } + if (GetExitCodeProcess(p->pi.hProcess, &dwExitCode)) { + return (int)dwExitCode; + } else { + return -1; // failed to get exit code + } +} + +void gpr_subprocess_interrupt(gpr_subprocess* p) { + DWORD dwExitCode; + if (GetExitCodeProcess(p->pi.hProcess, &dwExitCode)) { + if (dwExitCode == STILL_ACTIVE) { + gpr_log(GPR_INFO, "sending ctrl-break"); + GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT, p->pi.dwProcessId); + p->joined = 1; + p->interrupted = 1; + } + } + return; +} + +#endif /* GPR_WINDOWS_SUBPROCESS */ diff --git a/test/core/util/test_config.cc b/test/core/util/test_config.cc index 6b410440c2..53a6297d6e 100644 --- a/test/core/util/test_config.cc +++ b/test/core/util/test_config.cc @@ -29,13 +29,14 @@ #include "src/core/lib/gpr/env.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" int64_t g_fixture_slowdown_factor = 1; int64_t g_poller_slowdown_factor = 1; #if GPR_GETPID_IN_UNISTD_H #include <unistd.h> -static unsigned seed(void) { return (unsigned)getpid(); } +static unsigned seed(void) { return static_cast<unsigned>(getpid()); } #endif #if GPR_GETPID_IN_PROCESS_H @@ -196,7 +197,6 @@ static void install_crash_handler() { #elif GPR_POSIX_CRASH_HANDLER #include <errno.h> #include <execinfo.h> -#include <grpc/support/useful.h> #include <stdio.h> #include <string.h> @@ -264,7 +264,7 @@ static void install_crash_handler() { ss.ss_size = sizeof(g_alt_stack); ss.ss_sp = g_alt_stack; GPR_ASSERT(sigaltstack(&ss, nullptr) == 0); - sa.sa_flags = (int)(SA_SIGINFO | SA_ONSTACK | SA_RESETHAND); + sa.sa_flags = static_cast<int>(SA_SIGINFO | SA_ONSTACK | SA_RESETHAND); sa.sa_sigaction = crash_handler; GPR_ASSERT(sigaction(SIGILL, &sa, nullptr) == 0); GPR_ASSERT(sigaction(SIGABRT, &sa, nullptr) == 0); @@ -365,15 +365,17 @@ int64_t grpc_test_slowdown_factor() { gpr_timespec grpc_timeout_seconds_to_deadline(int64_t time_s) { return gpr_time_add( gpr_now(GPR_CLOCK_MONOTONIC), - gpr_time_from_millis(grpc_test_slowdown_factor() * (int64_t)1e3 * time_s, - GPR_TIMESPAN)); + gpr_time_from_millis( + grpc_test_slowdown_factor() * static_cast<int64_t>(1e3) * time_s, + GPR_TIMESPAN)); } gpr_timespec grpc_timeout_milliseconds_to_deadline(int64_t time_ms) { return gpr_time_add( gpr_now(GPR_CLOCK_MONOTONIC), - gpr_time_from_micros(grpc_test_slowdown_factor() * (int64_t)1e3 * time_ms, - GPR_TIMESPAN)); + gpr_time_from_micros( + grpc_test_slowdown_factor() * static_cast<int64_t>(1e3) * time_ms, + GPR_TIMESPAN)); } void grpc_test_init(int argc, char** argv) { diff --git a/test/core/util/test_tcp_server.cc b/test/core/util/test_tcp_server.cc index 5f6af4e707..cb2bc701fa 100644 --- a/test/core/util/test_tcp_server.cc +++ b/test/core/util/test_tcp_server.cc @@ -22,11 +22,12 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> -#include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> #include <string.h> + +#include "src/core/lib/gpr/host_port.h" #include "src/core/lib/iomgr/endpoint.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/tcp_server.h" @@ -53,12 +54,13 @@ void test_tcp_server_init(test_tcp_server* server, void test_tcp_server_start(test_tcp_server* server, int port) { grpc_resolved_address resolved_addr; - struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + struct sockaddr_in* addr = + reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); int port_added; grpc_core::ExecCtx exec_ctx; addr->sin_family = AF_INET; - addr->sin_port = htons((uint16_t)port); + addr->sin_port = htons(static_cast<uint16_t>(port)); memset(&addr->sin_addr, 0, sizeof(addr->sin_addr)); grpc_error* error = grpc_tcp_server_create(&server->shutdown_complete, diff --git a/test/core/util/trickle_endpoint.cc b/test/core/util/trickle_endpoint.cc index f95ed62463..f2efb049b4 100644 --- a/test/core/util/trickle_endpoint.cc +++ b/test/core/util/trickle_endpoint.cc @@ -26,7 +26,8 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include <grpc/support/useful.h> + +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/slice/slice_internal.h" #define WRITE_BUFFER_SIZE (2 * 1024 * 1024) @@ -47,7 +48,7 @@ typedef struct { static void te_read(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); grpc_endpoint_read(te->wrapped, slices, cb); } @@ -62,7 +63,7 @@ static void maybe_call_write_cb_locked(trickle_endpoint* te) { static void te_write(grpc_endpoint* ep, grpc_slice_buffer* slices, grpc_closure* cb) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); gpr_mu_lock(&te->mu); GPR_ASSERT(te->write_cb == nullptr); if (te->write_buffer.length == 0) { @@ -78,24 +79,24 @@ static void te_write(grpc_endpoint* ep, grpc_slice_buffer* slices, } static void te_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); grpc_endpoint_add_to_pollset(te->wrapped, pollset); } static void te_add_to_pollset_set(grpc_endpoint* ep, grpc_pollset_set* pollset_set) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); grpc_endpoint_add_to_pollset_set(te->wrapped, pollset_set); } static void te_delete_from_pollset_set(grpc_endpoint* ep, grpc_pollset_set* pollset_set) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); grpc_endpoint_delete_from_pollset_set(te->wrapped, pollset_set); } static void te_shutdown(grpc_endpoint* ep, grpc_error* why) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); gpr_mu_lock(&te->mu); if (te->error == GRPC_ERROR_NONE) { te->error = GRPC_ERROR_REF(why); @@ -106,7 +107,7 @@ static void te_shutdown(grpc_endpoint* ep, grpc_error* why) { } static void te_destroy(grpc_endpoint* ep) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); grpc_endpoint_destroy(te->wrapped); gpr_mu_destroy(&te->mu); grpc_slice_buffer_destroy_internal(&te->write_buffer); @@ -116,22 +117,22 @@ static void te_destroy(grpc_endpoint* ep) { } static grpc_resource_user* te_get_resource_user(grpc_endpoint* ep) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); return grpc_endpoint_get_resource_user(te->wrapped); } static char* te_get_peer(grpc_endpoint* ep) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); return grpc_endpoint_get_peer(te->wrapped); } static int te_get_fd(grpc_endpoint* ep) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); return grpc_endpoint_get_fd(te->wrapped); } static void te_finish_write(void* arg, grpc_error* error) { - trickle_endpoint* te = (trickle_endpoint*)arg; + trickle_endpoint* te = static_cast<trickle_endpoint*>(arg); gpr_mu_lock(&te->mu); te->writing = false; grpc_slice_buffer_reset_and_unref(&te->writing_buffer); @@ -151,7 +152,8 @@ static const grpc_endpoint_vtable vtable = {te_read, grpc_endpoint* grpc_trickle_endpoint_create(grpc_endpoint* wrap, double bytes_per_second) { - trickle_endpoint* te = (trickle_endpoint*)gpr_malloc(sizeof(*te)); + trickle_endpoint* te = + static_cast<trickle_endpoint*>(gpr_malloc(sizeof(*te))); te->base.vtable = &vtable; te->wrapped = wrap; te->bytes_per_second = bytes_per_second; @@ -165,16 +167,16 @@ grpc_endpoint* grpc_trickle_endpoint_create(grpc_endpoint* wrap, } static double ts2dbl(gpr_timespec s) { - return (double)s.tv_sec + 1e-9 * (double)s.tv_nsec; + return static_cast<double>(s.tv_sec) + 1e-9 * static_cast<double>(s.tv_nsec); } size_t grpc_trickle_endpoint_trickle(grpc_endpoint* ep) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); gpr_mu_lock(&te->mu); if (!te->writing && te->write_buffer.length > 0) { gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC); double elapsed = ts2dbl(gpr_time_sub(now, te->last_write)); - size_t bytes = (size_t)(te->bytes_per_second * elapsed); + size_t bytes = static_cast<size_t>(te->bytes_per_second * elapsed); // gpr_log(GPR_DEBUG, "%lf elapsed --> %" PRIdPTR " bytes", elapsed, bytes); if (bytes > 0) { grpc_slice_buffer_move_first(&te->write_buffer, @@ -194,7 +196,7 @@ size_t grpc_trickle_endpoint_trickle(grpc_endpoint* ep) { } size_t grpc_trickle_get_backlog(grpc_endpoint* ep) { - trickle_endpoint* te = (trickle_endpoint*)ep; + trickle_endpoint* te = reinterpret_cast<trickle_endpoint*>(ep); gpr_mu_lock(&te->mu); size_t backlog = te->write_buffer.length; gpr_mu_unlock(&te->mu); |