diff options
Diffstat (limited to 'test/core')
39 files changed, 1685 insertions, 3429 deletions
diff --git a/test/core/avl/avl_test.cc b/test/core/avl/avl_test.cc index ecebe833b3..01002fec72 100644 --- a/test/core/avl/avl_test.cc +++ b/test/core/avl/avl_test.cc @@ -241,3365 +241,6 @@ static void test_badcase1(void) { 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; @@ -3653,8 +294,6 @@ int main(int argc, char* argv[]) { test_replace(); test_remove(); test_badcase1(); - test_badcase2(); - test_badcase3(); test_stress(10); return 0; diff --git a/test/core/channel/BUILD b/test/core/channel/BUILD index 81c4353129..da419f00cf 100644 --- a/test/core/channel/BUILD +++ b/test/core/channel/BUILD @@ -122,6 +122,7 @@ grpc_cc_test( language = "C++", deps = [ "//:grpc", + "//test/core/util:gpr_test_util", ], external_deps = [ "gtest", 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 e34aa2e676..1c8d0775ab 100644 --- a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc +++ b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.cc @@ -60,11 +60,11 @@ static void my_resolve_address(const char* addr, const char* default_port, static grpc_address_resolver_vtable test_resolver = {my_resolve_address, nullptr}; -static grpc_ares_request* my_dns_lookup_ares( +static grpc_ares_request* my_dns_lookup_ares_locked( const char* dns_server, const char* addr, const char* default_port, grpc_pollset_set* interested_parties, grpc_closure* on_done, - grpc_lb_addresses** lb_addrs, bool check_grpclb, - char** service_config_json) { + grpc_lb_addresses** lb_addrs, bool check_grpclb, char** service_config_json, + grpc_combiner* combiner) { gpr_mu_lock(&g_mu); GPR_ASSERT(0 == strcmp("test", addr)); grpc_error* error = GRPC_ERROR_NONE; @@ -147,7 +147,7 @@ int main(int argc, char** argv) { gpr_mu_init(&g_mu); g_combiner = grpc_combiner_create(); grpc_set_resolver_impl(&test_resolver); - grpc_dns_lookup_ares = my_dns_lookup_ares; + grpc_dns_lookup_ares_locked = my_dns_lookup_ares_locked; grpc_channel_args* result = (grpc_channel_args*)1; { diff --git a/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc b/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc index 521fc3107e..b1f3a1c08a 100644 --- a/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc +++ b/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc @@ -33,10 +33,11 @@ static grpc_address_resolver_vtable* default_resolve_address; static grpc_combiner* g_combiner; -grpc_ares_request* (*g_default_dns_lookup_ares)( +grpc_ares_request* (*g_default_dns_lookup_ares_locked)( 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_lb_addresses** addrs, bool check_grpclb, char** service_config_json, + grpc_combiner* combiner); // Counter incremented by test_resolve_address_impl indicating the number of // times a system-level resolution has happened. @@ -72,13 +73,14 @@ static grpc_error* test_blocking_resolve_address_impl( static grpc_address_resolver_vtable test_resolver = { test_resolve_address_impl, test_blocking_resolve_address_impl}; -grpc_ares_request* test_dns_lookup_ares( +grpc_ares_request* test_dns_lookup_ares_locked( 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( + grpc_lb_addresses** addrs, bool check_grpclb, char** service_config_json, + grpc_combiner* combiner) { + grpc_ares_request* result = g_default_dns_lookup_ares_locked( dns_server, name, default_port, g_iomgr_args.pollset_set, on_done, addrs, - check_grpclb, service_config_json); + check_grpclb, service_config_json, combiner); ++g_resolution_count; return result; } @@ -308,8 +310,8 @@ int main(int argc, char** argv) { g_combiner = grpc_combiner_create(); - g_default_dns_lookup_ares = grpc_dns_lookup_ares; - grpc_dns_lookup_ares = test_dns_lookup_ares; + g_default_dns_lookup_ares_locked = grpc_dns_lookup_ares_locked; + grpc_dns_lookup_ares_locked = test_dns_lookup_ares_locked; default_resolve_address = grpc_resolve_address_impl; grpc_set_resolver_impl(&test_resolver); diff --git a/test/core/end2end/end2end_nosec_tests.cc b/test/core/end2end/end2end_nosec_tests.cc index 5ee0bb83fd..061b23b5d6 100644 --- a/test/core/end2end/end2end_nosec_tests.cc +++ b/test/core/end2end/end2end_nosec_tests.cc @@ -102,6 +102,8 @@ extern void negative_deadline(grpc_end2end_test_config config); extern void negative_deadline_pre_init(void); extern void network_status_change(grpc_end2end_test_config config); extern void network_status_change_pre_init(void); +extern void no_error_on_hotpath(grpc_end2end_test_config config); +extern void no_error_on_hotpath_pre_init(void); extern void no_logging(grpc_end2end_test_config config); extern void no_logging_pre_init(void); extern void no_op(grpc_end2end_test_config config); @@ -225,6 +227,7 @@ void grpc_end2end_tests_pre_init(void) { max_message_length_pre_init(); negative_deadline_pre_init(); network_status_change_pre_init(); + no_error_on_hotpath_pre_init(); no_logging_pre_init(); no_op_pre_init(); payload_pre_init(); @@ -311,6 +314,7 @@ void grpc_end2end_tests(int argc, char **argv, max_message_length(config); negative_deadline(config); network_status_change(config); + no_error_on_hotpath(config); no_logging(config); no_op(config); payload(config); @@ -500,6 +504,10 @@ void grpc_end2end_tests(int argc, char **argv, network_status_change(config); continue; } + if (0 == strcmp("no_error_on_hotpath", argv[i])) { + no_error_on_hotpath(config); + continue; + } if (0 == strcmp("no_logging", argv[i])) { no_logging(config); continue; diff --git a/test/core/end2end/end2end_tests.cc b/test/core/end2end/end2end_tests.cc index ca5c18bcc2..7ae475cdef 100644 --- a/test/core/end2end/end2end_tests.cc +++ b/test/core/end2end/end2end_tests.cc @@ -104,6 +104,8 @@ extern void negative_deadline(grpc_end2end_test_config config); extern void negative_deadline_pre_init(void); extern void network_status_change(grpc_end2end_test_config config); extern void network_status_change_pre_init(void); +extern void no_error_on_hotpath(grpc_end2end_test_config config); +extern void no_error_on_hotpath_pre_init(void); extern void no_logging(grpc_end2end_test_config config); extern void no_logging_pre_init(void); extern void no_op(grpc_end2end_test_config config); @@ -228,6 +230,7 @@ void grpc_end2end_tests_pre_init(void) { max_message_length_pre_init(); negative_deadline_pre_init(); network_status_change_pre_init(); + no_error_on_hotpath_pre_init(); no_logging_pre_init(); no_op_pre_init(); payload_pre_init(); @@ -315,6 +318,7 @@ void grpc_end2end_tests(int argc, char **argv, max_message_length(config); negative_deadline(config); network_status_change(config); + no_error_on_hotpath(config); no_logging(config); no_op(config); payload(config); @@ -508,6 +512,10 @@ void grpc_end2end_tests(int argc, char **argv, network_status_change(config); continue; } + if (0 == strcmp("no_error_on_hotpath", argv[i])) { + no_error_on_hotpath(config); + continue; + } if (0 == strcmp("no_logging", argv[i])) { no_logging(config); continue; diff --git a/test/core/end2end/fixtures/h2_http_proxy.cc b/test/core/end2end/fixtures/h2_http_proxy.cc index 0af8a29a15..c2ac209cf9 100644 --- a/test/core/end2end/fixtures/h2_http_proxy.cc +++ b/test/core/end2end/fixtures/h2_http_proxy.cc @@ -69,9 +69,8 @@ void chttp2_init_client_fullstack(grpc_end2end_test_fixture* f, char* proxy_uri; /* If testing for proxy auth, add credentials to proxy uri */ - const grpc_arg* proxy_auth_arg = - grpc_channel_args_find(client_args, GRPC_ARG_HTTP_PROXY_AUTH_CREDS); - const char* proxy_auth_str = grpc_channel_arg_get_string(proxy_auth_arg); + const char* proxy_auth_str = + grpc_channel_args_get_string(client_args, GRPC_ARG_HTTP_PROXY_AUTH_CREDS); if (proxy_auth_str == nullptr) { gpr_asprintf(&proxy_uri, "http://%s", grpc_end2end_http_proxy_get_proxy_name(ffd->proxy)); diff --git a/test/core/end2end/fixtures/http_proxy_fixture.cc b/test/core/end2end/fixtures/http_proxy_fixture.cc index f02fa9d998..5caddee09e 100644 --- a/test/core/end2end/fixtures/http_proxy_fixture.cc +++ b/test/core/end2end/fixtures/http_proxy_fixture.cc @@ -411,9 +411,8 @@ static void on_read_request_done(void* arg, grpc_error* error) { return; } // If proxy auth is being used, check if the header is present and as expected - const grpc_arg* proxy_auth_arg = grpc_channel_args_find( + char* proxy_auth_str = grpc_channel_args_get_string( conn->proxy->channel_args, GRPC_ARG_HTTP_PROXY_AUTH_CREDS); - char* proxy_auth_str = grpc_channel_arg_get_string(proxy_auth_arg); if (proxy_auth_str != nullptr) { bool client_authenticated = false; for (size_t i = 0; i < conn->http_request.hdr_count; i++) { diff --git a/test/core/end2end/fuzzers/api_fuzzer.cc b/test/core/end2end/fuzzers/api_fuzzer.cc index ba9c04fd0e..d0d82ea43b 100644 --- a/test/core/end2end/fuzzers/api_fuzzer.cc +++ b/test/core/end2end/fuzzers/api_fuzzer.cc @@ -374,13 +374,11 @@ void my_resolve_address(const char* addr, const char* default_port, static grpc_address_resolver_vtable fuzzer_resolver = {my_resolve_address, nullptr}; -grpc_ares_request* my_dns_lookup_ares(const char* dns_server, const char* addr, - const char* default_port, - grpc_pollset_set* interested_parties, - grpc_closure* on_done, - grpc_lb_addresses** lb_addrs, - bool check_grpclb, - char** service_config_json) { +grpc_ares_request* my_dns_lookup_ares_locked( + const char* dns_server, const char* addr, const char* default_port, + grpc_pollset_set* interested_parties, grpc_closure* on_done, + grpc_lb_addresses** lb_addrs, bool check_grpclb, char** service_config_json, + grpc_combiner* combiner) { addr_req* r = static_cast<addr_req*>(gpr_malloc(sizeof(*r))); r->addr = gpr_strdup(addr); r->on_done = on_done; @@ -706,7 +704,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { grpc_executor_set_threading(false); } grpc_set_resolver_impl(&fuzzer_resolver); - grpc_dns_lookup_ares = my_dns_lookup_ares; + grpc_dns_lookup_ares_locked = my_dns_lookup_ares_locked; GPR_ASSERT(g_channel == nullptr); GPR_ASSERT(g_server == nullptr); diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py index 53f4ab0d52..04dc2a8785 100755 --- a/test/core/end2end/gen_build_yaml.py +++ b/test/core/end2end/gen_build_yaml.py @@ -139,6 +139,7 @@ END2END_TESTS = { 'max_message_length': default_test_options._replace(cpu_cost=LOWCPU), 'negative_deadline': default_test_options, 'network_status_change': default_test_options._replace(cpu_cost=LOWCPU), + 'no_error_on_hotpath': default_test_options._replace(proxyable=False), 'no_logging': default_test_options._replace(traceable=False), 'no_op': default_test_options, 'payload': default_test_options, diff --git a/test/core/end2end/generate_tests.bzl b/test/core/end2end/generate_tests.bzl index 94bc092b59..67769a8cb1 100755 --- a/test/core/end2end/generate_tests.bzl +++ b/test/core/end2end/generate_tests.bzl @@ -135,6 +135,7 @@ END2END_TESTS = { 'max_message_length': test_options(), 'negative_deadline': test_options(), 'network_status_change': test_options(), + 'no_error_on_hotpath': test_options(proxyable=False), 'no_logging': test_options(traceable=False), 'no_op': test_options(), 'payload': test_options(), diff --git a/test/core/end2end/goaway_server_test.cc b/test/core/end2end/goaway_server_test.cc index 0188698f17..8904c3d325 100644 --- a/test/core/end2end/goaway_server_test.cc +++ b/test/core/end2end/goaway_server_test.cc @@ -44,11 +44,11 @@ static void* tag(intptr_t i) { return (void*)i; } static gpr_mu g_mu; static int g_resolve_port = -1; -static grpc_ares_request* (*iomgr_dns_lookup_ares)( +static grpc_ares_request* (*iomgr_dns_lookup_ares_locked)( const char* dns_server, const char* addr, const char* default_port, grpc_pollset_set* interested_parties, grpc_closure* on_done, grpc_lb_addresses** addresses, bool check_grpclb, - char** service_config_json); + char** service_config_json, grpc_combiner* combiner); static void set_resolve_port(int port) { gpr_mu_lock(&g_mu); @@ -98,15 +98,15 @@ static grpc_error* my_blocking_resolve_address( static grpc_address_resolver_vtable test_resolver = { my_resolve_address, my_blocking_resolve_address}; -static grpc_ares_request* my_dns_lookup_ares( +static grpc_ares_request* my_dns_lookup_ares_locked( const char* dns_server, const char* addr, const char* default_port, grpc_pollset_set* interested_parties, grpc_closure* on_done, - grpc_lb_addresses** lb_addrs, bool check_grpclb, - char** service_config_json) { + grpc_lb_addresses** lb_addrs, bool check_grpclb, char** service_config_json, + grpc_combiner* combiner) { if (0 != strcmp(addr, "test")) { - return iomgr_dns_lookup_ares(dns_server, addr, default_port, - interested_parties, on_done, lb_addrs, - check_grpclb, service_config_json); + return iomgr_dns_lookup_ares_locked( + dns_server, addr, default_port, interested_parties, on_done, lb_addrs, + check_grpclb, service_config_json, combiner); } grpc_error* error = GRPC_ERROR_NONE; @@ -142,8 +142,8 @@ int main(int argc, char** argv) { grpc_init(); default_resolver = grpc_resolve_address_impl; grpc_set_resolver_impl(&test_resolver); - iomgr_dns_lookup_ares = grpc_dns_lookup_ares; - grpc_dns_lookup_ares = my_dns_lookup_ares; + iomgr_dns_lookup_ares_locked = grpc_dns_lookup_ares_locked; + grpc_dns_lookup_ares_locked = my_dns_lookup_ares_locked; int was_cancelled1; int was_cancelled2; diff --git a/test/core/end2end/tests/no_error_on_hotpath.cc b/test/core/end2end/tests/no_error_on_hotpath.cc new file mode 100644 index 0000000000..7afadf7d3a --- /dev/null +++ b/test/core/end2end/tests/no_error_on_hotpath.cc @@ -0,0 +1,246 @@ +/* + * + * 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 "test/core/end2end/end2end_tests.h" + +#include <stdio.h> +#include <string.h> + +#include <grpc/byte_buffer.h> +#include <grpc/grpc.h> +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> +#include <grpc/support/string_util.h> +#include <grpc/support/time.h> +#include "src/core/lib/gpr/string.h" +#include "src/core/lib/iomgr/error.h" +#include "test/core/end2end/cq_verifier.h" + +static void* tag(intptr_t t) { return (void*)t; } + +static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config, + const char* test_name, + grpc_channel_args* client_args, + grpc_channel_args* server_args) { + grpc_end2end_test_fixture f; + gpr_log(GPR_INFO, "Running test: %s/%s", test_name, config.name); + f = config.create_fixture(client_args, server_args); + config.init_server(&f, server_args); + config.init_client(&f, client_args); + return f; +} + +static gpr_timespec n_seconds_from_now(int n) { + return grpc_timeout_seconds_to_deadline(n); +} + +static gpr_timespec five_seconds_from_now(void) { + return n_seconds_from_now(5); +} + +static void drain_cq(grpc_completion_queue* cq) { + grpc_event ev; + do { + ev = grpc_completion_queue_next(cq, five_seconds_from_now(), nullptr); + } while (ev.type != GRPC_QUEUE_SHUTDOWN); +} + +static void shutdown_server(grpc_end2end_test_fixture* f) { + if (!f->server) return; + grpc_server_shutdown_and_notify(f->server, f->shutdown_cq, tag(1000)); + GPR_ASSERT(grpc_completion_queue_pluck(f->shutdown_cq, tag(1000), + grpc_timeout_seconds_to_deadline(5), + nullptr) + .type == GRPC_OP_COMPLETE); + grpc_server_destroy(f->server); + f->server = nullptr; +} + +static void shutdown_client(grpc_end2end_test_fixture* f) { + if (!f->client) return; + grpc_channel_destroy(f->client); + f->client = nullptr; +} + +static void end_test(grpc_end2end_test_fixture* f) { + shutdown_server(f); + shutdown_client(f); + + grpc_completion_queue_shutdown(f->cq); + drain_cq(f->cq); + grpc_completion_queue_destroy(f->cq); + grpc_completion_queue_destroy(f->shutdown_cq); +} + +static void simple_request_body(grpc_end2end_test_config config, + grpc_end2end_test_fixture f) { + grpc_call* c; + grpc_call* s; + cq_verifier* cqv = cq_verifier_create(f.cq); + grpc_op ops[6]; + grpc_op* op; + grpc_metadata_array initial_metadata_recv; + grpc_metadata_array trailing_metadata_recv; + grpc_metadata_array request_metadata_recv; + grpc_call_details call_details; + grpc_status_code status; + grpc_call_error error; + grpc_slice details; + int was_cancelled = 2; + char* peer; + + gpr_timespec deadline = five_seconds_from_now(); + c = grpc_channel_create_call(f.client, nullptr, GRPC_PROPAGATE_DEFAULTS, f.cq, + grpc_slice_from_static_string("/foo"), nullptr, + deadline, nullptr); + GPR_ASSERT(c); + + peer = grpc_call_get_peer(c); + GPR_ASSERT(peer != nullptr); + gpr_free(peer); + + grpc_metadata_array_init(&initial_metadata_recv); + grpc_metadata_array_init(&trailing_metadata_recv); + grpc_metadata_array_init(&request_metadata_recv); + grpc_call_details_init(&call_details); + + 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 = &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 = &trailing_metadata_recv; + op->data.recv_status_on_client.status = &status; + op->data.recv_status_on_client.status_details = &details; + op->flags = 0; + op->reserved = nullptr; + op++; + 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, + &request_metadata_recv, f.cq, f.cq, tag(101)); + GPR_ASSERT(GRPC_CALL_OK == error); + CQ_EXPECT_COMPLETION(cqv, tag(101), 1); + cq_verify(cqv); + + peer = grpc_call_get_peer(s); + GPR_ASSERT(peer != nullptr); + gpr_free(peer); + peer = grpc_call_get_peer(c); + GPR_ASSERT(peer != nullptr); + gpr_free(peer); + + 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_OK; + op->data.send_status_from_server.status_details = nullptr; + 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++; + 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_EXPECT_COMPLETION(cqv, tag(1), 1); + cq_verify(cqv); + + GPR_ASSERT(status == GRPC_STATUS_OK); + GPR_ASSERT(GRPC_SLICE_LENGTH(details) == 0); + GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.method, "/foo")); + GPR_ASSERT(0 == call_details.flags); + GPR_ASSERT(was_cancelled == 0); + + grpc_slice_unref(details); + grpc_metadata_array_destroy(&initial_metadata_recv); + grpc_metadata_array_destroy(&trailing_metadata_recv); + grpc_metadata_array_destroy(&request_metadata_recv); + grpc_call_details_destroy(&call_details); + + grpc_call_unref(c); + grpc_call_unref(s); + + cq_verifier_destroy(cqv); +} + +static void test_no_error_on_hotpath_one_request( + grpc_end2end_test_config config) { + grpc_end2end_test_fixture f; + + f = begin_test(config, "test_invoke_simple_request_with_no_error_logging", + nullptr, nullptr); + // First RPC is not considered the hotpath, since there are lots of things to + // set up. + simple_request_body(config, f); + grpc_disable_error_creation(); + simple_request_body(config, f); + grpc_enable_error_creation(); + end_test(&f); + config.tear_down_data(&f); +} + +static void test_no_error_on_hotpath_10_requests( + grpc_end2end_test_config config) { + int i; + grpc_end2end_test_fixture f = begin_test( + config, "test_no_error_on_hotpath_in_one_request", nullptr, nullptr); + // First RPC is not considered the hotpath, since there are lots of things to + // set up. + simple_request_body(config, f); + grpc_disable_error_creation(); + for (i = 0; i < 10; i++) { + simple_request_body(config, f); + } + grpc_enable_error_creation(); + end_test(&f); + config.tear_down_data(&f); +} + +void no_error_on_hotpath(grpc_end2end_test_config config) { + test_no_error_on_hotpath_one_request(config); + test_no_error_on_hotpath_10_requests(config); +} + +void no_error_on_hotpath_pre_init(void) {} diff --git a/test/core/end2end/tests/retry_server_pushback_delay.cc b/test/core/end2end/tests/retry_server_pushback_delay.cc index f6a979613d..221b416828 100644 --- a/test/core/end2end/tests/retry_server_pushback_delay.cc +++ b/test/core/end2end/tests/retry_server_pushback_delay.cc @@ -249,7 +249,7 @@ static void test_retry_server_pushback_delay(grpc_end2end_test_config config) { retry_delay.tv_sec, retry_delay.tv_nsec); GPR_ASSERT(retry_delay.tv_sec >= 1); if (retry_delay.tv_sec == 1) { - GPR_ASSERT(retry_delay.tv_nsec >= 900000000); + GPR_ASSERT(retry_delay.tv_nsec >= 800000000); } peer = grpc_call_get_peer(s); diff --git a/test/core/gpr/arena_test.cc b/test/core/gpr/arena_test.cc index 111414ea3e..3e7c906591 100644 --- a/test/core/gpr/arena_test.cc +++ b/test/core/gpr/arena_test.cc @@ -71,7 +71,7 @@ static void test(const char* name, size_t init_size, const size_t* allocs, static const size_t allocs_##name[] = {__VA_ARGS__}; \ test(#name, init_size, allocs_##name, GPR_ARRAY_SIZE(allocs_##name)) -#define CONCURRENT_TEST_THREADS 100 +#define CONCURRENT_TEST_THREADS 10 size_t concurrent_test_iterations() { if (sizeof(void*) < 8) return 1000; diff --git a/test/core/iomgr/BUILD b/test/core/iomgr/BUILD index 349a06d578..bbf0815e6f 100644 --- a/test/core/iomgr/BUILD +++ b/test/core/iomgr/BUILD @@ -227,6 +227,7 @@ grpc_cc_test( "//test/core/util:gpr_test_util", "//test/core/util:grpc_test_util", ], + tags = ["manual"], # TODO(adelez): Remove once this works on Foundry. ) grpc_cc_test( diff --git a/test/core/iomgr/ev_epollsig_linux_test.cc b/test/core/iomgr/ev_epollsig_linux_test.cc index c3ba6d7c14..28c9dd408c 100644 --- a/test/core/iomgr/ev_epollsig_linux_test.cc +++ b/test/core/iomgr/ev_epollsig_linux_test.cc @@ -66,7 +66,7 @@ static void test_fd_init(test_fd* tfds, int* fds, int num_fds) { for (i = 0; i < num_fds; i++) { tfds[i].inner_fd = fds[i]; - tfds[i].fd = grpc_fd_create(fds[i], "test_fd"); + tfds[i].fd = grpc_fd_create(fds[i], "test_fd", false); } } @@ -79,8 +79,7 @@ static void test_fd_cleanup(test_fd* tfds, int num_fds) { GRPC_ERROR_CREATE_FROM_STATIC_STRING("test_fd_cleanup")); grpc_core::ExecCtx::Get()->Flush(); - grpc_fd_orphan(tfds[i].fd, nullptr, &release_fd, false /* already_closed */, - "test_fd_cleanup"); + grpc_fd_orphan(tfds[i].fd, nullptr, &release_fd, "test_fd_cleanup"); grpc_core::ExecCtx::Get()->Flush(); GPR_ASSERT(release_fd == tfds[i].inner_fd); @@ -267,7 +266,7 @@ static void test_threading(void) { grpc_wakeup_fd fd; GPR_ASSERT(GRPC_LOG_IF_ERROR("wakeup_fd_init", grpc_wakeup_fd_init(&fd))); shared.wakeup_fd = &fd; - shared.wakeup_desc = grpc_fd_create(fd.read_fd, "wakeup"); + shared.wakeup_desc = grpc_fd_create(fd.read_fd, "wakeup", false); shared.wakeups = 0; { grpc_core::ExecCtx exec_ctx; @@ -287,8 +286,7 @@ static void test_threading(void) { { grpc_core::ExecCtx exec_ctx; grpc_fd_shutdown(shared.wakeup_desc, GRPC_ERROR_CANCELLED); - grpc_fd_orphan(shared.wakeup_desc, nullptr, nullptr, - false /* already_closed */, "done"); + grpc_fd_orphan(shared.wakeup_desc, nullptr, nullptr, "done"); grpc_pollset_shutdown(shared.pollset, GRPC_CLOSURE_CREATE(destroy_pollset, shared.pollset, grpc_schedule_on_exec_ctx)); diff --git a/test/core/iomgr/fd_posix_test.cc b/test/core/iomgr/fd_posix_test.cc index b81c73b2c0..4ea2389bbd 100644 --- a/test/core/iomgr/fd_posix_test.cc +++ b/test/core/iomgr/fd_posix_test.cc @@ -115,7 +115,7 @@ static void session_shutdown_cb(void* arg, /*session */ bool success) { session* se = static_cast<session*>(arg); server* sv = se->sv; - grpc_fd_orphan(se->em_fd, nullptr, nullptr, false /* already_closed */, "a"); + grpc_fd_orphan(se->em_fd, nullptr, nullptr, "a"); gpr_free(se); /* Start to shutdown listen fd. */ grpc_fd_shutdown(sv->em_fd, @@ -171,7 +171,7 @@ static void session_read_cb(void* arg, /*session */ static void listen_shutdown_cb(void* arg /*server */, int success) { server* sv = static_cast<server*>(arg); - grpc_fd_orphan(sv->em_fd, nullptr, nullptr, false /* already_closed */, "b"); + grpc_fd_orphan(sv->em_fd, nullptr, nullptr, "b"); gpr_mu_lock(g_mu); sv->done = 1; @@ -204,7 +204,7 @@ static void listen_cb(void* arg, /*=sv_arg*/ fcntl(fd, F_SETFL, flags | O_NONBLOCK); se = static_cast<session*>(gpr_malloc(sizeof(*se))); se->sv = sv; - se->em_fd = grpc_fd_create(fd, "listener"); + se->em_fd = grpc_fd_create(fd, "listener", false); grpc_pollset_add_fd(g_pollset, se->em_fd); GRPC_CLOSURE_INIT(&se->session_read_closure, session_read_cb, se, grpc_schedule_on_exec_ctx); @@ -233,7 +233,7 @@ static int server_start(server* sv) { port = ntohs(sin.sin_port); GPR_ASSERT(listen(fd, MAX_NUM_FD) == 0); - sv->em_fd = grpc_fd_create(fd, "server"); + sv->em_fd = grpc_fd_create(fd, "server", false); grpc_pollset_add_fd(g_pollset, sv->em_fd); /* Register to be interested in reading from listen_fd. */ GRPC_CLOSURE_INIT(&sv->listen_closure, listen_cb, sv, @@ -289,7 +289,7 @@ static void client_init(client* cl) { /* Called when a client upload session is ready to shutdown. */ static void client_session_shutdown_cb(void* arg /*client */, int success) { client* cl = static_cast<client*>(arg); - grpc_fd_orphan(cl->em_fd, nullptr, nullptr, false /* already_closed */, "c"); + grpc_fd_orphan(cl->em_fd, nullptr, nullptr, "c"); cl->done = 1; GPR_ASSERT( GRPC_LOG_IF_ERROR("pollset_kick", grpc_pollset_kick(g_pollset, nullptr))); @@ -353,7 +353,7 @@ static void client_start(client* cl, int port) { } } - cl->em_fd = grpc_fd_create(fd, "client"); + cl->em_fd = grpc_fd_create(fd, "client", false); grpc_pollset_add_fd(g_pollset, cl->em_fd); client_session_write(cl, GRPC_ERROR_NONE); @@ -454,7 +454,7 @@ static void test_grpc_fd_change(void) { flags = fcntl(sv[1], F_GETFL, 0); GPR_ASSERT(fcntl(sv[1], F_SETFL, flags | O_NONBLOCK) == 0); - em_fd = grpc_fd_create(sv[0], "test_grpc_fd_change"); + em_fd = grpc_fd_create(sv[0], "test_grpc_fd_change", false); grpc_pollset_add_fd(g_pollset, em_fd); /* Register the first callback, then make its FD readable */ @@ -502,7 +502,7 @@ static void test_grpc_fd_change(void) { GPR_ASSERT(b.cb_that_ran == second_read_callback); gpr_mu_unlock(g_mu); - grpc_fd_orphan(em_fd, nullptr, nullptr, false /* already_closed */, "d"); + grpc_fd_orphan(em_fd, nullptr, nullptr, "d"); destroy_change_data(&a); destroy_change_data(&b); diff --git a/test/core/iomgr/ios/CFStreamTests/CFStreamClientTests.mm b/test/core/iomgr/ios/CFStreamTests/CFStreamClientTests.mm new file mode 100644 index 0000000000..414b6c78c0 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/CFStreamClientTests.mm @@ -0,0 +1,201 @@ +/* + * + * 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. + * + */ + +#import <XCTest/XCTest.h> + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_CFSTREAM + +#include <netinet/in.h> + +#include <grpc/impl/codegen/sync.h> +#include <grpc/support/sync.h> + +#include "src/core/lib/iomgr/endpoint.h" +#include "src/core/lib/iomgr/resolve_address.h" +#include "src/core/lib/iomgr/tcp_client.h" +#include "test/core/util/test_config.h" + +// static int g_connections_complete = 0; +static gpr_mu g_mu; +static int g_connections_complete = 0; +static grpc_endpoint* g_connecting = nullptr; + +static void finish_connection() { + gpr_mu_lock(&g_mu); + g_connections_complete++; + gpr_mu_unlock(&g_mu); +} + +static void must_succeed(void* arg, grpc_error* error) { + GPR_ASSERT(g_connecting != nullptr); + GPR_ASSERT(error == GRPC_ERROR_NONE); + grpc_endpoint_shutdown(g_connecting, GRPC_ERROR_CREATE_FROM_STATIC_STRING("must_succeed called")); + grpc_endpoint_destroy(g_connecting); + g_connecting = nullptr; + finish_connection(); +} + +static void must_fail(void* arg, grpc_error* error) { + GPR_ASSERT(g_connecting == nullptr); + GPR_ASSERT(error != GRPC_ERROR_NONE); + const char* error_str = grpc_error_string(error); + NSLog(@"%s", error_str); + finish_connection(); +} + +@interface CFStreamClientTests : XCTestCase + +@end + +@implementation CFStreamClientTests + ++ (void)setUp { + grpc_init(); + gpr_mu_init(&g_mu); +} + ++ (void)tearDown { + grpc_shutdown(); +} + +- (void)testSucceeds { + grpc_resolved_address resolved_addr; + struct sockaddr_in* addr = reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); + int svr_fd; + int r; + int connections_complete_before; + grpc_closure done; + grpc_core::ExecCtx exec_ctx; + + gpr_log(GPR_DEBUG, "test_succeeds"); + + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; + + /* create a dummy server */ + svr_fd = socket(AF_INET, SOCK_STREAM, 0); + GPR_ASSERT(svr_fd >= 0); + GPR_ASSERT(0 == bind(svr_fd, (struct sockaddr*)addr, (socklen_t)resolved_addr.len)); + GPR_ASSERT(0 == listen(svr_fd, 1)); + + gpr_mu_lock(&g_mu); + connections_complete_before = g_connections_complete; + gpr_mu_unlock(&g_mu); + + /* connect to it */ + GPR_ASSERT(getsockname(svr_fd, (struct sockaddr*)addr, (socklen_t*)&resolved_addr.len) == 0); + GRPC_CLOSURE_INIT(&done, must_succeed, nullptr, grpc_schedule_on_exec_ctx); + grpc_tcp_client_connect(&done, &g_connecting, nullptr, nullptr, &resolved_addr, + GRPC_MILLIS_INF_FUTURE); + + /* await the connection */ + do { + resolved_addr.len = sizeof(addr); + 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); + + grpc_core::ExecCtx::Get()->Flush(); + + /* wait for the connection callback to finish */ + gpr_mu_lock(&g_mu); + NSDate* deadline = [NSDate dateWithTimeIntervalSinceNow:5]; + while (connections_complete_before == g_connections_complete) { + gpr_mu_unlock(&g_mu); + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:deadline]; + gpr_mu_lock(&g_mu); + } + XCTAssertGreaterThan(g_connections_complete, connections_complete_before); + + gpr_mu_unlock(&g_mu); +} + +- (void)testFails { + grpc_core::ExecCtx exec_ctx; + + grpc_resolved_address resolved_addr; + struct sockaddr_in* addr = reinterpret_cast<struct sockaddr_in*>(resolved_addr.addr); + int connections_complete_before; + grpc_closure done; + int svr_fd; + + gpr_log(GPR_DEBUG, "test_fails"); + + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = static_cast<socklen_t>(sizeof(struct sockaddr_in)); + addr->sin_family = AF_INET; + + svr_fd = socket(AF_INET, SOCK_STREAM, 0); + GPR_ASSERT(svr_fd >= 0); + GPR_ASSERT(0 == bind(svr_fd, (struct sockaddr*)addr, (socklen_t)resolved_addr.len)); + GPR_ASSERT(0 == listen(svr_fd, 1)); + GPR_ASSERT(getsockname(svr_fd, (struct sockaddr*)addr, (socklen_t*)&resolved_addr.len) == 0); + close(svr_fd); + + gpr_mu_lock(&g_mu); + connections_complete_before = g_connections_complete; + gpr_mu_unlock(&g_mu); + + /* connect to a broken address */ + GRPC_CLOSURE_INIT(&done, must_fail, nullptr, grpc_schedule_on_exec_ctx); + grpc_tcp_client_connect(&done, &g_connecting, nullptr, nullptr, &resolved_addr, + GRPC_MILLIS_INF_FUTURE); + + grpc_core::ExecCtx::Get()->Flush(); + + /* wait for the connection callback to finish */ + gpr_mu_lock(&g_mu); + NSDate* deadline = [NSDate dateWithTimeIntervalSinceNow:5]; + while (g_connections_complete == connections_complete_before) { + gpr_mu_unlock(&g_mu); + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:deadline]; + gpr_mu_lock(&g_mu); + } + + XCTAssertGreaterThan(g_connections_complete, connections_complete_before); + + gpr_mu_unlock(&g_mu); +} + +@end + +#else // GRPC_CFSTREAM + +// Dummy test suite +@interface CFStreamClientTests : XCTestCase + +@end + +@implementation CFStreamClientTests + +- (void)setUp { + [super setUp]; +} + +- (void)tearDown { + [super tearDown]; +} + +@end + +#endif // GRPC_CFSTREAM diff --git a/test/core/iomgr/ios/CFStreamTests/CFStreamEndpointTests.mm b/test/core/iomgr/ios/CFStreamTests/CFStreamEndpointTests.mm new file mode 100644 index 0000000000..fbc34c74d6 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/CFStreamEndpointTests.mm @@ -0,0 +1,344 @@ +/* + * + * 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. + * + */ + +#import <XCTest/XCTest.h> + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_CFSTREAM + +#include <netinet/in.h> + +#include <grpc/impl/codegen/sync.h> +#include <grpc/support/sync.h> + +#include "src/core/lib/iomgr/endpoint.h" +#include "src/core/lib/iomgr/resolve_address.h" +#include "src/core/lib/iomgr/tcp_client.h" +#include "test/core/util/test_config.h" + +static const int kConnectTimeout = 5; +static const int kWriteTimeout = 5; +static const int kReadTimeout = 5; + +static const int kBufferSize = 10000; + +static const int kRunLoopTimeout = 1; + +static void set_atm(void *arg, grpc_error *error) { + gpr_atm *p = static_cast<gpr_atm *>(arg); + gpr_atm_full_cas(p, -1, reinterpret_cast<gpr_atm>(error)); +} + +static void init_event_closure(grpc_closure *closure, gpr_atm *atm) { + *atm = -1; + GRPC_CLOSURE_INIT(closure, set_atm, static_cast<void *>(atm), grpc_schedule_on_exec_ctx); +} + +static bool compare_slice_buffer_with_buffer(grpc_slice_buffer *slices, const char *buffer, + size_t buffer_len) { + if (slices->length != buffer_len) { + return false; + } + + for (int i = 0; i < slices->count; i++) { + grpc_slice slice = slices->slices[i]; + if (0 != memcmp(buffer, GRPC_SLICE_START_PTR(slice), GRPC_SLICE_LENGTH(slice))) { + return false; + } + buffer += GRPC_SLICE_LENGTH(slice); + } + + return true; +} + +@interface CFStreamEndpointTests : XCTestCase + +@end + +@implementation CFStreamEndpointTests { + grpc_endpoint *ep_; + int svr_fd_; +} + +- (BOOL)waitForEvent:(gpr_atm *)event timeout:(int)timeout { + grpc_core::ExecCtx::Get()->Flush(); + + NSDate *deadline = [NSDate dateWithTimeIntervalSinceNow:kConnectTimeout]; + while (gpr_atm_acq_load(event) == -1 && [deadline timeIntervalSinceNow] > 0) { + NSDate *deadline = [NSDate dateWithTimeIntervalSinceNow:kRunLoopTimeout]; + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:deadline]; + } + + return (gpr_atm_acq_load(event) != -1); +} + ++ (void)setUp { + grpc_init(); +} + ++ (void)tearDown { + grpc_shutdown(); +} + +- (void)setUp { + self.continueAfterFailure = NO; + + // Set up CFStream connection before testing the endpoint + + grpc_core::ExecCtx exec_ctx; + + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = reinterpret_cast<struct sockaddr_in *>(resolved_addr.addr); + int svr_fd; + int r; + gpr_atm connected = -1; + grpc_closure done; + + gpr_log(GPR_DEBUG, "test_succeeds"); + + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; + + /* create a dummy server */ + svr_fd = socket(AF_INET, SOCK_STREAM, 0); + XCTAssertGreaterThanOrEqual(svr_fd, 0); + XCTAssertEqual(bind(svr_fd, (struct sockaddr *)addr, (socklen_t)resolved_addr.len), 0); + XCTAssertEqual(listen(svr_fd, 1), 0); + + /* connect to it */ + XCTAssertEqual(getsockname(svr_fd, (struct sockaddr *)addr, (socklen_t *)&resolved_addr.len), 0); + init_event_closure(&done, &connected); + grpc_tcp_client_connect(&done, &ep_, nullptr, nullptr, &resolved_addr, GRPC_MILLIS_INF_FUTURE); + + /* await the connection */ + do { + resolved_addr.len = sizeof(addr); + r = accept(svr_fd, reinterpret_cast<struct sockaddr *>(addr), + reinterpret_cast<socklen_t *>(&resolved_addr.len)); + } while (r == -1 && errno == EINTR); + XCTAssertGreaterThanOrEqual(r, 0); + svr_fd_ = r; + + /* wait for the connection callback to finish */ + XCTAssertEqual([self waitForEvent:&connected timeout:kConnectTimeout], YES); + XCTAssertEqual(reinterpret_cast<grpc_error *>(connected), GRPC_ERROR_NONE); +} + +- (void)tearDown { + grpc_core::ExecCtx exec_ctx; + close(svr_fd_); + grpc_endpoint_destroy(ep_); +} + +- (void)testReadWrite { + grpc_core::ExecCtx exec_ctx; + + gpr_atm read; + grpc_closure read_done; + grpc_slice_buffer read_slices; + grpc_slice_buffer read_one_slice; + gpr_atm write; + grpc_closure write_done; + grpc_slice_buffer write_slices; + + grpc_slice slice; + char write_buffer[kBufferSize]; + char read_buffer[kBufferSize]; + size_t recv_size = 0; + + grpc_slice_buffer_init(&write_slices); + slice = grpc_slice_from_static_buffer(write_buffer, kBufferSize); + grpc_slice_buffer_add(&write_slices, slice); + init_event_closure(&write_done, &write); + grpc_endpoint_write(ep_, &write_slices, &write_done); + + XCTAssertEqual([self waitForEvent:&write timeout:kWriteTimeout], YES); + XCTAssertEqual(reinterpret_cast<grpc_error *>(write), GRPC_ERROR_NONE); + + while (recv_size < kBufferSize) { + ssize_t size = recv(svr_fd_, read_buffer, kBufferSize, 0); + XCTAssertGreaterThanOrEqual(size, 0); + recv_size += size; + } + + XCTAssertEqual(recv_size, kBufferSize); + XCTAssertEqual(memcmp(read_buffer, write_buffer, kBufferSize), 0); + ssize_t send_size = send(svr_fd_, read_buffer, kBufferSize, 0); + XCTAssertGreaterThanOrEqual(send_size, 0); + + grpc_slice_buffer_init(&read_slices); + grpc_slice_buffer_init(&read_one_slice); + while (read_slices.length < kBufferSize) { + init_event_closure(&read_done, &read); + grpc_endpoint_read(ep_, &read_one_slice, &read_done); + XCTAssertEqual([self waitForEvent:&read timeout:kReadTimeout], YES); + XCTAssertEqual(reinterpret_cast<grpc_error *>(read), GRPC_ERROR_NONE); + grpc_slice_buffer_move_into(&read_one_slice, &read_slices); + XCTAssertLessThanOrEqual(read_slices.length, kBufferSize); + } + XCTAssertTrue(compare_slice_buffer_with_buffer(&read_slices, read_buffer, kBufferSize)); + + grpc_endpoint_shutdown(ep_, GRPC_ERROR_NONE); + grpc_slice_buffer_reset_and_unref(&read_slices); + grpc_slice_buffer_reset_and_unref(&write_slices); + grpc_slice_buffer_reset_and_unref(&read_one_slice); +} + +- (void)testShutdownBeforeRead { + grpc_core::ExecCtx exec_ctx; + + gpr_atm read; + grpc_closure read_done; + grpc_slice_buffer read_slices; + gpr_atm write; + grpc_closure write_done; + grpc_slice_buffer write_slices; + + grpc_slice slice; + char write_buffer[kBufferSize]; + char read_buffer[kBufferSize]; + size_t recv_size = 0; + + grpc_slice_buffer_init(&read_slices); + init_event_closure(&read_done, &read); + grpc_endpoint_read(ep_, &read_slices, &read_done); + + grpc_slice_buffer_init(&write_slices); + slice = grpc_slice_from_static_buffer(write_buffer, kBufferSize); + grpc_slice_buffer_add(&write_slices, slice); + init_event_closure(&write_done, &write); + grpc_endpoint_write(ep_, &write_slices, &write_done); + + XCTAssertEqual([self waitForEvent:&write timeout:kWriteTimeout], YES); + XCTAssertEqual(reinterpret_cast<grpc_error *>(write), GRPC_ERROR_NONE); + + while (recv_size < kBufferSize) { + ssize_t size = recv(svr_fd_, read_buffer, kBufferSize, 0); + XCTAssertGreaterThanOrEqual(size, 0); + recv_size += size; + } + + XCTAssertEqual(recv_size, kBufferSize); + XCTAssertEqual(memcmp(read_buffer, write_buffer, kBufferSize), 0); + + XCTAssertEqual([self waitForEvent:&read timeout:kReadTimeout], NO); + + grpc_endpoint_shutdown(ep_, GRPC_ERROR_NONE); + + grpc_core::ExecCtx::Get()->Flush(); + XCTAssertEqual([self waitForEvent:&read timeout:kReadTimeout], YES); + XCTAssertNotEqual(reinterpret_cast<grpc_error *>(read), GRPC_ERROR_NONE); + + grpc_slice_buffer_reset_and_unref(&read_slices); + grpc_slice_buffer_reset_and_unref(&write_slices); +} + +- (void)testRemoteClosed { + grpc_core::ExecCtx exec_ctx; + + gpr_atm read; + grpc_closure read_done; + grpc_slice_buffer read_slices; + gpr_atm write; + grpc_closure write_done; + grpc_slice_buffer write_slices; + + grpc_slice slice; + char write_buffer[kBufferSize]; + char read_buffer[kBufferSize]; + size_t recv_size = 0; + + init_event_closure(&read_done, &read); + grpc_slice_buffer_init(&read_slices); + grpc_endpoint_read(ep_, &read_slices, &read_done); + + grpc_slice_buffer_init(&write_slices); + slice = grpc_slice_from_static_buffer(write_buffer, kBufferSize); + grpc_slice_buffer_add(&write_slices, slice); + init_event_closure(&write_done, &write); + grpc_endpoint_write(ep_, &write_slices, &write_done); + + XCTAssertEqual([self waitForEvent:&write timeout:kWriteTimeout], YES); + XCTAssertEqual(reinterpret_cast<grpc_error *>(write), GRPC_ERROR_NONE); + + while (recv_size < kBufferSize) { + ssize_t size = recv(svr_fd_, read_buffer, kBufferSize, 0); + XCTAssertGreaterThanOrEqual(size, 0); + recv_size += size; + } + + XCTAssertEqual(recv_size, kBufferSize); + XCTAssertEqual(memcmp(read_buffer, write_buffer, kBufferSize), 0); + + close(svr_fd_); + + XCTAssertEqual([self waitForEvent:&read timeout:kReadTimeout], YES); + XCTAssertNotEqual(reinterpret_cast<grpc_error *>(read), GRPC_ERROR_NONE); + + grpc_endpoint_shutdown(ep_, GRPC_ERROR_NONE); + grpc_slice_buffer_reset_and_unref(&read_slices); + grpc_slice_buffer_reset_and_unref(&write_slices); +} + +- (void)testRemoteReset { + grpc_core::ExecCtx exec_ctx; + + gpr_atm read; + grpc_closure read_done; + grpc_slice_buffer read_slices; + + init_event_closure(&read_done, &read); + grpc_slice_buffer_init(&read_slices); + grpc_endpoint_read(ep_, &read_slices, &read_done); + + struct linger so_linger; + so_linger.l_onoff = 1; + so_linger.l_linger = 0; + setsockopt(svr_fd_, SOL_SOCKET, SO_LINGER, &so_linger, sizeof(so_linger)); + + close(svr_fd_); + + XCTAssertEqual([self waitForEvent:&read timeout:kReadTimeout], YES); + XCTAssertNotEqual(reinterpret_cast<grpc_error *>(read), GRPC_ERROR_NONE); + + grpc_endpoint_shutdown(ep_, GRPC_ERROR_NONE); + grpc_slice_buffer_reset_and_unref(&read_slices); +} + +@end + +#else // GRPC_CFSTREAM + +// Dummy test suite +@interface CFStreamEndpointTests : XCTestCase +@end + +@implementation CFStreamEndpointTests +- (void)setUp { + [super setUp]; +} + +- (void)tearDown { + [super tearDown]; +} + +@end + +#endif // GRPC_CFSTREAM diff --git a/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/project.pbxproj b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..2218f129ae --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/project.pbxproj @@ -0,0 +1,338 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 48; + objects = { + +/* Begin PBXBuildFile section */ + 5E143B892069D72200715A6E /* CFStreamClientTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E143B882069D72200715A6E /* CFStreamClientTests.mm */; }; + 5E143B8C206B5F9F00715A6E /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5E143B8A2069D72700715A6E /* Info.plist */; }; + 5E143B8E206C5B9A00715A6E /* CFStreamEndpointTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E143B8D206C5B9A00715A6E /* CFStreamEndpointTests.mm */; }; + 604EA96D9CD477A8EA411BDF /* libPods-CFStreamTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AFFA154D492751CEAC05D591 /* libPods-CFStreamTests.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 5E143B792069D67300715A6E /* CFStreamTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CFStreamTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E143B882069D72200715A6E /* CFStreamClientTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CFStreamClientTests.mm; sourceTree = "<group>"; }; + 5E143B8A2069D72700715A6E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; + 5E143B8D206C5B9A00715A6E /* CFStreamEndpointTests.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CFStreamEndpointTests.mm; sourceTree = "<group>"; }; + 8CB4409E07E180CCA59987DF /* Pods-CFStreamTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CFStreamTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-CFStreamTests/Pods-CFStreamTests.release.xcconfig"; sourceTree = "<group>"; }; + 9E3FAF9DA6B98ED4FE6D6848 /* Pods-CFStreamTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CFStreamTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CFStreamTests/Pods-CFStreamTests.debug.xcconfig"; sourceTree = "<group>"; }; + AFFA154D492751CEAC05D591 /* libPods-CFStreamTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CFStreamTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5E143B762069D67300715A6E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 604EA96D9CD477A8EA411BDF /* libPods-CFStreamTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5E143B582069D67300715A6E = { + isa = PBXGroup; + children = ( + 5E143B8D206C5B9A00715A6E /* CFStreamEndpointTests.mm */, + 5E143B8A2069D72700715A6E /* Info.plist */, + 5E143B882069D72200715A6E /* CFStreamClientTests.mm */, + 5E143B622069D67300715A6E /* Products */, + A331D95F7F230B507FBF6D22 /* Pods */, + 6AC36F6C5DB5CA8F717D1B67 /* Frameworks */, + ); + sourceTree = "<group>"; + }; + 5E143B622069D67300715A6E /* Products */ = { + isa = PBXGroup; + children = ( + 5E143B792069D67300715A6E /* CFStreamTests.xctest */, + ); + name = Products; + sourceTree = "<group>"; + }; + 6AC36F6C5DB5CA8F717D1B67 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AFFA154D492751CEAC05D591 /* libPods-CFStreamTests.a */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + A331D95F7F230B507FBF6D22 /* Pods */ = { + isa = PBXGroup; + children = ( + 9E3FAF9DA6B98ED4FE6D6848 /* Pods-CFStreamTests.debug.xcconfig */, + 8CB4409E07E180CCA59987DF /* Pods-CFStreamTests.release.xcconfig */, + ); + name = Pods; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5E143B782069D67300715A6E /* CFStreamTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5E143B852069D67300715A6E /* Build configuration list for PBXNativeTarget "CFStreamTests" */; + buildPhases = ( + 4EBA55D3E23FC6C84596E3D5 /* [CP] Check Pods Manifest.lock */, + 5E143B752069D67300715A6E /* Sources */, + 5E143B762069D67300715A6E /* Frameworks */, + 5E143B772069D67300715A6E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CFStreamTests; + productName = CFStreamTestsTests; + productReference = 5E143B792069D67300715A6E /* CFStreamTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5E143B592069D67300715A6E /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0920; + ORGANIZATIONNAME = gRPC; + TargetAttributes = { + 5E143B782069D67300715A6E = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 5E143B5C2069D67300715A6E /* Build configuration list for PBXProject "CFStreamTests" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5E143B582069D67300715A6E; + productRefGroup = 5E143B622069D67300715A6E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5E143B782069D67300715A6E /* CFStreamTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5E143B772069D67300715A6E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5E143B8C206B5F9F00715A6E /* Info.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 4EBA55D3E23FC6C84596E3D5 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-CFStreamTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5E143B752069D67300715A6E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5E143B892069D72200715A6E /* CFStreamClientTests.mm in Sources */, + 5E143B8E206C5B9A00715A6E /* CFStreamEndpointTests.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 5E143B802069D67300715A6E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 5E143B812069D67300715A6E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 5E143B862069D67300715A6E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9E3FAF9DA6B98ED4FE6D6848 /* Pods-CFStreamTests.debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "$(inherited)", + "PB_FIELD_32BIT=1", + "PB_NO_PACKED_STRUCTS=1", + "GRPC_CFSTREAM=1", + ); + INFOPLIST_FILE = Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.CFStreamTestsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ../../../../..; + }; + name = Debug; + }; + 5E143B872069D67300715A6E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8CB4409E07E180CCA59987DF /* Pods-CFStreamTests.release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.CFStreamTestsTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = ../../../../..; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5E143B5C2069D67300715A6E /* Build configuration list for PBXProject "CFStreamTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5E143B802069D67300715A6E /* Debug */, + 5E143B812069D67300715A6E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5E143B852069D67300715A6E /* Build configuration list for PBXNativeTarget "CFStreamTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5E143B862069D67300715A6E /* Debug */, + 5E143B872069D67300715A6E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5E143B592069D67300715A6E /* Project object */; +} diff --git a/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests.xcscheme b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests.xcscheme new file mode 100644 index 0000000000..25d6f780a1 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests.xcscheme @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0920" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + <TestableReference + skipped = "NO"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "5E143B782069D67300715A6E" + BuildableName = "CFStreamTests.xctest" + BlueprintName = "CFStreamTests" + ReferencedContainer = "container:CFStreamTests.xcodeproj"> + </BuildableReference> + </TestableReference> + </Testables> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Asan.xcscheme b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Asan.xcscheme new file mode 100644 index 0000000000..6c5c43aa72 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Asan.xcscheme @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0920" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + enableAddressSanitizer = "YES" + enableASanStackUseAfterReturn = "YES" + language = "" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + <TestableReference + skipped = "NO"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "5E143B782069D67300715A6E" + BuildableName = "CFStreamTests.xctest" + BlueprintName = "CFStreamTests" + ReferencedContainer = "container:CFStreamTests.xcodeproj"> + </BuildableReference> + </TestableReference> + </Testables> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + enableASanStackUseAfterReturn = "YES" + language = "" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Msan.xcscheme b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Msan.xcscheme new file mode 100644 index 0000000000..3e39ff84d0 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Msan.xcscheme @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0920" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + <TestableReference + skipped = "NO"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "5E143B782069D67300715A6E" + BuildableName = "CFStreamTests.xctest" + BlueprintName = "CFStreamTests" + ReferencedContainer = "container:CFStreamTests.xcodeproj"> + </BuildableReference> + </TestableReference> + </Testables> + <AdditionalOptions> + <AdditionalOption + key = "DYLD_INSERT_LIBRARIES" + value = "/usr/lib/libgmalloc.dylib" + isEnabled = "YES"> + </AdditionalOption> + <AdditionalOption + key = "NSZombieEnabled" + value = "YES" + isEnabled = "YES"> + </AdditionalOption> + <AdditionalOption + key = "MallocGuardEdges" + value = "" + isEnabled = "YES"> + </AdditionalOption> + <AdditionalOption + key = "MallocScribble" + value = "" + isEnabled = "YES"> + </AdditionalOption> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Tsan.xcscheme b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Tsan.xcscheme new file mode 100644 index 0000000000..f0bde837c5 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/CFStreamTests.xcodeproj/xcshareddata/xcschemes/CFStreamTests_Tsan.xcscheme @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0920" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + enableThreadSanitizer = "YES" + language = "" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + <TestableReference + skipped = "NO"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "5E143B782069D67300715A6E" + BuildableName = "CFStreamTests.xctest" + BlueprintName = "CFStreamTests" + ReferencedContainer = "container:CFStreamTests.xcodeproj"> + </BuildableReference> + </TestableReference> + </Testables> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + stopOnEveryThreadSanitizerIssue = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/test/core/iomgr/ios/CFStreamTests/Info.plist b/test/core/iomgr/ios/CFStreamTests/Info.plist new file mode 100644 index 0000000000..6c40a6cd0c --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/Info.plist @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>$(DEVELOPMENT_LANGUAGE)</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>BNDL</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleVersion</key> + <string>1</string> +</dict> +</plist> diff --git a/test/core/iomgr/ios/CFStreamTests/Podfile b/test/core/iomgr/ios/CFStreamTests/Podfile new file mode 100644 index 0000000000..630168a363 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/Podfile @@ -0,0 +1,50 @@ +source 'https://github.com/CocoaPods/Specs.git' +platform :ios, '8.0' + +install! 'cocoapods', :deterministic_uuids => false + +# Location of gRPC's repo root relative to this file. +GRPC_LOCAL_SRC = '../../../../..' + +# Install the dependencies in the main target plus all test targets. +target 'CFStreamTests' do + pod 'gRPC-Core/CFStream-Implementation', :path => GRPC_LOCAL_SRC +end + +pre_install do |installer| + # This is the gRPC-Core podspec object, as initialized by its podspec file. + grpc_core_spec = installer.pod_targets.find{|t| t.name == 'gRPC-Core'}.root_spec + + # Copied from gRPC-Core.podspec, except for the adjusted src_root: + src_root = "$(PODS_ROOT)/../#{GRPC_LOCAL_SRC}" + grpc_core_spec.pod_target_xcconfig = { + 'GRPC_SRC_ROOT' => src_root, + 'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(GRPC_SRC_ROOT)/include"', + 'USER_HEADER_SEARCH_PATHS' => '"$(GRPC_SRC_ROOT)"', + # If we don't set these two settings, `include/grpc/support/time.h` and + # `src/core/lib/gpr/string.h` shadow the system `<time.h>` and `<string.h>`, breaking the + # build. + 'USE_HEADERMAP' => 'NO', + 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + } +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'YES' + end + + # CocoaPods creates duplicated library targets of gRPC-Core when the test targets include + # non-default subspecs of gRPC-Core. All of these library targets start with prefix 'gRPC-Core' + # and require the same error suppresion. + if target.name.start_with?('gRPC-Core') + target.build_configurations.each do |config| + # TODO(zyc): Remove this setting after the issue is resolved + # GPR_UNREACHABLE_CODE causes "Control may reach end of non-void + # function" warning + config.build_settings['GCC_WARN_ABOUT_RETURN_TYPE'] = 'NO' + end + end + end +end diff --git a/test/core/iomgr/ios/CFStreamTests/build_tests.sh b/test/core/iomgr/ios/CFStreamTests/build_tests.sh new file mode 100755 index 0000000000..d23f26f5db --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/build_tests.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# 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. + +# Don't run this script standalone. Instead, run from the repository root: +# ./tools/run_tests/run_tests.py -l objc + +set -e + +# CocoaPods requires the terminal to be using UTF-8 encoding. +export LANG=en_US.UTF-8 + +cd "$(dirname "$0")" + +hash pod 2>/dev/null || { echo >&2 "Cocoapods needs to be installed."; exit 1; } +hash xcodebuild 2>/dev/null || { + echo >&2 "XCode command-line tools need to be installed." + exit 1 +} + +# clean the directory +rm -rf Pods +rm -rf CFStreamTests.xcworkspace +rm -f Podfile.lock + +echo "TIME: $(date)" +pod install + diff --git a/test/core/iomgr/ios/CFStreamTests/run_tests.sh b/test/core/iomgr/ios/CFStreamTests/run_tests.sh new file mode 100755 index 0000000000..1045ec10a8 --- /dev/null +++ b/test/core/iomgr/ios/CFStreamTests/run_tests.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# 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. + +# Don't run this script standalone. Instead, run from the repository root: +# ./tools/run_tests/run_tests.py -l objc + +set -ev + +cd "$(dirname "$0")" + +echo "TIME: $(date)" + +XCODEBUILD_FILTER='(^CompileC |^Ld |^ *[^ ]*clang |^ *cd |^ *export |^Libtool |^ *[^ ]*libtool |^CpHeader |^ *builtin-copy )' + +xcodebuild \ + -workspace CFStreamTests.xcworkspace \ + -scheme CFStreamTests \ + -destination name="iPhone 8" \ + test \ + | egrep -v "$XCODEBUILD_FILTER" \ + | egrep -v '^$' \ + | egrep -v "(GPBDictionary|GPBArray)" - + +echo "TIME: $(date)" + +xcodebuild \ + -workspace CFStreamTests.xcworkspace \ + -scheme CFStreamTests_Asan \ + -destination name="iPhone 8" \ + test \ + | egrep -v "$XCODEBUILD_FILTER" \ + | egrep -v '^$' \ + | egrep -v "(GPBDictionary|GPBArray)" - + +echo "TIME: $(date)" + +xcodebuild \ + -workspace CFStreamTests.xcworkspace \ + -scheme CFStreamTests_Tsan \ + -destination name="iPhone 8" \ + test \ + | egrep -v "$XCODEBUILD_FILTER" \ + | egrep -v '^$' \ + | egrep -v "(GPBDictionary|GPBArray)" - + +echo "TIME: $(date)" + +xcodebuild \ + -workspace CFStreamTests.xcworkspace \ + -scheme CFStreamTests_Msan \ + -destination name="iPhone 8" \ + test \ + | egrep -v "$XCODEBUILD_FILTER" \ + | egrep -v '^$' \ + | egrep -v "(GPBDictionary|GPBArray)" - diff --git a/test/core/iomgr/pollset_set_test.cc b/test/core/iomgr/pollset_set_test.cc index 0dc75a5f3f..1aae1daa02 100644 --- a/test/core/iomgr/pollset_set_test.cc +++ b/test/core/iomgr/pollset_set_test.cc @@ -118,7 +118,7 @@ static void init_test_fds(test_fd* tfds, const int num_fds) { for (int i = 0; i < num_fds; i++) { GPR_ASSERT(GRPC_ERROR_NONE == grpc_wakeup_fd_init(&tfds[i].wakeup_fd)); tfds[i].fd = grpc_fd_create(GRPC_WAKEUP_FD_GET_READ_FD(&tfds[i].wakeup_fd), - "test_fd"); + "test_fd", false); reset_test_fd(&tfds[i]); } } @@ -136,8 +136,7 @@ static void cleanup_test_fds(test_fd* tfds, const int num_fds) { * grpc_wakeup_fd and we would like to destroy it ourselves (by calling * grpc_wakeup_fd_destroy). To prevent grpc_fd from calling close() on the * underlying fd, call it with a non-NULL 'release_fd' parameter */ - grpc_fd_orphan(tfds[i].fd, nullptr, &release_fd, false /* already_closed */, - "test_fd_cleanup"); + grpc_fd_orphan(tfds[i].fd, nullptr, &release_fd, "test_fd_cleanup"); grpc_core::ExecCtx::Get()->Flush(); grpc_wakeup_fd_destroy(&tfds[i].wakeup_fd); diff --git a/test/core/iomgr/tcp_posix_test.cc b/test/core/iomgr/tcp_posix_test.cc index f4df6fca23..3e87831e44 100644 --- a/test/core/iomgr/tcp_posix_test.cc +++ b/test/core/iomgr/tcp_posix_test.cc @@ -176,7 +176,8 @@ static void read_test(size_t num_bytes, size_t 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"); + ep = + grpc_tcp_create(grpc_fd_create(sv[1], "read_test", false), &args, "test"); grpc_endpoint_add_to_pollset(ep, g_pollset); written_bytes = fill_socket_partial(sv[0], num_bytes); @@ -226,7 +227,8 @@ static void large_read_test(size_t 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], "large_read_test"), &args, "test"); + ep = grpc_tcp_create(grpc_fd_create(sv[1], "large_read_test", false), &args, + "test"); grpc_endpoint_add_to_pollset(ep, g_pollset); written_bytes = fill_socket(sv[0]); @@ -365,7 +367,8 @@ static void write_test(size_t num_bytes, size_t 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"); + ep = grpc_tcp_create(grpc_fd_create(sv[1], "write_test", false), &args, + "test"); grpc_endpoint_add_to_pollset(ep, g_pollset); state.ep = ep; @@ -433,7 +436,8 @@ static void release_fd_test(size_t num_bytes, size_t 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"); + ep = + grpc_tcp_create(grpc_fd_create(sv[1], "read_test", false), &args, "test"); GPR_ASSERT(grpc_tcp_fd(ep) == sv[1] && sv[1] >= 0); grpc_endpoint_add_to_pollset(ep, g_pollset); @@ -522,10 +526,10 @@ static grpc_endpoint_test_fixture create_fixture_tcp_socketpair( a[0].type = GRPC_ARG_INTEGER; 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"); - f.server_ep = - grpc_tcp_create(grpc_fd_create(sv[1], "fixture:server"), &args, "test"); + f.client_ep = grpc_tcp_create(grpc_fd_create(sv[0], "fixture:client", false), + &args, "test"); + f.server_ep = grpc_tcp_create(grpc_fd_create(sv[1], "fixture:server", false), + &args, "test"); grpc_resource_quota_unref_internal(resource_quota); grpc_endpoint_add_to_pollset(f.client_ep, g_pollset); grpc_endpoint_add_to_pollset(f.server_ep, g_pollset); diff --git a/test/core/security/BUILD b/test/core/security/BUILD index 70bcc8c9c3..12aa84d93b 100644 --- a/test/core/security/BUILD +++ b/test/core/security/BUILD @@ -183,6 +183,7 @@ grpc_cc_test( "//:gpr", "//:gpr_base", "//:grpc", + "//test/core/util:gpr_test_util", ], ) @@ -195,6 +196,7 @@ grpc_cc_test( "//:gpr", "//:gpr_base", "//:grpc", + "//test/core/util:gpr_test_util", ], ) @@ -206,6 +208,7 @@ grpc_cc_test( "//:alts_util", "//:gpr", "//:grpc", + "//test/core/util:gpr_test_util", ], ) @@ -220,5 +223,6 @@ grpc_cc_test( "//:grpc_secure", "//:tsi", "//:tsi_interface", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/transport/BUILD b/test/core/transport/BUILD index 84fb3a1421..7ca1c1d943 100644 --- a/test/core/transport/BUILD +++ b/test/core/transport/BUILD @@ -129,6 +129,7 @@ grpc_cc_test( language = "C++", deps = [ "//:grpc", + "//test/core/util:gpr_test_util", ], external_deps = [ "gtest", diff --git a/test/core/transport/status_conversion_test.cc b/test/core/transport/status_conversion_test.cc index 1ed6ccfba6..f7b3c62a40 100644 --- a/test/core/transport/status_conversion_test.cc +++ b/test/core/transport/status_conversion_test.cc @@ -33,12 +33,7 @@ #define HTTP2_STATUS_TO_GRPC_STATUS(a, b) \ GPR_ASSERT(grpc_http2_status_to_grpc_status(a) == (b)) -int main(int argc, char** argv) { - int i; - - grpc_test_init(argc, argv); - grpc_init(); - +static void test_grpc_status_to_http2_error() { GRPC_STATUS_TO_HTTP2_ERROR(GRPC_STATUS_OK, GRPC_HTTP2_NO_ERROR); GRPC_STATUS_TO_HTTP2_ERROR(GRPC_STATUS_CANCELLED, GRPC_HTTP2_CANCEL); GRPC_STATUS_TO_HTTP2_ERROR(GRPC_STATUS_UNKNOWN, GRPC_HTTP2_INTERNAL_ERROR); @@ -65,7 +60,9 @@ int main(int argc, char** argv) { GRPC_STATUS_TO_HTTP2_ERROR(GRPC_STATUS_UNAVAILABLE, GRPC_HTTP2_REFUSED_STREAM); GRPC_STATUS_TO_HTTP2_ERROR(GRPC_STATUS_DATA_LOSS, GRPC_HTTP2_INTERNAL_ERROR); +} +static void test_grpc_status_to_http2_status() { GRPC_STATUS_TO_HTTP2_STATUS(GRPC_STATUS_OK, 200); GRPC_STATUS_TO_HTTP2_STATUS(GRPC_STATUS_CANCELLED, 200); GRPC_STATUS_TO_HTTP2_STATUS(GRPC_STATUS_UNKNOWN, 200); @@ -83,7 +80,9 @@ int main(int argc, char** argv) { GRPC_STATUS_TO_HTTP2_STATUS(GRPC_STATUS_INTERNAL, 200); GRPC_STATUS_TO_HTTP2_STATUS(GRPC_STATUS_UNAVAILABLE, 200); GRPC_STATUS_TO_HTTP2_STATUS(GRPC_STATUS_DATA_LOSS, 200); +} +static void test_http2_error_to_grpc_status() { const grpc_millis before_deadline = GRPC_MILLIS_INF_FUTURE; HTTP2_ERROR_TO_GRPC_STATUS(GRPC_HTTP2_NO_ERROR, before_deadline, GRPC_STATUS_INTERNAL); @@ -144,7 +143,9 @@ int main(int argc, char** argv) { GRPC_STATUS_RESOURCE_EXHAUSTED); HTTP2_ERROR_TO_GRPC_STATUS(GRPC_HTTP2_INADEQUATE_SECURITY, after_deadline, GRPC_STATUS_PERMISSION_DENIED); +} +static void test_http2_status_to_grpc_status() { HTTP2_STATUS_TO_GRPC_STATUS(200, GRPC_STATUS_OK); HTTP2_STATUS_TO_GRPC_STATUS(400, GRPC_STATUS_INVALID_ARGUMENT); HTTP2_STATUS_TO_GRPC_STATUS(401, GRPC_STATUS_UNAUTHENTICATED); @@ -157,6 +158,18 @@ int main(int argc, char** argv) { HTTP2_STATUS_TO_GRPC_STATUS(500, GRPC_STATUS_UNKNOWN); HTTP2_STATUS_TO_GRPC_STATUS(503, GRPC_STATUS_UNAVAILABLE); HTTP2_STATUS_TO_GRPC_STATUS(504, GRPC_STATUS_DEADLINE_EXCEEDED); +} + +int main(int argc, char** argv) { + int i; + + grpc_test_init(argc, argv); + grpc_init(); + + test_grpc_status_to_http2_error(); + test_grpc_status_to_http2_status(); + test_http2_error_to_grpc_status(); + test_http2_status_to_grpc_status(); /* check all status values can be converted */ for (i = 0; i <= 999; i++) { diff --git a/test/core/tsi/alts/crypt/BUILD b/test/core/tsi/alts/crypt/BUILD index cf9dbca316..abe1e83656 100644 --- a/test/core/tsi/alts/crypt/BUILD +++ b/test/core/tsi/alts/crypt/BUILD @@ -27,6 +27,7 @@ grpc_cc_test( "//:alts_frame_protector", "//:gpr", "//:grpc", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/tsi/alts/frame_protector/BUILD b/test/core/tsi/alts/frame_protector/BUILD index dd1966b379..6ff3015f4d 100644 --- a/test/core/tsi/alts/frame_protector/BUILD +++ b/test/core/tsi/alts/frame_protector/BUILD @@ -27,6 +27,7 @@ grpc_cc_test( "//:gpr", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -39,6 +40,7 @@ grpc_cc_test( "//:gpr", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -54,6 +56,7 @@ grpc_cc_test( "//:tsi_interface", "//test/core/tsi/alts/crypt:alts_crypt_test_util", "//test/core/tsi:transport_security_test_lib", + "//test/core/util:gpr_test_util", ], ) @@ -67,5 +70,6 @@ grpc_cc_test( "//:gpr_base", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/tsi/alts/handshaker/BUILD b/test/core/tsi/alts/handshaker/BUILD index 809742744c..3f1a681c1a 100644 --- a/test/core/tsi/alts/handshaker/BUILD +++ b/test/core/tsi/alts/handshaker/BUILD @@ -37,6 +37,7 @@ grpc_cc_test( "//:tsi", "//:tsi_interface", "//:grpc", + "//test/core/util:gpr_test_util", ], ) @@ -47,6 +48,7 @@ grpc_cc_test( deps = [ ":alts_handshaker_service_api_test_lib", "//:grpc", + "//test/core/util:gpr_test_util", ], ) @@ -60,6 +62,7 @@ grpc_cc_test( "//:gpr_base", "//:grpc", "//:tsi", + "//test/core/util:gpr_test_util", ], ) @@ -71,6 +74,7 @@ grpc_cc_test( ":alts_handshaker_service_api_test_lib", "//:grpc", "//:tsi", + "//test/core/util:gpr_test_util", ], ) @@ -81,6 +85,7 @@ grpc_cc_test( deps = [ "//:alts_util", "//:grpc", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/tsi/alts/zero_copy_frame_protector/BUILD b/test/core/tsi/alts/zero_copy_frame_protector/BUILD index 2b41dae043..a3b797327e 100644 --- a/test/core/tsi/alts/zero_copy_frame_protector/BUILD +++ b/test/core/tsi/alts/zero_copy_frame_protector/BUILD @@ -28,6 +28,7 @@ grpc_cc_test( "//:grpc", "//:grpc_base_c", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -40,6 +41,7 @@ grpc_cc_test( "//:gpr", "//:grpc", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) @@ -53,5 +55,6 @@ grpc_cc_test( "//:grpc", "//:grpc_base_c", "//test/core/tsi/alts/crypt:alts_crypt_test_util", + "//test/core/util:gpr_test_util", ], ) diff --git a/test/core/util/BUILD b/test/core/util/BUILD index f52570cde5..be3e204777 100644 --- a/test/core/util/BUILD +++ b/test/core/util/BUILD @@ -32,6 +32,11 @@ grpc_cc_library( "test_config.h", ], deps = ["//:gpr"], + data = [ + "//tools:lsan_suppressions.txt", + "//tools:tsan_suppressions.txt", + "//tools:ubsan_suppressions.txt", + ], ) grpc_cc_library( |