From d13663c744e7d7e6ad8acc0cdf6eadce8c0fedcc Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 10 Jun 2016 18:40:46 -0700 Subject: [PATCH 001/202] [RUNTIME] working client --- main.cpp | 149 ++++++++++++++++++ test_config.c | 407 ++++++++++++++++++++++++++++++++++++++++++++++++++ test_config.h | 79 ++++++++++ 3 files changed, 635 insertions(+) create mode 100644 main.cpp create mode 100644 test_config.c create mode 100644 test_config.h diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000000000..8e5a5c8b0f213 --- /dev/null +++ b/main.cpp @@ -0,0 +1,149 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include +#include +#include +#include +#include "test_config.h" + +static void *tag(intptr_t i) { return (void *)i; } + +int main(int argc, char **argv) { + grpc_channel *chan; + grpc_call *call; + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_completion_queue *cq; + grpc_op ops[6]; + grpc_op *op; + grpc_metadata_array trailing_metadata_recv; + grpc_status_code status; + char *details = NULL; + size_t details_capacity = 0; + + grpc_test_init(argc, argv); + grpc_init(); + + grpc_metadata_array_init(&trailing_metadata_recv); + + cq = grpc_completion_queue_create(NULL); + + /* create a call, channel to a non existant server */ + chan = grpc_insecure_channel_create("0.0.0.0:50051", NULL, NULL); + call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/helloworld.Greeter/SayHello", "0.0.0.0", deadline, NULL); + + op = ops; + + op->op = GRPC_OP_SEND_INITIAL_METADATA; + op->data.send_initial_metadata.count = 0; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_SEND_MESSAGE; + // hardcoded string for "gRPC-C" + const char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; + gpr_slice slice = gpr_slice_from_copied_buffer(str, sizeof(str)); + op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_RECV_INITIAL_METADATA; + grpc_metadata_array metadata_array; + grpc_metadata_array_init(&metadata_array); + op->data.recv_initial_metadata = &metadata_array; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_RECV_MESSAGE; + grpc_byte_buffer *buffer = NULL; + op->data.recv_message = &buffer; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; + op->flags = 0; + op->reserved = NULL; + 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->data.recv_status_on_client.status_details_capacity = &details_capacity; + op->flags = 0; + op->reserved = NULL; + op++; + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, (size_t)(op - ops), tag(1), NULL)); + + /* wait till all tags get completed */ + for (;;) { + grpc_event ev; + ev = grpc_completion_queue_next(cq, deadline, NULL); + if (ev.tag == tag(1)) break; + } + + printf("%x\n", buffer); + printf("%d\n", status); + printf("%s\n", details); + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *response = GPR_SLICE_START_PTR(slice_recv); + printf("Server said: %s", response + 2); // skip to the string in serialized protobuf object + GPR_ASSERT(status == GRPC_STATUS_OK); + + grpc_completion_queue_shutdown(cq); + while ( + grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) + .type != GRPC_QUEUE_SHUTDOWN) + ; + grpc_completion_queue_destroy(cq); + grpc_call_destroy(call); + grpc_channel_destroy(chan); + + gpr_free(details); + grpc_metadata_array_destroy(&trailing_metadata_recv); + + grpc_shutdown(); + + return 0; +} diff --git a/test_config.c b/test_config.c new file mode 100644 index 0000000000000..aa0b1f9a204f7 --- /dev/null +++ b/test_config.c @@ -0,0 +1,407 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "test_config.h" + +#include +#include +#include +#include +#include +#include + +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CORE_LIB_SUPPORT_STRING_H +#define GRPC_CORE_LIB_SUPPORT_STRING_H + +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* String utility functions */ + +/* Flags for gpr_dump function. */ +#define GPR_DUMP_HEX 0x00000001 +#define GPR_DUMP_ASCII 0x00000002 + +/* Converts array buf, of length len, into a C string according to the flags. + Result should be freed with gpr_free() */ +char *gpr_dump(const char *buf, size_t len, uint32_t flags); + +/* Calls gpr_dump on a slice. */ +char *gpr_dump_slice(gpr_slice slice, uint32_t flags); + +/* Parses an array of bytes into an integer (base 10). Returns 1 on success, + 0 on failure. */ +int gpr_parse_bytes_to_uint32(const char *data, size_t length, + uint32_t *result); + +/* Minimum buffer size for calling ltoa */ +#define GPR_LTOA_MIN_BUFSIZE (3 * sizeof(long)) + +/* Convert a long to a string in base 10; returns the length of the + output string (or 0 on failure). + output must be at least GPR_LTOA_MIN_BUFSIZE bytes long. */ +int gpr_ltoa(long value, char *output); + +/* Minimum buffer size for calling int64toa */ +#define GPR_INT64TOA_MIN_BUFSIZE (3 * sizeof(int64_t)) + +/* Convert an int64 to a string in base 10; returns the length of the +output string (or 0 on failure). +output must be at least GPR_INT64TOA_MIN_BUFSIZE bytes long. +NOTE: This function ensures sufficient bit width even on Win x64, +where long is 32bit is size.*/ +int int64_ttoa(int64_t value, char *output); + +/* Reverse a run of bytes */ +void gpr_reverse_bytes(char *str, int len); + +/* Join a set of strings, returning the resulting string. + Total combined length (excluding null terminator) is returned in total_length + if it is non-null. */ +char *gpr_strjoin(const char **strs, size_t nstrs, size_t *total_length); + +/* Join a set of strings using a separator, returning the resulting string. + Total combined length (excluding null terminator) is returned in total_length + if it is non-null. */ +char *gpr_strjoin_sep(const char **strs, size_t nstrs, const char *sep, + size_t *total_length); + +/** Split \a str by the separator \a sep. Results are stored in \a dst, which + * should be a properly initialized instance. */ +void gpr_slice_split(gpr_slice str, const char *sep, gpr_slice_buffer *dst); + +/* A vector of strings... for building up a final string one piece at a time */ +typedef struct { + char **strs; + size_t count; + size_t capacity; +} gpr_strvec; + +/* Initialize/destroy */ +void gpr_strvec_init(gpr_strvec *strs); +void gpr_strvec_destroy(gpr_strvec *strs); +/* Add a string to a strvec, takes ownership of the string */ +void gpr_strvec_add(gpr_strvec *strs, char *add); +/* Return a joined string with all added substrings, optionally setting + total_length as per gpr_strjoin */ +char *gpr_strvec_flatten(gpr_strvec *strs, size_t *total_length); + +#ifdef __cplusplus +} +#endif + +#endif /* GRPC_CORE_LIB_SUPPORT_STRING_H */ + + +double g_fixture_slowdown_factor = 1.0; + +#if GPR_GETPID_IN_UNISTD_H +#include +static unsigned seed(void) { return (unsigned)getpid(); } +#endif + +#if GPR_GETPID_IN_PROCESS_H +#include +static unsigned seed(void) { return (unsigned)_getpid(); } +#endif + +#if GPR_WINDOWS_CRASH_HANDLER +#include + +#include + +// disable warning 4091 - dbghelp.h is broken for msvc2015 +#pragma warning(disable : 4091) +#define DBGHELP_TRANSLATE_TCHAR +#include + +#ifdef _MSC_VER +#pragma comment(lib, "dbghelp.lib") +#endif + +static void print_current_stack() { + typedef USHORT(WINAPI * CaptureStackBackTraceType)( + __in ULONG, __in ULONG, __out PVOID *, __out_opt PULONG); + CaptureStackBackTraceType func = (CaptureStackBackTraceType)(GetProcAddress( + LoadLibrary(_T("kernel32.dll")), "RtlCaptureStackBackTrace")); + + if (func == NULL) return; // WOE 29.SEP.2010 + +// Quote from Microsoft Documentation: +// ## Windows Server 2003 and Windows XP: +// ## The sum of the FramesToSkip and FramesToCapture parameters must be less +// than 63. +#define MAX_CALLERS 62 + + void *callers_stack[MAX_CALLERS]; + unsigned short frames; + SYMBOL_INFOW *symbol; + HANDLE process; + process = GetCurrentProcess(); + SymInitialize(process, NULL, TRUE); + frames = (func)(0, MAX_CALLERS, callers_stack, NULL); + symbol = + (SYMBOL_INFOW *)calloc(sizeof(SYMBOL_INFOW) + 256 * sizeof(wchar_t), 1); + symbol->MaxNameLen = 255; + symbol->SizeOfStruct = sizeof(SYMBOL_INFOW); + + const unsigned short MAX_CALLERS_SHOWN = 32; + frames = frames < MAX_CALLERS_SHOWN ? frames : MAX_CALLERS_SHOWN; + for (unsigned int i = 0; i < frames; i++) { + SymFromAddrW(process, (DWORD64)(callers_stack[i]), 0, symbol); + fwprintf(stderr, L"*** %d: %016I64X %ls - %016I64X\n", i, + (DWORD64)callers_stack[i], symbol->Name, (DWORD64)symbol->Address); + fflush(stderr); + } + + free(symbol); +} + +static void print_stack_from_context(CONTEXT c) { + STACKFRAME s; // in/out stackframe + memset(&s, 0, sizeof(s)); + DWORD imageType; +#ifdef _M_IX86 + // normally, call ImageNtHeader() and use machine info from PE header + imageType = IMAGE_FILE_MACHINE_I386; + s.AddrPC.Offset = c.Eip; + s.AddrPC.Mode = AddrModeFlat; + s.AddrFrame.Offset = c.Ebp; + s.AddrFrame.Mode = AddrModeFlat; + s.AddrStack.Offset = c.Esp; + s.AddrStack.Mode = AddrModeFlat; +#elif _M_X64 + imageType = IMAGE_FILE_MACHINE_AMD64; + s.AddrPC.Offset = c.Rip; + s.AddrPC.Mode = AddrModeFlat; + s.AddrFrame.Offset = c.Rsp; + s.AddrFrame.Mode = AddrModeFlat; + s.AddrStack.Offset = c.Rsp; + s.AddrStack.Mode = AddrModeFlat; +#elif _M_IA64 + imageType = IMAGE_FILE_MACHINE_IA64; + s.AddrPC.Offset = c.StIIP; + s.AddrPC.Mode = AddrModeFlat; + s.AddrFrame.Offset = c.IntSp; + s.AddrFrame.Mode = AddrModeFlat; + s.AddrBStore.Offset = c.RsBSP; + s.AddrBStore.Mode = AddrModeFlat; + s.AddrStack.Offset = c.IntSp; + s.AddrStack.Mode = AddrModeFlat; +#else +#error "Platform not supported!" +#endif + + HANDLE process = GetCurrentProcess(); + HANDLE thread = GetCurrentThread(); + + SYMBOL_INFOW *symbol = + (SYMBOL_INFOW *)calloc(sizeof(SYMBOL_INFOW) + 256 * sizeof(wchar_t), 1); + symbol->MaxNameLen = 255; + symbol->SizeOfStruct = sizeof(SYMBOL_INFOW); + + while (StackWalk(imageType, process, thread, &s, &c, 0, + SymFunctionTableAccess, SymGetModuleBase, 0)) { + BOOL has_symbol = + SymFromAddrW(process, (DWORD64)(s.AddrPC.Offset), 0, symbol); + fwprintf( + stderr, L"*** %016I64X %ls - %016I64X\n", (DWORD64)(s.AddrPC.Offset), + has_symbol ? symbol->Name : L"<>", (DWORD64)symbol->Address); + fflush(stderr); + } + + free(symbol); +} + +static LONG crash_handler(struct _EXCEPTION_POINTERS *ex_info) { + fprintf(stderr, "Exception handler called, dumping information\n"); + bool try_to_print_stack = true; + PEXCEPTION_RECORD exrec = ex_info->ExceptionRecord; + while (exrec) { + DWORD code = exrec->ExceptionCode; + DWORD flgs = exrec->ExceptionFlags; + PVOID addr = exrec->ExceptionAddress; + if (code == EXCEPTION_STACK_OVERFLOW) try_to_print_stack = false; + fprintf(stderr, "code: %x - flags: %d - address: %p\n", code, flgs, addr); + exrec = exrec->ExceptionRecord; + } + if (try_to_print_stack) { + print_stack_from_context(*ex_info->ContextRecord); + } + if (IsDebuggerPresent()) { + __debugbreak(); + } else { + _exit(1); + } + return EXCEPTION_EXECUTE_HANDLER; +} + +static void abort_handler(int sig) { + fprintf(stderr, "Abort handler called.\n"); + print_current_stack(NULL); + if (IsDebuggerPresent()) { + __debugbreak(); + } else { + _exit(1); + } +} + +static void install_crash_handler() { + if (!SymInitialize(GetCurrentProcess(), NULL, TRUE)) { + fprintf(stderr, "SymInitialize failed: %d\n", GetLastError()); + } + SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)crash_handler); + _set_abort_behavior(0, _WRITE_ABORT_MSG); + _set_abort_behavior(0, _CALL_REPORTFAULT); + signal(SIGABRT, abort_handler); +} +#elif GPR_POSIX_CRASH_HANDLER +#include +#include +#include +#include +#include + +static char g_alt_stack[GPR_MAX(MINSIGSTKSZ, 65536)]; + +#define MAX_FRAMES 32 + +/* signal safe output */ +static void output_string(const char *string) { + size_t len = strlen(string); + ssize_t r; + + do { + r = write(STDERR_FILENO, string, len); + } while (r == -1 && errno == EINTR); +} + +static void output_num(long num) { + char buf[GPR_LTOA_MIN_BUFSIZE]; + gpr_ltoa(num, buf); + output_string(buf); +} + +static void crash_handler(int signum, siginfo_t *info, void *data) { + void *addrlist[MAX_FRAMES + 1]; + int addrlen; + + output_string("\n\n\n*******************************\nCaught signal "); + output_num(signum); + output_string("\n"); + + addrlen = backtrace(addrlist, GPR_ARRAY_SIZE(addrlist)); + + if (addrlen == 0) { + output_string(" no backtrace\n"); + } else { + backtrace_symbols_fd(addrlist, addrlen, STDERR_FILENO); + } + + /* try to get a core dump for SIGTERM */ + if (signum == SIGTERM) signum = SIGQUIT; + raise(signum); +} + +static void install_crash_handler() { + stack_t ss; + struct sigaction sa; + + memset(&ss, 0, sizeof(ss)); + memset(&sa, 0, sizeof(sa)); + ss.ss_size = sizeof(g_alt_stack); + ss.ss_sp = g_alt_stack; + GPR_ASSERT(sigaltstack(&ss, NULL) == 0); + sa.sa_flags = (int)(SA_SIGINFO | SA_ONSTACK | SA_RESETHAND); + sa.sa_sigaction = crash_handler; + GPR_ASSERT(sigaction(SIGILL, &sa, NULL) == 0); + GPR_ASSERT(sigaction(SIGABRT, &sa, NULL) == 0); + GPR_ASSERT(sigaction(SIGBUS, &sa, NULL) == 0); + GPR_ASSERT(sigaction(SIGSEGV, &sa, NULL) == 0); + GPR_ASSERT(sigaction(SIGTERM, &sa, NULL) == 0); + GPR_ASSERT(sigaction(SIGQUIT, &sa, NULL) == 0); +} +#else +static void install_crash_handler() {} +#endif + +void grpc_test_init(int argc, char **argv) { + install_crash_handler(); + gpr_log(GPR_DEBUG, "test slowdown: machine=%f build=%f total=%f", + (double)GRPC_TEST_SLOWDOWN_MACHINE_FACTOR, + (double)GRPC_TEST_SLOWDOWN_BUILD_FACTOR, + (double)GRPC_TEST_SLOWDOWN_FACTOR); + /* seed rng with pid, so we don't end up with the same random numbers as a + concurrently running test binary */ + srand(seed()); +} diff --git a/test_config.h b/test_config.h new file mode 100644 index 0000000000000..76686f1c51b8e --- /dev/null +++ b/test_config.h @@ -0,0 +1,79 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_TEST_CORE_UTIL_TEST_CONFIG_H +#define GRPC_TEST_CORE_UTIL_TEST_CONFIG_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#ifndef GRPC_TEST_SLOWDOWN_BUILD_FACTOR +#define GRPC_TEST_SLOWDOWN_BUILD_FACTOR 1.0 +#endif + +#ifndef GRPC_TEST_SLOWDOWN_MACHINE_FACTOR +#define GRPC_TEST_SLOWDOWN_MACHINE_FACTOR 1.0 +#endif + +extern double g_fixture_slowdown_factor; + +#define GRPC_TEST_SLOWDOWN_FACTOR \ + (GRPC_TEST_SLOWDOWN_BUILD_FACTOR * GRPC_TEST_SLOWDOWN_MACHINE_FACTOR * \ + g_fixture_slowdown_factor) + +#define GRPC_TIMEOUT_SECONDS_TO_DEADLINE(x) \ + gpr_time_add( \ + gpr_now(GPR_CLOCK_MONOTONIC), \ + gpr_time_from_millis((int64_t)(GRPC_TEST_SLOWDOWN_FACTOR * 1e3 * (x)), \ + GPR_TIMESPAN)) + +#define GRPC_TIMEOUT_MILLIS_TO_DEADLINE(x) \ + gpr_time_add( \ + gpr_now(GPR_CLOCK_MONOTONIC), \ + gpr_time_from_micros((int64_t)(GRPC_TEST_SLOWDOWN_FACTOR * 1e3 * (x)), \ + GPR_TIMESPAN)) + +#ifndef GRPC_TEST_CUSTOM_PICK_PORT +#define GRPC_TEST_PICK_PORT +#endif + +void grpc_test_init(int argc, char **argv); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* GRPC_TEST_CORE_UTIL_TEST_CONFIG_H */ From 5163013e73aafc48ffdf1c6591b976f4d40c1d45 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 13 Jun 2016 14:11:19 -0700 Subject: [PATCH 002/202] refactor to add more tests --- main.cpp | 57 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/main.cpp b/main.cpp index 8e5a5c8b0f213..bfc66b0b0c5b8 100644 --- a/main.cpp +++ b/main.cpp @@ -40,8 +40,7 @@ static void *tag(intptr_t i) { return (void *)i; } -int main(int argc, char **argv) { - grpc_channel *chan; +void test_unary_blocking_rpc(grpc_channel *chan) { grpc_call *call; gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); grpc_completion_queue *cq; @@ -52,15 +51,13 @@ int main(int argc, char **argv) { char *details = NULL; size_t details_capacity = 0; - grpc_test_init(argc, argv); - grpc_init(); - grpc_metadata_array_init(&trailing_metadata_recv); cq = grpc_completion_queue_create(NULL); - /* create a call, channel to a non existant server */ - chan = grpc_insecure_channel_create("0.0.0.0:50051", NULL, NULL); + printf("\n"); + printf("Testing Unary Blocking Call\n"); + call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, "/helloworld.Greeter/SayHello", "0.0.0.0", deadline, NULL); @@ -113,22 +110,18 @@ int main(int argc, char **argv) { GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( call, ops, (size_t)(op - ops), tag(1), NULL)); - /* wait till all tags get completed */ - for (;;) { - grpc_event ev; - ev = grpc_completion_queue_next(cq, deadline, NULL); - if (ev.tag == tag(1)) break; - } + grpc_event ev; + ev = grpc_completion_queue_pluck(cq, tag(1), deadline, NULL); + GPR_ASSERT(ev.success); - printf("%x\n", buffer); - printf("%d\n", status); - printf("%s\n", details); + printf("Status: %d\n", status); + printf("Details: %s\n", details); grpc_byte_buffer_reader reader; grpc_byte_buffer_reader_init(&reader, buffer); gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); uint8_t *response = GPR_SLICE_START_PTR(slice_recv); - printf("Server said: %s", response + 2); // skip to the string in serialized protobuf object + printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object GPR_ASSERT(status == GRPC_STATUS_OK); grpc_completion_queue_shutdown(cq); @@ -138,12 +131,38 @@ int main(int argc, char **argv) { ; grpc_completion_queue_destroy(cq); grpc_call_destroy(call); - grpc_channel_destroy(chan); gpr_free(details); grpc_metadata_array_destroy(&trailing_metadata_recv); +} - grpc_shutdown(); +void test_client_streaming_blocking_rpc(grpc_channel *chan) { + +} + +void test_server_streaming_blocking_rpc(grpc_channel *chan) { + +} +void test_unary_async_rpc(grpc_channel *chan) { + +} + +int main(int argc, char **argv) { + grpc_channel *chan; + grpc_test_init(argc, argv); + grpc_init(); + + // Local greetings server + chan = grpc_insecure_channel_create("0.0.0.0:50051", NULL, NULL); + + test_unary_blocking_rpc(chan); + test_client_streaming_blocking_rpc(chan); + test_server_streaming_blocking_rpc(chan); + + test_unary_async_rpc(chan); + + grpc_channel_destroy(chan); + grpc_shutdown(); return 0; } From da4660c8509a3436ac6aa2098d2677ee774d6500 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 13 Jun 2016 17:20:30 -0700 Subject: [PATCH 003/202] implement client streaming call --- main.cpp | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 136 insertions(+), 6 deletions(-) diff --git a/main.cpp b/main.cpp index bfc66b0b0c5b8..66b194a35d1cf 100644 --- a/main.cpp +++ b/main.cpp @@ -36,10 +36,13 @@ #include #include #include +#include #include "test_config.h" static void *tag(intptr_t i) { return (void *)i; } +void blocking_send_message(grpc_call *call, grpc_completion_queue *cq); + void test_unary_blocking_rpc(grpc_channel *chan) { grpc_call *call; gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); @@ -69,15 +72,147 @@ void test_unary_blocking_rpc(grpc_channel *chan) { op->reserved = NULL; op++; + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, (size_t)(op - ops), tag(1234), NULL)); + + grpc_event ev; + ev = grpc_completion_queue_pluck(cq, tag(1234), deadline, NULL); + GPR_ASSERT(ev.success); + + blocking_send_message(call, cq); + + // refill ops array + op = ops; + + op->op = GRPC_OP_RECV_INITIAL_METADATA; + grpc_metadata_array metadata_array; + grpc_metadata_array_init(&metadata_array); + op->data.recv_initial_metadata = &metadata_array; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_RECV_MESSAGE; + grpc_byte_buffer *buffer = NULL; + op->data.recv_message = &buffer; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; + op->flags = 0; + op->reserved = NULL; + 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->data.recv_status_on_client.status_details_capacity = &details_capacity; + op->flags = 0; + op->reserved = NULL; + op++; + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, (size_t)(op - ops), tag(2), NULL)); + + ev = grpc_completion_queue_pluck(cq, tag(2), deadline, NULL); + GPR_ASSERT(ev.success); + + printf("Status: %d\n", status); + printf("Details: %s\n", details); + GPR_ASSERT(status == GRPC_STATUS_OK); + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *response = GPR_SLICE_START_PTR(slice_recv); + printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object + + grpc_completion_queue_shutdown(cq); + while ( + grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) + .type != GRPC_QUEUE_SHUTDOWN) + ; + grpc_completion_queue_destroy(cq); + grpc_call_destroy(call); + + gpr_free(details); + grpc_metadata_array_destroy(&trailing_metadata_recv); +} + +void blocking_send_message(grpc_call *call, grpc_completion_queue *cq) { + static int tag_id = 100; + tag_id += 1; + + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_op ops[1]; + grpc_op *op; + op = ops; op->op = GRPC_OP_SEND_MESSAGE; // hardcoded string for "gRPC-C" const char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; gpr_slice slice = gpr_slice_from_copied_buffer(str, sizeof(str)); op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); + GPR_ASSERT(op->data.send_message != NULL); + op->flags = 0; + op->reserved = NULL; + + op++; + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, (size_t)(op - ops), tag(tag_id), NULL)); + + grpc_event ev; + ev = grpc_completion_queue_pluck(cq, tag(tag_id), deadline, NULL); + GPR_ASSERT(ev.success); +} + +void test_client_streaming_blocking_rpc(grpc_channel *chan) { + grpc_call *call; + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_completion_queue *cq; + grpc_op ops[6]; + grpc_op *op; + grpc_metadata_array trailing_metadata_recv; + grpc_status_code status; + char *details = NULL; + size_t details_capacity = 0; + + grpc_metadata_array_init(&trailing_metadata_recv); + + cq = grpc_completion_queue_create(NULL); + + printf("\n"); + printf("Testing Client Streaming Blocking Call\n"); + + call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/helloworld.ClientStreamingGreeter/sayHello", "0.0.0.0", deadline, NULL); + + op = ops; + + op->op = GRPC_OP_SEND_INITIAL_METADATA; + op->data.send_initial_metadata.count = 0; op->flags = 0; op->reserved = NULL; op++; + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, (size_t)(op - ops), tag(1234), NULL)); + + grpc_event ev; + ev = grpc_completion_queue_pluck(cq, tag(1234), deadline, NULL); + GPR_ASSERT(ev.success); + + blocking_send_message(call, cq); + blocking_send_message(call, cq); + blocking_send_message(call, cq); + blocking_send_message(call, cq); + blocking_send_message(call, cq); + + // refill ops array + op = ops; + op->op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array metadata_array; grpc_metadata_array_init(&metadata_array); @@ -110,19 +245,18 @@ void test_unary_blocking_rpc(grpc_channel *chan) { GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( call, ops, (size_t)(op - ops), tag(1), NULL)); - grpc_event ev; ev = grpc_completion_queue_pluck(cq, tag(1), deadline, NULL); GPR_ASSERT(ev.success); printf("Status: %d\n", status); printf("Details: %s\n", details); + GPR_ASSERT(status == GRPC_STATUS_OK); grpc_byte_buffer_reader reader; grpc_byte_buffer_reader_init(&reader, buffer); gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); uint8_t *response = GPR_SLICE_START_PTR(slice_recv); printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object - GPR_ASSERT(status == GRPC_STATUS_OK); grpc_completion_queue_shutdown(cq); while ( @@ -136,10 +270,6 @@ void test_unary_blocking_rpc(grpc_channel *chan) { grpc_metadata_array_destroy(&trailing_metadata_recv); } -void test_client_streaming_blocking_rpc(grpc_channel *chan) { - -} - void test_server_streaming_blocking_rpc(grpc_channel *chan) { } From b9afed10707e8a6e901af91c03c00c64f8887faf Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 14 Jun 2016 18:07:09 -0700 Subject: [PATCH 004/202] [RUNTIME] unary call API --- main.c | 299 ++++++++++++++++++++++++++++++++++++++++++ main.cpp | 298 ----------------------------------------- unary_blocking_call.c | 211 +++++++++++++++++++++++++++++ unary_blocking_call.h | 55 ++++++++ 4 files changed, 565 insertions(+), 298 deletions(-) create mode 100644 main.c delete mode 100644 main.cpp create mode 100644 unary_blocking_call.c create mode 100644 unary_blocking_call.h diff --git a/main.c b/main.c new file mode 100644 index 0000000000000..23d7697070412 --- /dev/null +++ b/main.c @@ -0,0 +1,299 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include +#include +#include +#include +#include "test_config.h" +#include "unary_blocking_call.h" + +static void *tag(intptr_t i) { return (void *) i; } + +void blocking_send_message(grpc_call *call, grpc_completion_queue *cq); + +void blocking_send_initial_metadata(grpc_call *call, grpc_completion_queue *cq); + +void test_unary_blocking_rpc(grpc_channel *chan) { + grpc_call *call; + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_completion_queue *cq; + grpc_op ops[6]; + grpc_op *op; + grpc_metadata_array trailing_metadata_recv; + grpc_status_code status; + char *details = NULL; + size_t details_capacity = 0; + grpc_event ev; + + grpc_metadata_array_init(&trailing_metadata_recv); + + cq = grpc_completion_queue_create(NULL); + + printf("\n"); + printf("Testing Unary Blocking Call\n"); + + call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/helloworld.Greeter/SayHello", "0.0.0.0", deadline, NULL); + + blocking_send_initial_metadata(call, cq); + blocking_send_message(call, cq); + + // refill ops array + op = ops; + + op->op = GRPC_OP_RECV_INITIAL_METADATA; + grpc_metadata_array metadata_array; + grpc_metadata_array_init(&metadata_array); + op->data.recv_initial_metadata = &metadata_array; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_RECV_MESSAGE; + grpc_byte_buffer *buffer = NULL; + op->data.recv_message = &buffer; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; + op->flags = 0; + op->reserved = NULL; + 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->data.recv_status_on_client.status_details_capacity = &details_capacity; + op->flags = 0; + op->reserved = NULL; + op++; + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, (size_t) (op - ops), tag(2), NULL)); + + ev = grpc_completion_queue_pluck(cq, tag(2), deadline, NULL); + GPR_ASSERT(ev.success); + + printf("Status: %d\n", status); + printf("Details: %s\n", details); + GPR_ASSERT(status == GRPC_STATUS_OK); + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *response = GPR_SLICE_START_PTR(slice_recv); + printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object + grpc_byte_buffer_destroy(buffer); + + grpc_completion_queue_shutdown(cq); + while ( + grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) + .type != GRPC_QUEUE_SHUTDOWN); + grpc_completion_queue_destroy(cq); + grpc_call_destroy(call); + + gpr_free(details); + grpc_metadata_array_destroy(&trailing_metadata_recv); +} + +void blocking_send_initial_metadata(grpc_call *call, grpc_completion_queue *cq) { + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_op ops[1]; + grpc_op *op = ops; + + op->op = GRPC_OP_SEND_INITIAL_METADATA; + op->data.send_initial_metadata.count = 0; + op->flags = 0; + op->reserved = NULL; + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, 1, tag(12345), NULL)); + + grpc_event ev; + ev = grpc_completion_queue_pluck(cq, tag(12345), deadline, NULL); + GPR_ASSERT(ev.success); +} + +void blocking_send_message(grpc_call *call, grpc_completion_queue *cq) { + static int tag_id = 100; + tag_id += 1; + + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_op ops[1]; + grpc_op *op; + op = ops; + op->op = GRPC_OP_SEND_MESSAGE; + // hardcoded string for "gRPC-C" + const char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + gpr_slice slice = gpr_slice_from_copied_buffer(str, sizeof(str)); + op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); + GPR_ASSERT(op->data.send_message != NULL); + op->flags = 0; + op->reserved = NULL; + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, 1, tag(tag_id), NULL)); + + grpc_event ev; + ev = grpc_completion_queue_pluck(cq, tag(tag_id), deadline, NULL); + GPR_ASSERT(ev.success); +} + +void test_client_streaming_blocking_rpc(grpc_channel *chan) { + grpc_call *call; + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_completion_queue *cq; + grpc_op ops[6]; + grpc_op *op; + grpc_metadata_array trailing_metadata_recv; + grpc_status_code status; + char *details = NULL; + size_t details_capacity = 0; + grpc_event ev; + + grpc_metadata_array_init(&trailing_metadata_recv); + + cq = grpc_completion_queue_create(NULL); + + printf("\n"); + printf("Testing Client Streaming Blocking Call\n"); + + call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/helloworld.ClientStreamingGreeter/sayHello", "0.0.0.0", deadline, NULL); + + blocking_send_initial_metadata(call, cq); + + blocking_send_message(call, cq); + blocking_send_message(call, cq); + blocking_send_message(call, cq); + blocking_send_message(call, cq); + blocking_send_message(call, cq); + + // refill ops array + op = ops; + + op->op = GRPC_OP_RECV_INITIAL_METADATA; + grpc_metadata_array metadata_array; + grpc_metadata_array_init(&metadata_array); + op->data.recv_initial_metadata = &metadata_array; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_RECV_MESSAGE; + grpc_byte_buffer *buffer = NULL; + op->data.recv_message = &buffer; + op->flags = 0; + op->reserved = NULL; + op++; + + op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; + op->flags = 0; + op->reserved = NULL; + 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->data.recv_status_on_client.status_details_capacity = &details_capacity; + op->flags = 0; + op->reserved = NULL; + op++; + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( + call, ops, (size_t) (op - ops), tag(1), NULL)); + + ev = grpc_completion_queue_pluck(cq, tag(1), deadline, NULL); + GPR_ASSERT(ev.success); + + printf("Status: %d\n", status); + printf("Details: %s\n", details); + GPR_ASSERT(status == GRPC_STATUS_OK); + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *response = GPR_SLICE_START_PTR(slice_recv); + printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object + grpc_byte_buffer_destroy(buffer); + + grpc_completion_queue_shutdown(cq); + while ( + grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) + .type != GRPC_QUEUE_SHUTDOWN); + grpc_completion_queue_destroy(cq); + grpc_call_destroy(call); + + gpr_free(details); + grpc_metadata_array_destroy(&trailing_metadata_recv); +} + +void test_server_streaming_blocking_rpc(grpc_channel *chan) { + +} + +void test_unary_async_rpc(grpc_channel *chan) { + +} + +int main(int argc, char **argv) { + grpc_channel *chan; + grpc_test_init(argc, argv); + grpc_init(); + + // Local greetings server + chan = grpc_insecure_channel_create("0.0.0.0:50051", NULL, NULL); + + grpc_context context; + context.channel = chan; + context.deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + // hardcoded string for "gRPC-C" + const char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; + grpc_message msg = { str, sizeof(str) }; + grpc_unary_blocking_call(chan, NULL, &context, msg, NULL); + + test_unary_blocking_rpc(chan); + test_client_streaming_blocking_rpc(chan); + test_server_streaming_blocking_rpc(chan); + + test_unary_async_rpc(chan); + + grpc_channel_destroy(chan); + grpc_shutdown(); + return 0; +} diff --git a/main.cpp b/main.cpp deleted file mode 100644 index 66b194a35d1cf..0000000000000 --- a/main.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include -#include -#include -#include -#include -#include -#include "test_config.h" - -static void *tag(intptr_t i) { return (void *)i; } - -void blocking_send_message(grpc_call *call, grpc_completion_queue *cq); - -void test_unary_blocking_rpc(grpc_channel *chan) { - grpc_call *call; - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - grpc_completion_queue *cq; - grpc_op ops[6]; - grpc_op *op; - grpc_metadata_array trailing_metadata_recv; - grpc_status_code status; - char *details = NULL; - size_t details_capacity = 0; - - grpc_metadata_array_init(&trailing_metadata_recv); - - cq = grpc_completion_queue_create(NULL); - - printf("\n"); - printf("Testing Unary Blocking Call\n"); - - call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, - "/helloworld.Greeter/SayHello", "0.0.0.0", deadline, NULL); - - op = ops; - - op->op = GRPC_OP_SEND_INITIAL_METADATA; - op->data.send_initial_metadata.count = 0; - op->flags = 0; - op->reserved = NULL; - op++; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, (size_t)(op - ops), tag(1234), NULL)); - - grpc_event ev; - ev = grpc_completion_queue_pluck(cq, tag(1234), deadline, NULL); - GPR_ASSERT(ev.success); - - blocking_send_message(call, cq); - - // refill ops array - op = ops; - - op->op = GRPC_OP_RECV_INITIAL_METADATA; - grpc_metadata_array metadata_array; - grpc_metadata_array_init(&metadata_array); - op->data.recv_initial_metadata = &metadata_array; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_RECV_MESSAGE; - grpc_byte_buffer *buffer = NULL; - op->data.recv_message = &buffer; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; - op->flags = 0; - op->reserved = NULL; - 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->data.recv_status_on_client.status_details_capacity = &details_capacity; - op->flags = 0; - op->reserved = NULL; - op++; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, (size_t)(op - ops), tag(2), NULL)); - - ev = grpc_completion_queue_pluck(cq, tag(2), deadline, NULL); - GPR_ASSERT(ev.success); - - printf("Status: %d\n", status); - printf("Details: %s\n", details); - GPR_ASSERT(status == GRPC_STATUS_OK); - - grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, buffer); - gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); - uint8_t *response = GPR_SLICE_START_PTR(slice_recv); - printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object - - grpc_completion_queue_shutdown(cq); - while ( - grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) - .type != GRPC_QUEUE_SHUTDOWN) - ; - grpc_completion_queue_destroy(cq); - grpc_call_destroy(call); - - gpr_free(details); - grpc_metadata_array_destroy(&trailing_metadata_recv); -} - -void blocking_send_message(grpc_call *call, grpc_completion_queue *cq) { - static int tag_id = 100; - tag_id += 1; - - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - grpc_op ops[1]; - grpc_op *op; - op = ops; - op->op = GRPC_OP_SEND_MESSAGE; - // hardcoded string for "gRPC-C" - const char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; - gpr_slice slice = gpr_slice_from_copied_buffer(str, sizeof(str)); - op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); - GPR_ASSERT(op->data.send_message != NULL); - op->flags = 0; - op->reserved = NULL; - - op++; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, (size_t)(op - ops), tag(tag_id), NULL)); - - grpc_event ev; - ev = grpc_completion_queue_pluck(cq, tag(tag_id), deadline, NULL); - GPR_ASSERT(ev.success); -} - -void test_client_streaming_blocking_rpc(grpc_channel *chan) { - grpc_call *call; - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - grpc_completion_queue *cq; - grpc_op ops[6]; - grpc_op *op; - grpc_metadata_array trailing_metadata_recv; - grpc_status_code status; - char *details = NULL; - size_t details_capacity = 0; - - grpc_metadata_array_init(&trailing_metadata_recv); - - cq = grpc_completion_queue_create(NULL); - - printf("\n"); - printf("Testing Client Streaming Blocking Call\n"); - - call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, - "/helloworld.ClientStreamingGreeter/sayHello", "0.0.0.0", deadline, NULL); - - op = ops; - - op->op = GRPC_OP_SEND_INITIAL_METADATA; - op->data.send_initial_metadata.count = 0; - op->flags = 0; - op->reserved = NULL; - op++; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, (size_t)(op - ops), tag(1234), NULL)); - - grpc_event ev; - ev = grpc_completion_queue_pluck(cq, tag(1234), deadline, NULL); - GPR_ASSERT(ev.success); - - blocking_send_message(call, cq); - blocking_send_message(call, cq); - blocking_send_message(call, cq); - blocking_send_message(call, cq); - blocking_send_message(call, cq); - - // refill ops array - op = ops; - - op->op = GRPC_OP_RECV_INITIAL_METADATA; - grpc_metadata_array metadata_array; - grpc_metadata_array_init(&metadata_array); - op->data.recv_initial_metadata = &metadata_array; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_RECV_MESSAGE; - grpc_byte_buffer *buffer = NULL; - op->data.recv_message = &buffer; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; - op->flags = 0; - op->reserved = NULL; - 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->data.recv_status_on_client.status_details_capacity = &details_capacity; - op->flags = 0; - op->reserved = NULL; - op++; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, (size_t)(op - ops), tag(1), NULL)); - - ev = grpc_completion_queue_pluck(cq, tag(1), deadline, NULL); - GPR_ASSERT(ev.success); - - printf("Status: %d\n", status); - printf("Details: %s\n", details); - GPR_ASSERT(status == GRPC_STATUS_OK); - - grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, buffer); - gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); - uint8_t *response = GPR_SLICE_START_PTR(slice_recv); - printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object - - grpc_completion_queue_shutdown(cq); - while ( - grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) - .type != GRPC_QUEUE_SHUTDOWN) - ; - grpc_completion_queue_destroy(cq); - grpc_call_destroy(call); - - gpr_free(details); - grpc_metadata_array_destroy(&trailing_metadata_recv); -} - -void test_server_streaming_blocking_rpc(grpc_channel *chan) { - -} - -void test_unary_async_rpc(grpc_channel *chan) { - -} - -int main(int argc, char **argv) { - grpc_channel *chan; - grpc_test_init(argc, argv); - grpc_init(); - - // Local greetings server - chan = grpc_insecure_channel_create("0.0.0.0:50051", NULL, NULL); - - test_unary_blocking_rpc(chan); - test_client_streaming_blocking_rpc(chan); - test_server_streaming_blocking_rpc(chan); - - test_unary_async_rpc(chan); - - grpc_channel_destroy(chan); - grpc_shutdown(); - return 0; -} diff --git a/unary_blocking_call.c b/unary_blocking_call.c new file mode 100644 index 0000000000000..34a8cbce4ed65 --- /dev/null +++ b/unary_blocking_call.c @@ -0,0 +1,211 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "unary_blocking_call.h" +#include + +static void op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { + op->op = GRPC_OP_SEND_INITIAL_METADATA; + op->data.send_initial_metadata.count = 0; + op->flags = 0; + op->reserved = NULL; +} + +static void op_send_metadata_finish(grpc_context *context, bool *status, int max_message_size) { + +} + +const grpc_op_manager grpc_op_send_metadata = { + op_send_metadata_fill, + op_send_metadata_finish +}; + +static void op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { + op->op = GRPC_OP_SEND_MESSAGE; + gpr_slice slice = gpr_slice_from_copied_buffer(message.data, message.length); + op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); + GPR_ASSERT(op->data.send_message != NULL); + op->flags = 0; + op->reserved = NULL; +} + +static void op_send_object_finish(grpc_context *context, bool *status, int max_message_size) { + +} + +const grpc_op_manager grpc_op_send_object = { + op_send_object_fill, + op_send_object_finish +}; + +static void op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { + op->op = GRPC_OP_RECV_INITIAL_METADATA; + grpc_metadata_array_init(&context->recv_metadata_array); + op->data.recv_initial_metadata = &context->recv_metadata_array; + op->flags = 0; + op->reserved = NULL; +} + +static void op_recv_metadata_finish(grpc_context *context, bool *status, int max_message_size) { + +} + +const grpc_op_manager grpc_op_recv_metadata = { + op_recv_metadata_fill, + op_recv_metadata_finish +}; + +static void op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { + op->op = GRPC_OP_RECV_MESSAGE; + context->recv_buffer = NULL; + op->data.recv_message = &context->recv_buffer; + op->flags = 0; + op->reserved = NULL; +} + +static void op_recv_object_finish(grpc_context *context, bool *status, int max_message_size) { +} + +const grpc_op_manager grpc_op_recv_object = { + op_recv_object_fill, + op_recv_object_finish +}; + +static void op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { + op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; + op->flags = 0; + op->reserved = NULL; +} + +static void op_send_close_finish(grpc_context *context, bool *status, int max_message_size) { +} + +const grpc_op_manager grpc_op_send_close = { + op_send_close_fill, + op_send_close_finish +}; + +static void op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { + op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; + grpc_metadata_array_init(&context->trailing_metadata_array); + context->status.details = NULL; + context->status.details_length = 0; + + op->data.recv_status_on_client.trailing_metadata = &context->trailing_metadata_array; + op->data.recv_status_on_client.status = &context->status.code; + op->data.recv_status_on_client.status_details = &context->status.details; + op->data.recv_status_on_client.status_details_capacity = &context->status.details_length; + op->flags = 0; + op->reserved = NULL; +} + +static void op_recv_status_finish(grpc_context *context, bool *status, int max_message_size) { +} + +const grpc_op_manager grpc_op_recv_status = { + op_recv_status_fill, + op_recv_status_finish +}; + +typedef const grpc_op_manager grpc_call_set[GRPC_MAX_OP_COUNT]; + +void grpc_fill_op_from_call_set(grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, + const grpc_message message, void *response, grpc_op ops[], size_t *nops) { + size_t count = 0; + while (count < GRPC_MAX_OP_COUNT) { + if (set[count].fill == NULL && set[count].finish == NULL) break; // end of call set + if (set[count].fill == NULL) continue; + set[count].fill(&ops[count], rpc_method, context, message, response); + count++; + } + *nops = count; +} + +void grpc_finish_op_from_call_set(grpc_call_set set, grpc_context *context) { + size_t count = 0; + while (count < GRPC_MAX_OP_COUNT) { + if (set[count].fill == NULL && set[count].finish == NULL) break; // end of call set + if (set[count].finish == NULL) continue; + size_t size = 100; // ?? + bool status; + set[count].finish(context, &status, size); + count++; + } +} + +grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response) { + grpc_completion_queue *cq = grpc_completion_queue_create(NULL); + grpc_call *call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, + "/helloworld.Greeter/SayHello", "0.0.0.0", context->deadline, NULL); + + grpc_call_set set = { + grpc_op_send_metadata, + grpc_op_recv_metadata, + grpc_op_send_object, + grpc_op_recv_object, + grpc_op_send_close, + grpc_op_recv_status + }; + + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(set, rpc_method, context, message, response, ops, &nops); + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(set), NULL)); + grpc_event ev = grpc_completion_queue_pluck(cq, TAG(set), context->deadline, NULL); + + grpc_finish_op_from_call_set(set, context); + + printf("Status: %d\n", context->status.code); + printf("Details: %s\n", context->status.details); + GPR_ASSERT(context->status.code == GRPC_STATUS_OK); + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, context->recv_buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); + printf("Server said: %s\n", resp + 2); // skip to the string in serialized protobuf object + grpc_byte_buffer_destroy(context->recv_buffer); + + grpc_completion_queue_shutdown(cq); + while ( + grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) + .type != GRPC_QUEUE_SHUTDOWN) + ; + grpc_completion_queue_destroy(cq); + grpc_call_destroy(call); + + gpr_free(context->status.details); +} + + diff --git a/unary_blocking_call.h b/unary_blocking_call.h new file mode 100644 index 0000000000000..f757281430ca6 --- /dev/null +++ b/unary_blocking_call.h @@ -0,0 +1,55 @@ +// +// Created by yifeit on 6/14/16. +// + +#ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_H +#define TEST_GRPC_C_UNARY_BLOCKING_CALL_H + +#include +#include +#include +#include +#include +#include + +#define GRPC_MAX_OP_COUNT 6 +#define TAG(x) ((void *)x) + +typedef struct grpc_status { + grpc_status_code code; + char *details; + size_t details_length; +} grpc_status; + +typedef struct grpc_context { + grpc_channel *channel; + grpc_call *call; + grpc_metadata* send_metadata_array; + grpc_metadata_array recv_metadata_array; + grpc_metadata_array trailing_metadata_array; + // gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + gpr_timespec deadline; + grpc_byte_buffer *recv_buffer; + grpc_status status; +} grpc_context; + +typedef struct grpc_method { + +} grpc_method; + +typedef struct grpc_message { + const void *data; + size_t length; +} grpc_message; + +typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, void *response); +typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); + +typedef struct grpc_op_manager { + const grpc_op_filler fill; + const grpc_op_finisher finish; +} grpc_op_manager; + +grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response); + +#endif //TEST_GRPC_C_UNARY_BLOCKING_CALL_H From b6c12ee6a61ec6dda54ed212e8797033c6c41dfd Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 17:09:17 -0700 Subject: [PATCH 005/202] [RUNTIME] unary call API --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f647e0a988d7..bd45ca6adcf6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,7 +72,6 @@ add_subdirectory(${ZLIB_ROOT_DIR} third_party/zlib) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - add_library(gpr src/core/lib/profiling/basic_timers.c src/core/lib/profiling/stap_timers.c From 626292a645e050668481b405c713ea7d41d0acdc Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 15 Jun 2016 17:14:08 -0700 Subject: [PATCH 006/202] [wip] refactor into public/private APIs. getting segfault --- grpc/channel_public.h | 43 +++ grpc/grpc_c_public.h | 64 +++++ unary_blocking_call.c => grpc/impl/call_ops.c | 61 +--- grpc/impl/call_ops.h | 68 +++++ grpc/impl/channel.c | 46 +++ grpc/impl/context.c | 46 +++ grpc/impl/context.h | 55 ++++ grpc/impl/init_shutdown.c | 49 ++++ grpc/impl/init_shutdown.h | 39 +++ grpc/impl/status.h | 44 +++ grpc/impl/unary_blocking_call.c | 83 ++++++ grpc/impl/unary_blocking_call.h | 19 ++ grpc/status_code_public.h | 156 +++++++++++ grpc/status_public.h | 41 +++ main.c | 261 +----------------- mock_helloworld.grpc.pb.c | 35 +++ mock_helloworld.grpc.pb.h | 38 +++ unary_blocking_call.h | 55 ---- 18 files changed, 846 insertions(+), 357 deletions(-) create mode 100644 grpc/channel_public.h create mode 100644 grpc/grpc_c_public.h rename unary_blocking_call.c => grpc/impl/call_ops.c (77%) create mode 100644 grpc/impl/call_ops.h create mode 100644 grpc/impl/channel.c create mode 100644 grpc/impl/context.c create mode 100644 grpc/impl/context.h create mode 100644 grpc/impl/init_shutdown.c create mode 100644 grpc/impl/init_shutdown.h create mode 100644 grpc/impl/status.h create mode 100644 grpc/impl/unary_blocking_call.c create mode 100644 grpc/impl/unary_blocking_call.h create mode 100644 grpc/status_code_public.h create mode 100644 grpc/status_public.h create mode 100644 mock_helloworld.grpc.pb.c create mode 100644 mock_helloworld.grpc.pb.h delete mode 100644 unary_blocking_call.h diff --git a/grpc/channel_public.h b/grpc/channel_public.h new file mode 100644 index 0000000000000..efaccff8c79d1 --- /dev/null +++ b/grpc/channel_public.h @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CHANNEL_PUBLIC_H +#define TEST_GRPC_C_CHANNEL_PUBLIC_H + +typedef struct grpc_channel grpc_channel; + +grpc_channel *GRPC_channel_create(const char * const target); +void GRPC_channel_destroy(grpc_channel ** channel); + +#endif //TEST_GRPC_C_CHANNEL_PUBLIC_H diff --git a/grpc/grpc_c_public.h b/grpc/grpc_c_public.h new file mode 100644 index 0000000000000..413e0ecfa069d --- /dev/null +++ b/grpc/grpc_c_public.h @@ -0,0 +1,64 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_GRPC_C_PUBLIC_H +#define TEST_GRPC_C_GRPC_C_PUBLIC_H + +#include + +typedef struct grpc_channel grpc_channel; +typedef struct grpc_status grpc_status; +typedef struct grpc_context grpc_context; + +typedef struct grpc_method { + enum RpcType { + NORMAL_RPC = 0, + CLIENT_STREAMING, // request streaming + SERVER_STREAMING, // response streaming + BIDI_STREAMING + } type; + const char* const name; +} grpc_method; + +typedef struct grpc_message { + const void *data; + size_t length; +} grpc_message; + +grpc_context *grpc_context_create(grpc_channel *chan); +void GRPC_context_destroy(grpc_context **context); + +grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, grpc_context * const context, const grpc_message message, void *response); + +#endif //TEST_GRPC_C_GRPC_C_PUBLIC_H diff --git a/unary_blocking_call.c b/grpc/impl/call_ops.c similarity index 77% rename from unary_blocking_call.c rename to grpc/impl/call_ops.c index 34a8cbce4ed65..6ecb8f3ba79b7 100644 --- a/unary_blocking_call.c +++ b/grpc/impl/call_ops.c @@ -30,9 +30,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ +#include "call_ops.h" +#include "context.h" +#include -#include "unary_blocking_call.h" -#include +static void op_noop_finish(grpc_context *context, bool *status, int max_message_size) { + +} static void op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; @@ -77,7 +81,6 @@ static void op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_c } static void op_recv_metadata_finish(grpc_context *context, bool *status, int max_message_size) { - } const grpc_op_manager grpc_op_recv_metadata = { @@ -86,6 +89,7 @@ const grpc_op_manager grpc_op_recv_metadata = { }; static void op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { + context->got_message = false; op->op = GRPC_OP_RECV_MESSAGE; context->recv_buffer = NULL; op->data.recv_message = &context->recv_buffer; @@ -94,6 +98,10 @@ static void op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_con } static void op_recv_object_finish(grpc_context *context, bool *status, int max_message_size) { + if (context->recv_buffer) { + // deserialize + context->got_message = true; + } } const grpc_op_manager grpc_op_recv_object = { @@ -162,50 +170,3 @@ void grpc_finish_op_from_call_set(grpc_call_set set, grpc_context *context) { count++; } } - -grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response) { - grpc_completion_queue *cq = grpc_completion_queue_create(NULL); - grpc_call *call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, - "/helloworld.Greeter/SayHello", "0.0.0.0", context->deadline, NULL); - - grpc_call_set set = { - grpc_op_send_metadata, - grpc_op_recv_metadata, - grpc_op_send_object, - grpc_op_recv_object, - grpc_op_send_close, - grpc_op_recv_status - }; - - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, rpc_method, context, message, response, ops, &nops); - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(set), NULL)); - grpc_event ev = grpc_completion_queue_pluck(cq, TAG(set), context->deadline, NULL); - - grpc_finish_op_from_call_set(set, context); - - printf("Status: %d\n", context->status.code); - printf("Details: %s\n", context->status.details); - GPR_ASSERT(context->status.code == GRPC_STATUS_OK); - - grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, context->recv_buffer); - gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); - uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); - printf("Server said: %s\n", resp + 2); // skip to the string in serialized protobuf object - grpc_byte_buffer_destroy(context->recv_buffer); - - grpc_completion_queue_shutdown(cq); - while ( - grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) - .type != GRPC_QUEUE_SHUTDOWN) - ; - grpc_completion_queue_destroy(cq); - grpc_call_destroy(call); - - gpr_free(context->status.details); -} - - diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h new file mode 100644 index 0000000000000..1b8ab887556eb --- /dev/null +++ b/grpc/impl/call_ops.h @@ -0,0 +1,68 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CALL_OPS_H +#define TEST_GRPC_C_CALL_OPS_H + +#include "../grpc_c_public.h" +#include +#include + +typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, void *response); +typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); + +typedef struct grpc_op_manager { + const grpc_op_filler fill; + const grpc_op_finisher finish; +} grpc_op_manager; + +enum { GRPC_MAX_OP_COUNT = 8 }; + +typedef const grpc_op_manager grpc_call_set[GRPC_MAX_OP_COUNT]; + +void grpc_fill_op_from_call_set(grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, + const grpc_message message, void *response, grpc_op ops[], size_t *nops); + +void grpc_finish_op_from_call_set(grpc_call_set set, grpc_context *context); + +/* list of operations */ + +extern const grpc_op_manager grpc_op_send_metadata; +extern const grpc_op_manager grpc_op_recv_metadata; +extern const grpc_op_manager grpc_op_send_object; +extern const grpc_op_manager grpc_op_recv_object; +extern const grpc_op_manager grpc_op_send_close; +extern const grpc_op_manager grpc_op_recv_status; + +#endif //TEST_GRPC_C_CALL_OPS_H diff --git a/grpc/impl/channel.c b/grpc/impl/channel.c new file mode 100644 index 0000000000000..00663382646cb --- /dev/null +++ b/grpc/impl/channel.c @@ -0,0 +1,46 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "../channel_public.h" +#include "init_shutdown.h" +#include + +grpc_channel *GRPC_channel_create(const char * const target) { + grpc_ensure_grpc_init(); + return grpc_insecure_channel_create(target, NULL, NULL); +} + +void GRPC_channel_destroy(grpc_channel ** channel) { + grpc_channel_destroy(*channel); + *channel = NULL; +} diff --git a/grpc/impl/context.c b/grpc/impl/context.c new file mode 100644 index 0000000000000..1f5e7c32b3ff4 --- /dev/null +++ b/grpc/impl/context.c @@ -0,0 +1,46 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "context.h" + +grpc_context *grpc_context_create(grpc_channel *chan) { + grpc_context *context = calloc(1, sizeof(context)); + context->deadline = gpr_inf_future(GPR_CLOCK_REALTIME); + context->channel = chan; + return context; +} + +void GRPC_context_destroy(grpc_context **context) { + free(*context); + *context = NULL; +} diff --git a/grpc/impl/context.h b/grpc/impl/context.h new file mode 100644 index 0000000000000..b1f3b73862f9d --- /dev/null +++ b/grpc/impl/context.h @@ -0,0 +1,55 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CONTEXT_H +#define TEST_GRPC_C_CONTEXT_H + +#include "../grpc_c_public.h" +#include +#include "status.h" +#include + +typedef struct grpc_context { + grpc_channel *channel; + grpc_call *call; + grpc_metadata* send_metadata_array; + grpc_metadata_array recv_metadata_array; + grpc_metadata_array trailing_metadata_array; + gpr_timespec deadline; + grpc_byte_buffer *recv_buffer; + bool got_message; + grpc_status status; +} grpc_context; + +#endif //TEST_GRPC_C_CONTEXT_H diff --git a/grpc/impl/init_shutdown.c b/grpc/impl/init_shutdown.c new file mode 100644 index 0000000000000..93dc7a45cb6f9 --- /dev/null +++ b/grpc/impl/init_shutdown.c @@ -0,0 +1,49 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "init_shutdown.h" +#include +#include +#include +#include +#include + +void grpc_ensure_grpc_init() { + static bool initialized = false; + if (initialized) return; + grpc_init(); + /* register grpc_shutdown to be called */ + GPR_ASSERT(atexit(grpc_shutdown) == 0); + initialized = true; +} + diff --git a/grpc/impl/init_shutdown.h b/grpc/impl/init_shutdown.h new file mode 100644 index 0000000000000..61ba4d2b27334 --- /dev/null +++ b/grpc/impl/init_shutdown.h @@ -0,0 +1,39 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef TEST_GRPC_C_GRPC_INIT_SHUTDOWN_H +#define TEST_GRPC_C_GRPC_INIT_SHUTDOWN_H + +void grpc_ensure_grpc_init(); + +#endif //TEST_GRPC_C_GRPC_INIT_SHUTDOWN_H diff --git a/grpc/impl/status.h b/grpc/impl/status.h new file mode 100644 index 0000000000000..68f32c16dc910 --- /dev/null +++ b/grpc/impl/status.h @@ -0,0 +1,44 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_STATUS_H +#define TEST_GRPC_C_STATUS_H + +typedef struct grpc_status { + grpc_status_code code; + char *details; + size_t details_length; +} grpc_status; + +#endif //TEST_GRPC_C_STATUS_H diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c new file mode 100644 index 0000000000000..ca460692052fe --- /dev/null +++ b/grpc/impl/unary_blocking_call.c @@ -0,0 +1,83 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "unary_blocking_call.h" +#include "call_ops.h" +#include + +grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, grpc_context * const context, const grpc_message message, void *response) { + grpc_completion_queue *cq = grpc_completion_queue_create(NULL); + grpc_call *call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method->name, "", context->deadline, NULL); + + grpc_call_set set = { + grpc_op_send_metadata, + grpc_op_recv_metadata, + grpc_op_send_object, + grpc_op_recv_object, + grpc_op_send_close, + grpc_op_recv_status + }; + + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(set, rpc_method, context, message, response, ops, &nops); + + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(set), NULL)); + grpc_event ev = grpc_completion_queue_pluck(cq, TAG(set), context->deadline, NULL); + GPR_ASSERT(ev.success); + + grpc_finish_op_from_call_set(set, context); + + printf("Status: %d\n", context->status.code); + printf("Details: %s\n", context->status.details); + GPR_ASSERT(context->status.code == GRPC_STATUS_OK); + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, context->recv_buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); + printf("Server said: %s\n", resp + 2); // skip to the string in serialized protobuf object + grpc_byte_buffer_destroy(context->recv_buffer); + + grpc_completion_queue_shutdown(cq); + while ( + grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) + .type != GRPC_QUEUE_SHUTDOWN) + ; + grpc_completion_queue_destroy(cq); + grpc_call_destroy(call); + + gpr_free(context->status.details); +} + + diff --git a/grpc/impl/unary_blocking_call.h b/grpc/impl/unary_blocking_call.h new file mode 100644 index 0000000000000..f0f657b370617 --- /dev/null +++ b/grpc/impl/unary_blocking_call.h @@ -0,0 +1,19 @@ +// +// Created by yifeit on 6/14/16. +// + +#ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_H +#define TEST_GRPC_C_UNARY_BLOCKING_CALL_H + +#include "../grpc_c_public.h" +#include "context.h" +#include +#include +#include +#include +#include +#include + +#define TAG(x) ((void *)x) + +#endif //TEST_GRPC_C_UNARY_BLOCKING_CALL_H diff --git a/grpc/status_code_public.h b/grpc/status_code_public.h new file mode 100644 index 0000000000000..72f02ca244ffc --- /dev/null +++ b/grpc/status_code_public.h @@ -0,0 +1,156 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_STATUS_CODE_H +#define TEST_GRPC_C_STATUS_CODE_H + +typedef enum { + /* Not an error; returned on success */ + GRPC_STATUS_OK = 0, + + /* The operation was cancelled (typically by the caller). */ + GRPC_STATUS_CANCELLED = 1, + + /* Unknown error. An example of where this error may be returned is + if a Status value received from another address space belongs to + an error-space that is not known in this address space. Also + errors raised by APIs that do not return enough error information + may be converted to this error. */ + GRPC_STATUS_UNKNOWN = 2, + + /* Client specified an invalid argument. Note that this differs + from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments + that are problematic regardless of the state of the system + (e.g., a malformed file name). */ + GRPC_STATUS_INVALID_ARGUMENT = 3, + + /* Deadline expired before operation could complete. For operations + that change the state of the system, this error may be returned + even if the operation has completed successfully. For example, a + successful response from a server could have been delayed long + enough for the deadline to expire. */ + GRPC_STATUS_DEADLINE_EXCEEDED = 4, + + /* Some requested entity (e.g., file or directory) was not found. */ + GRPC_STATUS_NOT_FOUND = 5, + + /* Some entity that we attempted to create (e.g., file or directory) + already exists. */ + GRPC_STATUS_ALREADY_EXISTS = 6, + + /* The caller does not have permission to execute the specified + operation. PERMISSION_DENIED must not be used for rejections + caused by exhausting some resource (use RESOURCE_EXHAUSTED + instead for those errors). PERMISSION_DENIED must not be + used if the caller can not be identified (use UNAUTHENTICATED + instead for those errors). */ + GRPC_STATUS_PERMISSION_DENIED = 7, + + /* The request does not have valid authentication credentials for the + operation. */ + GRPC_STATUS_UNAUTHENTICATED = 16, + + /* Some resource has been exhausted, perhaps a per-user quota, or + perhaps the entire file system is out of space. */ + GRPC_STATUS_RESOURCE_EXHAUSTED = 8, + + /* Operation was rejected because the system is not in a state + required for the operation's execution. For example, directory + to be deleted may be non-empty, an rmdir operation is applied to + a non-directory, etc. + + A litmus test that may help a service implementor in deciding + between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE: + (a) Use UNAVAILABLE if the client can retry just the failing call. + (b) Use ABORTED if the client should retry at a higher-level + (e.g., restarting a read-modify-write sequence). + (c) Use FAILED_PRECONDITION if the client should not retry until + the system state has been explicitly fixed. E.g., if an "rmdir" + fails because the directory is non-empty, FAILED_PRECONDITION + should be returned since the client should not retry unless + they have first fixed up the directory by deleting files from it. + (d) Use FAILED_PRECONDITION if the client performs conditional + REST Get/Update/Delete on a resource and the resource on the + server does not match the condition. E.g., conflicting + read-modify-write on the same resource. */ + GRPC_STATUS_FAILED_PRECONDITION = 9, + + /* The operation was aborted, typically due to a concurrency issue + like sequencer check failures, transaction aborts, etc. + + See litmus test above for deciding between FAILED_PRECONDITION, + ABORTED, and UNAVAILABLE. */ + GRPC_STATUS_ABORTED = 10, + + /* Operation was attempted past the valid range. E.g., seeking or + reading past end of file. + + Unlike INVALID_ARGUMENT, this error indicates a problem that may + be fixed if the system state changes. For example, a 32-bit file + system will generate INVALID_ARGUMENT if asked to read at an + offset that is not in the range [0,2^32-1], but it will generate + OUT_OF_RANGE if asked to read from an offset past the current + file size. + + There is a fair bit of overlap between FAILED_PRECONDITION and + OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific + error) when it applies so that callers who are iterating through + a space can easily look for an OUT_OF_RANGE error to detect when + they are done. */ + GRPC_STATUS_OUT_OF_RANGE = 11, + + /* Operation is not implemented or not supported/enabled in this service. */ + GRPC_STATUS_UNIMPLEMENTED = 12, + + /* Internal errors. Means some invariants expected by underlying + system has been broken. If you see one of these errors, + something is very broken. */ + GRPC_STATUS_INTERNAL = 13, + + /* The service is currently unavailable. This is a most likely a + transient condition and may be corrected by retrying with + a backoff. + + See litmus test above for deciding between FAILED_PRECONDITION, + ABORTED, and UNAVAILABLE. */ + GRPC_STATUS_UNAVAILABLE = 14, + + /* Unrecoverable data loss or corruption. */ + GRPC_STATUS_DATA_LOSS = 15, + + /* Force users to include a default branch: */ + GRPC_STATUS__DO_NOT_USE = -1 +} grpc_status_code; + +#endif //TEST_GRPC_C_STATUS_CODE_H diff --git a/grpc/status_public.h b/grpc/status_public.h new file mode 100644 index 0000000000000..0e48055d2090b --- /dev/null +++ b/grpc/status_public.h @@ -0,0 +1,41 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_STATUS_CODE_PUBLIC_H_H +#define TEST_GRPC_C_STATUS_CODE_PUBLIC_H_H + +#include "status_code_public.h" +#include "impl/status.h" + +#endif //TEST_GRPC_C_STATUS_CODE_PUBLIC_H_H diff --git a/main.c b/main.c index 23d7697070412..bae708b954440 100644 --- a/main.c +++ b/main.c @@ -31,269 +31,26 @@ * */ -#include -#include -#include #include -#include #include "test_config.h" -#include "unary_blocking_call.h" - -static void *tag(intptr_t i) { return (void *) i; } - -void blocking_send_message(grpc_call *call, grpc_completion_queue *cq); - -void blocking_send_initial_metadata(grpc_call *call, grpc_completion_queue *cq); - -void test_unary_blocking_rpc(grpc_channel *chan) { - grpc_call *call; - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - grpc_completion_queue *cq; - grpc_op ops[6]; - grpc_op *op; - grpc_metadata_array trailing_metadata_recv; - grpc_status_code status; - char *details = NULL; - size_t details_capacity = 0; - grpc_event ev; - - grpc_metadata_array_init(&trailing_metadata_recv); - - cq = grpc_completion_queue_create(NULL); - - printf("\n"); - printf("Testing Unary Blocking Call\n"); - - call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, - "/helloworld.Greeter/SayHello", "0.0.0.0", deadline, NULL); - - blocking_send_initial_metadata(call, cq); - blocking_send_message(call, cq); - - // refill ops array - op = ops; - - op->op = GRPC_OP_RECV_INITIAL_METADATA; - grpc_metadata_array metadata_array; - grpc_metadata_array_init(&metadata_array); - op->data.recv_initial_metadata = &metadata_array; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_RECV_MESSAGE; - grpc_byte_buffer *buffer = NULL; - op->data.recv_message = &buffer; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; - op->flags = 0; - op->reserved = NULL; - 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->data.recv_status_on_client.status_details_capacity = &details_capacity; - op->flags = 0; - op->reserved = NULL; - op++; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, (size_t) (op - ops), tag(2), NULL)); - - ev = grpc_completion_queue_pluck(cq, tag(2), deadline, NULL); - GPR_ASSERT(ev.success); - - printf("Status: %d\n", status); - printf("Details: %s\n", details); - GPR_ASSERT(status == GRPC_STATUS_OK); - - grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, buffer); - gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); - uint8_t *response = GPR_SLICE_START_PTR(slice_recv); - printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object - grpc_byte_buffer_destroy(buffer); - - grpc_completion_queue_shutdown(cq); - while ( - grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) - .type != GRPC_QUEUE_SHUTDOWN); - grpc_completion_queue_destroy(cq); - grpc_call_destroy(call); - - gpr_free(details); - grpc_metadata_array_destroy(&trailing_metadata_recv); -} - -void blocking_send_initial_metadata(grpc_call *call, grpc_completion_queue *cq) { - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - grpc_op ops[1]; - grpc_op *op = ops; - - op->op = GRPC_OP_SEND_INITIAL_METADATA; - op->data.send_initial_metadata.count = 0; - op->flags = 0; - op->reserved = NULL; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, 1, tag(12345), NULL)); - - grpc_event ev; - ev = grpc_completion_queue_pluck(cq, tag(12345), deadline, NULL); - GPR_ASSERT(ev.success); -} - -void blocking_send_message(grpc_call *call, grpc_completion_queue *cq) { - static int tag_id = 100; - tag_id += 1; - - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - grpc_op ops[1]; - grpc_op *op; - op = ops; - op->op = GRPC_OP_SEND_MESSAGE; - // hardcoded string for "gRPC-C" - const char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; - gpr_slice slice = gpr_slice_from_copied_buffer(str, sizeof(str)); - op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); - GPR_ASSERT(op->data.send_message != NULL); - op->flags = 0; - op->reserved = NULL; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, 1, tag(tag_id), NULL)); - - grpc_event ev; - ev = grpc_completion_queue_pluck(cq, tag(tag_id), deadline, NULL); - GPR_ASSERT(ev.success); -} - -void test_client_streaming_blocking_rpc(grpc_channel *chan) { - grpc_call *call; - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - grpc_completion_queue *cq; - grpc_op ops[6]; - grpc_op *op; - grpc_metadata_array trailing_metadata_recv; - grpc_status_code status; - char *details = NULL; - size_t details_capacity = 0; - grpc_event ev; - - grpc_metadata_array_init(&trailing_metadata_recv); - - cq = grpc_completion_queue_create(NULL); - - printf("\n"); - printf("Testing Client Streaming Blocking Call\n"); - - call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, - "/helloworld.ClientStreamingGreeter/sayHello", "0.0.0.0", deadline, NULL); - - blocking_send_initial_metadata(call, cq); - - blocking_send_message(call, cq); - blocking_send_message(call, cq); - blocking_send_message(call, cq); - blocking_send_message(call, cq); - blocking_send_message(call, cq); - - // refill ops array - op = ops; - - op->op = GRPC_OP_RECV_INITIAL_METADATA; - grpc_metadata_array metadata_array; - grpc_metadata_array_init(&metadata_array); - op->data.recv_initial_metadata = &metadata_array; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_RECV_MESSAGE; - grpc_byte_buffer *buffer = NULL; - op->data.recv_message = &buffer; - op->flags = 0; - op->reserved = NULL; - op++; - - op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; - op->flags = 0; - op->reserved = NULL; - 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->data.recv_status_on_client.status_details_capacity = &details_capacity; - op->flags = 0; - op->reserved = NULL; - op++; - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch( - call, ops, (size_t) (op - ops), tag(1), NULL)); - - ev = grpc_completion_queue_pluck(cq, tag(1), deadline, NULL); - GPR_ASSERT(ev.success); - - printf("Status: %d\n", status); - printf("Details: %s\n", details); - GPR_ASSERT(status == GRPC_STATUS_OK); - - grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, buffer); - gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); - uint8_t *response = GPR_SLICE_START_PTR(slice_recv); - printf("Server said: %s\n", response + 2); // skip to the string in serialized protobuf object - grpc_byte_buffer_destroy(buffer); - - grpc_completion_queue_shutdown(cq); - while ( - grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) - .type != GRPC_QUEUE_SHUTDOWN); - grpc_completion_queue_destroy(cq); - grpc_call_destroy(call); - - gpr_free(details); - grpc_metadata_array_destroy(&trailing_metadata_recv); -} - -void test_server_streaming_blocking_rpc(grpc_channel *chan) { - -} - -void test_unary_async_rpc(grpc_channel *chan) { - -} +#include "grpc/grpc_c_public.h" +#include "grpc/status_public.h" +#include "grpc/channel_public.h" int main(int argc, char **argv) { - grpc_channel *chan; grpc_test_init(argc, argv); - grpc_init(); // Local greetings server - chan = grpc_insecure_channel_create("0.0.0.0:50051", NULL, NULL); + grpc_channel *chan = GRPC_channel_create("0.0.0.0:50051"); - grpc_context context; - context.channel = chan; - context.deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); + grpc_method method = { NORMAL_RPC, "/helloworld.Greeter/SayHello" }; + grpc_context *context = grpc_context_create(chan); // hardcoded string for "gRPC-C" const char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; grpc_message msg = { str, sizeof(str) }; - grpc_unary_blocking_call(chan, NULL, &context, msg, NULL); - - test_unary_blocking_rpc(chan); - test_client_streaming_blocking_rpc(chan); - test_server_streaming_blocking_rpc(chan); - - test_unary_async_rpc(chan); + grpc_unary_blocking_call(chan, &method, context, msg, NULL); - grpc_channel_destroy(chan); - grpc_shutdown(); + GRPC_context_destroy(&context); + GRPC_channel_destroy(&chan); return 0; } diff --git a/mock_helloworld.grpc.pb.c b/mock_helloworld.grpc.pb.c new file mode 100644 index 0000000000000..fca986c1744c6 --- /dev/null +++ b/mock_helloworld.grpc.pb.c @@ -0,0 +1,35 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include "mock_helloworld.grpc.pb.h" diff --git a/mock_helloworld.grpc.pb.h b/mock_helloworld.grpc.pb.h new file mode 100644 index 0000000000000..85b4ef07989f8 --- /dev/null +++ b/mock_helloworld.grpc.pb.h @@ -0,0 +1,38 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_MOCK_HELLOWORLD_GRPC_PB_H +#define TEST_GRPC_C_MOCK_HELLOWORLD_GRPC_PB_H + +#endif //TEST_GRPC_C_MOCK_HELLOWORLD_GRPC_PB_H diff --git a/unary_blocking_call.h b/unary_blocking_call.h deleted file mode 100644 index f757281430ca6..0000000000000 --- a/unary_blocking_call.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// Created by yifeit on 6/14/16. -// - -#ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_H -#define TEST_GRPC_C_UNARY_BLOCKING_CALL_H - -#include -#include -#include -#include -#include -#include - -#define GRPC_MAX_OP_COUNT 6 -#define TAG(x) ((void *)x) - -typedef struct grpc_status { - grpc_status_code code; - char *details; - size_t details_length; -} grpc_status; - -typedef struct grpc_context { - grpc_channel *channel; - grpc_call *call; - grpc_metadata* send_metadata_array; - grpc_metadata_array recv_metadata_array; - grpc_metadata_array trailing_metadata_array; - // gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); - gpr_timespec deadline; - grpc_byte_buffer *recv_buffer; - grpc_status status; -} grpc_context; - -typedef struct grpc_method { - -} grpc_method; - -typedef struct grpc_message { - const void *data; - size_t length; -} grpc_message; - -typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, void *response); -typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); - -typedef struct grpc_op_manager { - const grpc_op_filler fill; - const grpc_op_finisher finish; -} grpc_op_manager; - -grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response); - -#endif //TEST_GRPC_C_UNARY_BLOCKING_CALL_H From 983c58439e4370f90c33a740ed5bf7c4a86676e3 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 15 Jun 2016 17:15:48 -0700 Subject: [PATCH 007/202] fix error --- grpc/impl/context.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grpc/impl/context.c b/grpc/impl/context.c index 1f5e7c32b3ff4..22d1d04a585a7 100644 --- a/grpc/impl/context.c +++ b/grpc/impl/context.c @@ -34,7 +34,7 @@ #include "context.h" grpc_context *grpc_context_create(grpc_channel *chan) { - grpc_context *context = calloc(1, sizeof(context)); + grpc_context *context = calloc(1, sizeof(grpc_context)); context->deadline = gpr_inf_future(GPR_CLOCK_REALTIME); context->channel = chan; return context; From f3e208cc04ea4e31612905e62761c34f67953f0c Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 15 Jun 2016 18:22:48 -0700 Subject: [PATCH 008/202] more API refactoring. basic serialization --- grpc/grpc_c_public.h | 4 +- grpc/impl/call_ops.c | 38 +- grpc/impl/call_ops.h | 2 +- grpc/impl/context.c | 3 + grpc/impl/context.h | 4 + grpc/impl/id_serialization.c | 47 ++ test_config.h => grpc/impl/id_serialization.h | 48 +-- grpc/impl/message_public.c | 40 ++ grpc/impl/unary_blocking_call.c | 26 +- grpc/impl/unary_blocking_call.h | 41 +- grpc/message_public.h | 42 ++ grpc/serialization_public.h | 43 ++ main.c | 12 +- test_config.c | 407 ------------------ 14 files changed, 272 insertions(+), 485 deletions(-) create mode 100644 grpc/impl/id_serialization.c rename test_config.h => grpc/impl/id_serialization.h (51%) create mode 100644 grpc/impl/message_public.c create mode 100644 grpc/message_public.h create mode 100644 grpc/serialization_public.h delete mode 100644 test_config.c diff --git a/grpc/grpc_c_public.h b/grpc/grpc_c_public.h index 413e0ecfa069d..79e0cdad0aed8 100644 --- a/grpc/grpc_c_public.h +++ b/grpc/grpc_c_public.h @@ -52,13 +52,13 @@ typedef struct grpc_method { } grpc_method; typedef struct grpc_message { - const void *data; + void * data; size_t length; } grpc_message; grpc_context *grpc_context_create(grpc_channel *chan); void GRPC_context_destroy(grpc_context **context); -grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, grpc_context * const context, const grpc_message message, void *response); +grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, grpc_context * const context, const grpc_message message, grpc_message *response); #endif //TEST_GRPC_C_GRPC_C_PUBLIC_H diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index 6ecb8f3ba79b7..c749a5db22bf3 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -32,13 +32,15 @@ */ #include "call_ops.h" #include "context.h" +#include "../message_public.h" #include +#include static void op_noop_finish(grpc_context *context, bool *status, int max_message_size) { } -static void op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { +static void op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op->flags = 0; @@ -54,11 +56,18 @@ const grpc_op_manager grpc_op_send_metadata = { op_send_metadata_finish }; -static void op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { +static void op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_MESSAGE; - gpr_slice slice = gpr_slice_from_copied_buffer(message.data, message.length); + + grpc_message serialized; + context->serialize(message, &serialized); + + gpr_slice slice = gpr_slice_from_copied_buffer(serialized.data, serialized.length); op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); GPR_ASSERT(op->data.send_message != NULL); + + GRPC_message_destroy(&serialized); + op->flags = 0; op->reserved = NULL; } @@ -72,7 +81,7 @@ const grpc_op_manager grpc_op_send_object = { op_send_object_finish }; -static void op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { +static void op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array_init(&context->recv_metadata_array); op->data.recv_initial_metadata = &context->recv_metadata_array; @@ -88,8 +97,9 @@ const grpc_op_manager grpc_op_recv_metadata = { op_recv_metadata_finish }; -static void op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { +static void op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { context->got_message = false; + context->response = response; op->op = GRPC_OP_RECV_MESSAGE; context->recv_buffer = NULL; op->data.recv_message = &context->recv_buffer; @@ -101,6 +111,20 @@ static void op_recv_object_finish(grpc_context *context, bool *status, int max_m if (context->recv_buffer) { // deserialize context->got_message = true; + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, context->recv_buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); + size_t len = GPR_SLICE_LENGTH(slice_recv); + + grpc_message msg = { resp, len }; + context->deserialize(msg, context->response); + + gpr_slice_unref(slice_recv); + grpc_byte_buffer_reader_destroy(&reader); + grpc_byte_buffer_destroy(context->recv_buffer); + context->recv_buffer = NULL; } } @@ -109,7 +133,7 @@ const grpc_op_manager grpc_op_recv_object = { op_recv_object_finish }; -static void op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { +static void op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; @@ -123,7 +147,7 @@ const grpc_op_manager grpc_op_send_close = { op_send_close_finish }; -static void op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, void *response) { +static void op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; grpc_metadata_array_init(&context->trailing_metadata_array); context->status.details = NULL; diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 1b8ab887556eb..0166cc888d3a7 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -39,7 +39,7 @@ #include #include -typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, void *response); +typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, grpc_message *response); typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); typedef struct grpc_op_manager { diff --git a/grpc/impl/context.c b/grpc/impl/context.c index 22d1d04a585a7..eeb354bf04ec2 100644 --- a/grpc/impl/context.c +++ b/grpc/impl/context.c @@ -32,11 +32,14 @@ */ #include "context.h" +#include "id_serialization.h" grpc_context *grpc_context_create(grpc_channel *chan) { grpc_context *context = calloc(1, sizeof(grpc_context)); context->deadline = gpr_inf_future(GPR_CLOCK_REALTIME); context->channel = chan; + context->serialize = GRPC_id_serialize; + context->deserialize = GRPC_id_deserialize; return context; } diff --git a/grpc/impl/context.h b/grpc/impl/context.h index b1f3b73862f9d..7a7021175b4ad 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -36,6 +36,7 @@ #define TEST_GRPC_C_CONTEXT_H #include "../grpc_c_public.h" +#include "../serialization_public.h" #include #include "status.h" #include @@ -48,7 +49,10 @@ typedef struct grpc_context { grpc_metadata_array trailing_metadata_array; gpr_timespec deadline; grpc_byte_buffer *recv_buffer; + grpc_message *response; bool got_message; + GRPC_serializer serialize; + GRPC_deserializer deserialize; grpc_status status; } grpc_context; diff --git a/grpc/impl/id_serialization.c b/grpc/impl/id_serialization.c new file mode 100644 index 0000000000000..53b2ba6cb6a6f --- /dev/null +++ b/grpc/impl/id_serialization.c @@ -0,0 +1,47 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include "id_serialization.h" + +void GRPC_id_serialize(grpc_message input, grpc_message *output) { + output->data = malloc(input.length); + memcpy(output->data, input.data, input.length); + output->length = input.length; +} + +void GRPC_id_deserialize(grpc_message input, grpc_message *output) { + output->data = malloc(input.length); + memcpy(output->data, input.data, input.length); + output->length = input.length; +} diff --git a/test_config.h b/grpc/impl/id_serialization.h similarity index 51% rename from test_config.h rename to grpc/impl/id_serialization.h index 76686f1c51b8e..c11803923dddc 100644 --- a/test_config.h +++ b/grpc/impl/id_serialization.h @@ -31,49 +31,15 @@ * */ -#ifndef GRPC_TEST_CORE_UTIL_TEST_CONFIG_H -#define GRPC_TEST_CORE_UTIL_TEST_CONFIG_H -#include +#ifndef TEST_GRPC_C_MOCK_SERIALIZATION_H +#define TEST_GRPC_C_MOCK_SERIALIZATION_H -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include "../serialization_public.h" -#ifndef GRPC_TEST_SLOWDOWN_BUILD_FACTOR -#define GRPC_TEST_SLOWDOWN_BUILD_FACTOR 1.0 -#endif +/* Serialization functions that doesn't do anything except duplicating the buffer */ -#ifndef GRPC_TEST_SLOWDOWN_MACHINE_FACTOR -#define GRPC_TEST_SLOWDOWN_MACHINE_FACTOR 1.0 -#endif +void GRPC_id_serialize(grpc_message input, grpc_message *output); +void GRPC_id_deserialize(grpc_message input, grpc_message *output); -extern double g_fixture_slowdown_factor; - -#define GRPC_TEST_SLOWDOWN_FACTOR \ - (GRPC_TEST_SLOWDOWN_BUILD_FACTOR * GRPC_TEST_SLOWDOWN_MACHINE_FACTOR * \ - g_fixture_slowdown_factor) - -#define GRPC_TIMEOUT_SECONDS_TO_DEADLINE(x) \ - gpr_time_add( \ - gpr_now(GPR_CLOCK_MONOTONIC), \ - gpr_time_from_millis((int64_t)(GRPC_TEST_SLOWDOWN_FACTOR * 1e3 * (x)), \ - GPR_TIMESPAN)) - -#define GRPC_TIMEOUT_MILLIS_TO_DEADLINE(x) \ - gpr_time_add( \ - gpr_now(GPR_CLOCK_MONOTONIC), \ - gpr_time_from_micros((int64_t)(GRPC_TEST_SLOWDOWN_FACTOR * 1e3 * (x)), \ - GPR_TIMESPAN)) - -#ifndef GRPC_TEST_CUSTOM_PICK_PORT -#define GRPC_TEST_PICK_PORT -#endif - -void grpc_test_init(int argc, char **argv); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* GRPC_TEST_CORE_UTIL_TEST_CONFIG_H */ +#endif //TEST_GRPC_C_MOCK_SERIALIZATION_H diff --git a/grpc/impl/message_public.c b/grpc/impl/message_public.c new file mode 100644 index 0000000000000..8794e35e65181 --- /dev/null +++ b/grpc/impl/message_public.c @@ -0,0 +1,40 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include "../message_public.h" + +void GRPC_message_destroy(grpc_message *message) { + free(message->data); + message->data = NULL; +} diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index ca460692052fe..f06a5aed1bd2d 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -34,10 +34,21 @@ #include "unary_blocking_call.h" #include "call_ops.h" #include +#include +#include -grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, grpc_context * const context, const grpc_message message, void *response) { +grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, + grpc_context * const context, const grpc_message message, + grpc_message *response) { grpc_completion_queue *cq = grpc_completion_queue_create(NULL); - grpc_call *call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method->name, "", context->deadline, NULL); + grpc_call *call = grpc_channel_create_call(channel, + NULL, + GRPC_PROPAGATE_DEFAULTS, + cq, + rpc_method->name, + "", + context->deadline, + NULL); grpc_call_set set = { grpc_op_send_metadata, @@ -57,18 +68,8 @@ grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * GPR_ASSERT(ev.success); grpc_finish_op_from_call_set(set, context); - - printf("Status: %d\n", context->status.code); - printf("Details: %s\n", context->status.details); GPR_ASSERT(context->status.code == GRPC_STATUS_OK); - grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, context->recv_buffer); - gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); - uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); - printf("Server said: %s\n", resp + 2); // skip to the string in serialized protobuf object - grpc_byte_buffer_destroy(context->recv_buffer); - grpc_completion_queue_shutdown(cq); while ( grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) @@ -80,4 +81,3 @@ grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * gpr_free(context->status.details); } - diff --git a/grpc/impl/unary_blocking_call.h b/grpc/impl/unary_blocking_call.h index f0f657b370617..7038b041d044c 100644 --- a/grpc/impl/unary_blocking_call.h +++ b/grpc/impl/unary_blocking_call.h @@ -1,18 +1,41 @@ -// -// Created by yifeit on 6/14/16. -// +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ #ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_H #define TEST_GRPC_C_UNARY_BLOCKING_CALL_H #include "../grpc_c_public.h" #include "context.h" -#include -#include -#include -#include -#include -#include #define TAG(x) ((void *)x) diff --git a/grpc/message_public.h b/grpc/message_public.h new file mode 100644 index 0000000000000..45fa58325c161 --- /dev/null +++ b/grpc/message_public.h @@ -0,0 +1,42 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include "grpc_c_public.h" + +#ifndef TEST_GRPC_C_MESSAGE_H +#define TEST_GRPC_C_MESSAGE_H + +void GRPC_message_destroy(grpc_message *message); + +#endif //TEST_GRPC_C_MESSAGE_H diff --git a/grpc/serialization_public.h b/grpc/serialization_public.h new file mode 100644 index 0000000000000..cb67f2c755bc0 --- /dev/null +++ b/grpc/serialization_public.h @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_SERIALIZATION_PUBLIC_H_H +#define TEST_GRPC_C_SERIALIZATION_PUBLIC_H_H + +#include "grpc_c_public.h" + +typedef void (*GRPC_serializer)(grpc_message input, grpc_message *output); +typedef void (*GRPC_deserializer)(grpc_message input, grpc_message *output); + +#endif //TEST_GRPC_C_SERIALIZATION_PUBLIC_H_H diff --git a/main.c b/main.c index bae708b954440..e9a4e8486d6ad 100644 --- a/main.c +++ b/main.c @@ -32,23 +32,25 @@ */ #include -#include "test_config.h" #include "grpc/grpc_c_public.h" #include "grpc/status_public.h" #include "grpc/channel_public.h" +#include "grpc/message_public.h" int main(int argc, char **argv) { - grpc_test_init(argc, argv); - // Local greetings server grpc_channel *chan = GRPC_channel_create("0.0.0.0:50051"); grpc_method method = { NORMAL_RPC, "/helloworld.Greeter/SayHello" }; grpc_context *context = grpc_context_create(chan); // hardcoded string for "gRPC-C" - const char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; + char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; grpc_message msg = { str, sizeof(str) }; - grpc_unary_blocking_call(chan, &method, context, msg, NULL); + // using char array to hold RPC result while protobuf is not there yet + grpc_message resp; + grpc_unary_blocking_call(chan, &method, context, msg, &resp); + printf("Server said: %s\n", ((char *) resp.data) + 2); // skip to the string in serialized protobuf object + GRPC_message_destroy(&resp); GRPC_context_destroy(&context); GRPC_channel_destroy(&chan); diff --git a/test_config.c b/test_config.c deleted file mode 100644 index aa0b1f9a204f7..0000000000000 --- a/test_config.c +++ /dev/null @@ -1,407 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include "test_config.h" - -#include -#include -#include -#include -#include -#include - -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#ifndef GRPC_CORE_LIB_SUPPORT_STRING_H -#define GRPC_CORE_LIB_SUPPORT_STRING_H - -#include - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* String utility functions */ - -/* Flags for gpr_dump function. */ -#define GPR_DUMP_HEX 0x00000001 -#define GPR_DUMP_ASCII 0x00000002 - -/* Converts array buf, of length len, into a C string according to the flags. - Result should be freed with gpr_free() */ -char *gpr_dump(const char *buf, size_t len, uint32_t flags); - -/* Calls gpr_dump on a slice. */ -char *gpr_dump_slice(gpr_slice slice, uint32_t flags); - -/* Parses an array of bytes into an integer (base 10). Returns 1 on success, - 0 on failure. */ -int gpr_parse_bytes_to_uint32(const char *data, size_t length, - uint32_t *result); - -/* Minimum buffer size for calling ltoa */ -#define GPR_LTOA_MIN_BUFSIZE (3 * sizeof(long)) - -/* Convert a long to a string in base 10; returns the length of the - output string (or 0 on failure). - output must be at least GPR_LTOA_MIN_BUFSIZE bytes long. */ -int gpr_ltoa(long value, char *output); - -/* Minimum buffer size for calling int64toa */ -#define GPR_INT64TOA_MIN_BUFSIZE (3 * sizeof(int64_t)) - -/* Convert an int64 to a string in base 10; returns the length of the -output string (or 0 on failure). -output must be at least GPR_INT64TOA_MIN_BUFSIZE bytes long. -NOTE: This function ensures sufficient bit width even on Win x64, -where long is 32bit is size.*/ -int int64_ttoa(int64_t value, char *output); - -/* Reverse a run of bytes */ -void gpr_reverse_bytes(char *str, int len); - -/* Join a set of strings, returning the resulting string. - Total combined length (excluding null terminator) is returned in total_length - if it is non-null. */ -char *gpr_strjoin(const char **strs, size_t nstrs, size_t *total_length); - -/* Join a set of strings using a separator, returning the resulting string. - Total combined length (excluding null terminator) is returned in total_length - if it is non-null. */ -char *gpr_strjoin_sep(const char **strs, size_t nstrs, const char *sep, - size_t *total_length); - -/** Split \a str by the separator \a sep. Results are stored in \a dst, which - * should be a properly initialized instance. */ -void gpr_slice_split(gpr_slice str, const char *sep, gpr_slice_buffer *dst); - -/* A vector of strings... for building up a final string one piece at a time */ -typedef struct { - char **strs; - size_t count; - size_t capacity; -} gpr_strvec; - -/* Initialize/destroy */ -void gpr_strvec_init(gpr_strvec *strs); -void gpr_strvec_destroy(gpr_strvec *strs); -/* Add a string to a strvec, takes ownership of the string */ -void gpr_strvec_add(gpr_strvec *strs, char *add); -/* Return a joined string with all added substrings, optionally setting - total_length as per gpr_strjoin */ -char *gpr_strvec_flatten(gpr_strvec *strs, size_t *total_length); - -#ifdef __cplusplus -} -#endif - -#endif /* GRPC_CORE_LIB_SUPPORT_STRING_H */ - - -double g_fixture_slowdown_factor = 1.0; - -#if GPR_GETPID_IN_UNISTD_H -#include -static unsigned seed(void) { return (unsigned)getpid(); } -#endif - -#if GPR_GETPID_IN_PROCESS_H -#include -static unsigned seed(void) { return (unsigned)_getpid(); } -#endif - -#if GPR_WINDOWS_CRASH_HANDLER -#include - -#include - -// disable warning 4091 - dbghelp.h is broken for msvc2015 -#pragma warning(disable : 4091) -#define DBGHELP_TRANSLATE_TCHAR -#include - -#ifdef _MSC_VER -#pragma comment(lib, "dbghelp.lib") -#endif - -static void print_current_stack() { - typedef USHORT(WINAPI * CaptureStackBackTraceType)( - __in ULONG, __in ULONG, __out PVOID *, __out_opt PULONG); - CaptureStackBackTraceType func = (CaptureStackBackTraceType)(GetProcAddress( - LoadLibrary(_T("kernel32.dll")), "RtlCaptureStackBackTrace")); - - if (func == NULL) return; // WOE 29.SEP.2010 - -// Quote from Microsoft Documentation: -// ## Windows Server 2003 and Windows XP: -// ## The sum of the FramesToSkip and FramesToCapture parameters must be less -// than 63. -#define MAX_CALLERS 62 - - void *callers_stack[MAX_CALLERS]; - unsigned short frames; - SYMBOL_INFOW *symbol; - HANDLE process; - process = GetCurrentProcess(); - SymInitialize(process, NULL, TRUE); - frames = (func)(0, MAX_CALLERS, callers_stack, NULL); - symbol = - (SYMBOL_INFOW *)calloc(sizeof(SYMBOL_INFOW) + 256 * sizeof(wchar_t), 1); - symbol->MaxNameLen = 255; - symbol->SizeOfStruct = sizeof(SYMBOL_INFOW); - - const unsigned short MAX_CALLERS_SHOWN = 32; - frames = frames < MAX_CALLERS_SHOWN ? frames : MAX_CALLERS_SHOWN; - for (unsigned int i = 0; i < frames; i++) { - SymFromAddrW(process, (DWORD64)(callers_stack[i]), 0, symbol); - fwprintf(stderr, L"*** %d: %016I64X %ls - %016I64X\n", i, - (DWORD64)callers_stack[i], symbol->Name, (DWORD64)symbol->Address); - fflush(stderr); - } - - free(symbol); -} - -static void print_stack_from_context(CONTEXT c) { - STACKFRAME s; // in/out stackframe - memset(&s, 0, sizeof(s)); - DWORD imageType; -#ifdef _M_IX86 - // normally, call ImageNtHeader() and use machine info from PE header - imageType = IMAGE_FILE_MACHINE_I386; - s.AddrPC.Offset = c.Eip; - s.AddrPC.Mode = AddrModeFlat; - s.AddrFrame.Offset = c.Ebp; - s.AddrFrame.Mode = AddrModeFlat; - s.AddrStack.Offset = c.Esp; - s.AddrStack.Mode = AddrModeFlat; -#elif _M_X64 - imageType = IMAGE_FILE_MACHINE_AMD64; - s.AddrPC.Offset = c.Rip; - s.AddrPC.Mode = AddrModeFlat; - s.AddrFrame.Offset = c.Rsp; - s.AddrFrame.Mode = AddrModeFlat; - s.AddrStack.Offset = c.Rsp; - s.AddrStack.Mode = AddrModeFlat; -#elif _M_IA64 - imageType = IMAGE_FILE_MACHINE_IA64; - s.AddrPC.Offset = c.StIIP; - s.AddrPC.Mode = AddrModeFlat; - s.AddrFrame.Offset = c.IntSp; - s.AddrFrame.Mode = AddrModeFlat; - s.AddrBStore.Offset = c.RsBSP; - s.AddrBStore.Mode = AddrModeFlat; - s.AddrStack.Offset = c.IntSp; - s.AddrStack.Mode = AddrModeFlat; -#else -#error "Platform not supported!" -#endif - - HANDLE process = GetCurrentProcess(); - HANDLE thread = GetCurrentThread(); - - SYMBOL_INFOW *symbol = - (SYMBOL_INFOW *)calloc(sizeof(SYMBOL_INFOW) + 256 * sizeof(wchar_t), 1); - symbol->MaxNameLen = 255; - symbol->SizeOfStruct = sizeof(SYMBOL_INFOW); - - while (StackWalk(imageType, process, thread, &s, &c, 0, - SymFunctionTableAccess, SymGetModuleBase, 0)) { - BOOL has_symbol = - SymFromAddrW(process, (DWORD64)(s.AddrPC.Offset), 0, symbol); - fwprintf( - stderr, L"*** %016I64X %ls - %016I64X\n", (DWORD64)(s.AddrPC.Offset), - has_symbol ? symbol->Name : L"<>", (DWORD64)symbol->Address); - fflush(stderr); - } - - free(symbol); -} - -static LONG crash_handler(struct _EXCEPTION_POINTERS *ex_info) { - fprintf(stderr, "Exception handler called, dumping information\n"); - bool try_to_print_stack = true; - PEXCEPTION_RECORD exrec = ex_info->ExceptionRecord; - while (exrec) { - DWORD code = exrec->ExceptionCode; - DWORD flgs = exrec->ExceptionFlags; - PVOID addr = exrec->ExceptionAddress; - if (code == EXCEPTION_STACK_OVERFLOW) try_to_print_stack = false; - fprintf(stderr, "code: %x - flags: %d - address: %p\n", code, flgs, addr); - exrec = exrec->ExceptionRecord; - } - if (try_to_print_stack) { - print_stack_from_context(*ex_info->ContextRecord); - } - if (IsDebuggerPresent()) { - __debugbreak(); - } else { - _exit(1); - } - return EXCEPTION_EXECUTE_HANDLER; -} - -static void abort_handler(int sig) { - fprintf(stderr, "Abort handler called.\n"); - print_current_stack(NULL); - if (IsDebuggerPresent()) { - __debugbreak(); - } else { - _exit(1); - } -} - -static void install_crash_handler() { - if (!SymInitialize(GetCurrentProcess(), NULL, TRUE)) { - fprintf(stderr, "SymInitialize failed: %d\n", GetLastError()); - } - SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)crash_handler); - _set_abort_behavior(0, _WRITE_ABORT_MSG); - _set_abort_behavior(0, _CALL_REPORTFAULT); - signal(SIGABRT, abort_handler); -} -#elif GPR_POSIX_CRASH_HANDLER -#include -#include -#include -#include -#include - -static char g_alt_stack[GPR_MAX(MINSIGSTKSZ, 65536)]; - -#define MAX_FRAMES 32 - -/* signal safe output */ -static void output_string(const char *string) { - size_t len = strlen(string); - ssize_t r; - - do { - r = write(STDERR_FILENO, string, len); - } while (r == -1 && errno == EINTR); -} - -static void output_num(long num) { - char buf[GPR_LTOA_MIN_BUFSIZE]; - gpr_ltoa(num, buf); - output_string(buf); -} - -static void crash_handler(int signum, siginfo_t *info, void *data) { - void *addrlist[MAX_FRAMES + 1]; - int addrlen; - - output_string("\n\n\n*******************************\nCaught signal "); - output_num(signum); - output_string("\n"); - - addrlen = backtrace(addrlist, GPR_ARRAY_SIZE(addrlist)); - - if (addrlen == 0) { - output_string(" no backtrace\n"); - } else { - backtrace_symbols_fd(addrlist, addrlen, STDERR_FILENO); - } - - /* try to get a core dump for SIGTERM */ - if (signum == SIGTERM) signum = SIGQUIT; - raise(signum); -} - -static void install_crash_handler() { - stack_t ss; - struct sigaction sa; - - memset(&ss, 0, sizeof(ss)); - memset(&sa, 0, sizeof(sa)); - ss.ss_size = sizeof(g_alt_stack); - ss.ss_sp = g_alt_stack; - GPR_ASSERT(sigaltstack(&ss, NULL) == 0); - sa.sa_flags = (int)(SA_SIGINFO | SA_ONSTACK | SA_RESETHAND); - sa.sa_sigaction = crash_handler; - GPR_ASSERT(sigaction(SIGILL, &sa, NULL) == 0); - GPR_ASSERT(sigaction(SIGABRT, &sa, NULL) == 0); - GPR_ASSERT(sigaction(SIGBUS, &sa, NULL) == 0); - GPR_ASSERT(sigaction(SIGSEGV, &sa, NULL) == 0); - GPR_ASSERT(sigaction(SIGTERM, &sa, NULL) == 0); - GPR_ASSERT(sigaction(SIGQUIT, &sa, NULL) == 0); -} -#else -static void install_crash_handler() {} -#endif - -void grpc_test_init(int argc, char **argv) { - install_crash_handler(); - gpr_log(GPR_DEBUG, "test slowdown: machine=%f build=%f total=%f", - (double)GRPC_TEST_SLOWDOWN_MACHINE_FACTOR, - (double)GRPC_TEST_SLOWDOWN_BUILD_FACTOR, - (double)GRPC_TEST_SLOWDOWN_FACTOR); - /* seed rng with pid, so we don't end up with the same random numbers as a - concurrently running test binary */ - srand(seed()); -} From 09ccadefdfab6db939129fbb157ca986a9e43ec4 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 15 Jun 2016 18:29:41 -0700 Subject: [PATCH 009/202] freeing stuff in the right place --- grpc/impl/context.c | 2 ++ grpc/impl/unary_blocking_call.c | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/grpc/impl/context.c b/grpc/impl/context.c index eeb354bf04ec2..aeb1729e723ea 100644 --- a/grpc/impl/context.c +++ b/grpc/impl/context.c @@ -31,6 +31,7 @@ * */ +#include #include "context.h" #include "id_serialization.h" @@ -44,6 +45,7 @@ grpc_context *grpc_context_create(grpc_channel *chan) { } void GRPC_context_destroy(grpc_context **context) { + gpr_free((*context)->status.details); free(*context); *context = NULL; } diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index f06a5aed1bd2d..d0d8b97eb1fb3 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -77,7 +77,4 @@ grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * ; grpc_completion_queue_destroy(cq); grpc_call_destroy(call); - - gpr_free(context->status.details); } - From 328dd646d60c5453d149081f6d8ae04757e7fed0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 16 Jun 2016 15:56:14 -0700 Subject: [PATCH 010/202] [RUNTIME] prefix public API with GRPC_ --- grpc/context_public.h | 43 ++++++++++++++++++++++ grpc/grpc_c_public.h | 22 +++++------- grpc/impl/alloc.c | 40 +++++++++++++++++++++ grpc/impl/alloc.h | 44 +++++++++++++++++++++++ grpc/impl/call_ops.c | 3 +- grpc/impl/call_ops.h | 4 +++ grpc/impl/context.c | 21 +++++++---- grpc/impl/context.h | 3 ++ grpc/impl/id_serialization.h | 1 + grpc/impl/{message_public.c => message.c} | 3 +- grpc/impl/message.h | 42 ++++++++++++++++++++++ grpc/impl/status.h | 4 +++ grpc/impl/unary_blocking_call.c | 6 ++-- grpc/message_public.h | 15 +++++--- grpc/serialization_public.h | 4 +-- grpc/status_code_public.h | 6 ++-- grpc/status_public.h | 6 ++-- main.c | 14 ++++---- 18 files changed, 233 insertions(+), 48 deletions(-) create mode 100644 grpc/context_public.h create mode 100644 grpc/impl/alloc.c create mode 100644 grpc/impl/alloc.h rename grpc/impl/{message_public.c => message.c} (97%) create mode 100644 grpc/impl/message.h diff --git a/grpc/context_public.h b/grpc/context_public.h new file mode 100644 index 0000000000000..2baeae0595087 --- /dev/null +++ b/grpc/context_public.h @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CONTEXT_PUBLIC_H_H +#define TEST_GRPC_C_CONTEXT_PUBLIC_H_H + +#include "grpc_c_public.h" + +GRPC_context *GRPC_context_create(GRPC_channel *chan); +void GRPC_context_destroy(GRPC_context **context); + +#endif //TEST_GRPC_C_CONTEXT_PUBLIC_H_H diff --git a/grpc/grpc_c_public.h b/grpc/grpc_c_public.h index 79e0cdad0aed8..6d97c95a7c449 100644 --- a/grpc/grpc_c_public.h +++ b/grpc/grpc_c_public.h @@ -36,12 +36,13 @@ #define TEST_GRPC_C_GRPC_C_PUBLIC_H #include +#include "message_public.h" -typedef struct grpc_channel grpc_channel; -typedef struct grpc_status grpc_status; -typedef struct grpc_context grpc_context; +typedef struct grpc_channel GRPC_channel; +typedef struct grpc_status GRPC_status; +typedef struct grpc_context GRPC_context; -typedef struct grpc_method { +typedef struct GRPC_method { enum RpcType { NORMAL_RPC = 0, CLIENT_STREAMING, // request streaming @@ -49,16 +50,9 @@ typedef struct grpc_method { BIDI_STREAMING } type; const char* const name; -} grpc_method; +} GRPC_method; -typedef struct grpc_message { - void * data; - size_t length; -} grpc_message; - -grpc_context *grpc_context_create(grpc_channel *chan); -void GRPC_context_destroy(grpc_context **context); - -grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, grpc_context * const context, const grpc_message message, grpc_message *response); +GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, + GRPC_context *const context, const GRPC_message message, GRPC_message *response); #endif //TEST_GRPC_C_GRPC_C_PUBLIC_H diff --git a/grpc/impl/alloc.c b/grpc/impl/alloc.c new file mode 100644 index 0000000000000..616d8294466c9 --- /dev/null +++ b/grpc/impl/alloc.c @@ -0,0 +1,40 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "alloc.h" +#include + +void *grpc_memdup(const void *dst, size_t size) { + void *p = malloc(size); + return p ? memcpy(p, dst, size) : NULL; +} diff --git a/grpc/impl/alloc.h b/grpc/impl/alloc.h new file mode 100644 index 0000000000000..30b307d349330 --- /dev/null +++ b/grpc/impl/alloc.h @@ -0,0 +1,44 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_ALLOC_H +#define TEST_GRPC_C_ALLOC_H + +#include + +void* grpc_memdup(const void*, size_t); + +#define GRPC_ALLOC_STRUCT(type, ...) (type *) grpc_memdup(&(type)__VA_ARGS__, sizeof(type)) + +#endif //TEST_GRPC_C_ALLOC_H diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index c749a5db22bf3..2d1e34fb191a1 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -118,8 +118,7 @@ static void op_recv_object_finish(grpc_context *context, bool *status, int max_m uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); size_t len = GPR_SLICE_LENGTH(slice_recv); - grpc_message msg = { resp, len }; - context->deserialize(msg, context->response); + context->deserialize((grpc_message) { resp, len }, context->response); gpr_slice_unref(slice_recv); grpc_byte_buffer_reader_destroy(&reader); diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 0166cc888d3a7..eae34415dc537 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -36,9 +36,13 @@ #define TEST_GRPC_C_CALL_OPS_H #include "../grpc_c_public.h" +#include "message.h" +#include "context.h" #include #include +typedef GRPC_method grpc_method; + typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, grpc_message *response); typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); diff --git a/grpc/impl/context.c b/grpc/impl/context.c index aeb1729e723ea..385512f6cff62 100644 --- a/grpc/impl/context.c +++ b/grpc/impl/context.c @@ -32,20 +32,27 @@ */ #include +#include "../context_public.h" #include "context.h" +#include "alloc.h" #include "id_serialization.h" -grpc_context *grpc_context_create(grpc_channel *chan) { - grpc_context *context = calloc(1, sizeof(grpc_context)); - context->deadline = gpr_inf_future(GPR_CLOCK_REALTIME); - context->channel = chan; - context->serialize = GRPC_id_serialize; - context->deserialize = GRPC_id_deserialize; +grpc_context *GRPC_context_create(grpc_channel *chan) { + grpc_context *context = GRPC_ALLOC_STRUCT( + grpc_context, { + .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), + .channel = chan, + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize + } + ); return context; } void GRPC_context_destroy(grpc_context **context) { - gpr_free((*context)->status.details); + if ((*context)->status.details) { + gpr_free((*context)->status.details); + } free(*context); *context = NULL; } diff --git a/grpc/impl/context.h b/grpc/impl/context.h index 7a7021175b4ad..6e1635c10c606 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -39,6 +39,7 @@ #include "../serialization_public.h" #include #include "status.h" +#include "message.h" #include typedef struct grpc_context { @@ -56,4 +57,6 @@ typedef struct grpc_context { grpc_status status; } grpc_context; +typedef grpc_context GRPC_context; + #endif //TEST_GRPC_C_CONTEXT_H diff --git a/grpc/impl/id_serialization.h b/grpc/impl/id_serialization.h index c11803923dddc..92c81d51cc9c7 100644 --- a/grpc/impl/id_serialization.h +++ b/grpc/impl/id_serialization.h @@ -36,6 +36,7 @@ #define TEST_GRPC_C_MOCK_SERIALIZATION_H #include "../serialization_public.h" +#include "message.h" /* Serialization functions that doesn't do anything except duplicating the buffer */ diff --git a/grpc/impl/message_public.c b/grpc/impl/message.c similarity index 97% rename from grpc/impl/message_public.c rename to grpc/impl/message.c index 8794e35e65181..052813a3cdbcf 100644 --- a/grpc/impl/message_public.c +++ b/grpc/impl/message.c @@ -32,7 +32,8 @@ */ -#include "../message_public.h" +#include "message.h" +#include void GRPC_message_destroy(grpc_message *message) { free(message->data); diff --git a/grpc/impl/message.h b/grpc/impl/message.h new file mode 100644 index 0000000000000..3ae78c6eccc6c --- /dev/null +++ b/grpc/impl/message.h @@ -0,0 +1,42 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_MESSAGE_H +#define TEST_GRPC_C_MESSAGE_H + +#include "../message_public.h" + +typedef GRPC_message grpc_message; + +#endif //TEST_GRPC_C_MESSAGE_H diff --git a/grpc/impl/status.h b/grpc/impl/status.h index 68f32c16dc910..5ce06b42e6d14 100644 --- a/grpc/impl/status.h +++ b/grpc/impl/status.h @@ -35,10 +35,14 @@ #ifndef TEST_GRPC_C_STATUS_H #define TEST_GRPC_C_STATUS_H +#include + typedef struct grpc_status { grpc_status_code code; char *details; size_t details_length; } grpc_status; +typedef grpc_status GRPC_status; + #endif //TEST_GRPC_C_STATUS_H diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index d0d8b97eb1fb3..8b1fe2bb9c5cd 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -34,12 +34,10 @@ #include "unary_blocking_call.h" #include "call_ops.h" #include -#include #include -grpc_status grpc_unary_blocking_call(grpc_channel *channel, const grpc_method * const rpc_method, - grpc_context * const context, const grpc_message message, - grpc_message *response) { +GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, + GRPC_context *const context, const GRPC_message message, GRPC_message *response) { grpc_completion_queue *cq = grpc_completion_queue_create(NULL); grpc_call *call = grpc_channel_create_call(channel, NULL, diff --git a/grpc/message_public.h b/grpc/message_public.h index 45fa58325c161..d7233b29a6616 100644 --- a/grpc/message_public.h +++ b/grpc/message_public.h @@ -32,11 +32,16 @@ */ -#include "grpc_c_public.h" +#ifndef TEST_GRPC_C_MESSAGE_PUBLIC_H +#define TEST_GRPC_C_MESSAGE_PUBLIC_H -#ifndef TEST_GRPC_C_MESSAGE_H -#define TEST_GRPC_C_MESSAGE_H +#include -void GRPC_message_destroy(grpc_message *message); +typedef struct GRPC_message { + void * data; + size_t length; +} GRPC_message; -#endif //TEST_GRPC_C_MESSAGE_H +void GRPC_message_destroy(GRPC_message *message); + +#endif //TEST_GRPC_C_MESSAGE_PUBLIC_H diff --git a/grpc/serialization_public.h b/grpc/serialization_public.h index cb67f2c755bc0..28ac13d1e0b10 100644 --- a/grpc/serialization_public.h +++ b/grpc/serialization_public.h @@ -37,7 +37,7 @@ #include "grpc_c_public.h" -typedef void (*GRPC_serializer)(grpc_message input, grpc_message *output); -typedef void (*GRPC_deserializer)(grpc_message input, grpc_message *output); +typedef void (*GRPC_serializer)(GRPC_message input, GRPC_message *output); +typedef void (*GRPC_deserializer)(GRPC_message input, GRPC_message *output); #endif //TEST_GRPC_C_SERIALIZATION_PUBLIC_H_H diff --git a/grpc/status_code_public.h b/grpc/status_code_public.h index 72f02ca244ffc..0edc14b6902f1 100644 --- a/grpc/status_code_public.h +++ b/grpc/status_code_public.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_STATUS_CODE_H -#define TEST_GRPC_C_STATUS_CODE_H +#ifndef TEST_GRPC_C_STATUS_CODE_PUBLIC_H +#define TEST_GRPC_C_STATUS_CODE_PUBLIC_H typedef enum { /* Not an error; returned on success */ @@ -153,4 +153,4 @@ typedef enum { GRPC_STATUS__DO_NOT_USE = -1 } grpc_status_code; -#endif //TEST_GRPC_C_STATUS_CODE_H +#endif //TEST_GRPC_C_STATUS_CODE_PUBLIC_H diff --git a/grpc/status_public.h b/grpc/status_public.h index 0e48055d2090b..22e1afba0ee90 100644 --- a/grpc/status_public.h +++ b/grpc/status_public.h @@ -32,10 +32,10 @@ */ -#ifndef TEST_GRPC_C_STATUS_CODE_PUBLIC_H_H -#define TEST_GRPC_C_STATUS_CODE_PUBLIC_H_H +#ifndef TEST_GRPC_C_STATUS_CODE_PUBLIC_H +#define TEST_GRPC_C_STATUS_CODE_PUBLIC_H #include "status_code_public.h" #include "impl/status.h" -#endif //TEST_GRPC_C_STATUS_CODE_PUBLIC_H_H +#endif //TEST_GRPC_C_STATUS_CODE_PUBLIC_H diff --git a/main.c b/main.c index e9a4e8486d6ad..ed411ca19c2c6 100644 --- a/main.c +++ b/main.c @@ -34,21 +34,21 @@ #include #include "grpc/grpc_c_public.h" #include "grpc/status_public.h" +#include "grpc/context_public.h" #include "grpc/channel_public.h" -#include "grpc/message_public.h" int main(int argc, char **argv) { // Local greetings server - grpc_channel *chan = GRPC_channel_create("0.0.0.0:50051"); + GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); - grpc_method method = { NORMAL_RPC, "/helloworld.Greeter/SayHello" }; - grpc_context *context = grpc_context_create(chan); + GRPC_method method = { NORMAL_RPC, "/helloworld.Greeter/SayHello" }; + GRPC_context *context = GRPC_context_create(chan); // hardcoded string for "gRPC-C" char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; - grpc_message msg = { str, sizeof(str) }; + GRPC_message msg = { str, sizeof(str) }; // using char array to hold RPC result while protobuf is not there yet - grpc_message resp; - grpc_unary_blocking_call(chan, &method, context, msg, &resp); + GRPC_message resp; + GRPC_unary_blocking_call(chan, &method, context, msg, &resp); printf("Server said: %s\n", ((char *) resp.data) + 2); // skip to the string in serialized protobuf object GRPC_message_destroy(&resp); From 41747ed1b6b59b896b37f2856a6568cfd038fa4a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 20 Jun 2016 11:17:16 -0700 Subject: [PATCH 011/202] [RUNTIME] [wip] async API scaffolding --- grpc/completion_queue_public.h | 51 +++++++++++++++++++++++++++++++++ grpc/impl/client_async_reader.c | 35 ++++++++++++++++++++++ grpc/impl/client_async_reader.h | 38 ++++++++++++++++++++++++ grpc/impl/completion_queue.c | 35 ++++++++++++++++++++++ grpc/impl/completion_queue.h | 40 ++++++++++++++++++++++++++ grpc/serialization_public.h | 6 ++-- 6 files changed, 202 insertions(+), 3 deletions(-) create mode 100644 grpc/completion_queue_public.h create mode 100644 grpc/impl/client_async_reader.c create mode 100644 grpc/impl/client_async_reader.h create mode 100644 grpc/impl/completion_queue.c create mode 100644 grpc/impl/completion_queue.h diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h new file mode 100644 index 0000000000000..d3597bd13cc23 --- /dev/null +++ b/grpc/completion_queue_public.h @@ -0,0 +1,51 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H +#define TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H + +#include + +/// Tri-state return for GRPC_completion_queue_next +enum GRPC_completion_queue_next_status { + GRPC_COMPLETION_QUEUE_SHUTDOWN, ///< The completion queue has been shutdown. + GRPC_COMPLETION_QUEUE_GOT_EVENT, ///< Got a new event; \a tag will be filled in with its + ///< associated value; \a ok indicating its success. + GRPC_COMPLETION_QUEUE_TIMEOUT ///< deadline was reached. +}; + +/// \return true if read a regular event, false if the queue is shutting down. +bool GRPC_completion_queue_next(void** tag, bool* ok); + +#endif //TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H diff --git a/grpc/impl/client_async_reader.c b/grpc/impl/client_async_reader.c new file mode 100644 index 0000000000000..5be930104f3ab --- /dev/null +++ b/grpc/impl/client_async_reader.c @@ -0,0 +1,35 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include "client_async_reader.h" diff --git a/grpc/impl/client_async_reader.h b/grpc/impl/client_async_reader.h new file mode 100644 index 0000000000000..33d7de693dc22 --- /dev/null +++ b/grpc/impl/client_async_reader.h @@ -0,0 +1,38 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CLIENT_ASYNC_READER_H +#define TEST_GRPC_C_CLIENT_ASYNC_READER_H + +#endif //TEST_GRPC_C_CLIENT_ASYNC_READER_H diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c new file mode 100644 index 0000000000000..bf4aa0cf55840 --- /dev/null +++ b/grpc/impl/completion_queue.c @@ -0,0 +1,35 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include "completion_queue.h" diff --git a/grpc/impl/completion_queue.h b/grpc/impl/completion_queue.h new file mode 100644 index 0000000000000..07074e10723a9 --- /dev/null +++ b/grpc/impl/completion_queue.h @@ -0,0 +1,40 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_COMPLETION_QUEUE_H +#define TEST_GRPC_C_COMPLETION_QUEUE_H + +#include "../completion_queue_public.h" + +#endif //TEST_GRPC_C_COMPLETION_QUEUE_H diff --git a/grpc/serialization_public.h b/grpc/serialization_public.h index 28ac13d1e0b10..05e1af4d72cfb 100644 --- a/grpc/serialization_public.h +++ b/grpc/serialization_public.h @@ -32,12 +32,12 @@ */ -#ifndef TEST_GRPC_C_SERIALIZATION_PUBLIC_H_H -#define TEST_GRPC_C_SERIALIZATION_PUBLIC_H_H +#ifndef TEST_GRPC_C_SERIALIZATION_PUBLIC_H +#define TEST_GRPC_C_SERIALIZATION_PUBLIC_H #include "grpc_c_public.h" typedef void (*GRPC_serializer)(GRPC_message input, GRPC_message *output); typedef void (*GRPC_deserializer)(GRPC_message input, GRPC_message *output); -#endif //TEST_GRPC_C_SERIALIZATION_PUBLIC_H_H +#endif //TEST_GRPC_C_SERIALIZATION_PUBLIC_H From fa96e2ddbbefe72011158ee170e8be5cfd985176 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 21 Jun 2016 10:49:49 -0700 Subject: [PATCH 012/202] [wip] tagging events with grpc_call_set in async --- grpc/completion_queue_public.h | 4 +++- grpc/context_public.h | 6 +++--- grpc/impl/call_ops.c | 20 +++++++++----------- grpc/impl/call_ops.h | 10 +++++++--- grpc/impl/completion_queue.c | 28 ++++++++++++++++++++++++++++ grpc/impl/context.h | 9 ++++++++- grpc/impl/unary_blocking_call.c | 19 +++++++++++-------- 7 files changed, 69 insertions(+), 27 deletions(-) diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h index d3597bd13cc23..dd0816a896f15 100644 --- a/grpc/completion_queue_public.h +++ b/grpc/completion_queue_public.h @@ -37,6 +37,8 @@ #include +typedef grpc_completion_queue GRPC_completion_queue; + /// Tri-state return for GRPC_completion_queue_next enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_SHUTDOWN, ///< The completion queue has been shutdown. @@ -46,6 +48,6 @@ enum GRPC_completion_queue_next_status { }; /// \return true if read a regular event, false if the queue is shutting down. -bool GRPC_completion_queue_next(void** tag, bool* ok); +bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok); #endif //TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H diff --git a/grpc/context_public.h b/grpc/context_public.h index 2baeae0595087..bb26ea02f47f5 100644 --- a/grpc/context_public.h +++ b/grpc/context_public.h @@ -32,12 +32,12 @@ */ -#ifndef TEST_GRPC_C_CONTEXT_PUBLIC_H_H -#define TEST_GRPC_C_CONTEXT_PUBLIC_H_H +#ifndef TEST_GRPC_C_CONTEXT_PUBLIC_H +#define TEST_GRPC_C_CONTEXT_PUBLIC_H #include "grpc_c_public.h" GRPC_context *GRPC_context_create(GRPC_channel *chan); void GRPC_context_destroy(GRPC_context **context); -#endif //TEST_GRPC_C_CONTEXT_PUBLIC_H_H +#endif //TEST_GRPC_C_CONTEXT_PUBLIC_H diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index 2d1e34fb191a1..1fb60208c61b0 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -168,28 +168,26 @@ const grpc_op_manager grpc_op_recv_status = { op_recv_status_finish }; -typedef const grpc_op_manager grpc_call_set[GRPC_MAX_OP_COUNT]; - -void grpc_fill_op_from_call_set(grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(const grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops) { size_t count = 0; while (count < GRPC_MAX_OP_COUNT) { - if (set[count].fill == NULL && set[count].finish == NULL) break; // end of call set - if (set[count].fill == NULL) continue; - set[count].fill(&ops[count], rpc_method, context, message, response); + if (set.op_managers[count].fill == NULL && set.op_managers[count].finish == NULL) break; // end of call set + if (set.op_managers[count].fill == NULL) continue; + set.op_managers[count].fill(&ops[count], rpc_method, context, message, response); count++; } *nops = count; } -void grpc_finish_op_from_call_set(grpc_call_set set, grpc_context *context) { +void grpc_finish_op_from_call_set(const grpc_call_set set, grpc_context *context) { size_t count = 0; while (count < GRPC_MAX_OP_COUNT) { - if (set[count].fill == NULL && set[count].finish == NULL) break; // end of call set - if (set[count].finish == NULL) continue; - size_t size = 100; // ?? + if (set.op_managers[count].fill == NULL && set.op_managers[count].finish == NULL) break; // end of call set + if (set.op_managers[count].finish == NULL) continue; + size_t size = 100; // todo(yifeit): hook up this value bool status; - set[count].finish(context, &status, size); + set.op_managers[count].finish(context, &status, size); count++; } } diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index eae34415dc537..5b2c01c06e60a 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -42,6 +42,7 @@ #include typedef GRPC_method grpc_method; +typedef struct grpc_context grpc_context; typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, grpc_message *response); typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); @@ -53,12 +54,15 @@ typedef struct grpc_op_manager { enum { GRPC_MAX_OP_COUNT = 8 }; -typedef const grpc_op_manager grpc_call_set[GRPC_MAX_OP_COUNT]; +typedef struct grpc_call_set { + const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; + grpc_context * const context; +} grpc_call_set; -void grpc_fill_op_from_call_set(grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(const grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops); -void grpc_finish_op_from_call_set(grpc_call_set set, grpc_context *context); +void grpc_finish_op_from_call_set(const grpc_call_set set, grpc_context *context); /* list of operations */ diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index bf4aa0cf55840..1c891a498d873 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -32,4 +32,32 @@ */ +#include +#include #include "completion_queue.h" +#include "context.h" + +bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok) { + for (;;) { + grpc_call_set *set = NULL; + grpc_event ev = grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + switch (ev.type) { + case GRPC_QUEUE_TIMEOUT: + return GRPC_COMPLETION_QUEUE_TIMEOUT; + case GRPC_QUEUE_SHUTDOWN: + return GRPC_COMPLETION_QUEUE_SHUTDOWN; + case GRPC_OP_COMPLETE: + set = (grpc_call_set *) ev.tag; + GPR_ASSERT(set != NULL); + GPR_ASSERT(set->context != NULL); + // run post-processing for async operations + grpc_finish_op_from_call_set(*set, set->context); + + *tag = set->context->user_tag; + *ok = ev.success != 0; + return GRPC_COMPLETION_QUEUE_GOT_EVENT; + } + } +} + + diff --git a/grpc/impl/context.h b/grpc/impl/context.h index 6e1635c10c606..739cd0947b2c2 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -40,12 +40,15 @@ #include #include "status.h" #include "message.h" +#include "call_ops.h" #include +typedef struct grpc_call_set grpc_call_set; + typedef struct grpc_context { grpc_channel *channel; grpc_call *call; - grpc_metadata* send_metadata_array; + grpc_metadata *send_metadata_array; grpc_metadata_array recv_metadata_array; grpc_metadata_array trailing_metadata_array; gpr_timespec deadline; @@ -55,6 +58,10 @@ typedef struct grpc_context { GRPC_serializer serialize; GRPC_deserializer deserialize; grpc_status status; + + // used in async calls + grpc_call_set *set; + void *user_tag; } grpc_context; typedef grpc_context GRPC_context; diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index 8b1fe2bb9c5cd..e06a1e8ea3f29 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -49,20 +49,23 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c NULL); grpc_call_set set = { - grpc_op_send_metadata, - grpc_op_recv_metadata, - grpc_op_send_object, - grpc_op_recv_object, - grpc_op_send_close, - grpc_op_recv_status + { + grpc_op_send_metadata, + grpc_op_recv_metadata, + grpc_op_send_object, + grpc_op_recv_object, + grpc_op_send_close, + grpc_op_recv_status + }, + context }; size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; grpc_fill_op_from_call_set(set, rpc_method, context, message, response, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(set), NULL)); - grpc_event ev = grpc_completion_queue_pluck(cq, TAG(set), context->deadline, NULL); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); + grpc_event ev = grpc_completion_queue_pluck(cq, TAG(&set), context->deadline, NULL); GPR_ASSERT(ev.success); grpc_finish_op_from_call_set(set, context); From 8228cd23e63b5a39cbf30db97d0ce38050f4e2be Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 21 Jun 2016 10:51:08 -0700 Subject: [PATCH 013/202] [wip] grpc_call_set -> grpc_call_op_set --- grpc/impl/call_ops.c | 4 ++-- grpc/impl/call_ops.h | 8 ++++---- grpc/impl/completion_queue.c | 4 ++-- grpc/impl/context.h | 4 ++-- grpc/impl/unary_blocking_call.c | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index 1fb60208c61b0..0855386a48988 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -168,7 +168,7 @@ const grpc_op_manager grpc_op_recv_status = { op_recv_status_finish }; -void grpc_fill_op_from_call_set(const grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops) { size_t count = 0; while (count < GRPC_MAX_OP_COUNT) { @@ -180,7 +180,7 @@ void grpc_fill_op_from_call_set(const grpc_call_set set, const grpc_method *rpc_ *nops = count; } -void grpc_finish_op_from_call_set(const grpc_call_set set, grpc_context *context) { +void grpc_finish_op_from_call_set(const grpc_call_op_set set, grpc_context *context) { size_t count = 0; while (count < GRPC_MAX_OP_COUNT) { if (set.op_managers[count].fill == NULL && set.op_managers[count].finish == NULL) break; // end of call set diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 5b2c01c06e60a..38b3360fc7e9d 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -54,15 +54,15 @@ typedef struct grpc_op_manager { enum { GRPC_MAX_OP_COUNT = 8 }; -typedef struct grpc_call_set { +typedef struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; grpc_context * const context; -} grpc_call_set; +} grpc_call_op_set; -void grpc_fill_op_from_call_set(const grpc_call_set set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops); -void grpc_finish_op_from_call_set(const grpc_call_set set, grpc_context *context); +void grpc_finish_op_from_call_set(const grpc_call_op_set set, grpc_context *context); /* list of operations */ diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index 1c891a498d873..97ba8ebd4a927 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -39,7 +39,7 @@ bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok) { for (;;) { - grpc_call_set *set = NULL; + grpc_call_op_set *set = NULL; grpc_event ev = grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); switch (ev.type) { case GRPC_QUEUE_TIMEOUT: @@ -47,7 +47,7 @@ bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok) case GRPC_QUEUE_SHUTDOWN: return GRPC_COMPLETION_QUEUE_SHUTDOWN; case GRPC_OP_COMPLETE: - set = (grpc_call_set *) ev.tag; + set = (grpc_call_op_set *) ev.tag; GPR_ASSERT(set != NULL); GPR_ASSERT(set->context != NULL); // run post-processing for async operations diff --git a/grpc/impl/context.h b/grpc/impl/context.h index 739cd0947b2c2..e06a67deeb6e0 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -43,7 +43,7 @@ #include "call_ops.h" #include -typedef struct grpc_call_set grpc_call_set; +typedef struct grpc_call_op_set grpc_call_op_set; typedef struct grpc_context { grpc_channel *channel; @@ -60,7 +60,7 @@ typedef struct grpc_context { grpc_status status; // used in async calls - grpc_call_set *set; + grpc_call_op_set *set; void *user_tag; } grpc_context; diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index e06a1e8ea3f29..79b6cfea1db8f 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -48,7 +48,7 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c context->deadline, NULL); - grpc_call_set set = { + grpc_call_op_set set = { { grpc_op_send_metadata, grpc_op_recv_metadata, From b4f4c983b24b85ff0f5cf1cc8467927ffea8d073 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 21 Jun 2016 18:14:10 -0700 Subject: [PATCH 014/202] wrapping completion queue --- grpc/completion_queue_public.h | 8 ++++---- grpc/impl/call_ops.h | 4 ++++ grpc/impl/completion_queue.c | 15 +++++++++++---- grpc/impl/context.h | 2 -- grpc/impl/unary_blocking_call.c | 14 ++++++++++++-- 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h index dd0816a896f15..67be13b2759ca 100644 --- a/grpc/completion_queue_public.h +++ b/grpc/completion_queue_public.h @@ -40,14 +40,14 @@ typedef grpc_completion_queue GRPC_completion_queue; /// Tri-state return for GRPC_completion_queue_next -enum GRPC_completion_queue_next_status { +typedef enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_SHUTDOWN, ///< The completion queue has been shutdown. GRPC_COMPLETION_QUEUE_GOT_EVENT, ///< Got a new event; \a tag will be filled in with its ///< associated value; \a ok indicating its success. GRPC_COMPLETION_QUEUE_TIMEOUT ///< deadline was reached. -}; +} GRPC_completion_queue_next_status; -/// \return true if read a regular event, false if the queue is shutting down. -bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok); +GRPC_completion_queue_next_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok); +GRPC_completion_queue_next_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok); #endif //TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 38b3360fc7e9d..6b8d59ac7e6b6 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -57,6 +57,10 @@ enum { GRPC_MAX_OP_COUNT = 8 }; typedef struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; grpc_context * const context; + + /* if this is true (default false), the event tagged by this call_op_set will not be emitted + * from the completion queue wrapper. */ + bool hide_from_user; } grpc_call_op_set; void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index 97ba8ebd4a927..c608400b39e48 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -35,12 +35,12 @@ #include #include #include "completion_queue.h" -#include "context.h" +#include "call_ops.h" -bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok) { +GRPC_completion_queue_next_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok) { for (;;) { grpc_call_op_set *set = NULL; - grpc_event ev = grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + grpc_event ev = grpc_completion_queue_next(cq, deadline, NULL); switch (ev.type) { case GRPC_QUEUE_TIMEOUT: return GRPC_COMPLETION_QUEUE_TIMEOUT; @@ -53,6 +53,11 @@ bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok) // run post-processing for async operations grpc_finish_op_from_call_set(*set, set->context); + if (set->hide_from_user) { + // don't touch user supplied pointers + continue; + } + *tag = set->context->user_tag; *ok = ev.success != 0; return GRPC_COMPLETION_QUEUE_GOT_EVENT; @@ -60,4 +65,6 @@ bool GRPC_completion_queue_next(GRPC_completion_queue *cq, void** tag, bool* ok) } } - +GRPC_completion_queue_next_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok) { + return GRPC_completion_queue_next_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); +} diff --git a/grpc/impl/context.h b/grpc/impl/context.h index e06a67deeb6e0..eb427a7c2e7a2 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -40,7 +40,6 @@ #include #include "status.h" #include "message.h" -#include "call_ops.h" #include typedef struct grpc_call_op_set grpc_call_op_set; @@ -60,7 +59,6 @@ typedef struct grpc_context { grpc_status status; // used in async calls - grpc_call_op_set *set; void *user_tag; } grpc_context; diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index 79b6cfea1db8f..1a6d7c12ad8b6 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -33,6 +33,7 @@ #include "unary_blocking_call.h" #include "call_ops.h" +#include "completion_queue.h" #include #include @@ -64,9 +65,18 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c grpc_op ops[GRPC_MAX_OP_COUNT]; grpc_fill_op_from_call_set(set, rpc_method, context, message, response, ops, &nops); + context->user_tag = TAG(&set); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); - grpc_event ev = grpc_completion_queue_pluck(cq, TAG(&set), context->deadline, NULL); - GPR_ASSERT(ev.success); + for (;;) { + void *tag; + bool ok; + GRPC_completion_queue_next_status status = GRPC_completion_queue_next_deadline(cq, context->deadline, &tag, &ok); + GPR_ASSERT(status == GRPC_COMPLETION_QUEUE_GOT_EVENT); + GPR_ASSERT(ok); + if (tag == TAG(&set)) { + break; + } + } grpc_finish_op_from_call_set(set, context); GPR_ASSERT(context->status.code == GRPC_STATUS_OK); From c8b99a4cc3cfbd013f56b7dcae7b32fe58009716 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 21 Jun 2016 18:16:22 -0700 Subject: [PATCH 015/202] use GRPC or grpc consistently in a single file --- grpc/impl/unary_blocking_call.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index 1a6d7c12ad8b6..6d816f765d33a 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -82,10 +82,11 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c GPR_ASSERT(context->status.code == GRPC_STATUS_OK); grpc_completion_queue_shutdown(cq); - while ( - grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL) - .type != GRPC_QUEUE_SHUTDOWN) - ; + for (;;) { + void *tag; + bool ok; + if (GRPC_completion_queue_next(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; + } grpc_completion_queue_destroy(cq); grpc_call_destroy(call); } From 9800227ab7d234e1ee27b79a9c78700aaeba68aa Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 21 Jun 2016 20:54:55 -0700 Subject: [PATCH 016/202] [RUNTIME] [wip] client async response reader --- grpc/client_async_reader_public.h | 46 ++++++++++++++++++++++++++++++ grpc/completion_queue_public.h | 1 + grpc/impl/call_ops.c | 37 +++++++++++++++--------- grpc/impl/call_ops.h | 2 +- grpc/impl/client_async_reader.c | 47 +++++++++++++++++++++++++++++++ grpc/impl/client_async_reader.h | 11 ++++++++ grpc/impl/completion_queue.c | 4 +++ grpc/impl/context.h | 3 ++ grpc/impl/unary_blocking_call.c | 2 +- 9 files changed, 138 insertions(+), 15 deletions(-) create mode 100644 grpc/client_async_reader_public.h diff --git a/grpc/client_async_reader_public.h b/grpc/client_async_reader_public.h new file mode 100644 index 0000000000000..f34c62131e257 --- /dev/null +++ b/grpc/client_async_reader_public.h @@ -0,0 +1,46 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H +#define TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H + +#include "impl/completion_queue.h" +#include "grpc_c_public.h" + +typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; + +GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method *const rpc_method, + GRPC_context *const context, const GRPC_message message, GRPC_message *response, void *tag); + +#endif //TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h index 67be13b2759ca..03e62c357dd99 100644 --- a/grpc/completion_queue_public.h +++ b/grpc/completion_queue_public.h @@ -47,6 +47,7 @@ typedef enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_TIMEOUT ///< deadline was reached. } GRPC_completion_queue_next_status; +GRPC_completion_queue *GRPC_completion_queue_create(); GRPC_completion_queue_next_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok); GRPC_completion_queue_next_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok); diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index 0855386a48988..8e2b91aa38330 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -40,11 +40,12 @@ static void op_noop_finish(grpc_context *context, bool *status, int max_message_ } -static void op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op->flags = 0; op->reserved = NULL; + return true; } static void op_send_metadata_finish(grpc_context *context, bool *status, int max_message_size) { @@ -56,7 +57,7 @@ const grpc_op_manager grpc_op_send_metadata = { op_send_metadata_finish }; -static void op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_MESSAGE; grpc_message serialized; @@ -70,6 +71,7 @@ static void op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_con op->flags = 0; op->reserved = NULL; + return true; } static void op_send_object_finish(grpc_context *context, bool *status, int max_message_size) { @@ -81,15 +83,18 @@ const grpc_op_manager grpc_op_send_object = { op_send_object_finish }; -static void op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { + if (context->initial_metadata_received) return false; op->op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array_init(&context->recv_metadata_array); op->data.recv_initial_metadata = &context->recv_metadata_array; op->flags = 0; op->reserved = NULL; + return true; } static void op_recv_metadata_finish(grpc_context *context, bool *status, int max_message_size) { + context->initial_metadata_received = true; } const grpc_op_manager grpc_op_recv_metadata = { @@ -97,7 +102,7 @@ const grpc_op_manager grpc_op_recv_metadata = { op_recv_metadata_finish }; -static void op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { context->got_message = false; context->response = response; op->op = GRPC_OP_RECV_MESSAGE; @@ -105,6 +110,7 @@ static void op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_con op->data.recv_message = &context->recv_buffer; op->flags = 0; op->reserved = NULL; + return true; } static void op_recv_object_finish(grpc_context *context, bool *status, int max_message_size) { @@ -132,10 +138,11 @@ const grpc_op_manager grpc_op_recv_object = { op_recv_object_finish }; -static void op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; + return true; } static void op_send_close_finish(grpc_context *context, bool *status, int max_message_size) { @@ -146,7 +153,7 @@ const grpc_op_manager grpc_op_send_close = { op_send_close_finish }; -static void op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; grpc_metadata_array_init(&context->trailing_metadata_array); context->status.details = NULL; @@ -158,6 +165,7 @@ static void op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_con op->data.recv_status_on_client.status_details_capacity = &context->status.details_length; op->flags = 0; op->reserved = NULL; + return true; } static void op_recv_status_finish(grpc_context *context, bool *status, int max_message_size) { @@ -170,14 +178,17 @@ const grpc_op_manager grpc_op_recv_status = { void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops) { - size_t count = 0; - while (count < GRPC_MAX_OP_COUNT) { - if (set.op_managers[count].fill == NULL && set.op_managers[count].finish == NULL) break; // end of call set - if (set.op_managers[count].fill == NULL) continue; - set.op_managers[count].fill(&ops[count], rpc_method, context, message, response); - count++; + size_t manager = 0; + size_t filled = 0; + while (manager < GRPC_MAX_OP_COUNT) { + if (set.op_managers[manager].fill == NULL && set.op_managers[manager].finish == NULL) break; // end of call set + if (set.op_managers[manager].fill == NULL) continue; + bool result = set.op_managers[manager].fill(&ops[filled], rpc_method, context, message, response); + manager++; + if (result) + filled++; } - *nops = count; + *nops = filled; } void grpc_finish_op_from_call_set(const grpc_call_op_set set, grpc_context *context) { diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 6b8d59ac7e6b6..5e14019b6e557 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -44,7 +44,7 @@ typedef GRPC_method grpc_method; typedef struct grpc_context grpc_context; -typedef void (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, grpc_message *response); +typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, grpc_message *response); typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); typedef struct grpc_op_manager { diff --git a/grpc/impl/client_async_reader.c b/grpc/impl/client_async_reader.c index 5be930104f3ab..e6baeda924780 100644 --- a/grpc/impl/client_async_reader.c +++ b/grpc/impl/client_async_reader.c @@ -33,3 +33,50 @@ #include "client_async_reader.h" +#include "alloc.h" +#include "../client_async_reader_public.h" + +GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method *const rpc_method, + GRPC_context *const context, const GRPC_message message, GRPC_message *response, void *tag) { + grpc_call *call = grpc_channel_create_call(channel, + NULL, + GRPC_PROPAGATE_DEFAULTS, + cq, + rpc_method->name, + "", + context->deadline, + NULL); + GRPC_client_async_response_reader *reader = GRPC_ALLOC_STRUCT(GRPC_client_async_response_reader, { + .context = context, + .call = call, + .init_buf = { + { + grpc_op_send_metadata, + grpc_op_send_object, + grpc_op_send_close + }, + context, + .hide_from_user = true + }, + .meta_buf = { + { + grpc_op_recv_metadata + }, + context + }, + .finish_buf = { + { + grpc_op_recv_metadata, + grpc_op_recv_object, + grpc_op_recv_status + }, + context + } + }); + + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(reader->init_buf, rpc_method, context, message, response, ops, &nops); + + return reader; +} diff --git a/grpc/impl/client_async_reader.h b/grpc/impl/client_async_reader.h index 33d7de693dc22..0adc022b5949f 100644 --- a/grpc/impl/client_async_reader.h +++ b/grpc/impl/client_async_reader.h @@ -35,4 +35,15 @@ #ifndef TEST_GRPC_C_CLIENT_ASYNC_READER_H #define TEST_GRPC_C_CLIENT_ASYNC_READER_H +#include "call_ops.h" + +typedef struct grpc_client_async_response_reader { + grpc_call_op_set init_buf; + grpc_call_op_set meta_buf; + grpc_call_op_set finish_buf; + + grpc_context *context; + grpc_call *call; +} grpc_client_async_response_reader; + #endif //TEST_GRPC_C_CLIENT_ASYNC_READER_H diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index c608400b39e48..5653a659a3613 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -37,6 +37,10 @@ #include "completion_queue.h" #include "call_ops.h" +GRPC_completion_queue *GRPC_completion_queue_create() { + return grpc_completion_queue_create(NULL); +} + GRPC_completion_queue_next_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok) { for (;;) { grpc_call_op_set *set = NULL; diff --git a/grpc/impl/context.h b/grpc/impl/context.h index eb427a7c2e7a2..58417898cac60 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -58,6 +58,9 @@ typedef struct grpc_context { GRPC_deserializer deserialize; grpc_status status; + // state tracking + bool initial_metadata_received; + // used in async calls void *user_tag; } grpc_context; diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index 6d816f765d33a..182bcf16ee239 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -39,7 +39,7 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, GRPC_context *const context, const GRPC_message message, GRPC_message *response) { - grpc_completion_queue *cq = grpc_completion_queue_create(NULL); + grpc_completion_queue *cq = GRPC_completion_queue_create(); grpc_call *call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, From 71a512e085e522e243c52b4f67ee488ba9c226dd Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 22 Jun 2016 16:51:04 -0700 Subject: [PATCH 017/202] [RUNTIME] working async client unary call API --- grpc/client_async_reader_public.h | 9 ++- grpc/completion_queue_public.h | 8 +- grpc/grpc_c_public.h | 2 +- grpc/impl/call_ops.c | 5 +- grpc/impl/call_ops.h | 3 + grpc/impl/client_async_reader.c | 30 +++++++- grpc/impl/completion_queue.c | 19 ++++- grpc/impl/context.c | 4 + grpc/impl/context.h | 17 +++-- grpc/impl/tag.h | 40 ++++++++++ grpc/impl/unary_blocking_call.c | 22 +++--- grpc/impl/unary_blocking_call.h | 3 - main.c | 123 +++++++++++++++++++++++++++--- 13 files changed, 236 insertions(+), 49 deletions(-) create mode 100644 grpc/impl/tag.h diff --git a/grpc/client_async_reader_public.h b/grpc/client_async_reader_public.h index f34c62131e257..d18812ea5acce 100644 --- a/grpc/client_async_reader_public.h +++ b/grpc/client_async_reader_public.h @@ -40,7 +40,12 @@ typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; -GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method *const rpc_method, - GRPC_context *const context, const GRPC_message message, GRPC_message *response, void *tag); +GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, + const GRPC_method rpc_method, + const GRPC_message request, GRPC_context *const context); + +void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_message *response, void *tag); + +void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); #endif //TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h index 03e62c357dd99..6925b31593e33 100644 --- a/grpc/completion_queue_public.h +++ b/grpc/completion_queue_public.h @@ -39,7 +39,7 @@ typedef grpc_completion_queue GRPC_completion_queue; -/// Tri-state return for GRPC_completion_queue_next +/// Tri-state return for GRPC_commit_call_and_wait typedef enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_SHUTDOWN, ///< The completion queue has been shutdown. GRPC_COMPLETION_QUEUE_GOT_EVENT, ///< Got a new event; \a tag will be filled in with its @@ -48,7 +48,9 @@ typedef enum GRPC_completion_queue_next_status { } GRPC_completion_queue_next_status; GRPC_completion_queue *GRPC_completion_queue_create(); -GRPC_completion_queue_next_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok); -GRPC_completion_queue_next_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok); +void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq); +GRPC_completion_queue_next_status GRPC_commit_call_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok); +GRPC_completion_queue_next_status GRPC_commit_call_and_wait_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, + void **tag, bool *ok); #endif //TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H diff --git a/grpc/grpc_c_public.h b/grpc/grpc_c_public.h index 6d97c95a7c449..effc136eda451 100644 --- a/grpc/grpc_c_public.h +++ b/grpc/grpc_c_public.h @@ -49,7 +49,7 @@ typedef struct GRPC_method { SERVER_STREAMING, // response streaming BIDI_STREAMING } type; - const char* const name; + const char* name; } GRPC_method; GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index 8e2b91aa38330..da14759fd619e 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -103,7 +103,7 @@ const grpc_op_manager grpc_op_recv_metadata = { }; static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { - context->got_message = false; + context->message_received = false; context->response = response; op->op = GRPC_OP_RECV_MESSAGE; context->recv_buffer = NULL; @@ -115,8 +115,9 @@ static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_con static void op_recv_object_finish(grpc_context *context, bool *status, int max_message_size) { if (context->recv_buffer) { + GPR_ASSERT(context->message_received == false); // deserialize - context->got_message = true; + context->message_received = true; grpc_byte_buffer_reader reader; grpc_byte_buffer_reader_init(&reader, context->recv_buffer); diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 5e14019b6e557..d3b4fd5d67b73 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -61,6 +61,9 @@ typedef struct grpc_call_op_set { /* if this is true (default false), the event tagged by this call_op_set will not be emitted * from the completion queue wrapper. */ bool hide_from_user; + + // used in async calls + void *user_tag; } grpc_call_op_set; void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, diff --git a/grpc/impl/client_async_reader.c b/grpc/impl/client_async_reader.c index e6baeda924780..ad2db5bdef388 100644 --- a/grpc/impl/client_async_reader.c +++ b/grpc/impl/client_async_reader.c @@ -32,20 +32,24 @@ */ +#include #include "client_async_reader.h" #include "alloc.h" #include "../client_async_reader_public.h" +#include "tag.h" -GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method *const rpc_method, - GRPC_context *const context, const GRPC_message message, GRPC_message *response, void *tag) { +GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method rpc_method, + const GRPC_message request, GRPC_context *context) { grpc_call *call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, - rpc_method->name, + rpc_method.name, "", context->deadline, NULL); + context->call = call; + context->rpc_method = rpc_method; GRPC_client_async_response_reader *reader = GRPC_ALLOC_STRUCT(GRPC_client_async_response_reader, { .context = context, .call = call, @@ -76,7 +80,25 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(reader->init_buf, rpc_method, context, message, response, ops, &nops); + grpc_fill_op_from_call_set(reader->init_buf, &rpc_method, context, request, NULL, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&reader->init_buf), NULL)); return reader; } + +void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + reader->meta_buf.user_tag = tag; + grpc_fill_op_from_call_set(reader->meta_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, NULL, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->context->call, ops, nops, TAG(&reader->finish_buf), NULL)); +} + +void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_message *response, void *tag) { + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + reader->finish_buf.user_tag = tag; + grpc_fill_op_from_call_set(reader->finish_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, response, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->context->call, ops, nops, TAG(&reader->finish_buf), NULL)); +} + diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index 5653a659a3613..f666e994e4bac 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -41,7 +41,18 @@ GRPC_completion_queue *GRPC_completion_queue_create() { return grpc_completion_queue_create(NULL); } -GRPC_completion_queue_next_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok) { +void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq) { + grpc_completion_queue_shutdown(cq); + for (;;) { + void *tag; + bool ok; + if (GRPC_commit_call_and_wait(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; + } + grpc_completion_queue_destroy(cq); +} + +GRPC_completion_queue_next_status GRPC_commit_call_and_wait_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, + void **tag, bool *ok) { for (;;) { grpc_call_op_set *set = NULL; grpc_event ev = grpc_completion_queue_next(cq, deadline, NULL); @@ -62,13 +73,13 @@ GRPC_completion_queue_next_status GRPC_completion_queue_next_deadline(GRPC_compl continue; } - *tag = set->context->user_tag; + *tag = set->user_tag; *ok = ev.success != 0; return GRPC_COMPLETION_QUEUE_GOT_EVENT; } } } -GRPC_completion_queue_next_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok) { - return GRPC_completion_queue_next_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); +GRPC_completion_queue_next_status GRPC_commit_call_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok) { + return GRPC_commit_call_and_wait_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); } diff --git a/grpc/impl/context.c b/grpc/impl/context.c index 385512f6cff62..05c21635db1c8 100644 --- a/grpc/impl/context.c +++ b/grpc/impl/context.c @@ -53,6 +53,10 @@ void GRPC_context_destroy(grpc_context **context) { if ((*context)->status.details) { gpr_free((*context)->status.details); } + if ((*context)->call) { + grpc_call_destroy((*context)->call); + (*context)->call = NULL; + } free(*context); *context = NULL; } diff --git a/grpc/impl/context.h b/grpc/impl/context.h index 58417898cac60..bf7fa31f0066d 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -40,29 +40,32 @@ #include #include "status.h" #include "message.h" +#include "call_ops.h" #include typedef struct grpc_call_op_set grpc_call_op_set; typedef struct grpc_context { - grpc_channel *channel; - grpc_call *call; grpc_metadata *send_metadata_array; grpc_metadata_array recv_metadata_array; grpc_metadata_array trailing_metadata_array; gpr_timespec deadline; grpc_byte_buffer *recv_buffer; - grpc_message *response; - bool got_message; + + // serialization mechanism used in this call GRPC_serializer serialize; GRPC_deserializer deserialize; + + // status of the call grpc_status status; // state tracking bool initial_metadata_received; - - // used in async calls - void *user_tag; + bool message_received; + GRPC_method rpc_method; + grpc_channel *channel; + grpc_message *response; + grpc_call *call; } grpc_context; typedef grpc_context GRPC_context; diff --git a/grpc/impl/tag.h b/grpc/impl/tag.h new file mode 100644 index 0000000000000..a7b38a890b1ac --- /dev/null +++ b/grpc/impl/tag.h @@ -0,0 +1,40 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_TAG_H +#define TEST_GRPC_C_TAG_H + +#define TAG(x) ((void *)x) + +#endif //TEST_GRPC_C_TAG_H diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index 182bcf16ee239..eefe228a3582d 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -32,7 +32,10 @@ */ #include "unary_blocking_call.h" +#include "../grpc_c_public.h" +#include "context.h" #include "call_ops.h" +#include "tag.h" #include "completion_queue.h" #include #include @@ -48,7 +51,7 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c "", context->deadline, NULL); - + context->call = call; grpc_call_op_set set = { { grpc_op_send_metadata, @@ -58,19 +61,19 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c grpc_op_send_close, grpc_op_recv_status }, - context + context, + .user_tag = TAG(&set) }; size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; grpc_fill_op_from_call_set(set, rpc_method, context, message, response, ops, &nops); - context->user_tag = TAG(&set); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); for (;;) { void *tag; bool ok; - GRPC_completion_queue_next_status status = GRPC_completion_queue_next_deadline(cq, context->deadline, &tag, &ok); + GRPC_completion_queue_next_status status = GRPC_commit_call_and_wait_deadline(cq, context->deadline, &tag, &ok); GPR_ASSERT(status == GRPC_COMPLETION_QUEUE_GOT_EVENT); GPR_ASSERT(ok); if (tag == TAG(&set)) { @@ -81,12 +84,9 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c grpc_finish_op_from_call_set(set, context); GPR_ASSERT(context->status.code == GRPC_STATUS_OK); - grpc_completion_queue_shutdown(cq); - for (;;) { - void *tag; - bool ok; - if (GRPC_completion_queue_next(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; - } - grpc_completion_queue_destroy(cq); + GRPC_completion_queue_shutdown_and_destroy(cq); grpc_call_destroy(call); + context->call = NULL; + + return context->status; } diff --git a/grpc/impl/unary_blocking_call.h b/grpc/impl/unary_blocking_call.h index 7038b041d044c..cccb54b1b9d01 100644 --- a/grpc/impl/unary_blocking_call.h +++ b/grpc/impl/unary_blocking_call.h @@ -34,9 +34,6 @@ #ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_H #define TEST_GRPC_C_UNARY_BLOCKING_CALL_H -#include "../grpc_c_public.h" -#include "context.h" -#define TAG(x) ((void *)x) #endif //TEST_GRPC_C_UNARY_BLOCKING_CALL_H diff --git a/main.c b/main.c index ed411ca19c2c6..fa92a76d477d6 100644 --- a/main.c +++ b/main.c @@ -32,27 +32,126 @@ */ #include +#include +#include #include "grpc/grpc_c_public.h" #include "grpc/status_public.h" #include "grpc/context_public.h" #include "grpc/channel_public.h" +#include "grpc/client_async_reader_public.h" + +static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq); +static void *async_say_hello_worker(void *param); int main(int argc, char **argv) { // Local greetings server GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); - GRPC_method method = { NORMAL_RPC, "/helloworld.Greeter/SayHello" }; - GRPC_context *context = GRPC_context_create(chan); - // hardcoded string for "gRPC-C" - char str[] = { 0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43 }; - GRPC_message msg = { str, sizeof(str) }; - // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; - GRPC_unary_blocking_call(chan, &method, context, msg, &resp); - printf("Server said: %s\n", ((char *) resp.data) + 2); // skip to the string in serialized protobuf object - GRPC_message_destroy(&resp); - - GRPC_context_destroy(&context); + { + printf("Testing sync unary call\n"); + GRPC_method method = {NORMAL_RPC, "/helloworld.Greeter/SayHello"}; + GRPC_context *context = GRPC_context_create(chan); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + GRPC_unary_blocking_call(chan, &method, context, msg, &resp); + char *response_string = malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object + GRPC_message_destroy(&resp); + GRPC_context_destroy(&context); + } + + { + printf("Testing async unary call\n"); + GRPC_method method = {NORMAL_RPC, "/helloworld.Greeter/SayHello"}; + GRPC_context *context = GRPC_context_create(chan); + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + // hardcoded string for "async gRPC-C" + char str[] = {0x0A, 0x0C, 0x61, 0x73, 0x79, 0x6E, 0x63, 0x20, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + GRPC_client_async_response_reader *reader = GRPC_unary_async_call(chan, cq, method, msg, context); + GRPC_client_async_finish(reader, &resp, (void*) 12345); + printf("Waiting\n"); + void *tag; + bool ok; + GRPC_commit_call_and_wait(cq, &tag, &ok); + assert(ok); + assert(tag == (void*) 12345); + char *response_string = malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object + free(response_string); + GRPC_message_destroy(&resp); + GRPC_completion_queue_shutdown_and_destroy(cq); + GRPC_context_destroy(&context); + } + + { + printf("Testing async unary call where the worker is in another thread\n"); + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + + pthread_t tid; + pthread_create(&tid, NULL, async_say_hello_worker, cq); + + int i; + for (i = 0; i < 10; i++) { + async_say_hello(chan, cq); + } + + printf("Waiting for thread to terminate\n"); + pthread_join(tid, NULL); + + GRPC_completion_queue_shutdown_and_destroy(cq); + } + GRPC_channel_destroy(&chan); return 0; } + +typedef struct async_client { + GRPC_context *context; + GRPC_message reply; +} async_client; + +static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq) { + GRPC_method method = {NORMAL_RPC, "/helloworld.Greeter/SayHello"}; + GRPC_context *context = GRPC_context_create(chan); + + async_client *client = (async_client *) calloc(1, sizeof(async_client)); + client->context = context; + + // hardcoded string for "async gRPC-C" + char str[] = {0x0A, 0x0C, 0x61, 0x73, 0x79, 0x6E, 0x63, 0x20, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + GRPC_client_async_response_reader *reader = GRPC_unary_async_call(chan, cq, method, msg, context); + GRPC_client_async_finish(reader, &client->reply, client); +} + +static void *async_say_hello_worker(void *param) { + int i; + GRPC_completion_queue *cq = (GRPC_completion_queue *) param; + for (i = 0; i < 10; i++) { + void *tag; + bool ok; + GRPC_commit_call_and_wait(cq, &tag, &ok); + assert(ok); + assert(tag != NULL); + async_client *client = (async_client *) tag; + char *response_string = malloc(client->reply.length - 2 + 1); + memcpy(response_string, ((char *) client->reply.data) + 2, client->reply.length - 2); + response_string[client->reply.length - 2] = '\0'; + printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object + free(response_string); + GRPC_message_destroy(&client->reply); + GRPC_context_destroy(&client->context); + free(client); + } + return NULL; +} From 2435fcd14a8f73106afe68c90a1a08958bd1ac57 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 22 Jun 2016 17:38:24 -0700 Subject: [PATCH 018/202] [RUNTIME] changing header names --- grpc/grpc_c_public.h | 2 - ...ient_async_reader.c => unary_async_call.c} | 4 +- ...ient_async_reader.h => unary_async_call.h} | 0 ...der_public.h => unary_async_call_public.h} | 0 grpc/unary_blocking_call_public.h | 43 +++++++++++++++++++ main.c | 3 +- 6 files changed, 47 insertions(+), 5 deletions(-) rename grpc/impl/{client_async_reader.c => unary_async_call.c} (98%) rename grpc/impl/{client_async_reader.h => unary_async_call.h} (100%) rename grpc/{client_async_reader_public.h => unary_async_call_public.h} (100%) create mode 100644 grpc/unary_blocking_call_public.h diff --git a/grpc/grpc_c_public.h b/grpc/grpc_c_public.h index effc136eda451..4f44b11dabbb5 100644 --- a/grpc/grpc_c_public.h +++ b/grpc/grpc_c_public.h @@ -52,7 +52,5 @@ typedef struct GRPC_method { const char* name; } GRPC_method; -GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, - GRPC_context *const context, const GRPC_message message, GRPC_message *response); #endif //TEST_GRPC_C_GRPC_C_PUBLIC_H diff --git a/grpc/impl/client_async_reader.c b/grpc/impl/unary_async_call.c similarity index 98% rename from grpc/impl/client_async_reader.c rename to grpc/impl/unary_async_call.c index ad2db5bdef388..e716011cd38d9 100644 --- a/grpc/impl/client_async_reader.c +++ b/grpc/impl/unary_async_call.c @@ -33,9 +33,9 @@ #include -#include "client_async_reader.h" +#include "unary_async_call.h" #include "alloc.h" -#include "../client_async_reader_public.h" +#include "../unary_async_call_public.h" #include "tag.h" GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method rpc_method, diff --git a/grpc/impl/client_async_reader.h b/grpc/impl/unary_async_call.h similarity index 100% rename from grpc/impl/client_async_reader.h rename to grpc/impl/unary_async_call.h diff --git a/grpc/client_async_reader_public.h b/grpc/unary_async_call_public.h similarity index 100% rename from grpc/client_async_reader_public.h rename to grpc/unary_async_call_public.h diff --git a/grpc/unary_blocking_call_public.h b/grpc/unary_blocking_call_public.h new file mode 100644 index 0000000000000..5363b186dec9b --- /dev/null +++ b/grpc/unary_blocking_call_public.h @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H +#define TEST_GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H + +#include "grpc_c_public.h" + +GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, + GRPC_context *const context, const GRPC_message message, GRPC_message *response); + +#endif //TEST_GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H diff --git a/main.c b/main.c index fa92a76d477d6..75de861424b94 100644 --- a/main.c +++ b/main.c @@ -38,7 +38,8 @@ #include "grpc/status_public.h" #include "grpc/context_public.h" #include "grpc/channel_public.h" -#include "grpc/client_async_reader_public.h" +#include "grpc/unary_async_call_public.h" +#include "grpc/unary_blocking_call_public.h" static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq); static void *async_say_hello_worker(void *param); From 7c6dfc0afd473c4fa6b2aa4f146d0fa2c61c88dd Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 22 Jun 2016 17:59:25 -0700 Subject: [PATCH 019/202] no internal reference in public headers --- grpc/completion_queue_public.h | 3 ++- grpc/impl/status.h | 9 +-------- grpc/status_public.h | 13 +++++++++---- grpc/unary_async_call_public.h | 2 +- main.c | 1 + 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h index 6925b31593e33..6c5b6177f8099 100644 --- a/grpc/completion_queue_public.h +++ b/grpc/completion_queue_public.h @@ -37,7 +37,8 @@ #include -typedef grpc_completion_queue GRPC_completion_queue; +typedef struct grpc_completion_queue GRPC_completion_queue; +typedef struct gpr_timespec gpr_timespec; /// Tri-state return for GRPC_commit_call_and_wait typedef enum GRPC_completion_queue_next_status { diff --git a/grpc/impl/status.h b/grpc/impl/status.h index 5ce06b42e6d14..d46b85f139d37 100644 --- a/grpc/impl/status.h +++ b/grpc/impl/status.h @@ -36,13 +36,6 @@ #define TEST_GRPC_C_STATUS_H #include - -typedef struct grpc_status { - grpc_status_code code; - char *details; - size_t details_length; -} grpc_status; - -typedef grpc_status GRPC_status; +#include "../status_public.h" #endif //TEST_GRPC_C_STATUS_H diff --git a/grpc/status_public.h b/grpc/status_public.h index 22e1afba0ee90..25e638dc0e70b 100644 --- a/grpc/status_public.h +++ b/grpc/status_public.h @@ -32,10 +32,15 @@ */ -#ifndef TEST_GRPC_C_STATUS_CODE_PUBLIC_H -#define TEST_GRPC_C_STATUS_CODE_PUBLIC_H +#ifndef TEST_GRPC_C_STATUS_PUBLIC_H +#define TEST_GRPC_C_STATUS_PUBLIC_H -#include "status_code_public.h" -#include "impl/status.h" +typedef struct grpc_status { + grpc_status_code code; + char *details; + size_t details_length; +} grpc_status; + +typedef grpc_status GRPC_status; #endif //TEST_GRPC_C_STATUS_CODE_PUBLIC_H diff --git a/grpc/unary_async_call_public.h b/grpc/unary_async_call_public.h index d18812ea5acce..8e515f9f6d488 100644 --- a/grpc/unary_async_call_public.h +++ b/grpc/unary_async_call_public.h @@ -35,7 +35,7 @@ #ifndef TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H #define TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H -#include "impl/completion_queue.h" +#include "completion_queue_public.h" #include "grpc_c_public.h" typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; diff --git a/main.c b/main.c index 75de861424b94..9fc531b301d69 100644 --- a/main.c +++ b/main.c @@ -35,6 +35,7 @@ #include #include #include "grpc/grpc_c_public.h" +#include "grpc/status_code_public.h" #include "grpc/status_public.h" #include "grpc/context_public.h" #include "grpc/channel_public.h" From a8a1a9c57ac2720211575976d9be59108bb93e2b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 24 Jun 2016 18:46:44 -0700 Subject: [PATCH 020/202] better naming of functions --- grpc/completion_queue_public.h | 11 ++++++----- grpc/impl/completion_queue.c | 11 ++++++----- grpc/impl/id_serialization.c | 4 ++-- grpc/impl/unary_blocking_call.c | 2 +- grpc/serialization_public.h | 4 ++-- main.c | 9 +++++++-- 6 files changed, 24 insertions(+), 17 deletions(-) diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h index 6c5b6177f8099..74ec867188d27 100644 --- a/grpc/completion_queue_public.h +++ b/grpc/completion_queue_public.h @@ -40,18 +40,19 @@ typedef struct grpc_completion_queue GRPC_completion_queue; typedef struct gpr_timespec gpr_timespec; -/// Tri-state return for GRPC_commit_call_and_wait +/// Tri-state return for GRPC_commit_ops_and_wait typedef enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_SHUTDOWN, ///< The completion queue has been shutdown. GRPC_COMPLETION_QUEUE_GOT_EVENT, ///< Got a new event; \a tag will be filled in with its ///< associated value; \a ok indicating its success. GRPC_COMPLETION_QUEUE_TIMEOUT ///< deadline was reached. -} GRPC_completion_queue_next_status; +} GRPC_completion_queue_operation_status; GRPC_completion_queue *GRPC_completion_queue_create(); void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq); -GRPC_completion_queue_next_status GRPC_commit_call_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok); -GRPC_completion_queue_next_status GRPC_commit_call_and_wait_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, - void **tag, bool *ok); +GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok); +GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_completion_queue *cq, + gpr_timespec deadline, + void **tag, bool *ok); #endif //TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index f666e994e4bac..c6f3910067cb2 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -46,13 +46,14 @@ void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq) { for (;;) { void *tag; bool ok; - if (GRPC_commit_call_and_wait(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; + if (GRPC_commit_ops_and_wait(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; } grpc_completion_queue_destroy(cq); } -GRPC_completion_queue_next_status GRPC_commit_call_and_wait_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, - void **tag, bool *ok) { +GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_completion_queue *cq, + gpr_timespec deadline, + void **tag, bool *ok) { for (;;) { grpc_call_op_set *set = NULL; grpc_event ev = grpc_completion_queue_next(cq, deadline, NULL); @@ -80,6 +81,6 @@ GRPC_completion_queue_next_status GRPC_commit_call_and_wait_deadline(GRPC_comple } } -GRPC_completion_queue_next_status GRPC_commit_call_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok) { - return GRPC_commit_call_and_wait_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); +GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok) { + return GRPC_commit_ops_and_wait_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); } diff --git a/grpc/impl/id_serialization.c b/grpc/impl/id_serialization.c index 53b2ba6cb6a6f..b74020fb17df7 100644 --- a/grpc/impl/id_serialization.c +++ b/grpc/impl/id_serialization.c @@ -34,13 +34,13 @@ #include #include "id_serialization.h" -void GRPC_id_serialize(grpc_message input, grpc_message *output) { +void GRPC_id_serialize(const grpc_message input, grpc_message *output) { output->data = malloc(input.length); memcpy(output->data, input.data, input.length); output->length = input.length; } -void GRPC_id_deserialize(grpc_message input, grpc_message *output) { +void GRPC_id_deserialize(const grpc_message input, grpc_message *output) { output->data = malloc(input.length); memcpy(output->data, input.data, input.length); output->length = input.length; diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index eefe228a3582d..a7fa00e34566f 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -73,7 +73,7 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c for (;;) { void *tag; bool ok; - GRPC_completion_queue_next_status status = GRPC_commit_call_and_wait_deadline(cq, context->deadline, &tag, &ok); + GRPC_completion_queue_operation_status status = GRPC_commit_ops_and_wait_deadline(cq, context->deadline, &tag, &ok); GPR_ASSERT(status == GRPC_COMPLETION_QUEUE_GOT_EVENT); GPR_ASSERT(ok); if (tag == TAG(&set)) { diff --git a/grpc/serialization_public.h b/grpc/serialization_public.h index 05e1af4d72cfb..f7c45b67c7788 100644 --- a/grpc/serialization_public.h +++ b/grpc/serialization_public.h @@ -37,7 +37,7 @@ #include "grpc_c_public.h" -typedef void (*GRPC_serializer)(GRPC_message input, GRPC_message *output); -typedef void (*GRPC_deserializer)(GRPC_message input, GRPC_message *output); +typedef void (*GRPC_serializer)(const GRPC_message input, GRPC_message *output); +typedef void (*GRPC_deserializer)(const GRPC_message input, GRPC_message *output); #endif //TEST_GRPC_C_SERIALIZATION_PUBLIC_H diff --git a/main.c b/main.c index 9fc531b301d69..23ca8cc29b028 100644 --- a/main.c +++ b/main.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "grpc/grpc_c_public.h" #include "grpc/status_code_public.h" #include "grpc/status_public.h" @@ -82,7 +83,7 @@ int main(int argc, char **argv) { printf("Waiting\n"); void *tag; bool ok; - GRPC_commit_call_and_wait(cq, &tag, &ok); + GRPC_commit_ops_and_wait(cq, &tag, &ok); assert(ok); assert(tag == (void*) 12345); char *response_string = malloc(resp.length - 2 + 1); @@ -142,7 +143,11 @@ static void *async_say_hello_worker(void *param) { for (i = 0; i < 10; i++) { void *tag; bool ok; - GRPC_commit_call_and_wait(cq, &tag, &ok); + GRPC_completion_queue_operation_status status = GRPC_commit_ops_and_wait(cq, &tag, &ok); + if (status == GRPC_COMPLETION_QUEUE_SHUTDOWN) { + printf("Worker thread shutting down\n"); + return NULL; + } assert(ok); assert(tag != NULL); async_client *client = (async_client *) tag; From 3039429502ce7658ca3c8c2f3d27db19af3a7622 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 27 Jun 2016 16:18:48 -0700 Subject: [PATCH 021/202] [RUNTIME] implement client streaming blocking call --- grpc/client_streaming_blocking_call_public.h | 52 ++++++++ grpc/completion_queue_public.h | 2 + grpc/impl/call_ops.h | 1 + grpc/impl/client_streaming_blocking_call.c | 119 +++++++++++++++++++ grpc/impl/client_streaming_blocking_call.h | 50 ++++++++ grpc/impl/completion_queue.c | 20 ++++ grpc/impl/completion_queue.h | 2 + grpc/impl/unary_async_call.h | 1 + main.c | 50 +++++++- 9 files changed, 295 insertions(+), 2 deletions(-) create mode 100644 grpc/client_streaming_blocking_call_public.h create mode 100644 grpc/impl/client_streaming_blocking_call.c create mode 100644 grpc/impl/client_streaming_blocking_call.h diff --git a/grpc/client_streaming_blocking_call_public.h b/grpc/client_streaming_blocking_call_public.h new file mode 100644 index 0000000000000..a12a397e53069 --- /dev/null +++ b/grpc/client_streaming_blocking_call_public.h @@ -0,0 +1,52 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#define TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H + +#include +#include "grpc_c_public.h" + +typedef struct grpc_client_writer GRPC_client_writer; + +GRPC_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, + const GRPC_method rpc_method, + GRPC_context *const context, + GRPC_message *response); + +bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC_message request); + +GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer); + +#endif //TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/grpc/completion_queue_public.h b/grpc/completion_queue_public.h index 74ec867188d27..97f876b1cfd74 100644 --- a/grpc/completion_queue_public.h +++ b/grpc/completion_queue_public.h @@ -49,6 +49,8 @@ typedef enum GRPC_completion_queue_next_status { } GRPC_completion_queue_operation_status; GRPC_completion_queue *GRPC_completion_queue_create(); +void GRPC_completion_queue_shutdown(GRPC_completion_queue *cq); +void GRPC_completion_queue_destroy(GRPC_completion_queue *cq); void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq); GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok); GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_completion_queue *cq, diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index d3b4fd5d67b73..e1837b410b850 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -64,6 +64,7 @@ typedef struct grpc_call_op_set { // used in async calls void *user_tag; + bool *user_done; // for clients reading a stream } grpc_call_op_set; void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, diff --git a/grpc/impl/client_streaming_blocking_call.c b/grpc/impl/client_streaming_blocking_call.c new file mode 100644 index 0000000000000..41aaf3f4cabfa --- /dev/null +++ b/grpc/impl/client_streaming_blocking_call.c @@ -0,0 +1,119 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include +#include "client_streaming_blocking_call.h" +#include "tag.h" +#include "completion_queue.h" +#include "alloc.h" + +grpc_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, + const GRPC_method rpc_method, + GRPC_context *const context, + GRPC_message *response) { + + grpc_completion_queue *cq = GRPC_completion_queue_create(); + grpc_call *call = grpc_channel_create_call(channel, + NULL, + GRPC_PROPAGATE_DEFAULTS, + cq, + rpc_method.name, + "", + context->deadline, + NULL); + context->call = call; + context->rpc_method = rpc_method; + + grpc_call_op_set set = { + { + grpc_op_send_metadata + }, + .context = context, + .user_tag = &set + }; + + grpc_client_writer *writer = GRPC_ALLOC_STRUCT(grpc_client_writer, { + .context = context, + .call = call, + .finish_ops = { + { + grpc_op_recv_metadata, + grpc_op_recv_object, + grpc_op_send_close, + grpc_op_recv_status + }, + .context = context, + }, + .cq = cq, + .response = response + }); + writer->finish_ops.user_tag = &writer->finish_ops; + + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(set, &rpc_method, context, (GRPC_message) {}, NULL, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); + GRPC_completion_queue_pluck_internal(cq, TAG(&set)); + return writer; +} + +bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC_message request) { + grpc_call_op_set set = { + { + grpc_op_send_object + }, + .context = writer->context, + .user_tag = &set + }; + + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(set, &writer->context->rpc_method, writer->context, request, NULL, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(writer->call, ops, nops, TAG(&set), NULL)); + return GRPC_completion_queue_pluck_internal(writer->cq, TAG(&set)); +} + +GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(writer->finish_ops, &writer->context->rpc_method, writer->context, (GRPC_message) {}, writer->response, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(writer->call, ops, nops, TAG(&writer->finish_ops), NULL)); + GRPC_completion_queue_pluck_internal(writer->cq, TAG(&writer->finish_ops)); + GRPC_completion_queue_shutdown_and_destroy(writer->cq); + grpc_call_destroy(writer->call); + writer->context->call = NULL; + grpc_context *context = writer->context; + free(writer); + return context->status; +} diff --git a/grpc/impl/client_streaming_blocking_call.h b/grpc/impl/client_streaming_blocking_call.h new file mode 100644 index 0000000000000..065cc1c0b15e9 --- /dev/null +++ b/grpc/impl/client_streaming_blocking_call.h @@ -0,0 +1,50 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H +#define TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H + +#include "../client_streaming_blocking_call_public.h" +#include "call_ops.h" + +typedef struct grpc_client_writer { + grpc_call_op_set finish_ops; + + grpc_context *context; + grpc_call *call; + grpc_completion_queue *cq; + grpc_message *response; +} grpc_client_writer; + +#endif //TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index c6f3910067cb2..61562610a3447 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -41,6 +41,14 @@ GRPC_completion_queue *GRPC_completion_queue_create() { return grpc_completion_queue_create(NULL); } +void GRPC_completion_queue_shutdown(GRPC_completion_queue *cq) { + grpc_completion_queue_shutdown(cq); +} + +void GRPC_completion_queue_destroy(GRPC_completion_queue *cq) { + grpc_completion_queue_destroy(cq); +} + void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq) { grpc_completion_queue_shutdown(cq); for (;;) { @@ -84,3 +92,15 @@ GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_co GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok) { return GRPC_commit_ops_and_wait_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); } + +bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag) { + gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_REALTIME); + grpc_event ev = grpc_completion_queue_pluck(cq, tag, deadline, NULL); + grpc_call_op_set *set = (grpc_call_op_set *) ev.tag; + GPR_ASSERT(set != NULL); + GPR_ASSERT(set->context != NULL); + GPR_ASSERT(set->user_tag == ev.tag); + // run post-processing + grpc_finish_op_from_call_set(*set, set->context); + return ev.success != 0; +} diff --git a/grpc/impl/completion_queue.h b/grpc/impl/completion_queue.h index 07074e10723a9..5a7a67f5d180b 100644 --- a/grpc/impl/completion_queue.h +++ b/grpc/impl/completion_queue.h @@ -37,4 +37,6 @@ #include "../completion_queue_public.h" +bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag); + #endif //TEST_GRPC_C_COMPLETION_QUEUE_H diff --git a/grpc/impl/unary_async_call.h b/grpc/impl/unary_async_call.h index 0adc022b5949f..a1bf80636193a 100644 --- a/grpc/impl/unary_async_call.h +++ b/grpc/impl/unary_async_call.h @@ -42,6 +42,7 @@ typedef struct grpc_client_async_response_reader { grpc_call_op_set meta_buf; grpc_call_op_set finish_buf; + grpc_completion_queue *cq; grpc_context *context; grpc_call *call; } grpc_client_async_response_reader; diff --git a/main.c b/main.c index 23ca8cc29b028..4c6a424237826 100644 --- a/main.c +++ b/main.c @@ -35,13 +35,14 @@ #include #include #include -#include "grpc/grpc_c_public.h" #include "grpc/status_code_public.h" +#include "grpc/grpc_c_public.h" #include "grpc/status_public.h" #include "grpc/context_public.h" #include "grpc/channel_public.h" #include "grpc/unary_async_call_public.h" #include "grpc/unary_blocking_call_public.h" +#include "grpc/client_streaming_blocking_call_public.h" static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq); static void *async_say_hello_worker(void *param); @@ -59,7 +60,8 @@ int main(int argc, char **argv) { GRPC_message msg = {str, sizeof(str)}; // using char array to hold RPC result while protobuf is not there yet GRPC_message resp; - GRPC_unary_blocking_call(chan, &method, context, msg, &resp); + GRPC_status status = GRPC_unary_blocking_call(chan, &method, context, msg, &resp); + assert(status.code == GRPC_STATUS_OK); char *response_string = malloc(resp.length - 2 + 1); memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); response_string[resp.length - 2] = '\0'; @@ -114,6 +116,50 @@ int main(int argc, char **argv) { GRPC_completion_queue_shutdown_and_destroy(cq); } + { + printf("Testing async unary call where the worker thread handles completion queue shutdown\n"); + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + + pthread_t tid; + pthread_create(&tid, NULL, async_say_hello_worker, cq); + + int i; + for (i = 0; i < 5; i++) { + async_say_hello(chan, cq); + } + + GRPC_completion_queue_shutdown(cq); + printf("Waiting for thread to terminate\n"); + pthread_join(tid, NULL); + GRPC_completion_queue_destroy(cq); + } + + { + printf("Testing blocking client streaming call\n"); + GRPC_method method = {NORMAL_RPC, "/helloworld.ClientStreamingGreeter/sayHello"}; + GRPC_context *context = GRPC_context_create(chan); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + + GRPC_client_writer *writer = GRPC_client_streaming_blocking_call(chan, method, context, &resp); + int i; + for (i = 0; i < 3; i++) { + GRPC_client_streaming_blocking_write(writer, msg); + } + GRPC_status status = GRPC_client_writer_terminate(writer); + assert(status.code == GRPC_STATUS_OK); + + char *response_string = malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object + GRPC_message_destroy(&resp); + GRPC_context_destroy(&context); + } + GRPC_channel_destroy(&chan); return 0; } From 081177827671aab98b09e5a6075328b1125ecf82 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 27 Jun 2016 16:30:22 -0700 Subject: [PATCH 022/202] Move response from context to call_op_set. Fix #1 --- grpc/impl/call_ops.c | 60 ++++++++++------------ grpc/impl/call_ops.h | 13 +++-- grpc/impl/client_streaming_blocking_call.c | 6 +-- grpc/impl/completion_queue.c | 4 +- grpc/impl/context.h | 2 - grpc/impl/unary_async_call.c | 6 +-- grpc/impl/unary_blocking_call.c | 3 +- 7 files changed, 46 insertions(+), 48 deletions(-) diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index da14759fd619e..e7bf5c45c96bf 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -36,11 +36,7 @@ #include #include -static void op_noop_finish(grpc_context *context, bool *status, int max_message_size) { - -} - -static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op->flags = 0; @@ -48,7 +44,7 @@ static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_c return true; } -static void op_send_metadata_finish(grpc_context *context, bool *status, int max_message_size) { +static void op_send_metadata_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } @@ -57,7 +53,7 @@ const grpc_op_manager grpc_op_send_metadata = { op_send_metadata_finish }; -static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_MESSAGE; grpc_message serialized; @@ -74,7 +70,7 @@ static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_con return true; } -static void op_send_object_finish(grpc_context *context, bool *status, int max_message_size) { +static void op_send_object_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } @@ -83,7 +79,7 @@ const grpc_op_manager grpc_op_send_object = { op_send_object_finish }; -static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { if (context->initial_metadata_received) return false; op->op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array_init(&context->recv_metadata_array); @@ -93,7 +89,7 @@ static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_c return true; } -static void op_recv_metadata_finish(grpc_context *context, bool *status, int max_message_size) { +static void op_recv_metadata_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { context->initial_metadata_received = true; } @@ -102,35 +98,35 @@ const grpc_op_manager grpc_op_recv_metadata = { op_recv_metadata_finish }; -static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { context->message_received = false; - context->response = response; + set->response = response; op->op = GRPC_OP_RECV_MESSAGE; - context->recv_buffer = NULL; - op->data.recv_message = &context->recv_buffer; + set->recv_buffer = NULL; + op->data.recv_message = &set->recv_buffer; op->flags = 0; op->reserved = NULL; return true; } -static void op_recv_object_finish(grpc_context *context, bool *status, int max_message_size) { - if (context->recv_buffer) { +static void op_recv_object_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { + if (set->recv_buffer) { GPR_ASSERT(context->message_received == false); // deserialize context->message_received = true; grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, context->recv_buffer); + grpc_byte_buffer_reader_init(&reader, set->recv_buffer); gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); size_t len = GPR_SLICE_LENGTH(slice_recv); - context->deserialize((grpc_message) { resp, len }, context->response); + context->deserialize((grpc_message) { resp, len }, set->response); gpr_slice_unref(slice_recv); grpc_byte_buffer_reader_destroy(&reader); - grpc_byte_buffer_destroy(context->recv_buffer); - context->recv_buffer = NULL; + grpc_byte_buffer_destroy(set->recv_buffer); + set->recv_buffer = NULL; } } @@ -139,14 +135,14 @@ const grpc_op_manager grpc_op_recv_object = { op_recv_object_finish }; -static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; return true; } -static void op_send_close_finish(grpc_context *context, bool *status, int max_message_size) { +static void op_send_close_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } const grpc_op_manager grpc_op_send_close = { @@ -154,7 +150,7 @@ const grpc_op_manager grpc_op_send_close = { op_send_close_finish }; -static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, const grpc_message message, grpc_message *response) { +static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; grpc_metadata_array_init(&context->trailing_metadata_array); context->status.details = NULL; @@ -169,7 +165,7 @@ static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_con return true; } -static void op_recv_status_finish(grpc_context *context, bool *status, int max_message_size) { +static void op_recv_status_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } const grpc_op_manager grpc_op_recv_status = { @@ -177,14 +173,14 @@ const grpc_op_manager grpc_op_recv_status = { op_recv_status_finish }; -void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops) { size_t manager = 0; size_t filled = 0; while (manager < GRPC_MAX_OP_COUNT) { - if (set.op_managers[manager].fill == NULL && set.op_managers[manager].finish == NULL) break; // end of call set - if (set.op_managers[manager].fill == NULL) continue; - bool result = set.op_managers[manager].fill(&ops[filled], rpc_method, context, message, response); + if (set->op_managers[manager].fill == NULL && set->op_managers[manager].finish == NULL) break; // end of call set + if (set->op_managers[manager].fill == NULL) continue; + bool result = set->op_managers[manager].fill(&ops[filled], rpc_method, context, set, message, response); manager++; if (result) filled++; @@ -192,14 +188,14 @@ void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *r *nops = filled; } -void grpc_finish_op_from_call_set(const grpc_call_op_set set, grpc_context *context) { +void grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context) { size_t count = 0; while (count < GRPC_MAX_OP_COUNT) { - if (set.op_managers[count].fill == NULL && set.op_managers[count].finish == NULL) break; // end of call set - if (set.op_managers[count].finish == NULL) continue; + if (set->op_managers[count].fill == NULL && set->op_managers[count].finish == NULL) break; // end of call set + if (set->op_managers[count].finish == NULL) continue; size_t size = 100; // todo(yifeit): hook up this value bool status; - set.op_managers[count].finish(context, &status, size); + set->op_managers[count].finish(context, set, &status, size); count++; } } diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index e1837b410b850..3fc568eaf2c15 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -43,9 +43,10 @@ typedef GRPC_method grpc_method; typedef struct grpc_context grpc_context; +typedef struct grpc_call_op_set grpc_call_op_set; -typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, const grpc_message message, grpc_message *response); -typedef void (*grpc_op_finisher)(grpc_context *, bool *status, int max_message_size); +typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, grpc_call_op_set *, const grpc_message message, grpc_message *response); +typedef void (*grpc_op_finisher)(grpc_context *, grpc_call_op_set *, bool *status, int max_message_size); typedef struct grpc_op_manager { const grpc_op_filler fill; @@ -58,6 +59,10 @@ typedef struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; grpc_context * const context; + /* these are used by individual operations */ + grpc_message *response; + grpc_byte_buffer *recv_buffer; + /* if this is true (default false), the event tagged by this call_op_set will not be emitted * from the completion queue wrapper. */ bool hide_from_user; @@ -67,10 +72,10 @@ typedef struct grpc_call_op_set { bool *user_done; // for clients reading a stream } grpc_call_op_set; -void grpc_fill_op_from_call_set(const grpc_call_op_set set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops); -void grpc_finish_op_from_call_set(const grpc_call_op_set set, grpc_context *context); +void grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context); /* list of operations */ diff --git a/grpc/impl/client_streaming_blocking_call.c b/grpc/impl/client_streaming_blocking_call.c index 41aaf3f4cabfa..3c24df4a02cd2 100644 --- a/grpc/impl/client_streaming_blocking_call.c +++ b/grpc/impl/client_streaming_blocking_call.c @@ -82,7 +82,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, &rpc_method, context, (GRPC_message) {}, NULL, ops, &nops); + grpc_fill_op_from_call_set(&set, &rpc_method, context, (GRPC_message) {}, NULL, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); GRPC_completion_queue_pluck_internal(cq, TAG(&set)); return writer; @@ -99,7 +99,7 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, &writer->context->rpc_method, writer->context, request, NULL, ops, &nops); + grpc_fill_op_from_call_set(&set, &writer->context->rpc_method, writer->context, request, NULL, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(writer->call, ops, nops, TAG(&set), NULL)); return GRPC_completion_queue_pluck_internal(writer->cq, TAG(&set)); } @@ -107,7 +107,7 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(writer->finish_ops, &writer->context->rpc_method, writer->context, (GRPC_message) {}, writer->response, ops, &nops); + grpc_fill_op_from_call_set(&writer->finish_ops, &writer->context->rpc_method, writer->context, (GRPC_message) {}, writer->response, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(writer->call, ops, nops, TAG(&writer->finish_ops), NULL)); GRPC_completion_queue_pluck_internal(writer->cq, TAG(&writer->finish_ops)); GRPC_completion_queue_shutdown_and_destroy(writer->cq); diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index 61562610a3447..4fc4bb86246e4 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -75,7 +75,7 @@ GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_co GPR_ASSERT(set != NULL); GPR_ASSERT(set->context != NULL); // run post-processing for async operations - grpc_finish_op_from_call_set(*set, set->context); + grpc_finish_op_from_call_set(set, set->context); if (set->hide_from_user) { // don't touch user supplied pointers @@ -101,6 +101,6 @@ bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag) GPR_ASSERT(set->context != NULL); GPR_ASSERT(set->user_tag == ev.tag); // run post-processing - grpc_finish_op_from_call_set(*set, set->context); + grpc_finish_op_from_call_set(set, set->context); return ev.success != 0; } diff --git a/grpc/impl/context.h b/grpc/impl/context.h index bf7fa31f0066d..cf8188dd88187 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -50,7 +50,6 @@ typedef struct grpc_context { grpc_metadata_array recv_metadata_array; grpc_metadata_array trailing_metadata_array; gpr_timespec deadline; - grpc_byte_buffer *recv_buffer; // serialization mechanism used in this call GRPC_serializer serialize; @@ -64,7 +63,6 @@ typedef struct grpc_context { bool message_received; GRPC_method rpc_method; grpc_channel *channel; - grpc_message *response; grpc_call *call; } grpc_context; diff --git a/grpc/impl/unary_async_call.c b/grpc/impl/unary_async_call.c index e716011cd38d9..3cbebd6b3fc25 100644 --- a/grpc/impl/unary_async_call.c +++ b/grpc/impl/unary_async_call.c @@ -80,7 +80,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(reader->init_buf, &rpc_method, context, request, NULL, ops, &nops); + grpc_fill_op_from_call_set(&reader->init_buf, &rpc_method, context, request, NULL, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&reader->init_buf), NULL)); return reader; @@ -90,7 +90,7 @@ void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; reader->meta_buf.user_tag = tag; - grpc_fill_op_from_call_set(reader->meta_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, NULL, ops, &nops); + grpc_fill_op_from_call_set(&reader->meta_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, NULL, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->context->call, ops, nops, TAG(&reader->finish_buf), NULL)); } @@ -98,7 +98,7 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_me size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; reader->finish_buf.user_tag = tag; - grpc_fill_op_from_call_set(reader->finish_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, response, ops, &nops); + grpc_fill_op_from_call_set(&reader->finish_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, response, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->context->call, ops, nops, TAG(&reader->finish_buf), NULL)); } diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index a7fa00e34566f..0585ea6649469 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -67,7 +67,7 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, rpc_method, context, message, response, ops, &nops); + grpc_fill_op_from_call_set(&set, rpc_method, context, message, response, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); for (;;) { @@ -81,7 +81,6 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c } } - grpc_finish_op_from_call_set(set, context); GPR_ASSERT(context->status.code == GRPC_STATUS_OK); GRPC_completion_queue_shutdown_and_destroy(cq); From 8b8189c2819a9907765d2cf1b39456dfac70b725 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 27 Jun 2016 17:01:59 -0700 Subject: [PATCH 023/202] [RUNTIME] implement server streaming blocking call --- grpc/impl/call_ops.c | 6 +- grpc/impl/call_ops.h | 1 + grpc/impl/context.h | 1 - grpc/impl/server_streaming_blocking_call.c | 132 +++++++++++++++++++ grpc/impl/server_streaming_blocking_call.h | 47 +++++++ grpc/server_streaming_blocking_call_public.h | 49 +++++++ main.c | 28 ++++ 7 files changed, 260 insertions(+), 4 deletions(-) create mode 100644 grpc/impl/server_streaming_blocking_call.c create mode 100644 grpc/impl/server_streaming_blocking_call.h create mode 100644 grpc/server_streaming_blocking_call_public.h diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index e7bf5c45c96bf..0bdf4efe49ad3 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -99,7 +99,7 @@ const grpc_op_manager grpc_op_recv_metadata = { }; static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { - context->message_received = false; + set->message_received = false; set->response = response; op->op = GRPC_OP_RECV_MESSAGE; set->recv_buffer = NULL; @@ -111,9 +111,9 @@ static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_con static void op_recv_object_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { if (set->recv_buffer) { - GPR_ASSERT(context->message_received == false); + GPR_ASSERT(set->message_received == false); // deserialize - context->message_received = true; + set->message_received = true; grpc_byte_buffer_reader reader; grpc_byte_buffer_reader_init(&reader, set->recv_buffer); diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 3fc568eaf2c15..d13cfd5686854 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -62,6 +62,7 @@ typedef struct grpc_call_op_set { /* these are used by individual operations */ grpc_message *response; grpc_byte_buffer *recv_buffer; + bool message_received; /* if this is true (default false), the event tagged by this call_op_set will not be emitted * from the completion queue wrapper. */ diff --git a/grpc/impl/context.h b/grpc/impl/context.h index cf8188dd88187..84e67d5ed1b48 100644 --- a/grpc/impl/context.h +++ b/grpc/impl/context.h @@ -60,7 +60,6 @@ typedef struct grpc_context { // state tracking bool initial_metadata_received; - bool message_received; GRPC_method rpc_method; grpc_channel *channel; grpc_call *call; diff --git a/grpc/impl/server_streaming_blocking_call.c b/grpc/impl/server_streaming_blocking_call.c new file mode 100644 index 0000000000000..46f65a36ecc95 --- /dev/null +++ b/grpc/impl/server_streaming_blocking_call.c @@ -0,0 +1,132 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include +#include "server_streaming_blocking_call.h" +#include "../completion_queue_public.h" +#include "alloc.h" +#include "completion_queue.h" +#include "tag.h" + +GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, + const GRPC_method rpc_method, + GRPC_context *const context, + const GRPC_message request) { + grpc_completion_queue *cq = GRPC_completion_queue_create(); + grpc_call *call = grpc_channel_create_call(channel, + NULL, + GRPC_PROPAGATE_DEFAULTS, + cq, + rpc_method.name, + "", + context->deadline, + NULL); + context->call = call; + context->rpc_method = rpc_method; + + grpc_call_op_set set = { + { + grpc_op_send_metadata, + grpc_op_send_object, + grpc_op_send_close + }, + .context = context, + .user_tag = &set + }; + + grpc_client_reader *reader = GRPC_ALLOC_STRUCT(grpc_client_reader, { + .context = context, + .call = call, + .cq = cq, + }); + + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(&set, &rpc_method, context, request, NULL, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); + GRPC_completion_queue_pluck_internal(cq, TAG(&set)); + return reader; +} + +bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_message *response) { + grpc_call_op_set set_meta = { + { + grpc_op_recv_metadata, + grpc_op_recv_object + }, + .context = reader->context, + .user_tag = &set_meta + }; + grpc_call_op_set set_no_meta = { + { + grpc_op_recv_metadata, + grpc_op_recv_object + }, + .context = reader->context, + .user_tag = &set_no_meta + }; + grpc_call_op_set *set = NULL; + if (reader->context->initial_metadata_received == false) { + set = &set_meta; + } else { + set = &set_no_meta; + } + + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(set, &reader->context->rpc_method, reader->context, (GRPC_message) {}, response, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->call, ops, nops, TAG(set), NULL)); + return GRPC_completion_queue_pluck_internal(reader->cq, TAG(set)) && set->message_received; +} + +GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { + grpc_call_op_set set = { + { + grpc_op_recv_status + }, + .context = reader->context, + .user_tag = &set + }; + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(&set, &reader->context->rpc_method, reader->context, (GRPC_message) {}, NULL, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->call, ops, nops, TAG(&set), NULL)); + GRPC_completion_queue_pluck_internal(reader->cq, TAG(&set)); + GRPC_completion_queue_shutdown_and_destroy(reader->cq); + grpc_call_destroy(reader->call); + reader->context->call = NULL; + grpc_context *context = reader->context; + free(reader); + return context->status; +} diff --git a/grpc/impl/server_streaming_blocking_call.h b/grpc/impl/server_streaming_blocking_call.h new file mode 100644 index 0000000000000..40720e531207d --- /dev/null +++ b/grpc/impl/server_streaming_blocking_call.h @@ -0,0 +1,47 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H +#define TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H + +#include "call_ops.h" +#include "../server_streaming_blocking_call_public.h" + +typedef struct grpc_client_reader { + grpc_context *context; + grpc_call *call; + grpc_completion_queue *cq; +} grpc_client_reader; + +#endif //TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H diff --git a/grpc/server_streaming_blocking_call_public.h b/grpc/server_streaming_blocking_call_public.h new file mode 100644 index 0000000000000..2303529cf1eb8 --- /dev/null +++ b/grpc/server_streaming_blocking_call_public.h @@ -0,0 +1,49 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#define TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H + +typedef struct grpc_client_reader GRPC_client_reader; + +GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, + const GRPC_method rpc_method, + GRPC_context *const context, + const GRPC_message request); + +bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_message *response); + +GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); + +#endif //TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/main.c b/main.c index 4c6a424237826..d59261c1d52fa 100644 --- a/main.c +++ b/main.c @@ -43,6 +43,7 @@ #include "grpc/unary_async_call_public.h" #include "grpc/unary_blocking_call_public.h" #include "grpc/client_streaming_blocking_call_public.h" +#include "grpc/server_streaming_blocking_call_public.h" static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq); static void *async_say_hello_worker(void *param); @@ -160,6 +161,33 @@ int main(int argc, char **argv) { GRPC_context_destroy(&context); } + { + printf("Testing blocking server streaming call\n"); + GRPC_method method = {NORMAL_RPC, "/helloworld.ServerStreamingGreeter/sayHello"}; + GRPC_context *context = GRPC_context_create(chan); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + + GRPC_client_reader *reader = GRPC_server_streaming_blocking_call(chan, method, context, msg); + + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + + while (GRPC_server_streaming_blocking_read(reader, &resp)) { + char *response_string = malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object + GRPC_message_destroy(&resp); + } + + GRPC_status status = GRPC_client_reader_terminate(reader); + assert(status.code == GRPC_STATUS_OK); + + GRPC_context_destroy(&context); + } + GRPC_channel_destroy(&chan); return 0; } From 3b4927cceecb813629acedd343e6e148709e609f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 27 Jun 2016 17:24:20 -0700 Subject: [PATCH 024/202] [RUNTIME] implement bidi streaming blocking call --- grpc/bidi_streaming_blocking_call_public.h | 38 ++++++++++++++++++++++ grpc/impl/bidi_streaming_blocking_call.c | 35 ++++++++++++++++++++ grpc/impl/bidi_streaming_blocking_call.h | 38 ++++++++++++++++++++++ main.c | 34 +++++++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 grpc/bidi_streaming_blocking_call_public.h create mode 100644 grpc/impl/bidi_streaming_blocking_call.c create mode 100644 grpc/impl/bidi_streaming_blocking_call.h diff --git a/grpc/bidi_streaming_blocking_call_public.h b/grpc/bidi_streaming_blocking_call_public.h new file mode 100644 index 0000000000000..ee002c6060c0b --- /dev/null +++ b/grpc/bidi_streaming_blocking_call_public.h @@ -0,0 +1,38 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#define TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H + +#endif //TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/grpc/impl/bidi_streaming_blocking_call.c b/grpc/impl/bidi_streaming_blocking_call.c new file mode 100644 index 0000000000000..d10fa53124ac6 --- /dev/null +++ b/grpc/impl/bidi_streaming_blocking_call.c @@ -0,0 +1,35 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#include "bidi_streaming_blocking_call.h" diff --git a/grpc/impl/bidi_streaming_blocking_call.h b/grpc/impl/bidi_streaming_blocking_call.h new file mode 100644 index 0000000000000..41e48b239f09d --- /dev/null +++ b/grpc/impl/bidi_streaming_blocking_call.h @@ -0,0 +1,38 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + +#ifndef TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H +#define TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H + +#endif //TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H diff --git a/main.c b/main.c index d59261c1d52fa..47b9fe21a5823 100644 --- a/main.c +++ b/main.c @@ -44,6 +44,7 @@ #include "grpc/unary_blocking_call_public.h" #include "grpc/client_streaming_blocking_call_public.h" #include "grpc/server_streaming_blocking_call_public.h" +#include "grpc/bidi_streaming_blocking_call_public.h" static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq); static void *async_say_hello_worker(void *param); @@ -188,6 +189,39 @@ int main(int argc, char **argv) { GRPC_context_destroy(&context); } + { + printf("Testing blocking bidi streaming call\n"); + GRPC_method method = {NORMAL_RPC, "/helloworld.BidiStreamingGreeter/sayHello"}; + GRPC_context *context = GRPC_context_create(chan); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + + GRPC_client_reader_writer *reader = GRPC_bidi_streaming_blocking_call(chan, method, context); + + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + + int i; + for (i = 0; i < 3; i++) { + assert(GRPC_bidi_streaming_blocking_write(reader, msg)); + } + assert(GRPC_bidi_streaming_blocking_close(reader)); + + while (GRPC_bidi_streaming_blocking_read(reader, &resp)) { + char *response_string = malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object + GRPC_message_destroy(&resp); + } + + GRPC_status status = GRPC_client_reader_writer_terminate(reader); + assert(status.code == GRPC_STATUS_OK); + + GRPC_context_destroy(&context); + } + GRPC_channel_destroy(&chan); return 0; } From 12004a0be1df5c6b51e6937b7843cc6b55282ca7 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 28 Jun 2016 14:20:36 -0700 Subject: [PATCH 025/202] reduce code duplication --- grpc/bidi_streaming_blocking_call_public.h | 14 +++ grpc/impl/bidi_streaming_blocking_call.c | 110 +++++++++++++++++++++ grpc/impl/bidi_streaming_blocking_call.h | 9 ++ grpc/impl/call_ops.c | 11 ++- grpc/impl/call_ops.h | 5 +- grpc/impl/client_streaming_blocking_call.c | 15 +-- grpc/impl/server_streaming_blocking_call.c | 24 ++--- grpc/impl/unary_async_call.c | 17 +--- grpc/impl/unary_blocking_call.c | 6 +- 9 files changed, 161 insertions(+), 50 deletions(-) diff --git a/grpc/bidi_streaming_blocking_call_public.h b/grpc/bidi_streaming_blocking_call_public.h index ee002c6060c0b..8d82643d24e09 100644 --- a/grpc/bidi_streaming_blocking_call_public.h +++ b/grpc/bidi_streaming_blocking_call_public.h @@ -35,4 +35,18 @@ #ifndef TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H #define TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +typedef struct grpc_client_reader_writer GRPC_client_reader_writer; + +GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *channel, + const GRPC_method rpc_method, + GRPC_context *const context); + +bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader, GRPC_message *response); + +bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request); + +bool GRPC_bidi_streaming_blocking_close(GRPC_client_reader_writer *reader_writer); + +GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer); + #endif //TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/grpc/impl/bidi_streaming_blocking_call.c b/grpc/impl/bidi_streaming_blocking_call.c index d10fa53124ac6..0a7f6d18d1078 100644 --- a/grpc/impl/bidi_streaming_blocking_call.c +++ b/grpc/impl/bidi_streaming_blocking_call.c @@ -32,4 +32,114 @@ */ +#include #include "bidi_streaming_blocking_call.h" +#include "../completion_queue_public.h" +#include "alloc.h" +#include "tag.h" +#include "completion_queue.h" + +GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *channel, + const GRPC_method rpc_method, + GRPC_context *const context) { + grpc_completion_queue *cq = GRPC_completion_queue_create(); + grpc_call *call = grpc_channel_create_call(channel, + NULL, + GRPC_PROPAGATE_DEFAULTS, + cq, + rpc_method.name, + "", + context->deadline, + NULL); + context->call = call; + context->rpc_method = rpc_method; + + grpc_call_op_set set = { + { + grpc_op_send_metadata + }, + .context = context, + .user_tag = &set + }; + + grpc_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT(grpc_client_reader_writer, { + .context = context, + .call = call, + .cq = cq, + }); + + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {}, NULL); + GRPC_completion_queue_pluck_internal(cq, TAG(&set)); + return reader_writer; +} + +bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, GRPC_message *response) { + grpc_call_op_set set_meta = { + { + grpc_op_recv_metadata, + grpc_op_recv_object + }, + .context = reader_writer->context, + .user_tag = &set_meta + }; + grpc_call_op_set set_no_meta = { + { + grpc_op_recv_object + }, + .context = reader_writer->context, + .user_tag = &set_no_meta + }; + grpc_call_op_set *pSet = NULL; + if (reader_writer->context->initial_metadata_received == false) { + pSet = &set_meta; + } else { + pSet = &set_no_meta; + } + + grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {}, response); + return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(pSet)) && pSet->message_received; +} + +bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request) { + grpc_call_op_set set = { + { + grpc_op_send_object + }, + .context = reader_writer->context, + .user_tag = &set + }; + + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, request, NULL); + return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); +} + +bool GRPC_bidi_streaming_blocking_close(GRPC_client_reader_writer *reader_writer) { + grpc_call_op_set set = { + { + grpc_op_send_close + }, + .context = reader_writer->context, + .user_tag = &set + }; + + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {}, NULL); + return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); +} + +GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer) { + grpc_call_op_set set = { + { + grpc_op_recv_status + }, + .context = reader_writer->context, + .user_tag = &set + }; + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {}, NULL); + GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + GRPC_completion_queue_shutdown_and_destroy(reader_writer->cq); + grpc_call_destroy(reader_writer->call); + reader_writer->context->call = NULL; + grpc_context *context = reader_writer->context; + free(reader_writer); + return context->status; +} diff --git a/grpc/impl/bidi_streaming_blocking_call.h b/grpc/impl/bidi_streaming_blocking_call.h index 41e48b239f09d..01fc398b4389d 100644 --- a/grpc/impl/bidi_streaming_blocking_call.h +++ b/grpc/impl/bidi_streaming_blocking_call.h @@ -35,4 +35,13 @@ #ifndef TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H #define TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H +#include "call_ops.h" +#include "../bidi_streaming_blocking_call_public.h" + +typedef struct grpc_client_reader_writer { + grpc_context *context; + grpc_call *call; + grpc_completion_queue *cq; +} grpc_client_reader_writer; + #endif //TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index 0bdf4efe49ad3..19d1723574b60 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -33,6 +33,7 @@ #include "call_ops.h" #include "context.h" #include "../message_public.h" +#include "tag.h" #include #include @@ -174,7 +175,7 @@ const grpc_op_manager grpc_op_recv_status = { }; void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_context *context, - const grpc_message message, void *response, grpc_op ops[], size_t *nops) { + const grpc_message message, grpc_message *response, grpc_op ops[], size_t *nops) { size_t manager = 0; size_t filled = 0; while (manager < GRPC_MAX_OP_COUNT) { @@ -199,3 +200,11 @@ void grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context) count++; } } + +void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_context *context, + const grpc_message request, grpc_message *response) { + size_t nops; + grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_fill_op_from_call_set(set, &context->rpc_method, context, request, response, ops, &nops); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(set), NULL)); +} diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index d13cfd5686854..1fe2a003da526 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -74,10 +74,13 @@ typedef struct grpc_call_op_set { } grpc_call_op_set; void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_context *context, - const grpc_message message, void *response, grpc_op ops[], size_t *nops); + const grpc_message message, grpc_message *response, grpc_op ops[], size_t *nops); void grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context); +void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_context *context, + const grpc_message message, grpc_message *response); + /* list of operations */ extern const grpc_op_manager grpc_op_send_metadata; diff --git a/grpc/impl/client_streaming_blocking_call.c b/grpc/impl/client_streaming_blocking_call.c index 3c24df4a02cd2..daafc94cb9aae 100644 --- a/grpc/impl/client_streaming_blocking_call.c +++ b/grpc/impl/client_streaming_blocking_call.c @@ -80,10 +80,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, }); writer->finish_ops.user_tag = &writer->finish_ops; - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(&set, &rpc_method, context, (GRPC_message) {}, NULL, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); + grpc_start_batch_from_op_set(writer->call, &set, writer->context, (GRPC_message) {}, NULL); GRPC_completion_queue_pluck_internal(cq, TAG(&set)); return writer; } @@ -97,18 +94,12 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC .user_tag = &set }; - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(&set, &writer->context->rpc_method, writer->context, request, NULL, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(writer->call, ops, nops, TAG(&set), NULL)); + grpc_start_batch_from_op_set(writer->call, &set, writer->context, request, NULL); return GRPC_completion_queue_pluck_internal(writer->cq, TAG(&set)); } GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(&writer->finish_ops, &writer->context->rpc_method, writer->context, (GRPC_message) {}, writer->response, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(writer->call, ops, nops, TAG(&writer->finish_ops), NULL)); + grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {}, writer->response); GRPC_completion_queue_pluck_internal(writer->cq, TAG(&writer->finish_ops)); GRPC_completion_queue_shutdown_and_destroy(writer->cq); grpc_call_destroy(writer->call); diff --git a/grpc/impl/server_streaming_blocking_call.c b/grpc/impl/server_streaming_blocking_call.c index 46f65a36ecc95..97ed706a83fbe 100644 --- a/grpc/impl/server_streaming_blocking_call.c +++ b/grpc/impl/server_streaming_blocking_call.c @@ -71,10 +71,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, .cq = cq, }); - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(&set, &rpc_method, context, request, NULL, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); + grpc_start_batch_from_op_set(reader->call, &set, reader->context, request, NULL); GRPC_completion_queue_pluck_internal(cq, TAG(&set)); return reader; } @@ -90,24 +87,20 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_messag }; grpc_call_op_set set_no_meta = { { - grpc_op_recv_metadata, grpc_op_recv_object }, .context = reader->context, .user_tag = &set_no_meta }; - grpc_call_op_set *set = NULL; + grpc_call_op_set *pSet = NULL; if (reader->context->initial_metadata_received == false) { - set = &set_meta; + pSet = &set_meta; } else { - set = &set_no_meta; + pSet = &set_no_meta; } - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, &reader->context->rpc_method, reader->context, (GRPC_message) {}, response, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->call, ops, nops, TAG(set), NULL)); - return GRPC_completion_queue_pluck_internal(reader->cq, TAG(set)) && set->message_received; + grpc_start_batch_from_op_set(reader->call, pSet, reader->context, (GRPC_message) {}, response); + return GRPC_completion_queue_pluck_internal(reader->cq, TAG(pSet)) && pSet->message_received; } GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { @@ -118,10 +111,7 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { .context = reader->context, .user_tag = &set }; - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(&set, &reader->context->rpc_method, reader->context, (GRPC_message) {}, NULL, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->call, ops, nops, TAG(&set), NULL)); + grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, TAG(&set)); GRPC_completion_queue_shutdown_and_destroy(reader->cq); grpc_call_destroy(reader->call); diff --git a/grpc/impl/unary_async_call.c b/grpc/impl/unary_async_call.c index 3cbebd6b3fc25..40624eafdbd23 100644 --- a/grpc/impl/unary_async_call.c +++ b/grpc/impl/unary_async_call.c @@ -78,27 +78,16 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, } }); - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(&reader->init_buf, &rpc_method, context, request, NULL, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&reader->init_buf), NULL)); - + grpc_start_batch_from_op_set(reader->call, &reader->init_buf, reader->context, request, NULL); return reader; } void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; reader->meta_buf.user_tag = tag; - grpc_fill_op_from_call_set(&reader->meta_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, NULL, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->context->call, ops, nops, TAG(&reader->finish_buf), NULL)); + grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, (GRPC_message) {}, NULL); } void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_message *response, void *tag) { - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; reader->finish_buf.user_tag = tag; - grpc_fill_op_from_call_set(&reader->finish_buf, &reader->context->rpc_method, reader->context, (GRPC_message) { }, response, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(reader->context->call, ops, nops, TAG(&reader->finish_buf), NULL)); + grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, reader->context, (GRPC_message) {}, response); } - diff --git a/grpc/impl/unary_blocking_call.c b/grpc/impl/unary_blocking_call.c index 0585ea6649469..a836bf68df559 100644 --- a/grpc/impl/unary_blocking_call.c +++ b/grpc/impl/unary_blocking_call.c @@ -65,11 +65,7 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c .user_tag = TAG(&set) }; - size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(&set, rpc_method, context, message, response, ops, &nops); - - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(&set), NULL)); + grpc_start_batch_from_op_set(call, &set, context, message, response); for (;;) { void *tag; bool ok; From 474b12f16a69ba131ac4979278c61d1a5f08f410 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 7 Jul 2016 16:19:48 -0700 Subject: [PATCH 026/202] propagate success value --- grpc/impl/call_ops.c | 5 ++++- grpc/impl/call_ops.h | 3 ++- grpc/impl/completion_queue.c | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/grpc/impl/call_ops.c b/grpc/impl/call_ops.c index 19d1723574b60..15ad29ac0d2c8 100644 --- a/grpc/impl/call_ops.c +++ b/grpc/impl/call_ops.c @@ -189,16 +189,19 @@ void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_me *nops = filled; } -void grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context) { +bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context) { size_t count = 0; + bool allStatus = true; while (count < GRPC_MAX_OP_COUNT) { if (set->op_managers[count].fill == NULL && set->op_managers[count].finish == NULL) break; // end of call set if (set->op_managers[count].finish == NULL) continue; size_t size = 100; // todo(yifeit): hook up this value bool status; set->op_managers[count].finish(context, set, &status, size); + allStatus &= status; count++; } + return allStatus; } void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_context *context, diff --git a/grpc/impl/call_ops.h b/grpc/impl/call_ops.h index 1fe2a003da526..414a894838306 100644 --- a/grpc/impl/call_ops.h +++ b/grpc/impl/call_ops.h @@ -76,7 +76,8 @@ typedef struct grpc_call_op_set { void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_context *context, const grpc_message message, grpc_message *response, grpc_op ops[], size_t *nops); -void grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context); +/* Runs post processing steps in the call op set. Returns false if something wrong happens e.g. serialization. */ +bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context); void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_context *context, const grpc_message message, grpc_message *response); diff --git a/grpc/impl/completion_queue.c b/grpc/impl/completion_queue.c index 4fc4bb86246e4..4a43cd66ff46f 100644 --- a/grpc/impl/completion_queue.c +++ b/grpc/impl/completion_queue.c @@ -75,7 +75,7 @@ GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_co GPR_ASSERT(set != NULL); GPR_ASSERT(set->context != NULL); // run post-processing for async operations - grpc_finish_op_from_call_set(set, set->context); + bool status = grpc_finish_op_from_call_set(set, set->context); if (set->hide_from_user) { // don't touch user supplied pointers @@ -83,7 +83,7 @@ GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_co } *tag = set->user_tag; - *ok = ev.success != 0; + *ok = (ev.success != 0) && status; return GRPC_COMPLETION_QUEUE_GOT_EVENT; } } From 93246224fc3c78a90fa1aca552e70bd4b0511083 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 7 Jul 2016 16:25:55 -0700 Subject: [PATCH 027/202] directory structure --- .../bidi_streaming_blocking_call_public.h | 0 {grpc => include/grpc_c}/channel_public.h | 0 .../client_streaming_blocking_call_public.h | 0 .../grpc_c}/completion_queue_public.h | 0 {grpc => include/grpc_c}/context_public.h | 0 {grpc => include/grpc_c}/grpc_c_public.h | 0 {grpc => include/grpc_c}/message_public.h | 0 .../grpc_c}/serialization_public.h | 0 .../server_streaming_blocking_call_public.h | 0 {grpc => include/grpc_c}/status_code_public.h | 0 {grpc => include/grpc_c}/status_public.h | 0 .../grpc_c}/unary_async_call_public.h | 0 .../grpc_c}/unary_blocking_call_public.h | 0 main.c | 272 ------------------ mock_helloworld.grpc.pb.c | 35 --- mock_helloworld.grpc.pb.h | 38 --- {grpc/impl => src/c}/alloc.c | 0 {grpc/impl => src/c}/alloc.h | 0 .../c}/bidi_streaming_blocking_call.c | 0 .../c}/bidi_streaming_blocking_call.h | 0 {grpc/impl => src/c}/call_ops.c | 0 {grpc/impl => src/c}/call_ops.h | 0 {grpc/impl => src/c}/channel.c | 0 .../c}/client_streaming_blocking_call.c | 0 .../c}/client_streaming_blocking_call.h | 0 {grpc/impl => src/c}/completion_queue.c | 0 {grpc/impl => src/c}/completion_queue.h | 0 {grpc/impl => src/c}/context.c | 0 {grpc/impl => src/c}/context.h | 0 {grpc/impl => src/c}/id_serialization.c | 0 {grpc/impl => src/c}/id_serialization.h | 0 {grpc/impl => src/c}/init_shutdown.c | 0 {grpc/impl => src/c}/init_shutdown.h | 0 {grpc/impl => src/c}/message.c | 0 {grpc/impl => src/c}/message.h | 0 .../c}/server_streaming_blocking_call.c | 0 .../c}/server_streaming_blocking_call.h | 0 {grpc/impl => src/c}/status.h | 0 {grpc/impl => src/c}/tag.h | 0 {grpc/impl => src/c}/unary_async_call.c | 0 {grpc/impl => src/c}/unary_async_call.h | 0 {grpc/impl => src/c}/unary_blocking_call.c | 0 {grpc/impl => src/c}/unary_blocking_call.h | 0 43 files changed, 345 deletions(-) rename {grpc => include/grpc_c}/bidi_streaming_blocking_call_public.h (100%) rename {grpc => include/grpc_c}/channel_public.h (100%) rename {grpc => include/grpc_c}/client_streaming_blocking_call_public.h (100%) rename {grpc => include/grpc_c}/completion_queue_public.h (100%) rename {grpc => include/grpc_c}/context_public.h (100%) rename {grpc => include/grpc_c}/grpc_c_public.h (100%) rename {grpc => include/grpc_c}/message_public.h (100%) rename {grpc => include/grpc_c}/serialization_public.h (100%) rename {grpc => include/grpc_c}/server_streaming_blocking_call_public.h (100%) rename {grpc => include/grpc_c}/status_code_public.h (100%) rename {grpc => include/grpc_c}/status_public.h (100%) rename {grpc => include/grpc_c}/unary_async_call_public.h (100%) rename {grpc => include/grpc_c}/unary_blocking_call_public.h (100%) delete mode 100644 main.c delete mode 100644 mock_helloworld.grpc.pb.c delete mode 100644 mock_helloworld.grpc.pb.h rename {grpc/impl => src/c}/alloc.c (100%) rename {grpc/impl => src/c}/alloc.h (100%) rename {grpc/impl => src/c}/bidi_streaming_blocking_call.c (100%) rename {grpc/impl => src/c}/bidi_streaming_blocking_call.h (100%) rename {grpc/impl => src/c}/call_ops.c (100%) rename {grpc/impl => src/c}/call_ops.h (100%) rename {grpc/impl => src/c}/channel.c (100%) rename {grpc/impl => src/c}/client_streaming_blocking_call.c (100%) rename {grpc/impl => src/c}/client_streaming_blocking_call.h (100%) rename {grpc/impl => src/c}/completion_queue.c (100%) rename {grpc/impl => src/c}/completion_queue.h (100%) rename {grpc/impl => src/c}/context.c (100%) rename {grpc/impl => src/c}/context.h (100%) rename {grpc/impl => src/c}/id_serialization.c (100%) rename {grpc/impl => src/c}/id_serialization.h (100%) rename {grpc/impl => src/c}/init_shutdown.c (100%) rename {grpc/impl => src/c}/init_shutdown.h (100%) rename {grpc/impl => src/c}/message.c (100%) rename {grpc/impl => src/c}/message.h (100%) rename {grpc/impl => src/c}/server_streaming_blocking_call.c (100%) rename {grpc/impl => src/c}/server_streaming_blocking_call.h (100%) rename {grpc/impl => src/c}/status.h (100%) rename {grpc/impl => src/c}/tag.h (100%) rename {grpc/impl => src/c}/unary_async_call.c (100%) rename {grpc/impl => src/c}/unary_async_call.h (100%) rename {grpc/impl => src/c}/unary_blocking_call.c (100%) rename {grpc/impl => src/c}/unary_blocking_call.h (100%) diff --git a/grpc/bidi_streaming_blocking_call_public.h b/include/grpc_c/bidi_streaming_blocking_call_public.h similarity index 100% rename from grpc/bidi_streaming_blocking_call_public.h rename to include/grpc_c/bidi_streaming_blocking_call_public.h diff --git a/grpc/channel_public.h b/include/grpc_c/channel_public.h similarity index 100% rename from grpc/channel_public.h rename to include/grpc_c/channel_public.h diff --git a/grpc/client_streaming_blocking_call_public.h b/include/grpc_c/client_streaming_blocking_call_public.h similarity index 100% rename from grpc/client_streaming_blocking_call_public.h rename to include/grpc_c/client_streaming_blocking_call_public.h diff --git a/grpc/completion_queue_public.h b/include/grpc_c/completion_queue_public.h similarity index 100% rename from grpc/completion_queue_public.h rename to include/grpc_c/completion_queue_public.h diff --git a/grpc/context_public.h b/include/grpc_c/context_public.h similarity index 100% rename from grpc/context_public.h rename to include/grpc_c/context_public.h diff --git a/grpc/grpc_c_public.h b/include/grpc_c/grpc_c_public.h similarity index 100% rename from grpc/grpc_c_public.h rename to include/grpc_c/grpc_c_public.h diff --git a/grpc/message_public.h b/include/grpc_c/message_public.h similarity index 100% rename from grpc/message_public.h rename to include/grpc_c/message_public.h diff --git a/grpc/serialization_public.h b/include/grpc_c/serialization_public.h similarity index 100% rename from grpc/serialization_public.h rename to include/grpc_c/serialization_public.h diff --git a/grpc/server_streaming_blocking_call_public.h b/include/grpc_c/server_streaming_blocking_call_public.h similarity index 100% rename from grpc/server_streaming_blocking_call_public.h rename to include/grpc_c/server_streaming_blocking_call_public.h diff --git a/grpc/status_code_public.h b/include/grpc_c/status_code_public.h similarity index 100% rename from grpc/status_code_public.h rename to include/grpc_c/status_code_public.h diff --git a/grpc/status_public.h b/include/grpc_c/status_public.h similarity index 100% rename from grpc/status_public.h rename to include/grpc_c/status_public.h diff --git a/grpc/unary_async_call_public.h b/include/grpc_c/unary_async_call_public.h similarity index 100% rename from grpc/unary_async_call_public.h rename to include/grpc_c/unary_async_call_public.h diff --git a/grpc/unary_blocking_call_public.h b/include/grpc_c/unary_blocking_call_public.h similarity index 100% rename from grpc/unary_blocking_call_public.h rename to include/grpc_c/unary_blocking_call_public.h diff --git a/main.c b/main.c deleted file mode 100644 index 47b9fe21a5823..0000000000000 --- a/main.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include -#include -#include -#include -#include "grpc/status_code_public.h" -#include "grpc/grpc_c_public.h" -#include "grpc/status_public.h" -#include "grpc/context_public.h" -#include "grpc/channel_public.h" -#include "grpc/unary_async_call_public.h" -#include "grpc/unary_blocking_call_public.h" -#include "grpc/client_streaming_blocking_call_public.h" -#include "grpc/server_streaming_blocking_call_public.h" -#include "grpc/bidi_streaming_blocking_call_public.h" - -static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq); -static void *async_say_hello_worker(void *param); - -int main(int argc, char **argv) { - // Local greetings server - GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); - - { - printf("Testing sync unary call\n"); - GRPC_method method = {NORMAL_RPC, "/helloworld.Greeter/SayHello"}; - GRPC_context *context = GRPC_context_create(chan); - // hardcoded string for "gRPC-C" - char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; - GRPC_message msg = {str, sizeof(str)}; - // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; - GRPC_status status = GRPC_unary_blocking_call(chan, &method, context, msg, &resp); - assert(status.code == GRPC_STATUS_OK); - char *response_string = malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; - printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object - GRPC_message_destroy(&resp); - GRPC_context_destroy(&context); - } - - { - printf("Testing async unary call\n"); - GRPC_method method = {NORMAL_RPC, "/helloworld.Greeter/SayHello"}; - GRPC_context *context = GRPC_context_create(chan); - GRPC_completion_queue *cq = GRPC_completion_queue_create(); - // hardcoded string for "async gRPC-C" - char str[] = {0x0A, 0x0C, 0x61, 0x73, 0x79, 0x6E, 0x63, 0x20, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; - GRPC_message msg = {str, sizeof(str)}; - // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; - GRPC_client_async_response_reader *reader = GRPC_unary_async_call(chan, cq, method, msg, context); - GRPC_client_async_finish(reader, &resp, (void*) 12345); - printf("Waiting\n"); - void *tag; - bool ok; - GRPC_commit_ops_and_wait(cq, &tag, &ok); - assert(ok); - assert(tag == (void*) 12345); - char *response_string = malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; - printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object - free(response_string); - GRPC_message_destroy(&resp); - GRPC_completion_queue_shutdown_and_destroy(cq); - GRPC_context_destroy(&context); - } - - { - printf("Testing async unary call where the worker is in another thread\n"); - GRPC_completion_queue *cq = GRPC_completion_queue_create(); - - pthread_t tid; - pthread_create(&tid, NULL, async_say_hello_worker, cq); - - int i; - for (i = 0; i < 10; i++) { - async_say_hello(chan, cq); - } - - printf("Waiting for thread to terminate\n"); - pthread_join(tid, NULL); - - GRPC_completion_queue_shutdown_and_destroy(cq); - } - - { - printf("Testing async unary call where the worker thread handles completion queue shutdown\n"); - GRPC_completion_queue *cq = GRPC_completion_queue_create(); - - pthread_t tid; - pthread_create(&tid, NULL, async_say_hello_worker, cq); - - int i; - for (i = 0; i < 5; i++) { - async_say_hello(chan, cq); - } - - GRPC_completion_queue_shutdown(cq); - printf("Waiting for thread to terminate\n"); - pthread_join(tid, NULL); - GRPC_completion_queue_destroy(cq); - } - - { - printf("Testing blocking client streaming call\n"); - GRPC_method method = {NORMAL_RPC, "/helloworld.ClientStreamingGreeter/sayHello"}; - GRPC_context *context = GRPC_context_create(chan); - // hardcoded string for "gRPC-C" - char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; - GRPC_message msg = {str, sizeof(str)}; - // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; - - GRPC_client_writer *writer = GRPC_client_streaming_blocking_call(chan, method, context, &resp); - int i; - for (i = 0; i < 3; i++) { - GRPC_client_streaming_blocking_write(writer, msg); - } - GRPC_status status = GRPC_client_writer_terminate(writer); - assert(status.code == GRPC_STATUS_OK); - - char *response_string = malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; - printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object - GRPC_message_destroy(&resp); - GRPC_context_destroy(&context); - } - - { - printf("Testing blocking server streaming call\n"); - GRPC_method method = {NORMAL_RPC, "/helloworld.ServerStreamingGreeter/sayHello"}; - GRPC_context *context = GRPC_context_create(chan); - // hardcoded string for "gRPC-C" - char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; - GRPC_message msg = {str, sizeof(str)}; - - GRPC_client_reader *reader = GRPC_server_streaming_blocking_call(chan, method, context, msg); - - // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; - - while (GRPC_server_streaming_blocking_read(reader, &resp)) { - char *response_string = malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; - printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object - GRPC_message_destroy(&resp); - } - - GRPC_status status = GRPC_client_reader_terminate(reader); - assert(status.code == GRPC_STATUS_OK); - - GRPC_context_destroy(&context); - } - - { - printf("Testing blocking bidi streaming call\n"); - GRPC_method method = {NORMAL_RPC, "/helloworld.BidiStreamingGreeter/sayHello"}; - GRPC_context *context = GRPC_context_create(chan); - // hardcoded string for "gRPC-C" - char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; - GRPC_message msg = {str, sizeof(str)}; - - GRPC_client_reader_writer *reader = GRPC_bidi_streaming_blocking_call(chan, method, context); - - // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; - - int i; - for (i = 0; i < 3; i++) { - assert(GRPC_bidi_streaming_blocking_write(reader, msg)); - } - assert(GRPC_bidi_streaming_blocking_close(reader)); - - while (GRPC_bidi_streaming_blocking_read(reader, &resp)) { - char *response_string = malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; - printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object - GRPC_message_destroy(&resp); - } - - GRPC_status status = GRPC_client_reader_writer_terminate(reader); - assert(status.code == GRPC_STATUS_OK); - - GRPC_context_destroy(&context); - } - - GRPC_channel_destroy(&chan); - return 0; -} - -typedef struct async_client { - GRPC_context *context; - GRPC_message reply; -} async_client; - -static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq) { - GRPC_method method = {NORMAL_RPC, "/helloworld.Greeter/SayHello"}; - GRPC_context *context = GRPC_context_create(chan); - - async_client *client = (async_client *) calloc(1, sizeof(async_client)); - client->context = context; - - // hardcoded string for "async gRPC-C" - char str[] = {0x0A, 0x0C, 0x61, 0x73, 0x79, 0x6E, 0x63, 0x20, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; - GRPC_message msg = {str, sizeof(str)}; - GRPC_client_async_response_reader *reader = GRPC_unary_async_call(chan, cq, method, msg, context); - GRPC_client_async_finish(reader, &client->reply, client); -} - -static void *async_say_hello_worker(void *param) { - int i; - GRPC_completion_queue *cq = (GRPC_completion_queue *) param; - for (i = 0; i < 10; i++) { - void *tag; - bool ok; - GRPC_completion_queue_operation_status status = GRPC_commit_ops_and_wait(cq, &tag, &ok); - if (status == GRPC_COMPLETION_QUEUE_SHUTDOWN) { - printf("Worker thread shutting down\n"); - return NULL; - } - assert(ok); - assert(tag != NULL); - async_client *client = (async_client *) tag; - char *response_string = malloc(client->reply.length - 2 + 1); - memcpy(response_string, ((char *) client->reply.data) + 2, client->reply.length - 2); - response_string[client->reply.length - 2] = '\0'; - printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object - free(response_string); - GRPC_message_destroy(&client->reply); - GRPC_context_destroy(&client->context); - free(client); - } - return NULL; -} diff --git a/mock_helloworld.grpc.pb.c b/mock_helloworld.grpc.pb.c deleted file mode 100644 index fca986c1744c6..0000000000000 --- a/mock_helloworld.grpc.pb.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - - -#include "mock_helloworld.grpc.pb.h" diff --git a/mock_helloworld.grpc.pb.h b/mock_helloworld.grpc.pb.h deleted file mode 100644 index 85b4ef07989f8..0000000000000 --- a/mock_helloworld.grpc.pb.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - - -#ifndef TEST_GRPC_C_MOCK_HELLOWORLD_GRPC_PB_H -#define TEST_GRPC_C_MOCK_HELLOWORLD_GRPC_PB_H - -#endif //TEST_GRPC_C_MOCK_HELLOWORLD_GRPC_PB_H diff --git a/grpc/impl/alloc.c b/src/c/alloc.c similarity index 100% rename from grpc/impl/alloc.c rename to src/c/alloc.c diff --git a/grpc/impl/alloc.h b/src/c/alloc.h similarity index 100% rename from grpc/impl/alloc.h rename to src/c/alloc.h diff --git a/grpc/impl/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c similarity index 100% rename from grpc/impl/bidi_streaming_blocking_call.c rename to src/c/bidi_streaming_blocking_call.c diff --git a/grpc/impl/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h similarity index 100% rename from grpc/impl/bidi_streaming_blocking_call.h rename to src/c/bidi_streaming_blocking_call.h diff --git a/grpc/impl/call_ops.c b/src/c/call_ops.c similarity index 100% rename from grpc/impl/call_ops.c rename to src/c/call_ops.c diff --git a/grpc/impl/call_ops.h b/src/c/call_ops.h similarity index 100% rename from grpc/impl/call_ops.h rename to src/c/call_ops.h diff --git a/grpc/impl/channel.c b/src/c/channel.c similarity index 100% rename from grpc/impl/channel.c rename to src/c/channel.c diff --git a/grpc/impl/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c similarity index 100% rename from grpc/impl/client_streaming_blocking_call.c rename to src/c/client_streaming_blocking_call.c diff --git a/grpc/impl/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h similarity index 100% rename from grpc/impl/client_streaming_blocking_call.h rename to src/c/client_streaming_blocking_call.h diff --git a/grpc/impl/completion_queue.c b/src/c/completion_queue.c similarity index 100% rename from grpc/impl/completion_queue.c rename to src/c/completion_queue.c diff --git a/grpc/impl/completion_queue.h b/src/c/completion_queue.h similarity index 100% rename from grpc/impl/completion_queue.h rename to src/c/completion_queue.h diff --git a/grpc/impl/context.c b/src/c/context.c similarity index 100% rename from grpc/impl/context.c rename to src/c/context.c diff --git a/grpc/impl/context.h b/src/c/context.h similarity index 100% rename from grpc/impl/context.h rename to src/c/context.h diff --git a/grpc/impl/id_serialization.c b/src/c/id_serialization.c similarity index 100% rename from grpc/impl/id_serialization.c rename to src/c/id_serialization.c diff --git a/grpc/impl/id_serialization.h b/src/c/id_serialization.h similarity index 100% rename from grpc/impl/id_serialization.h rename to src/c/id_serialization.h diff --git a/grpc/impl/init_shutdown.c b/src/c/init_shutdown.c similarity index 100% rename from grpc/impl/init_shutdown.c rename to src/c/init_shutdown.c diff --git a/grpc/impl/init_shutdown.h b/src/c/init_shutdown.h similarity index 100% rename from grpc/impl/init_shutdown.h rename to src/c/init_shutdown.h diff --git a/grpc/impl/message.c b/src/c/message.c similarity index 100% rename from grpc/impl/message.c rename to src/c/message.c diff --git a/grpc/impl/message.h b/src/c/message.h similarity index 100% rename from grpc/impl/message.h rename to src/c/message.h diff --git a/grpc/impl/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c similarity index 100% rename from grpc/impl/server_streaming_blocking_call.c rename to src/c/server_streaming_blocking_call.c diff --git a/grpc/impl/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h similarity index 100% rename from grpc/impl/server_streaming_blocking_call.h rename to src/c/server_streaming_blocking_call.h diff --git a/grpc/impl/status.h b/src/c/status.h similarity index 100% rename from grpc/impl/status.h rename to src/c/status.h diff --git a/grpc/impl/tag.h b/src/c/tag.h similarity index 100% rename from grpc/impl/tag.h rename to src/c/tag.h diff --git a/grpc/impl/unary_async_call.c b/src/c/unary_async_call.c similarity index 100% rename from grpc/impl/unary_async_call.c rename to src/c/unary_async_call.c diff --git a/grpc/impl/unary_async_call.h b/src/c/unary_async_call.h similarity index 100% rename from grpc/impl/unary_async_call.h rename to src/c/unary_async_call.h diff --git a/grpc/impl/unary_blocking_call.c b/src/c/unary_blocking_call.c similarity index 100% rename from grpc/impl/unary_blocking_call.c rename to src/c/unary_blocking_call.c diff --git a/grpc/impl/unary_blocking_call.h b/src/c/unary_blocking_call.h similarity index 100% rename from grpc/impl/unary_blocking_call.h rename to src/c/unary_blocking_call.h From 16a54d895aee62507032658cf257eddb8304790e Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 7 Jul 2016 16:57:50 -0700 Subject: [PATCH 028/202] [RUNTIME] project structure for C API --- ...ng_call_public.h => bidi_streaming_blocking_call.h} | 6 +++--- include/grpc_c/{channel_public.h => channel.h} | 6 +++--- ..._call_public.h => client_streaming_blocking_call.h} | 8 ++++---- .../{completion_queue_public.h => completion_queue.h} | 6 +++--- include/grpc_c/{context_public.h => context.h} | 8 ++++---- include/grpc_c/{grpc_c_public.h => grpc_c.h} | 8 ++++---- include/grpc_c/{message_public.h => message.h} | 6 +++--- .../grpc_c/{serialization_public.h => serialization.h} | 8 ++++---- ..._call_public.h => server_streaming_blocking_call.h} | 6 +++--- include/grpc_c/{status_public.h => status.h} | 6 +++--- include/grpc_c/{status_code_public.h => status_code.h} | 6 +++--- .../{unary_async_call_public.h => unary_async_call.h} | 10 +++++----- ...ry_blocking_call_public.h => unary_blocking_call.h} | 8 ++++---- 13 files changed, 46 insertions(+), 46 deletions(-) rename include/grpc_c/{bidi_streaming_blocking_call_public.h => bidi_streaming_blocking_call.h} (92%) rename include/grpc_c/{channel_public.h => channel.h} (93%) rename include/grpc_c/{client_streaming_blocking_call_public.h => client_streaming_blocking_call.h} (91%) rename include/grpc_c/{completion_queue_public.h => completion_queue.h} (95%) rename include/grpc_c/{context_public.h => context.h} (92%) rename include/grpc_c/{grpc_c_public.h => grpc_c.h} (93%) rename include/grpc_c/{message_public.h => message.h} (93%) rename include/grpc_c/{serialization_public.h => serialization.h} (91%) rename include/grpc_c/{server_streaming_blocking_call_public.h => server_streaming_blocking_call.h} (92%) rename include/grpc_c/{status_public.h => status.h} (93%) rename include/grpc_c/{status_code_public.h => status_code.h} (98%) rename include/grpc_c/{unary_async_call_public.h => unary_async_call.h} (91%) rename include/grpc_c/{unary_blocking_call_public.h => unary_blocking_call.h} (91%) diff --git a/include/grpc_c/bidi_streaming_blocking_call_public.h b/include/grpc_c/bidi_streaming_blocking_call.h similarity index 92% rename from include/grpc_c/bidi_streaming_blocking_call_public.h rename to include/grpc_c/bidi_streaming_blocking_call.h index 8d82643d24e09..e4a32106f615d 100644 --- a/include/grpc_c/bidi_streaming_blocking_call_public.h +++ b/include/grpc_c/bidi_streaming_blocking_call.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H -#define TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H typedef struct grpc_client_reader_writer GRPC_client_reader_writer; @@ -49,4 +49,4 @@ bool GRPC_bidi_streaming_blocking_close(GRPC_client_reader_writer *reader_writer GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer); -#endif //TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#endif // GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/include/grpc_c/channel_public.h b/include/grpc_c/channel.h similarity index 93% rename from include/grpc_c/channel_public.h rename to include/grpc_c/channel.h index efaccff8c79d1..4aea68b50cd74 100644 --- a/include/grpc_c/channel_public.h +++ b/include/grpc_c/channel.h @@ -32,12 +32,12 @@ */ -#ifndef TEST_GRPC_C_CHANNEL_PUBLIC_H -#define TEST_GRPC_C_CHANNEL_PUBLIC_H +#ifndef GRPC_C_CHANNEL_PUBLIC_H +#define GRPC_C_CHANNEL_PUBLIC_H typedef struct grpc_channel grpc_channel; grpc_channel *GRPC_channel_create(const char * const target); void GRPC_channel_destroy(grpc_channel ** channel); -#endif //TEST_GRPC_C_CHANNEL_PUBLIC_H +#endif // GRPC_C_CHANNEL_PUBLIC_H diff --git a/include/grpc_c/client_streaming_blocking_call_public.h b/include/grpc_c/client_streaming_blocking_call.h similarity index 91% rename from include/grpc_c/client_streaming_blocking_call_public.h rename to include/grpc_c/client_streaming_blocking_call.h index a12a397e53069..042b0e32f969f 100644 --- a/include/grpc_c/client_streaming_blocking_call_public.h +++ b/include/grpc_c/client_streaming_blocking_call.h @@ -32,11 +32,11 @@ */ -#ifndef TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H -#define TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H #include -#include "grpc_c_public.h" +#include typedef struct grpc_client_writer GRPC_client_writer; @@ -49,4 +49,4 @@ bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer); -#endif //TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#endif // GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/include/grpc_c/completion_queue_public.h b/include/grpc_c/completion_queue.h similarity index 95% rename from include/grpc_c/completion_queue_public.h rename to include/grpc_c/completion_queue.h index 97f876b1cfd74..37bfbffdd6d66 100644 --- a/include/grpc_c/completion_queue_public.h +++ b/include/grpc_c/completion_queue.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H -#define TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H +#ifndef GRPC_C_COMPLETION_QUEUE_PUBLIC_H +#define GRPC_C_COMPLETION_QUEUE_PUBLIC_H #include @@ -57,4 +57,4 @@ GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_co gpr_timespec deadline, void **tag, bool *ok); -#endif //TEST_GRPC_C_COMPLETION_QUEUE_PUBLIC_H +#endif // GRPC_C_COMPLETION_QUEUE_PUBLIC_H diff --git a/include/grpc_c/context_public.h b/include/grpc_c/context.h similarity index 92% rename from include/grpc_c/context_public.h rename to include/grpc_c/context.h index bb26ea02f47f5..1bdecc202245e 100644 --- a/include/grpc_c/context_public.h +++ b/include/grpc_c/context.h @@ -32,12 +32,12 @@ */ -#ifndef TEST_GRPC_C_CONTEXT_PUBLIC_H -#define TEST_GRPC_C_CONTEXT_PUBLIC_H +#ifndef GRPC_C_CONTEXT_PUBLIC_H +#define GRPC_C_CONTEXT_PUBLIC_H -#include "grpc_c_public.h" +#include GRPC_context *GRPC_context_create(GRPC_channel *chan); void GRPC_context_destroy(GRPC_context **context); -#endif //TEST_GRPC_C_CONTEXT_PUBLIC_H +#endif // GRPC_C_CONTEXT_PUBLIC_H diff --git a/include/grpc_c/grpc_c_public.h b/include/grpc_c/grpc_c.h similarity index 93% rename from include/grpc_c/grpc_c_public.h rename to include/grpc_c/grpc_c.h index 4f44b11dabbb5..43348439f4ef2 100644 --- a/include/grpc_c/grpc_c_public.h +++ b/include/grpc_c/grpc_c.h @@ -32,11 +32,11 @@ */ -#ifndef TEST_GRPC_C_GRPC_C_PUBLIC_H -#define TEST_GRPC_C_GRPC_C_PUBLIC_H +#ifndef GRPC_C_PUBLIC_H +#define GRPC_C_PUBLIC_H #include -#include "message_public.h" +#include typedef struct grpc_channel GRPC_channel; typedef struct grpc_status GRPC_status; @@ -53,4 +53,4 @@ typedef struct GRPC_method { } GRPC_method; -#endif //TEST_GRPC_C_GRPC_C_PUBLIC_H +#endif // GRPC_C_PUBLIC_H diff --git a/include/grpc_c/message_public.h b/include/grpc_c/message.h similarity index 93% rename from include/grpc_c/message_public.h rename to include/grpc_c/message.h index d7233b29a6616..7003393874d8f 100644 --- a/include/grpc_c/message_public.h +++ b/include/grpc_c/message.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_MESSAGE_PUBLIC_H -#define TEST_GRPC_C_MESSAGE_PUBLIC_H +#ifndef GRPC_C_MESSAGE_PUBLIC_H +#define GRPC_C_MESSAGE_PUBLIC_H #include @@ -44,4 +44,4 @@ typedef struct GRPC_message { void GRPC_message_destroy(GRPC_message *message); -#endif //TEST_GRPC_C_MESSAGE_PUBLIC_H +#endif // GRPC_C_MESSAGE_PUBLIC_H diff --git a/include/grpc_c/serialization_public.h b/include/grpc_c/serialization.h similarity index 91% rename from include/grpc_c/serialization_public.h rename to include/grpc_c/serialization.h index f7c45b67c7788..fda6b68077fad 100644 --- a/include/grpc_c/serialization_public.h +++ b/include/grpc_c/serialization.h @@ -32,12 +32,12 @@ */ -#ifndef TEST_GRPC_C_SERIALIZATION_PUBLIC_H -#define TEST_GRPC_C_SERIALIZATION_PUBLIC_H +#ifndef GRPC_C_SERIALIZATION_PUBLIC_H +#define GRPC_C_SERIALIZATION_PUBLIC_H -#include "grpc_c_public.h" +#include typedef void (*GRPC_serializer)(const GRPC_message input, GRPC_message *output); typedef void (*GRPC_deserializer)(const GRPC_message input, GRPC_message *output); -#endif //TEST_GRPC_C_SERIALIZATION_PUBLIC_H +#endif // GRPC_C_SERIALIZATION_PUBLIC_H diff --git a/include/grpc_c/server_streaming_blocking_call_public.h b/include/grpc_c/server_streaming_blocking_call.h similarity index 92% rename from include/grpc_c/server_streaming_blocking_call_public.h rename to include/grpc_c/server_streaming_blocking_call.h index 2303529cf1eb8..de74e45e4065d 100644 --- a/include/grpc_c/server_streaming_blocking_call_public.h +++ b/include/grpc_c/server_streaming_blocking_call.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H -#define TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H typedef struct grpc_client_reader GRPC_client_reader; @@ -46,4 +46,4 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_messag GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); -#endif //TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#endif // GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/include/grpc_c/status_public.h b/include/grpc_c/status.h similarity index 93% rename from include/grpc_c/status_public.h rename to include/grpc_c/status.h index 25e638dc0e70b..da586e551ff35 100644 --- a/include/grpc_c/status_public.h +++ b/include/grpc_c/status.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_STATUS_PUBLIC_H -#define TEST_GRPC_C_STATUS_PUBLIC_H +#ifndef GRPC_C_STATUS_PUBLIC_H +#define GRPC_C_STATUS_PUBLIC_H typedef struct grpc_status { grpc_status_code code; @@ -43,4 +43,4 @@ typedef struct grpc_status { typedef grpc_status GRPC_status; -#endif //TEST_GRPC_C_STATUS_CODE_PUBLIC_H +#endif // GRPC_C_STATUS_CODE_PUBLIC_H diff --git a/include/grpc_c/status_code_public.h b/include/grpc_c/status_code.h similarity index 98% rename from include/grpc_c/status_code_public.h rename to include/grpc_c/status_code.h index 0edc14b6902f1..46fc3d8add113 100644 --- a/include/grpc_c/status_code_public.h +++ b/include/grpc_c/status_code.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_STATUS_CODE_PUBLIC_H -#define TEST_GRPC_C_STATUS_CODE_PUBLIC_H +#ifndef GRPC_C_STATUS_CODE_PUBLIC_H +#define GRPC_C_STATUS_CODE_PUBLIC_H typedef enum { /* Not an error; returned on success */ @@ -153,4 +153,4 @@ typedef enum { GRPC_STATUS__DO_NOT_USE = -1 } grpc_status_code; -#endif //TEST_GRPC_C_STATUS_CODE_PUBLIC_H +#endif // GRPC_C_STATUS_CODE_PUBLIC_H diff --git a/include/grpc_c/unary_async_call_public.h b/include/grpc_c/unary_async_call.h similarity index 91% rename from include/grpc_c/unary_async_call_public.h rename to include/grpc_c/unary_async_call.h index 8e515f9f6d488..8db33d3d8ff01 100644 --- a/include/grpc_c/unary_async_call_public.h +++ b/include/grpc_c/unary_async_call.h @@ -32,11 +32,11 @@ */ -#ifndef TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H -#define TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H +#ifndef GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H +#define GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H -#include "completion_queue_public.h" -#include "grpc_c_public.h" +#include +#include typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; @@ -48,4 +48,4 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_me void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); -#endif //TEST_GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H +#endif // GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H diff --git a/include/grpc_c/unary_blocking_call_public.h b/include/grpc_c/unary_blocking_call.h similarity index 91% rename from include/grpc_c/unary_blocking_call_public.h rename to include/grpc_c/unary_blocking_call.h index 5363b186dec9b..f385ce69cf917 100644 --- a/include/grpc_c/unary_blocking_call_public.h +++ b/include/grpc_c/unary_blocking_call.h @@ -32,12 +32,12 @@ */ -#ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H -#define TEST_GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H -#include "grpc_c_public.h" +#include GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, GRPC_context *const context, const GRPC_message message, GRPC_message *response); -#endif //TEST_GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H +#endif // GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H From 247367031b1df284c14e9e4f48626b4a9a7e1bd6 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 7 Jul 2016 17:19:55 -0700 Subject: [PATCH 029/202] fix include paths for C src --- src/c/bidi_streaming_blocking_call.c | 10 +++++----- src/c/bidi_streaming_blocking_call.h | 8 ++++---- src/c/call_ops.c | 5 ++--- src/c/call_ops.h | 2 +- src/c/channel.c | 2 +- src/c/client_streaming_blocking_call.c | 4 ++-- src/c/client_streaming_blocking_call.h | 2 +- src/c/completion_queue.h | 2 +- src/c/context.c | 2 +- src/c/context.h | 4 ++-- src/c/id_serialization.h | 2 +- src/c/init_shutdown.c | 1 - src/c/message.h | 2 +- src/c/server_streaming_blocking_call.c | 6 +++--- src/c/server_streaming_blocking_call.h | 2 +- src/c/status.h | 8 ++++---- src/c/tag.h | 6 +++--- src/c/unary_async_call.c | 13 ++++++++----- src/c/unary_blocking_call.c | 2 +- 19 files changed, 42 insertions(+), 41 deletions(-) diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 0a7f6d18d1078..203e17bdc2729 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -34,7 +34,7 @@ #include #include "bidi_streaming_blocking_call.h" -#include "../completion_queue_public.h" +#include #include "alloc.h" #include "tag.h" #include "completion_queue.h" @@ -68,7 +68,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *chann .cq = cq, }); - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); GRPC_completion_queue_pluck_internal(cq, TAG(&set)); return reader_writer; } @@ -96,7 +96,7 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {}, response); + grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {0}, response); return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(pSet)) && pSet->message_received; } @@ -122,7 +122,7 @@ bool GRPC_bidi_streaming_blocking_close(GRPC_client_reader_writer *reader_writer .user_tag = &set }; - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); } @@ -134,7 +134,7 @@ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reade .context = reader_writer->context, .user_tag = &set }; - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); GRPC_completion_queue_shutdown_and_destroy(reader_writer->cq); grpc_call_destroy(reader_writer->call); diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index 01fc398b4389d..fda93dbd5dd51 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -32,11 +32,11 @@ */ -#ifndef TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H -#define TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H +#ifndef GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H +#define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H #include "call_ops.h" -#include "../bidi_streaming_blocking_call_public.h" +#include typedef struct grpc_client_reader_writer { grpc_context *context; @@ -44,4 +44,4 @@ typedef struct grpc_client_reader_writer { grpc_completion_queue *cq; } grpc_client_reader_writer; -#endif //TEST_GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H +#endif // GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 15ad29ac0d2c8..17b92ef2765b6 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -31,8 +31,7 @@ * */ #include "call_ops.h" -#include "context.h" -#include "../message_public.h" +#include #include "tag.h" #include #include @@ -195,7 +194,7 @@ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context) while (count < GRPC_MAX_OP_COUNT) { if (set->op_managers[count].fill == NULL && set->op_managers[count].finish == NULL) break; // end of call set if (set->op_managers[count].finish == NULL) continue; - size_t size = 100; // todo(yifeit): hook up this value + int size = 100; // todo(yifeit): hook up this value bool status; set->op_managers[count].finish(context, set, &status, size); allStatus &= status; diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 414a894838306..3ae6a302d3e95 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -35,7 +35,7 @@ #ifndef TEST_GRPC_C_CALL_OPS_H #define TEST_GRPC_C_CALL_OPS_H -#include "../grpc_c_public.h" +#include #include "message.h" #include "context.h" #include diff --git a/src/c/channel.c b/src/c/channel.c index 00663382646cb..5ef799c94dec6 100644 --- a/src/c/channel.c +++ b/src/c/channel.c @@ -31,7 +31,7 @@ * */ -#include "../channel_public.h" +#include #include "init_shutdown.h" #include diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index daafc94cb9aae..114221b27f031 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -80,7 +80,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, }); writer->finish_ops.user_tag = &writer->finish_ops; - grpc_start_batch_from_op_set(writer->call, &set, writer->context, (GRPC_message) {}, NULL); + grpc_start_batch_from_op_set(writer->call, &set, writer->context, (GRPC_message) {0}, NULL); GRPC_completion_queue_pluck_internal(cq, TAG(&set)); return writer; } @@ -99,7 +99,7 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC } GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { - grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {}, writer->response); + grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {0}, writer->response); GRPC_completion_queue_pluck_internal(writer->cq, TAG(&writer->finish_ops)); GRPC_completion_queue_shutdown_and_destroy(writer->cq); grpc_call_destroy(writer->call); diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 065cc1c0b15e9..3ac8d4fe0598d 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -35,7 +35,7 @@ #ifndef TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H #define TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H -#include "../client_streaming_blocking_call_public.h" +#include #include "call_ops.h" typedef struct grpc_client_writer { diff --git a/src/c/completion_queue.h b/src/c/completion_queue.h index 5a7a67f5d180b..699083fc57451 100644 --- a/src/c/completion_queue.h +++ b/src/c/completion_queue.h @@ -35,7 +35,7 @@ #ifndef TEST_GRPC_C_COMPLETION_QUEUE_H #define TEST_GRPC_C_COMPLETION_QUEUE_H -#include "../completion_queue_public.h" +#include bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag); diff --git a/src/c/context.c b/src/c/context.c index 05c21635db1c8..246cdd1fc4665 100644 --- a/src/c/context.c +++ b/src/c/context.c @@ -32,7 +32,7 @@ */ #include -#include "../context_public.h" +#include #include "context.h" #include "alloc.h" #include "id_serialization.h" diff --git a/src/c/context.h b/src/c/context.h index 84e67d5ed1b48..11e5db106481e 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -35,8 +35,8 @@ #ifndef TEST_GRPC_C_CONTEXT_H #define TEST_GRPC_C_CONTEXT_H -#include "../grpc_c_public.h" -#include "../serialization_public.h" +#include +#include #include #include "status.h" #include "message.h" diff --git a/src/c/id_serialization.h b/src/c/id_serialization.h index 92c81d51cc9c7..d5c2d5626370b 100644 --- a/src/c/id_serialization.h +++ b/src/c/id_serialization.h @@ -35,7 +35,7 @@ #ifndef TEST_GRPC_C_MOCK_SERIALIZATION_H #define TEST_GRPC_C_MOCK_SERIALIZATION_H -#include "../serialization_public.h" +#include #include "message.h" /* Serialization functions that doesn't do anything except duplicating the buffer */ diff --git a/src/c/init_shutdown.c b/src/c/init_shutdown.c index 93dc7a45cb6f9..3d05ca646c65d 100644 --- a/src/c/init_shutdown.c +++ b/src/c/init_shutdown.c @@ -33,7 +33,6 @@ #include "init_shutdown.h" #include -#include #include #include #include diff --git a/src/c/message.h b/src/c/message.h index 3ae78c6eccc6c..f0f564b82200f 100644 --- a/src/c/message.h +++ b/src/c/message.h @@ -35,7 +35,7 @@ #ifndef TEST_GRPC_C_MESSAGE_H #define TEST_GRPC_C_MESSAGE_H -#include "../message_public.h" +#include typedef GRPC_message grpc_message; diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 97ed706a83fbe..1d9d1c5874759 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -34,7 +34,7 @@ #include #include "server_streaming_blocking_call.h" -#include "../completion_queue_public.h" +#include #include "alloc.h" #include "completion_queue.h" #include "tag.h" @@ -99,7 +99,7 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_messag pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader->call, pSet, reader->context, (GRPC_message) {}, response); + grpc_start_batch_from_op_set(reader->call, pSet, reader->context, (GRPC_message) {0}, response); return GRPC_completion_queue_pluck_internal(reader->cq, TAG(pSet)) && pSet->message_received; } @@ -111,7 +111,7 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { .context = reader->context, .user_tag = &set }; - grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {}, NULL); + grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, TAG(&set)); GRPC_completion_queue_shutdown_and_destroy(reader->cq); grpc_call_destroy(reader->call); diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 40720e531207d..293a599dfa4ad 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -36,7 +36,7 @@ #define TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H #include "call_ops.h" -#include "../server_streaming_blocking_call_public.h" +#include typedef struct grpc_client_reader { grpc_context *context; diff --git a/src/c/status.h b/src/c/status.h index d46b85f139d37..27c7143a806a3 100644 --- a/src/c/status.h +++ b/src/c/status.h @@ -32,10 +32,10 @@ */ -#ifndef TEST_GRPC_C_STATUS_H -#define TEST_GRPC_C_STATUS_H +#ifndef GRPC_C_STATUS_H +#define GRPC_C_STATUS_H #include -#include "../status_public.h" +#include -#endif //TEST_GRPC_C_STATUS_H +#endif // GRPC_C_STATUS_H diff --git a/src/c/tag.h b/src/c/tag.h index a7b38a890b1ac..8f2b8c6c568e1 100644 --- a/src/c/tag.h +++ b/src/c/tag.h @@ -32,9 +32,9 @@ */ -#ifndef TEST_GRPC_C_TAG_H -#define TEST_GRPC_C_TAG_H +#ifndef GRPC_C_TAG_H +#define GRPC_C_TAG_H #define TAG(x) ((void *)x) -#endif //TEST_GRPC_C_TAG_H +#endif // GRPC_C_TAG_H diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 40624eafdbd23..9e9a899fb61c5 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -35,7 +35,7 @@ #include #include "unary_async_call.h" #include "alloc.h" -#include "../unary_async_call_public.h" +#include #include "tag.h" GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method rpc_method, @@ -60,13 +60,15 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, grpc_op_send_close }, context, + .response = NULL, .hide_from_user = true }, .meta_buf = { { grpc_op_recv_metadata }, - context + context, + .response = NULL }, .finish_buf = { { @@ -74,7 +76,8 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, grpc_op_recv_object, grpc_op_recv_status }, - context + context, + .response = NULL } }); @@ -84,10 +87,10 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { reader->meta_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, (GRPC_message) {}, NULL); + grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, (GRPC_message) {0}, NULL); } void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_message *response, void *tag) { reader->finish_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, reader->context, (GRPC_message) {}, response); + grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, reader->context, (GRPC_message) {0}, response); } diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index a836bf68df559..9be392c32877a 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -32,7 +32,7 @@ */ #include "unary_blocking_call.h" -#include "../grpc_c_public.h" +#include #include "context.h" #include "call_ops.h" #include "tag.h" From 654da5f47c865e18b0dad8a9753fbdbb82a1c9c3 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 7 Jul 2016 17:43:31 -0700 Subject: [PATCH 030/202] [RUNTIME] generate correct header includes --- include/grpc_c/completion_queue.h | 1 - include/grpc_c/grpc_c.h | 1 + src/c/bidi_streaming_blocking_call.c | 1 + src/c/call_ops.c | 2 +- src/c/channel.c | 3 ++- src/c/client_streaming_blocking_call.c | 1 + src/c/completion_queue.c | 1 + src/c/context.c | 1 + src/c/id_serialization.c | 1 + src/c/server_streaming_blocking_call.c | 2 ++ src/c/unary_async_call.c | 1 + 11 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 37bfbffdd6d66..2a0615cf08024 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -37,7 +37,6 @@ #include -typedef struct grpc_completion_queue GRPC_completion_queue; typedef struct gpr_timespec gpr_timespec; /// Tri-state return for GRPC_commit_ops_and_wait diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 43348439f4ef2..9c730d98327cf 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -41,6 +41,7 @@ typedef struct grpc_channel GRPC_channel; typedef struct grpc_status GRPC_status; typedef struct grpc_context GRPC_context; +typedef struct grpc_completion_queue GRPC_completion_queue; typedef struct GRPC_method { enum RpcType { diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 203e17bdc2729..4daed48a21962 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -32,6 +32,7 @@ */ +#include #include #include "bidi_streaming_blocking_call.h" #include diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 17b92ef2765b6..4542afd286d35 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -30,8 +30,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ +#include #include "call_ops.h" -#include #include "tag.h" #include #include diff --git a/src/c/channel.c b/src/c/channel.c index 5ef799c94dec6..b025fcc38d4f5 100644 --- a/src/c/channel.c +++ b/src/c/channel.c @@ -30,7 +30,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ - + +#include #include #include "init_shutdown.h" #include diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 114221b27f031..69c8fc4d62beb 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -32,6 +32,7 @@ */ +#include #include #include "client_streaming_blocking_call.h" #include "tag.h" diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 4a43cd66ff46f..ccc52e1c707d8 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -34,6 +34,7 @@ #include #include +#include #include "completion_queue.h" #include "call_ops.h" diff --git a/src/c/context.c b/src/c/context.c index 246cdd1fc4665..10d157f0f5906 100644 --- a/src/c/context.c +++ b/src/c/context.c @@ -32,6 +32,7 @@ */ #include +#include #include #include "context.h" #include "alloc.h" diff --git a/src/c/id_serialization.c b/src/c/id_serialization.c index b74020fb17df7..6c190cc3083e4 100644 --- a/src/c/id_serialization.c +++ b/src/c/id_serialization.c @@ -32,6 +32,7 @@ */ #include +#include #include "id_serialization.h" void GRPC_id_serialize(const grpc_message input, grpc_message *output) { diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 1d9d1c5874759..8e42f90382bf7 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -32,6 +32,8 @@ */ +#include +#include #include #include "server_streaming_blocking_call.h" #include diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 9e9a899fb61c5..04d76bb7e3493 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -32,6 +32,7 @@ */ +#include #include #include "unary_async_call.h" #include "alloc.h" From 1d44b3a0602843ad8c3918c37cd358286b9fcc2f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 15:13:18 -0700 Subject: [PATCH 031/202] [RUNTIME] Generate all client-side API declarations --- include/grpc_c/bidi_streaming_blocking_call.h | 6 +- .../grpc_c/{context.h => client_context.h} | 4 +- .../grpc_c/client_streaming_blocking_call.h | 8 +- include/grpc_c/grpc_c.h | 10 +- .../grpc_c/server_streaming_blocking_call.h | 3 +- include/grpc_c/unary_async_call.h | 3 +- include/grpc_c/unary_blocking_call.h | 7 +- src/c/bidi_streaming_blocking_call.c | 6 +- src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.c | 30 +- src/c/call_ops.h | 16 +- src/c/{context.c => client_context.c} | 12 +- src/c/{context.h => client_context.h} | 12 +- src/c/client_streaming_blocking_call.c | 8 +- src/c/client_streaming_blocking_call.h | 2 +- src/c/server_streaming_blocking_call.c | 4 +- src/c/server_streaming_blocking_call.h | 2 +- src/c/unary_async_call.c | 2 +- src/c/unary_async_call.h | 2 +- src/c/unary_blocking_call.c | 4 +- src/core/ext/census/client_context.c | 509 ++++++++++++++++++ 21 files changed, 589 insertions(+), 63 deletions(-) rename include/grpc_c/{context.h => client_context.h} (92%) rename src/c/{context.c => client_context.c} (88%) rename src/c/{context.h => client_context.h} (90%) create mode 100644 src/core/ext/census/client_context.c diff --git a/include/grpc_c/bidi_streaming_blocking_call.h b/include/grpc_c/bidi_streaming_blocking_call.h index e4a32106f615d..f240f4e6a6b87 100644 --- a/include/grpc_c/bidi_streaming_blocking_call.h +++ b/include/grpc_c/bidi_streaming_blocking_call.h @@ -39,13 +39,15 @@ typedef struct grpc_client_reader_writer GRPC_client_reader_writer; GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *channel, const GRPC_method rpc_method, - GRPC_context *const context); + GRPC_client_context *const context); bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader, GRPC_message *response); bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request); -bool GRPC_bidi_streaming_blocking_close(GRPC_client_reader_writer *reader_writer); +/* Marks the end of client stream. Useful for bidi-calls where */ +/* the server needs all data from the client to produce a response */ +bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_writer); GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer); diff --git a/include/grpc_c/context.h b/include/grpc_c/client_context.h similarity index 92% rename from include/grpc_c/context.h rename to include/grpc_c/client_context.h index 1bdecc202245e..213894476e648 100644 --- a/include/grpc_c/context.h +++ b/include/grpc_c/client_context.h @@ -37,7 +37,7 @@ #include -GRPC_context *GRPC_context_create(GRPC_channel *chan); -void GRPC_context_destroy(GRPC_context **context); +GRPC_client_context *GRPC_client_context_create(GRPC_channel *chan); +void GRPC_client_context_destroy(GRPC_client_context **context); #endif // GRPC_C_CONTEXT_PUBLIC_H diff --git a/include/grpc_c/client_streaming_blocking_call.h b/include/grpc_c/client_streaming_blocking_call.h index 042b0e32f969f..a96cc67340f0f 100644 --- a/include/grpc_c/client_streaming_blocking_call.h +++ b/include/grpc_c/client_streaming_blocking_call.h @@ -41,12 +41,14 @@ typedef struct grpc_client_writer GRPC_client_writer; GRPC_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, - GRPC_context *const context, - GRPC_message *response); + const GRPC_method rpc_method, + GRPC_client_context *const context, + GRPC_message *response); bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC_message request); +/* Terminating the writer takes care of ending the call, freeing the writer. */ +/* Returns call status in the context object. */ GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer); #endif // GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 9c730d98327cf..1c99b9e40e0ba 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -40,9 +40,17 @@ typedef struct grpc_channel GRPC_channel; typedef struct grpc_status GRPC_status; -typedef struct grpc_context GRPC_context; +typedef struct grpc_client_context GRPC_client_context; typedef struct grpc_completion_queue GRPC_completion_queue; +typedef struct grpc_client_reader_writer GRPC_client_reader_writer; +typedef struct grpc_client_reader GRPC_client_reader; +typedef struct grpc_client_writer GRPC_client_writer; +typedef struct grpc_client_async_reader_writer GRPC_client_async_reader_writer; +typedef struct grpc_client_async_reader GRPC_client_async_reader; +typedef struct grpc_client_async_writer GRPC_client_async_writer; +typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; + typedef struct GRPC_method { enum RpcType { NORMAL_RPC = 0, diff --git a/include/grpc_c/server_streaming_blocking_call.h b/include/grpc_c/server_streaming_blocking_call.h index de74e45e4065d..bae9cddc71ab8 100644 --- a/include/grpc_c/server_streaming_blocking_call.h +++ b/include/grpc_c/server_streaming_blocking_call.h @@ -39,11 +39,12 @@ typedef struct grpc_client_reader GRPC_client_reader; GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, const GRPC_method rpc_method, - GRPC_context *const context, + GRPC_client_context *const context, const GRPC_message request); bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_message *response); +/* Terminating the writer takes care of ending the call, freeing the writer. */ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); #endif // GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H diff --git a/include/grpc_c/unary_async_call.h b/include/grpc_c/unary_async_call.h index 8db33d3d8ff01..477fb3002f050 100644 --- a/include/grpc_c/unary_async_call.h +++ b/include/grpc_c/unary_async_call.h @@ -42,7 +42,8 @@ typedef struct grpc_client_async_response_reader GRPC_client_async_response_read GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method rpc_method, - const GRPC_message request, GRPC_context *const context); + const GRPC_message request, + GRPC_client_context *const context); void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_message *response, void *tag); diff --git a/include/grpc_c/unary_blocking_call.h b/include/grpc_c/unary_blocking_call.h index f385ce69cf917..f494854fb6301 100644 --- a/include/grpc_c/unary_blocking_call.h +++ b/include/grpc_c/unary_blocking_call.h @@ -37,7 +37,10 @@ #include -GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, - GRPC_context *const context, const GRPC_message message, GRPC_message *response); +GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, + const GRPC_method *const rpc_method, + GRPC_client_context *const context, + const GRPC_message message, + GRPC_message *response); #endif // GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 4daed48a21962..e79de9a4b2ba0 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -42,7 +42,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *channel, const GRPC_method rpc_method, - GRPC_context *const context) { + GRPC_client_context *const context) { grpc_completion_queue *cq = GRPC_completion_queue_create(); grpc_call *call = grpc_channel_create_call(channel, NULL, @@ -114,7 +114,7 @@ bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); } -bool GRPC_bidi_streaming_blocking_close(GRPC_client_reader_writer *reader_writer) { +bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_writer) { grpc_call_op_set set = { { grpc_op_send_close @@ -140,7 +140,7 @@ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reade GRPC_completion_queue_shutdown_and_destroy(reader_writer->cq); grpc_call_destroy(reader_writer->call); reader_writer->context->call = NULL; - grpc_context *context = reader_writer->context; + grpc_client_context *context = reader_writer->context; free(reader_writer); return context->status; } diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index fda93dbd5dd51..c90cd7130cb41 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -39,7 +39,7 @@ #include typedef struct grpc_client_reader_writer { - grpc_context *context; + grpc_client_context *context; grpc_call *call; grpc_completion_queue *cq; } grpc_client_reader_writer; diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 4542afd286d35..b0a06deef5f23 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -36,7 +36,7 @@ #include #include -static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op->flags = 0; @@ -44,7 +44,7 @@ static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_c return true; } -static void op_send_metadata_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_send_metadata_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } @@ -53,7 +53,7 @@ const grpc_op_manager grpc_op_send_metadata = { op_send_metadata_finish }; -static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_MESSAGE; grpc_message serialized; @@ -70,7 +70,7 @@ static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_con return true; } -static void op_send_object_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_send_object_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } @@ -79,7 +79,7 @@ const grpc_op_manager grpc_op_send_object = { op_send_object_finish }; -static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { if (context->initial_metadata_received) return false; op->op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array_init(&context->recv_metadata_array); @@ -89,7 +89,7 @@ static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_c return true; } -static void op_recv_metadata_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_recv_metadata_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { context->initial_metadata_received = true; } @@ -98,7 +98,7 @@ const grpc_op_manager grpc_op_recv_metadata = { op_recv_metadata_finish }; -static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { set->message_received = false; set->response = response; op->op = GRPC_OP_RECV_MESSAGE; @@ -109,7 +109,7 @@ static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_con return true; } -static void op_recv_object_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_recv_object_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { if (set->recv_buffer) { GPR_ASSERT(set->message_received == false); // deserialize @@ -135,14 +135,14 @@ const grpc_op_manager grpc_op_recv_object = { op_recv_object_finish }; -static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; return true; } -static void op_send_close_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_send_close_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } const grpc_op_manager grpc_op_send_close = { @@ -150,7 +150,7 @@ const grpc_op_manager grpc_op_send_close = { op_send_close_finish }; -static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; grpc_metadata_array_init(&context->trailing_metadata_array); context->status.details = NULL; @@ -165,7 +165,7 @@ static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_con return true; } -static void op_recv_status_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_recv_status_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { } const grpc_op_manager grpc_op_recv_status = { @@ -173,7 +173,7 @@ const grpc_op_manager grpc_op_recv_status = { op_recv_status_finish }; -void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, const grpc_message message, grpc_message *response, grpc_op ops[], size_t *nops) { size_t manager = 0; size_t filled = 0; @@ -188,7 +188,7 @@ void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_me *nops = filled; } -bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context) { +bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *context) { size_t count = 0; bool allStatus = true; while (count < GRPC_MAX_OP_COUNT) { @@ -203,7 +203,7 @@ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context) return allStatus; } -void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_context *context, +void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_client_context *context, const grpc_message request, grpc_message *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 3ae6a302d3e95..bbcbede53c2c8 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -37,16 +37,16 @@ #include #include "message.h" -#include "context.h" +#include "client_context.h" #include #include typedef GRPC_method grpc_method; -typedef struct grpc_context grpc_context; +typedef struct grpc_client_context grpc_client_context; typedef struct grpc_call_op_set grpc_call_op_set; -typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_context *, grpc_call_op_set *, const grpc_message message, grpc_message *response); -typedef void (*grpc_op_finisher)(grpc_context *, grpc_call_op_set *, bool *status, int max_message_size); +typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_client_context *, grpc_call_op_set *, const grpc_message message, grpc_message *response); +typedef void (*grpc_op_finisher)(grpc_client_context *, grpc_call_op_set *, bool *status, int max_message_size); typedef struct grpc_op_manager { const grpc_op_filler fill; @@ -57,7 +57,7 @@ enum { GRPC_MAX_OP_COUNT = 8 }; typedef struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; - grpc_context * const context; + grpc_client_context * const context; /* these are used by individual operations */ grpc_message *response; @@ -73,13 +73,13 @@ typedef struct grpc_call_op_set { bool *user_done; // for clients reading a stream } grpc_call_op_set; -void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_context *context, +void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, const grpc_message message, grpc_message *response, grpc_op ops[], size_t *nops); /* Runs post processing steps in the call op set. Returns false if something wrong happens e.g. serialization. */ -bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_context *context); +bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *context); -void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_context *context, +void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_client_context *context, const grpc_message message, grpc_message *response); /* list of operations */ diff --git a/src/c/context.c b/src/c/client_context.c similarity index 88% rename from src/c/context.c rename to src/c/client_context.c index 10d157f0f5906..97a5188b3038c 100644 --- a/src/c/context.c +++ b/src/c/client_context.c @@ -33,14 +33,14 @@ #include #include -#include -#include "context.h" +#include +#include "client_context.h" #include "alloc.h" #include "id_serialization.h" -grpc_context *GRPC_context_create(grpc_channel *chan) { - grpc_context *context = GRPC_ALLOC_STRUCT( - grpc_context, { +grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { + grpc_client_context *context = GRPC_ALLOC_STRUCT( + grpc_client_context, { .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), .channel = chan, .serialize = GRPC_id_serialize, @@ -50,7 +50,7 @@ grpc_context *GRPC_context_create(grpc_channel *chan) { return context; } -void GRPC_context_destroy(grpc_context **context) { +void GRPC_client_context_destroy(GRPC_client_context **context) { if ((*context)->status.details) { gpr_free((*context)->status.details); } diff --git a/src/c/context.h b/src/c/client_context.h similarity index 90% rename from src/c/context.h rename to src/c/client_context.h index 11e5db106481e..c09968b07773f 100644 --- a/src/c/context.h +++ b/src/c/client_context.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_CONTEXT_H -#define TEST_GRPC_C_CONTEXT_H +#ifndef TEST_GRPC_C_CLIENT_CONTEXT_H +#define TEST_GRPC_C_CLIENT_CONTEXT_H #include #include @@ -45,7 +45,7 @@ typedef struct grpc_call_op_set grpc_call_op_set; -typedef struct grpc_context { +typedef struct grpc_client_context { grpc_metadata *send_metadata_array; grpc_metadata_array recv_metadata_array; grpc_metadata_array trailing_metadata_array; @@ -63,8 +63,8 @@ typedef struct grpc_context { GRPC_method rpc_method; grpc_channel *channel; grpc_call *call; -} grpc_context; +} grpc_client_context; -typedef grpc_context GRPC_context; +typedef grpc_client_context GRPC_client_context; -#endif //TEST_GRPC_C_CONTEXT_H +#endif //TEST_GRPC_C_CLIENT_CONTEXT_H diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 69c8fc4d62beb..c2dfc17d56c01 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -40,9 +40,9 @@ #include "alloc.h" grpc_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, - GRPC_context *const context, - GRPC_message *response) { + const GRPC_method rpc_method, + GRPC_client_context *const context, + GRPC_message *response) { grpc_completion_queue *cq = GRPC_completion_queue_create(); grpc_call *call = grpc_channel_create_call(channel, @@ -105,7 +105,7 @@ GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { GRPC_completion_queue_shutdown_and_destroy(writer->cq); grpc_call_destroy(writer->call); writer->context->call = NULL; - grpc_context *context = writer->context; + grpc_client_context *context = writer->context; free(writer); return context->status; } diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 3ac8d4fe0598d..d10cba79abc9e 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -41,7 +41,7 @@ typedef struct grpc_client_writer { grpc_call_op_set finish_ops; - grpc_context *context; + grpc_client_context *context; grpc_call *call; grpc_completion_queue *cq; grpc_message *response; diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 8e42f90382bf7..301c2502f2995 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -43,7 +43,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, const GRPC_method rpc_method, - GRPC_context *const context, + GRPC_client_context *const context, const GRPC_message request) { grpc_completion_queue *cq = GRPC_completion_queue_create(); grpc_call *call = grpc_channel_create_call(channel, @@ -118,7 +118,7 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { GRPC_completion_queue_shutdown_and_destroy(reader->cq); grpc_call_destroy(reader->call); reader->context->call = NULL; - grpc_context *context = reader->context; + grpc_client_context *context = reader->context; free(reader); return context->status; } diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 293a599dfa4ad..71e32e932bdcd 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -39,7 +39,7 @@ #include typedef struct grpc_client_reader { - grpc_context *context; + grpc_client_context *context; grpc_call *call; grpc_completion_queue *cq; } grpc_client_reader; diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 04d76bb7e3493..bd24a798101fb 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -40,7 +40,7 @@ #include "tag.h" GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method rpc_method, - const GRPC_message request, GRPC_context *context) { + const GRPC_message request, GRPC_client_context *context) { grpc_call *call = grpc_channel_create_call(channel, NULL, GRPC_PROPAGATE_DEFAULTS, diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index a1bf80636193a..598abc526be62 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -43,7 +43,7 @@ typedef struct grpc_client_async_response_reader { grpc_call_op_set finish_buf; grpc_completion_queue *cq; - grpc_context *context; + grpc_client_context *context; grpc_call *call; } grpc_client_async_response_reader; diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 9be392c32877a..ee253ab93b156 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -33,7 +33,7 @@ #include "unary_blocking_call.h" #include -#include "context.h" +#include "client_context.h" #include "call_ops.h" #include "tag.h" #include "completion_queue.h" @@ -41,7 +41,7 @@ #include GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, - GRPC_context *const context, const GRPC_message message, GRPC_message *response) { + GRPC_client_context *const context, const GRPC_message message, GRPC_message *response) { grpc_completion_queue *cq = GRPC_completion_queue_create(); grpc_call *call = grpc_channel_create_call(channel, NULL, diff --git a/src/core/ext/census/client_context.c b/src/core/ext/census/client_context.c new file mode 100644 index 0000000000000..0dfc4ecbf1da6 --- /dev/null +++ b/src/core/ext/census/client_context.c @@ -0,0 +1,509 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include "src/core/lib/support/string.h" + +// Functions in this file support the public context API, including +// encoding/decoding as part of context propagation across RPC's. The overall +// requirements (in approximate priority order) for the +// context representation: +// 1. Efficient conversion to/from wire format +// 2. Minimal bytes used on-wire +// 3. Efficient context creation +// 4. Efficient lookup of tag value for a key +// 5. Efficient iteration over tags +// 6. Minimal memory footprint +// +// Notes on tradeoffs/decisions: +// * tag includes 1 byte length of key, as well as nil-terminating byte. These +// are to aid in efficient parsing and the ability to directly return key +// strings. This is more important than saving a single byte/tag on the wire. +// * The wire encoding uses only single byte values. This eliminates the need +// to handle endian-ness conversions. It also means there is a hard upper +// limit of 255 for both CENSUS_MAX_TAG_KV_LEN and CENSUS_MAX_PROPAGATED_TAGS. +// * Keep all tag information (keys/values/flags) in a single memory buffer, +// that can be directly copied to the wire. + +// min and max valid chars in tag keys and values. All printable ASCII is OK. +#define MIN_VALID_TAG_CHAR 32 // ' ' +#define MAX_VALID_TAG_CHAR 126 // '~' + +// Structure representing a set of tags. Essentially a count of number of tags +// present, and pointer to a chunk of memory that contains the per-tag details. +struct tag_set { + int ntags; // number of tags. + int ntags_alloc; // ntags + number of deleted tags (total number of tags + // in all of kvm). This will always be == ntags, except during the process + // of building a new tag set. + size_t kvm_size; // number of bytes allocated for key/value storage. + size_t kvm_used; // number of bytes of used key/value memory + char *kvm; // key/value memory. Consists of repeated entries of: + // Offset Size Description + // 0 1 Key length, including trailing 0. (K) + // 1 1 Value length, including trailing 0 (V) + // 2 1 Flags + // 3 K Key bytes + // 3 + K V Value bytes + // + // We refer to the first 3 entries as the 'tag header'. If extra values are + // introduced in the header, you will need to modify the TAG_HEADER_SIZE + // constant, the raw_tag structure (and everything that uses it) and the + // encode/decode functions appropriately. +}; + +// Number of bytes in tag header. +#define TAG_HEADER_SIZE 3 // key length (1) + value length (1) + flags (1) +// Offsets to tag header entries. +#define KEY_LEN_OFFSET 0 +#define VALUE_LEN_OFFSET 1 +#define FLAG_OFFSET 2 + +// raw_tag represents the raw-storage form of a tag in the kvm of a tag_set. +struct raw_tag { + uint8_t key_len; + uint8_t value_len; + uint8_t flags; + char *key; + char *value; +}; + +// Use a reserved flag bit for indication of deleted tag. +#define CENSUS_TAG_DELETED CENSUS_TAG_RESERVED +#define CENSUS_TAG_IS_DELETED(flags) (flags & CENSUS_TAG_DELETED) + +// Primary representation of a context. Composed of 2 underlying tag_set +// structs, one each for propagated and local (non-propagated) tags. This is +// to efficiently support tag encoding/decoding. +// TODO(aveitch): need to add tracing id's/structure. +struct census_context { + struct tag_set tags[2]; + census_context_status status; +}; + +// Indices into the tags member of census_context +#define PROPAGATED_TAGS 0 +#define LOCAL_TAGS 1 + +// Validate (check all characters are in range and size is less than limit) a +// key or value string. Returns 0 if the string is invalid, or the length +// (including terminator) if valid. +static size_t validate_tag(const char *kv) { + size_t len = 1; + char ch; + while ((ch = *kv++) != 0) { + if (ch < MIN_VALID_TAG_CHAR || ch > MAX_VALID_TAG_CHAR) { + return 0; + } + len++; + } + if (len > CENSUS_MAX_TAG_KV_LEN) { + return 0; + } + return len; +} + +// Extract a raw tag given a pointer (raw) to the tag header. Allow for some +// extra bytes in the tag header (see encode/decode functions for usage: this +// allows for future expansion of the tag header). +static char *decode_tag(struct raw_tag *tag, char *header, int offset) { + tag->key_len = (uint8_t)(*header++); + tag->value_len = (uint8_t)(*header++); + tag->flags = (uint8_t)(*header++); + header += offset; + tag->key = header; + header += tag->key_len; + tag->value = header; + return header + tag->value_len; +} + +// Make a copy (in 'to') of an existing tag_set. +static void tag_set_copy(struct tag_set *to, const struct tag_set *from) { + memcpy(to, from, sizeof(struct tag_set)); + to->kvm = gpr_malloc(to->kvm_size); + memcpy(to->kvm, from->kvm, from->kvm_used); +} + +// Delete a tag from a tag_set, if it exists (returns true if it did). +static bool tag_set_delete_tag(struct tag_set *tags, const char *key, + size_t key_len) { + char *kvp = tags->kvm; + for (int i = 0; i < tags->ntags_alloc; i++) { + uint8_t *flags = (uint8_t *)(kvp + FLAG_OFFSET); + struct raw_tag tag; + kvp = decode_tag(&tag, kvp, 0); + if (CENSUS_TAG_IS_DELETED(tag.flags)) continue; + if ((key_len == tag.key_len) && (memcmp(key, tag.key, key_len) == 0)) { + *flags |= CENSUS_TAG_DELETED; + tags->ntags--; + return true; + } + } + return false; +} + +// Delete a tag from a context, return true if it existed. +static bool context_delete_tag(census_context *context, const census_tag *tag, + size_t key_len) { + return ( + tag_set_delete_tag(&context->tags[LOCAL_TAGS], tag->key, key_len) || + tag_set_delete_tag(&context->tags[PROPAGATED_TAGS], tag->key, key_len)); +} + +// Add a tag to a tag_set. Return true on success, false if the tag could +// not be added because of constraints on tag set size. This function should +// not be called if the tag may already exist (in a non-deleted state) in +// the tag_set, as that would result in two tags with the same key. +static bool tag_set_add_tag(struct tag_set *tags, const census_tag *tag, + size_t key_len, size_t value_len) { + if (tags->ntags == CENSUS_MAX_PROPAGATED_TAGS) { + return false; + } + const size_t tag_size = key_len + value_len + TAG_HEADER_SIZE; + if (tags->kvm_used + tag_size > tags->kvm_size) { + // allocate new memory if needed + tags->kvm_size += 2 * CENSUS_MAX_TAG_KV_LEN + TAG_HEADER_SIZE; + char *new_kvm = gpr_malloc(tags->kvm_size); + memcpy(new_kvm, tags->kvm, tags->kvm_used); + gpr_free(tags->kvm); + tags->kvm = new_kvm; + } + char *kvp = tags->kvm + tags->kvm_used; + *kvp++ = (char)key_len; + *kvp++ = (char)value_len; + // ensure reserved flags are not used. + *kvp++ = (char)(tag->flags & (CENSUS_TAG_PROPAGATE | CENSUS_TAG_STATS)); + memcpy(kvp, tag->key, key_len); + kvp += key_len; + memcpy(kvp, tag->value, value_len); + tags->kvm_used += tag_size; + tags->ntags++; + tags->ntags_alloc++; + return true; +} + +// Add/modify/delete a tag to/in a context. Caller must validate that tag key +// etc. are valid. +static void context_modify_tag(census_context *context, const census_tag *tag, + size_t key_len, size_t value_len) { + // First delete the tag if it is already present. + bool deleted = context_delete_tag(context, tag, key_len); + bool added = false; + if (CENSUS_TAG_IS_PROPAGATED(tag->flags)) { + added = tag_set_add_tag(&context->tags[PROPAGATED_TAGS], tag, key_len, + value_len); + } else { + added = + tag_set_add_tag(&context->tags[LOCAL_TAGS], tag, key_len, value_len); + } + + if (deleted) { + context->status.n_modified_tags++; + } else { + if (added) { + context->status.n_added_tags++; + } else { + context->status.n_ignored_tags++; + } + } +} + +// Remove memory used for deleted tags from a tag set. Basic algorithm: +// 1) Walk through tag set to find first deleted tag. Record where it is. +// 2) Find the next not-deleted tag. Copy all of kvm from there to the end +// "over" the deleted tags +// 3) repeat #1 and #2 until we have seen all tags +// 4) if we are still looking for a not-deleted tag, then all the end portion +// of the kvm is deleted. Just reduce the used amount of memory by the +// appropriate amount. +static void tag_set_flatten(struct tag_set *tags) { + if (tags->ntags == tags->ntags_alloc) return; + bool found_deleted = false; // found a deleted tag. + char *kvp = tags->kvm; + char *dbase = NULL; // record location of deleted tag + for (int i = 0; i < tags->ntags_alloc; i++) { + struct raw_tag tag; + char *next_kvp = decode_tag(&tag, kvp, 0); + if (found_deleted) { + if (!CENSUS_TAG_IS_DELETED(tag.flags)) { + ptrdiff_t reduce = kvp - dbase; // #bytes in deleted tags + GPR_ASSERT(reduce > 0); + ptrdiff_t copy_size = tags->kvm + tags->kvm_used - kvp; + GPR_ASSERT(copy_size > 0); + memmove(dbase, kvp, (size_t)copy_size); + tags->kvm_used -= (size_t)reduce; + next_kvp -= reduce; + found_deleted = false; + } + } else { + if (CENSUS_TAG_IS_DELETED(tag.flags)) { + dbase = kvp; + found_deleted = true; + } + } + kvp = next_kvp; + } + if (found_deleted) { + GPR_ASSERT(dbase > tags->kvm); + tags->kvm_used = (size_t)(dbase - tags->kvm); + } + tags->ntags_alloc = tags->ntags; +} + +census_context *census_context_create(const census_context *base, + const census_tag *tags, int ntags, + census_context_status const **status) { + census_context *context = gpr_malloc(sizeof(census_context)); + // If we are given a base, copy it into our new tag set. Otherwise set it + // to zero/NULL everything. + if (base == NULL) { + memset(context, 0, sizeof(census_context)); + } else { + tag_set_copy(&context->tags[PROPAGATED_TAGS], &base->tags[PROPAGATED_TAGS]); + tag_set_copy(&context->tags[LOCAL_TAGS], &base->tags[LOCAL_TAGS]); + memset(&context->status, 0, sizeof(context->status)); + } + // Walk over the additional tags and, for those that aren't invalid, modify + // the context to add/replace/delete as required. + for (int i = 0; i < ntags; i++) { + const census_tag *tag = &tags[i]; + size_t key_len = validate_tag(tag->key); + // ignore the tag if it is invalid or too short. + if (key_len <= 1) { + context->status.n_invalid_tags++; + } else { + if (tag->value != NULL) { + size_t value_len = validate_tag(tag->value); + if (value_len != 0) { + context_modify_tag(context, tag, key_len, value_len); + } else { + context->status.n_invalid_tags++; + } + } else { + if (context_delete_tag(context, tag, key_len)) { + context->status.n_deleted_tags++; + } + } + } + } + // Remove any deleted tags, update status if needed, and return. + tag_set_flatten(&context->tags[PROPAGATED_TAGS]); + tag_set_flatten(&context->tags[LOCAL_TAGS]); + context->status.n_propagated_tags = context->tags[PROPAGATED_TAGS].ntags; + context->status.n_local_tags = context->tags[LOCAL_TAGS].ntags; + if (status) { + *status = &context->status; + } + return context; +} + +const census_context_status *census_context_get_status( + const census_context *context) { + return &context->status; +} + +void census_context_destroy(census_context *context) { + gpr_free(context->tags[PROPAGATED_TAGS].kvm); + gpr_free(context->tags[LOCAL_TAGS].kvm); + gpr_free(context); +} + +void census_context_initialize_iterator(const census_context *context, + census_context_iterator *iterator) { + iterator->context = context; + iterator->index = 0; + if (context->tags[PROPAGATED_TAGS].ntags != 0) { + iterator->base = PROPAGATED_TAGS; + iterator->kvm = context->tags[PROPAGATED_TAGS].kvm; + } else if (context->tags[LOCAL_TAGS].ntags != 0) { + iterator->base = LOCAL_TAGS; + iterator->kvm = context->tags[LOCAL_TAGS].kvm; + } else { + iterator->base = -1; + } +} + +int census_context_next_tag(census_context_iterator *iterator, + census_tag *tag) { + if (iterator->base < 0) { + return 0; + } + struct raw_tag raw; + iterator->kvm = decode_tag(&raw, iterator->kvm, 0); + tag->key = raw.key; + tag->value = raw.value; + tag->flags = raw.flags; + if (++iterator->index == iterator->context->tags[iterator->base].ntags) { + do { + if (iterator->base == LOCAL_TAGS) { + iterator->base = -1; + return 1; + } + } while (iterator->context->tags[++iterator->base].ntags == 0); + iterator->index = 0; + iterator->kvm = iterator->context->tags[iterator->base].kvm; + } + return 1; +} + +// Find a tag in a tag_set by key. Return true if found, false otherwise. +static bool tag_set_get_tag(const struct tag_set *tags, const char *key, + size_t key_len, census_tag *tag) { + char *kvp = tags->kvm; + for (int i = 0; i < tags->ntags; i++) { + struct raw_tag raw; + kvp = decode_tag(&raw, kvp, 0); + if (key_len == raw.key_len && memcmp(raw.key, key, key_len) == 0) { + tag->key = raw.key; + tag->value = raw.value; + tag->flags = raw.flags; + return true; + } + } + return false; +} + +int census_context_get_tag(const census_context *context, const char *key, + census_tag *tag) { + size_t key_len = strlen(key) + 1; + if (key_len == 1) { + return 0; + } + if (tag_set_get_tag(&context->tags[PROPAGATED_TAGS], key, key_len, tag) || + tag_set_get_tag(&context->tags[LOCAL_TAGS], key, key_len, tag)) { + return 1; + } + return 0; +} + +// Context encoding and decoding functions. +// +// Wire format for tag_set's on the wire: +// +// First, a tag set header: +// +// offset bytes description +// 0 1 version number +// 1 1 number of bytes in this header. This allows for future +// expansion. +// 2 1 number of bytes in each tag header. +// 3 1 ntags value from tag set. +// +// This is followed by the key/value memory from struct tag_set. + +#define ENCODED_VERSION 0 // Version number +#define ENCODED_HEADER_SIZE 4 // size of tag set header + +// Encode a tag set. Returns 0 if buffer is too small. +static size_t tag_set_encode(const struct tag_set *tags, char *buffer, + size_t buf_size) { + if (buf_size < ENCODED_HEADER_SIZE + tags->kvm_used) { + return 0; + } + buf_size -= ENCODED_HEADER_SIZE; + *buffer++ = (char)ENCODED_VERSION; + *buffer++ = (char)ENCODED_HEADER_SIZE; + *buffer++ = (char)TAG_HEADER_SIZE; + *buffer++ = (char)tags->ntags; + if (tags->ntags == 0) { + return ENCODED_HEADER_SIZE; + } + memcpy(buffer, tags->kvm, tags->kvm_used); + return ENCODED_HEADER_SIZE + tags->kvm_used; +} + +size_t census_context_encode(const census_context *context, char *buffer, + size_t buf_size) { + return tag_set_encode(&context->tags[PROPAGATED_TAGS], buffer, buf_size); +} + +// Decode a tag set. +static void tag_set_decode(struct tag_set *tags, const char *buffer, + size_t size) { + uint8_t version = (uint8_t)(*buffer++); + uint8_t header_size = (uint8_t)(*buffer++); + uint8_t tag_header_size = (uint8_t)(*buffer++); + tags->ntags = tags->ntags_alloc = (int)(*buffer++); + if (tags->ntags == 0) { + tags->ntags_alloc = 0; + tags->kvm_size = 0; + tags->kvm_used = 0; + tags->kvm = NULL; + return; + } + if (header_size != ENCODED_HEADER_SIZE) { + GPR_ASSERT(version != ENCODED_VERSION); + GPR_ASSERT(ENCODED_HEADER_SIZE < header_size); + buffer += (header_size - ENCODED_HEADER_SIZE); + } + tags->kvm_used = size - header_size; + tags->kvm_size = tags->kvm_used + CENSUS_MAX_TAG_KV_LEN; + tags->kvm = gpr_malloc(tags->kvm_size); + if (tag_header_size != TAG_HEADER_SIZE) { + // something new in the tag information. I don't understand it, so + // don't copy it over. + GPR_ASSERT(version != ENCODED_VERSION); + GPR_ASSERT(tag_header_size > TAG_HEADER_SIZE); + char *kvp = tags->kvm; + for (int i = 0; i < tags->ntags; i++) { + memcpy(kvp, buffer, TAG_HEADER_SIZE); + kvp += header_size; + struct raw_tag raw; + buffer = + decode_tag(&raw, (char *)buffer, tag_header_size - TAG_HEADER_SIZE); + memcpy(kvp, raw.key, (size_t)raw.key_len + raw.value_len); + kvp += raw.key_len + raw.value_len; + } + } else { + memcpy(tags->kvm, buffer, tags->kvm_used); + } +} + +census_context *census_context_decode(const char *buffer, size_t size) { + census_context *context = gpr_malloc(sizeof(census_context)); + memset(&context->tags[LOCAL_TAGS], 0, sizeof(struct tag_set)); + if (buffer == NULL) { + memset(&context->tags[PROPAGATED_TAGS], 0, sizeof(struct tag_set)); + } else { + tag_set_decode(&context->tags[PROPAGATED_TAGS], buffer, size); + } + memset(&context->status, 0, sizeof(context->status)); + context->status.n_propagated_tags = context->tags[PROPAGATED_TAGS].ntags; + return context; +} From f0e69a986e244c323ae842fdf86bea9fbfdd33b2 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 15:19:32 -0700 Subject: [PATCH 032/202] delete extra file --- src/core/ext/census/client_context.c | 509 --------------------------- 1 file changed, 509 deletions(-) delete mode 100644 src/core/ext/census/client_context.c diff --git a/src/core/ext/census/client_context.c b/src/core/ext/census/client_context.c deleted file mode 100644 index 0dfc4ecbf1da6..0000000000000 --- a/src/core/ext/census/client_context.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include "src/core/lib/support/string.h" - -// Functions in this file support the public context API, including -// encoding/decoding as part of context propagation across RPC's. The overall -// requirements (in approximate priority order) for the -// context representation: -// 1. Efficient conversion to/from wire format -// 2. Minimal bytes used on-wire -// 3. Efficient context creation -// 4. Efficient lookup of tag value for a key -// 5. Efficient iteration over tags -// 6. Minimal memory footprint -// -// Notes on tradeoffs/decisions: -// * tag includes 1 byte length of key, as well as nil-terminating byte. These -// are to aid in efficient parsing and the ability to directly return key -// strings. This is more important than saving a single byte/tag on the wire. -// * The wire encoding uses only single byte values. This eliminates the need -// to handle endian-ness conversions. It also means there is a hard upper -// limit of 255 for both CENSUS_MAX_TAG_KV_LEN and CENSUS_MAX_PROPAGATED_TAGS. -// * Keep all tag information (keys/values/flags) in a single memory buffer, -// that can be directly copied to the wire. - -// min and max valid chars in tag keys and values. All printable ASCII is OK. -#define MIN_VALID_TAG_CHAR 32 // ' ' -#define MAX_VALID_TAG_CHAR 126 // '~' - -// Structure representing a set of tags. Essentially a count of number of tags -// present, and pointer to a chunk of memory that contains the per-tag details. -struct tag_set { - int ntags; // number of tags. - int ntags_alloc; // ntags + number of deleted tags (total number of tags - // in all of kvm). This will always be == ntags, except during the process - // of building a new tag set. - size_t kvm_size; // number of bytes allocated for key/value storage. - size_t kvm_used; // number of bytes of used key/value memory - char *kvm; // key/value memory. Consists of repeated entries of: - // Offset Size Description - // 0 1 Key length, including trailing 0. (K) - // 1 1 Value length, including trailing 0 (V) - // 2 1 Flags - // 3 K Key bytes - // 3 + K V Value bytes - // - // We refer to the first 3 entries as the 'tag header'. If extra values are - // introduced in the header, you will need to modify the TAG_HEADER_SIZE - // constant, the raw_tag structure (and everything that uses it) and the - // encode/decode functions appropriately. -}; - -// Number of bytes in tag header. -#define TAG_HEADER_SIZE 3 // key length (1) + value length (1) + flags (1) -// Offsets to tag header entries. -#define KEY_LEN_OFFSET 0 -#define VALUE_LEN_OFFSET 1 -#define FLAG_OFFSET 2 - -// raw_tag represents the raw-storage form of a tag in the kvm of a tag_set. -struct raw_tag { - uint8_t key_len; - uint8_t value_len; - uint8_t flags; - char *key; - char *value; -}; - -// Use a reserved flag bit for indication of deleted tag. -#define CENSUS_TAG_DELETED CENSUS_TAG_RESERVED -#define CENSUS_TAG_IS_DELETED(flags) (flags & CENSUS_TAG_DELETED) - -// Primary representation of a context. Composed of 2 underlying tag_set -// structs, one each for propagated and local (non-propagated) tags. This is -// to efficiently support tag encoding/decoding. -// TODO(aveitch): need to add tracing id's/structure. -struct census_context { - struct tag_set tags[2]; - census_context_status status; -}; - -// Indices into the tags member of census_context -#define PROPAGATED_TAGS 0 -#define LOCAL_TAGS 1 - -// Validate (check all characters are in range and size is less than limit) a -// key or value string. Returns 0 if the string is invalid, or the length -// (including terminator) if valid. -static size_t validate_tag(const char *kv) { - size_t len = 1; - char ch; - while ((ch = *kv++) != 0) { - if (ch < MIN_VALID_TAG_CHAR || ch > MAX_VALID_TAG_CHAR) { - return 0; - } - len++; - } - if (len > CENSUS_MAX_TAG_KV_LEN) { - return 0; - } - return len; -} - -// Extract a raw tag given a pointer (raw) to the tag header. Allow for some -// extra bytes in the tag header (see encode/decode functions for usage: this -// allows for future expansion of the tag header). -static char *decode_tag(struct raw_tag *tag, char *header, int offset) { - tag->key_len = (uint8_t)(*header++); - tag->value_len = (uint8_t)(*header++); - tag->flags = (uint8_t)(*header++); - header += offset; - tag->key = header; - header += tag->key_len; - tag->value = header; - return header + tag->value_len; -} - -// Make a copy (in 'to') of an existing tag_set. -static void tag_set_copy(struct tag_set *to, const struct tag_set *from) { - memcpy(to, from, sizeof(struct tag_set)); - to->kvm = gpr_malloc(to->kvm_size); - memcpy(to->kvm, from->kvm, from->kvm_used); -} - -// Delete a tag from a tag_set, if it exists (returns true if it did). -static bool tag_set_delete_tag(struct tag_set *tags, const char *key, - size_t key_len) { - char *kvp = tags->kvm; - for (int i = 0; i < tags->ntags_alloc; i++) { - uint8_t *flags = (uint8_t *)(kvp + FLAG_OFFSET); - struct raw_tag tag; - kvp = decode_tag(&tag, kvp, 0); - if (CENSUS_TAG_IS_DELETED(tag.flags)) continue; - if ((key_len == tag.key_len) && (memcmp(key, tag.key, key_len) == 0)) { - *flags |= CENSUS_TAG_DELETED; - tags->ntags--; - return true; - } - } - return false; -} - -// Delete a tag from a context, return true if it existed. -static bool context_delete_tag(census_context *context, const census_tag *tag, - size_t key_len) { - return ( - tag_set_delete_tag(&context->tags[LOCAL_TAGS], tag->key, key_len) || - tag_set_delete_tag(&context->tags[PROPAGATED_TAGS], tag->key, key_len)); -} - -// Add a tag to a tag_set. Return true on success, false if the tag could -// not be added because of constraints on tag set size. This function should -// not be called if the tag may already exist (in a non-deleted state) in -// the tag_set, as that would result in two tags with the same key. -static bool tag_set_add_tag(struct tag_set *tags, const census_tag *tag, - size_t key_len, size_t value_len) { - if (tags->ntags == CENSUS_MAX_PROPAGATED_TAGS) { - return false; - } - const size_t tag_size = key_len + value_len + TAG_HEADER_SIZE; - if (tags->kvm_used + tag_size > tags->kvm_size) { - // allocate new memory if needed - tags->kvm_size += 2 * CENSUS_MAX_TAG_KV_LEN + TAG_HEADER_SIZE; - char *new_kvm = gpr_malloc(tags->kvm_size); - memcpy(new_kvm, tags->kvm, tags->kvm_used); - gpr_free(tags->kvm); - tags->kvm = new_kvm; - } - char *kvp = tags->kvm + tags->kvm_used; - *kvp++ = (char)key_len; - *kvp++ = (char)value_len; - // ensure reserved flags are not used. - *kvp++ = (char)(tag->flags & (CENSUS_TAG_PROPAGATE | CENSUS_TAG_STATS)); - memcpy(kvp, tag->key, key_len); - kvp += key_len; - memcpy(kvp, tag->value, value_len); - tags->kvm_used += tag_size; - tags->ntags++; - tags->ntags_alloc++; - return true; -} - -// Add/modify/delete a tag to/in a context. Caller must validate that tag key -// etc. are valid. -static void context_modify_tag(census_context *context, const census_tag *tag, - size_t key_len, size_t value_len) { - // First delete the tag if it is already present. - bool deleted = context_delete_tag(context, tag, key_len); - bool added = false; - if (CENSUS_TAG_IS_PROPAGATED(tag->flags)) { - added = tag_set_add_tag(&context->tags[PROPAGATED_TAGS], tag, key_len, - value_len); - } else { - added = - tag_set_add_tag(&context->tags[LOCAL_TAGS], tag, key_len, value_len); - } - - if (deleted) { - context->status.n_modified_tags++; - } else { - if (added) { - context->status.n_added_tags++; - } else { - context->status.n_ignored_tags++; - } - } -} - -// Remove memory used for deleted tags from a tag set. Basic algorithm: -// 1) Walk through tag set to find first deleted tag. Record where it is. -// 2) Find the next not-deleted tag. Copy all of kvm from there to the end -// "over" the deleted tags -// 3) repeat #1 and #2 until we have seen all tags -// 4) if we are still looking for a not-deleted tag, then all the end portion -// of the kvm is deleted. Just reduce the used amount of memory by the -// appropriate amount. -static void tag_set_flatten(struct tag_set *tags) { - if (tags->ntags == tags->ntags_alloc) return; - bool found_deleted = false; // found a deleted tag. - char *kvp = tags->kvm; - char *dbase = NULL; // record location of deleted tag - for (int i = 0; i < tags->ntags_alloc; i++) { - struct raw_tag tag; - char *next_kvp = decode_tag(&tag, kvp, 0); - if (found_deleted) { - if (!CENSUS_TAG_IS_DELETED(tag.flags)) { - ptrdiff_t reduce = kvp - dbase; // #bytes in deleted tags - GPR_ASSERT(reduce > 0); - ptrdiff_t copy_size = tags->kvm + tags->kvm_used - kvp; - GPR_ASSERT(copy_size > 0); - memmove(dbase, kvp, (size_t)copy_size); - tags->kvm_used -= (size_t)reduce; - next_kvp -= reduce; - found_deleted = false; - } - } else { - if (CENSUS_TAG_IS_DELETED(tag.flags)) { - dbase = kvp; - found_deleted = true; - } - } - kvp = next_kvp; - } - if (found_deleted) { - GPR_ASSERT(dbase > tags->kvm); - tags->kvm_used = (size_t)(dbase - tags->kvm); - } - tags->ntags_alloc = tags->ntags; -} - -census_context *census_context_create(const census_context *base, - const census_tag *tags, int ntags, - census_context_status const **status) { - census_context *context = gpr_malloc(sizeof(census_context)); - // If we are given a base, copy it into our new tag set. Otherwise set it - // to zero/NULL everything. - if (base == NULL) { - memset(context, 0, sizeof(census_context)); - } else { - tag_set_copy(&context->tags[PROPAGATED_TAGS], &base->tags[PROPAGATED_TAGS]); - tag_set_copy(&context->tags[LOCAL_TAGS], &base->tags[LOCAL_TAGS]); - memset(&context->status, 0, sizeof(context->status)); - } - // Walk over the additional tags and, for those that aren't invalid, modify - // the context to add/replace/delete as required. - for (int i = 0; i < ntags; i++) { - const census_tag *tag = &tags[i]; - size_t key_len = validate_tag(tag->key); - // ignore the tag if it is invalid or too short. - if (key_len <= 1) { - context->status.n_invalid_tags++; - } else { - if (tag->value != NULL) { - size_t value_len = validate_tag(tag->value); - if (value_len != 0) { - context_modify_tag(context, tag, key_len, value_len); - } else { - context->status.n_invalid_tags++; - } - } else { - if (context_delete_tag(context, tag, key_len)) { - context->status.n_deleted_tags++; - } - } - } - } - // Remove any deleted tags, update status if needed, and return. - tag_set_flatten(&context->tags[PROPAGATED_TAGS]); - tag_set_flatten(&context->tags[LOCAL_TAGS]); - context->status.n_propagated_tags = context->tags[PROPAGATED_TAGS].ntags; - context->status.n_local_tags = context->tags[LOCAL_TAGS].ntags; - if (status) { - *status = &context->status; - } - return context; -} - -const census_context_status *census_context_get_status( - const census_context *context) { - return &context->status; -} - -void census_context_destroy(census_context *context) { - gpr_free(context->tags[PROPAGATED_TAGS].kvm); - gpr_free(context->tags[LOCAL_TAGS].kvm); - gpr_free(context); -} - -void census_context_initialize_iterator(const census_context *context, - census_context_iterator *iterator) { - iterator->context = context; - iterator->index = 0; - if (context->tags[PROPAGATED_TAGS].ntags != 0) { - iterator->base = PROPAGATED_TAGS; - iterator->kvm = context->tags[PROPAGATED_TAGS].kvm; - } else if (context->tags[LOCAL_TAGS].ntags != 0) { - iterator->base = LOCAL_TAGS; - iterator->kvm = context->tags[LOCAL_TAGS].kvm; - } else { - iterator->base = -1; - } -} - -int census_context_next_tag(census_context_iterator *iterator, - census_tag *tag) { - if (iterator->base < 0) { - return 0; - } - struct raw_tag raw; - iterator->kvm = decode_tag(&raw, iterator->kvm, 0); - tag->key = raw.key; - tag->value = raw.value; - tag->flags = raw.flags; - if (++iterator->index == iterator->context->tags[iterator->base].ntags) { - do { - if (iterator->base == LOCAL_TAGS) { - iterator->base = -1; - return 1; - } - } while (iterator->context->tags[++iterator->base].ntags == 0); - iterator->index = 0; - iterator->kvm = iterator->context->tags[iterator->base].kvm; - } - return 1; -} - -// Find a tag in a tag_set by key. Return true if found, false otherwise. -static bool tag_set_get_tag(const struct tag_set *tags, const char *key, - size_t key_len, census_tag *tag) { - char *kvp = tags->kvm; - for (int i = 0; i < tags->ntags; i++) { - struct raw_tag raw; - kvp = decode_tag(&raw, kvp, 0); - if (key_len == raw.key_len && memcmp(raw.key, key, key_len) == 0) { - tag->key = raw.key; - tag->value = raw.value; - tag->flags = raw.flags; - return true; - } - } - return false; -} - -int census_context_get_tag(const census_context *context, const char *key, - census_tag *tag) { - size_t key_len = strlen(key) + 1; - if (key_len == 1) { - return 0; - } - if (tag_set_get_tag(&context->tags[PROPAGATED_TAGS], key, key_len, tag) || - tag_set_get_tag(&context->tags[LOCAL_TAGS], key, key_len, tag)) { - return 1; - } - return 0; -} - -// Context encoding and decoding functions. -// -// Wire format for tag_set's on the wire: -// -// First, a tag set header: -// -// offset bytes description -// 0 1 version number -// 1 1 number of bytes in this header. This allows for future -// expansion. -// 2 1 number of bytes in each tag header. -// 3 1 ntags value from tag set. -// -// This is followed by the key/value memory from struct tag_set. - -#define ENCODED_VERSION 0 // Version number -#define ENCODED_HEADER_SIZE 4 // size of tag set header - -// Encode a tag set. Returns 0 if buffer is too small. -static size_t tag_set_encode(const struct tag_set *tags, char *buffer, - size_t buf_size) { - if (buf_size < ENCODED_HEADER_SIZE + tags->kvm_used) { - return 0; - } - buf_size -= ENCODED_HEADER_SIZE; - *buffer++ = (char)ENCODED_VERSION; - *buffer++ = (char)ENCODED_HEADER_SIZE; - *buffer++ = (char)TAG_HEADER_SIZE; - *buffer++ = (char)tags->ntags; - if (tags->ntags == 0) { - return ENCODED_HEADER_SIZE; - } - memcpy(buffer, tags->kvm, tags->kvm_used); - return ENCODED_HEADER_SIZE + tags->kvm_used; -} - -size_t census_context_encode(const census_context *context, char *buffer, - size_t buf_size) { - return tag_set_encode(&context->tags[PROPAGATED_TAGS], buffer, buf_size); -} - -// Decode a tag set. -static void tag_set_decode(struct tag_set *tags, const char *buffer, - size_t size) { - uint8_t version = (uint8_t)(*buffer++); - uint8_t header_size = (uint8_t)(*buffer++); - uint8_t tag_header_size = (uint8_t)(*buffer++); - tags->ntags = tags->ntags_alloc = (int)(*buffer++); - if (tags->ntags == 0) { - tags->ntags_alloc = 0; - tags->kvm_size = 0; - tags->kvm_used = 0; - tags->kvm = NULL; - return; - } - if (header_size != ENCODED_HEADER_SIZE) { - GPR_ASSERT(version != ENCODED_VERSION); - GPR_ASSERT(ENCODED_HEADER_SIZE < header_size); - buffer += (header_size - ENCODED_HEADER_SIZE); - } - tags->kvm_used = size - header_size; - tags->kvm_size = tags->kvm_used + CENSUS_MAX_TAG_KV_LEN; - tags->kvm = gpr_malloc(tags->kvm_size); - if (tag_header_size != TAG_HEADER_SIZE) { - // something new in the tag information. I don't understand it, so - // don't copy it over. - GPR_ASSERT(version != ENCODED_VERSION); - GPR_ASSERT(tag_header_size > TAG_HEADER_SIZE); - char *kvp = tags->kvm; - for (int i = 0; i < tags->ntags; i++) { - memcpy(kvp, buffer, TAG_HEADER_SIZE); - kvp += header_size; - struct raw_tag raw; - buffer = - decode_tag(&raw, (char *)buffer, tag_header_size - TAG_HEADER_SIZE); - memcpy(kvp, raw.key, (size_t)raw.key_len + raw.value_len); - kvp += raw.key_len + raw.value_len; - } - } else { - memcpy(tags->kvm, buffer, tags->kvm_used); - } -} - -census_context *census_context_decode(const char *buffer, size_t size) { - census_context *context = gpr_malloc(sizeof(census_context)); - memset(&context->tags[LOCAL_TAGS], 0, sizeof(struct tag_set)); - if (buffer == NULL) { - memset(&context->tags[PROPAGATED_TAGS], 0, sizeof(struct tag_set)); - } else { - tag_set_decode(&context->tags[PROPAGATED_TAGS], buffer, size); - } - memset(&context->status, 0, sizeof(context->status)); - context->status.n_propagated_tags = context->tags[PROPAGATED_TAGS].ntags; - return context; -} From 7fd1196770fb5a4a566e46f79602e4146eff7021 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 12 Jul 2016 17:06:45 -0700 Subject: [PATCH 033/202] extra line in CMakeLists --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd45ca6adcf6e..1f647e0a988d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,7 @@ add_subdirectory(${ZLIB_ROOT_DIR} third_party/zlib) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + add_library(gpr src/core/lib/profiling/basic_timers.c src/core/lib/profiling/stap_timers.c From b4133ebaea52dcc0ea1bddc88e68c52fa336f282 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 12 Jul 2016 17:50:51 -0700 Subject: [PATCH 034/202] [wip] Implement unary generic service test. Linker error to be fixed --- test/c/end2end/unary_end2end_test.cc | 242 +++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 test/c/end2end/unary_end2end_test.cc diff --git a/test/c/end2end/unary_end2end_test.cc b/test/c/end2end/unary_end2end_test.cc new file mode 100644 index 0000000000000..06b969252b6d2 --- /dev/null +++ b/test/c/end2end/unary_end2end_test.cc @@ -0,0 +1,242 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "src/core/lib/security/credentials/credentials.h" +#include "test/core/util/port.h" +#include "test/core/util/test_config.h" +#include "test/cpp/end2end/test_service_impl.h" +#include "test/cpp/util/string_ref_helper.h" +#include "test/cpp/util/test_credentials_provider.h" + + +using grpc::testing::kTlsCredentialsType; +using std::chrono::system_clock; + +namespace grpc { +namespace testing { +namespace { + +class TestScenario { +public: + TestScenario(bool proxy, const grpc::string &creds_type) + : use_proxy(proxy), credentials_type(creds_type) { } + + void Log() const { + gpr_log(GPR_INFO, "Scenario: proxy %d, credentials %s", use_proxy, + credentials_type.c_str()); + } + + bool use_proxy; + // Although the below grpc::string is logically const, we can't declare + // them const because of a limitation in the way old compilers (e.g., gcc-4.4) + // manage vector insertion using a copy constructor + grpc::string credentials_type; +}; + +class Proxy : public ::grpc::testing::EchoTestService::Service { +public: + Proxy(std::shared_ptr channel) + : stub_(grpc::testing::EchoTestService::NewStub(channel)) {} + + Status Echo(ServerContext* server_context, const EchoRequest* request, + EchoResponse* response) GRPC_OVERRIDE { + std::unique_ptr client_context = + ClientContext::FromServerContext(*server_context); + return stub_->Echo(client_context.get(), *request, response); + } + +private: + std::unique_ptr< ::grpc::testing::EchoTestService::Stub> stub_; +}; + +class End2endTest : public ::testing::TestWithParam { +protected: + End2endTest() + : is_server_started_(false), + c_channel_(NULL), + kMaxMessageSize_(8192), + special_service_("special") { + GetParam().Log(); + } + + ~End2endTest() { + GRPC_channel_destroy(&c_channel_); + } + + void TearDown() GRPC_OVERRIDE { + if (is_server_started_) { + server_->Shutdown(); + if (proxy_server_) proxy_server_->Shutdown(); + } + } + + void StartServer(const std::shared_ptr &processor) { + int port = grpc_pick_unused_port_or_die(); + server_address_ << "127.0.0.1:" << port; + // Setup server + ServerBuilder builder; + auto server_creds = GetServerCredentials(GetParam().credentials_type); + if (GetParam().credentials_type != kInsecureCredentialsType) { + server_creds->SetAuthMetadataProcessor(processor); + } + builder.AddListeningPort(server_address_.str(), server_creds); + builder.RegisterService(&service_); + builder.RegisterService("foo.test.youtube.com", &special_service_); + builder.SetMaxMessageSize( + kMaxMessageSize_); // For testing max message size. + server_ = builder.BuildAndStart(); + is_server_started_ = true; + } + + void ResetChannel() { + if (!is_server_started_) { + StartServer(std::shared_ptr()); + } + EXPECT_TRUE(is_server_started_); + ChannelArguments args; + auto channel_creds = + GetChannelCredentials(GetParam().credentials_type, &args); + if (!user_agent_prefix_.empty()) { + args.SetUserAgentPrefix(user_agent_prefix_); + } + args.SetString(GRPC_ARG_SECONDARY_USER_AGENT_STRING, "end2end_test"); + + channel_ = CreateCustomChannel(server_address_.str(), channel_creds, args); + // TODO(yifeit): add credentials + if (c_channel_) GRPC_channel_destroy(&c_channel_); + c_channel_ = GRPC_channel_create(server_address_.str().c_str()); + } + + void ResetStub() { + ResetChannel(); + if (GetParam().use_proxy) { + proxy_service_.reset(new Proxy(channel_)); + int port = grpc_pick_unused_port_or_die(); + std::ostringstream proxyaddr; + proxyaddr << "localhost:" << port; + ServerBuilder builder; + builder.AddListeningPort(proxyaddr.str(), InsecureServerCredentials()); + builder.RegisterService(proxy_service_.get()); + proxy_server_ = builder.BuildAndStart(); + + channel_ = CreateChannel(proxyaddr.str(), InsecureChannelCredentials()); + c_channel_ = GRPC_channel_create(proxyaddr.str().c_str()); + } + } + + bool is_server_started_; + + std::shared_ptr channel_; + GRPC_channel *c_channel_; + + std::unique_ptr server_; + std::unique_ptr proxy_server_; + std::unique_ptr proxy_service_; + std::ostringstream server_address_; + const int kMaxMessageSize_; + TestServiceImpl service_; + TestServiceImpl special_service_; + grpc::string user_agent_prefix_; +}; + +static void SendRpc(GRPC_channel *channel, + int num_rpcs, + bool with_binary_metadata) { + + for (int i = 0; i < num_rpcs; ++i) { + GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; + GRPC_client_context *context = GRPC_client_context_create(channel); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + GRPC_status status = GRPC_unary_blocking_call(channel, &method, context, msg, &resp); + assert(status.code == GRPC_STATUS_OK); + char *response_string = (char *) malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object + GRPC_message_destroy(&resp); + GRPC_client_context_destroy(&context); + + EXPECT_EQ(grpc::string(response_string), grpc::string("gRPC-C")); + EXPECT_TRUE(status.code == GRPC_STATUS_OK); + } +} + + +////////////////////////////////////////////////////////////////////////// +// Test with and without a proxy. +class ProxyEnd2endTest : public End2endTest { +protected: +}; + +TEST_P(ProxyEnd2endTest, SimpleRpc) { + ResetStub(); + SendRpc(c_channel_, 1, false); +} + +} // namespace +} // namespace testing +} // namespace grpc + +int main(int argc, char** argv) { + grpc_test_init(argc, argv); + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} From 642e7531e32bffd73d90575812c89b396b581bfe Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 12:42:23 -0700 Subject: [PATCH 035/202] [wip] generate projects --- Makefile | 36 +++ build.yaml | 12 + tools/run_tests/sources_and_headers.json | 18 ++ tools/run_tests/tests.json | 21 ++ vsprojects/buildtests_c.sln | 78 +++++++ .../grpc_c_end2end/grpc_c_end2end.vcxproj | 205 ++++++++++++++++++ .../grpc_c_end2end.vcxproj.filters | 21 ++ 7 files changed, 391 insertions(+) create mode 100644 vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj create mode 100644 vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj.filters diff --git a/Makefile b/Makefile index 8b6114bd7f991..a484d9632f6fe 100644 --- a/Makefile +++ b/Makefile @@ -957,6 +957,7 @@ gpr_useful_test: $(BINDIR)/$(CONFIG)/gpr_useful_test grpc_auth_context_test: $(BINDIR)/$(CONFIG)/grpc_auth_context_test grpc_b64_test: $(BINDIR)/$(CONFIG)/grpc_b64_test grpc_byte_buffer_reader_test: $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test +grpc_c_end2end: $(BINDIR)/$(CONFIG)/grpc_c_end2end grpc_channel_args_test: $(BINDIR)/$(CONFIG)/grpc_channel_args_test grpc_channel_stack_test: $(BINDIR)/$(CONFIG)/grpc_channel_stack_test grpc_completion_queue_test: $(BINDIR)/$(CONFIG)/grpc_completion_queue_test @@ -1272,6 +1273,7 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/grpc_auth_context_test \ $(BINDIR)/$(CONFIG)/grpc_b64_test \ $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test \ + $(BINDIR)/$(CONFIG)/grpc_c_end2end \ $(BINDIR)/$(CONFIG)/grpc_channel_args_test \ $(BINDIR)/$(CONFIG)/grpc_channel_stack_test \ $(BINDIR)/$(CONFIG)/grpc_completion_queue_test \ @@ -1610,6 +1612,8 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/grpc_b64_test || ( echo test grpc_b64_test failed ; exit 1 ) $(E) "[RUN] Testing grpc_byte_buffer_reader_test" $(Q) $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test || ( echo test grpc_byte_buffer_reader_test failed ; exit 1 ) + $(E) "[RUN] Testing grpc_c_end2end" + $(Q) $(BINDIR)/$(CONFIG)/grpc_c_end2end || ( echo test grpc_c_end2end failed ; exit 1 ) $(E) "[RUN] Testing grpc_channel_args_test" $(Q) $(BINDIR)/$(CONFIG)/grpc_channel_args_test || ( echo test grpc_channel_args_test failed ; exit 1 ) $(E) "[RUN] Testing grpc_channel_stack_test" @@ -8159,6 +8163,38 @@ endif endif +GRPC_C_END2END_SRC = \ + test/c/end2end/unary_end2end_test.cc \ + +GRPC_C_END2END_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/grpc_c_end2end: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/grpc_c_end2end: $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end + +endif + +$(OBJDIR)/$(CONFIG)/test/c/end2end/unary_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a + +deps_grpc_c_end2end: $(GRPC_C_END2END_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(GRPC_C_END2END_OBJS:.o=.dep) +endif +endif + + GRPC_CHANNEL_ARGS_TEST_SRC = \ test/core/channel/channel_args_test.c \ diff --git a/build.yaml b/build.yaml index 37c95ccdc0a09..dfa49da32103c 100644 --- a/build.yaml +++ b/build.yaml @@ -1715,6 +1715,18 @@ targets: - grpc - gpr_test_util - gpr +- name: grpc_c_end2end + build: test + language: c + src: + - test/c/end2end/unary_end2end_test.cc + deps: + - grpc_test_util + - grpc + - gpr_test_util + - gpr + - grpc++_test_util + - grpc++ - name: grpc_channel_args_test build: test language: c diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index e85dd2c820091..22d125f66a508 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -771,6 +771,24 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "grpc_c_end2end", + "src": [ + "test/c/end2end/unary_end2end_test.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index d94301b946bbb..3b64b6e64c2a9 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -928,6 +928,27 @@ "windows" ] }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "gtest": false, + "language": "c", + "name": "grpc_c_end2end", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index 7232440ab7627..a96bb8e7e5775 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -463,6 +463,23 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++", "vcxproj\.\grpc++\grpc++.vcxproj", "{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++_test_util", "vcxproj\.\grpc++_test_util\grpc++_test_util.vcxproj", "{0BE77741-552A-929B-A497-4EF7ECE17A64}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} = {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_auth_context_test", "vcxproj\test\grpc_auth_context_test\grpc_auth_context_test.vcxproj", "{C65A4336-92D6-D6A0-EB86-E3AA425222D0}" ProjectSection(myProperties) = preProject lib = "False" @@ -496,6 +513,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_byte_buffer_reader_tes {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c_end2end", "vcxproj\test\grpc_c_end2end\grpc_c_end2end.vcxproj", "{6396014B-A921-2545-6156-32332C65DF7D}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + {0BE77741-552A-929B-A497-4EF7ECE17A64} = {0BE77741-552A-929B-A497-4EF7ECE17A64} + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} = {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_channel_args_test", "vcxproj\test\grpc_channel_args_test\grpc_channel_args_test.vcxproj", "{58FB566F-DCD5-3ECE-233E-C1FD13CA2185}" ProjectSection(myProperties) = preProject lib = "False" @@ -2191,6 +2221,38 @@ Global {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.Build.0 = Release-DLL|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|Win32.ActiveCfg = Debug|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|x64.ActiveCfg = Debug|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.ActiveCfg = Release|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.ActiveCfg = Release|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|Win32.Build.0 = Debug|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|x64.Build.0 = Debug|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.Build.0 = Release|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.Build.0 = Release|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|x64.Build.0 = Release-DLL|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|Win32.ActiveCfg = Debug|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|x64.ActiveCfg = Debug|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|Win32.ActiveCfg = Release|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|x64.ActiveCfg = Release|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|Win32.Build.0 = Debug|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|x64.Build.0 = Debug|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|Win32.Build.0 = Release|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|x64.Build.0 = Release|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|x64.Build.0 = Debug|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|Win32.Build.0 = Release|Win32 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|x64.ActiveCfg = Release|x64 + {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|x64.Build.0 = Release|x64 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|Win32.ActiveCfg = Debug|Win32 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|x64.ActiveCfg = Debug|x64 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|Win32.ActiveCfg = Release|Win32 @@ -2239,6 +2301,22 @@ Global {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|Win32.Build.0 = Release|Win32 {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.ActiveCfg = Release|x64 {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.Build.0 = Release|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug|Win32.ActiveCfg = Debug|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug|x64.ActiveCfg = Debug|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Release|Win32.ActiveCfg = Release|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Release|x64.ActiveCfg = Release|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug|Win32.Build.0 = Debug|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug|x64.Build.0 = Debug|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Release|Win32.Build.0 = Release|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Release|x64.Build.0 = Release|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|x64.Build.0 = Debug|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|Win32.Build.0 = Release|Win32 + {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|x64.ActiveCfg = Release|x64 + {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|x64.Build.0 = Release|x64 {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|Win32.ActiveCfg = Debug|Win32 {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|x64.ActiveCfg = Debug|x64 {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj b/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj new file mode 100644 index 0000000000000..c004efe0657f1 --- /dev/null +++ b/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj @@ -0,0 +1,205 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6396014B-A921-2545-6156-32332C65DF7D} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + grpc_c_end2end + static + Debug + static + Debug + + + grpc_c_end2end + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + + + + + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + + + {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + + + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + + + {0BE77741-552A-929B-A497-4EF7ECE17A64} + + + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj.filters b/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj.filters new file mode 100644 index 0000000000000..098d545ca47dc --- /dev/null +++ b/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + test\c\end2end + + + + + + {573596d1-36aa-7ea1-ac6a-61c36426cbb1} + + + {d6108617-6a13-dd20-9eb1-d8dda8888f8f} + + + {46224486-dbea-397d-6d30-f2c0ca20fd2e} + + + + From 47869a3c9068d251244d77a82367cce1e9a32a63 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 17:08:11 -0700 Subject: [PATCH 036/202] Add grpc_c target --- build.yaml | 66 +++++++++++++++++++++++++++++++ templates/BUILD.template | 1 + templates/CMakeLists.txt.template | 2 +- 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/build.yaml b/build.yaml index dfa49da32103c..9f9b86264cf1a 100644 --- a/build.yaml +++ b/build.yaml @@ -827,6 +827,59 @@ libs: - grpc.dependencies.openssl - grpc.dependencies.zlib vs_project_guid: '{29D16885-7228-4C31-81ED-5F9187C7F2A9}' +- name: grpc_c + build: all + language: c + public_headers: + - include/grpc_c/bidi_streaming_blocking_call.h + - include/grpc_c/channel.h + - include/grpc_c/client_context.h + - include/grpc_c/client_streaming_blocking_call.h + - include/grpc_c/completion_queue.h + - include/grpc_c/grpc_c.h + - include/grpc_c/message.h + - include/grpc_c/serialization.h + - include/grpc_c/server_streaming_blocking_call.h + - include/grpc_c/status.h + - include/grpc_c/status_code.h + - include/grpc_c/unary_async_call.h + - include/grpc_c/unary_blocking_call.h + headers: + - src/c/alloc.h + - src/c/bidi_streaming_blocking_call.h + - src/c/call_ops.h + - src/c/client_context.h + - src/c/client_streaming_blocking_call.h + - src/c/completion_queue.h + - src/c/id_serialization.h + - src/c/init_shutdown.h + - src/c/message.h + - src/c/server_streaming_blocking_call.h + - src/c/status.h + - src/c/tag.h + - src/c/unary_async_call.h + - src/c/unary_blocking_call.h + src: + - src/c/alloc.c + - src/c/bidi_streaming_blocking_call.c + - src/c/call_ops.c + - src/c/channel.c + - src/c/client_context.c + - src/c/client_streaming_blocking_call.c + - src/c/completion_queue.c + - src/c/id_serialization.c + - src/c/init_shutdown.c + - src/c/message.c + - src/c/server_streaming_blocking_call.c + - src/c/unary_async_call.c + - src/c/unary_blocking_call.c + deps: + - grpc + - gpr + baselib: true + dll: true + secure: check + vs_project_guid: '{8AC0CB05-6E3C-4A40-B45E-FDA77644F432}' - name: grpc_cronet build: all language: c @@ -1056,6 +1109,8 @@ libs: build: protoc language: c++ headers: + - src/compiler/c_generator.h + - src/compiler/c_generator_helpers.h - src/compiler/config.h - src/compiler/cpp_generator.h - src/compiler/cpp_generator_helpers.h @@ -1072,6 +1127,7 @@ libs: - src/compiler/ruby_generator_map-inl.h - src/compiler/ruby_generator_string-inl.h src: + - src/compiler/c_generator.cc - src/compiler/cpp_generator.cc - src/compiler/csharp_generator.cc - src/compiler/node_generator.cc @@ -2675,6 +2731,16 @@ targets: - grpc++ - grpc - gpr +- name: grpc_c_plugin + build: protoc + language: c++ + src: + - src/compiler/c_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{06F2EB11-35DA-483D-AB0A-BC420D97B18C}' - name: grpc_cli build: test run: false diff --git a/templates/BUILD.template b/templates/BUILD.template index 23a656c360852..d60a40be45939 100644 --- a/templates/BUILD.template +++ b/templates/BUILD.template @@ -51,6 +51,7 @@ deps.append("//external:protobuf_compiler") if (target_dict['name'] == 'grpc++_unsecure' or target_dict['name'] == 'grpc++' or + target_dict['name'] == 'grpc_c' or target_dict['name'] == 'grpc++_codegen_lib'): deps.append("//external:protobuf_clib") elif target_dict['name'] == 'grpc': diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template index 52e8b866be1b6..99e83bdf119cf 100644 --- a/templates/CMakeLists.txt.template +++ b/templates/CMakeLists.txt.template @@ -46,7 +46,7 @@ deps.append("libprotoc") if target_dict.get('secure', False): deps = ["ssl"] - if target_dict['name'] in ['grpc++', 'grpc++_unsecure', 'grpc++_codegen_lib']: + if target_dict['name'] in ['grpc_c', 'grpc++', 'grpc++_unsecure', 'grpc++_codegen_lib']: deps.append("libprotobuf") elif target_dict['name'] in ['grpc']: deps.append("zlibstatic") From f468b12a774224222ceffac3d982032d83c51cb0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 23:01:17 -0700 Subject: [PATCH 037/202] ignore CMake temp files --- .gitignore | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitignore b/.gitignore index 09223fa1ead49..0cfc82adbd9b6 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,12 @@ artifacts/ # Git generated files for conflicting *.orig + +CMakeCache.txt +CMakeFiles +CMakeScripts +Makefile +cmake_install.cmake +install_manifest.txt +CTestTestfile.cmake + From 53ba0be076d9d0271012ed89a08c16253f612538 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 23:01:37 -0700 Subject: [PATCH 038/202] generate project files --- BUILD | 75 + CMakeLists.txt | 53 + Makefile | 7085 +++++------------ .../core/surface/public_headers_must_be_c89.c | 13 + tools/run_tests/sources_and_headers.json | 99 + vsprojects/grpc.sln | 25 + vsprojects/grpc_protoc_plugins.sln | 16 + vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 336 + .../vcxproj/grpc_c/grpc_c.vcxproj.filters | 145 + .../grpc_c_plugin/grpc_c_plugin.vcxproj | 168 + .../grpc_c_plugin.vcxproj.filters | 18 + .../grpc_plugin_support.vcxproj | 4 + .../grpc_plugin_support.vcxproj.filters | 9 + 13 files changed, 3168 insertions(+), 4878 deletions(-) create mode 100644 vsprojects/vcxproj/grpc_c/grpc_c.vcxproj create mode 100644 vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters create mode 100644 vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj create mode 100644 vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters diff --git a/BUILD b/BUILD index 8a6d7fdc0a611..debde719358c9 100644 --- a/BUILD +++ b/BUILD @@ -545,6 +545,66 @@ cc_library( +cc_library( + name = "grpc_c", + srcs = [ + "src/c/alloc.h", + "src/c/bidi_streaming_blocking_call.h", + "src/c/call_ops.h", + "src/c/client_context.h", + "src/c/client_streaming_blocking_call.h", + "src/c/completion_queue.h", + "src/c/id_serialization.h", + "src/c/init_shutdown.h", + "src/c/message.h", + "src/c/server_streaming_blocking_call.h", + "src/c/status.h", + "src/c/tag.h", + "src/c/unary_async_call.h", + "src/c/unary_blocking_call.h", + "src/c/alloc.c", + "src/c/bidi_streaming_blocking_call.c", + "src/c/call_ops.c", + "src/c/channel.c", + "src/c/client_context.c", + "src/c/client_streaming_blocking_call.c", + "src/c/completion_queue.c", + "src/c/id_serialization.c", + "src/c/init_shutdown.c", + "src/c/message.c", + "src/c/server_streaming_blocking_call.c", + "src/c/unary_async_call.c", + "src/c/unary_blocking_call.c", + ], + hdrs = [ + "include/grpc_c/bidi_streaming_blocking_call.h", + "include/grpc_c/channel.h", + "include/grpc_c/client_context.h", + "include/grpc_c/client_streaming_blocking_call.h", + "include/grpc_c/completion_queue.h", + "include/grpc_c/grpc_c.h", + "include/grpc_c/message.h", + "include/grpc_c/serialization.h", + "include/grpc_c/server_streaming_blocking_call.h", + "include/grpc_c/status.h", + "include/grpc_c/status_code.h", + "include/grpc_c/unary_async_call.h", + "include/grpc_c/unary_blocking_call.h", + ], + includes = [ + "include", + ".", + ], + deps = [ + "//external:libssl", + "//external:protobuf_clib", + ":grpc", + ":gpr", + ], +) + + + cc_library( name = "grpc_cronet", srcs = [ @@ -1618,6 +1678,8 @@ cc_library( cc_library( name = "grpc_plugin_support", srcs = [ + "src/compiler/c_generator.h", + "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.h", "src/compiler/cpp_generator_helpers.h", @@ -1633,6 +1695,7 @@ cc_library( "src/compiler/ruby_generator_helpers-inl.h", "src/compiler/ruby_generator_map-inl.h", "src/compiler/ruby_generator_string-inl.h", + "src/compiler/c_generator.cc", "src/compiler/cpp_generator.cc", "src/compiler/csharp_generator.cc", "src/compiler/node_generator.cc", @@ -2174,6 +2237,18 @@ objc_library( +cc_binary( + name = "grpc_c_plugin", + srcs = [ + "src/compiler/c_plugin.cc", + ], + deps = [ + "//external:protobuf_compiler", + ":grpc_plugin_support", + ], +) + + cc_binary( name = "grpc_cpp_plugin", srcs = [ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f647e0a988d7..9255d2fafc6ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -338,6 +338,39 @@ target_link_libraries(grpc ) +add_library(grpc_c + src/c/alloc.c + src/c/bidi_streaming_blocking_call.c + src/c/call_ops.c + src/c/channel.c + src/c/client_context.c + src/c/client_streaming_blocking_call.c + src/c/completion_queue.c + src/c/id_serialization.c + src/c/init_shutdown.c + src/c/message.c + src/c/server_streaming_blocking_call.c + src/c/unary_async_call.c + src/c/unary_blocking_call.c +) + +target_include_directories(grpc_c + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib +) + +target_link_libraries(grpc_c + ssl + libprotobuf + grpc + gpr +) + + add_library(grpc_cronet src/core/lib/surface/init.c src/core/lib/channel/channel_args.c @@ -817,6 +850,7 @@ target_link_libraries(grpc++_unsecure add_library(grpc_plugin_support + src/compiler/c_generator.cc src/compiler/cpp_generator.cc src/compiler/csharp_generator.cc src/compiler/node_generator.cc @@ -951,6 +985,25 @@ target_link_libraries(grpc_verify_jwt ) +add_executable(grpc_c_plugin + src/compiler/c_plugin.cc +) + +target_include_directories(grpc_c_plugin + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib +) + +target_link_libraries(grpc_c_plugin + libprotoc + grpc_plugin_support +) + + add_executable(grpc_cpp_plugin src/compiler/cpp_plugin.cc ) diff --git a/Makefile b/Makefile index a484d9632f6fe..2a3630bf5a4ba 100644 --- a/Makefile +++ b/Makefile @@ -732,7 +732,7 @@ PC_LIBS_GRPCXX = CPPFLAGS := -Ithird_party/googletest/include $(CPPFLAGS) -PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin +PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_c_plugin $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin PROTOC_PLUGINS_DIR = $(BINDIR)/$(CONFIG) ifeq ($(HAS_SYSTEM_PROTOBUF),true) @@ -1041,6 +1041,7 @@ cxx_time_test: $(BINDIR)/$(CONFIG)/cxx_time_test end2end_test: $(BINDIR)/$(CONFIG)/end2end_test generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test +grpc_c_plugin: $(BINDIR)/$(CONFIG)/grpc_c_plugin grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin @@ -1074,44 +1075,6 @@ streaming_throughput_test: $(BINDIR)/$(CONFIG)/streaming_throughput_test stress_test: $(BINDIR)/$(CONFIG)/stress_test thread_stress_test: $(BINDIR)/$(CONFIG)/thread_stress_test public_headers_must_be_c89: $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 -boringssl_aes_test: $(BINDIR)/$(CONFIG)/boringssl_aes_test -boringssl_asn1_test: $(BINDIR)/$(CONFIG)/boringssl_asn1_test -boringssl_base64_test: $(BINDIR)/$(CONFIG)/boringssl_base64_test -boringssl_bio_test: $(BINDIR)/$(CONFIG)/boringssl_bio_test -boringssl_bn_test: $(BINDIR)/$(CONFIG)/boringssl_bn_test -boringssl_bytestring_test: $(BINDIR)/$(CONFIG)/boringssl_bytestring_test -boringssl_aead_test: $(BINDIR)/$(CONFIG)/boringssl_aead_test -boringssl_cipher_test: $(BINDIR)/$(CONFIG)/boringssl_cipher_test -boringssl_cmac_test: $(BINDIR)/$(CONFIG)/boringssl_cmac_test -boringssl_constant_time_test: $(BINDIR)/$(CONFIG)/boringssl_constant_time_test -boringssl_ed25519_test: $(BINDIR)/$(CONFIG)/boringssl_ed25519_test -boringssl_x25519_test: $(BINDIR)/$(CONFIG)/boringssl_x25519_test -boringssl_dh_test: $(BINDIR)/$(CONFIG)/boringssl_dh_test -boringssl_digest_test: $(BINDIR)/$(CONFIG)/boringssl_digest_test -boringssl_dsa_test: $(BINDIR)/$(CONFIG)/boringssl_dsa_test -boringssl_ec_test: $(BINDIR)/$(CONFIG)/boringssl_ec_test -boringssl_example_mul: $(BINDIR)/$(CONFIG)/boringssl_example_mul -boringssl_ecdsa_test: $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test -boringssl_err_test: $(BINDIR)/$(CONFIG)/boringssl_err_test -boringssl_evp_extra_test: $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test -boringssl_evp_test: $(BINDIR)/$(CONFIG)/boringssl_evp_test -boringssl_pbkdf_test: $(BINDIR)/$(CONFIG)/boringssl_pbkdf_test -boringssl_hkdf_test: $(BINDIR)/$(CONFIG)/boringssl_hkdf_test -boringssl_hmac_test: $(BINDIR)/$(CONFIG)/boringssl_hmac_test -boringssl_lhash_test: $(BINDIR)/$(CONFIG)/boringssl_lhash_test -boringssl_gcm_test: $(BINDIR)/$(CONFIG)/boringssl_gcm_test -boringssl_pkcs12_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test -boringssl_pkcs8_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test -boringssl_poly1305_test: $(BINDIR)/$(CONFIG)/boringssl_poly1305_test -boringssl_refcount_test: $(BINDIR)/$(CONFIG)/boringssl_refcount_test -boringssl_rsa_test: $(BINDIR)/$(CONFIG)/boringssl_rsa_test -boringssl_thread_test: $(BINDIR)/$(CONFIG)/boringssl_thread_test -boringssl_pkcs7_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test -boringssl_x509_test: $(BINDIR)/$(CONFIG)/boringssl_x509_test -boringssl_tab_test: $(BINDIR)/$(CONFIG)/boringssl_tab_test -boringssl_v3name_test: $(BINDIR)/$(CONFIG)/boringssl_v3name_test -boringssl_pqueue_test: $(BINDIR)/$(CONFIG)/boringssl_pqueue_test -boringssl_ssl_test: $(BINDIR)/$(CONFIG)/boringssl_ssl_test badreq_bad_client_test: $(BINDIR)/$(CONFIG)/badreq_bad_client_test connection_prefix_bad_client_test: $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test head_of_line_blocking_bad_client_test: $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test @@ -1191,13 +1154,13 @@ $(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure static: static_c static_cxx -static_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a +static_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a static_cxx: pc_cxx pc_cxx_unsecure cache.mk $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a shared: shared_c shared_cxx -shared_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) +shared_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) shared_cxx: pc_cxx pc_cxx_unsecure cache.mk $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) shared_csharp: shared_c $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION).$(SHARED_EXT) @@ -1207,7 +1170,7 @@ plugins: $(PROTOC_PLUGINS) privatelibs: privatelibs_c privatelibs_cxx -privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a +privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc @@ -1217,7 +1180,7 @@ pc_cxx: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc pc_cxx_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++_unsecure.pc ifeq ($(EMBED_OPENSSL),true) -privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a +privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a else privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a endif @@ -1429,44 +1392,6 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/streaming_throughput_test \ $(BINDIR)/$(CONFIG)/stress_test \ $(BINDIR)/$(CONFIG)/thread_stress_test \ - $(BINDIR)/$(CONFIG)/boringssl_aes_test \ - $(BINDIR)/$(CONFIG)/boringssl_asn1_test \ - $(BINDIR)/$(CONFIG)/boringssl_base64_test \ - $(BINDIR)/$(CONFIG)/boringssl_bio_test \ - $(BINDIR)/$(CONFIG)/boringssl_bn_test \ - $(BINDIR)/$(CONFIG)/boringssl_bytestring_test \ - $(BINDIR)/$(CONFIG)/boringssl_aead_test \ - $(BINDIR)/$(CONFIG)/boringssl_cipher_test \ - $(BINDIR)/$(CONFIG)/boringssl_cmac_test \ - $(BINDIR)/$(CONFIG)/boringssl_constant_time_test \ - $(BINDIR)/$(CONFIG)/boringssl_ed25519_test \ - $(BINDIR)/$(CONFIG)/boringssl_x25519_test \ - $(BINDIR)/$(CONFIG)/boringssl_dh_test \ - $(BINDIR)/$(CONFIG)/boringssl_digest_test \ - $(BINDIR)/$(CONFIG)/boringssl_dsa_test \ - $(BINDIR)/$(CONFIG)/boringssl_ec_test \ - $(BINDIR)/$(CONFIG)/boringssl_example_mul \ - $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test \ - $(BINDIR)/$(CONFIG)/boringssl_err_test \ - $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test \ - $(BINDIR)/$(CONFIG)/boringssl_evp_test \ - $(BINDIR)/$(CONFIG)/boringssl_pbkdf_test \ - $(BINDIR)/$(CONFIG)/boringssl_hkdf_test \ - $(BINDIR)/$(CONFIG)/boringssl_hmac_test \ - $(BINDIR)/$(CONFIG)/boringssl_lhash_test \ - $(BINDIR)/$(CONFIG)/boringssl_gcm_test \ - $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test \ - $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test \ - $(BINDIR)/$(CONFIG)/boringssl_poly1305_test \ - $(BINDIR)/$(CONFIG)/boringssl_refcount_test \ - $(BINDIR)/$(CONFIG)/boringssl_rsa_test \ - $(BINDIR)/$(CONFIG)/boringssl_thread_test \ - $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test \ - $(BINDIR)/$(CONFIG)/boringssl_x509_test \ - $(BINDIR)/$(CONFIG)/boringssl_tab_test \ - $(BINDIR)/$(CONFIG)/boringssl_v3name_test \ - $(BINDIR)/$(CONFIG)/boringssl_pqueue_test \ - $(BINDIR)/$(CONFIG)/boringssl_ssl_test \ else buildtests_cxx: privatelibs_cxx \ @@ -1842,6 +1767,8 @@ ifeq ($(CONFIG),opt) $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[STRIP] Stripping libgrpc.a" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgrpc.a + $(E) "[STRIP] Stripping libgrpc_c.a" + $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(E) "[STRIP] Stripping libgrpc_cronet.a" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(E) "[STRIP] Stripping libgrpc_unsecure.a" @@ -1864,6 +1791,8 @@ ifeq ($(CONFIG),opt) $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT)" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) + $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT)" + $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT)" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT)" @@ -2184,6 +2113,9 @@ install-static_c: static_c strip-static_c install-pkg-config_c $(E) "[INSTALL] Installing libgrpc.a" $(Q) $(INSTALL) -d $(prefix)/lib $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc.a $(prefix)/lib/libgrpc.a + $(E) "[INSTALL] Installing libgrpc_c.a" + $(Q) $(INSTALL) -d $(prefix)/lib + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(prefix)/lib/libgrpc_c.a $(E) "[INSTALL] Installing libgrpc_cronet.a" $(Q) $(INSTALL) -d $(prefix)/lib $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(prefix)/lib/libgrpc_cronet.a @@ -2222,6 +2154,15 @@ ifeq ($(SYSTEM),MINGW32) else ifneq ($(SYSTEM),Darwin) $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc.so.1 $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc.so +endif + $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT)" + $(Q) $(INSTALL) -d $(prefix)/lib + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) +ifeq ($(SYSTEM),MINGW32) + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_c-imp.a $(prefix)/lib/libgrpc_c-imp.a +else ifneq ($(SYSTEM),Darwin) + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc_c.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc_c.so endif $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT)" $(Q) $(INSTALL) -d $(prefix)/lib @@ -2306,6 +2247,8 @@ ifeq ($(SYSTEM),MINGW32) else $(E) "[INSTALL] Installing grpc protoc plugins" $(Q) $(INSTALL) -d $(prefix)/bin + $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_c_plugin $(prefix)/bin/grpc_c_plugin + $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(prefix)/bin/grpc_cpp_plugin $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(prefix)/bin/grpc_csharp_plugin @@ -2792,6 +2735,88 @@ endif endif +LIBGRPC_C_SRC = \ + src/c/alloc.c \ + src/c/bidi_streaming_blocking_call.c \ + src/c/call_ops.c \ + src/c/channel.c \ + src/c/client_context.c \ + src/c/client_streaming_blocking_call.c \ + src/c/completion_queue.c \ + src/c/id_serialization.c \ + src/c/init_shutdown.c \ + src/c/message.c \ + src/c/server_streaming_blocking_call.c \ + src/c/unary_async_call.c \ + src/c/unary_blocking_call.c \ + +PUBLIC_HEADERS_C += \ + include/grpc_c/bidi_streaming_blocking_call.h \ + include/grpc_c/channel.h \ + include/grpc_c/client_context.h \ + include/grpc_c/client_streaming_blocking_call.h \ + include/grpc_c/completion_queue.h \ + include/grpc_c/grpc_c.h \ + include/grpc_c/message.h \ + include/grpc_c/serialization.h \ + include/grpc_c/server_streaming_blocking_call.h \ + include/grpc_c/status.h \ + include/grpc_c/status_code.h \ + include/grpc_c/unary_async_call.h \ + include/grpc_c/unary_blocking_call.h \ + +LIBGRPC_C_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_SRC)))) + + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libgrpc_c.a: openssl_dep_error + +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error + +else + + +$(LIBDIR)/$(CONFIG)/libgrpc_c.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_C_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_c.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBGRPC_C_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_c.a +endif + + + +ifeq ($(SYSTEM),MINGW32) +$(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_C_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/gpr.$(SHARED_EXT) $(OPENSSL_DEP) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc_c.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc-imp -lgpr-imp +else +$(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_C_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgpr.$(SHARED_EXT) $(OPENSSL_DEP) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` +ifeq ($(SYSTEM),Darwin) + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc -lgpr +else + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_c.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc -lgpr + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).so +endif +endif + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBGRPC_C_OBJS:.o=.dep) +endif +endif + + LIBGRPC_CRONET_SRC = \ src/core/lib/surface/init.c \ src/core/lib/channel/channel_args.c \ @@ -4210,6 +4235,7 @@ endif LIBGRPC_PLUGIN_SUPPORT_SRC = \ + src/compiler/c_generator.cc \ src/compiler/cpp_generator.cc \ src/compiler/csharp_generator.cc \ src/compiler/node_generator.cc \ @@ -4591,357 +4617,31 @@ endif endif -LIBBORINGSSL_SRC = \ - src/boringssl/err_data.c \ - third_party/boringssl/crypto/aes/aes.c \ - third_party/boringssl/crypto/aes/mode_wrappers.c \ - third_party/boringssl/crypto/asn1/a_bitstr.c \ - third_party/boringssl/crypto/asn1/a_bool.c \ - third_party/boringssl/crypto/asn1/a_bytes.c \ - third_party/boringssl/crypto/asn1/a_d2i_fp.c \ - third_party/boringssl/crypto/asn1/a_dup.c \ - third_party/boringssl/crypto/asn1/a_enum.c \ - third_party/boringssl/crypto/asn1/a_gentm.c \ - third_party/boringssl/crypto/asn1/a_i2d_fp.c \ - third_party/boringssl/crypto/asn1/a_int.c \ - third_party/boringssl/crypto/asn1/a_mbstr.c \ - third_party/boringssl/crypto/asn1/a_object.c \ - third_party/boringssl/crypto/asn1/a_octet.c \ - third_party/boringssl/crypto/asn1/a_print.c \ - third_party/boringssl/crypto/asn1/a_strnid.c \ - third_party/boringssl/crypto/asn1/a_time.c \ - third_party/boringssl/crypto/asn1/a_type.c \ - third_party/boringssl/crypto/asn1/a_utctm.c \ - third_party/boringssl/crypto/asn1/a_utf8.c \ - third_party/boringssl/crypto/asn1/asn1_lib.c \ - third_party/boringssl/crypto/asn1/asn1_par.c \ - third_party/boringssl/crypto/asn1/asn_pack.c \ - third_party/boringssl/crypto/asn1/bio_asn1.c \ - third_party/boringssl/crypto/asn1/bio_ndef.c \ - third_party/boringssl/crypto/asn1/f_enum.c \ - third_party/boringssl/crypto/asn1/f_int.c \ - third_party/boringssl/crypto/asn1/f_string.c \ - third_party/boringssl/crypto/asn1/t_bitst.c \ - third_party/boringssl/crypto/asn1/t_pkey.c \ - third_party/boringssl/crypto/asn1/tasn_dec.c \ - third_party/boringssl/crypto/asn1/tasn_enc.c \ - third_party/boringssl/crypto/asn1/tasn_fre.c \ - third_party/boringssl/crypto/asn1/tasn_new.c \ - third_party/boringssl/crypto/asn1/tasn_prn.c \ - third_party/boringssl/crypto/asn1/tasn_typ.c \ - third_party/boringssl/crypto/asn1/tasn_utl.c \ - third_party/boringssl/crypto/asn1/x_bignum.c \ - third_party/boringssl/crypto/asn1/x_long.c \ - third_party/boringssl/crypto/base64/base64.c \ - third_party/boringssl/crypto/bio/bio.c \ - third_party/boringssl/crypto/bio/bio_mem.c \ - third_party/boringssl/crypto/bio/buffer.c \ - third_party/boringssl/crypto/bio/connect.c \ - third_party/boringssl/crypto/bio/fd.c \ - third_party/boringssl/crypto/bio/file.c \ - third_party/boringssl/crypto/bio/hexdump.c \ - third_party/boringssl/crypto/bio/pair.c \ - third_party/boringssl/crypto/bio/printf.c \ - third_party/boringssl/crypto/bio/socket.c \ - third_party/boringssl/crypto/bio/socket_helper.c \ - third_party/boringssl/crypto/bn/add.c \ - third_party/boringssl/crypto/bn/asm/x86_64-gcc.c \ - third_party/boringssl/crypto/bn/bn.c \ - third_party/boringssl/crypto/bn/bn_asn1.c \ - third_party/boringssl/crypto/bn/cmp.c \ - third_party/boringssl/crypto/bn/convert.c \ - third_party/boringssl/crypto/bn/ctx.c \ - third_party/boringssl/crypto/bn/div.c \ - third_party/boringssl/crypto/bn/exponentiation.c \ - third_party/boringssl/crypto/bn/gcd.c \ - third_party/boringssl/crypto/bn/generic.c \ - third_party/boringssl/crypto/bn/kronecker.c \ - third_party/boringssl/crypto/bn/montgomery.c \ - third_party/boringssl/crypto/bn/mul.c \ - third_party/boringssl/crypto/bn/prime.c \ - third_party/boringssl/crypto/bn/random.c \ - third_party/boringssl/crypto/bn/rsaz_exp.c \ - third_party/boringssl/crypto/bn/shift.c \ - third_party/boringssl/crypto/bn/sqrt.c \ - third_party/boringssl/crypto/buf/buf.c \ - third_party/boringssl/crypto/bytestring/asn1_compat.c \ - third_party/boringssl/crypto/bytestring/ber.c \ - third_party/boringssl/crypto/bytestring/cbb.c \ - third_party/boringssl/crypto/bytestring/cbs.c \ - third_party/boringssl/crypto/chacha/chacha_generic.c \ - third_party/boringssl/crypto/chacha/chacha_vec.c \ - third_party/boringssl/crypto/cipher/aead.c \ - third_party/boringssl/crypto/cipher/cipher.c \ - third_party/boringssl/crypto/cipher/derive_key.c \ - third_party/boringssl/crypto/cipher/e_aes.c \ - third_party/boringssl/crypto/cipher/e_chacha20poly1305.c \ - third_party/boringssl/crypto/cipher/e_des.c \ - third_party/boringssl/crypto/cipher/e_null.c \ - third_party/boringssl/crypto/cipher/e_rc2.c \ - third_party/boringssl/crypto/cipher/e_rc4.c \ - third_party/boringssl/crypto/cipher/e_ssl3.c \ - third_party/boringssl/crypto/cipher/e_tls.c \ - third_party/boringssl/crypto/cipher/tls_cbc.c \ - third_party/boringssl/crypto/cmac/cmac.c \ - third_party/boringssl/crypto/conf/conf.c \ - third_party/boringssl/crypto/cpu-arm.c \ - third_party/boringssl/crypto/cpu-intel.c \ - third_party/boringssl/crypto/crypto.c \ - third_party/boringssl/crypto/curve25519/curve25519.c \ - third_party/boringssl/crypto/curve25519/x25519-x86_64.c \ - third_party/boringssl/crypto/des/des.c \ - third_party/boringssl/crypto/dh/check.c \ - third_party/boringssl/crypto/dh/dh.c \ - third_party/boringssl/crypto/dh/dh_asn1.c \ - third_party/boringssl/crypto/dh/params.c \ - third_party/boringssl/crypto/digest/digest.c \ - third_party/boringssl/crypto/digest/digests.c \ - third_party/boringssl/crypto/directory_posix.c \ - third_party/boringssl/crypto/directory_win.c \ - third_party/boringssl/crypto/dsa/dsa.c \ - third_party/boringssl/crypto/dsa/dsa_asn1.c \ - third_party/boringssl/crypto/ec/ec.c \ - third_party/boringssl/crypto/ec/ec_asn1.c \ - third_party/boringssl/crypto/ec/ec_key.c \ - third_party/boringssl/crypto/ec/ec_montgomery.c \ - third_party/boringssl/crypto/ec/oct.c \ - third_party/boringssl/crypto/ec/p224-64.c \ - third_party/boringssl/crypto/ec/p256-64.c \ - third_party/boringssl/crypto/ec/p256-x86_64.c \ - third_party/boringssl/crypto/ec/simple.c \ - third_party/boringssl/crypto/ec/util-64.c \ - third_party/boringssl/crypto/ec/wnaf.c \ - third_party/boringssl/crypto/ecdh/ecdh.c \ - third_party/boringssl/crypto/ecdsa/ecdsa.c \ - third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c \ - third_party/boringssl/crypto/engine/engine.c \ - third_party/boringssl/crypto/err/err.c \ - third_party/boringssl/crypto/evp/algorithm.c \ - third_party/boringssl/crypto/evp/digestsign.c \ - third_party/boringssl/crypto/evp/evp.c \ - third_party/boringssl/crypto/evp/evp_asn1.c \ - third_party/boringssl/crypto/evp/evp_ctx.c \ - third_party/boringssl/crypto/evp/p_dsa_asn1.c \ - third_party/boringssl/crypto/evp/p_ec.c \ - third_party/boringssl/crypto/evp/p_ec_asn1.c \ - third_party/boringssl/crypto/evp/p_rsa.c \ - third_party/boringssl/crypto/evp/p_rsa_asn1.c \ - third_party/boringssl/crypto/evp/pbkdf.c \ - third_party/boringssl/crypto/evp/sign.c \ - third_party/boringssl/crypto/ex_data.c \ - third_party/boringssl/crypto/hkdf/hkdf.c \ - third_party/boringssl/crypto/hmac/hmac.c \ - third_party/boringssl/crypto/lhash/lhash.c \ - third_party/boringssl/crypto/md4/md4.c \ - third_party/boringssl/crypto/md5/md5.c \ - third_party/boringssl/crypto/mem.c \ - third_party/boringssl/crypto/modes/cbc.c \ - third_party/boringssl/crypto/modes/cfb.c \ - third_party/boringssl/crypto/modes/ctr.c \ - third_party/boringssl/crypto/modes/gcm.c \ - third_party/boringssl/crypto/modes/ofb.c \ - third_party/boringssl/crypto/obj/obj.c \ - third_party/boringssl/crypto/obj/obj_xref.c \ - third_party/boringssl/crypto/pem/pem_all.c \ - third_party/boringssl/crypto/pem/pem_info.c \ - third_party/boringssl/crypto/pem/pem_lib.c \ - third_party/boringssl/crypto/pem/pem_oth.c \ - third_party/boringssl/crypto/pem/pem_pk8.c \ - third_party/boringssl/crypto/pem/pem_pkey.c \ - third_party/boringssl/crypto/pem/pem_x509.c \ - third_party/boringssl/crypto/pem/pem_xaux.c \ - third_party/boringssl/crypto/pkcs8/p5_pbe.c \ - third_party/boringssl/crypto/pkcs8/p5_pbev2.c \ - third_party/boringssl/crypto/pkcs8/p8_pkey.c \ - third_party/boringssl/crypto/pkcs8/pkcs8.c \ - third_party/boringssl/crypto/poly1305/poly1305.c \ - third_party/boringssl/crypto/poly1305/poly1305_arm.c \ - third_party/boringssl/crypto/poly1305/poly1305_vec.c \ - third_party/boringssl/crypto/rand/rand.c \ - third_party/boringssl/crypto/rand/urandom.c \ - third_party/boringssl/crypto/rand/windows.c \ - third_party/boringssl/crypto/rc4/rc4.c \ - third_party/boringssl/crypto/refcount_c11.c \ - third_party/boringssl/crypto/refcount_lock.c \ - third_party/boringssl/crypto/rsa/blinding.c \ - third_party/boringssl/crypto/rsa/padding.c \ - third_party/boringssl/crypto/rsa/rsa.c \ - third_party/boringssl/crypto/rsa/rsa_asn1.c \ - third_party/boringssl/crypto/rsa/rsa_impl.c \ - third_party/boringssl/crypto/sha/sha1.c \ - third_party/boringssl/crypto/sha/sha256.c \ - third_party/boringssl/crypto/sha/sha512.c \ - third_party/boringssl/crypto/stack/stack.c \ - third_party/boringssl/crypto/thread.c \ - third_party/boringssl/crypto/thread_none.c \ - third_party/boringssl/crypto/thread_pthread.c \ - third_party/boringssl/crypto/thread_win.c \ - third_party/boringssl/crypto/time_support.c \ - third_party/boringssl/crypto/x509/a_digest.c \ - third_party/boringssl/crypto/x509/a_sign.c \ - third_party/boringssl/crypto/x509/a_strex.c \ - third_party/boringssl/crypto/x509/a_verify.c \ - third_party/boringssl/crypto/x509/asn1_gen.c \ - third_party/boringssl/crypto/x509/by_dir.c \ - third_party/boringssl/crypto/x509/by_file.c \ - third_party/boringssl/crypto/x509/i2d_pr.c \ - third_party/boringssl/crypto/x509/pkcs7.c \ - third_party/boringssl/crypto/x509/t_crl.c \ - third_party/boringssl/crypto/x509/t_req.c \ - third_party/boringssl/crypto/x509/t_x509.c \ - third_party/boringssl/crypto/x509/t_x509a.c \ - third_party/boringssl/crypto/x509/x509.c \ - third_party/boringssl/crypto/x509/x509_att.c \ - third_party/boringssl/crypto/x509/x509_cmp.c \ - third_party/boringssl/crypto/x509/x509_d2.c \ - third_party/boringssl/crypto/x509/x509_def.c \ - third_party/boringssl/crypto/x509/x509_ext.c \ - third_party/boringssl/crypto/x509/x509_lu.c \ - third_party/boringssl/crypto/x509/x509_obj.c \ - third_party/boringssl/crypto/x509/x509_r2x.c \ - third_party/boringssl/crypto/x509/x509_req.c \ - third_party/boringssl/crypto/x509/x509_set.c \ - third_party/boringssl/crypto/x509/x509_trs.c \ - third_party/boringssl/crypto/x509/x509_txt.c \ - third_party/boringssl/crypto/x509/x509_v3.c \ - third_party/boringssl/crypto/x509/x509_vfy.c \ - third_party/boringssl/crypto/x509/x509_vpm.c \ - third_party/boringssl/crypto/x509/x509cset.c \ - third_party/boringssl/crypto/x509/x509name.c \ - third_party/boringssl/crypto/x509/x509rset.c \ - third_party/boringssl/crypto/x509/x509spki.c \ - third_party/boringssl/crypto/x509/x509type.c \ - third_party/boringssl/crypto/x509/x_algor.c \ - third_party/boringssl/crypto/x509/x_all.c \ - third_party/boringssl/crypto/x509/x_attrib.c \ - third_party/boringssl/crypto/x509/x_crl.c \ - third_party/boringssl/crypto/x509/x_exten.c \ - third_party/boringssl/crypto/x509/x_info.c \ - third_party/boringssl/crypto/x509/x_name.c \ - third_party/boringssl/crypto/x509/x_pkey.c \ - third_party/boringssl/crypto/x509/x_pubkey.c \ - third_party/boringssl/crypto/x509/x_req.c \ - third_party/boringssl/crypto/x509/x_sig.c \ - third_party/boringssl/crypto/x509/x_spki.c \ - third_party/boringssl/crypto/x509/x_val.c \ - third_party/boringssl/crypto/x509/x_x509.c \ - third_party/boringssl/crypto/x509/x_x509a.c \ - third_party/boringssl/crypto/x509v3/pcy_cache.c \ - third_party/boringssl/crypto/x509v3/pcy_data.c \ - third_party/boringssl/crypto/x509v3/pcy_lib.c \ - third_party/boringssl/crypto/x509v3/pcy_map.c \ - third_party/boringssl/crypto/x509v3/pcy_node.c \ - third_party/boringssl/crypto/x509v3/pcy_tree.c \ - third_party/boringssl/crypto/x509v3/v3_akey.c \ - third_party/boringssl/crypto/x509v3/v3_akeya.c \ - third_party/boringssl/crypto/x509v3/v3_alt.c \ - third_party/boringssl/crypto/x509v3/v3_bcons.c \ - third_party/boringssl/crypto/x509v3/v3_bitst.c \ - third_party/boringssl/crypto/x509v3/v3_conf.c \ - third_party/boringssl/crypto/x509v3/v3_cpols.c \ - third_party/boringssl/crypto/x509v3/v3_crld.c \ - third_party/boringssl/crypto/x509v3/v3_enum.c \ - third_party/boringssl/crypto/x509v3/v3_extku.c \ - third_party/boringssl/crypto/x509v3/v3_genn.c \ - third_party/boringssl/crypto/x509v3/v3_ia5.c \ - third_party/boringssl/crypto/x509v3/v3_info.c \ - third_party/boringssl/crypto/x509v3/v3_int.c \ - third_party/boringssl/crypto/x509v3/v3_lib.c \ - third_party/boringssl/crypto/x509v3/v3_ncons.c \ - third_party/boringssl/crypto/x509v3/v3_pci.c \ - third_party/boringssl/crypto/x509v3/v3_pcia.c \ - third_party/boringssl/crypto/x509v3/v3_pcons.c \ - third_party/boringssl/crypto/x509v3/v3_pku.c \ - third_party/boringssl/crypto/x509v3/v3_pmaps.c \ - third_party/boringssl/crypto/x509v3/v3_prn.c \ - third_party/boringssl/crypto/x509v3/v3_purp.c \ - third_party/boringssl/crypto/x509v3/v3_skey.c \ - third_party/boringssl/crypto/x509v3/v3_sxnet.c \ - third_party/boringssl/crypto/x509v3/v3_utl.c \ - third_party/boringssl/ssl/custom_extensions.c \ - third_party/boringssl/ssl/d1_both.c \ - third_party/boringssl/ssl/d1_clnt.c \ - third_party/boringssl/ssl/d1_lib.c \ - third_party/boringssl/ssl/d1_meth.c \ - third_party/boringssl/ssl/d1_pkt.c \ - third_party/boringssl/ssl/d1_srtp.c \ - third_party/boringssl/ssl/d1_srvr.c \ - third_party/boringssl/ssl/dtls_record.c \ - third_party/boringssl/ssl/pqueue/pqueue.c \ - third_party/boringssl/ssl/s3_both.c \ - third_party/boringssl/ssl/s3_clnt.c \ - third_party/boringssl/ssl/s3_enc.c \ - third_party/boringssl/ssl/s3_lib.c \ - third_party/boringssl/ssl/s3_meth.c \ - third_party/boringssl/ssl/s3_pkt.c \ - third_party/boringssl/ssl/s3_srvr.c \ - third_party/boringssl/ssl/ssl_aead_ctx.c \ - third_party/boringssl/ssl/ssl_asn1.c \ - third_party/boringssl/ssl/ssl_buffer.c \ - third_party/boringssl/ssl/ssl_cert.c \ - third_party/boringssl/ssl/ssl_cipher.c \ - third_party/boringssl/ssl/ssl_ecdh.c \ - third_party/boringssl/ssl/ssl_file.c \ - third_party/boringssl/ssl/ssl_lib.c \ - third_party/boringssl/ssl/ssl_rsa.c \ - third_party/boringssl/ssl/ssl_session.c \ - third_party/boringssl/ssl/ssl_stat.c \ - third_party/boringssl/ssl/t1_enc.c \ - third_party/boringssl/ssl/t1_lib.c \ - third_party/boringssl/ssl/tls_record.c \ +LIBBAD_CLIENT_TEST_SRC = \ + test/core/bad_client/bad_client.c \ PUBLIC_HEADERS_C += \ -LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC)))) - -$(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl.a: $(ZLIB_DEP) $(LIBBORINGSSL_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl.a $(LIBBORINGSSL_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_TEST_UTIL_SRC = \ - third_party/boringssl/crypto/test/file_test.cc \ - third_party/boringssl/crypto/test/malloc.cc \ - third_party/boringssl/crypto/test/test_util.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TEST_UTIL_SRC)))) +LIBBAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_CLIENT_TEST_SRC)))) -$(LIBBORINGSSL_TEST_UTIL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -ifeq ($(NO_PROTOBUF),true) +ifeq ($(NO_SECURE),true) -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +# You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libboringssl_test_util.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libbad_client_test.a: openssl_dep_error else -$(LIBDIR)/$(CONFIG)/libboringssl_test_util.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_TEST_UTIL_OBJS) + +$(LIBDIR)/$(CONFIG)/libbad_client_test.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_CLIENT_TEST_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBBORINGSSL_TEST_UTIL_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_client_test.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBBAD_CLIENT_TEST_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_client_test.a endif @@ -4949,37 +4649,38 @@ endif endif +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_TEST_UTIL_OBJS:.o=.dep) +-include $(LIBBAD_CLIENT_TEST_OBJS:.o=.dep) +endif endif -LIBBORINGSSL_AES_TEST_LIB_SRC = \ - third_party/boringssl/crypto/aes/aes_test.cc \ +LIBBAD_SSL_TEST_SERVER_SRC = \ + test/core/bad_ssl/server_common.c \ -PUBLIC_HEADERS_CXX += \ +PUBLIC_HEADERS_C += \ -LIBBORINGSSL_AES_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AES_TEST_LIB_SRC)))) +LIBBAD_SSL_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_SSL_TEST_SERVER_SRC)))) -$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -ifeq ($(NO_PROTOBUF),true) +ifeq ($(NO_SECURE),true) -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +# You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: openssl_dep_error else -$(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_AES_TEST_LIB_OBJS) + +$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_SSL_TEST_SERVER_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBBORINGSSL_AES_TEST_LIB_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBBAD_SSL_TEST_SERVER_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a endif @@ -4987,37 +4688,78 @@ endif endif +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_AES_TEST_LIB_OBJS:.o=.dep) +-include $(LIBBAD_SSL_TEST_SERVER_OBJS:.o=.dep) +endif endif -LIBBORINGSSL_ASN1_TEST_LIB_SRC = \ - third_party/boringssl/crypto/asn1/asn1_test.cc \ +LIBEND2END_TESTS_SRC = \ + test/core/end2end/end2end_tests.c \ + test/core/end2end/tests/bad_hostname.c \ + test/core/end2end/tests/binary_metadata.c \ + test/core/end2end/tests/call_creds.c \ + test/core/end2end/tests/cancel_after_accept.c \ + test/core/end2end/tests/cancel_after_client_done.c \ + test/core/end2end/tests/cancel_after_invoke.c \ + test/core/end2end/tests/cancel_before_invoke.c \ + test/core/end2end/tests/cancel_in_a_vacuum.c \ + test/core/end2end/tests/cancel_with_status.c \ + test/core/end2end/tests/compressed_payload.c \ + test/core/end2end/tests/connectivity.c \ + test/core/end2end/tests/default_host.c \ + test/core/end2end/tests/disappearing_server.c \ + test/core/end2end/tests/empty_batch.c \ + test/core/end2end/tests/filter_causes_close.c \ + test/core/end2end/tests/graceful_server_shutdown.c \ + test/core/end2end/tests/high_initial_seqno.c \ + test/core/end2end/tests/hpack_size.c \ + test/core/end2end/tests/idempotent_request.c \ + test/core/end2end/tests/invoke_large_request.c \ + test/core/end2end/tests/large_metadata.c \ + test/core/end2end/tests/max_concurrent_streams.c \ + test/core/end2end/tests/max_message_length.c \ + test/core/end2end/tests/negative_deadline.c \ + test/core/end2end/tests/network_status_change.c \ + test/core/end2end/tests/no_op.c \ + test/core/end2end/tests/payload.c \ + test/core/end2end/tests/ping.c \ + test/core/end2end/tests/ping_pong_streaming.c \ + test/core/end2end/tests/registered_call.c \ + test/core/end2end/tests/request_with_flags.c \ + test/core/end2end/tests/request_with_payload.c \ + test/core/end2end/tests/server_finishes_request.c \ + test/core/end2end/tests/shutdown_finishes_calls.c \ + test/core/end2end/tests/shutdown_finishes_tags.c \ + test/core/end2end/tests/simple_delayed_request.c \ + test/core/end2end/tests/simple_metadata.c \ + test/core/end2end/tests/simple_request.c \ + test/core/end2end/tests/streaming_error_response.c \ + test/core/end2end/tests/trailing_metadata.c \ -PUBLIC_HEADERS_CXX += \ +PUBLIC_HEADERS_C += \ -LIBBORINGSSL_ASN1_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ASN1_TEST_LIB_SRC)))) +LIBEND2END_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_TESTS_SRC)))) -$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -ifeq ($(NO_PROTOBUF),true) +ifeq ($(NO_SECURE),true) -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +# You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libend2end_tests.a: openssl_dep_error else -$(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ASN1_TEST_LIB_OBJS) + +$(LIBDIR)/$(CONFIG)/libend2end_tests.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBEND2END_TESTS_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBBORINGSSL_ASN1_TEST_LIB_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_tests.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBEND2END_TESTS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_tests.a endif @@ -5025,6199 +4767,3869 @@ endif endif +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_ASN1_TEST_LIB_OBJS:.o=.dep) +-include $(LIBEND2END_TESTS_OBJS:.o=.dep) +endif endif -LIBBORINGSSL_BASE64_TEST_LIB_SRC = \ - third_party/boringssl/crypto/base64/base64_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_BASE64_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BASE64_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +LIBEND2END_NOSEC_TESTS_SRC = \ + test/core/end2end/end2end_nosec_tests.c \ + test/core/end2end/tests/bad_hostname.c \ + test/core/end2end/tests/binary_metadata.c \ + test/core/end2end/tests/cancel_after_accept.c \ + test/core/end2end/tests/cancel_after_client_done.c \ + test/core/end2end/tests/cancel_after_invoke.c \ + test/core/end2end/tests/cancel_before_invoke.c \ + test/core/end2end/tests/cancel_in_a_vacuum.c \ + test/core/end2end/tests/cancel_with_status.c \ + test/core/end2end/tests/compressed_payload.c \ + test/core/end2end/tests/connectivity.c \ + test/core/end2end/tests/default_host.c \ + test/core/end2end/tests/disappearing_server.c \ + test/core/end2end/tests/empty_batch.c \ + test/core/end2end/tests/filter_causes_close.c \ + test/core/end2end/tests/graceful_server_shutdown.c \ + test/core/end2end/tests/high_initial_seqno.c \ + test/core/end2end/tests/hpack_size.c \ + test/core/end2end/tests/idempotent_request.c \ + test/core/end2end/tests/invoke_large_request.c \ + test/core/end2end/tests/large_metadata.c \ + test/core/end2end/tests/max_concurrent_streams.c \ + test/core/end2end/tests/max_message_length.c \ + test/core/end2end/tests/negative_deadline.c \ + test/core/end2end/tests/network_status_change.c \ + test/core/end2end/tests/no_op.c \ + test/core/end2end/tests/payload.c \ + test/core/end2end/tests/ping.c \ + test/core/end2end/tests/ping_pong_streaming.c \ + test/core/end2end/tests/registered_call.c \ + test/core/end2end/tests/request_with_flags.c \ + test/core/end2end/tests/request_with_payload.c \ + test/core/end2end/tests/server_finishes_request.c \ + test/core/end2end/tests/shutdown_finishes_calls.c \ + test/core/end2end/tests/shutdown_finishes_tags.c \ + test/core/end2end/tests/simple_delayed_request.c \ + test/core/end2end/tests/simple_metadata.c \ + test/core/end2end/tests/simple_request.c \ + test/core/end2end/tests/streaming_error_response.c \ + test/core/end2end/tests/trailing_metadata.c \ -$(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a: protobuf_dep_error +PUBLIC_HEADERS_C += \ +LIBEND2END_NOSEC_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_NOSEC_TESTS_SRC)))) -else -$(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BASE64_TEST_LIB_OBJS) +$(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a: $(ZLIB_DEP) $(LIBEND2END_NOSEC_TESTS_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBBORINGSSL_BASE64_TEST_LIB_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBEND2END_NOSEC_TESTS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a endif -endif - ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_BASE64_TEST_LIB_OBJS:.o=.dep) +-include $(LIBEND2END_NOSEC_TESTS_OBJS:.o=.dep) endif -LIBBORINGSSL_BIO_TEST_LIB_SRC = \ - third_party/boringssl/crypto/bio/bio_test.cc \ - -PUBLIC_HEADERS_CXX += \ -LIBBORINGSSL_BIO_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BIO_TEST_LIB_SRC)))) +# All of the test targets, and protoc plugins -$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -ifeq ($(NO_PROTOBUF),true) +ALARM_TEST_SRC = \ + test/core/surface/alarm_test.c \ -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -$(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a: protobuf_dep_error +# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/alarm_test: openssl_dep_error else -$(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BIO_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBBORINGSSL_BIO_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a -endif - +$(BINDIR)/$(CONFIG)/alarm_test: $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alarm_test endif +$(OBJDIR)/$(CONFIG)/test/core/surface/alarm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_alarm_test: $(ALARM_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_BIO_TEST_LIB_OBJS:.o=.dep) +-include $(ALARM_TEST_OBJS:.o=.dep) +endif endif -LIBBORINGSSL_BN_TEST_LIB_SRC = \ - third_party/boringssl/crypto/bn/bn_test.cc \ +ALGORITHM_TEST_SRC = \ + test/core/compression/algorithm_test.c \ -PUBLIC_HEADERS_CXX += \ +ALGORITHM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALGORITHM_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -LIBBORINGSSL_BN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BN_TEST_LIB_SRC)))) +# You can't build secure targets if you don't have OpenSSL. -$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) +$(BINDIR)/$(CONFIG)/algorithm_test: openssl_dep_error -ifeq ($(NO_PROTOBUF),true) +else -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a: protobuf_dep_error - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BN_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBBORINGSSL_BN_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_BN_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC = \ - third_party/boringssl/crypto/bytestring/bytestring_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_AEAD_TEST_LIB_SRC = \ - third_party/boringssl/crypto/cipher/aead_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_AEAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AEAD_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_AEAD_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBBORINGSSL_AEAD_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_AEAD_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_CIPHER_TEST_LIB_SRC = \ - third_party/boringssl/crypto/cipher/cipher_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_CIPHER_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CIPHER_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_CMAC_TEST_LIB_SRC = \ - third_party/boringssl/crypto/cmac/cmac_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_CMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CMAC_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_CMAC_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBBORINGSSL_CMAC_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_CMAC_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC = \ - third_party/boringssl/crypto/constant_time_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_ED25519_TEST_LIB_SRC = \ - third_party/boringssl/crypto/curve25519/ed25519_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_ED25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ED25519_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ED25519_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBBORINGSSL_ED25519_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_ED25519_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_X25519_TEST_LIB_SRC = \ - third_party/boringssl/crypto/curve25519/x25519_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_X25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X25519_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_X25519_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBBORINGSSL_X25519_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_X25519_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_DH_TEST_LIB_SRC = \ - third_party/boringssl/crypto/dh/dh_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_DH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DH_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_DH_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBBORINGSSL_DH_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_DH_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_DIGEST_TEST_LIB_SRC = \ - third_party/boringssl/crypto/digest/digest_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_DIGEST_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DIGEST_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_DSA_TEST_LIB_SRC = \ - third_party/boringssl/crypto/dsa/dsa_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_DSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DSA_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_DSA_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a $(LIBBORINGSSL_DSA_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_DSA_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_EC_TEST_LIB_SRC = \ - third_party/boringssl/crypto/ec/ec_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_EC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EC_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_EC_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBBORINGSSL_EC_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_EC_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC = \ - third_party/boringssl/crypto/ec/example_mul.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC)))) - -$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_ECDSA_TEST_LIB_SRC = \ - third_party/boringssl/crypto/ecdsa/ecdsa_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_ECDSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_ERR_TEST_LIB_SRC = \ - third_party/boringssl/crypto/err/err_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_ERR_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ERR_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ERR_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBBORINGSSL_ERR_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_ERR_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC = \ - third_party/boringssl/crypto/evp/evp_extra_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_EVP_TEST_LIB_SRC = \ - third_party/boringssl/crypto/evp/evp_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_EVP_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_EVP_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBBORINGSSL_EVP_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_EVP_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_PBKDF_TEST_LIB_SRC = \ - third_party/boringssl/crypto/evp/pbkdf_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_PBKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PBKDF_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_HKDF_TEST_LIB_SRC = \ - third_party/boringssl/crypto/hkdf/hkdf_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_HKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HKDF_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_HMAC_TEST_LIB_SRC = \ - third_party/boringssl/crypto/hmac/hmac_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_HMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HMAC_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_HMAC_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBBORINGSSL_HMAC_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_HMAC_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_LHASH_TEST_LIB_SRC = \ - third_party/boringssl/crypto/lhash/lhash_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_LHASH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_LHASH_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_GCM_TEST_LIB_SRC = \ - third_party/boringssl/crypto/modes/gcm_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_GCM_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_PKCS12_TEST_LIB_SRC = \ - third_party/boringssl/crypto/pkcs8/pkcs12_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_PKCS12_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS12_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_PKCS8_TEST_LIB_SRC = \ - third_party/boringssl/crypto/pkcs8/pkcs8_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_PKCS8_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS8_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_POLY1305_TEST_LIB_SRC = \ - third_party/boringssl/crypto/poly1305/poly1305_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_POLY1305_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_POLY1305_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC = \ - third_party/boringssl/crypto/refcount_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_RSA_TEST_LIB_SRC = \ - third_party/boringssl/crypto/rsa/rsa_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_RSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_RSA_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_RSA_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBBORINGSSL_RSA_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_RSA_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_THREAD_TEST_LIB_SRC = \ - third_party/boringssl/crypto/thread_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_THREAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_THREAD_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_PKCS7_TEST_LIB_SRC = \ - third_party/boringssl/crypto/x509/pkcs7_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_PKCS7_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS7_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_X509_TEST_LIB_SRC = \ - third_party/boringssl/crypto/x509/x509_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_X509_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X509_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_X509_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBBORINGSSL_X509_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_X509_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_TAB_TEST_LIB_SRC = \ - third_party/boringssl/crypto/x509v3/tab_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_TAB_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TAB_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_TAB_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a $(LIBBORINGSSL_TAB_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_TAB_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_V3NAME_TEST_LIB_SRC = \ - third_party/boringssl/crypto/x509v3/v3name_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_V3NAME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_V3NAME_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_PQUEUE_TEST_LIB_SRC = \ - third_party/boringssl/ssl/pqueue/pqueue_test.c \ - -PUBLIC_HEADERS_C += \ - -LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PQUEUE_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -$(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBBORINGSSL_SSL_TEST_LIB_SRC = \ - third_party/boringssl/ssl/ssl_test.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBBORINGSSL_SSL_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SSL_TEST_LIB_SRC)))) - -$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a: protobuf_dep_error - - -else - -$(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_SSL_TEST_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBBORINGSSL_SSL_TEST_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBBORINGSSL_SSL_TEST_LIB_OBJS:.o=.dep) -endif - - -LIBZ_SRC = \ - third_party/zlib/adler32.c \ - third_party/zlib/compress.c \ - third_party/zlib/crc32.c \ - third_party/zlib/deflate.c \ - third_party/zlib/gzclose.c \ - third_party/zlib/gzlib.c \ - third_party/zlib/gzread.c \ - third_party/zlib/gzwrite.c \ - third_party/zlib/infback.c \ - third_party/zlib/inffast.c \ - third_party/zlib/inflate.c \ - third_party/zlib/inftrees.c \ - third_party/zlib/trees.c \ - third_party/zlib/uncompr.c \ - third_party/zlib/zutil.c \ - -PUBLIC_HEADERS_C += \ - -LIBZ_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBZ_SRC)))) - -$(LIBZ_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-implicit-function-declaration $(W_NO_SHIFT_NEGATIVE_VALUE) -fvisibility=hidden - -$(LIBDIR)/$(CONFIG)/libz.a: $(LIBZ_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libz.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libz.a $(LIBZ_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libz.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBZ_OBJS:.o=.dep) -endif - - -LIBBAD_CLIENT_TEST_SRC = \ - test/core/bad_client/bad_client.c \ - -PUBLIC_HEADERS_C += \ - -LIBBAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_CLIENT_TEST_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. - -$(LIBDIR)/$(CONFIG)/libbad_client_test.a: openssl_dep_error - - -else - - -$(LIBDIR)/$(CONFIG)/libbad_client_test.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_CLIENT_TEST_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_client_test.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBBAD_CLIENT_TEST_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_client_test.a -endif - - - - -endif - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(LIBBAD_CLIENT_TEST_OBJS:.o=.dep) -endif -endif - - -LIBBAD_SSL_TEST_SERVER_SRC = \ - test/core/bad_ssl/server_common.c \ - -PUBLIC_HEADERS_C += \ - -LIBBAD_SSL_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_SSL_TEST_SERVER_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. - -$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: openssl_dep_error - - -else - - -$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_SSL_TEST_SERVER_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBBAD_SSL_TEST_SERVER_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a -endif - - - - -endif - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(LIBBAD_SSL_TEST_SERVER_OBJS:.o=.dep) -endif -endif - - -LIBEND2END_TESTS_SRC = \ - test/core/end2end/end2end_tests.c \ - test/core/end2end/tests/bad_hostname.c \ - test/core/end2end/tests/binary_metadata.c \ - test/core/end2end/tests/call_creds.c \ - test/core/end2end/tests/cancel_after_accept.c \ - test/core/end2end/tests/cancel_after_client_done.c \ - test/core/end2end/tests/cancel_after_invoke.c \ - test/core/end2end/tests/cancel_before_invoke.c \ - test/core/end2end/tests/cancel_in_a_vacuum.c \ - test/core/end2end/tests/cancel_with_status.c \ - test/core/end2end/tests/compressed_payload.c \ - test/core/end2end/tests/connectivity.c \ - test/core/end2end/tests/default_host.c \ - test/core/end2end/tests/disappearing_server.c \ - test/core/end2end/tests/empty_batch.c \ - test/core/end2end/tests/filter_causes_close.c \ - test/core/end2end/tests/graceful_server_shutdown.c \ - test/core/end2end/tests/high_initial_seqno.c \ - test/core/end2end/tests/hpack_size.c \ - test/core/end2end/tests/idempotent_request.c \ - test/core/end2end/tests/invoke_large_request.c \ - test/core/end2end/tests/large_metadata.c \ - test/core/end2end/tests/max_concurrent_streams.c \ - test/core/end2end/tests/max_message_length.c \ - test/core/end2end/tests/negative_deadline.c \ - test/core/end2end/tests/network_status_change.c \ - test/core/end2end/tests/no_op.c \ - test/core/end2end/tests/payload.c \ - test/core/end2end/tests/ping.c \ - test/core/end2end/tests/ping_pong_streaming.c \ - test/core/end2end/tests/registered_call.c \ - test/core/end2end/tests/request_with_flags.c \ - test/core/end2end/tests/request_with_payload.c \ - test/core/end2end/tests/server_finishes_request.c \ - test/core/end2end/tests/shutdown_finishes_calls.c \ - test/core/end2end/tests/shutdown_finishes_tags.c \ - test/core/end2end/tests/simple_delayed_request.c \ - test/core/end2end/tests/simple_metadata.c \ - test/core/end2end/tests/simple_request.c \ - test/core/end2end/tests/streaming_error_response.c \ - test/core/end2end/tests/trailing_metadata.c \ - -PUBLIC_HEADERS_C += \ - -LIBEND2END_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_TESTS_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. - -$(LIBDIR)/$(CONFIG)/libend2end_tests.a: openssl_dep_error - - -else - - -$(LIBDIR)/$(CONFIG)/libend2end_tests.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBEND2END_TESTS_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_tests.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBEND2END_TESTS_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_tests.a -endif - - - - -endif - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(LIBEND2END_TESTS_OBJS:.o=.dep) -endif -endif - - -LIBEND2END_NOSEC_TESTS_SRC = \ - test/core/end2end/end2end_nosec_tests.c \ - test/core/end2end/tests/bad_hostname.c \ - test/core/end2end/tests/binary_metadata.c \ - test/core/end2end/tests/cancel_after_accept.c \ - test/core/end2end/tests/cancel_after_client_done.c \ - test/core/end2end/tests/cancel_after_invoke.c \ - test/core/end2end/tests/cancel_before_invoke.c \ - test/core/end2end/tests/cancel_in_a_vacuum.c \ - test/core/end2end/tests/cancel_with_status.c \ - test/core/end2end/tests/compressed_payload.c \ - test/core/end2end/tests/connectivity.c \ - test/core/end2end/tests/default_host.c \ - test/core/end2end/tests/disappearing_server.c \ - test/core/end2end/tests/empty_batch.c \ - test/core/end2end/tests/filter_causes_close.c \ - test/core/end2end/tests/graceful_server_shutdown.c \ - test/core/end2end/tests/high_initial_seqno.c \ - test/core/end2end/tests/hpack_size.c \ - test/core/end2end/tests/idempotent_request.c \ - test/core/end2end/tests/invoke_large_request.c \ - test/core/end2end/tests/large_metadata.c \ - test/core/end2end/tests/max_concurrent_streams.c \ - test/core/end2end/tests/max_message_length.c \ - test/core/end2end/tests/negative_deadline.c \ - test/core/end2end/tests/network_status_change.c \ - test/core/end2end/tests/no_op.c \ - test/core/end2end/tests/payload.c \ - test/core/end2end/tests/ping.c \ - test/core/end2end/tests/ping_pong_streaming.c \ - test/core/end2end/tests/registered_call.c \ - test/core/end2end/tests/request_with_flags.c \ - test/core/end2end/tests/request_with_payload.c \ - test/core/end2end/tests/server_finishes_request.c \ - test/core/end2end/tests/shutdown_finishes_calls.c \ - test/core/end2end/tests/shutdown_finishes_tags.c \ - test/core/end2end/tests/simple_delayed_request.c \ - test/core/end2end/tests/simple_metadata.c \ - test/core/end2end/tests/simple_request.c \ - test/core/end2end/tests/streaming_error_response.c \ - test/core/end2end/tests/trailing_metadata.c \ - -PUBLIC_HEADERS_C += \ - -LIBEND2END_NOSEC_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_NOSEC_TESTS_SRC)))) - - -$(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a: $(ZLIB_DEP) $(LIBEND2END_NOSEC_TESTS_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBEND2END_NOSEC_TESTS_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a -endif - - - - -ifneq ($(NO_DEPS),true) --include $(LIBEND2END_NOSEC_TESTS_OBJS:.o=.dep) -endif - - - -# All of the test targets, and protoc plugins - - -ALARM_TEST_SRC = \ - test/core/surface/alarm_test.c \ - -ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/alarm_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/alarm_test: $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alarm_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/surface/alarm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_alarm_test: $(ALARM_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ALARM_TEST_OBJS:.o=.dep) -endif -endif - - -ALGORITHM_TEST_SRC = \ - test/core/compression/algorithm_test.c \ - -ALGORITHM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALGORITHM_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/algorithm_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/algorithm_test: $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/algorithm_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/compression/algorithm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_algorithm_test: $(ALGORITHM_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ALGORITHM_TEST_OBJS:.o=.dep) -endif -endif - - -ALLOC_TEST_SRC = \ - test/core/support/alloc_test.c \ - -ALLOC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALLOC_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/alloc_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/alloc_test: $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alloc_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/support/alloc_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_alloc_test: $(ALLOC_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ALLOC_TEST_OBJS:.o=.dep) -endif -endif - - -ALPN_TEST_SRC = \ - test/core/transport/chttp2/alpn_test.c \ - -ALPN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/alpn_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/alpn_test: $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alpn_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/alpn_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_alpn_test: $(ALPN_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ALPN_TEST_OBJS:.o=.dep) -endif -endif - - -API_FUZZER_SRC = \ - test/core/end2end/fuzzers/api_fuzzer.c \ - -API_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/api_fuzzer: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/api_fuzzer: $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/api_fuzzer - -endif - -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/api_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_api_fuzzer: $(API_FUZZER_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(API_FUZZER_OBJS:.o=.dep) -endif -endif - - -BAD_SERVER_RESPONSE_TEST_SRC = \ - test/core/end2end/bad_server_response_test.c \ - -BAD_SERVER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SERVER_RESPONSE_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/bad_server_response_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_server_response_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/end2end/bad_server_response_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) -endif -endif - - -BIN_DECODER_TEST_SRC = \ - test/core/transport/chttp2/bin_decoder_test.c \ - -BIN_DECODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_DECODER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/bin_decoder_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/bin_decoder_test: $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_decoder_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_decoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a - -deps_bin_decoder_test: $(BIN_DECODER_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(BIN_DECODER_TEST_OBJS:.o=.dep) -endif -endif - - -BIN_ENCODER_TEST_SRC = \ - test/core/transport/chttp2/bin_encoder_test.c \ - -BIN_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/bin_encoder_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_encoder_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a - -deps_bin_encoder_test: $(BIN_ENCODER_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(BIN_ENCODER_TEST_OBJS:.o=.dep) -endif -endif - - -CENSUS_CONTEXT_TEST_SRC = \ - test/core/census/context_test.c \ - -CENSUS_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_CONTEXT_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/census_context_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/census_context_test: $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_context_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/census/context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_census_context_test: $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) -endif -endif - - -CHANNEL_CREATE_TEST_SRC = \ - test/core/surface/channel_create_test.c \ - -CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_CREATE_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/channel_create_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/channel_create_test: $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/channel_create_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/surface/channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_channel_create_test: $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) -endif -endif - - -CHTTP2_HPACK_ENCODER_TEST_SRC = \ - test/core/transport/chttp2/hpack_encoder_test.c \ - -CHTTP2_HPACK_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_HPACK_ENCODER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) -endif -endif - - -CHTTP2_STATUS_CONVERSION_TEST_SRC = \ - test/core/transport/chttp2/status_conversion_test.c \ - -CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/status_conversion_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) -endif -endif - - -CHTTP2_STREAM_MAP_TEST_SRC = \ - test/core/transport/chttp2/stream_map_test.c \ - -CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_stream_map_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/stream_map_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) -endif -endif - - -CHTTP2_VARINT_TEST_SRC = \ - test/core/transport/chttp2/varint_test.c \ - -CHTTP2_VARINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_VARINT_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/chttp2_varint_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_varint_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/varint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) -endif -endif - - -CLIENT_FUZZER_SRC = \ - test/core/end2end/fuzzers/client_fuzzer.c \ - -CLIENT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/client_fuzzer: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/client_fuzzer: $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/client_fuzzer - -endif - -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/client_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_client_fuzzer: $(CLIENT_FUZZER_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CLIENT_FUZZER_OBJS:.o=.dep) -endif -endif - - -COMPRESSION_TEST_SRC = \ - test/core/compression/compression_test.c \ - -COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/compression_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/compression_test: $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/compression/compression_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_compression_test: $(COMPRESSION_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(COMPRESSION_TEST_OBJS:.o=.dep) -endif -endif - - -CONCURRENT_CONNECTIVITY_TEST_SRC = \ - test/core/surface/concurrent_connectivity_test.c \ - -CONCURRENT_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONCURRENT_CONNECTIVITY_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/concurrent_connectivity_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/surface/concurrent_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) -endif -endif - - -DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \ - test/core/client_config/resolvers/dns_resolver_connectivity_test.c \ - -DNS_RESOLVER_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_CONNECTIVITY_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) -endif -endif - - -DNS_RESOLVER_TEST_SRC = \ - test/core/client_config/resolvers/dns_resolver_test.c \ - -DNS_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/dns_resolver_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(DNS_RESOLVER_TEST_OBJS:.o=.dep) -endif -endif - - -DUALSTACK_SOCKET_TEST_SRC = \ - test/core/end2end/dualstack_socket_test.c \ - -DUALSTACK_SOCKET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/dualstack_socket_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dualstack_socket_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/end2end/dualstack_socket_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) -endif -endif - - -ENDPOINT_PAIR_TEST_SRC = \ - test/core/iomgr/endpoint_pair_test.c \ - -ENDPOINT_PAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ENDPOINT_PAIR_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/endpoint_pair_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/endpoint_pair_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/iomgr/endpoint_pair_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) -endif -endif - - -EV_EPOLL_LINUX_TEST_SRC = \ - test/core/iomgr/ev_epoll_linux_test.c \ - -EV_EPOLL_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLL_LINUX_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epoll_linux_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/iomgr/ev_epoll_linux_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) -endif -endif - - -FD_CONSERVATION_POSIX_TEST_SRC = \ - test/core/iomgr/fd_conservation_posix_test.c \ - -FD_CONSERVATION_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_CONSERVATION_POSIX_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_conservation_posix_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_conservation_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) -endif -endif - - -FD_POSIX_TEST_SRC = \ - test/core/iomgr/fd_posix_test.c \ - -FD_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/fd_posix_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/fd_posix_test: $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_posix_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_fd_posix_test: $(FD_POSIX_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(FD_POSIX_TEST_OBJS:.o=.dep) -endif -endif - - -FLING_CLIENT_SRC = \ - test/core/fling/client.c \ - -FLING_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/fling_client: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/fling_client: $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_client +$(BINDIR)/$(CONFIG)/algorithm_test: $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/algorithm_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/client.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/compression/algorithm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_client: $(FLING_CLIENT_OBJS:.o=.dep) +deps_algorithm_test: $(ALGORITHM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_CLIENT_OBJS:.o=.dep) +-include $(ALGORITHM_TEST_OBJS:.o=.dep) endif endif -FLING_SERVER_SRC = \ - test/core/fling/server.c \ +ALLOC_TEST_SRC = \ + test/core/support/alloc_test.c \ -FLING_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC)))) +ALLOC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALLOC_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/alloc_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_server: $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/alloc_test: $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_server + $(Q) $(LD) $(LDFLAGS) $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alloc_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/server.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/alloc_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_server: $(FLING_SERVER_OBJS:.o=.dep) +deps_alloc_test: $(ALLOC_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_SERVER_OBJS:.o=.dep) +-include $(ALLOC_TEST_OBJS:.o=.dep) endif endif -FLING_STREAM_TEST_SRC = \ - test/core/fling/fling_stream_test.c \ +ALPN_TEST_SRC = \ + test/core/transport/chttp2/alpn_test.c \ -FLING_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC)))) +ALPN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_stream_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/alpn_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_stream_test: $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/alpn_test: $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_stream_test + $(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alpn_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/fling_stream_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/alpn_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_stream_test: $(FLING_STREAM_TEST_OBJS:.o=.dep) +deps_alpn_test: $(ALPN_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_STREAM_TEST_OBJS:.o=.dep) +-include $(ALPN_TEST_OBJS:.o=.dep) endif endif -FLING_TEST_SRC = \ - test/core/fling/fling_test.c \ +API_FUZZER_SRC = \ + test/core/end2end/fuzzers/api_fuzzer.c \ -FLING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC)))) +API_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/api_fuzzer: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_test: $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/api_fuzzer: $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_test + $(Q) $(LDXX) $(LDFLAGS) $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/api_fuzzer endif -$(OBJDIR)/$(CONFIG)/test/core/fling/fling_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/api_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_test: $(FLING_TEST_OBJS:.o=.dep) +deps_api_fuzzer: $(API_FUZZER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_TEST_OBJS:.o=.dep) +-include $(API_FUZZER_OBJS:.o=.dep) endif endif -GEN_HPACK_TABLES_SRC = \ - tools/codegen/core/gen_hpack_tables.c \ +BAD_SERVER_RESPONSE_TEST_SRC = \ + test/core/end2end/bad_server_response_test.c \ -GEN_HPACK_TABLES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC)))) +BAD_SERVER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SERVER_RESPONSE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gen_hpack_tables: openssl_dep_error +$(BINDIR)/$(CONFIG)/bad_server_response_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(BINDIR)/$(CONFIG)/bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_hpack_tables + $(Q) $(LD) $(LDFLAGS) $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_server_response_test endif -$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_hpack_tables.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/bad_server_response_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS:.o=.dep) +deps_bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GEN_HPACK_TABLES_OBJS:.o=.dep) +-include $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) endif endif -GEN_LEGAL_METADATA_CHARACTERS_SRC = \ - tools/codegen/core/gen_legal_metadata_characters.c \ +BIN_DECODER_TEST_SRC = \ + test/core/transport/chttp2/bin_decoder_test.c \ -GEN_LEGAL_METADATA_CHARACTERS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_LEGAL_METADATA_CHARACTERS_SRC)))) +BIN_DECODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_DECODER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: openssl_dep_error +$(BINDIR)/$(CONFIG)/bin_decoder_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) +$(BINDIR)/$(CONFIG)/bin_decoder_test: $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters + $(Q) $(LD) $(LDFLAGS) $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_decoder_test endif -$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_legal_metadata_characters.o: +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_decoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) +deps_bin_decoder_test: $(BIN_DECODER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) +-include $(BIN_DECODER_TEST_OBJS:.o=.dep) endif endif -GOAWAY_SERVER_TEST_SRC = \ - test/core/end2end/goaway_server_test.c \ +BIN_ENCODER_TEST_SRC = \ + test/core/transport/chttp2/bin_encoder_test.c \ -GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC)))) +BIN_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/bin_encoder_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test + $(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_encoder_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) +deps_bin_encoder_test: $(BIN_ENCODER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) +-include $(BIN_ENCODER_TEST_OBJS:.o=.dep) endif endif -GPR_AVL_TEST_SRC = \ - test/core/support/avl_test.c \ +CENSUS_CONTEXT_TEST_SRC = \ + test/core/census/context_test.c \ -GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC)))) +CENSUS_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_CONTEXT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_avl_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/census_context_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_avl_test: $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/census_context_test: $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_avl_test + $(Q) $(LD) $(LDFLAGS) $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_context_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/census/context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_avl_test: $(GPR_AVL_TEST_OBJS:.o=.dep) +deps_census_context_test: $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_AVL_TEST_OBJS:.o=.dep) +-include $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) endif endif -GPR_BACKOFF_TEST_SRC = \ - test/core/support/backoff_test.c \ +CHANNEL_CREATE_TEST_SRC = \ + test/core/surface/channel_create_test.c \ -GPR_BACKOFF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_BACKOFF_TEST_SRC)))) +CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_CREATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_backoff_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/channel_create_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/channel_create_test: $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_backoff_test + $(Q) $(LD) $(LDFLAGS) $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/channel_create_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/backoff_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS:.o=.dep) +deps_channel_create_test: $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_BACKOFF_TEST_OBJS:.o=.dep) +-include $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) endif endif -GPR_CMDLINE_TEST_SRC = \ - test/core/support/cmdline_test.c \ +CHTTP2_HPACK_ENCODER_TEST_SRC = \ + test/core/transport/chttp2/hpack_encoder_test.c \ -GPR_CMDLINE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC)))) +CHTTP2_HPACK_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_HPACK_ENCODER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_cmdline_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cmdline_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/cmdline_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS:.o=.dep) +deps_chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_CMDLINE_TEST_OBJS:.o=.dep) +-include $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) endif endif -GPR_CPU_TEST_SRC = \ - test/core/support/cpu_test.c \ +CHTTP2_STATUS_CONVERSION_TEST_SRC = \ + test/core/transport/chttp2/status_conversion_test.c \ -GPR_CPU_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CPU_TEST_SRC)))) +CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_cpu_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_cpu_test: $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cpu_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/cpu_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/status_conversion_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_cpu_test: $(GPR_CPU_TEST_OBJS:.o=.dep) +deps_chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_CPU_TEST_OBJS:.o=.dep) +-include $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) endif endif -GPR_ENV_TEST_SRC = \ - test/core/support/env_test.c \ +CHTTP2_STREAM_MAP_TEST_SRC = \ + test/core/transport/chttp2/stream_map_test.c \ -GPR_ENV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_ENV_TEST_SRC)))) +CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_env_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_env_test: $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_env_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_stream_map_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/env_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/stream_map_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_env_test: $(GPR_ENV_TEST_OBJS:.o=.dep) +deps_chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_ENV_TEST_OBJS:.o=.dep) +-include $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) endif endif -GPR_HISTOGRAM_TEST_SRC = \ - test/core/support/histogram_test.c \ +CHTTP2_VARINT_TEST_SRC = \ + test/core/transport/chttp2/varint_test.c \ -GPR_HISTOGRAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC)))) +CHTTP2_VARINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_VARINT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_histogram_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_varint_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_histogram_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_varint_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/histogram_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/varint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) +deps_chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) +-include $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) endif endif -GPR_HOST_PORT_TEST_SRC = \ - test/core/support/host_port_test.c \ +CLIENT_FUZZER_SRC = \ + test/core/end2end/fuzzers/client_fuzzer.c \ -GPR_HOST_PORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC)))) +CLIENT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_host_port_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_fuzzer: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/client_fuzzer: $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_host_port_test + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/client_fuzzer endif -$(OBJDIR)/$(CONFIG)/test/core/support/host_port_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/client_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) +deps_client_fuzzer: $(CLIENT_FUZZER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) +-include $(CLIENT_FUZZER_OBJS:.o=.dep) endif endif -GPR_LOG_TEST_SRC = \ - test/core/support/log_test.c \ +COMPRESSION_TEST_SRC = \ + test/core/compression/compression_test.c \ -GPR_LOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC)))) +COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_log_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/compression_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_log_test: $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/compression_test: $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_log_test + $(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/log_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/compression/compression_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_log_test: $(GPR_LOG_TEST_OBJS:.o=.dep) +deps_compression_test: $(COMPRESSION_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_LOG_TEST_OBJS:.o=.dep) +-include $(COMPRESSION_TEST_OBJS:.o=.dep) endif endif -GPR_SLICE_BUFFER_TEST_SRC = \ - test/core/support/slice_buffer_test.c \ +CONCURRENT_CONNECTIVITY_TEST_SRC = \ + test/core/surface/concurrent_connectivity_test.c \ -GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC)))) +CONCURRENT_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONCURRENT_CONNECTIVITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test + $(Q) $(LD) $(LDFLAGS) $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/concurrent_connectivity_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/slice_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/concurrent_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) +deps_concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) +-include $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) endif endif -GPR_SLICE_TEST_SRC = \ - test/core/support/slice_test.c \ +DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \ + test/core/client_config/resolvers/dns_resolver_connectivity_test.c \ -GPR_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC)))) +DNS_RESOLVER_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_CONNECTIVITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_slice_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_test + $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/slice_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_slice_test: $(GPR_SLICE_TEST_OBJS:.o=.dep) +deps_dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SLICE_TEST_OBJS:.o=.dep) +-include $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) endif endif -GPR_STACK_LOCKFREE_TEST_SRC = \ - test/core/support/stack_lockfree_test.c \ +DNS_RESOLVER_TEST_SRC = \ + test/core/client_config/resolvers/dns_resolver_test.c \ -GPR_STACK_LOCKFREE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STACK_LOCKFREE_TEST_SRC)))) +DNS_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/dns_resolver_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test + $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/stack_lockfree_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) +deps_dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) +-include $(DNS_RESOLVER_TEST_OBJS:.o=.dep) endif endif -GPR_STRING_TEST_SRC = \ - test/core/support/string_test.c \ +DUALSTACK_SOCKET_TEST_SRC = \ + test/core/end2end/dualstack_socket_test.c \ -GPR_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC)))) +DUALSTACK_SOCKET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_string_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/dualstack_socket_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_string_test: $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_string_test + $(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dualstack_socket_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/string_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/dualstack_socket_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_string_test: $(GPR_STRING_TEST_OBJS:.o=.dep) +deps_dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_STRING_TEST_OBJS:.o=.dep) +-include $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) endif endif -GPR_SYNC_TEST_SRC = \ - test/core/support/sync_test.c \ +ENDPOINT_PAIR_TEST_SRC = \ + test/core/iomgr/endpoint_pair_test.c \ -GPR_SYNC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC)))) +ENDPOINT_PAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ENDPOINT_PAIR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_sync_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/endpoint_pair_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_sync_test + $(Q) $(LD) $(LDFLAGS) $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/endpoint_pair_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/sync_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/endpoint_pair_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_sync_test: $(GPR_SYNC_TEST_OBJS:.o=.dep) +deps_endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SYNC_TEST_OBJS:.o=.dep) +-include $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) endif endif -GPR_THD_TEST_SRC = \ - test/core/support/thd_test.c \ +EV_EPOLL_LINUX_TEST_SRC = \ + test/core/iomgr/ev_epoll_linux_test.c \ -GPR_THD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC)))) +EV_EPOLL_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLL_LINUX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_thd_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_thd_test: $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_thd_test + $(Q) $(LD) $(LDFLAGS) $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epoll_linux_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/thd_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/ev_epoll_linux_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_thd_test: $(GPR_THD_TEST_OBJS:.o=.dep) +deps_ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_THD_TEST_OBJS:.o=.dep) +-include $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) endif endif -GPR_TIME_TEST_SRC = \ - test/core/support/time_test.c \ +FD_CONSERVATION_POSIX_TEST_SRC = \ + test/core/iomgr/fd_conservation_posix_test.c \ -GPR_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC)))) +FD_CONSERVATION_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_CONSERVATION_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_time_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_time_test: $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_time_test + $(Q) $(LD) $(LDFLAGS) $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_conservation_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/time_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_conservation_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_time_test: $(GPR_TIME_TEST_OBJS:.o=.dep) +deps_fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_TIME_TEST_OBJS:.o=.dep) +-include $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) endif endif -GPR_TLS_TEST_SRC = \ - test/core/support/tls_test.c \ +FD_POSIX_TEST_SRC = \ + test/core/iomgr/fd_posix_test.c \ -GPR_TLS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TLS_TEST_SRC)))) +FD_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_tls_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fd_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_tls_test: $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fd_posix_test: $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_tls_test + $(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/tls_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_tls_test: $(GPR_TLS_TEST_OBJS:.o=.dep) +deps_fd_posix_test: $(FD_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_TLS_TEST_OBJS:.o=.dep) +-include $(FD_POSIX_TEST_OBJS:.o=.dep) endif endif -GPR_USEFUL_TEST_SRC = \ - test/core/support/useful_test.c \ +FLING_CLIENT_SRC = \ + test/core/fling/client.c \ -GPR_USEFUL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC)))) +FLING_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_useful_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_client: $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_useful_test + $(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_client endif -$(OBJDIR)/$(CONFIG)/test/core/support/useful_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/client.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_useful_test: $(GPR_USEFUL_TEST_OBJS:.o=.dep) +deps_fling_client: $(FLING_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_USEFUL_TEST_OBJS:.o=.dep) +-include $(FLING_CLIENT_OBJS:.o=.dep) endif endif -GRPC_AUTH_CONTEXT_TEST_SRC = \ - test/core/security/auth_context_test.c \ +FLING_SERVER_SRC = \ + test/core/fling/server.c \ -GRPC_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_AUTH_CONTEXT_TEST_SRC)))) +FLING_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_auth_context_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_server: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_server: $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_auth_context_test + $(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_server endif -$(OBJDIR)/$(CONFIG)/test/core/security/auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/server.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +deps_fling_server: $(FLING_SERVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +-include $(FLING_SERVER_OBJS:.o=.dep) endif endif -GRPC_B64_TEST_SRC = \ - test/core/security/b64_test.c \ +FLING_STREAM_TEST_SRC = \ + test/core/fling/fling_stream_test.c \ -GRPC_B64_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_B64_TEST_SRC)))) +FLING_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_b64_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_stream_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_b64_test: $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_stream_test: $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_b64_test + $(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_stream_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/b64_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/fling_stream_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_b64_test: $(GRPC_B64_TEST_OBJS:.o=.dep) +deps_fling_stream_test: $(FLING_STREAM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_B64_TEST_OBJS:.o=.dep) +-include $(FLING_STREAM_TEST_OBJS:.o=.dep) endif endif -GRPC_BYTE_BUFFER_READER_TEST_SRC = \ - test/core/surface/byte_buffer_reader_test.c \ +FLING_TEST_SRC = \ + test/core/fling/fling_test.c \ -GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC)))) +FLING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_test: $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test + $(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/byte_buffer_reader_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/fling_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) +deps_fling_test: $(FLING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) +-include $(FLING_TEST_OBJS:.o=.dep) endif endif -GRPC_C_END2END_SRC = \ - test/c/end2end/unary_end2end_test.cc \ +GEN_HPACK_TABLES_SRC = \ + tools/codegen/core/gen_hpack_tables.c \ -GRPC_C_END2END_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_SRC)))) +GEN_HPACK_TABLES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_c_end2end: openssl_dep_error +$(BINDIR)/$(CONFIG)/gen_hpack_tables: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_c_end2end: $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(BINDIR)/$(CONFIG)/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end + $(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_hpack_tables endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/unary_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_hpack_tables.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_grpc_c_end2end: $(GRPC_C_END2END_OBJS:.o=.dep) +deps_gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_END2END_OBJS:.o=.dep) +-include $(GEN_HPACK_TABLES_OBJS:.o=.dep) endif endif -GRPC_CHANNEL_ARGS_TEST_SRC = \ - test/core/channel/channel_args_test.c \ +GEN_LEGAL_METADATA_CHARACTERS_SRC = \ + tools/codegen/core/gen_legal_metadata_characters.c \ -GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC)))) +GEN_LEGAL_METADATA_CHARACTERS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_LEGAL_METADATA_CHARACTERS_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_channel_args_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test + $(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters endif -$(OBJDIR)/$(CONFIG)/test/core/channel/channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_legal_metadata_characters.o: -deps_grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +deps_gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +-include $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) endif endif -GRPC_CHANNEL_STACK_TEST_SRC = \ - test/core/channel/channel_stack_test.c \ +GOAWAY_SERVER_TEST_SRC = \ + test/core/end2end/goaway_server_test.c \ -GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC)))) +GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_test + $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test endif -$(OBJDIR)/$(CONFIG)/test/core/channel/channel_stack_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) +deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) +-include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) endif endif -GRPC_COMPLETION_QUEUE_TEST_SRC = \ - test/core/surface/completion_queue_test.c \ +GPR_AVL_TEST_SRC = \ + test/core/support/avl_test.c \ -GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC)))) +GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_avl_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_avl_test: $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_test + $(Q) $(LD) $(LDFLAGS) $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_avl_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/completion_queue_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) +deps_gpr_avl_test: $(GPR_AVL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) +-include $(GPR_AVL_TEST_OBJS:.o=.dep) endif endif -GRPC_CREATE_JWT_SRC = \ - test/core/security/create_jwt.c \ +GPR_BACKOFF_TEST_SRC = \ + test/core/support/backoff_test.c \ -GRPC_CREATE_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREATE_JWT_SRC)))) +GPR_BACKOFF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_BACKOFF_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_create_jwt: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_backoff_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_create_jwt + $(Q) $(LD) $(LDFLAGS) $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_backoff_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/create_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/backoff_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS:.o=.dep) +deps_gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CREATE_JWT_OBJS:.o=.dep) +-include $(GPR_BACKOFF_TEST_OBJS:.o=.dep) endif endif -GRPC_CREDENTIALS_TEST_SRC = \ - test/core/security/credentials_test.c \ +GPR_CMDLINE_TEST_SRC = \ + test/core/support/cmdline_test.c \ -GRPC_CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC)))) +GPR_CMDLINE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_credentials_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_cmdline_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_credentials_test + $(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cmdline_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/cmdline_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) +deps_gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) +-include $(GPR_CMDLINE_TEST_OBJS:.o=.dep) endif endif -GRPC_FETCH_OAUTH2_SRC = \ - test/core/security/fetch_oauth2.c \ +GPR_CPU_TEST_SRC = \ + test/core/support/cpu_test.c \ -GRPC_FETCH_OAUTH2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC)))) +GPR_CPU_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CPU_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_cpu_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_cpu_test: $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 + $(Q) $(LD) $(LDFLAGS) $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cpu_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/fetch_oauth2.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/cpu_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) +deps_gpr_cpu_test: $(GPR_CPU_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) +-include $(GPR_CPU_TEST_OBJS:.o=.dep) endif endif -GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \ - test/core/surface/invalid_channel_args_test.c \ +GPR_ENV_TEST_SRC = \ + test/core/support/env_test.c \ -GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_INVALID_CHANNEL_ARGS_TEST_SRC)))) +GPR_ENV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_ENV_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_env_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_env_test: $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test + $(Q) $(LD) $(LDFLAGS) $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_env_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/invalid_channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/env_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +deps_gpr_env_test: $(GPR_ENV_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +-include $(GPR_ENV_TEST_OBJS:.o=.dep) endif endif -GRPC_JSON_TOKEN_TEST_SRC = \ - test/core/security/json_token_test.c \ +GPR_HISTOGRAM_TEST_SRC = \ + test/core/support/histogram_test.c \ -GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC)))) +GPR_HISTOGRAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_json_token_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_histogram_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_json_token_test + $(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_histogram_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/json_token_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/histogram_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) +deps_gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) +-include $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) endif endif -GRPC_JWT_VERIFIER_TEST_SRC = \ - test/core/security/jwt_verifier_test.c \ +GPR_HOST_PORT_TEST_SRC = \ + test/core/support/host_port_test.c \ -GRPC_JWT_VERIFIER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JWT_VERIFIER_TEST_SRC)))) +GPR_HOST_PORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_host_port_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test + $(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_host_port_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/jwt_verifier_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/host_port_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) +deps_gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) +-include $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) endif endif -GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \ - test/core/security/print_google_default_creds_token.c \ +GPR_LOG_TEST_SRC = \ + test/core/support/log_test.c \ -GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC)))) +GPR_LOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_log_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_log_test: $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token + $(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_log_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/print_google_default_creds_token.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/log_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) +deps_gpr_log_test: $(GPR_LOG_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) +-include $(GPR_LOG_TEST_OBJS:.o=.dep) endif endif -GRPC_SECURITY_CONNECTOR_TEST_SRC = \ - test/core/security/security_connector_test.c \ +GPR_SLICE_BUFFER_TEST_SRC = \ + test/core/support/slice_buffer_test.c \ -GRPC_SECURITY_CONNECTOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_SECURITY_CONNECTOR_TEST_SRC)))) +GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_security_connector_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_security_connector_test + $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/security_connector_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/slice_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) +deps_gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) +-include $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) endif endif -GRPC_VERIFY_JWT_SRC = \ - test/core/security/verify_jwt.c \ +GPR_SLICE_TEST_SRC = \ + test/core/support/slice_test.c \ -GRPC_VERIFY_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_VERIFY_JWT_SRC)))) +GPR_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_verify_jwt: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_slice_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_verify_jwt + $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/verify_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/slice_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS:.o=.dep) +deps_gpr_slice_test: $(GPR_SLICE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_VERIFY_JWT_OBJS:.o=.dep) +-include $(GPR_SLICE_TEST_OBJS:.o=.dep) endif endif -HPACK_PARSER_FUZZER_TEST_SRC = \ - test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ +GPR_STACK_LOCKFREE_TEST_SRC = \ + test/core/support/stack_lockfree_test.c \ -HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC)))) +GPR_STACK_LOCKFREE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STACK_LOCKFREE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/stack_lockfree_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) +deps_gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) +-include $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) endif endif -HPACK_PARSER_TEST_SRC = \ - test/core/transport/chttp2/hpack_parser_test.c \ +GPR_STRING_TEST_SRC = \ + test/core/support/string_test.c \ -HPACK_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC)))) +GPR_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_string_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_string_test: $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_test + $(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_string_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/string_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_parser_test: $(HPACK_PARSER_TEST_OBJS:.o=.dep) +deps_gpr_string_test: $(GPR_STRING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_PARSER_TEST_OBJS:.o=.dep) +-include $(GPR_STRING_TEST_OBJS:.o=.dep) endif endif -HPACK_TABLE_TEST_SRC = \ - test/core/transport/chttp2/hpack_table_test.c \ +GPR_SYNC_TEST_SRC = \ + test/core/support/sync_test.c \ -HPACK_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC)))) +GPR_SYNC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_table_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_sync_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_table_test + $(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_sync_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_table_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/sync_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_table_test: $(HPACK_TABLE_TEST_OBJS:.o=.dep) +deps_gpr_sync_test: $(GPR_SYNC_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_TABLE_TEST_OBJS:.o=.dep) +-include $(GPR_SYNC_TEST_OBJS:.o=.dep) endif endif -HTTP_PARSER_TEST_SRC = \ - test/core/http/parser_test.c \ +GPR_THD_TEST_SRC = \ + test/core/support/thd_test.c \ -HTTP_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_PARSER_TEST_SRC)))) +GPR_THD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_thd_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_parser_test: $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_thd_test: $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_parser_test + $(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_thd_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/thd_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_parser_test: $(HTTP_PARSER_TEST_OBJS:.o=.dep) +deps_gpr_thd_test: $(GPR_THD_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_PARSER_TEST_OBJS:.o=.dep) +-include $(GPR_THD_TEST_OBJS:.o=.dep) endif endif -HTTP_REQUEST_FUZZER_TEST_SRC = \ - test/core/http/request_fuzzer.c \ +GPR_TIME_TEST_SRC = \ + test/core/support/time_test.c \ -HTTP_REQUEST_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_SRC)))) +GPR_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_time_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_time_test: $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_time_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/request_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/time_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) +deps_gpr_time_test: $(GPR_TIME_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) +-include $(GPR_TIME_TEST_OBJS:.o=.dep) endif endif -HTTP_RESPONSE_FUZZER_TEST_SRC = \ - test/core/http/response_fuzzer.c \ +GPR_TLS_TEST_SRC = \ + test/core/support/tls_test.c \ -HTTP_RESPONSE_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_SRC)))) +GPR_TLS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TLS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_tls_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_tls_test: $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_tls_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/response_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/tls_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) +deps_gpr_tls_test: $(GPR_TLS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) +-include $(GPR_TLS_TEST_OBJS:.o=.dep) endif endif -HTTPCLI_FORMAT_REQUEST_TEST_SRC = \ - test/core/http/format_request_test.c \ +GPR_USEFUL_TEST_SRC = \ + test/core/support/useful_test.c \ -HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC)))) +GPR_USEFUL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpcli_format_request_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_useful_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_format_request_test + $(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_useful_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/format_request_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/useful_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) +deps_gpr_useful_test: $(GPR_USEFUL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) +-include $(GPR_USEFUL_TEST_OBJS:.o=.dep) endif endif -HTTPCLI_TEST_SRC = \ - test/core/http/httpcli_test.c \ +GRPC_AUTH_CONTEXT_TEST_SRC = \ + test/core/security/auth_context_test.c \ -HTTPCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC)))) +GRPC_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_AUTH_CONTEXT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpcli_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_auth_context_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpcli_test: $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_auth_context_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/httpcli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpcli_test: $(HTTPCLI_TEST_OBJS:.o=.dep) +deps_grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPCLI_TEST_OBJS:.o=.dep) +-include $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) endif endif -HTTPSCLI_TEST_SRC = \ - test/core/http/httpscli_test.c \ +GRPC_B64_TEST_SRC = \ + test/core/security/b64_test.c \ -HTTPSCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPSCLI_TEST_SRC)))) +GRPC_B64_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_B64_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpscli_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_b64_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpscli_test: $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_b64_test: $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpscli_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_b64_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/httpscli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/b64_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpscli_test: $(HTTPSCLI_TEST_OBJS:.o=.dep) +deps_grpc_b64_test: $(GRPC_B64_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPSCLI_TEST_OBJS:.o=.dep) +-include $(GRPC_B64_TEST_OBJS:.o=.dep) endif endif -INIT_TEST_SRC = \ - test/core/surface/init_test.c \ +GRPC_BYTE_BUFFER_READER_TEST_SRC = \ + test/core/surface/byte_buffer_reader_test.c \ -INIT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INIT_TEST_SRC)))) +GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/init_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/init_test: $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/init_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/init_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/byte_buffer_reader_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_init_test: $(INIT_TEST_OBJS:.o=.dep) +deps_grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INIT_TEST_OBJS:.o=.dep) +-include $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) endif endif -INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +GRPC_C_END2END_SRC = \ + test/c/end2end/unary_end2end_test.cc \ -INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC)))) +GRPC_C_END2END_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_c_end2end: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_c_end2end: $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/c/end2end/unary_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a -deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) +deps_grpc_c_end2end: $(GRPC_C_END2END_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) +-include $(GRPC_C_END2END_OBJS:.o=.dep) endif endif -INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +GRPC_CHANNEL_ARGS_TEST_SRC = \ + test/core/channel/channel_args_test.c \ -INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC)))) +GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_channel_args_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/channel/channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) +deps_grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) +-include $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) endif endif -INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +GRPC_CHANNEL_STACK_TEST_SRC = \ + test/core/channel/channel_stack_test.c \ -INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC)))) +GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/channel/channel_stack_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) +deps_grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) +-include $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) endif endif -INVALID_CALL_ARGUMENT_TEST_SRC = \ - test/core/end2end/invalid_call_argument_test.c \ +GRPC_COMPLETION_QUEUE_TEST_SRC = \ + test/core/surface/completion_queue_test.c \ -INVALID_CALL_ARGUMENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INVALID_CALL_ARGUMENT_TEST_SRC)))) +GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/invalid_call_argument_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/invalid_call_argument_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/invalid_call_argument_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/completion_queue_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) +deps_grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) +-include $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) endif endif -JSON_FUZZER_TEST_SRC = \ - test/core/json/fuzzer.c \ +GRPC_CREATE_JWT_SRC = \ + test/core/security/create_jwt.c \ -JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC)))) +GRPC_CREATE_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREATE_JWT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_create_jwt: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_create_jwt endif -$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/create_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS:.o=.dep) +deps_grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_FUZZER_TEST_OBJS:.o=.dep) +-include $(GRPC_CREATE_JWT_OBJS:.o=.dep) endif endif -JSON_REWRITE_SRC = \ - test/core/json/json_rewrite.c \ +GRPC_CREDENTIALS_TEST_SRC = \ + test/core/security/credentials_test.c \ -JSON_REWRITE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_SRC)))) +GRPC_CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_rewrite: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_credentials_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_rewrite: $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite + $(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_credentials_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_rewrite: $(JSON_REWRITE_OBJS:.o=.dep) +deps_grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_REWRITE_OBJS:.o=.dep) +-include $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) endif endif -JSON_REWRITE_TEST_SRC = \ - test/core/json/json_rewrite_test.c \ +GRPC_FETCH_OAUTH2_SRC = \ + test/core/security/fetch_oauth2.c \ -JSON_REWRITE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_TEST_SRC)))) +GRPC_FETCH_OAUTH2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_rewrite_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_rewrite_test: $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/fetch_oauth2.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_rewrite_test: $(JSON_REWRITE_TEST_OBJS:.o=.dep) +deps_grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_REWRITE_TEST_OBJS:.o=.dep) +-include $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) endif endif -JSON_STREAM_ERROR_TEST_SRC = \ - test/core/json/json_stream_error_test.c \ +GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \ + test/core/surface/invalid_channel_args_test.c \ -JSON_STREAM_ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_STREAM_ERROR_TEST_SRC)))) +GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_INVALID_CHANNEL_ARGS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_stream_error_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_stream_error_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_stream_error_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/invalid_channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) +deps_grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) +-include $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) endif endif -JSON_TEST_SRC = \ - test/core/json/json_test.c \ +GRPC_JSON_TOKEN_TEST_SRC = \ + test/core/security/json_token_test.c \ -JSON_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_TEST_SRC)))) +GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_json_token_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_test: $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_json_token_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/json_token_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_test: $(JSON_TEST_OBJS:.o=.dep) +deps_grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_TEST_OBJS:.o=.dep) +-include $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) endif endif -LAME_CLIENT_TEST_SRC = \ - test/core/surface/lame_client_test.c \ +GRPC_JWT_VERIFIER_TEST_SRC = \ + test/core/security/jwt_verifier_test.c \ -LAME_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC)))) +GRPC_JWT_VERIFIER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JWT_VERIFIER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/lame_client_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/lame_client_test: $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lame_client_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/lame_client_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/jwt_verifier_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_lame_client_test: $(LAME_CLIENT_TEST_OBJS:.o=.dep) +deps_grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LAME_CLIENT_TEST_OBJS:.o=.dep) +-include $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) endif endif -LB_POLICIES_TEST_SRC = \ - test/core/client_config/lb_policies_test.c \ +GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \ + test/core/security/print_google_default_creds_token.c \ -LB_POLICIES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LB_POLICIES_TEST_SRC)))) +GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/lb_policies_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: openssl_dep_error else -$(BINDIR)/$(CONFIG)/lb_policies_test: $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lb_policies_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/lb_policies_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/print_google_default_creds_token.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_lb_policies_test: $(LB_POLICIES_TEST_OBJS:.o=.dep) +deps_grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LB_POLICIES_TEST_OBJS:.o=.dep) +-include $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) endif endif -LOAD_FILE_TEST_SRC = \ - test/core/iomgr/load_file_test.c \ +GRPC_SECURITY_CONNECTOR_TEST_SRC = \ + test/core/security/security_connector_test.c \ -LOAD_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOAD_FILE_TEST_SRC)))) +GRPC_SECURITY_CONNECTOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_SECURITY_CONNECTOR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/load_file_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_security_connector_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/load_file_test: $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/load_file_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_security_connector_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/load_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/security_connector_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_load_file_test: $(LOAD_FILE_TEST_OBJS:.o=.dep) +deps_grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LOAD_FILE_TEST_OBJS:.o=.dep) +-include $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) endif endif -LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \ - test/core/network_benchmarks/low_level_ping_pong.c \ +GRPC_VERIFY_JWT_SRC = \ + test/core/security/verify_jwt.c \ -LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC)))) +GRPC_VERIFY_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_VERIFY_JWT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_verify_jwt: openssl_dep_error else -$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark + $(Q) $(LD) $(LDFLAGS) $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_verify_jwt endif -$(OBJDIR)/$(CONFIG)/test/core/network_benchmarks/low_level_ping_pong.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/verify_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +deps_grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +-include $(GRPC_VERIFY_JWT_OBJS:.o=.dep) endif endif -MESSAGE_COMPRESS_TEST_SRC = \ - test/core/compression/message_compress_test.c \ +HPACK_PARSER_FUZZER_TEST_SRC = \ + test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ -MESSAGE_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC)))) +HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/message_compress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/message_compress_test + $(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/compression/message_compress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +deps_hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +-include $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) endif endif -MLOG_TEST_SRC = \ - test/core/census/mlog_test.c \ +HPACK_PARSER_TEST_SRC = \ + test/core/transport/chttp2/hpack_parser_test.c \ -MLOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MLOG_TEST_SRC)))) +HPACK_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/mlog_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_parser_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test + $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_test endif -$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_mlog_test: $(MLOG_TEST_OBJS:.o=.dep) +deps_hpack_parser_test: $(HPACK_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MLOG_TEST_OBJS:.o=.dep) +-include $(HPACK_PARSER_TEST_OBJS:.o=.dep) endif endif -MULTIPLE_SERVER_QUEUES_TEST_SRC = \ - test/core/end2end/multiple_server_queues_test.c \ +HPACK_TABLE_TEST_SRC = \ + test/core/transport/chttp2/hpack_table_test.c \ -MULTIPLE_SERVER_QUEUES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MULTIPLE_SERVER_QUEUES_TEST_SRC)))) +HPACK_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/multiple_server_queues_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_table_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/multiple_server_queues_test + $(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_table_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/multiple_server_queues_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_table_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +deps_hpack_table_test: $(HPACK_TABLE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +-include $(HPACK_TABLE_TEST_OBJS:.o=.dep) endif endif -MURMUR_HASH_TEST_SRC = \ - test/core/support/murmur_hash_test.c \ +HTTP_PARSER_TEST_SRC = \ + test/core/http/parser_test.c \ -MURMUR_HASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC)))) +HTTP_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/murmur_hash_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_parser_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_parser_test: $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/murmur_hash_test + $(Q) $(LD) $(LDFLAGS) $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_parser_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/murmur_hash_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_murmur_hash_test: $(MURMUR_HASH_TEST_OBJS:.o=.dep) +deps_http_parser_test: $(HTTP_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MURMUR_HASH_TEST_OBJS:.o=.dep) +-include $(HTTP_PARSER_TEST_OBJS:.o=.dep) endif endif -NANOPB_FUZZER_RESPONSE_TEST_SRC = \ - test/core/nanopb/fuzzer_response.c \ +HTTP_REQUEST_FUZZER_TEST_SRC = \ + test/core/http/request_fuzzer.c \ -NANOPB_FUZZER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_SRC)))) +HTTP_REQUEST_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test + $(Q) $(LDXX) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_response.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/request_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) +deps_http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) +-include $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) endif endif -NANOPB_FUZZER_SERVERLIST_TEST_SRC = \ - test/core/nanopb/fuzzer_serverlist.c \ +HTTP_RESPONSE_FUZZER_TEST_SRC = \ + test/core/http/response_fuzzer.c \ -NANOPB_FUZZER_SERVERLIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_SRC)))) +HTTP_RESPONSE_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test + $(Q) $(LDXX) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_serverlist.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/response_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) +deps_http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) +-include $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) endif endif -NO_SERVER_TEST_SRC = \ - test/core/end2end/no_server_test.c \ +HTTPCLI_FORMAT_REQUEST_TEST_SRC = \ + test/core/http/format_request_test.c \ -NO_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC)))) +HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/no_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpcli_format_request_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/no_server_test: $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/no_server_test + $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_format_request_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/no_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/format_request_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_no_server_test: $(NO_SERVER_TEST_OBJS:.o=.dep) +deps_httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NO_SERVER_TEST_OBJS:.o=.dep) +-include $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) endif endif -RESOLVE_ADDRESS_TEST_SRC = \ - test/core/iomgr/resolve_address_test.c \ +HTTPCLI_TEST_SRC = \ + test/core/http/httpcli_test.c \ -RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC)))) +HTTPCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/resolve_address_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpcli_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpcli_test: $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_test + $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/httpcli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +deps_httpcli_test: $(HTTPCLI_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +-include $(HTTPCLI_TEST_OBJS:.o=.dep) endif endif -SECURE_CHANNEL_CREATE_TEST_SRC = \ - test/core/surface/secure_channel_create_test.c \ +HTTPSCLI_TEST_SRC = \ + test/core/http/httpscli_test.c \ -SECURE_CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_CHANNEL_CREATE_TEST_SRC)))) +HTTPSCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPSCLI_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_channel_create_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpscli_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpscli_test: $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_channel_create_test + $(Q) $(LD) $(LDFLAGS) $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpscli_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/secure_channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/httpscli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +deps_httpscli_test: $(HTTPSCLI_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +-include $(HTTPSCLI_TEST_OBJS:.o=.dep) endif endif -SECURE_ENDPOINT_TEST_SRC = \ - test/core/security/secure_endpoint_test.c \ +INIT_TEST_SRC = \ + test/core/surface/init_test.c \ -SECURE_ENDPOINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC)))) +INIT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INIT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_endpoint_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/init_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/init_test: $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_endpoint_test + $(Q) $(LD) $(LDFLAGS) $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/init_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/secure_endpoint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/init_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) +deps_init_test: $(INIT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) +-include $(INIT_TEST_OBJS:.o=.dep) endif endif -SEQUENTIAL_CONNECTIVITY_TEST_SRC = \ - test/core/surface/sequential_connectivity_test.c \ +INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -SEQUENTIAL_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SEQUENTIAL_CONNECTIVITY_TEST_SRC)))) +INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sequential_connectivity_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sequential_connectivity_test + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/sequential_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) +deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) endif endif -SERVER_CHTTP2_TEST_SRC = \ - test/core/surface/server_chttp2_test.c \ +INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -SERVER_CHTTP2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CHTTP2_TEST_SRC)))) +INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_chttp2_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_chttp2_test + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/server_chttp2_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) +deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) endif endif -SERVER_FUZZER_SRC = \ - test/core/end2end/fuzzers/server_fuzzer.c \ +INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_SRC)))) +INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_fuzzer: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_fuzzer: $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/server_fuzzer + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/server_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_fuzzer: $(SERVER_FUZZER_OBJS:.o=.dep) +deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_FUZZER_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) endif endif -SERVER_TEST_SRC = \ - test/core/surface/server_test.c \ +INVALID_CALL_ARGUMENT_TEST_SRC = \ + test/core/end2end/invalid_call_argument_test.c \ -SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_TEST_SRC)))) +INVALID_CALL_ARGUMENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INVALID_CALL_ARGUMENT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/invalid_call_argument_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_test: $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_test + $(Q) $(LD) $(LDFLAGS) $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/invalid_call_argument_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/invalid_call_argument_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_test: $(SERVER_TEST_OBJS:.o=.dep) +deps_invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_TEST_OBJS:.o=.dep) +-include $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) endif endif -SET_INITIAL_CONNECT_STRING_TEST_SRC = \ - test/core/client_config/set_initial_connect_string_test.c \ +JSON_FUZZER_TEST_SRC = \ + test/core/json/fuzzer.c \ -SET_INITIAL_CONNECT_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SET_INITIAL_CONNECT_STRING_TEST_SRC)))) +JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/set_initial_connect_string_test + $(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/set_initial_connect_string_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) +deps_json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) +-include $(JSON_FUZZER_TEST_OBJS:.o=.dep) endif endif -SOCKADDR_RESOLVER_TEST_SRC = \ - test/core/client_config/resolvers/sockaddr_resolver_test.c \ +JSON_REWRITE_SRC = \ + test/core/json/json_rewrite.c \ -SOCKADDR_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_RESOLVER_TEST_SRC)))) +JSON_REWRITE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_rewrite: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_rewrite: $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_resolver_test + $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/sockaddr_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) +deps_json_rewrite: $(JSON_REWRITE_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) +-include $(JSON_REWRITE_OBJS:.o=.dep) endif endif -SOCKADDR_UTILS_TEST_SRC = \ - test/core/iomgr/sockaddr_utils_test.c \ +JSON_REWRITE_TEST_SRC = \ + test/core/json/json_rewrite_test.c \ -SOCKADDR_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC)))) +JSON_REWRITE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sockaddr_utils_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_rewrite_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_rewrite_test: $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_utils_test + $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/sockaddr_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) +deps_json_rewrite_test: $(JSON_REWRITE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) +-include $(JSON_REWRITE_TEST_OBJS:.o=.dep) endif endif -SOCKET_UTILS_TEST_SRC = \ - test/core/iomgr/socket_utils_test.c \ +JSON_STREAM_ERROR_TEST_SRC = \ + test/core/json/json_stream_error_test.c \ -SOCKET_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKET_UTILS_TEST_SRC)))) +JSON_STREAM_ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_STREAM_ERROR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/socket_utils_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_stream_error_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/socket_utils_test: $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/socket_utils_test + $(Q) $(LD) $(LDFLAGS) $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_stream_error_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/socket_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_stream_error_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_socket_utils_test: $(SOCKET_UTILS_TEST_OBJS:.o=.dep) +deps_json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKET_UTILS_TEST_OBJS:.o=.dep) +-include $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) endif endif -TCP_CLIENT_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_client_posix_test.c \ +JSON_TEST_SRC = \ + test/core/json/json_test.c \ -TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC)))) +JSON_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_client_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_test: $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_posix_test + $(Q) $(LD) $(LDFLAGS) $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_client_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) +deps_json_test: $(JSON_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) +-include $(JSON_TEST_OBJS:.o=.dep) endif endif -TCP_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_posix_test.c \ +LAME_CLIENT_TEST_SRC = \ + test/core/surface/lame_client_test.c \ -TCP_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC)))) +LAME_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/lame_client_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/lame_client_test: $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_posix_test + $(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lame_client_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/lame_client_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_tcp_posix_test: $(TCP_POSIX_TEST_OBJS:.o=.dep) +deps_lame_client_test: $(LAME_CLIENT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_POSIX_TEST_OBJS:.o=.dep) +-include $(LAME_CLIENT_TEST_OBJS:.o=.dep) endif endif -TCP_SERVER_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_server_posix_test.c \ +LB_POLICIES_TEST_SRC = \ + test/core/client_config/lb_policies_test.c \ -TCP_SERVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC)))) +LB_POLICIES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LB_POLICIES_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_server_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/lb_policies_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/lb_policies_test: $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_posix_test + $(Q) $(LD) $(LDFLAGS) $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lb_policies_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_server_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/lb_policies_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) +deps_lb_policies_test: $(LB_POLICIES_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) +-include $(LB_POLICIES_TEST_OBJS:.o=.dep) endif endif -TIME_AVERAGED_STATS_TEST_SRC = \ - test/core/iomgr/time_averaged_stats_test.c \ +LOAD_FILE_TEST_SRC = \ + test/core/iomgr/load_file_test.c \ -TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC)))) +LOAD_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOAD_FILE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/time_averaged_stats_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/load_file_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/load_file_test: $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/time_averaged_stats_test + $(Q) $(LD) $(LDFLAGS) $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/load_file_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/time_averaged_stats_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/load_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) +deps_load_file_test: $(LOAD_FILE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) +-include $(LOAD_FILE_TEST_OBJS:.o=.dep) endif endif -TIMEOUT_ENCODING_TEST_SRC = \ - test/core/transport/chttp2/timeout_encoding_test.c \ +LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \ + test/core/network_benchmarks/low_level_ping_pong.c \ -TIMEOUT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC)))) +LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timeout_encoding_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timeout_encoding_test + $(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/timeout_encoding_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/network_benchmarks/low_level_ping_pong.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) +deps_low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) +-include $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) endif endif -TIMER_HEAP_TEST_SRC = \ - test/core/iomgr/timer_heap_test.c \ +MESSAGE_COMPRESS_TEST_SRC = \ + test/core/compression/message_compress_test.c \ -TIMER_HEAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_HEAP_TEST_SRC)))) +MESSAGE_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timer_heap_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/message_compress_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timer_heap_test: $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_heap_test + $(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/message_compress_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_heap_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/compression/message_compress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_timer_heap_test: $(TIMER_HEAP_TEST_OBJS:.o=.dep) +deps_message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMER_HEAP_TEST_OBJS:.o=.dep) +-include $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) endif endif -TIMER_LIST_TEST_SRC = \ - test/core/iomgr/timer_list_test.c \ +MLOG_TEST_SRC = \ + test/core/census/mlog_test.c \ -TIMER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_LIST_TEST_SRC)))) +MLOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MLOG_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timer_list_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/mlog_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timer_list_test: $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_list_test + $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_list_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_timer_list_test: $(TIMER_LIST_TEST_OBJS:.o=.dep) +deps_mlog_test: $(MLOG_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMER_LIST_TEST_OBJS:.o=.dep) +-include $(MLOG_TEST_OBJS:.o=.dep) endif endif -TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \ - test/core/transport/connectivity_state_test.c \ +MULTIPLE_SERVER_QUEUES_TEST_SRC = \ + test/core/end2end/multiple_server_queues_test.c \ -TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_CONNECTIVITY_STATE_TEST_SRC)))) +MULTIPLE_SERVER_QUEUES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MULTIPLE_SERVER_QUEUES_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/multiple_server_queues_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_connectivity_state_test + $(Q) $(LD) $(LDFLAGS) $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/multiple_server_queues_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/connectivity_state_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/multiple_server_queues_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) +deps_multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) +-include $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) endif endif -TRANSPORT_METADATA_TEST_SRC = \ - test/core/transport/metadata_test.c \ +MURMUR_HASH_TEST_SRC = \ + test/core/support/murmur_hash_test.c \ -TRANSPORT_METADATA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC)))) +MURMUR_HASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_metadata_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/murmur_hash_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_metadata_test + $(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/murmur_hash_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/metadata_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/murmur_hash_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) +deps_murmur_hash_test: $(MURMUR_HASH_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) +-include $(MURMUR_HASH_TEST_OBJS:.o=.dep) endif endif -TRANSPORT_SECURITY_TEST_SRC = \ - test/core/tsi/transport_security_test.c \ +NANOPB_FUZZER_RESPONSE_TEST_SRC = \ + test/core/nanopb/fuzzer_response.c \ -TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_SECURITY_TEST_SRC)))) +NANOPB_FUZZER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_security_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_security_test + $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test endif -$(OBJDIR)/$(CONFIG)/test/core/tsi/transport_security_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_response.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) +deps_nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) +-include $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) endif endif -UDP_SERVER_TEST_SRC = \ - test/core/iomgr/udp_server_test.c \ +NANOPB_FUZZER_SERVERLIST_TEST_SRC = \ + test/core/nanopb/fuzzer_serverlist.c \ -UDP_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UDP_SERVER_TEST_SRC)))) +NANOPB_FUZZER_SERVERLIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/udp_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/udp_server_test: $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/udp_server_test + $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/udp_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_serverlist.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_udp_server_test: $(UDP_SERVER_TEST_OBJS:.o=.dep) +deps_nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(UDP_SERVER_TEST_OBJS:.o=.dep) +-include $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) endif endif -URI_FUZZER_TEST_SRC = \ - test/core/client_config/uri_fuzzer_test.c \ +NO_SERVER_TEST_SRC = \ + test/core/end2end/no_server_test.c \ -URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC)))) +NO_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/uri_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/no_server_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/no_server_test: $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/no_server_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/no_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS:.o=.dep) +deps_no_server_test: $(NO_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(URI_FUZZER_TEST_OBJS:.o=.dep) +-include $(NO_SERVER_TEST_OBJS:.o=.dep) endif endif -URI_PARSER_TEST_SRC = \ - test/core/client_config/uri_parser_test.c \ +RESOLVE_ADDRESS_TEST_SRC = \ + test/core/iomgr/resolve_address_test.c \ -URI_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_PARSER_TEST_SRC)))) +RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/uri_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/resolve_address_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/uri_parser_test: $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_parser_test + $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_uri_parser_test: $(URI_PARSER_TEST_OBJS:.o=.dep) +deps_resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(URI_PARSER_TEST_OBJS:.o=.dep) +-include $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) endif endif -ALARM_CPP_TEST_SRC = \ - test/cpp/common/alarm_cpp_test.cc \ +SECURE_CHANNEL_CREATE_TEST_SRC = \ + test/core/surface/secure_channel_create_test.c \ -ALARM_CPP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_CPP_TEST_SRC)))) +SECURE_CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_CHANNEL_CREATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/alarm_cpp_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_channel_create_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/alarm_cpp_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/alarm_cpp_test: $(PROTOBUF_DEP) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alarm_cpp_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_channel_create_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/alarm_cpp_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/secure_channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_alarm_cpp_test: $(ALARM_CPP_TEST_OBJS:.o=.dep) +deps_secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALARM_CPP_TEST_OBJS:.o=.dep) +-include $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) endif endif -ASYNC_END2END_TEST_SRC = \ - test/cpp/end2end/async_end2end_test.cc \ +SECURE_ENDPOINT_TEST_SRC = \ + test/core/security/secure_endpoint_test.c \ -ASYNC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ASYNC_END2END_TEST_SRC)))) +SECURE_ENDPOINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/async_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_endpoint_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/async_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/async_end2end_test: $(PROTOBUF_DEP) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/async_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_endpoint_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/async_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/secure_endpoint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_async_end2end_test: $(ASYNC_END2END_TEST_OBJS:.o=.dep) +deps_secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ASYNC_END2END_TEST_OBJS:.o=.dep) +-include $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) endif endif -AUTH_PROPERTY_ITERATOR_TEST_SRC = \ - test/cpp/common/auth_property_iterator_test.cc \ +SEQUENTIAL_CONNECTIVITY_TEST_SRC = \ + test/core/surface/sequential_connectivity_test.c \ -AUTH_PROPERTY_ITERATOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(AUTH_PROPERTY_ITERATOR_TEST_SRC)))) +SEQUENTIAL_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SEQUENTIAL_CONNECTIVITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/sequential_connectivity_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: $(PROTOBUF_DEP) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/auth_property_iterator_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sequential_connectivity_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/auth_property_iterator_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/sequential_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_auth_property_iterator_test: $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +deps_sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +-include $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) endif endif -CHANNEL_ARGUMENTS_TEST_SRC = \ - test/cpp/common/channel_arguments_test.cc \ +SERVER_CHTTP2_TEST_SRC = \ + test/core/surface/server_chttp2_test.c \ -CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC)))) +SERVER_CHTTP2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CHTTP2_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/channel_arguments_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_chttp2_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/channel_arguments_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/channel_arguments_test: $(PROTOBUF_DEP) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_arguments_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_chttp2_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/server_chttp2_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) +deps_server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) +-include $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) endif endif -CLI_CALL_TEST_SRC = \ - test/cpp/util/cli_call_test.cc \ +SERVER_FUZZER_SRC = \ + test/core/end2end/fuzzers/server_fuzzer.c \ -CLI_CALL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLI_CALL_TEST_SRC)))) +SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cli_call_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_fuzzer: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cli_call_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cli_call_test: $(PROTOBUF_DEP) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_fuzzer: $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cli_call_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/server_fuzzer endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/server_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cli_call_test: $(CLI_CALL_TEST_OBJS:.o=.dep) +deps_server_fuzzer: $(SERVER_FUZZER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLI_CALL_TEST_OBJS:.o=.dep) +-include $(SERVER_FUZZER_OBJS:.o=.dep) endif endif -CLIENT_CRASH_TEST_SRC = \ - test/cpp/end2end/client_crash_test.cc \ +SERVER_TEST_SRC = \ + test/core/surface/server_test.c \ -CLIENT_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SRC)))) +SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_crash_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/client_crash_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/client_crash_test: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_test: $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_client_crash_test: $(CLIENT_CRASH_TEST_OBJS:.o=.dep) +deps_server_test: $(SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLIENT_CRASH_TEST_OBJS:.o=.dep) +-include $(SERVER_TEST_OBJS:.o=.dep) endif endif -CLIENT_CRASH_TEST_SERVER_SRC = \ - test/cpp/end2end/client_crash_test_server.cc \ +SET_INITIAL_CONNECT_STRING_TEST_SRC = \ + test/core/client_config/set_initial_connect_string_test.c \ -CLIENT_CRASH_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SERVER_SRC)))) +SET_INITIAL_CONNECT_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SET_INITIAL_CONNECT_STRING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_crash_test_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/client_crash_test_server: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/client_crash_test_server: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test_server - -endif + $(Q) $(LD) $(LDFLAGS) $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/set_initial_connect_string_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/set_initial_connect_string_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_client_crash_test_server: $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +deps_set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +-include $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) endif endif -CODEGEN_TEST_FULL_SRC = \ - $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ - test/cpp/codegen/codegen_test_full.cc \ +SOCKADDR_RESOLVER_TEST_SRC = \ + test/core/client_config/resolvers/sockaddr_resolver_test.c \ -CODEGEN_TEST_FULL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_FULL_SRC)))) +SOCKADDR_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_RESOLVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/codegen_test_full: openssl_dep_error +$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/codegen_test_full: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/codegen_test_full: $(PROTOBUF_DEP) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_full - -endif + $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_resolver_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/sockaddr_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_codegen_test_full: $(CODEGEN_TEST_FULL_OBJS:.o=.dep) +deps_sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CODEGEN_TEST_FULL_OBJS:.o=.dep) +-include $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -CODEGEN_TEST_MINIMAL_SRC = \ - $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ - test/cpp/codegen/codegen_test_minimal.cc \ - src/cpp/codegen/codegen_init.cc \ +SOCKADDR_UTILS_TEST_SRC = \ + test/core/iomgr/sockaddr_utils_test.c \ -CODEGEN_TEST_MINIMAL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_MINIMAL_SRC)))) +SOCKADDR_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/codegen_test_minimal: openssl_dep_error +$(BINDIR)/$(CONFIG)/sockaddr_utils_test: openssl_dep_error else +$(BINDIR)/$(CONFIG)/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_utils_test -ifeq ($(NO_PROTOBUF),true) +endif -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(OBJDIR)/$(CONFIG)/test/core/iomgr/sockaddr_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -$(BINDIR)/$(CONFIG)/codegen_test_minimal: protobuf_dep_error +deps_sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) -else +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) +endif +endif -$(BINDIR)/$(CONFIG)/codegen_test_minimal: $(PROTOBUF_DEP) $(CODEGEN_TEST_MINIMAL_OBJS) - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_MINIMAL_OBJS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_minimal -endif +SOCKET_UTILS_TEST_SRC = \ + test/core/iomgr/socket_utils_test.c \ + +SOCKET_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKET_UTILS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -endif +# You can't build secure targets if you don't have OpenSSL. -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: +$(BINDIR)/$(CONFIG)/socket_utils_test: openssl_dep_error -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: +else -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: +$(BINDIR)/$(CONFIG)/socket_utils_test: $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/socket_utils_test -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: +endif -$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: +$(OBJDIR)/$(CONFIG)/test/core/iomgr/socket_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) +deps_socket_utils_test: $(SOCKET_UTILS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) +-include $(SOCKET_UTILS_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -CREDENTIALS_TEST_SRC = \ - test/cpp/client/credentials_test.cc \ +TCP_CLIENT_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_client_posix_test.c \ -CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CREDENTIALS_TEST_SRC)))) +TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/credentials_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_client_posix_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/credentials_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/credentials_test: $(PROTOBUF_DEP) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/credentials_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_posix_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/client/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_client_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_credentials_test: $(CREDENTIALS_TEST_OBJS:.o=.dep) +deps_tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CREDENTIALS_TEST_OBJS:.o=.dep) +-include $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) endif endif -CXX_BYTE_BUFFER_TEST_SRC = \ - test/cpp/util/byte_buffer_test.cc \ +TCP_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_posix_test.c \ -CXX_BYTE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_BYTE_BUFFER_TEST_SRC)))) +TCP_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_posix_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: $(PROTOBUF_DEP) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_posix_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_byte_buffer_test: $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) +deps_tcp_posix_test: $(TCP_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) +-include $(TCP_POSIX_TEST_OBJS:.o=.dep) endif endif -CXX_SLICE_TEST_SRC = \ - test/cpp/util/slice_test.cc \ +TCP_SERVER_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_server_posix_test.c \ -CXX_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_SLICE_TEST_SRC)))) +TCP_SERVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_slice_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_server_posix_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_slice_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_slice_test: $(PROTOBUF_DEP) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_slice_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_posix_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/slice_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_server_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_slice_test: $(CXX_SLICE_TEST_OBJS:.o=.dep) +deps_tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_SLICE_TEST_OBJS:.o=.dep) +-include $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) endif endif -CXX_STRING_REF_TEST_SRC = \ - test/cpp/util/string_ref_test.cc \ +TIME_AVERAGED_STATS_TEST_SRC = \ + test/core/iomgr/time_averaged_stats_test.c \ -CXX_STRING_REF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_STRING_REF_TEST_SRC)))) +TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/time_averaged_stats_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: $(PROTOBUF_DEP) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(BINDIR)/$(CONFIG)/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/time_averaged_stats_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/time_averaged_stats_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_string_ref_test: $(CXX_STRING_REF_TEST_OBJS:.o=.dep) +deps_time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_STRING_REF_TEST_OBJS:.o=.dep) +-include $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) endif endif -CXX_TIME_TEST_SRC = \ - test/cpp/util/time_test.cc \ +TIMEOUT_ENCODING_TEST_SRC = \ + test/core/transport/chttp2/timeout_encoding_test.c \ -CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC)))) +TIMEOUT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timeout_encoding_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timeout_encoding_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/timeout_encoding_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep) +deps_timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_TIME_TEST_OBJS:.o=.dep) +-include $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) endif endif -END2END_TEST_SRC = \ - test/cpp/end2end/end2end_test.cc \ +TIMER_HEAP_TEST_SRC = \ + test/core/iomgr/timer_heap_test.c \ -END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(END2END_TEST_SRC)))) +TIMER_HEAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_HEAP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timer_heap_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/end2end_test: $(PROTOBUF_DEP) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timer_heap_test: $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_heap_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_heap_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_end2end_test: $(END2END_TEST_OBJS:.o=.dep) +deps_timer_heap_test: $(TIMER_HEAP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(END2END_TEST_OBJS:.o=.dep) +-include $(TIMER_HEAP_TEST_OBJS:.o=.dep) endif endif -GENERIC_END2END_TEST_SRC = \ - test/cpp/end2end/generic_end2end_test.cc \ +TIMER_LIST_TEST_SRC = \ + test/core/iomgr/timer_list_test.c \ -GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GENERIC_END2END_TEST_SRC)))) +TIMER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_LIST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/generic_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timer_list_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/generic_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/generic_end2end_test: $(PROTOBUF_DEP) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timer_list_test: $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_list_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_list_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_generic_end2end_test: $(GENERIC_END2END_TEST_OBJS:.o=.dep) +deps_timer_list_test: $(TIMER_LIST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GENERIC_END2END_TEST_OBJS:.o=.dep) +-include $(TIMER_LIST_TEST_OBJS:.o=.dep) endif endif -GOLDEN_FILE_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ - test/cpp/codegen/golden_file_test.cc \ +TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \ + test/core/transport/connectivity_state_test.c \ -GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) +TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_CONNECTIVITY_STATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/golden_file_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_connectivity_state_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/connectivity_state_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) +endif +endif -else +TRANSPORT_METADATA_TEST_SRC = \ + test/core/transport/metadata_test.c \ +TRANSPORT_METADATA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/transport_metadata_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/golden_file_test: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_metadata_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/metadata_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +deps_transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +-include $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc -GRPC_CLI_SRC = \ - test/cpp/util/grpc_cli.cc \ +TRANSPORT_SECURITY_TEST_SRC = \ + test/core/tsi/transport_security_test.c \ -GRPC_CLI_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CLI_SRC)))) +TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_SECURITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_cli: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_security_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_cli: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli - -endif + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_security_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/tsi/transport_security_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep) +deps_transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CLI_OBJS:.o=.dep) +-include $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) endif endif -GRPC_CPP_PLUGIN_SRC = \ - src/compiler/cpp_plugin.cc \ - -GRPC_CPP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CPP_PLUGIN_SRC)))) +UDP_SERVER_TEST_SRC = \ + test/core/iomgr/udp_server_test.c \ +UDP_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UDP_SERVER_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/udp_server_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: $(PROTOBUF_DEP) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/udp_server_test: $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin + $(Q) $(LD) $(LDFLAGS) $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/udp_server_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/cpp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/udp_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_cpp_plugin: $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) +deps_udp_server_test: $(UDP_SERVER_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) +-include $(UDP_SERVER_TEST_OBJS:.o=.dep) +endif endif -GRPC_CSHARP_PLUGIN_SRC = \ - src/compiler/csharp_plugin.cc \ - -GRPC_CSHARP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CSHARP_PLUGIN_SRC)))) +URI_FUZZER_TEST_SRC = \ + test/core/client_config/uri_fuzzer_test.c \ +URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/uri_fuzzer_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: $(PROTOBUF_DEP) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin + $(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/csharp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_csharp_plugin: $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) +deps_uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) +-include $(URI_FUZZER_TEST_OBJS:.o=.dep) +endif endif -GRPC_NODE_PLUGIN_SRC = \ - src/compiler/node_plugin.cc \ - -GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) +URI_PARSER_TEST_SRC = \ + test/core/client_config/uri_parser_test.c \ +URI_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_PARSER_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/uri_parser_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/uri_parser_test: $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin + $(Q) $(LD) $(LDFLAGS) $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_parser_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +deps_uri_parser_test: $(URI_PARSER_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +-include $(URI_PARSER_TEST_OBJS:.o=.dep) +endif endif -GRPC_OBJECTIVE_C_PLUGIN_SRC = \ - src/compiler/objective_c_plugin.cc \ +ALARM_CPP_TEST_SRC = \ + test/cpp/common/alarm_cpp_test.cc \ + +ALARM_CPP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_CPP_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/alarm_cpp_test: openssl_dep_error + +else -GRPC_OBJECTIVE_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_OBJECTIVE_C_PLUGIN_SRC)))) @@ -11225,30 +8637,42 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/alarm_cpp_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: $(PROTOBUF_DEP) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/alarm_cpp_test: $(PROTOBUF_DEP) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin + $(Q) $(LDXX) $(LDFLAGS) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alarm_cpp_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/objective_c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_objective_c_plugin: $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/alarm_cpp_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_alarm_cpp_test: $(ALARM_CPP_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) +-include $(ALARM_CPP_TEST_OBJS:.o=.dep) +endif endif -GRPC_PYTHON_PLUGIN_SRC = \ - src/compiler/python_plugin.cc \ +ASYNC_END2END_TEST_SRC = \ + test/cpp/end2end/async_end2end_test.cc \ + +ASYNC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ASYNC_END2END_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/async_end2end_test: openssl_dep_error + +else -GRPC_PYTHON_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PYTHON_PLUGIN_SRC)))) @@ -11256,30 +8680,42 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_python_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/async_end2end_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_python_plugin: $(PROTOBUF_DEP) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/async_end2end_test: $(PROTOBUF_DEP) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin + $(Q) $(LDXX) $(LDFLAGS) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/async_end2end_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/python_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_python_plugin: $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/async_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_async_end2end_test: $(ASYNC_END2END_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) +-include $(ASYNC_END2END_TEST_OBJS:.o=.dep) +endif endif -GRPC_RUBY_PLUGIN_SRC = \ - src/compiler/ruby_plugin.cc \ +AUTH_PROPERTY_ITERATOR_TEST_SRC = \ + test/cpp/common/auth_property_iterator_test.cc \ + +AUTH_PROPERTY_ITERATOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(AUTH_PROPERTY_ITERATOR_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: openssl_dep_error + +else -GRPC_RUBY_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_RUBY_PLUGIN_SRC)))) @@ -11287,36 +8723,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: $(PROTOBUF_DEP) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: $(PROTOBUF_DEP) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin + $(Q) $(LDXX) $(LDFLAGS) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/auth_property_iterator_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/ruby_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_ruby_plugin: $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/auth_property_iterator_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_auth_property_iterator_test: $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) +-include $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +endif endif -GRPCLB_API_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ - test/cpp/grpclb/grpclb_api_test.cc \ +CHANNEL_ARGUMENTS_TEST_SRC = \ + test/cpp/common/channel_arguments_test.cc \ -GRPCLB_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_API_TEST_SRC)))) +CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpclb_api_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/channel_arguments_test: openssl_dep_error else @@ -11327,42 +8766,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpclb_api_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/channel_arguments_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpclb_api_test: $(PROTOBUF_DEP) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(BINDIR)/$(CONFIG)/channel_arguments_test: $(PROTOBUF_DEP) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_api_test + $(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_arguments_test endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a - -$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(OBJDIR)/$(CONFIG)/test/cpp/common/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpclb_api_test: $(GRPCLB_API_TEST_OBJS:.o=.dep) +deps_channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPCLB_API_TEST_OBJS:.o=.dep) +-include $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -HYBRID_END2END_TEST_SRC = \ - test/cpp/end2end/hybrid_end2end_test.cc \ +CLI_CALL_TEST_SRC = \ + test/cpp/util/cli_call_test.cc \ -HYBRID_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HYBRID_END2END_TEST_SRC)))) +CLI_CALL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLI_CALL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cli_call_test: openssl_dep_error else @@ -11373,35 +8809,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/cli_call_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: $(PROTOBUF_DEP) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/cli_call_test: $(PROTOBUF_DEP) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/hybrid_end2end_test + $(Q) $(LDXX) $(LDFLAGS) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cli_call_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/hybrid_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hybrid_end2end_test: $(HYBRID_END2END_TEST_OBJS:.o=.dep) +deps_cli_call_test: $(CLI_CALL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HYBRID_END2END_TEST_OBJS:.o=.dep) +-include $(CLI_CALL_TEST_OBJS:.o=.dep) endif endif +CLIENT_CRASH_TEST_SRC = \ + test/cpp/end2end/client_crash_test.cc \ + +CLIENT_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/interop_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test: openssl_dep_error else @@ -11412,27 +8852,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/interop_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/interop_client: $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/client_crash_test: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_client + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_client_crash_test: $(CLIENT_CRASH_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CLIENT_CRASH_TEST_OBJS:.o=.dep) +endif +endif +CLIENT_CRASH_TEST_SERVER_SRC = \ + test/cpp/end2end/client_crash_test_server.cc \ +CLIENT_CRASH_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/interop_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test_server: openssl_dep_error else @@ -11443,31 +8895,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/interop_server: protobuf_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test_server: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/client_crash_test_server: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test_server endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_client_crash_test_server: $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +endif +endif -INTEROP_TEST_SRC = \ - test/cpp/interop/interop_test.cc \ +CODEGEN_TEST_FULL_SRC = \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + test/cpp/codegen/codegen_test_full.cc \ -INTEROP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTEROP_TEST_SRC)))) +CODEGEN_TEST_FULL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_FULL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/interop_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_full: openssl_dep_error else @@ -11478,39 +8943,56 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/interop_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_full: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/interop_test: $(PROTOBUF_DEP) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/codegen_test_full: $(PROTOBUF_DEP) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_test + $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_full endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_interop_test: $(INTEROP_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_codegen_test_full: $(CODEGEN_TEST_FULL_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTEROP_TEST_OBJS:.o=.dep) +-include $(CODEGEN_TEST_FULL_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -JSON_RUN_LOCALHOST_SRC = \ - test/cpp/qps/json_run_localhost.cc \ +CODEGEN_TEST_MINIMAL_SRC = \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + test/cpp/codegen/codegen_test_minimal.cc \ + src/cpp/codegen/codegen_init.cc \ -JSON_RUN_LOCALHOST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_RUN_LOCALHOST_SRC)))) +CODEGEN_TEST_MINIMAL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_MINIMAL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_run_localhost: openssl_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_minimal: openssl_dep_error else @@ -11521,40 +9003,53 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/json_run_localhost: protobuf_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_minimal: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/json_run_localhost: $(PROTOBUF_DEP) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/codegen_test_minimal: $(PROTOBUF_DEP) $(CODEGEN_TEST_MINIMAL_OBJS) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/json_run_localhost + $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_MINIMAL_OBJS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_minimal endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/json_run_localhost.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: -deps_json_run_localhost: $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: + +$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: + +deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) +-include $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -METRICS_CLIENT_SRC = \ - $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ - test/cpp/interop/metrics_client.cc \ +CREDENTIALS_TEST_SRC = \ + test/cpp/client/credentials_test.cc \ -METRICS_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(METRICS_CLIENT_SRC)))) +CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CREDENTIALS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/metrics_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/credentials_test: openssl_dep_error else @@ -11565,42 +9060,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/metrics_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/credentials_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/metrics_client: $(PROTOBUF_DEP) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/credentials_test: $(PROTOBUF_DEP) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/metrics_client + $(Q) $(LDXX) $(LDFLAGS) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/credentials_test endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/client/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_metrics_client: $(METRICS_CLIENT_OBJS:.o=.dep) +deps_credentials_test: $(CREDENTIALS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(METRICS_CLIENT_OBJS:.o=.dep) +-include $(CREDENTIALS_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc -MOCK_TEST_SRC = \ - test/cpp/end2end/mock_test.cc \ +CXX_BYTE_BUFFER_TEST_SRC = \ + test/cpp/util/byte_buffer_test.cc \ -MOCK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MOCK_TEST_SRC)))) +CXX_BYTE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_BYTE_BUFFER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/mock_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: openssl_dep_error else @@ -11611,40 +9103,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/mock_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/mock_test: $(PROTOBUF_DEP) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: $(PROTOBUF_DEP) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/mock_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/mock_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_mock_test: $(MOCK_TEST_OBJS:.o=.dep) +deps_cxx_byte_buffer_test: $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MOCK_TEST_OBJS:.o=.dep) +-include $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) endif endif -PROTO_SERVER_REFLECTION_TEST_SRC = \ - test/cpp/end2end/proto_server_reflection_test.cc \ - test/cpp/util/proto_reflection_descriptor_database.cc \ +CXX_SLICE_TEST_SRC = \ + test/cpp/util/slice_test.cc \ -PROTO_SERVER_REFLECTION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PROTO_SERVER_REFLECTION_TEST_SRC)))) +CXX_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_SLICE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_slice_test: openssl_dep_error else @@ -11655,41 +9146,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/cxx_slice_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/cxx_slice_test: $(PROTOBUF_DEP) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_slice_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/slice_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_proto_server_reflection_test: $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) +deps_cxx_slice_test: $(CXX_SLICE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) +-include $(CXX_SLICE_TEST_OBJS:.o=.dep) endif endif -QPS_INTERARRIVAL_TEST_SRC = \ - test/cpp/qps/qps_interarrival_test.cc \ +CXX_STRING_REF_TEST_SRC = \ + test/cpp/util/string_ref_test.cc \ -QPS_INTERARRIVAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_INTERARRIVAL_TEST_SRC)))) +CXX_STRING_REF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_STRING_REF_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_interarrival_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: openssl_dep_error else @@ -11700,39 +9189,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_interarrival_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_interarrival_test: $(PROTOBUF_DEP) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: $(PROTOBUF_DEP) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_interarrival_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_interarrival_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a -deps_qps_interarrival_test: $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) +deps_cxx_string_ref_test: $(CXX_STRING_REF_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) +-include $(CXX_STRING_REF_TEST_OBJS:.o=.dep) endif endif -QPS_JSON_DRIVER_SRC = \ - test/cpp/qps/qps_json_driver.cc \ +CXX_TIME_TEST_SRC = \ + test/cpp/util/time_test.cc \ -QPS_JSON_DRIVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_JSON_DRIVER_SRC)))) +CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_json_driver: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error else @@ -11743,39 +9232,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_json_driver: protobuf_dep_error +$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_json_driver: $(PROTOBUF_DEP) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_json_driver + $(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_json_driver.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_qps_json_driver: $(QPS_JSON_DRIVER_OBJS:.o=.dep) +deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_JSON_DRIVER_OBJS:.o=.dep) +-include $(CXX_TIME_TEST_OBJS:.o=.dep) endif endif -QPS_OPENLOOP_TEST_SRC = \ - test/cpp/qps/qps_openloop_test.cc \ +END2END_TEST_SRC = \ + test/cpp/end2end/end2end_test.cc \ -QPS_OPENLOOP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_OPENLOOP_TEST_SRC)))) +END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_openloop_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/end2end_test: openssl_dep_error else @@ -11786,39 +9275,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_openloop_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/end2end_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_openloop_test: $(PROTOBUF_DEP) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/end2end_test: $(PROTOBUF_DEP) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_openloop_test + $(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/end2end_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_openloop_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_qps_openloop_test: $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) +deps_end2end_test: $(END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) +-include $(END2END_TEST_OBJS:.o=.dep) endif endif -QPS_WORKER_SRC = \ - test/cpp/qps/worker.cc \ +GENERIC_END2END_TEST_SRC = \ + test/cpp/end2end/generic_end2end_test.cc \ -QPS_WORKER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_WORKER_SRC)))) +GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GENERIC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_worker: openssl_dep_error +$(BINDIR)/$(CONFIG)/generic_end2end_test: openssl_dep_error else @@ -11829,42 +9318,40 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_worker: protobuf_dep_error +$(BINDIR)/$(CONFIG)/generic_end2end_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_worker: $(PROTOBUF_DEP) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/generic_end2end_test: $(PROTOBUF_DEP) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_worker + $(Q) $(LDXX) $(LDFLAGS) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_end2end_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/worker.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_qps_worker: $(QPS_WORKER_OBJS:.o=.dep) +deps_generic_end2end_test: $(GENERIC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_WORKER_OBJS:.o=.dep) +-include $(GENERIC_END2END_TEST_OBJS:.o=.dep) endif endif -RECONNECT_INTEROP_CLIENT_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/reconnect_interop_client.cc \ +GOLDEN_FILE_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ + test/cpp/codegen/golden_file_test.cc \ -RECONNECT_INTEROP_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_CLIENT_SRC)))) +GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/reconnect_interop_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/golden_file_test: openssl_dep_error else @@ -11875,52 +9362,37 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/reconnect_interop_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/golden_file_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/reconnect_interop_client: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_client + $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_reconnect_interop_client: $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) +deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) +-include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - - -RECONNECT_INTEROP_SERVER_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/reconnect_interop_server.cc \ - -RECONNECT_INTEROP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_SERVER_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc -$(BINDIR)/$(CONFIG)/reconnect_interop_server: openssl_dep_error -else +GRPC_C_PLUGIN_SRC = \ + src/compiler/c_plugin.cc \ +GRPC_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_PLUGIN_SRC)))) @@ -11928,46 +9400,35 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/reconnect_interop_server: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_c_plugin: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/reconnect_interop_server: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_c_plugin: $(PROTOBUF_DEP) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_server - -endif + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_c_plugin endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/compiler/c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_reconnect_interop_server: $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) +deps_grpc_c_plugin: $(GRPC_C_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) -endif +-include $(GRPC_C_PLUGIN_OBJS:.o=.dep) endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -SECURE_AUTH_CONTEXT_TEST_SRC = \ - test/cpp/common/secure_auth_context_test.cc \ +GRPC_CLI_SRC = \ + test/cpp/util/grpc_cli.cc \ -SECURE_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_AUTH_CONTEXT_TEST_SRC)))) +GRPC_CLI_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CLI_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_auth_context_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_cli: openssl_dep_error else @@ -11978,42 +9439,65 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/secure_auth_context_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_cli: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/secure_auth_context_test: $(PROTOBUF_DEP) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_auth_context_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/secure_auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_secure_auth_context_test: $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +-include $(GRPC_CLI_OBJS:.o=.dep) endif endif -SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ - test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ +GRPC_CPP_PLUGIN_SRC = \ + src/compiler/cpp_plugin.cc \ -SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_SYNC_UNARY_PING_PONG_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_CPP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CPP_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: openssl_dep_error + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: $(PROTOBUF_DEP) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin + +endif + +$(OBJDIR)/$(CONFIG)/src/compiler/cpp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + +deps_grpc_cpp_plugin: $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) + +ifneq ($(NO_DEPS),true) +-include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) +endif + + +GRPC_CSHARP_PLUGIN_SRC = \ + src/compiler/csharp_plugin.cc \ + +GRPC_CSHARP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CSHARP_PLUGIN_SRC)))) @@ -12021,42 +9505,61 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: $(PROTOBUF_DEP) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: $(PROTOBUF_DEP) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test - -endif + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/secure_sync_unary_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/csharp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_secure_sync_unary_ping_pong_test: $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) +deps_grpc_csharp_plugin: $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) endif -SERVER_BUILDER_PLUGIN_TEST_SRC = \ - test/cpp/end2end/server_builder_plugin_test.cc \ +GRPC_NODE_PLUGIN_SRC = \ + src/compiler/node_plugin.cc \ -SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin + +endif + +$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + +deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) + +ifneq ($(NO_DEPS),true) +-include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +endif + + +GRPC_OBJECTIVE_C_PLUGIN_SRC = \ + src/compiler/objective_c_plugin.cc \ + +GRPC_OBJECTIVE_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_OBJECTIVE_C_PLUGIN_SRC)))) @@ -12064,42 +9567,61 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: $(PROTOBUF_DEP) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test - -endif + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/objective_c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) +deps_grpc_objective_c_plugin: $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) endif -SERVER_CRASH_TEST_SRC = \ - test/cpp/end2end/server_crash_test.cc \ +GRPC_PYTHON_PLUGIN_SRC = \ + src/compiler/python_plugin.cc \ -SERVER_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_PYTHON_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PYTHON_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_crash_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_python_plugin: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_python_plugin: $(PROTOBUF_DEP) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin + +endif + +$(OBJDIR)/$(CONFIG)/src/compiler/python_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + +deps_grpc_python_plugin: $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) + +ifneq ($(NO_DEPS),true) +-include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) +endif + + +GRPC_RUBY_PLUGIN_SRC = \ + src/compiler/ruby_plugin.cc \ +GRPC_RUBY_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_RUBY_PLUGIN_SRC)))) @@ -12107,39 +9629,36 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/server_crash_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/server_crash_test: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: $(PROTOBUF_DEP) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test - -endif + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/ruby_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_server_crash_test: $(SERVER_CRASH_TEST_OBJS:.o=.dep) +deps_grpc_ruby_plugin: $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_CRASH_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) endif -SERVER_CRASH_TEST_CLIENT_SRC = \ - test/cpp/end2end/server_crash_test_client.cc \ +GRPCLB_API_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ + test/cpp/grpclb/grpclb_api_test.cc \ -SERVER_CRASH_TEST_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_CLIENT_SRC)))) +GRPCLB_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_API_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_crash_test_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpclb_api_test: openssl_dep_error else @@ -12150,39 +9669,42 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/server_crash_test_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpclb_api_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/server_crash_test_client: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpclb_api_test: $(PROTOBUF_DEP) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test_client + $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_api_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_server_crash_test_client: $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_grpclb_api_test: $(GRPCLB_API_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) +-include $(GRPCLB_API_TEST_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -SHUTDOWN_TEST_SRC = \ - test/cpp/end2end/shutdown_test.cc \ +HYBRID_END2END_TEST_SRC = \ + test/cpp/end2end/hybrid_end2end_test.cc \ -SHUTDOWN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SHUTDOWN_TEST_SRC)))) +HYBRID_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HYBRID_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/shutdown_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: openssl_dep_error else @@ -12193,39 +9715,35 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/shutdown_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/shutdown_test: $(PROTOBUF_DEP) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: $(PROTOBUF_DEP) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test + $(Q) $(LDXX) $(LDFLAGS) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/hybrid_end2end_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/shutdown_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/hybrid_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_shutdown_test: $(SHUTDOWN_TEST_OBJS:.o=.dep) +deps_hybrid_end2end_test: $(HYBRID_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SHUTDOWN_TEST_OBJS:.o=.dep) +-include $(HYBRID_END2END_TEST_OBJS:.o=.dep) endif endif -STATUS_TEST_SRC = \ - test/cpp/util/status_test.cc \ - -STATUS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/status_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_client: openssl_dep_error else @@ -12236,39 +9754,27 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/status_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/interop_client: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/status_test: $(PROTOBUF_DEP) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/interop_client: $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_client endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/status_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_status_test: $(STATUS_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(STATUS_TEST_OBJS:.o=.dep) -endif -endif -STREAMING_THROUGHPUT_TEST_SRC = \ - test/cpp/end2end/streaming_throughput_test.cc \ -STREAMING_THROUGHPUT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAMING_THROUGHPUT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/streaming_throughput_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_server: openssl_dep_error else @@ -12279,46 +9785,31 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/streaming_throughput_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/interop_server: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/streaming_throughput_test: $(PROTOBUF_DEP) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/streaming_throughput_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/streaming_throughput_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_streaming_throughput_test: $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) -endif -endif -STRESS_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/interop_client.cc \ - test/cpp/interop/stress_interop_client.cc \ - test/cpp/interop/stress_test.cc \ - test/cpp/util/metrics_server.cc \ +INTEROP_TEST_SRC = \ + test/cpp/interop/interop_test.cc \ -STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STRESS_TEST_SRC)))) +INTEROP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTEROP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/stress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_test: openssl_dep_error else @@ -12329,57 +9820,39 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/stress_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/interop_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/stress_test: $(PROTOBUF_DEP) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/interop_test: $(PROTOBUF_DEP) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test + $(Q) $(LDXX) $(LDFLAGS) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_test endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_stress_test: $(STRESS_TEST_OBJS:.o=.dep) +deps_interop_test: $(INTEROP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(STRESS_TEST_OBJS:.o=.dep) +-include $(INTEROP_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -THREAD_STRESS_TEST_SRC = \ - test/cpp/end2end/thread_stress_test.cc \ +JSON_RUN_LOCALHOST_SRC = \ + test/cpp/qps/json_run_localhost.cc \ -THREAD_STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(THREAD_STRESS_TEST_SRC)))) +JSON_RUN_LOCALHOST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_RUN_LOCALHOST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/thread_stress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_run_localhost: openssl_dep_error else @@ -12390,1090 +9863,933 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/thread_stress_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/json_run_localhost: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/thread_stress_test: $(PROTOBUF_DEP) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_run_localhost: $(PROTOBUF_DEP) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_stress_test + $(Q) $(LDXX) $(LDFLAGS) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/json_run_localhost endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/thread_stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/qps/json_run_localhost.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_thread_stress_test: $(THREAD_STRESS_TEST_OBJS:.o=.dep) +deps_json_run_localhost: $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(THREAD_STRESS_TEST_OBJS:.o=.dep) +-include $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) endif endif -PUBLIC_HEADERS_MUST_BE_C89_SRC = \ - test/core/surface/public_headers_must_be_c89.c \ +METRICS_CLIENT_SRC = \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ + test/cpp/interop/metrics_client.cc \ -PUBLIC_HEADERS_MUST_BE_C89_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PUBLIC_HEADERS_MUST_BE_C89_SRC)))) +METRICS_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(METRICS_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: openssl_dep_error +$(BINDIR)/$(CONFIG)/metrics_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/metrics_client: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/metrics_client: $(PROTOBUF_DEP) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 + $(Q) $(LDXX) $(LDFLAGS) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/metrics_client endif -$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o : test/core/surface/public_headers_must_be_c89.c - $(E) "[C] Compiling $<" - $(Q) mkdir -p `dirname $@` - $(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< +endif -deps_public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_metrics_client: $(METRICS_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) +-include $(METRICS_CLIENT_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc +MOCK_TEST_SRC = \ + test/cpp/end2end/mock_test.cc \ -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_AES_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_AES_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_AES_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) +MOCK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MOCK_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_aes_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/mock_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_aes_test: $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_aes_test - -endif - - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_ASN1_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_ASN1_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_ASN1_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_asn1_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/mock_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_asn1_test: $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/mock_test: $(PROTOBUF_DEP) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_asn1_test + $(Q) $(LDXX) $(LDFLAGS) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/mock_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/mock_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_mock_test: $(MOCK_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(MOCK_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_BASE64_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_BASE64_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_BASE64_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/boringssl_base64_test: protobuf_dep_error - -else -$(BINDIR)/$(CONFIG)/boringssl_base64_test: $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_base64_test +PROTO_SERVER_REFLECTION_TEST_SRC = \ + test/cpp/end2end/proto_server_reflection_test.cc \ + test/cpp/util/proto_reflection_descriptor_database.cc \ -endif +PROTO_SERVER_REFLECTION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PROTO_SERVER_REFLECTION_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: openssl_dep_error +else -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_BIO_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_BIO_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_BIO_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_bio_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_bio_test: $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_bio_test + $(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_proto_server_reflection_test: $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_BN_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_BN_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_BN_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/boringssl_bn_test: protobuf_dep_error +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) +endif +endif -else -$(BINDIR)/$(CONFIG)/boringssl_bn_test: $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_bn_test +QPS_INTERARRIVAL_TEST_SRC = \ + test/cpp/qps/qps_interarrival_test.cc \ -endif +QPS_INTERARRIVAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_INTERARRIVAL_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/qps_interarrival_test: openssl_dep_error +else -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_BYTESTRING_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_BYTESTRING_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_BYTESTRING_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_bytestring_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_interarrival_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_bytestring_test: $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/qps_interarrival_test: $(PROTOBUF_DEP) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_bytestring_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_interarrival_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_interarrival_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_qps_interarrival_test: $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_AEAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_AEAD_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_AEAD_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +QPS_JSON_DRIVER_SRC = \ + test/cpp/qps/qps_json_driver.cc \ -ifeq ($(NO_PROTOBUF),true) +QPS_JSON_DRIVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_JSON_DRIVER_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_aead_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_json_driver: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_aead_test: $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_aead_test - -endif - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_CIPHER_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_CIPHER_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_CIPHER_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_cipher_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_json_driver: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_cipher_test: $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/qps_json_driver: $(PROTOBUF_DEP) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_cipher_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_json_driver endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_json_driver.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +deps_qps_json_driver: $(QPS_JSON_DRIVER_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(QPS_JSON_DRIVER_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_CMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_CMAC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_CMAC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +QPS_OPENLOOP_TEST_SRC = \ + test/cpp/qps/qps_openloop_test.cc \ -ifeq ($(NO_PROTOBUF),true) +QPS_OPENLOOP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_OPENLOOP_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_cmac_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_openloop_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_cmac_test: $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_cmac_test - -endif - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_constant_time_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_openloop_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_constant_time_test: $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/qps_openloop_test: $(PROTOBUF_DEP) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_constant_time_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_openloop_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_openloop_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +deps_qps_openloop_test: $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_ED25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_ED25519_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_ED25519_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +QPS_WORKER_SRC = \ + test/cpp/qps/worker.cc \ -ifeq ($(NO_PROTOBUF),true) +QPS_WORKER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_WORKER_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_ed25519_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_worker: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_ed25519_test: $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ed25519_test - -endif - - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_X25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_X25519_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_X25519_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_x25519_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_worker: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_x25519_test: $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/qps_worker: $(PROTOBUF_DEP) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_x25519_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_worker endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/qps/worker.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +deps_qps_worker: $(QPS_WORKER_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(QPS_WORKER_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_DH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_DH_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_DH_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +RECONNECT_INTEROP_CLIENT_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/reconnect_interop_client.cc \ -ifeq ($(NO_PROTOBUF),true) +RECONNECT_INTEROP_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_CLIENT_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_dh_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_dh_test: $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_dh_test - -endif - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_DIGEST_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_DIGEST_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_DIGEST_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_digest_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_client: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_digest_test: $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/reconnect_interop_client: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_digest_test + $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_client endif +endif +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_DSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_DSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_DSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +deps_reconnect_interop_client: $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) -$(BINDIR)/$(CONFIG)/boringssl_dsa_test: protobuf_dep_error +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) +endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -else -$(BINDIR)/$(CONFIG)/boringssl_dsa_test: $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_dsa_test +RECONNECT_INTEROP_SERVER_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/reconnect_interop_server.cc \ -endif +RECONNECT_INTEROP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_SERVER_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/reconnect_interop_server: openssl_dep_error +else -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_EC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_EC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_EC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_ec_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_server: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_ec_test: $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/reconnect_interop_server: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ec_test + $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_server endif +endif +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_EXAMPLE_MUL_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_EXAMPLE_MUL_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_EXAMPLE_MUL_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +deps_reconnect_interop_server: $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) -$(BINDIR)/$(CONFIG)/boringssl_example_mul: protobuf_dep_error +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) +endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -else -$(BINDIR)/$(CONFIG)/boringssl_example_mul: $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_example_mul +SECURE_AUTH_CONTEXT_TEST_SRC = \ + test/cpp/common/secure_auth_context_test.cc \ -endif +SECURE_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_AUTH_CONTEXT_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/secure_auth_context_test: openssl_dep_error +else -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_ECDSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_ECDSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_ECDSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_ecdsa_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/secure_auth_context_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_ecdsa_test: $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/secure_auth_context_test: $(PROTOBUF_DEP) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test + $(Q) $(LDXX) $(LDFLAGS) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_auth_context_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/common/secure_auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_secure_auth_context_test: $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_ERR_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_ERR_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_ERR_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ + test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ -ifeq ($(NO_PROTOBUF),true) +SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_SYNC_UNARY_PING_PONG_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_err_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_err_test: $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_err_test - -endif - - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_evp_extra_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_evp_extra_test: $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: $(PROTOBUF_DEP) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test + $(Q) $(LDXX) $(LDFLAGS) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/qps/secure_sync_unary_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_secure_sync_unary_ping_pong_test: $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_EVP_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_EVP_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_EVP_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/boringssl_evp_test: protobuf_dep_error - -else -$(BINDIR)/$(CONFIG)/boringssl_evp_test: $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_evp_test +SERVER_BUILDER_PLUGIN_TEST_SRC = \ + test/cpp/end2end/server_builder_plugin_test.cc \ -endif +SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error +else -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_PBKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_PBKDF_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_PBKDF_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_pbkdf_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_pbkdf_test: $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pbkdf_test + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_HKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_HKDF_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_HKDF_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +SERVER_CRASH_TEST_SRC = \ + test/cpp/end2end/server_crash_test.cc \ -ifeq ($(NO_PROTOBUF),true) +SERVER_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_hkdf_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_hkdf_test: $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_hkdf_test - -endif - - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_HMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_HMAC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_HMAC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_hmac_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_hmac_test: $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/server_crash_test: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_hmac_test + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_server_crash_test: $(SERVER_CRASH_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SERVER_CRASH_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_LHASH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_LHASH_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_LHASH_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +SERVER_CRASH_TEST_CLIENT_SRC = \ + test/cpp/end2end/server_crash_test_client.cc \ -ifeq ($(NO_PROTOBUF),true) +SERVER_CRASH_TEST_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_CLIENT_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_lhash_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_lhash_test: $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_lhash_test - -endif - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_GCM_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_GCM_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_GCM_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_gcm_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test_client: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_gcm_test: $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/server_crash_test_client: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_gcm_test + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test_client endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_server_crash_test_client: $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_PKCS12_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_PKCS12_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_PKCS12_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +SHUTDOWN_TEST_SRC = \ + test/cpp/end2end/shutdown_test.cc \ -ifeq ($(NO_PROTOBUF),true) +SHUTDOWN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SHUTDOWN_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_pkcs12_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/shutdown_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_pkcs12_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test - -endif - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_PKCS8_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_PKCS8_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_PKCS8_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_pkcs8_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/shutdown_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_pkcs8_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/shutdown_test: $(PROTOBUF_DEP) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test + $(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/shutdown_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_shutdown_test: $(SHUTDOWN_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SHUTDOWN_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_POLY1305_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_POLY1305_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_POLY1305_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +STATUS_TEST_SRC = \ + test/cpp/util/status_test.cc \ -ifeq ($(NO_PROTOBUF),true) +STATUS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_poly1305_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/status_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_poly1305_test: $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_poly1305_test - -endif - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_REFCOUNT_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_REFCOUNT_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_REFCOUNT_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_refcount_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/status_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_refcount_test: $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/status_test: $(PROTOBUF_DEP) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_refcount_test + $(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/util/status_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_status_test: $(STATUS_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(STATUS_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_RSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_RSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_RSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +STREAMING_THROUGHPUT_TEST_SRC = \ + test/cpp/end2end/streaming_throughput_test.cc \ -ifeq ($(NO_PROTOBUF),true) +STREAMING_THROUGHPUT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAMING_THROUGHPUT_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_rsa_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/streaming_throughput_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_rsa_test: $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_rsa_test - -endif - - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_THREAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_THREAD_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_THREAD_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_thread_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/streaming_throughput_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_thread_test: $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/streaming_throughput_test: $(PROTOBUF_DEP) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_thread_test + $(Q) $(LDXX) $(LDFLAGS) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/streaming_throughput_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/streaming_throughput_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_streaming_throughput_test: $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_PKCS7_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_PKCS7_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_PKCS7_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +STRESS_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/interop_client.cc \ + test/cpp/interop/stress_interop_client.cc \ + test/cpp/interop/stress_test.cc \ + test/cpp/util/metrics_server.cc \ -ifeq ($(NO_PROTOBUF),true) +STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STRESS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_pkcs7_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/stress_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_pkcs7_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test - -endif - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_X509_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_X509_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_X509_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_x509_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/stress_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_x509_test: $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/stress_test: $(PROTOBUF_DEP) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_x509_test + $(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test endif +endif +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_TAB_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_TAB_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_TAB_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -ifeq ($(NO_PROTOBUF),true) +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(BINDIR)/$(CONFIG)/boringssl_tab_test: protobuf_dep_error +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -else +$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(BINDIR)/$(CONFIG)/boringssl_tab_test: $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_tab_test +deps_stress_test: $(STRESS_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(STRESS_TEST_OBJS:.o=.dep) endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +THREAD_STRESS_TEST_SRC = \ + test/cpp/end2end/thread_stress_test.cc \ +THREAD_STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(THREAD_STRESS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_V3NAME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_V3NAME_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_V3NAME_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/boringssl_v3name_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/thread_stress_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_v3name_test: $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_v3name_test - -endif - - - -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_PQUEUE_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_PQUEUE_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_PQUEUE_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE - ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/boringssl_pqueue_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/thread_stress_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_pqueue_test: $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a +$(BINDIR)/$(CONFIG)/thread_stress_test: $(PROTOBUF_DEP) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pqueue_test + $(Q) $(LDXX) $(LDFLAGS) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_stress_test endif +endif +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/thread_stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_thread_stress_test: $(THREAD_STRESS_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(THREAD_STRESS_TEST_OBJS:.o=.dep) +endif +endif -# boringssl needs an override to ensure that it does not include -# system openssl headers regardless of other configuration -# we do so here with a target specific variable assignment -$(BORINGSSL_SSL_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) -$(BORINGSSL_SSL_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -$(BORINGSSL_SSL_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE +PUBLIC_HEADERS_MUST_BE_C89_SRC = \ + test/core/surface/public_headers_must_be_c89.c \ -ifeq ($(NO_PROTOBUF),true) +PUBLIC_HEADERS_MUST_BE_C89_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PUBLIC_HEADERS_MUST_BE_C89_SRC)))) +ifeq ($(NO_SECURE),true) -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/boringssl_ssl_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: openssl_dep_error else -$(BINDIR)/$(CONFIG)/boringssl_ssl_test: $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + + +$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ssl_test + $(Q) $(LD) $(LDFLAGS) $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 endif +$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o : test/core/surface/public_headers_must_be_c89.c + $(E) "[C] Compiling $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< + +deps_public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) +endif +endif BADREQ_BAD_CLIENT_TEST_SRC = \ @@ -14946,6 +12262,19 @@ ifneq ($(OPENSSL_DEP),) # This is to ensure the embedded OpenSSL is built beforehand, properly # installing headers to their final destination on the drive. We need this # otherwise parallel compilation will fail if a source is compiled first. +src/c/alloc.c: $(OPENSSL_DEP) +src/c/bidi_streaming_blocking_call.c: $(OPENSSL_DEP) +src/c/call_ops.c: $(OPENSSL_DEP) +src/c/channel.c: $(OPENSSL_DEP) +src/c/client_context.c: $(OPENSSL_DEP) +src/c/client_streaming_blocking_call.c: $(OPENSSL_DEP) +src/c/completion_queue.c: $(OPENSSL_DEP) +src/c/id_serialization.c: $(OPENSSL_DEP) +src/c/init_shutdown.c: $(OPENSSL_DEP) +src/c/message.c: $(OPENSSL_DEP) +src/c/server_streaming_blocking_call.c: $(OPENSSL_DEP) +src/c/unary_async_call.c: $(OPENSSL_DEP) +src/c/unary_blocking_call.c: $(OPENSSL_DEP) src/core/ext/transport/chttp2/client/secure/secure_channel_create.c: $(OPENSSL_DEP) src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c: $(OPENSSL_DEP) src/core/ext/transport/cronet/client/secure/cronet_channel_create.c: $(OPENSSL_DEP) diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c index 3eeb55d033dca..b86b7d41898fa 100644 --- a/test/core/surface/public_headers_must_be_c89.c +++ b/test/core/surface/public_headers_must_be_c89.c @@ -74,5 +74,18 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include int main(int argc, char **argv) { return 0; } diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 22d125f66a508..dbab550a54354 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2145,6 +2145,19 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "grpc_plugin_support" + ], + "headers": [], + "language": "c++", + "name": "grpc_c_plugin", + "src": [ + "src/compiler/c_plugin.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", @@ -4215,6 +4228,87 @@ "third_party": false, "type": "lib" }, + { + "deps": [ + "gpr", + "grpc" + ], + "headers": [ + "include/grpc_c/bidi_streaming_blocking_call.h", + "include/grpc_c/channel.h", + "include/grpc_c/client_context.h", + "include/grpc_c/client_streaming_blocking_call.h", + "include/grpc_c/completion_queue.h", + "include/grpc_c/grpc_c.h", + "include/grpc_c/message.h", + "include/grpc_c/serialization.h", + "include/grpc_c/server_streaming_blocking_call.h", + "include/grpc_c/status.h", + "include/grpc_c/status_code.h", + "include/grpc_c/unary_async_call.h", + "include/grpc_c/unary_blocking_call.h", + "src/c/alloc.h", + "src/c/bidi_streaming_blocking_call.h", + "src/c/call_ops.h", + "src/c/client_context.h", + "src/c/client_streaming_blocking_call.h", + "src/c/completion_queue.h", + "src/c/id_serialization.h", + "src/c/init_shutdown.h", + "src/c/message.h", + "src/c/server_streaming_blocking_call.h", + "src/c/status.h", + "src/c/tag.h", + "src/c/unary_async_call.h", + "src/c/unary_blocking_call.h" + ], + "language": "c", + "name": "grpc_c", + "src": [ + "include/grpc_c/bidi_streaming_blocking_call.h", + "include/grpc_c/channel.h", + "include/grpc_c/client_context.h", + "include/grpc_c/client_streaming_blocking_call.h", + "include/grpc_c/completion_queue.h", + "include/grpc_c/grpc_c.h", + "include/grpc_c/message.h", + "include/grpc_c/serialization.h", + "include/grpc_c/server_streaming_blocking_call.h", + "include/grpc_c/status.h", + "include/grpc_c/status_code.h", + "include/grpc_c/unary_async_call.h", + "include/grpc_c/unary_blocking_call.h", + "src/c/alloc.c", + "src/c/alloc.h", + "src/c/bidi_streaming_blocking_call.c", + "src/c/bidi_streaming_blocking_call.h", + "src/c/call_ops.c", + "src/c/call_ops.h", + "src/c/channel.c", + "src/c/client_context.c", + "src/c/client_context.h", + "src/c/client_streaming_blocking_call.c", + "src/c/client_streaming_blocking_call.h", + "src/c/completion_queue.c", + "src/c/completion_queue.h", + "src/c/id_serialization.c", + "src/c/id_serialization.h", + "src/c/init_shutdown.c", + "src/c/init_shutdown.h", + "src/c/message.c", + "src/c/message.h", + "src/c/server_streaming_blocking_call.c", + "src/c/server_streaming_blocking_call.h", + "src/c/status.h", + "src/c/tag.h", + "src/c/unary_async_call.c", + "src/c/unary_async_call.h", + "src/c/unary_blocking_call.c", + "src/c/unary_blocking_call.h" + ], + "third_party": false, + "type": "lib" + }, { "deps": [ "gpr", @@ -4511,6 +4605,8 @@ "grpc++_config_proto" ], "headers": [ + "src/compiler/c_generator.h", + "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.h", "src/compiler/cpp_generator_helpers.h", @@ -4530,6 +4626,9 @@ "language": "c++", "name": "grpc_plugin_support", "src": [ + "src/compiler/c_generator.cc", + "src/compiler/c_generator.h", + "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.cc", "src/compiler/cpp_generator.h", diff --git a/vsprojects/grpc.sln b/vsprojects/grpc.sln index 84720914b0b34..52376e073eee4 100644 --- a/vsprojects/grpc.sln +++ b/vsprojects/grpc.sln @@ -69,6 +69,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++_unsecure", "vcxproj\ {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c", "vcxproj\.\grpc_c\grpc_c.vcxproj", "{8AC0CB05-6E3C-4A40-B45E-FDA77644F432}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_create_jwt", "vcxproj\.\grpc_create_jwt\grpc_create_jwt.vcxproj", "{77971F8D-F583-3E77-0E3C-6C1FB6B1749C}" ProjectSection(myProperties) = preProject lib = "False" @@ -318,6 +327,22 @@ Global {6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 {6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 {6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Release-DLL|x64.Build.0 = Release-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|Win32.ActiveCfg = Debug|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|x64.ActiveCfg = Debug|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|Win32.ActiveCfg = Release|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|x64.ActiveCfg = Release|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|Win32.Build.0 = Debug|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|x64.Build.0 = Debug|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|Win32.Build.0 = Release|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|x64.Build.0 = Release|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|x64.Build.0 = Release-DLL|x64 {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|Win32.ActiveCfg = Debug|Win32 {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|x64.ActiveCfg = Debug|x64 {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/grpc_protoc_plugins.sln b/vsprojects/grpc_protoc_plugins.sln index 2e55720f28c50..5eadb7cdccef8 100644 --- a/vsprojects/grpc_protoc_plugins.sln +++ b/vsprojects/grpc_protoc_plugins.sln @@ -3,6 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c_plugin", "vcxproj\.\grpc_c_plugin\grpc_c_plugin.vcxproj", "{06F2EB11-35DA-483D-AB0A-BC420D97B18C}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B6E81D84-2ACB-41B8-8781-493A944C7817} = {B6E81D84-2ACB-41B8-8781-493A944C7817} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_cpp_plugin", "vcxproj\.\grpc_cpp_plugin\grpc_cpp_plugin.vcxproj", "{7E51A25F-AC59-488F-906C-C60FAAE706AA}" ProjectSection(myProperties) = preProject lib = "False" @@ -64,6 +72,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|Win32.ActiveCfg = Debug|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|x64.ActiveCfg = Debug|x64 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|Win32.ActiveCfg = Release|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|x64.ActiveCfg = Release|x64 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|Win32.Build.0 = Debug|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|x64.Build.0 = Debug|x64 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|Win32.Build.0 = Release|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|x64.Build.0 = Release|x64 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Debug|Win32.ActiveCfg = Debug|Win32 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Debug|x64.ActiveCfg = Debug|x64 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj new file mode 100644 index 0000000000000..9e24000239fdb --- /dev/null +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -0,0 +1,336 @@ + + + + + Debug-DLL + Win32 + + + Debug-DLL + x64 + + + Release-DLL + Win32 + + + Release-DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + grpc_c + + + grpc_c + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Windows + true + false + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters new file mode 100644 index 0000000000000..fd81644078028 --- /dev/null +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -0,0 +1,145 @@ + + + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + include\grpc_c + + + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + src\c + + + + + + {e6ae97d4-c467-5285-20b7-36e1d9b8900c} + + + {544356cf-8159-ab1b-8f53-ee9adb4f8d12} + + + {95749a6c-2837-e369-a78b-c88960ec3f61} + + + {c54aee47-0126-363d-8b6e-00028cbe3973} + + + + diff --git a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj new file mode 100644 index 0000000000000..47aba5005f8ab --- /dev/null +++ b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {06F2EB11-35DA-483D-AB0A-BC420D97B18C} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + grpc_c_plugin + + + grpc_c_plugin + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + + + + + {B6E81D84-2ACB-41B8-8781-493A944C7817} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters new file mode 100644 index 0000000000000..81922be0a5f73 --- /dev/null +++ b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + src\compiler + + + + + + {1ad4fe68-6369-3285-10dc-6272151898a6} + + + {bb7b20f5-fcb8-03bf-ac38-2918fd2abcd0} + + + + diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj index 9828b8bcaf0cc..ca4b87eb5b6ee 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj @@ -151,6 +151,8 @@ + + @@ -168,6 +170,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters index 27eb935e0745c..15e50982d0ab8 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters @@ -1,6 +1,9 @@ + + src\compiler + src\compiler @@ -26,6 +29,12 @@ + + src\compiler + + + src\compiler + src\compiler From 35182d1cf6fc19d825550ed05c5be0b9999f43be Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 16:00:09 -0700 Subject: [PATCH 039/202] Make public headers C89 compliant --- include/grpc_c/bidi_streaming_blocking_call.h | 4 ++-- include/grpc_c/channel.h | 8 ++++---- include/grpc_c/client_context.h | 2 +- include/grpc_c/client_streaming_blocking_call.h | 5 +---- include/grpc_c/completion_queue.h | 16 +++++++--------- include/grpc_c/grpc_c.h | 17 ++++++++++++++--- include/grpc_c/message.h | 2 +- include/grpc_c/serialization.h | 2 +- include/grpc_c/server_streaming_blocking_call.h | 4 ++-- include/grpc_c/status.h | 7 ++++--- include/grpc_c/status_code.h | 6 +++++- include/grpc_c/unary_async_call.h | 6 ++---- include/grpc_c/unary_blocking_call.h | 2 +- 13 files changed, 45 insertions(+), 36 deletions(-) diff --git a/include/grpc_c/bidi_streaming_blocking_call.h b/include/grpc_c/bidi_streaming_blocking_call.h index f240f4e6a6b87..e5c7a8f255fdb 100644 --- a/include/grpc_c/bidi_streaming_blocking_call.h +++ b/include/grpc_c/bidi_streaming_blocking_call.h @@ -35,7 +35,7 @@ #ifndef GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H #define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H -typedef struct grpc_client_reader_writer GRPC_client_reader_writer; +#include GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *channel, const GRPC_method rpc_method, @@ -51,4 +51,4 @@ bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer); -#endif // GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#endif /* GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H */ diff --git a/include/grpc_c/channel.h b/include/grpc_c/channel.h index 4aea68b50cd74..9782f7c9d92ca 100644 --- a/include/grpc_c/channel.h +++ b/include/grpc_c/channel.h @@ -35,9 +35,9 @@ #ifndef GRPC_C_CHANNEL_PUBLIC_H #define GRPC_C_CHANNEL_PUBLIC_H -typedef struct grpc_channel grpc_channel; +#include -grpc_channel *GRPC_channel_create(const char * const target); -void GRPC_channel_destroy(grpc_channel ** channel); +GRPC_channel *GRPC_channel_create(const char * const target); +void GRPC_channel_destroy(GRPC_channel ** channel); -#endif // GRPC_C_CHANNEL_PUBLIC_H +#endif /* GRPC_C_CHANNEL_PUBLIC_H */ diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index 213894476e648..fd578a4fc062d 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -40,4 +40,4 @@ GRPC_client_context *GRPC_client_context_create(GRPC_channel *chan); void GRPC_client_context_destroy(GRPC_client_context **context); -#endif // GRPC_C_CONTEXT_PUBLIC_H +#endif /* GRPC_C_CONTEXT_PUBLIC_H */ diff --git a/include/grpc_c/client_streaming_blocking_call.h b/include/grpc_c/client_streaming_blocking_call.h index a96cc67340f0f..0cd582bda9c5d 100644 --- a/include/grpc_c/client_streaming_blocking_call.h +++ b/include/grpc_c/client_streaming_blocking_call.h @@ -35,11 +35,8 @@ #ifndef GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H #define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H -#include #include -typedef struct grpc_client_writer GRPC_client_writer; - GRPC_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, const GRPC_method rpc_method, GRPC_client_context *const context, @@ -51,4 +48,4 @@ bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC /* Returns call status in the context object. */ GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer); -#endif // GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#endif /* GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H */ diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 2a0615cf08024..1219fa29fd45a 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -35,16 +35,14 @@ #ifndef GRPC_C_COMPLETION_QUEUE_PUBLIC_H #define GRPC_C_COMPLETION_QUEUE_PUBLIC_H -#include +#include -typedef struct gpr_timespec gpr_timespec; - -/// Tri-state return for GRPC_commit_ops_and_wait +/* Tri-state return for GRPC_commit_ops_and_wait */ typedef enum GRPC_completion_queue_next_status { - GRPC_COMPLETION_QUEUE_SHUTDOWN, ///< The completion queue has been shutdown. - GRPC_COMPLETION_QUEUE_GOT_EVENT, ///< Got a new event; \a tag will be filled in with its - ///< associated value; \a ok indicating its success. - GRPC_COMPLETION_QUEUE_TIMEOUT ///< deadline was reached. + GRPC_COMPLETION_QUEUE_SHUTDOWN, /* The completion queue has been shutdown. */ + GRPC_COMPLETION_QUEUE_GOT_EVENT, /* Got a new event; \a tag will be filled in with its */ + /* associated value; \a ok indicating its success. */ + GRPC_COMPLETION_QUEUE_TIMEOUT /* deadline was reached. */ } GRPC_completion_queue_operation_status; GRPC_completion_queue *GRPC_completion_queue_create(); @@ -56,4 +54,4 @@ GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_co gpr_timespec deadline, void **tag, bool *ok); -#endif // GRPC_C_COMPLETION_QUEUE_PUBLIC_H +#endif /* GRPC_C_COMPLETION_QUEUE_PUBLIC_H */ diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 1c99b9e40e0ba..eea201402f7dd 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -54,12 +54,23 @@ typedef struct grpc_client_async_response_reader GRPC_client_async_response_read typedef struct GRPC_method { enum RpcType { NORMAL_RPC = 0, - CLIENT_STREAMING, // request streaming - SERVER_STREAMING, // response streaming + CLIENT_STREAMING, /* request streaming */ + SERVER_STREAMING, /* response streaming */ BIDI_STREAMING } type; const char* name; } GRPC_method; +/* For C compilers without bool support */ +#ifndef __cplusplus +#if defined(__STDC__) && __STDC_VERSION__ >= 199901L +#include +#else +#ifndef bool +typedef enum _bool { false, true }; +typedef enum _bool bool; +#endif +#endif +#endif -#endif // GRPC_C_PUBLIC_H +#endif /* GRPC_C_PUBLIC_H */ diff --git a/include/grpc_c/message.h b/include/grpc_c/message.h index 7003393874d8f..c81272af7577d 100644 --- a/include/grpc_c/message.h +++ b/include/grpc_c/message.h @@ -44,4 +44,4 @@ typedef struct GRPC_message { void GRPC_message_destroy(GRPC_message *message); -#endif // GRPC_C_MESSAGE_PUBLIC_H +#endif /* GRPC_C_MESSAGE_PUBLIC_H */ diff --git a/include/grpc_c/serialization.h b/include/grpc_c/serialization.h index fda6b68077fad..457718452b3cc 100644 --- a/include/grpc_c/serialization.h +++ b/include/grpc_c/serialization.h @@ -40,4 +40,4 @@ typedef void (*GRPC_serializer)(const GRPC_message input, GRPC_message *output); typedef void (*GRPC_deserializer)(const GRPC_message input, GRPC_message *output); -#endif // GRPC_C_SERIALIZATION_PUBLIC_H +#endif /* GRPC_C_SERIALIZATION_PUBLIC_H */ diff --git a/include/grpc_c/server_streaming_blocking_call.h b/include/grpc_c/server_streaming_blocking_call.h index bae9cddc71ab8..2b52734938233 100644 --- a/include/grpc_c/server_streaming_blocking_call.h +++ b/include/grpc_c/server_streaming_blocking_call.h @@ -35,7 +35,7 @@ #ifndef GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H #define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H -typedef struct grpc_client_reader GRPC_client_reader; +#include GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, const GRPC_method rpc_method, @@ -47,4 +47,4 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_messag /* Terminating the writer takes care of ending the call, freeing the writer. */ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); -#endif // GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#endif /* GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H */ diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index da586e551ff35..fc6f91c96c315 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -35,12 +35,13 @@ #ifndef GRPC_C_STATUS_PUBLIC_H #define GRPC_C_STATUS_PUBLIC_H +#include + typedef struct grpc_status { + bool ok; grpc_status_code code; char *details; size_t details_length; } grpc_status; -typedef grpc_status GRPC_status; - -#endif // GRPC_C_STATUS_CODE_PUBLIC_H +#endif /* GRPC_C_STATUS_CODE_PUBLIC_H */ diff --git a/include/grpc_c/status_code.h b/include/grpc_c/status_code.h index 46fc3d8add113..7c0c219482950 100644 --- a/include/grpc_c/status_code.h +++ b/include/grpc_c/status_code.h @@ -35,6 +35,8 @@ #ifndef GRPC_C_STATUS_CODE_PUBLIC_H #define GRPC_C_STATUS_CODE_PUBLIC_H +#ifndef GRPC_IMPL_CODEGEN_STATUS_H + typedef enum { /* Not an error; returned on success */ GRPC_STATUS_OK = 0, @@ -153,4 +155,6 @@ typedef enum { GRPC_STATUS__DO_NOT_USE = -1 } grpc_status_code; -#endif // GRPC_C_STATUS_CODE_PUBLIC_H +#endif /* #ifdef GRPC_IMPL_CODEGEN_STATUS_H */ + +#endif /* GRPC_C_STATUS_CODE_PUBLIC_H */ diff --git a/include/grpc_c/unary_async_call.h b/include/grpc_c/unary_async_call.h index 477fb3002f050..0dd0055900b3b 100644 --- a/include/grpc_c/unary_async_call.h +++ b/include/grpc_c/unary_async_call.h @@ -35,10 +35,8 @@ #ifndef GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H #define GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H -#include #include - -typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; +#include GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method rpc_method, @@ -49,4 +47,4 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_me void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); -#endif // GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H +#endif /* GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H */ diff --git a/include/grpc_c/unary_blocking_call.h b/include/grpc_c/unary_blocking_call.h index f494854fb6301..fc7c6c0902bc2 100644 --- a/include/grpc_c/unary_blocking_call.h +++ b/include/grpc_c/unary_blocking_call.h @@ -43,4 +43,4 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_message message, GRPC_message *response); -#endif // GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H +#endif /* GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H */ From 5dd8f76da4eaa1c49c827708a18122abd68e0028 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 16:00:28 -0700 Subject: [PATCH 040/202] Correctly report failures in status --- src/c/bidi_streaming_blocking_call.c | 24 ++++++++++++++++++------ src/c/call_ops.c | 2 +- src/c/channel.c | 4 ++-- src/c/client_context.c | 5 ++++- src/c/unary_blocking_call.c | 4 ++-- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index e79de9a4b2ba0..037ebe53405e3 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -70,8 +70,13 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *chann }); grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); - GRPC_completion_queue_pluck_internal(cq, TAG(&set)); - return reader_writer; + bool ok = GRPC_completion_queue_pluck_internal(cq, TAG(&set)); + if (!ok) { + GRPC_client_reader_writer_terminate(reader_writer); + return NULL; + } else { + return reader_writer; + } } bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, GRPC_message *response) { @@ -98,7 +103,9 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, } grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {0}, response); - return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(pSet)) && pSet->message_received; + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(pSet)) && pSet->message_received; + reader_writer->context->status.ok &= ok; + return ok; } bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request) { @@ -111,7 +118,9 @@ bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer }; grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, request, NULL); - return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + reader_writer->context->status.ok &= ok; + return ok; } bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_writer) { @@ -124,7 +133,9 @@ bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_ }; grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); - return GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + reader_writer->context->status.ok &= ok; + return ok; } GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer) { @@ -136,11 +147,12 @@ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reade .user_tag = &set }; grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); - GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); GRPC_completion_queue_shutdown_and_destroy(reader_writer->cq); grpc_call_destroy(reader_writer->call); reader_writer->context->call = NULL; grpc_client_context *context = reader_writer->context; free(reader_writer); + context->status.ok &= ok; return context->status; } diff --git a/src/c/call_ops.c b/src/c/call_ops.c index b0a06deef5f23..6323acc9fa100 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -195,7 +195,7 @@ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *co if (set->op_managers[count].fill == NULL && set->op_managers[count].finish == NULL) break; // end of call set if (set->op_managers[count].finish == NULL) continue; int size = 100; // todo(yifeit): hook up this value - bool status; + bool status = true; set->op_managers[count].finish(context, set, &status, size); allStatus &= status; count++; diff --git a/src/c/channel.c b/src/c/channel.c index b025fcc38d4f5..5b4598b647111 100644 --- a/src/c/channel.c +++ b/src/c/channel.c @@ -36,12 +36,12 @@ #include "init_shutdown.h" #include -grpc_channel *GRPC_channel_create(const char * const target) { +GRPC_channel *GRPC_channel_create(const char * const target) { grpc_ensure_grpc_init(); return grpc_insecure_channel_create(target, NULL, NULL); } -void GRPC_channel_destroy(grpc_channel ** channel) { +void GRPC_channel_destroy(GRPC_channel ** channel) { grpc_channel_destroy(*channel); *channel = NULL; } diff --git a/src/c/client_context.c b/src/c/client_context.c index 97a5188b3038c..e5c2a76e8f90d 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -44,7 +44,10 @@ grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), .channel = chan, .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize + .deserialize = GRPC_id_deserialize, + .status = { + .ok = true + } } ); return context; diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index ee253ab93b156..15ba7f2ec8566 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -71,13 +71,13 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c bool ok; GRPC_completion_queue_operation_status status = GRPC_commit_ops_and_wait_deadline(cq, context->deadline, &tag, &ok); GPR_ASSERT(status == GRPC_COMPLETION_QUEUE_GOT_EVENT); - GPR_ASSERT(ok); if (tag == TAG(&set)) { + context->status.ok &= ok; break; } } - GPR_ASSERT(context->status.code == GRPC_STATUS_OK); + context->status.ok &= (context->status.code == GRPC_STATUS_OK); GRPC_completion_queue_shutdown_and_destroy(cq); grpc_call_destroy(call); From 6b1cd9d19583fc49f9ce20bd2960e5937905c296 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 16:00:40 -0700 Subject: [PATCH 041/202] Fix unary test --- test/c/end2end/unary_end2end_test.cc | 116 ++++++--------------------- 1 file changed, 26 insertions(+), 90 deletions(-) diff --git a/test/c/end2end/unary_end2end_test.cc b/test/c/end2end/unary_end2end_test.cc index 06b969252b6d2..e019ad7ffa84c 100644 --- a/test/c/end2end/unary_end2end_test.cc +++ b/test/c/end2end/unary_end2end_test.cc @@ -34,11 +34,6 @@ #include #include -#include -#include -#include -#include - #include #include #include @@ -53,7 +48,13 @@ #include #include +extern "C" { +#include +#include +#include +#include #include +} #include "src/core/lib/security/credentials/credentials.h" #include "test/core/util/port.h" @@ -70,57 +71,21 @@ namespace grpc { namespace testing { namespace { -class TestScenario { +class End2endTest { public: - TestScenario(bool proxy, const grpc::string &creds_type) - : use_proxy(proxy), credentials_type(creds_type) { } - - void Log() const { - gpr_log(GPR_INFO, "Scenario: proxy %d, credentials %s", use_proxy, - credentials_type.c_str()); - } - - bool use_proxy; - // Although the below grpc::string is logically const, we can't declare - // them const because of a limitation in the way old compilers (e.g., gcc-4.4) - // manage vector insertion using a copy constructor - grpc::string credentials_type; -}; - -class Proxy : public ::grpc::testing::EchoTestService::Service { -public: - Proxy(std::shared_ptr channel) - : stub_(grpc::testing::EchoTestService::NewStub(channel)) {} - - Status Echo(ServerContext* server_context, const EchoRequest* request, - EchoResponse* response) GRPC_OVERRIDE { - std::unique_ptr client_context = - ClientContext::FromServerContext(*server_context); - return stub_->Echo(client_context.get(), *request, response); - } - -private: - std::unique_ptr< ::grpc::testing::EchoTestService::Stub> stub_; -}; - -class End2endTest : public ::testing::TestWithParam { -protected: End2endTest() : is_server_started_(false), - c_channel_(NULL), kMaxMessageSize_(8192), - special_service_("special") { - GetParam().Log(); + c_channel_(NULL) { } ~End2endTest() { GRPC_channel_destroy(&c_channel_); } - void TearDown() GRPC_OVERRIDE { + void TearDown() { if (is_server_started_) { server_->Shutdown(); - if (proxy_server_) proxy_server_->Shutdown(); } } @@ -129,13 +94,9 @@ class End2endTest : public ::testing::TestWithParam { server_address_ << "127.0.0.1:" << port; // Setup server ServerBuilder builder; - auto server_creds = GetServerCredentials(GetParam().credentials_type); - if (GetParam().credentials_type != kInsecureCredentialsType) { - server_creds->SetAuthMetadataProcessor(processor); - } - builder.AddListeningPort(server_address_.str(), server_creds); + + builder.AddListeningPort(server_address_.str(), InsecureServerCredentials()); builder.RegisterService(&service_); - builder.RegisterService("foo.test.youtube.com", &special_service_); builder.SetMaxMessageSize( kMaxMessageSize_); // For testing max message size. server_ = builder.BuildAndStart(); @@ -147,15 +108,7 @@ class End2endTest : public ::testing::TestWithParam { StartServer(std::shared_ptr()); } EXPECT_TRUE(is_server_started_); - ChannelArguments args; - auto channel_creds = - GetChannelCredentials(GetParam().credentials_type, &args); - if (!user_agent_prefix_.empty()) { - args.SetUserAgentPrefix(user_agent_prefix_); - } - args.SetString(GRPC_ARG_SECONDARY_USER_AGENT_STRING, "end2end_test"); - channel_ = CreateCustomChannel(server_address_.str(), channel_creds, args); // TODO(yifeit): add credentials if (c_channel_) GRPC_channel_destroy(&c_channel_); c_channel_ = GRPC_channel_create(server_address_.str().c_str()); @@ -163,40 +116,22 @@ class End2endTest : public ::testing::TestWithParam { void ResetStub() { ResetChannel(); - if (GetParam().use_proxy) { - proxy_service_.reset(new Proxy(channel_)); - int port = grpc_pick_unused_port_or_die(); - std::ostringstream proxyaddr; - proxyaddr << "localhost:" << port; - ServerBuilder builder; - builder.AddListeningPort(proxyaddr.str(), InsecureServerCredentials()); - builder.RegisterService(proxy_service_.get()); - proxy_server_ = builder.BuildAndStart(); - - channel_ = CreateChannel(proxyaddr.str(), InsecureChannelCredentials()); - c_channel_ = GRPC_channel_create(proxyaddr.str().c_str()); - } } bool is_server_started_; - std::shared_ptr channel_; - GRPC_channel *c_channel_; - std::unique_ptr server_; - std::unique_ptr proxy_server_; - std::unique_ptr proxy_service_; std::ostringstream server_address_; const int kMaxMessageSize_; TestServiceImpl service_; - TestServiceImpl special_service_; grpc::string user_agent_prefix_; + + GRPC_channel *c_channel_; }; static void SendRpc(GRPC_channel *channel, int num_rpcs, bool with_binary_metadata) { - for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); @@ -206,29 +141,30 @@ static void SendRpc(GRPC_channel *channel, // using char array to hold RPC result while protobuf is not there yet GRPC_message resp; GRPC_status status = GRPC_unary_blocking_call(channel, &method, context, msg, &resp); - assert(status.code == GRPC_STATUS_OK); + + EXPECT_TRUE(status.ok) << status.details; + EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; + char *response_string = (char *) malloc(resp.length - 2 + 1); memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); response_string[resp.length - 2] = '\0'; - printf("Server said: %s\n", response_string); // skip to the string in serialized protobuf object - GRPC_message_destroy(&resp); - GRPC_client_context_destroy(&context); EXPECT_EQ(grpc::string(response_string), grpc::string("gRPC-C")); - EXPECT_TRUE(status.code == GRPC_STATUS_OK); + + GRPC_message_destroy(&resp); + GRPC_client_context_destroy(&context); } } - -////////////////////////////////////////////////////////////////////////// -// Test with and without a proxy. -class ProxyEnd2endTest : public End2endTest { +class UnaryEnd2endTest : public End2endTest { protected: }; -TEST_P(ProxyEnd2endTest, SimpleRpc) { - ResetStub(); - SendRpc(c_channel_, 1, false); +TEST(UnaryEnd2endTest, SimpleRpc) { + UnaryEnd2endTest test; + test.ResetStub(); + SendRpc(test.c_channel_, 1, false); + test.TearDown(); } } // namespace From cf9e3e47646ad3b661eb5b1786a8ef2c264b3ee9 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 16:01:00 -0700 Subject: [PATCH 042/202] Fix library order in build.yaml --- build.yaml | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/build.yaml b/build.yaml index 9f9b86264cf1a..b029ca6cd8417 100644 --- a/build.yaml +++ b/build.yaml @@ -1109,8 +1109,6 @@ libs: build: protoc language: c++ headers: - - src/compiler/c_generator.h - - src/compiler/c_generator_helpers.h - src/compiler/config.h - src/compiler/cpp_generator.h - src/compiler/cpp_generator_helpers.h @@ -1127,7 +1125,6 @@ libs: - src/compiler/ruby_generator_map-inl.h - src/compiler/ruby_generator_string-inl.h src: - - src/compiler/c_generator.cc - src/compiler/cpp_generator.cc - src/compiler/csharp_generator.cc - src/compiler/node_generator.cc @@ -1771,18 +1768,6 @@ targets: - grpc - gpr_test_util - gpr -- name: grpc_c_end2end - build: test - language: c - src: - - test/c/end2end/unary_end2end_test.cc - deps: - - grpc_test_util - - grpc - - gpr_test_util - - gpr - - grpc++_test_util - - grpc++ - name: grpc_channel_args_test build: test language: c @@ -2731,16 +2716,19 @@ targets: - grpc++ - grpc - gpr -- name: grpc_c_plugin - build: protoc +- name: grpc_c_end2end_test + build: test language: c++ src: - - src/compiler/c_plugin.cc + - test/c/end2end/unary_end2end_test.cc deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{06F2EB11-35DA-483D-AB0A-BC420D97B18C}' + - grpc_c + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc + - gpr_test_util + - gpr - name: grpc_cli build: test run: false From ace9920faf54c54089cc2547343e3ab26cdacd85 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 16:01:18 -0700 Subject: [PATCH 043/202] Regenerate projects --- BUILD | 15 -- CMakeLists.txt | 20 --- Makefile | 79 +++----- tools/run_tests/sources_and_headers.json | 35 +--- tools/run_tests/tests.json | 42 ++--- vsprojects/buildtests_c.sln | 78 -------- vsprojects/grpc_protoc_plugins.sln | 16 -- .../grpc_c_plugin/grpc_c_plugin.vcxproj | 168 ------------------ .../grpc_c_plugin.vcxproj.filters | 18 -- .../grpc_plugin_support.vcxproj | 4 - .../grpc_plugin_support.vcxproj.filters | 9 - .../grpc_c_end2end_test.vcxproj} | 23 ++- .../grpc_c_end2end_test.vcxproj.filters} | 6 +- 13 files changed, 75 insertions(+), 438 deletions(-) delete mode 100644 vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj delete mode 100644 vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters rename vsprojects/vcxproj/test/{grpc_c_end2end/grpc_c_end2end.vcxproj => grpc_c_end2end_test/grpc_c_end2end_test.vcxproj} (96%) rename vsprojects/vcxproj/test/{grpc_c_end2end/grpc_c_end2end.vcxproj.filters => grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters} (73%) diff --git a/BUILD b/BUILD index debde719358c9..9fe2165e719b5 100644 --- a/BUILD +++ b/BUILD @@ -1678,8 +1678,6 @@ cc_library( cc_library( name = "grpc_plugin_support", srcs = [ - "src/compiler/c_generator.h", - "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.h", "src/compiler/cpp_generator_helpers.h", @@ -1695,7 +1693,6 @@ cc_library( "src/compiler/ruby_generator_helpers-inl.h", "src/compiler/ruby_generator_map-inl.h", "src/compiler/ruby_generator_string-inl.h", - "src/compiler/c_generator.cc", "src/compiler/cpp_generator.cc", "src/compiler/csharp_generator.cc", "src/compiler/node_generator.cc", @@ -2237,18 +2234,6 @@ objc_library( -cc_binary( - name = "grpc_c_plugin", - srcs = [ - "src/compiler/c_plugin.cc", - ], - deps = [ - "//external:protobuf_compiler", - ":grpc_plugin_support", - ], -) - - cc_binary( name = "grpc_cpp_plugin", srcs = [ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9255d2fafc6ba..6d3482419ba47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -850,7 +850,6 @@ target_link_libraries(grpc++_unsecure add_library(grpc_plugin_support - src/compiler/c_generator.cc src/compiler/cpp_generator.cc src/compiler/csharp_generator.cc src/compiler/node_generator.cc @@ -985,25 +984,6 @@ target_link_libraries(grpc_verify_jwt ) -add_executable(grpc_c_plugin - src/compiler/c_plugin.cc -) - -target_include_directories(grpc_c_plugin - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_c_plugin - libprotoc - grpc_plugin_support -) - - add_executable(grpc_cpp_plugin src/compiler/cpp_plugin.cc ) diff --git a/Makefile b/Makefile index 2a3630bf5a4ba..3f2073c59e1fe 100644 --- a/Makefile +++ b/Makefile @@ -732,7 +732,7 @@ PC_LIBS_GRPCXX = CPPFLAGS := -Ithird_party/googletest/include $(CPPFLAGS) -PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_c_plugin $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin +PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin PROTOC_PLUGINS_DIR = $(BINDIR)/$(CONFIG) ifeq ($(HAS_SYSTEM_PROTOBUF),true) @@ -957,7 +957,6 @@ gpr_useful_test: $(BINDIR)/$(CONFIG)/gpr_useful_test grpc_auth_context_test: $(BINDIR)/$(CONFIG)/grpc_auth_context_test grpc_b64_test: $(BINDIR)/$(CONFIG)/grpc_b64_test grpc_byte_buffer_reader_test: $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test -grpc_c_end2end: $(BINDIR)/$(CONFIG)/grpc_c_end2end grpc_channel_args_test: $(BINDIR)/$(CONFIG)/grpc_channel_args_test grpc_channel_stack_test: $(BINDIR)/$(CONFIG)/grpc_channel_stack_test grpc_completion_queue_test: $(BINDIR)/$(CONFIG)/grpc_completion_queue_test @@ -1041,7 +1040,7 @@ cxx_time_test: $(BINDIR)/$(CONFIG)/cxx_time_test end2end_test: $(BINDIR)/$(CONFIG)/end2end_test generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test -grpc_c_plugin: $(BINDIR)/$(CONFIG)/grpc_c_plugin +grpc_c_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_end2end_test grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin @@ -1236,7 +1235,6 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/grpc_auth_context_test \ $(BINDIR)/$(CONFIG)/grpc_b64_test \ $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test \ - $(BINDIR)/$(CONFIG)/grpc_c_end2end \ $(BINDIR)/$(CONFIG)/grpc_channel_args_test \ $(BINDIR)/$(CONFIG)/grpc_channel_stack_test \ $(BINDIR)/$(CONFIG)/grpc_completion_queue_test \ @@ -1366,6 +1364,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/end2end_test \ $(BINDIR)/$(CONFIG)/generic_end2end_test \ $(BINDIR)/$(CONFIG)/golden_file_test \ + $(BINDIR)/$(CONFIG)/grpc_c_end2end_test \ $(BINDIR)/$(CONFIG)/grpc_cli \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ @@ -1412,6 +1411,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/end2end_test \ $(BINDIR)/$(CONFIG)/generic_end2end_test \ $(BINDIR)/$(CONFIG)/golden_file_test \ + $(BINDIR)/$(CONFIG)/grpc_c_end2end_test \ $(BINDIR)/$(CONFIG)/grpc_cli \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ @@ -1537,8 +1537,6 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/grpc_b64_test || ( echo test grpc_b64_test failed ; exit 1 ) $(E) "[RUN] Testing grpc_byte_buffer_reader_test" $(Q) $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test || ( echo test grpc_byte_buffer_reader_test failed ; exit 1 ) - $(E) "[RUN] Testing grpc_c_end2end" - $(Q) $(BINDIR)/$(CONFIG)/grpc_c_end2end || ( echo test grpc_c_end2end failed ; exit 1 ) $(E) "[RUN] Testing grpc_channel_args_test" $(Q) $(BINDIR)/$(CONFIG)/grpc_channel_args_test || ( echo test grpc_channel_args_test failed ; exit 1 ) $(E) "[RUN] Testing grpc_channel_stack_test" @@ -1701,6 +1699,8 @@ test_cxx: buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/generic_end2end_test || ( echo test generic_end2end_test failed ; exit 1 ) $(E) "[RUN] Testing golden_file_test" $(Q) $(BINDIR)/$(CONFIG)/golden_file_test || ( echo test golden_file_test failed ; exit 1 ) + $(E) "[RUN] Testing grpc_c_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/grpc_c_end2end_test || ( echo test grpc_c_end2end_test failed ; exit 1 ) $(E) "[RUN] Testing grpclb_api_test" $(Q) $(BINDIR)/$(CONFIG)/grpclb_api_test || ( echo test grpclb_api_test failed ; exit 1 ) $(E) "[RUN] Testing hybrid_end2end_test" @@ -2247,8 +2247,6 @@ ifeq ($(SYSTEM),MINGW32) else $(E) "[INSTALL] Installing grpc protoc plugins" $(Q) $(INSTALL) -d $(prefix)/bin - $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_c_plugin $(prefix)/bin/grpc_c_plugin - $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(prefix)/bin/grpc_cpp_plugin $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(prefix)/bin/grpc_csharp_plugin @@ -4235,7 +4233,6 @@ endif LIBGRPC_PLUGIN_SUPPORT_SRC = \ - src/compiler/c_generator.cc \ src/compiler/cpp_generator.cc \ src/compiler/csharp_generator.cc \ src/compiler/node_generator.cc \ @@ -6474,38 +6471,6 @@ endif endif -GRPC_C_END2END_SRC = \ - test/c/end2end/unary_end2end_test.cc \ - -GRPC_C_END2END_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/grpc_c_end2end: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/grpc_c_end2end: $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_C_END2END_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end - -endif - -$(OBJDIR)/$(CONFIG)/test/c/end2end/unary_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a - -deps_grpc_c_end2end: $(GRPC_C_END2END_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(GRPC_C_END2END_OBJS:.o=.dep) -endif -endif - - GRPC_CHANNEL_ARGS_TEST_SRC = \ test/core/channel/channel_args_test.c \ @@ -9389,10 +9354,18 @@ endif $(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc -GRPC_C_PLUGIN_SRC = \ - src/compiler/c_plugin.cc \ +GRPC_C_END2END_TEST_SRC = \ + test/c/end2end/unary_end2end_test.cc \ + +GRPC_C_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: openssl_dep_error + +else -GRPC_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_PLUGIN_SRC)))) @@ -9400,23 +9373,27 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_c_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_c_plugin: $(PROTOBUF_DEP) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_c_plugin + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif + +$(OBJDIR)/$(CONFIG)/test/c/end2end/unary_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_c_plugin: $(GRPC_C_PLUGIN_OBJS:.o=.dep) +deps_grpc_c_end2end_test: $(GRPC_C_END2END_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_PLUGIN_OBJS:.o=.dep) +-include $(GRPC_C_END2END_TEST_OBJS:.o=.dep) +endif endif diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index dbab550a54354..56fb6c4791851 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -771,24 +771,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc++", - "grpc++_test_util", - "grpc_test_util" - ], - "headers": [], - "language": "c", - "name": "grpc_c_end2end", - "src": [ - "test/c/end2end/unary_end2end_test.cc" - ], - "third_party": false, - "type": "target" - }, { "deps": [ "gpr", @@ -2147,13 +2129,19 @@ }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_c", + "grpc_test_util" ], "headers": [], "language": "c++", - "name": "grpc_c_plugin", + "name": "grpc_c_end2end_test", "src": [ - "src/compiler/c_plugin.cc" + "test/c/end2end/unary_end2end_test.cc" ], "third_party": false, "type": "target" @@ -4605,8 +4593,6 @@ "grpc++_config_proto" ], "headers": [ - "src/compiler/c_generator.h", - "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.h", "src/compiler/cpp_generator_helpers.h", @@ -4626,9 +4612,6 @@ "language": "c++", "name": "grpc_plugin_support", "src": [ - "src/compiler/c_generator.cc", - "src/compiler/c_generator.h", - "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.cc", "src/compiler/cpp_generator.h", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 3b64b6e64c2a9..0b4f1eea4f93d 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -928,27 +928,6 @@ "windows" ] }, - { - "args": [], - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 1.0, - "exclude_configs": [], - "flaky": false, - "gtest": false, - "language": "c", - "name": "grpc_c_end2end", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ] - }, { "args": [], "ci_platforms": [ @@ -2290,6 +2269,27 @@ "windows" ] }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "gtest": false, + "language": "c++", + "name": "grpc_c_end2end_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index a96bb8e7e5775..7232440ab7627 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -463,23 +463,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++", "vcxproj\.\grpc++\grpc++.vcxproj", "{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++_test_util", "vcxproj\.\grpc++_test_util\grpc++_test_util.vcxproj", "{0BE77741-552A-929B-A497-4EF7ECE17A64}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} = {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_auth_context_test", "vcxproj\test\grpc_auth_context_test\grpc_auth_context_test.vcxproj", "{C65A4336-92D6-D6A0-EB86-E3AA425222D0}" ProjectSection(myProperties) = preProject lib = "False" @@ -513,19 +496,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_byte_buffer_reader_tes {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c_end2end", "vcxproj\test\grpc_c_end2end\grpc_c_end2end.vcxproj", "{6396014B-A921-2545-6156-32332C65DF7D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - {0BE77741-552A-929B-A497-4EF7ECE17A64} = {0BE77741-552A-929B-A497-4EF7ECE17A64} - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} = {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_channel_args_test", "vcxproj\test\grpc_channel_args_test\grpc_channel_args_test.vcxproj", "{58FB566F-DCD5-3ECE-233E-C1FD13CA2185}" ProjectSection(myProperties) = preProject lib = "False" @@ -2221,38 +2191,6 @@ Global {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|x64.ActiveCfg = Debug|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.ActiveCfg = Release|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.ActiveCfg = Release|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|Win32.Build.0 = Debug|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|x64.Build.0 = Debug|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.Build.0 = Release|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.Build.0 = Release|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|Win32.ActiveCfg = Debug|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|x64.ActiveCfg = Debug|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|Win32.ActiveCfg = Release|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|x64.ActiveCfg = Release|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|Win32.Build.0 = Debug|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug|x64.Build.0 = Debug|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|Win32.Build.0 = Release|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release|x64.Build.0 = Release|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Debug-DLL|x64.Build.0 = Debug|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|Win32.Build.0 = Release|Win32 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|x64.ActiveCfg = Release|x64 - {0BE77741-552A-929B-A497-4EF7ECE17A64}.Release-DLL|x64.Build.0 = Release|x64 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|Win32.ActiveCfg = Debug|Win32 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|x64.ActiveCfg = Debug|x64 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|Win32.ActiveCfg = Release|Win32 @@ -2301,22 +2239,6 @@ Global {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|Win32.Build.0 = Release|Win32 {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.ActiveCfg = Release|x64 {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.Build.0 = Release|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug|Win32.ActiveCfg = Debug|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug|x64.ActiveCfg = Debug|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Release|Win32.ActiveCfg = Release|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Release|x64.ActiveCfg = Release|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug|Win32.Build.0 = Debug|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug|x64.Build.0 = Debug|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Release|Win32.Build.0 = Release|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Release|x64.Build.0 = Release|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Debug-DLL|x64.Build.0 = Debug|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|Win32.Build.0 = Release|Win32 - {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|x64.ActiveCfg = Release|x64 - {6396014B-A921-2545-6156-32332C65DF7D}.Release-DLL|x64.Build.0 = Release|x64 {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|Win32.ActiveCfg = Debug|Win32 {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|x64.ActiveCfg = Debug|x64 {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/grpc_protoc_plugins.sln b/vsprojects/grpc_protoc_plugins.sln index 5eadb7cdccef8..2e55720f28c50 100644 --- a/vsprojects/grpc_protoc_plugins.sln +++ b/vsprojects/grpc_protoc_plugins.sln @@ -3,14 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c_plugin", "vcxproj\.\grpc_c_plugin\grpc_c_plugin.vcxproj", "{06F2EB11-35DA-483D-AB0A-BC420D97B18C}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B6E81D84-2ACB-41B8-8781-493A944C7817} = {B6E81D84-2ACB-41B8-8781-493A944C7817} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_cpp_plugin", "vcxproj\.\grpc_cpp_plugin\grpc_cpp_plugin.vcxproj", "{7E51A25F-AC59-488F-906C-C60FAAE706AA}" ProjectSection(myProperties) = preProject lib = "False" @@ -72,14 +64,6 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|Win32.ActiveCfg = Debug|Win32 - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|x64.ActiveCfg = Debug|x64 - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|Win32.ActiveCfg = Release|Win32 - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|x64.ActiveCfg = Release|x64 - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|Win32.Build.0 = Debug|Win32 - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|x64.Build.0 = Debug|x64 - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|Win32.Build.0 = Release|Win32 - {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|x64.Build.0 = Release|x64 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Debug|Win32.ActiveCfg = Debug|Win32 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Debug|x64.ActiveCfg = Debug|x64 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj deleted file mode 100644 index 47aba5005f8ab..0000000000000 --- a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj +++ /dev/null @@ -1,168 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {06F2EB11-35DA-483D-AB0A-BC420D97B18C} - true - $(SolutionDir)IntDir\$(MSBuildProjectName)\ - - - - v100 - - - v110 - - - v120 - - - v140 - - - Application - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - grpc_c_plugin - - - grpc_c_plugin - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDebug - true - None - false - - - Console - true - false - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - NotUsing - Level3 - MaxSpeed - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - true - true - MultiThreaded - true - None - false - - - Console - true - false - true - true - - - - - - - - - - {B6E81D84-2ACB-41B8-8781-493A944C7817} - - - - - - - - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - diff --git a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters deleted file mode 100644 index 81922be0a5f73..0000000000000 --- a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - src\compiler - - - - - - {1ad4fe68-6369-3285-10dc-6272151898a6} - - - {bb7b20f5-fcb8-03bf-ac38-2918fd2abcd0} - - - - diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj index ca4b87eb5b6ee..9828b8bcaf0cc 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj @@ -151,8 +151,6 @@ - - @@ -170,8 +168,6 @@ - - diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters index 15e50982d0ab8..27eb935e0745c 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters @@ -1,9 +1,6 @@ - - src\compiler - src\compiler @@ -29,12 +26,6 @@ - - src\compiler - - - src\compiler - src\compiler diff --git a/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj similarity index 96% rename from vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj rename to vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj index c004efe0657f1..b579d75cc2bf2 100644 --- a/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj +++ b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj @@ -20,7 +20,7 @@ - {6396014B-A921-2545-6156-32332C65DF7D} + {6E4AFD15-76D2-7BD1-98CE-5C20C50AC86A} true $(SolutionDir)IntDir\$(MSBuildProjectName)\ @@ -53,21 +53,23 @@ + + - grpc_c_end2end + grpc_c_end2end_test static Debug static Debug - grpc_c_end2end + grpc_c_end2end_test static Release static @@ -162,9 +164,18 @@ + + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} + + + {0BE77741-552A-929B-A497-4EF7ECE17A64} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} @@ -174,12 +185,6 @@ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - - {0BE77741-552A-929B-A497-4EF7ECE17A64} - - - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} - diff --git a/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj.filters b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters similarity index 73% rename from vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj.filters rename to vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters index 098d545ca47dc..04dc337c10afe 100644 --- a/vsprojects/vcxproj/test/grpc_c_end2end/grpc_c_end2end.vcxproj.filters +++ b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters @@ -8,13 +8,13 @@ - {573596d1-36aa-7ea1-ac6a-61c36426cbb1} + {17223a1e-3ecb-a3d6-c40d-bde3969d9275} - {d6108617-6a13-dd20-9eb1-d8dda8888f8f} + {b16fb263-5348-4d59-4d1f-80b56e910635} - {46224486-dbea-397d-6d30-f2c0ca20fd2e} + {459aafe4-24cf-ac2c-1a7f-f58ae6b692f5} From 628ad2c5abed1ff6089bf749440dd973d75d4e49 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 16:49:34 -0700 Subject: [PATCH 044/202] fix error handling in bidi --- src/c/bidi_streaming_blocking_call.c | 4 ++-- src/c/completion_queue.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 037ebe53405e3..fe2c9c069879f 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -103,9 +103,9 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, } grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {0}, response); - bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(pSet)) && pSet->message_received; + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(pSet)); reader_writer->context->status.ok &= ok; - return ok; + return ok && pSet->message_received; } bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request) { diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index ccc52e1c707d8..1be592235f5d3 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -102,6 +102,6 @@ bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag) GPR_ASSERT(set->context != NULL); GPR_ASSERT(set->user_tag == ev.tag); // run post-processing - grpc_finish_op_from_call_set(set, set->context); - return ev.success != 0; + bool status = grpc_finish_op_from_call_set(set, set->context); + return (ev.success != 0) && status; } From be16c60665dcb7c6fee60849d857521f67bf54b0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 16:49:54 -0700 Subject: [PATCH 045/202] write tests for all blocking APIs --- test/c/end2end/unary_end2end_test.cc | 154 +++++++++++++++++++++++++- test/cpp/end2end/test_service_impl.cc | 1 + 2 files changed, 149 insertions(+), 6 deletions(-) diff --git a/test/c/end2end/unary_end2end_test.cc b/test/c/end2end/unary_end2end_test.cc index e019ad7ffa84c..04dd50af7560b 100644 --- a/test/c/end2end/unary_end2end_test.cc +++ b/test/c/end2end/unary_end2end_test.cc @@ -53,6 +53,10 @@ extern "C" { #include #include #include +#include +#include +#include +#include #include } @@ -129,9 +133,8 @@ class End2endTest { GRPC_channel *c_channel_; }; -static void SendRpc(GRPC_channel *channel, - int num_rpcs, - bool with_binary_metadata) { +static void SendUnaryRpc(GRPC_channel *channel, + int num_rpcs) { for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); @@ -149,21 +152,160 @@ static void SendRpc(GRPC_channel *channel, memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); response_string[resp.length - 2] = '\0'; - EXPECT_EQ(grpc::string(response_string), grpc::string("gRPC-C")); + EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); + free(response_string); GRPC_message_destroy(&resp); GRPC_client_context_destroy(&context); } } +static void SendClientStreamingRpc(GRPC_channel *channel, + int num_rpcs) { + for (int i = 0; i < num_rpcs; ++i) { + GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/RequestStream" }; + GRPC_client_context *context = GRPC_client_context_create(channel); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + + GRPC_client_writer *writer = GRPC_client_streaming_blocking_call(channel, method, context, &resp); + for (int i = 0; i < 3; i++) { + bool result = GRPC_client_streaming_blocking_write(writer, msg); + EXPECT_TRUE(result); + } + GRPC_status status = GRPC_client_writer_terminate(writer); + + EXPECT_TRUE(status.ok) << status.details; + EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; + + char *response_string = (char *) malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + + EXPECT_EQ(grpc::string("gRPC-CgRPC-CgRPC-C"), grpc::string(response_string)); + + free(response_string); + GRPC_message_destroy(&resp); + GRPC_client_context_destroy(&context); + } +} + +static void SendServerStreamingRpc(GRPC_channel *channel, + int num_rpcs) { + for (int i = 0; i < num_rpcs; ++i) { + GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/ResponseStream" }; + GRPC_client_context *context = GRPC_client_context_create(channel); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + + GRPC_client_reader *reader = GRPC_server_streaming_blocking_call(channel, method, context, msg); + + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + + int count = 0; + while (GRPC_server_streaming_blocking_read(reader, &resp)) { + char *response_string = (char *) malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + EXPECT_EQ(grpc::string("gRPC-C") + grpc::to_string(count++), grpc::string(response_string)); + free(response_string); + GRPC_message_destroy(&resp); + } + + GRPC_status status = GRPC_client_reader_terminate(reader); + EXPECT_TRUE(status.ok) << status.details; + EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; + + GRPC_client_context_destroy(&context); + } +} + +static void SendBidiStreamingRpc(GRPC_channel *channel, + int num_rpcs) { + for (int i = 0; i < num_rpcs; ++i) { + GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/BidiStream" }; + GRPC_client_context *context = GRPC_client_context_create(channel); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + + GRPC_client_reader_writer *reader_writer = GRPC_bidi_streaming_blocking_call(channel, method, context); + + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + + const int kNumMsgToSend = 3; + for (int i = 0; i < kNumMsgToSend; i++) { + EXPECT_TRUE(GRPC_bidi_streaming_blocking_write(reader_writer, msg)); + } + EXPECT_TRUE(GRPC_bidi_streaming_blocking_writes_done(reader_writer)); + + int received_num = 0; + while (GRPC_bidi_streaming_blocking_read(reader_writer, &resp)) { + received_num++; + char *response_string = (char *) malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); + free(response_string); + GRPC_message_destroy(&resp); + } + EXPECT_EQ(kNumMsgToSend, received_num); + + GRPC_status status = GRPC_client_reader_writer_terminate(reader_writer); + EXPECT_TRUE(status.ok) << status.details; + EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; + + GRPC_client_context_destroy(&context); + } +} + class UnaryEnd2endTest : public End2endTest { protected: }; -TEST(UnaryEnd2endTest, SimpleRpc) { +class ClientStreamingEnd2endTest : public End2endTest { +protected: +}; + +class ServerStreamingEnd2endTest : public End2endTest { +protected: +}; + +class BidiStreamingEnd2endTest : public End2endTest { +protected: +}; + +TEST(End2endTest, UnaryRpc) { UnaryEnd2endTest test; test.ResetStub(); - SendRpc(test.c_channel_, 1, false); + SendUnaryRpc(test.c_channel_, 3); + test.TearDown(); +} + +TEST(End2endTest, ClientStreamingRpc) { + ClientStreamingEnd2endTest test; + test.ResetStub(); + SendClientStreamingRpc(test.c_channel_, 3); + test.TearDown(); +} + +TEST(End2endTest, ServerStreamingRpc) { + ServerStreamingEnd2endTest test; + test.ResetStub(); + SendServerStreamingRpc(test.c_channel_, 3); + test.TearDown(); +} + +TEST(End2endTest, BidiStreamingRpc) { + BidiStreamingEnd2endTest test; + test.ResetStub(); + SendBidiStreamingRpc(test.c_channel_, 3); test.TearDown(); } diff --git a/test/cpp/end2end/test_service_impl.cc b/test/cpp/end2end/test_service_impl.cc index 52abd80d690b9..7ab6612125c75 100644 --- a/test/cpp/end2end/test_service_impl.cc +++ b/test/cpp/end2end/test_service_impl.cc @@ -201,6 +201,7 @@ Status TestServiceImpl::RequestStream(ServerContext* context, int num_msgs_read = 0; while (reader->Read(&request)) { + num_msgs_read++; if (cancel_after_reads == 1) { gpr_log(GPR_INFO, "return cancel status"); return Status::CANCELLED; From b7cb7932f3996735a4bd5d04a5e38bce05862392 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 17:36:13 -0700 Subject: [PATCH 046/202] kill the shutdown_and_destroy function --- include/grpc_c/completion_queue.h | 5 ++++- src/c/bidi_streaming_blocking_call.c | 4 +++- src/c/client_streaming_blocking_call.c | 4 +++- src/c/completion_queue.c | 4 +--- src/c/server_streaming_blocking_call.c | 4 +++- src/c/unary_blocking_call.c | 4 +++- test/c/end2end/{unary_end2end_test.cc => end2end_test.cc} | 0 7 files changed, 17 insertions(+), 8 deletions(-) rename test/c/end2end/{unary_end2end_test.cc => end2end_test.cc} (100%) diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 1219fa29fd45a..ffdd4579e0763 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -48,7 +48,10 @@ typedef enum GRPC_completion_queue_next_status { GRPC_completion_queue *GRPC_completion_queue_create(); void GRPC_completion_queue_shutdown(GRPC_completion_queue *cq); void GRPC_completion_queue_destroy(GRPC_completion_queue *cq); -void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq); + +/* Swallows events and blocks until it sees the shutdown event */ +void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq); + GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok); GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index fe2c9c069879f..a8358cd218f9e 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -148,7 +148,9 @@ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reade }; grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); - GRPC_completion_queue_shutdown_and_destroy(reader_writer->cq); + GRPC_completion_queue_shutdown(reader_writer->cq); + GRPC_completion_queue_shutdown_wait(reader_writer->cq); + GRPC_completion_queue_destroy(reader_writer->cq); grpc_call_destroy(reader_writer->call); reader_writer->context->call = NULL; grpc_client_context *context = reader_writer->context; diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index c2dfc17d56c01..489a65819df9a 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -102,7 +102,9 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {0}, writer->response); GRPC_completion_queue_pluck_internal(writer->cq, TAG(&writer->finish_ops)); - GRPC_completion_queue_shutdown_and_destroy(writer->cq); + GRPC_completion_queue_shutdown(writer->cq); + GRPC_completion_queue_shutdown_wait(writer->cq); + GRPC_completion_queue_destroy(writer->cq); grpc_call_destroy(writer->call); writer->context->call = NULL; grpc_client_context *context = writer->context; diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 1be592235f5d3..979d9f999dda7 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -50,14 +50,12 @@ void GRPC_completion_queue_destroy(GRPC_completion_queue *cq) { grpc_completion_queue_destroy(cq); } -void GRPC_completion_queue_shutdown_and_destroy(GRPC_completion_queue *cq) { - grpc_completion_queue_shutdown(cq); +void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq) { for (;;) { void *tag; bool ok; if (GRPC_commit_ops_and_wait(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; } - grpc_completion_queue_destroy(cq); } GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_completion_queue *cq, diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 301c2502f2995..8202bb5a33853 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -115,7 +115,9 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { }; grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, TAG(&set)); - GRPC_completion_queue_shutdown_and_destroy(reader->cq); + GRPC_completion_queue_shutdown(reader->cq); + GRPC_completion_queue_shutdown_wait(reader->cq); + GRPC_completion_queue_destroy(reader->cq); grpc_call_destroy(reader->call); reader->context->call = NULL; grpc_client_context *context = reader->context; diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 15ba7f2ec8566..8b8325653c462 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -79,7 +79,9 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c context->status.ok &= (context->status.code == GRPC_STATUS_OK); - GRPC_completion_queue_shutdown_and_destroy(cq); + GRPC_completion_queue_shutdown(cq); + GRPC_completion_queue_shutdown_wait(cq); + GRPC_completion_queue_destroy(cq); grpc_call_destroy(call); context->call = NULL; diff --git a/test/c/end2end/unary_end2end_test.cc b/test/c/end2end/end2end_test.cc similarity index 100% rename from test/c/end2end/unary_end2end_test.cc rename to test/c/end2end/end2end_test.cc From c8d9a8753bcbaf33671ddd4a20705c238a6c87ba Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 17:36:38 -0700 Subject: [PATCH 047/202] unary_end2end_test -> end2end_test --- Makefile | 4 ++-- build.yaml | 2 +- tools/run_tests/sources_and_headers.json | 2 +- .../test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj | 2 +- .../grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 3f2073c59e1fe..c7cc0005a1ff6 100644 --- a/Makefile +++ b/Makefile @@ -9355,7 +9355,7 @@ $(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grp GRPC_C_END2END_TEST_SRC = \ - test/c/end2end/unary_end2end_test.cc \ + test/c/end2end/end2end_test.cc \ GRPC_C_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) @@ -9386,7 +9386,7 @@ endif endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/unary_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a deps_grpc_c_end2end_test: $(GRPC_C_END2END_TEST_OBJS:.o=.dep) diff --git a/build.yaml b/build.yaml index b029ca6cd8417..c39aea2b43616 100644 --- a/build.yaml +++ b/build.yaml @@ -2720,7 +2720,7 @@ targets: build: test language: c++ src: - - test/c/end2end/unary_end2end_test.cc + - test/c/end2end/end2end_test.cc deps: - grpc_c - grpc++_test_util diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 56fb6c4791851..5b94a78a59360 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2141,7 +2141,7 @@ "language": "c++", "name": "grpc_c_end2end_test", "src": [ - "test/c/end2end/unary_end2end_test.cc" + "test/c/end2end/end2end_test.cc" ], "third_party": false, "type": "target" diff --git a/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj index b579d75cc2bf2..475f777e94246 100644 --- a/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj @@ -160,7 +160,7 @@ - + diff --git a/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters index 04dc337c10afe..c3161738d0ab2 100644 --- a/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters +++ b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj.filters @@ -1,7 +1,7 @@ - + test\c\end2end From f132283ea93b07695aaf325ddae7afe3953c977a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 17:45:06 -0700 Subject: [PATCH 048/202] async unary test --- include/grpc_c/client_context.h | 1 + src/c/client_context.c | 4 +++ test/c/end2end/end2end_test.cc | 50 +++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index fd578a4fc062d..034554fe22567 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -39,5 +39,6 @@ GRPC_client_context *GRPC_client_context_create(GRPC_channel *chan); void GRPC_client_context_destroy(GRPC_client_context **context); +GRPC_status GRPC_get_call_status(GRPC_client_context *context); #endif /* GRPC_C_CONTEXT_PUBLIC_H */ diff --git a/src/c/client_context.c b/src/c/client_context.c index e5c2a76e8f90d..5c9cd3169d371 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -64,3 +64,7 @@ void GRPC_client_context_destroy(GRPC_client_context **context) { free(*context); *context = NULL; } + +GRPC_status GRPC_get_call_status(GRPC_client_context *context) { + return context->status; +} diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 04dd50af7560b..4359f14e751da 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -265,6 +265,45 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, } } +static void SendAsyncUnaryRpc(GRPC_channel *channel, + int num_rpcs) { + for (int i = 0; i < num_rpcs; ++i) { + GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + // hardcoded string for "gRPC-C" + char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; + GRPC_message msg = {str, sizeof(str)}; + // using char array to hold RPC result while protobuf is not there yet + GRPC_message resp; + + void *tag; + bool ok; + GRPC_client_async_response_reader *reader = GRPC_unary_async_call(channel, cq, method, msg, context); + GRPC_client_async_finish(reader, &resp, (void*) 12345); + GRPC_commit_ops_and_wait(cq, &tag, &ok); + EXPECT_TRUE(ok); + EXPECT_TRUE(tag == (void*) 12345); + + GRPC_status status = GRPC_get_call_status(context); + EXPECT_TRUE(status.ok) << status.details; + EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; + + char *response_string = (char *) malloc(resp.length - 2 + 1); + memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); + response_string[resp.length - 2] = '\0'; + + EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); + + free(response_string); + GRPC_message_destroy(&resp); + GRPC_client_context_destroy(&context); + GRPC_completion_queue_shutdown(cq); + GRPC_completion_queue_shutdown_wait(cq); + GRPC_completion_queue_destroy(cq); + } +} + class UnaryEnd2endTest : public End2endTest { protected: }; @@ -281,6 +320,10 @@ class BidiStreamingEnd2endTest : public End2endTest { protected: }; +class AsyncUnaryEnd2endTest : public End2endTest { +protected: +}; + TEST(End2endTest, UnaryRpc) { UnaryEnd2endTest test; test.ResetStub(); @@ -309,6 +352,13 @@ TEST(End2endTest, BidiStreamingRpc) { test.TearDown(); } +TEST(End2endTest, AsyncUnaryRpc) { + AsyncUnaryEnd2endTest test; + test.ResetStub(); + SendAsyncUnaryRpc(test.c_channel_, 3); + test.TearDown(); +} + } // namespace } // namespace testing } // namespace grpc From 5c58268977e716c8cf66ed9de2363a8d402d8ed9 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 13 Jul 2016 17:47:25 -0700 Subject: [PATCH 049/202] GRPC_commit_ops_and_wait -> GRPC_completion_queue_next --- include/grpc_c/completion_queue.h | 4 ++-- src/c/completion_queue.c | 8 ++++---- src/c/unary_blocking_call.c | 2 +- test/c/end2end/end2end_test.cc | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index ffdd4579e0763..bd2ed970543ba 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -52,8 +52,8 @@ void GRPC_completion_queue_destroy(GRPC_completion_queue *cq); /* Swallows events and blocks until it sees the shutdown event */ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq); -GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok); -GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_completion_queue *cq, +GRPC_completion_queue_operation_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok); +GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok); diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 979d9f999dda7..bfc8a70c34802 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -54,11 +54,11 @@ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq) { for (;;) { void *tag; bool ok; - if (GRPC_commit_ops_and_wait(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; + if (GRPC_completion_queue_next(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; } } -GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_completion_queue *cq, +GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, gpr_timespec deadline, void **tag, bool *ok) { for (;;) { @@ -88,8 +88,8 @@ GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait_deadline(GRPC_co } } -GRPC_completion_queue_operation_status GRPC_commit_ops_and_wait(GRPC_completion_queue *cq, void **tag, bool *ok) { - return GRPC_commit_ops_and_wait_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); +GRPC_completion_queue_operation_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok) { + return GRPC_completion_queue_next_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); } bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag) { diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 8b8325653c462..382d784a13d58 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -69,7 +69,7 @@ GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *c for (;;) { void *tag; bool ok; - GRPC_completion_queue_operation_status status = GRPC_commit_ops_and_wait_deadline(cq, context->deadline, &tag, &ok); + GRPC_completion_queue_operation_status status = GRPC_completion_queue_next_deadline(cq, context->deadline, &tag, &ok); GPR_ASSERT(status == GRPC_COMPLETION_QUEUE_GOT_EVENT); if (tag == TAG(&set)) { context->status.ok &= ok; diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 4359f14e751da..9a648ef21a5fc 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -281,7 +281,7 @@ static void SendAsyncUnaryRpc(GRPC_channel *channel, bool ok; GRPC_client_async_response_reader *reader = GRPC_unary_async_call(channel, cq, method, msg, context); GRPC_client_async_finish(reader, &resp, (void*) 12345); - GRPC_commit_ops_and_wait(cq, &tag, &ok); + GRPC_completion_queue_next(cq, &tag, &ok); EXPECT_TRUE(ok); EXPECT_TRUE(tag == (void*) 12345); From 02e2c0a5400d6d82d18fc89dfed8961a13ef6f0b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 7 Jul 2016 15:43:22 -0700 Subject: [PATCH 050/202] [CODEGEN] Modelling C codegen from C++ codegen --- src/compiler/c_generator.cc | 1236 ++++++++++++++++++++++++++++ src/compiler/c_generator.h | 73 ++ src/compiler/c_generator_helpers.h | 59 ++ src/compiler/c_plugin.cc | 287 +++++++ 4 files changed, 1655 insertions(+) create mode 100644 src/compiler/c_generator.cc create mode 100644 src/compiler/c_generator.h create mode 100644 src/compiler/c_generator_helpers.h create mode 100644 src/compiler/c_plugin.cc diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc new file mode 100644 index 0000000000000..2de98ddfb7a8b --- /dev/null +++ b/src/compiler/c_generator.cc @@ -0,0 +1,1236 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include + +#include "src/compiler/c_generator.h" +#include "src/compiler/c_generator_helpers.h" +#include "src/compiler/cpp_generator.h" +#include "src/compiler/cpp_generator_helpers.h" + +/* + * C Generator + * Contains methods for printing comments, service headers, service implementations, etc. + */ +namespace grpc_c_generator { + +namespace { + +template +grpc::string as_string(T x) { + std::ostringstream out; + out << x; + return out.str(); +} + +grpc::string FilenameIdentifier(const grpc::string &filename) { + grpc::string result; + for (unsigned i = 0; i < filename.size(); i++) { + char c = filename[i]; + if (isalnum(c)) { + result.push_back(c); + } else { + static char hex[] = "0123456789abcdef"; + result.push_back('_'); + result.push_back(hex[(c >> 4) & 0xf]); + result.push_back(hex[c & 0xf]); + } + } + return result; +} + +} // namespace + +using grpc::protobuf::FileDescriptor; +using grpc::protobuf::ServiceDescriptor; +using grpc::protobuf::MethodDescriptor; +using grpc::protobuf::Descriptor; +using grpc::protobuf::io::StringOutputStream; + +using grpc_cpp_generator::Parameters; +using grpc_cpp_generator::File; +using grpc_cpp_generator::Method; +using grpc_cpp_generator::Service; +using grpc_cpp_generator::Printer; + +template +T *array_end(T (&array)[N]) { return array + N; } + +void PrintIncludes(Printer *printer, const std::vector& headers, const Parameters ¶ms) { + std::map vars; + + vars["l"] = params.use_system_headers ? '<' : '"'; + vars["r"] = params.use_system_headers ? '>' : '"'; + + auto& s = params.grpc_search_path; + if (!s.empty()) { + vars["l"] += s; + if (s[s.size()-1] != '/') { + vars["l"] += '/'; + } + } + + for (auto i = headers.begin(); i != headers.end(); i++) { + vars["h"] = *i; + printer->Print(vars, "#include $l$$h$$r$\n"); + } +} + +grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + vars["filename"] = file->filename(); + vars["filename_identifier"] = FilenameIdentifier(file->filename()); + vars["filename_base"] = file->filename_without_ext(); + vars["message_header_ext"] = file->message_header_ext(); + + printer->Print(vars, "// Generated by the gRPC protobuf plugin.\n"); + printer->Print(vars, + "// If you make any local change, they will be lost.\n"); + printer->Print(vars, "// source: $filename$\n"); + grpc::string leading_comments = file->GetLeadingComments(); + if (!leading_comments.empty()) { + printer->Print(vars, "// Original file comments:\n"); + printer->Print(leading_comments.c_str()); + } + printer->Print(vars, "#ifndef GRPC_$filename_identifier$__INCLUDED\n"); + printer->Print(vars, "#define GRPC_$filename_identifier$__INCLUDED\n"); + printer->Print(vars, "\n"); + printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(vars, "\n"); + } + return output; +} + +grpc::string GetHeaderIncludes(File *file, + const Parameters ¶ms) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + static const char *headers_strs[] = { + "grpc++/impl/codegen/async_stream.h", + "grpc++/impl/codegen/async_unary_call.h", + "grpc++/impl/codegen/proto_utils.h", + "grpc++/impl/codegen/rpc_method.h", + "grpc++/impl/codegen/service_type.h", + "grpc++/impl/codegen/status.h", + "grpc++/impl/codegen/stub_options.h", + "grpc++/impl/codegen/sync_stream.h" + }; + std::vector headers(headers_strs, array_end(headers_strs)); + PrintIncludes(printer.get(), headers, params); + printer->Print(vars, "\n"); + printer->Print(vars, "namespace grpc {\n"); + printer->Print(vars, "class CompletionQueue;\n"); + printer->Print(vars, "class Channel;\n"); + printer->Print(vars, "class RpcService;\n"); + printer->Print(vars, "class ServerCompletionQueue;\n"); + printer->Print(vars, "class ServerContext;\n"); + printer->Print(vars, "} // namespace grpc\n\n"); + + if (!file->package().empty()) { + std::vector parts = file->package_parts(); + + for (auto part = parts.begin(); part != parts.end(); part++) { + vars["part"] = *part; + printer->Print(vars, "namespace $part$ {\n"); + } + printer->Print(vars, "\n"); + } + } + return output; +} + +void PrintHeaderClientMethodInterfaces( + Printer *printer, const Method *method, + std::map *vars, bool is_public) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + + if (is_public) { + if (method->NoStreaming()) { + printer->Print( + *vars, + "virtual ::grpc::Status $Method$(::grpc::ClientContext* context, " + "const $Request$& request, $Response$* response) = 0;\n"); + printer->Print(*vars, + "std::unique_ptr< " + "::grpc::ClientAsyncResponseReaderInterface< $Response$>> " + "Async$Method$(::grpc::ClientContext* context, " + "const $Request$& request, " + "::grpc::CompletionQueue* cq) {\n"); + printer->Indent(); + printer->Print(*vars, + "return std::unique_ptr< " + "::grpc::ClientAsyncResponseReaderInterface< $Response$>>(" + "Async$Method$Raw(context, request, cq));\n"); + printer->Outdent(); + printer->Print("}\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientWriterInterface< $Request$>>" + " $Method$(" + "::grpc::ClientContext* context, $Response$* response) {\n"); + printer->Indent(); + printer->Print( + *vars, + "return std::unique_ptr< ::grpc::ClientWriterInterface< $Request$>>" + "($Method$Raw(context, response));\n"); + printer->Outdent(); + printer->Print("}\n"); + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientAsyncWriterInterface< $Request$>>" + " Async$Method$(::grpc::ClientContext* context, $Response$* " + "response, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Indent(); + printer->Print(*vars, + "return std::unique_ptr< " + "::grpc::ClientAsyncWriterInterface< $Request$>>(" + "Async$Method$Raw(context, response, cq, tag));\n"); + printer->Outdent(); + printer->Print("}\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientReaderInterface< $Response$>>" + " $Method$(::grpc::ClientContext* context, const $Request$& request)" + " {\n"); + printer->Indent(); + printer->Print( + *vars, + "return std::unique_ptr< ::grpc::ClientReaderInterface< $Response$>>" + "($Method$Raw(context, request));\n"); + printer->Outdent(); + printer->Print("}\n"); + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientAsyncReaderInterface< $Response$>> " + "Async$Method$(" + "::grpc::ClientContext* context, const $Request$& request, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Indent(); + printer->Print(*vars, + "return std::unique_ptr< " + "::grpc::ClientAsyncReaderInterface< $Response$>>(" + "Async$Method$Raw(context, request, cq, tag));\n"); + printer->Outdent(); + printer->Print("}\n"); + } else if (method->BidiStreaming()) { + printer->Print(*vars, + "std::unique_ptr< ::grpc::ClientReaderWriterInterface< " + "$Request$, $Response$>> " + "$Method$(::grpc::ClientContext* context) {\n"); + printer->Indent(); + printer->Print( + *vars, + "return std::unique_ptr< " + "::grpc::ClientReaderWriterInterface< $Request$, $Response$>>(" + "$Method$Raw(context));\n"); + printer->Outdent(); + printer->Print("}\n"); + printer->Print( + *vars, + "std::unique_ptr< " + "::grpc::ClientAsyncReaderWriterInterface< $Request$, $Response$>> " + "Async$Method$(::grpc::ClientContext* context, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Indent(); + printer->Print( + *vars, + "return std::unique_ptr< " + "::grpc::ClientAsyncReaderWriterInterface< $Request$, $Response$>>(" + "Async$Method$Raw(context, cq, tag));\n"); + printer->Outdent(); + printer->Print("}\n"); + } + } else { + if (method->NoStreaming()) { + printer->Print( + *vars, + "virtual ::grpc::ClientAsyncResponseReaderInterface< $Response$>* " + "Async$Method$Raw(::grpc::ClientContext* context, " + "const $Request$& request, " + "::grpc::CompletionQueue* cq) = 0;\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print( + *vars, + "virtual ::grpc::ClientWriterInterface< $Request$>*" + " $Method$Raw(" + "::grpc::ClientContext* context, $Response$* response) = 0;\n"); + printer->Print(*vars, + "virtual ::grpc::ClientAsyncWriterInterface< $Request$>*" + " Async$Method$Raw(::grpc::ClientContext* context, " + "$Response$* response, " + "::grpc::CompletionQueue* cq, void* tag) = 0;\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + "virtual ::grpc::ClientReaderInterface< $Response$>* $Method$Raw(" + "::grpc::ClientContext* context, const $Request$& request) = 0;\n"); + printer->Print( + *vars, + "virtual ::grpc::ClientAsyncReaderInterface< $Response$>* " + "Async$Method$Raw(" + "::grpc::ClientContext* context, const $Request$& request, " + "::grpc::CompletionQueue* cq, void* tag) = 0;\n"); + } else if (method->BidiStreaming()) { + printer->Print(*vars, + "virtual ::grpc::ClientReaderWriterInterface< $Request$, " + "$Response$>* " + "$Method$Raw(::grpc::ClientContext* context) = 0;\n"); + printer->Print(*vars, + "virtual ::grpc::ClientAsyncReaderWriterInterface< " + "$Request$, $Response$>* " + "Async$Method$Raw(::grpc::ClientContext* context, " + "::grpc::CompletionQueue* cq, void* tag) = 0;\n"); + } + } +} + +void PrintHeaderClientMethod(Printer *printer, + const Method *method, + std::map *vars, + bool is_public) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + if (is_public) { + if (method->NoStreaming()) { + printer->Print( + *vars, + "::grpc::Status $Method$(::grpc::ClientContext* context, " + "const $Request$& request, $Response$* response) GRPC_OVERRIDE;\n"); + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientAsyncResponseReader< $Response$>> " + "Async$Method$(::grpc::ClientContext* context, " + "const $Request$& request, " + "::grpc::CompletionQueue* cq) {\n"); + printer->Indent(); + printer->Print(*vars, + "return std::unique_ptr< " + "::grpc::ClientAsyncResponseReader< $Response$>>(" + "Async$Method$Raw(context, request, cq));\n"); + printer->Outdent(); + printer->Print("}\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientWriter< $Request$>>" + " $Method$(" + "::grpc::ClientContext* context, $Response$* response) {\n"); + printer->Indent(); + printer->Print(*vars, + "return std::unique_ptr< ::grpc::ClientWriter< $Request$>>" + "($Method$Raw(context, response));\n"); + printer->Outdent(); + printer->Print("}\n"); + printer->Print(*vars, + "std::unique_ptr< ::grpc::ClientAsyncWriter< $Request$>>" + " Async$Method$(::grpc::ClientContext* context, " + "$Response$* response, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Indent(); + printer->Print( + *vars, + "return std::unique_ptr< ::grpc::ClientAsyncWriter< $Request$>>(" + "Async$Method$Raw(context, response, cq, tag));\n"); + printer->Outdent(); + printer->Print("}\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientReader< $Response$>>" + " $Method$(::grpc::ClientContext* context, const $Request$& request)" + " {\n"); + printer->Indent(); + printer->Print( + *vars, + "return std::unique_ptr< ::grpc::ClientReader< $Response$>>" + "($Method$Raw(context, request));\n"); + printer->Outdent(); + printer->Print("}\n"); + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientAsyncReader< $Response$>> " + "Async$Method$(" + "::grpc::ClientContext* context, const $Request$& request, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Indent(); + printer->Print( + *vars, + "return std::unique_ptr< ::grpc::ClientAsyncReader< $Response$>>(" + "Async$Method$Raw(context, request, cq, tag));\n"); + printer->Outdent(); + printer->Print("}\n"); + } else if (method->BidiStreaming()) { + printer->Print( + *vars, + "std::unique_ptr< ::grpc::ClientReaderWriter< $Request$, $Response$>>" + " $Method$(::grpc::ClientContext* context) {\n"); + printer->Indent(); + printer->Print(*vars, + "return std::unique_ptr< " + "::grpc::ClientReaderWriter< $Request$, $Response$>>(" + "$Method$Raw(context));\n"); + printer->Outdent(); + printer->Print("}\n"); + printer->Print(*vars, + "std::unique_ptr< ::grpc::ClientAsyncReaderWriter< " + "$Request$, $Response$>> " + "Async$Method$(::grpc::ClientContext* context, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Indent(); + printer->Print(*vars, + "return std::unique_ptr< " + "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>>(" + "Async$Method$Raw(context, cq, tag));\n"); + printer->Outdent(); + printer->Print("}\n"); + } + } else { + if (method->NoStreaming()) { + printer->Print(*vars, + "::grpc::ClientAsyncResponseReader< $Response$>* " + "Async$Method$Raw(::grpc::ClientContext* context, " + "const $Request$& request, " + "::grpc::CompletionQueue* cq) GRPC_OVERRIDE;\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print(*vars, + "::grpc::ClientWriter< $Request$>* $Method$Raw(" + "::grpc::ClientContext* context, $Response$* response) " + "GRPC_OVERRIDE;\n"); + printer->Print( + *vars, + "::grpc::ClientAsyncWriter< $Request$>* Async$Method$Raw(" + "::grpc::ClientContext* context, $Response$* response, " + "::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print(*vars, + "::grpc::ClientReader< $Response$>* $Method$Raw(" + "::grpc::ClientContext* context, const $Request$& request)" + " GRPC_OVERRIDE;\n"); + printer->Print( + *vars, + "::grpc::ClientAsyncReader< $Response$>* Async$Method$Raw(" + "::grpc::ClientContext* context, const $Request$& request, " + "::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;\n"); + } else if (method->BidiStreaming()) { + printer->Print( + *vars, + "::grpc::ClientReaderWriter< $Request$, $Response$>* " + "$Method$Raw(::grpc::ClientContext* context) GRPC_OVERRIDE;\n"); + printer->Print( + *vars, + "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>* " + "Async$Method$Raw(::grpc::ClientContext* context, " + "::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;\n"); + } + } +} + +void PrintHeaderClientMethodData(Printer *printer, const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + printer->Print(*vars, "const ::grpc::RpcMethod rpcmethod_$Method$_;\n"); +} + +void PrintHeaderServerMethodSync(Printer *printer, const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + printer->Print(method->GetLeadingComments().c_str()); + if (method->NoStreaming()) { + printer->Print(*vars, + "virtual ::grpc::Status $Method$(" + "::grpc::ServerContext* context, const $Request$* request, " + "$Response$* response);\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print(*vars, + "virtual ::grpc::Status $Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReader< $Request$>* reader, " + "$Response$* response);\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print(*vars, + "virtual ::grpc::Status $Method$(" + "::grpc::ServerContext* context, const $Request$* request, " + "::grpc::ServerWriter< $Response$>* writer);\n"); + } else if (method->BidiStreaming()) { + printer->Print( + *vars, + "virtual ::grpc::Status $Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReaderWriter< $Response$, $Request$>* stream);" + "\n"); + } + printer->Print(method->GetTrailingComments().c_str()); +} + +void PrintHeaderServerMethodAsync( + Printer *printer, + const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + printer->Print(*vars, "template \n"); + printer->Print(*vars, + "class WithAsyncMethod_$Method$ : public BaseClass {\n"); + printer->Print( + " private:\n" + " void BaseClassMustBeDerivedFromService(const Service *service) {}\n"); + printer->Print(" public:\n"); + printer->Indent(); + printer->Print(*vars, + "WithAsyncMethod_$Method$() {\n" + " ::grpc::Service::MarkMethodAsync($Idx$);\n" + "}\n"); + printer->Print(*vars, + "~WithAsyncMethod_$Method$() GRPC_OVERRIDE {\n" + " BaseClassMustBeDerivedFromService(this);\n" + "}\n"); + if (method->NoStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, const $Request$* request, " + "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + printer->Print( + *vars, + "void Request$Method$(" + "::grpc::ServerContext* context, $Request$* request, " + "::grpc::ServerAsyncResponseWriter< $Response$>* response, " + "::grpc::CompletionQueue* new_call_cq, " + "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); + printer->Print(*vars, + " ::grpc::Service::RequestAsyncUnary($Idx$, context, " + "request, response, new_call_cq, notification_cq, tag);\n"); + printer->Print("}\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReader< $Request$>* reader, " + "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + printer->Print( + *vars, + "void Request$Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerAsyncReader< $Response$, $Request$>* reader, " + "::grpc::CompletionQueue* new_call_cq, " + "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); + printer->Print(*vars, + " ::grpc::Service::RequestAsyncClientStreaming($Idx$, " + "context, reader, new_call_cq, notification_cq, tag);\n"); + printer->Print("}\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, const $Request$* request, " + "::grpc::ServerWriter< $Response$>* writer) GRPC_FINAL GRPC_OVERRIDE " + "{\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + printer->Print( + *vars, + "void Request$Method$(" + "::grpc::ServerContext* context, $Request$* request, " + "::grpc::ServerAsyncWriter< $Response$>* writer, " + "::grpc::CompletionQueue* new_call_cq, " + "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); + printer->Print( + *vars, + " ::grpc::Service::RequestAsyncServerStreaming($Idx$, " + "context, request, writer, new_call_cq, notification_cq, tag);\n"); + printer->Print("}\n"); + } else if (method->BidiStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReaderWriter< $Response$, $Request$>* stream) " + "GRPC_FINAL GRPC_OVERRIDE {\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + printer->Print( + *vars, + "void Request$Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerAsyncReaderWriter< $Response$, $Request$>* stream, " + "::grpc::CompletionQueue* new_call_cq, " + "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); + printer->Print(*vars, + " ::grpc::Service::RequestAsyncBidiStreaming($Idx$, " + "context, stream, new_call_cq, notification_cq, tag);\n"); + printer->Print("}\n"); + } + printer->Outdent(); + printer->Print(*vars, "};\n"); +} + +void PrintHeaderServerMethodGeneric( + Printer *printer, + const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + printer->Print(*vars, "template \n"); + printer->Print(*vars, + "class WithGenericMethod_$Method$ : public BaseClass {\n"); + printer->Print( + " private:\n" + " void BaseClassMustBeDerivedFromService(const Service *service) {}\n"); + printer->Print(" public:\n"); + printer->Indent(); + printer->Print(*vars, + "WithGenericMethod_$Method$() {\n" + " ::grpc::Service::MarkMethodGeneric($Idx$);\n" + "}\n"); + printer->Print(*vars, + "~WithGenericMethod_$Method$() GRPC_OVERRIDE {\n" + " BaseClassMustBeDerivedFromService(this);\n" + "}\n"); + if (method->NoStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, const $Request$* request, " + "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReader< $Request$>* reader, " + "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, const $Request$* request, " + "::grpc::ServerWriter< $Response$>* writer) GRPC_FINAL GRPC_OVERRIDE " + "{\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + } else if (method->BidiStreaming()) { + printer->Print( + *vars, + "// disable synchronous version of this method\n" + "::grpc::Status $Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReaderWriter< $Response$, $Request$>* stream) " + "GRPC_FINAL GRPC_OVERRIDE {\n" + " abort();\n" + " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" + "}\n"); + } + printer->Outdent(); + printer->Print(*vars, "};\n"); +} + +void PrintHeaderService(Printer *printer, + const Service *service, + std::map *vars) { + (*vars)["Service"] = service->name(); + + printer->Print(service->GetLeadingComments().c_str()); + printer->Print(*vars, + "class $Service$ GRPC_FINAL {\n" + " public:\n"); + printer->Indent(); + + // Client side + printer->Print( + "class StubInterface {\n" + " public:\n"); + printer->Indent(); + printer->Print("virtual ~StubInterface() {}\n"); + for (int i = 0; i < service->method_count(); ++i) { + printer->Print(service->method(i)->GetLeadingComments().c_str()); + PrintHeaderClientMethodInterfaces(printer, service->method(i).get(), vars, true); + printer->Print(service->method(i)->GetTrailingComments().c_str()); + } + printer->Outdent(); + printer->Print("private:\n"); + printer->Indent(); + for (int i = 0; i < service->method_count(); ++i) { + PrintHeaderClientMethodInterfaces(printer, service->method(i).get(), vars, false); + } + printer->Outdent(); + printer->Print("};\n"); + printer->Print( + "class Stub GRPC_FINAL : public StubInterface" + " {\n public:\n"); + printer->Indent(); + printer->Print("Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);\n"); + for (int i = 0; i < service->method_count(); ++i) { + PrintHeaderClientMethod(printer, service->method(i).get(), vars, true); + } + printer->Outdent(); + printer->Print("\n private:\n"); + printer->Indent(); + printer->Print("std::shared_ptr< ::grpc::ChannelInterface> channel_;\n"); + for (int i = 0; i < service->method_count(); ++i) { + PrintHeaderClientMethod(printer, service->method(i).get(), vars, false); + } + for (int i = 0; i < service->method_count(); ++i) { + PrintHeaderClientMethodData(printer, service->method(i).get(), vars); + } + printer->Outdent(); + printer->Print("};\n"); + printer->Print( + "static std::unique_ptr NewStub(const std::shared_ptr< " + "::grpc::ChannelInterface>& channel, " + "const ::grpc::StubOptions& options = ::grpc::StubOptions());\n"); + + printer->Print("\n"); + + // Server side - base + printer->Print( + "class Service : public ::grpc::Service {\n" + " public:\n"); + printer->Indent(); + printer->Print("Service();\n"); + printer->Print("virtual ~Service();\n"); + for (int i = 0; i < service->method_count(); ++i) { + PrintHeaderServerMethodSync(printer, service->method(i).get(), vars); + } + printer->Outdent(); + printer->Print("};\n"); + + // Server side - Asynchronous + for (int i = 0; i < service->method_count(); ++i) { + (*vars)["Idx"] = as_string(i); + PrintHeaderServerMethodAsync(printer, service->method(i).get(), vars); + } + + printer->Print("typedef "); + + for (int i = 0; i < service->method_count(); ++i) { + (*vars)["method_name"] = service->method(i).get()->name(); + printer->Print(*vars, "WithAsyncMethod_$method_name$<"); + } + printer->Print("Service"); + for (int i = 0; i < service->method_count(); ++i) { + printer->Print(" >"); + } + printer->Print(" AsyncService;\n"); + + // Server side - Generic + for (int i = 0; i < service->method_count(); ++i) { + (*vars)["Idx"] = as_string(i); + PrintHeaderServerMethodGeneric(printer, service->method(i).get(), vars); + } + + printer->Outdent(); + printer->Print("};\n"); + printer->Print(service->GetTrailingComments().c_str()); +} + +grpc::string GetHeaderServices(File *file, + const Parameters ¶ms) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + // Package string is empty or ends with a dot. It is used to fully qualify + // method names. + vars["Package"] = file->package(); + if (!file->package().empty()) { + vars["Package"].append("."); + } + + if (!params.services_namespace.empty()) { + vars["services_namespace"] = params.services_namespace; + printer->Print(vars, "\nnamespace $services_namespace$ {\n\n"); + } + + for (int i = 0; i < file->service_count(); ++i) { + PrintHeaderService(printer.get(), file->service(i).get(), &vars); + printer->Print("\n"); + } + + if (!params.services_namespace.empty()) { + printer->Print(vars, "} // namespace $services_namespace$\n\n"); + } + } + return output; +} + +grpc::string GetHeaderEpilogue(File *file, const Parameters & /*params*/) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + vars["filename"] = file->filename(); + vars["filename_identifier"] = FilenameIdentifier(file->filename()); + + if (!file->package().empty()) { + std::vector parts = file->package_parts(); + + for (auto part = parts.rbegin(); part != parts.rend(); part++) { + vars["part"] = *part; + printer->Print(vars, "} // namespace $part$\n"); + } + printer->Print(vars, "\n"); + } + + printer->Print(vars, "\n"); + printer->Print(vars, "#endif // GRPC_$filename_identifier$__INCLUDED\n"); + + printer->Print(file->GetTrailingComments().c_str()); + } + return output; +} + +grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + vars["filename"] = file->filename(); + vars["filename_base"] = file->filename_without_ext(); + vars["message_header_ext"] = file->message_header_ext(); + vars["service_header_ext"] = file->service_header_ext(); + + printer->Print(vars, "// Generated by the gRPC protobuf plugin.\n"); + printer->Print(vars, + "// If you make any local change, they will be lost.\n"); + printer->Print(vars, "// source: $filename$\n\n"); + + printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); + printer->Print(vars, file->additional_headers().c_str()); + printer->Print(vars, "\n"); + } + return output; +} + +grpc::string GetSourceIncludes(File *file, + const Parameters ¶ms) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + static const char *headers_strs[] = { + "grpc++/impl/codegen/async_stream.h", + "grpc++/impl/codegen/async_unary_call.h", + "grpc++/impl/codegen/channel_interface.h", + "grpc++/impl/codegen/client_unary_call.h", + "grpc++/impl/codegen/method_handler_impl.h", + "grpc++/impl/codegen/rpc_service_method.h", + "grpc++/impl/codegen/service_type.h", + "grpc++/impl/codegen/sync_stream.h" + }; + std::vector headers(headers_strs, array_end(headers_strs)); + PrintIncludes(printer.get(), headers, params); + + if (!file->package().empty()) { + std::vector parts = file->package_parts(); + + for (auto part = parts.begin(); part != parts.end(); part++) { + vars["part"] = *part; + printer->Print(vars, "namespace $part$ {\n"); + } + } + + printer->Print(vars, "\n"); + } + return output; +} + +void PrintSourceClientMethod(Printer *printer, + const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + if (method->NoStreaming()) { + printer->Print(*vars, + "::grpc::Status $ns$$Service$::Stub::$Method$(" + "::grpc::ClientContext* context, " + "const $Request$& request, $Response$* response) {\n"); + printer->Print(*vars, + " return ::grpc::BlockingUnaryCall(channel_.get(), " + "rpcmethod_$Method$_, " + "context, request, response);\n" + "}\n\n"); + printer->Print( + *vars, + "::grpc::ClientAsyncResponseReader< $Response$>* " + "$ns$$Service$::Stub::Async$Method$Raw(::grpc::ClientContext* context, " + "const $Request$& request, " + "::grpc::CompletionQueue* cq) {\n"); + printer->Print(*vars, + " return new " + "::grpc::ClientAsyncResponseReader< $Response$>(" + "channel_.get(), cq, " + "rpcmethod_$Method$_, " + "context, request);\n" + "}\n\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print(*vars, + "::grpc::ClientWriter< $Request$>* " + "$ns$$Service$::Stub::$Method$Raw(" + "::grpc::ClientContext* context, $Response$* response) {\n"); + printer->Print(*vars, + " return new ::grpc::ClientWriter< $Request$>(" + "channel_.get(), " + "rpcmethod_$Method$_, " + "context, response);\n" + "}\n\n"); + printer->Print(*vars, + "::grpc::ClientAsyncWriter< $Request$>* " + "$ns$$Service$::Stub::Async$Method$Raw(" + "::grpc::ClientContext* context, $Response$* response, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Print(*vars, + " return new ::grpc::ClientAsyncWriter< $Request$>(" + "channel_.get(), cq, " + "rpcmethod_$Method$_, " + "context, response, tag);\n" + "}\n\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + "::grpc::ClientReader< $Response$>* " + "$ns$$Service$::Stub::$Method$Raw(" + "::grpc::ClientContext* context, const $Request$& request) {\n"); + printer->Print(*vars, + " return new ::grpc::ClientReader< $Response$>(" + "channel_.get(), " + "rpcmethod_$Method$_, " + "context, request);\n" + "}\n\n"); + printer->Print(*vars, + "::grpc::ClientAsyncReader< $Response$>* " + "$ns$$Service$::Stub::Async$Method$Raw(" + "::grpc::ClientContext* context, const $Request$& request, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Print(*vars, + " return new ::grpc::ClientAsyncReader< $Response$>(" + "channel_.get(), cq, " + "rpcmethod_$Method$_, " + "context, request, tag);\n" + "}\n\n"); + } else if (method->BidiStreaming()) { + printer->Print( + *vars, + "::grpc::ClientReaderWriter< $Request$, $Response$>* " + "$ns$$Service$::Stub::$Method$Raw(::grpc::ClientContext* context) {\n"); + printer->Print(*vars, + " return new ::grpc::ClientReaderWriter< " + "$Request$, $Response$>(" + "channel_.get(), " + "rpcmethod_$Method$_, " + "context);\n" + "}\n\n"); + printer->Print( + *vars, + "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>* " + "$ns$$Service$::Stub::Async$Method$Raw(::grpc::ClientContext* context, " + "::grpc::CompletionQueue* cq, void* tag) {\n"); + printer->Print(*vars, + " return new " + "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>(" + "channel_.get(), cq, " + "rpcmethod_$Method$_, " + "context, tag);\n" + "}\n\n"); + } +} + +void PrintSourceServerMethod(Printer *printer, + const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + if (method->NoStreaming()) { + printer->Print(*vars, + "::grpc::Status $ns$$Service$::Service::$Method$(" + "::grpc::ServerContext* context, " + "const $Request$* request, $Response$* response) {\n"); + printer->Print(" (void) context;\n"); + printer->Print(" (void) request;\n"); + printer->Print(" (void) response;\n"); + printer->Print( + " return ::grpc::Status(" + "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); + printer->Print("}\n\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print(*vars, + "::grpc::Status $ns$$Service$::Service::$Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReader< $Request$>* reader, " + "$Response$* response) {\n"); + printer->Print(" (void) context;\n"); + printer->Print(" (void) reader;\n"); + printer->Print(" (void) response;\n"); + printer->Print( + " return ::grpc::Status(" + "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); + printer->Print("}\n\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print(*vars, + "::grpc::Status $ns$$Service$::Service::$Method$(" + "::grpc::ServerContext* context, " + "const $Request$* request, " + "::grpc::ServerWriter< $Response$>* writer) {\n"); + printer->Print(" (void) context;\n"); + printer->Print(" (void) request;\n"); + printer->Print(" (void) writer;\n"); + printer->Print( + " return ::grpc::Status(" + "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); + printer->Print("}\n\n"); + } else if (method->BidiStreaming()) { + printer->Print(*vars, + "::grpc::Status $ns$$Service$::Service::$Method$(" + "::grpc::ServerContext* context, " + "::grpc::ServerReaderWriter< $Response$, $Request$>* " + "stream) {\n"); + printer->Print(" (void) context;\n"); + printer->Print(" (void) stream;\n"); + printer->Print( + " return ::grpc::Status(" + "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); + printer->Print("}\n\n"); + } +} + +void PrintSourceService(Printer *printer, + const Service *service, + std::map *vars) { + (*vars)["Service"] = service->name(); + + printer->Print(*vars, + "static const char* $prefix$$Service$_method_names[] = {\n"); + for (int i = 0; i < service->method_count(); ++i) { + (*vars)["Method"] = service->method(i).get()->name(); + printer->Print(*vars, " \"/$Package$$Service$/$Method$\",\n"); + } + printer->Print(*vars, "};\n\n"); + + printer->Print(*vars, + "std::unique_ptr< $ns$$Service$::Stub> $ns$$Service$::NewStub(" + "const std::shared_ptr< ::grpc::ChannelInterface>& channel, " + "const ::grpc::StubOptions& options) {\n" + " std::unique_ptr< $ns$$Service$::Stub> stub(new " + "$ns$$Service$::Stub(channel));\n" + " return stub;\n" + "}\n\n"); + printer->Print(*vars, + "$ns$$Service$::Stub::Stub(const std::shared_ptr< " + "::grpc::ChannelInterface>& channel)\n"); + printer->Indent(); + printer->Print(": channel_(channel)"); + for (int i = 0; i < service->method_count(); ++i) { + auto method = service->method(i); + (*vars)["Method"] = method->name(); + (*vars)["Idx"] = as_string(i); + if (method->NoStreaming()) { + (*vars)["StreamingType"] = "NORMAL_RPC"; + } else if (method->ClientOnlyStreaming()) { + (*vars)["StreamingType"] = "CLIENT_STREAMING"; + } else if (method->ServerOnlyStreaming()) { + (*vars)["StreamingType"] = "SERVER_STREAMING"; + } else { + (*vars)["StreamingType"] = "BIDI_STREAMING"; + } + printer->Print(*vars, + ", rpcmethod_$Method$_(" + "$prefix$$Service$_method_names[$Idx$], " + "::grpc::RpcMethod::$StreamingType$, " + "channel" + ")\n"); + } + printer->Print("{}\n\n"); + printer->Outdent(); + + for (int i = 0; i < service->method_count(); ++i) { + (*vars)["Idx"] = as_string(i); + PrintSourceClientMethod(printer, service->method(i).get(), vars); + } + + printer->Print(*vars, "$ns$$Service$::Service::Service() {\n"); + printer->Indent(); + printer->Print(*vars, "(void)$prefix$$Service$_method_names;\n"); + for (int i = 0; i < service->method_count(); ++i) { + auto method = service->method(i); + (*vars)["Idx"] = as_string(i); + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + if (method->NoStreaming()) { + printer->Print( + *vars, + "AddMethod(new ::grpc::RpcServiceMethod(\n" + " $prefix$$Service$_method_names[$Idx$],\n" + " ::grpc::RpcMethod::NORMAL_RPC,\n" + " new ::grpc::RpcMethodHandler< $ns$$Service$::Service, " + "$Request$, " + "$Response$>(\n" + " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); + } else if (method->ClientOnlyStreaming()) { + printer->Print( + *vars, + "AddMethod(new ::grpc::RpcServiceMethod(\n" + " $prefix$$Service$_method_names[$Idx$],\n" + " ::grpc::RpcMethod::CLIENT_STREAMING,\n" + " new ::grpc::ClientStreamingHandler< " + "$ns$$Service$::Service, $Request$, $Response$>(\n" + " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + "AddMethod(new ::grpc::RpcServiceMethod(\n" + " $prefix$$Service$_method_names[$Idx$],\n" + " ::grpc::RpcMethod::SERVER_STREAMING,\n" + " new ::grpc::ServerStreamingHandler< " + "$ns$$Service$::Service, $Request$, $Response$>(\n" + " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); + } else if (method->BidiStreaming()) { + printer->Print( + *vars, + "AddMethod(new ::grpc::RpcServiceMethod(\n" + " $prefix$$Service$_method_names[$Idx$],\n" + " ::grpc::RpcMethod::BIDI_STREAMING,\n" + " new ::grpc::BidiStreamingHandler< " + "$ns$$Service$::Service, $Request$, $Response$>(\n" + " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); + } + } + printer->Outdent(); + printer->Print(*vars, "}\n\n"); + printer->Print(*vars, + "$ns$$Service$::Service::~Service() {\n" + "}\n\n"); + for (int i = 0; i < service->method_count(); ++i) { + (*vars)["Idx"] = as_string(i); + PrintSourceServerMethod(printer, service->method(i).get(), vars); + } +} + +grpc::string GetSourceServices(File *file, + const Parameters ¶ms) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + // Package string is empty or ends with a dot. It is used to fully qualify + // method names. + vars["Package"] = file->package(); + if (!file->package().empty()) { + vars["Package"].append("."); + } + if (!params.services_namespace.empty()) { + vars["ns"] = params.services_namespace + "::"; + vars["prefix"] = params.services_namespace; + } else { + vars["ns"] = ""; + vars["prefix"] = ""; + } + + for (int i = 0; i < file->service_count(); ++i) { + PrintSourceService(printer.get(), file->service(i).get(), &vars); + printer->Print("\n"); + } + } + return output; +} + +grpc::string GetSourceEpilogue(File *file, const Parameters & /*params*/) { + grpc::string temp; + + if (!file->package().empty()) { + std::vector parts = file->package_parts(); + + for (auto part = parts.begin(); part != parts.end(); part++) { + temp.append("} // namespace "); + temp.append(*part); + temp.append("\n"); + } + temp.append("\n"); + } + + return temp; +} + +} // namespace grpc_c_generator diff --git a/src/compiler/c_generator.h b/src/compiler/c_generator.h new file mode 100644 index 0000000000000..5969af871cc3e --- /dev/null +++ b/src/compiler/c_generator.h @@ -0,0 +1,73 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_INTERNAL_COMPILER_C_GENERATOR_H +#define GRPC_INTERNAL_COMPILER_C_GENERATOR_H + +#include "src/compiler/config.h" +#include "src/compiler/cpp_generator.h" + +namespace grpc_c_generator { + +using ::grpc::protobuf::ServiceDescriptor; +using ::grpc_cpp_generator::Parameters; +using ::grpc_cpp_generator::File; +using ::grpc::string; + +// Return the prologue of the generated header file. +grpc::string GetHeaderPrologue(File *file, const Parameters ¶ms); + +// Return the includes needed for generated header file. +grpc::string GetHeaderIncludes(File *file, const Parameters ¶ms); + +// Return the includes needed for generated source file. +grpc::string GetSourceIncludes(File *file, const Parameters ¶ms); + +// Return the epilogue of the generated header file. +grpc::string GetHeaderEpilogue(File *file, const Parameters ¶ms); + +// Return the prologue of the generated source file. +grpc::string GetSourcePrologue(File *file, const Parameters ¶ms); + +// Return the services for generated header file. +grpc::string GetHeaderServices(File *file, const Parameters ¶ms); + +// Return the services for generated source file. +grpc::string GetSourceServices(File *file, const Parameters ¶ms); + +// Return the epilogue of the generated source file. +grpc::string GetSourceEpilogue(File *file, const Parameters ¶ms); + +} // namespace grpc_c_generator + +#endif // GRPC_INTERNAL_COMPILER_C_GENERATOR_H diff --git a/src/compiler/c_generator_helpers.h b/src/compiler/c_generator_helpers.h new file mode 100644 index 0000000000000..153969998c36b --- /dev/null +++ b/src/compiler/c_generator_helpers.h @@ -0,0 +1,59 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_INTERNAL_COMPILER_C_GENERATOR_HELPERS_H +#define GRPC_INTERNAL_COMPILER_C_GENERATOR_HELPERS_H + +#include +#include "src/compiler/config.h" +#include "src/compiler/generator_helpers.h" + +namespace grpc_c_generator { + +using ::grpc::protobuf::FileDescriptor; +using ::grpc::protobuf::ServiceDescriptor; +using ::grpc::string; + +inline string MessageHeaderName(const FileDescriptor *file) { + return grpc_generator::FileNameInUpperCamel(file) + ".pbc.h"; +} + +inline string ServiceClassName(const ServiceDescriptor *service) { + const FileDescriptor *file = service->file(); + string prefix = file->options().objc_class_prefix(); + return prefix + service->name(); +} + +} // namespace grpc_c_generator + +#endif // GRPC_INTERNAL_COMPILER_C_GENERATOR_HELPERS_H diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc new file mode 100644 index 0000000000000..d6eb039f7dc64 --- /dev/null +++ b/src/compiler/c_plugin.cc @@ -0,0 +1,287 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +// Generates Objective C gRPC service interface out of Protobuf IDL. + +#include + +#include "src/compiler/config.h" +#include "src/compiler/c_generator.h" +#include "src/compiler/c_generator_helpers.h" +#include "src/compiler/cpp_generator_helpers.h" +#include "src/compiler/cpp_generator.h" + +namespace grpc_c_generator { + +using grpc_cpp_generator::GetCppComments; +using std::map; + +class ProtoBufCMethod : public grpc_cpp_generator::Method { +public: + ProtoBufCMethod(const grpc::protobuf::MethodDescriptor *method) + : method_(method) { } + + grpc::string name() const { return method_->name(); } + + grpc::string input_type_name() const { + return grpc_cpp_generator::ClassName(method_->input_type(), true); + } + + grpc::string output_type_name() const { + return grpc_cpp_generator::ClassName(method_->output_type(), true); + } + + bool NoStreaming() const { + return !method_->client_streaming() && !method_->server_streaming(); + } + + bool ClientOnlyStreaming() const { + return method_->client_streaming() && !method_->server_streaming(); + } + + bool ServerOnlyStreaming() const { + return !method_->client_streaming() && method_->server_streaming(); + } + + bool BidiStreaming() const { + return method_->client_streaming() && method_->server_streaming(); + } + + grpc::string GetLeadingComments() const { + return GetCppComments(method_, true); + } + + grpc::string GetTrailingComments() const { + return GetCppComments(method_, false); + } + +private: + const grpc::protobuf::MethodDescriptor *method_; +}; + +class ProtoBufCService : public grpc_cpp_generator::Service { +public: + ProtoBufCService(const grpc::protobuf::ServiceDescriptor *service) + : service_(service) { } + + grpc::string name() const { return service_->name(); } + + int method_count() const { return service_->method_count(); }; + + std::unique_ptr method(int i) const { + return std::unique_ptr(new ProtoBufCMethod(service_->method(i))); + }; + + grpc::string GetLeadingComments() const { + return GetCppComments(service_, true); + } + + grpc::string GetTrailingComments() const { + return GetCppComments(service_, false); + } + +private: + const grpc::protobuf::ServiceDescriptor *service_; +}; + +class ProtoBufCPrinter : public grpc_cpp_generator::Printer { +public: + ProtoBufCPrinter(grpc::string *str) + : output_stream_(str), printer_(&output_stream_, '$') { } + + void Print(const std::map &vars, + const char *string_template) { + printer_.Print(vars, string_template); + } + + void Print(const char *string) { printer_.Print(string); } + + void Indent() { printer_.Indent(); } + + void Outdent() { printer_.Outdent(); } + +private: + grpc::protobuf::io::StringOutputStream output_stream_; + grpc::protobuf::io::Printer printer_; +}; + +class ProtoBufCFile : public grpc_cpp_generator::File { +public: + ProtoBufCFile(const grpc::protobuf::FileDescriptor *file) : file_(file) { } + + grpc::string filename() const { return file_->name(); } + + grpc::string filename_without_ext() const { + return grpc_generator::StripProto(filename()); + } + + grpc::string message_header_ext() const { return ".pbc.h"; } + + grpc::string service_header_ext() const { return ".grpc.pbc.h"; } + + grpc::string package() const { return file_->package(); } + + std::vector package_parts() const { + return grpc_generator::tokenize(package(), "."); + } + + grpc::string additional_headers() const { return ""; } + + int service_count() const { return file_->service_count(); }; + + std::unique_ptr service(int i) const { + return std::unique_ptr(new ProtoBufCService(file_->service(i))); + } + + std::unique_ptr CreatePrinter(grpc::string *str) const { + return std::unique_ptr(new ProtoBufCPrinter(str)); + } + + grpc::string GetLeadingComments() const { + return GetCppComments(file_, true); + } + + grpc::string GetTrailingComments() const { + return GetCppComments(file_, false); + } + +private: + const grpc::protobuf::FileDescriptor *file_; +}; + +} // namespace grpc_c_generator + +class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { +public: + CGrpcGenerator() {} + virtual ~CGrpcGenerator() {} + + virtual bool Generate(const grpc::protobuf::FileDescriptor *file, + const ::grpc::string ¶meter, + grpc::protobuf::compiler::GeneratorContext *context, + ::grpc::string *error) const { + + if (file->service_count() == 0) { + // No services. Do nothing. + return true; + } + + grpc::string file_name = grpc_generator::StripProto(file->name()); + + // TODO(yifeit): Add c_prefix option in protobuf, and update descriptor + //::grpc::string prefix = file->options().c_prefix(); + grpc::string prefix = ""; + + if (file->options().cc_generic_services()) { + *error = + "C grpc proto compiler plugin does not work with generic " + "services. To generate cpp grpc APIs, please set \"" + "cc_generic_service = false\"."; + return false; + } + + grpc_cpp_generator::Parameters generator_parameters; + generator_parameters.use_system_headers = true; + + grpc_c_generator::ProtoBufCFile pbfile(file); + + if (!parameter.empty()) { + std::vector parameters_list = + grpc_generator::tokenize(parameter, ","); + for (auto parameter_string = parameters_list.begin(); + parameter_string != parameters_list.end(); + parameter_string++) { + std::vector param = + grpc_generator::tokenize(*parameter_string, "="); + if (param[0] == "services_namespace") { + generator_parameters.services_namespace = param[1]; + } else if (param[0] == "use_system_headers") { + if (param[1] == "true") { + generator_parameters.use_system_headers = true; + } else if (param[1] == "false") { + generator_parameters.use_system_headers = false; + } else { + *error = grpc::string("Invalid parameter: ") + *parameter_string; + return false; + } + } else if (param[0] == "grpc_search_path") { + generator_parameters.grpc_search_path = param[1]; + } else { + *error = grpc::string("Unknown parameter: ") + *parameter_string; + return false; + } + } + } + + + grpc::string header_code = + grpc_c_generator::GetHeaderPrologue(&pbfile, generator_parameters) + + grpc_c_generator::GetHeaderIncludes(&pbfile, generator_parameters) + + grpc_c_generator::GetHeaderServices(&pbfile, generator_parameters) + + grpc_c_generator::GetHeaderEpilogue(&pbfile, generator_parameters); + std::unique_ptr header_output( + context->Open(file_name + ".grpc.pbc.h")); + grpc::protobuf::io::CodedOutputStream header_coded_out( + header_output.get()); + header_coded_out.WriteRaw(header_code.data(), header_code.size()); + + grpc::string source_code = + grpc_c_generator::GetSourcePrologue(&pbfile, generator_parameters) + + grpc_c_generator::GetSourceIncludes(&pbfile, generator_parameters) + + grpc_c_generator::GetSourceServices(&pbfile, generator_parameters) + + grpc_c_generator::GetSourceEpilogue(&pbfile, generator_parameters); + std::unique_ptr source_output( + context->Open(file_name + ".grpc.pbc.c")); + grpc::protobuf::io::CodedOutputStream source_coded_out( + source_output.get()); + source_coded_out.WriteRaw(source_code.data(), source_code.size()); + + return true; + } + +private: + // Insert the given code into the given file at the given insertion point. + void Insert(grpc::protobuf::compiler::GeneratorContext *context, + const grpc::string &filename, const grpc::string &insertion_point, + const grpc::string &code) const { + std::unique_ptr output( + context->OpenForInsert(filename, insertion_point)); + grpc::protobuf::io::CodedOutputStream coded_out(output.get()); + coded_out.WriteRaw(code.data(), code.size()); + } +}; + +int main(int argc, char *argv[]) { + CGrpcGenerator generator; + return grpc::protobuf::compiler::PluginMain(argc, argv, &generator); +} From fc1e84791b7f43bd318d717bd77f91282a1f303a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 17:26:15 -0700 Subject: [PATCH 051/202] [CODEGEN] generate correct header includes --- src/compiler/c_generator.cc | 71 +++++++++---------------------------- 1 file changed, 16 insertions(+), 55 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 2de98ddfb7a8b..78fcbb0217e63 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -127,8 +127,8 @@ grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { printer->Print(vars, "// Original file comments:\n"); printer->Print(leading_comments.c_str()); } - printer->Print(vars, "#ifndef GRPC_$filename_identifier$__INCLUDED\n"); - printer->Print(vars, "#define GRPC_$filename_identifier$__INCLUDED\n"); + printer->Print(vars, "#ifndef GRPC_C_$filename_identifier$__INCLUDED\n"); + printer->Print(vars, "#define GRPC_C_$filename_identifier$__INCLUDED\n"); printer->Print(vars, "\n"); printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); printer->Print(vars, "\n"); @@ -145,35 +145,13 @@ grpc::string GetHeaderIncludes(File *file, std::map vars; static const char *headers_strs[] = { - "grpc++/impl/codegen/async_stream.h", - "grpc++/impl/codegen/async_unary_call.h", - "grpc++/impl/codegen/proto_utils.h", - "grpc++/impl/codegen/rpc_method.h", - "grpc++/impl/codegen/service_type.h", - "grpc++/impl/codegen/status.h", - "grpc++/impl/codegen/stub_options.h", - "grpc++/impl/codegen/sync_stream.h" + "grpc_c/status_code.h", + "grpc_c/grpc_c.h", + "grpc_c/context.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); printer->Print(vars, "\n"); - printer->Print(vars, "namespace grpc {\n"); - printer->Print(vars, "class CompletionQueue;\n"); - printer->Print(vars, "class Channel;\n"); - printer->Print(vars, "class RpcService;\n"); - printer->Print(vars, "class ServerCompletionQueue;\n"); - printer->Print(vars, "class ServerContext;\n"); - printer->Print(vars, "} // namespace grpc\n\n"); - - if (!file->package().empty()) { - std::vector parts = file->package_parts(); - - for (auto part = parts.begin(); part != parts.end(); part++) { - vars["part"] = *part; - printer->Print(vars, "namespace $part$ {\n"); - } - printer->Print(vars, "\n"); - } } return output; } @@ -847,7 +825,7 @@ grpc::string GetHeaderEpilogue(File *file, const Parameters & /*params*/) { } printer->Print(vars, "\n"); - printer->Print(vars, "#endif // GRPC_$filename_identifier$__INCLUDED\n"); + printer->Print(vars, "#endif // GRPC_C_$filename_identifier$__INCLUDED\n"); printer->Print(file->GetTrailingComments().c_str()); } @@ -888,27 +866,19 @@ grpc::string GetSourceIncludes(File *file, std::map vars; static const char *headers_strs[] = { - "grpc++/impl/codegen/async_stream.h", - "grpc++/impl/codegen/async_unary_call.h", - "grpc++/impl/codegen/channel_interface.h", - "grpc++/impl/codegen/client_unary_call.h", - "grpc++/impl/codegen/method_handler_impl.h", - "grpc++/impl/codegen/rpc_service_method.h", - "grpc++/impl/codegen/service_type.h", - "grpc++/impl/codegen/sync_stream.h" + "grpc_c/status_code.h", + "grpc_c/grpc_c.h", + "grpc_c/channel.h", + "grpc_c/unary_blocking_call.h", + "grpc_c/unary_async_call.h", + "grpc_c/client_streaming_blocking_call.h", + "grpc_c/server_streaming_blocking_call.h", + "grpc_c/bidi_streaming_blocking_call.h", + "grpc_c/context.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); - if (!file->package().empty()) { - std::vector parts = file->package_parts(); - - for (auto part = parts.begin(); part != parts.end(); part++) { - vars["part"] = *part; - printer->Print(vars, "namespace $part$ {\n"); - } - } - printer->Print(vars, "\n"); } return output; @@ -1219,16 +1189,7 @@ grpc::string GetSourceServices(File *file, grpc::string GetSourceEpilogue(File *file, const Parameters & /*params*/) { grpc::string temp; - if (!file->package().empty()) { - std::vector parts = file->package_parts(); - - for (auto part = parts.begin(); part != parts.end(); part++) { - temp.append("} // namespace "); - temp.append(*part); - temp.append("\n"); - } - temp.append("\n"); - } + temp.append("// END\n"); return temp; } From 839887a8f4691e7e24b78491ebd28a9f24ec1c84 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 8 Jul 2016 17:33:13 -0700 Subject: [PATCH 052/202] [CODEGEN] Generating unary headers. Strip out C++ stuff --- src/compiler/c_generator.cc | 1055 +++++++--------------------- src/compiler/c_generator_helpers.h | 16 +- src/compiler/c_plugin.cc | 18 +- src/compiler/cpp_generator.h | 1 - 4 files changed, 264 insertions(+), 826 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 78fcbb0217e63..3879cfe3a0fd6 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -32,6 +32,7 @@ */ #include +#include #include "src/compiler/c_generator.h" #include "src/compiler/c_generator_helpers.h" @@ -86,6 +87,26 @@ using grpc_cpp_generator::Printer; template T *array_end(T (&array)[N]) { return array + N; } +grpc::string Join(std::vector lines, grpc::string delim) { + std::ostringstream imploded; + std::copy(lines.begin(), lines.end(), std::ostream_iterator(imploded, delim.c_str())); + return imploded.str(); +} + +grpc::string BlockifyComments(grpc::string input) { + constexpr int kMaxCharactersPerLine = 90; + std::vector lines = grpc_generator::tokenize(input, "\n"); + // kill trailing new line + if (lines[lines.size() - 1] == "") lines.pop_back(); + for (grpc::string& str : lines) { + grpc_generator::StripPrefix(&str, "//"); + str.append(std::max(0UL, kMaxCharactersPerLine - str.size()), ' '); + str = "/* " + str + " */"; + } + return Join(lines, "\n"); +} + +// Prints a list of header paths as include directives void PrintIncludes(Printer *printer, const std::vector& headers, const Parameters ¶ms) { std::map vars; @@ -106,784 +127,93 @@ void PrintIncludes(Printer *printer, const std::vector& headers, c } } -grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { - grpc::string output; - { - // Scope the output stream so it closes and finalizes output to the string. - auto printer = file->CreatePrinter(&output); - std::map vars; - - vars["filename"] = file->filename(); - vars["filename_identifier"] = FilenameIdentifier(file->filename()); - vars["filename_base"] = file->filename_without_ext(); - vars["message_header_ext"] = file->message_header_ext(); - - printer->Print(vars, "// Generated by the gRPC protobuf plugin.\n"); - printer->Print(vars, - "// If you make any local change, they will be lost.\n"); - printer->Print(vars, "// source: $filename$\n"); - grpc::string leading_comments = file->GetLeadingComments(); - if (!leading_comments.empty()) { - printer->Print(vars, "// Original file comments:\n"); - printer->Print(leading_comments.c_str()); - } - printer->Print(vars, "#ifndef GRPC_C_$filename_identifier$__INCLUDED\n"); - printer->Print(vars, "#define GRPC_C_$filename_identifier$__INCLUDED\n"); - printer->Print(vars, "\n"); - printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); - printer->Print(vars, "\n"); - } - return output; -} - -grpc::string GetHeaderIncludes(File *file, - const Parameters ¶ms) { - grpc::string output; - { - // Scope the output stream so it closes and finalizes output to the string. - auto printer = file->CreatePrinter(&output); - std::map vars; - - static const char *headers_strs[] = { - "grpc_c/status_code.h", - "grpc_c/grpc_c.h", - "grpc_c/context.h" - }; - std::vector headers(headers_strs, array_end(headers_strs)); - PrintIncludes(printer.get(), headers, params); - printer->Print(vars, "\n"); - } - return output; -} - -void PrintHeaderClientMethodInterfaces( - Printer *printer, const Method *method, - std::map *vars, bool is_public) { - (*vars)["Method"] = method->name(); - (*vars)["Request"] = method->input_type_name(); - (*vars)["Response"] = method->output_type_name(); - - if (is_public) { - if (method->NoStreaming()) { - printer->Print( - *vars, - "virtual ::grpc::Status $Method$(::grpc::ClientContext* context, " - "const $Request$& request, $Response$* response) = 0;\n"); - printer->Print(*vars, - "std::unique_ptr< " - "::grpc::ClientAsyncResponseReaderInterface< $Response$>> " - "Async$Method$(::grpc::ClientContext* context, " - "const $Request$& request, " - "::grpc::CompletionQueue* cq) {\n"); - printer->Indent(); - printer->Print(*vars, - "return std::unique_ptr< " - "::grpc::ClientAsyncResponseReaderInterface< $Response$>>(" - "Async$Method$Raw(context, request, cq));\n"); - printer->Outdent(); - printer->Print("}\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientWriterInterface< $Request$>>" - " $Method$(" - "::grpc::ClientContext* context, $Response$* response) {\n"); - printer->Indent(); - printer->Print( - *vars, - "return std::unique_ptr< ::grpc::ClientWriterInterface< $Request$>>" - "($Method$Raw(context, response));\n"); - printer->Outdent(); - printer->Print("}\n"); - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientAsyncWriterInterface< $Request$>>" - " Async$Method$(::grpc::ClientContext* context, $Response$* " - "response, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Indent(); - printer->Print(*vars, - "return std::unique_ptr< " - "::grpc::ClientAsyncWriterInterface< $Request$>>(" - "Async$Method$Raw(context, response, cq, tag));\n"); - printer->Outdent(); - printer->Print("}\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientReaderInterface< $Response$>>" - " $Method$(::grpc::ClientContext* context, const $Request$& request)" - " {\n"); - printer->Indent(); - printer->Print( - *vars, - "return std::unique_ptr< ::grpc::ClientReaderInterface< $Response$>>" - "($Method$Raw(context, request));\n"); - printer->Outdent(); - printer->Print("}\n"); - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientAsyncReaderInterface< $Response$>> " - "Async$Method$(" - "::grpc::ClientContext* context, const $Request$& request, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Indent(); - printer->Print(*vars, - "return std::unique_ptr< " - "::grpc::ClientAsyncReaderInterface< $Response$>>(" - "Async$Method$Raw(context, request, cq, tag));\n"); - printer->Outdent(); - printer->Print("}\n"); - } else if (method->BidiStreaming()) { - printer->Print(*vars, - "std::unique_ptr< ::grpc::ClientReaderWriterInterface< " - "$Request$, $Response$>> " - "$Method$(::grpc::ClientContext* context) {\n"); - printer->Indent(); - printer->Print( - *vars, - "return std::unique_ptr< " - "::grpc::ClientReaderWriterInterface< $Request$, $Response$>>(" - "$Method$Raw(context));\n"); - printer->Outdent(); - printer->Print("}\n"); - printer->Print( - *vars, - "std::unique_ptr< " - "::grpc::ClientAsyncReaderWriterInterface< $Request$, $Response$>> " - "Async$Method$(::grpc::ClientContext* context, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Indent(); - printer->Print( - *vars, - "return std::unique_ptr< " - "::grpc::ClientAsyncReaderWriterInterface< $Request$, $Response$>>(" - "Async$Method$Raw(context, cq, tag));\n"); - printer->Outdent(); - printer->Print("}\n"); - } - } else { - if (method->NoStreaming()) { - printer->Print( - *vars, - "virtual ::grpc::ClientAsyncResponseReaderInterface< $Response$>* " - "Async$Method$Raw(::grpc::ClientContext* context, " - "const $Request$& request, " - "::grpc::CompletionQueue* cq) = 0;\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print( - *vars, - "virtual ::grpc::ClientWriterInterface< $Request$>*" - " $Method$Raw(" - "::grpc::ClientContext* context, $Response$* response) = 0;\n"); - printer->Print(*vars, - "virtual ::grpc::ClientAsyncWriterInterface< $Request$>*" - " Async$Method$Raw(::grpc::ClientContext* context, " - "$Response$* response, " - "::grpc::CompletionQueue* cq, void* tag) = 0;\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print( - *vars, - "virtual ::grpc::ClientReaderInterface< $Response$>* $Method$Raw(" - "::grpc::ClientContext* context, const $Request$& request) = 0;\n"); - printer->Print( - *vars, - "virtual ::grpc::ClientAsyncReaderInterface< $Response$>* " - "Async$Method$Raw(" - "::grpc::ClientContext* context, const $Request$& request, " - "::grpc::CompletionQueue* cq, void* tag) = 0;\n"); - } else if (method->BidiStreaming()) { - printer->Print(*vars, - "virtual ::grpc::ClientReaderWriterInterface< $Request$, " - "$Response$>* " - "$Method$Raw(::grpc::ClientContext* context) = 0;\n"); - printer->Print(*vars, - "virtual ::grpc::ClientAsyncReaderWriterInterface< " - "$Request$, $Response$>* " - "Async$Method$Raw(::grpc::ClientContext* context, " - "::grpc::CompletionQueue* cq, void* tag) = 0;\n"); - } - } -} - +// Prints declaration of a single client method void PrintHeaderClientMethod(Printer *printer, const Method *method, - std::map *vars, - bool is_public) { + std::map *vars) { (*vars)["Method"] = method->name(); (*vars)["Request"] = method->input_type_name(); (*vars)["Response"] = method->output_type_name(); - if (is_public) { - if (method->NoStreaming()) { - printer->Print( - *vars, - "::grpc::Status $Method$(::grpc::ClientContext* context, " - "const $Request$& request, $Response$* response) GRPC_OVERRIDE;\n"); - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientAsyncResponseReader< $Response$>> " - "Async$Method$(::grpc::ClientContext* context, " - "const $Request$& request, " - "::grpc::CompletionQueue* cq) {\n"); - printer->Indent(); - printer->Print(*vars, - "return std::unique_ptr< " - "::grpc::ClientAsyncResponseReader< $Response$>>(" - "Async$Method$Raw(context, request, cq));\n"); - printer->Outdent(); - printer->Print("}\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientWriter< $Request$>>" - " $Method$(" - "::grpc::ClientContext* context, $Response$* response) {\n"); - printer->Indent(); - printer->Print(*vars, - "return std::unique_ptr< ::grpc::ClientWriter< $Request$>>" - "($Method$Raw(context, response));\n"); - printer->Outdent(); - printer->Print("}\n"); - printer->Print(*vars, - "std::unique_ptr< ::grpc::ClientAsyncWriter< $Request$>>" - " Async$Method$(::grpc::ClientContext* context, " - "$Response$* response, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Indent(); - printer->Print( - *vars, - "return std::unique_ptr< ::grpc::ClientAsyncWriter< $Request$>>(" - "Async$Method$Raw(context, response, cq, tag));\n"); - printer->Outdent(); - printer->Print("}\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientReader< $Response$>>" - " $Method$(::grpc::ClientContext* context, const $Request$& request)" - " {\n"); - printer->Indent(); - printer->Print( - *vars, - "return std::unique_ptr< ::grpc::ClientReader< $Response$>>" - "($Method$Raw(context, request));\n"); - printer->Outdent(); - printer->Print("}\n"); - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientAsyncReader< $Response$>> " - "Async$Method$(" - "::grpc::ClientContext* context, const $Request$& request, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Indent(); - printer->Print( - *vars, - "return std::unique_ptr< ::grpc::ClientAsyncReader< $Response$>>(" - "Async$Method$Raw(context, request, cq, tag));\n"); - printer->Outdent(); - printer->Print("}\n"); - } else if (method->BidiStreaming()) { - printer->Print( - *vars, - "std::unique_ptr< ::grpc::ClientReaderWriter< $Request$, $Response$>>" - " $Method$(::grpc::ClientContext* context) {\n"); - printer->Indent(); - printer->Print(*vars, - "return std::unique_ptr< " - "::grpc::ClientReaderWriter< $Request$, $Response$>>(" - "$Method$Raw(context));\n"); - printer->Outdent(); - printer->Print("}\n"); - printer->Print(*vars, - "std::unique_ptr< ::grpc::ClientAsyncReaderWriter< " - "$Request$, $Response$>> " - "Async$Method$(::grpc::ClientContext* context, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Indent(); - printer->Print(*vars, - "return std::unique_ptr< " - "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>>(" - "Async$Method$Raw(context, cq, tag));\n"); - printer->Outdent(); - printer->Print("}\n"); - } - } else { - if (method->NoStreaming()) { - printer->Print(*vars, - "::grpc::ClientAsyncResponseReader< $Response$>* " - "Async$Method$Raw(::grpc::ClientContext* context, " - "const $Request$& request, " - "::grpc::CompletionQueue* cq) GRPC_OVERRIDE;\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print(*vars, - "::grpc::ClientWriter< $Request$>* $Method$Raw(" - "::grpc::ClientContext* context, $Response$* response) " - "GRPC_OVERRIDE;\n"); - printer->Print( - *vars, - "::grpc::ClientAsyncWriter< $Request$>* Async$Method$Raw(" - "::grpc::ClientContext* context, $Response$* response, " - "::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print(*vars, - "::grpc::ClientReader< $Response$>* $Method$Raw(" - "::grpc::ClientContext* context, const $Request$& request)" - " GRPC_OVERRIDE;\n"); - printer->Print( - *vars, - "::grpc::ClientAsyncReader< $Response$>* Async$Method$Raw(" - "::grpc::ClientContext* context, const $Request$& request, " - "::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;\n"); - } else if (method->BidiStreaming()) { - printer->Print( - *vars, - "::grpc::ClientReaderWriter< $Request$, $Response$>* " - "$Method$Raw(::grpc::ClientContext* context) GRPC_OVERRIDE;\n"); - printer->Print( - *vars, - "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>* " - "Async$Method$Raw(::grpc::ClientContext* context, " - "::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;\n"); - } - } -} - -void PrintHeaderClientMethodData(Printer *printer, const Method *method, - std::map *vars) { - (*vars)["Method"] = method->name(); - printer->Print(*vars, "const ::grpc::RpcMethod rpcmethod_$Method$_;\n"); -} -void PrintHeaderServerMethodSync(Printer *printer, const Method *method, - std::map *vars) { - (*vars)["Method"] = method->name(); - (*vars)["Request"] = method->input_type_name(); - (*vars)["Response"] = method->output_type_name(); - printer->Print(method->GetLeadingComments().c_str()); if (method->NoStreaming()) { - printer->Print(*vars, - "virtual ::grpc::Status $Method$(" - "::grpc::ServerContext* context, const $Request$* request, " - "$Response$* response);\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print(*vars, - "virtual ::grpc::Status $Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReader< $Request$>* reader, " - "$Response$* response);\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print(*vars, - "virtual ::grpc::Status $Method$(" - "::grpc::ServerContext* context, const $Request$* request, " - "::grpc::ServerWriter< $Response$>* writer);\n"); - } else if (method->BidiStreaming()) { - printer->Print( - *vars, - "virtual ::grpc::Status $Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReaderWriter< $Response$, $Request$>* stream);" - "\n"); - } - printer->Print(method->GetTrailingComments().c_str()); -} -void PrintHeaderServerMethodAsync( - Printer *printer, - const Method *method, - std::map *vars) { - (*vars)["Method"] = method->name(); - (*vars)["Request"] = method->input_type_name(); - (*vars)["Response"] = method->output_type_name(); - printer->Print(*vars, "template \n"); - printer->Print(*vars, - "class WithAsyncMethod_$Method$ : public BaseClass {\n"); - printer->Print( - " private:\n" - " void BaseClassMustBeDerivedFromService(const Service *service) {}\n"); - printer->Print(" public:\n"); - printer->Indent(); - printer->Print(*vars, - "WithAsyncMethod_$Method$() {\n" - " ::grpc::Service::MarkMethodAsync($Idx$);\n" - "}\n"); - printer->Print(*vars, - "~WithAsyncMethod_$Method$() GRPC_OVERRIDE {\n" - " BaseClassMustBeDerivedFromService(this);\n" - "}\n"); - if (method->NoStreaming()) { printer->Print( *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, const $Request$* request, " - "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); +R"(GRPC_status $CPrefix$$Service$_$Method$( + GRPC_client_context *const context, + const $CPrefix$$Request$ request, + $CPrefix$$Response$ *response); +)"); printer->Print( *vars, - "void Request$Method$(" - "::grpc::ServerContext* context, $Request$* request, " - "::grpc::ServerAsyncResponseWriter< $Response$>* response, " - "::grpc::CompletionQueue* new_call_cq, " - "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); - printer->Print(*vars, - " ::grpc::Service::RequestAsyncUnary($Idx$, context, " - "request, response, new_call_cq, notification_cq, tag);\n"); - printer->Print("}\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print( - *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReader< $Request$>* reader, " - "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); - printer->Print( - *vars, - "void Request$Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerAsyncReader< $Response$, $Request$>* reader, " - "::grpc::CompletionQueue* new_call_cq, " - "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); - printer->Print(*vars, - " ::grpc::Service::RequestAsyncClientStreaming($Idx$, " - "context, reader, new_call_cq, notification_cq, tag);\n"); - printer->Print("}\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print( - *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, const $Request$* request, " - "::grpc::ServerWriter< $Response$>* writer) GRPC_FINAL GRPC_OVERRIDE " - "{\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); - printer->Print( - *vars, - "void Request$Method$(" - "::grpc::ServerContext* context, $Request$* request, " - "::grpc::ServerAsyncWriter< $Response$>* writer, " - "::grpc::CompletionQueue* new_call_cq, " - "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); - printer->Print( - *vars, - " ::grpc::Service::RequestAsyncServerStreaming($Idx$, " - "context, request, writer, new_call_cq, notification_cq, tag);\n"); - printer->Print("}\n"); - } else if (method->BidiStreaming()) { - printer->Print( - *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReaderWriter< $Response$, $Request$>* stream) " - "GRPC_FINAL GRPC_OVERRIDE {\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); - printer->Print( - *vars, - "void Request$Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerAsyncReaderWriter< $Response$, $Request$>* stream, " - "::grpc::CompletionQueue* new_call_cq, " - "::grpc::ServerCompletionQueue* notification_cq, void *tag) {\n"); - printer->Print(*vars, - " ::grpc::Service::RequestAsyncBidiStreaming($Idx$, " - "context, stream, new_call_cq, notification_cq, tag);\n"); - printer->Print("}\n"); - } - printer->Outdent(); - printer->Print(*vars, "};\n"); -} +R"(GRPC_status $CPrefix$$Service$_$Method$_Async( + GRPC_client_context *const context, + GRPC_completion_queue *cq, + const $CPrefix$$Request$ request); + +void HLW_Greeter_SayHello_Finish( + GRPC_client_async_response_reader *reader, + HLW_HelloResponse *response, /* pointer to store RPC response */ + void *tag); +/* call GRPC_completion_queue_next on the cq to wait for result */ +)"); -void PrintHeaderServerMethodGeneric( - Printer *printer, - const Method *method, - std::map *vars) { - (*vars)["Method"] = method->name(); - (*vars)["Request"] = method->input_type_name(); - (*vars)["Response"] = method->output_type_name(); - printer->Print(*vars, "template \n"); - printer->Print(*vars, - "class WithGenericMethod_$Method$ : public BaseClass {\n"); - printer->Print( - " private:\n" - " void BaseClassMustBeDerivedFromService(const Service *service) {}\n"); - printer->Print(" public:\n"); - printer->Indent(); - printer->Print(*vars, - "WithGenericMethod_$Method$() {\n" - " ::grpc::Service::MarkMethodGeneric($Idx$);\n" - "}\n"); - printer->Print(*vars, - "~WithGenericMethod_$Method$() GRPC_OVERRIDE {\n" - " BaseClassMustBeDerivedFromService(this);\n" - "}\n"); - if (method->NoStreaming()) { - printer->Print( - *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, const $Request$* request, " - "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); } else if (method->ClientOnlyStreaming()) { + printer->Print( *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReader< $Request$>* reader, " - "$Response$* response) GRPC_FINAL GRPC_OVERRIDE {\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); +R"(GRPC_status $CPrefix$$Service$_$Method$( + GRPC_client_context *const context, + const $CPrefix$$Request$ request, + $CPrefix$$Response$ *response); +)"); + } else if (method->ServerOnlyStreaming()) { + printer->Print( *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, const $Request$* request, " - "::grpc::ServerWriter< $Response$>* writer) GRPC_FINAL GRPC_OVERRIDE " - "{\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); +R"(GRPC_status $CPrefix$$Service$_$Method$( + GRPC_client_context *const context, + const $CPrefix$$Request$ request, + $CPrefix$$Response$ *response); +)"); + } else if (method->BidiStreaming()) { + printer->Print( *vars, - "// disable synchronous version of this method\n" - "::grpc::Status $Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReaderWriter< $Response$, $Request$>* stream) " - "GRPC_FINAL GRPC_OVERRIDE {\n" - " abort();\n" - " return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, \"\");\n" - "}\n"); +R"(GRPC_status $CPrefix$$Service$_$Method$( + GRPC_client_context *const context, + const $CPrefix$$Request$ request, + $CPrefix$$Response$ *response); +)"); + } - printer->Outdent(); - printer->Print(*vars, "};\n"); } +// Prints declaration of a single service void PrintHeaderService(Printer *printer, const Service *service, std::map *vars) { (*vars)["Service"] = service->name(); - printer->Print(service->GetLeadingComments().c_str()); - printer->Print(*vars, - "class $Service$ GRPC_FINAL {\n" - " public:\n"); - printer->Indent(); + printer->Print(*vars, BlockifyComments("Service declaration for " + service->name() + "\n").c_str()); + printer->Print(BlockifyComments(service->GetLeadingComments()).c_str()); // Client side - printer->Print( - "class StubInterface {\n" - " public:\n"); - printer->Indent(); - printer->Print("virtual ~StubInterface() {}\n"); - for (int i = 0; i < service->method_count(); ++i) { - printer->Print(service->method(i)->GetLeadingComments().c_str()); - PrintHeaderClientMethodInterfaces(printer, service->method(i).get(), vars, true); - printer->Print(service->method(i)->GetTrailingComments().c_str()); - } - printer->Outdent(); - printer->Print("private:\n"); - printer->Indent(); - for (int i = 0; i < service->method_count(); ++i) { - PrintHeaderClientMethodInterfaces(printer, service->method(i).get(), vars, false); - } - printer->Outdent(); - printer->Print("};\n"); - printer->Print( - "class Stub GRPC_FINAL : public StubInterface" - " {\n public:\n"); - printer->Indent(); - printer->Print("Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);\n"); - for (int i = 0; i < service->method_count(); ++i) { - PrintHeaderClientMethod(printer, service->method(i).get(), vars, true); - } - printer->Outdent(); - printer->Print("\n private:\n"); - printer->Indent(); - printer->Print("std::shared_ptr< ::grpc::ChannelInterface> channel_;\n"); - for (int i = 0; i < service->method_count(); ++i) { - PrintHeaderClientMethod(printer, service->method(i).get(), vars, false); - } - for (int i = 0; i < service->method_count(); ++i) { - PrintHeaderClientMethodData(printer, service->method(i).get(), vars); - } - printer->Outdent(); - printer->Print("};\n"); - printer->Print( - "static std::unique_ptr NewStub(const std::shared_ptr< " - "::grpc::ChannelInterface>& channel, " - "const ::grpc::StubOptions& options = ::grpc::StubOptions());\n"); - - printer->Print("\n"); - - // Server side - base - printer->Print( - "class Service : public ::grpc::Service {\n" - " public:\n"); - printer->Indent(); - printer->Print("Service();\n"); - printer->Print("virtual ~Service();\n"); - for (int i = 0; i < service->method_count(); ++i) { - PrintHeaderServerMethodSync(printer, service->method(i).get(), vars); - } - printer->Outdent(); - printer->Print("};\n"); - - // Server side - Asynchronous - for (int i = 0; i < service->method_count(); ++i) { - (*vars)["Idx"] = as_string(i); - PrintHeaderServerMethodAsync(printer, service->method(i).get(), vars); - } - - printer->Print("typedef "); - - for (int i = 0; i < service->method_count(); ++i) { - (*vars)["method_name"] = service->method(i).get()->name(); - printer->Print(*vars, "WithAsyncMethod_$method_name$<"); - } - printer->Print("Service"); for (int i = 0; i < service->method_count(); ++i) { - printer->Print(" >"); - } - printer->Print(" AsyncService;\n"); - - // Server side - Generic - for (int i = 0; i < service->method_count(); ++i) { - (*vars)["Idx"] = as_string(i); - PrintHeaderServerMethodGeneric(printer, service->method(i).get(), vars); - } - - printer->Outdent(); - printer->Print("};\n"); - printer->Print(service->GetTrailingComments().c_str()); -} - -grpc::string GetHeaderServices(File *file, - const Parameters ¶ms) { - grpc::string output; - { - // Scope the output stream so it closes and finalizes output to the string. - auto printer = file->CreatePrinter(&output); - std::map vars; - // Package string is empty or ends with a dot. It is used to fully qualify - // method names. - vars["Package"] = file->package(); - if (!file->package().empty()) { - vars["Package"].append("."); - } - - if (!params.services_namespace.empty()) { - vars["services_namespace"] = params.services_namespace; - printer->Print(vars, "\nnamespace $services_namespace$ {\n\n"); - } - - for (int i = 0; i < file->service_count(); ++i) { - PrintHeaderService(printer.get(), file->service(i).get(), &vars); - printer->Print("\n"); - } - - if (!params.services_namespace.empty()) { - printer->Print(vars, "} // namespace $services_namespace$\n\n"); - } + printer->Print(BlockifyComments(service->method(i)->GetLeadingComments()).c_str()); + PrintHeaderClientMethod(printer, service->method(i).get(), vars); + printer->Print(BlockifyComments(service->method(i)->GetTrailingComments()).c_str()); } - return output; -} - -grpc::string GetHeaderEpilogue(File *file, const Parameters & /*params*/) { - grpc::string output; - { - // Scope the output stream so it closes and finalizes output to the string. - auto printer = file->CreatePrinter(&output); - std::map vars; - - vars["filename"] = file->filename(); - vars["filename_identifier"] = FilenameIdentifier(file->filename()); - - if (!file->package().empty()) { - std::vector parts = file->package_parts(); - - for (auto part = parts.rbegin(); part != parts.rend(); part++) { - vars["part"] = *part; - printer->Print(vars, "} // namespace $part$\n"); - } - printer->Print(vars, "\n"); - } - - printer->Print(vars, "\n"); - printer->Print(vars, "#endif // GRPC_C_$filename_identifier$__INCLUDED\n"); - - printer->Print(file->GetTrailingComments().c_str()); - } - return output; -} - -grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { - grpc::string output; - { - // Scope the output stream so it closes and finalizes output to the string. - auto printer = file->CreatePrinter(&output); - std::map vars; - - vars["filename"] = file->filename(); - vars["filename_base"] = file->filename_without_ext(); - vars["message_header_ext"] = file->message_header_ext(); - vars["service_header_ext"] = file->service_header_ext(); - - printer->Print(vars, "// Generated by the gRPC protobuf plugin.\n"); - printer->Print(vars, - "// If you make any local change, they will be lost.\n"); - printer->Print(vars, "// source: $filename$\n\n"); - - printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); - printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); - printer->Print(vars, file->additional_headers().c_str()); - printer->Print(vars, "\n"); - } - return output; -} - -grpc::string GetSourceIncludes(File *file, - const Parameters ¶ms) { - grpc::string output; - { - // Scope the output stream so it closes and finalizes output to the string. - auto printer = file->CreatePrinter(&output); - std::map vars; + printer->Print("\n\n"); - static const char *headers_strs[] = { - "grpc_c/status_code.h", - "grpc_c/grpc_c.h", - "grpc_c/channel.h", - "grpc_c/unary_blocking_call.h", - "grpc_c/unary_async_call.h", - "grpc_c/client_streaming_blocking_call.h", - "grpc_c/server_streaming_blocking_call.h", - "grpc_c/bidi_streaming_blocking_call.h", - "grpc_c/context.h" - }; - std::vector headers(headers_strs, array_end(headers_strs)); - PrintIncludes(printer.get(), headers, params); + // Server side - TBD - printer->Print(vars, "\n"); - } - return output; + printer->Print(BlockifyComments(service->GetTrailingComments()).c_str()); } +// Prints implementation of a single client method void PrintSourceClientMethod(Printer *printer, const Method *method, std::map *vars) { @@ -988,62 +318,10 @@ void PrintSourceClientMethod(Printer *printer, void PrintSourceServerMethod(Printer *printer, const Method *method, std::map *vars) { - (*vars)["Method"] = method->name(); - (*vars)["Request"] = method->input_type_name(); - (*vars)["Response"] = method->output_type_name(); - if (method->NoStreaming()) { - printer->Print(*vars, - "::grpc::Status $ns$$Service$::Service::$Method$(" - "::grpc::ServerContext* context, " - "const $Request$* request, $Response$* response) {\n"); - printer->Print(" (void) context;\n"); - printer->Print(" (void) request;\n"); - printer->Print(" (void) response;\n"); - printer->Print( - " return ::grpc::Status(" - "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); - printer->Print("}\n\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print(*vars, - "::grpc::Status $ns$$Service$::Service::$Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReader< $Request$>* reader, " - "$Response$* response) {\n"); - printer->Print(" (void) context;\n"); - printer->Print(" (void) reader;\n"); - printer->Print(" (void) response;\n"); - printer->Print( - " return ::grpc::Status(" - "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); - printer->Print("}\n\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print(*vars, - "::grpc::Status $ns$$Service$::Service::$Method$(" - "::grpc::ServerContext* context, " - "const $Request$* request, " - "::grpc::ServerWriter< $Response$>* writer) {\n"); - printer->Print(" (void) context;\n"); - printer->Print(" (void) request;\n"); - printer->Print(" (void) writer;\n"); - printer->Print( - " return ::grpc::Status(" - "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); - printer->Print("}\n\n"); - } else if (method->BidiStreaming()) { - printer->Print(*vars, - "::grpc::Status $ns$$Service$::Service::$Method$(" - "::grpc::ServerContext* context, " - "::grpc::ServerReaderWriter< $Response$, $Request$>* " - "stream) {\n"); - printer->Print(" (void) context;\n"); - printer->Print(" (void) stream;\n"); - printer->Print( - " return ::grpc::Status(" - "::grpc::StatusCode::UNIMPLEMENTED, \"\");\n"); - printer->Print("}\n\n"); - } + // TBD } +// Prints implementation of all methods in a service void PrintSourceService(Printer *printer, const Service *service, std::map *vars) { @@ -1157,7 +435,11 @@ void PrintSourceService(Printer *printer, } } -grpc::string GetSourceServices(File *file, +// +// PUBLIC +// + +grpc::string GetHeaderServices(File *file, const Parameters ¶ms) { grpc::string output; { @@ -1170,18 +452,100 @@ grpc::string GetSourceServices(File *file, if (!file->package().empty()) { vars["Package"].append("."); } - if (!params.services_namespace.empty()) { - vars["ns"] = params.services_namespace + "::"; - vars["prefix"] = params.services_namespace; - } else { - vars["ns"] = ""; - vars["prefix"] = ""; - } for (int i = 0; i < file->service_count(); ++i) { - PrintSourceService(printer.get(), file->service(i).get(), &vars); + PrintHeaderService(printer.get(), file->service(i).get(), &vars); printer->Print("\n"); } + + } + return output; +} + +grpc::string GetHeaderEpilogue(File *file, const Parameters & /*params*/) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + vars["filename"] = file->filename(); + vars["filename_identifier"] = FilenameIdentifier(file->filename()); + + if (!file->package().empty()) { + std::vector parts = file->package_parts(); + + for (auto part = parts.rbegin(); part != parts.rend(); part++) { + vars["part"] = *part; + } + printer->Print(vars, "\n"); + } + + printer->Print(vars, "\n"); + printer->Print(vars, "#endif /* GRPC_C_$filename_identifier$__INCLUDED */\n"); + + printer->Print(file->GetTrailingComments().c_str()); + } + return output; +} + +grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + vars["filename"] = file->filename(); + vars["filename_base"] = file->filename_without_ext(); + vars["message_header_ext"] = file->message_header_ext(); + vars["service_header_ext"] = file->service_header_ext(); + + printer->Print(vars, BlockifyComments( +R"( +// Generated by the gRPC protobuf plugin. +// If you make any local change, they will be lost. +)").c_str()); + + grpc::string filename; + { + auto printer_filename = file->CreatePrinter(&filename); + printer_filename->Print(vars, "// source: $filename$"); + } + printer->Print(vars, BlockifyComments(filename).c_str()); + + printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); + + printer->Print(vars, file->additional_headers().c_str()); + printer->Print(vars, "\n"); + } + return output; +} + +grpc::string GetSourceIncludes(File *file, + const Parameters ¶ms) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + static const char *headers_strs[] = { + "grpc_c/status_code.h", + "grpc_c/grpc_c.h", + "grpc_c/channel.h", + "grpc_c/unary_blocking_call.h", + "grpc_c/unary_async_call.h", + "grpc_c/client_streaming_blocking_call.h", + "grpc_c/server_streaming_blocking_call.h", + "grpc_c/bidi_streaming_blocking_call.h", + "grpc_c/context.h" + }; + std::vector headers(headers_strs, array_end(headers_strs)); + PrintIncludes(printer.get(), headers, params); + + printer->Print(vars, "\n"); } return output; } @@ -1189,9 +553,92 @@ grpc::string GetSourceServices(File *file, grpc::string GetSourceEpilogue(File *file, const Parameters & /*params*/) { grpc::string temp; - temp.append("// END\n"); + temp.append("/* END */\n"); return temp; } +grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + vars["filename"] = file->filename(); + vars["filename_identifier"] = FilenameIdentifier(file->filename()); + vars["filename_base"] = file->filename_without_ext(); + vars["message_header_ext"] = file->message_header_ext(); + + printer->Print(vars, BlockifyComments( + R"( +// Generated by the gRPC protobuf plugin. +// If you make any local change, they will be lost. +)").c_str()); + + grpc::string filename; + { + auto printer_filename = file->CreatePrinter(&filename); + printer_filename->Print(vars, "// source: $filename$"); + } + printer->Print(vars, BlockifyComments(filename).c_str()); + + grpc::string leading_comments = file->GetLeadingComments(); + if (!leading_comments.empty()) { + printer->Print(vars, BlockifyComments("// Original file comments:\n").c_str()); + printer->Print(BlockifyComments(leading_comments).c_str()); + } + printer->Print(vars, "#ifndef GRPC_C_$filename_identifier$__INCLUDED\n"); + printer->Print(vars, "#define GRPC_C_$filename_identifier$__INCLUDED\n"); + printer->Print(vars, "\n"); + printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(vars, "\n"); + } + return output; +} + +grpc::string GetHeaderIncludes(File *file, + const Parameters ¶ms) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + + static const char *headers_strs[] = { + "grpc_c/status_code.h", + "grpc_c/grpc_c.h", + "grpc_c/context.h" + }; + std::vector headers(headers_strs, array_end(headers_strs)); + PrintIncludes(printer.get(), headers, params); + printer->Print(vars, "\n"); + } + return output; +} + +grpc::string GetSourceServices(File *file, + const Parameters ¶ms) { + grpc::string output; + { + // Scope the output stream so it closes and finalizes output to the string. + auto printer = file->CreatePrinter(&output); + std::map vars; + // Package string is empty or ends with a dot. It is used to fully qualify + // method names. + vars["Package"] = file->package(); + // TODO(yifeit): hook this up to C prefix + vars["CPrefix"] = ""; + if (!file->package().empty()) { + vars["Package"].append("."); + } + + for (int i = 0; i < file->service_count(); ++i) { + PrintSourceService(printer.get(), file->service(i).get(), &vars); + printer->Print("\n"); + } + } + return output; +} + } // namespace grpc_c_generator diff --git a/src/compiler/c_generator_helpers.h b/src/compiler/c_generator_helpers.h index 153969998c36b..b6f7af13e5ec5 100644 --- a/src/compiler/c_generator_helpers.h +++ b/src/compiler/c_generator_helpers.h @@ -40,18 +40,12 @@ namespace grpc_c_generator { -using ::grpc::protobuf::FileDescriptor; -using ::grpc::protobuf::ServiceDescriptor; -using ::grpc::string; -inline string MessageHeaderName(const FileDescriptor *file) { - return grpc_generator::FileNameInUpperCamel(file) + ".pbc.h"; -} - -inline string ServiceClassName(const ServiceDescriptor *service) { - const FileDescriptor *file = service->file(); - string prefix = file->options().objc_class_prefix(); - return prefix + service->name(); +// Get leading or trailing comments in a string. Comment lines start with "// ". +// Leading detached comments are put in in front of leading comments. +template +inline grpc::string GetCComments(const DescriptorType *desc, bool leading) { + return grpc_generator::GetPrefixedComments(desc, leading, "//"); } } // namespace grpc_c_generator diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc index d6eb039f7dc64..08192aef0f4cb 100644 --- a/src/compiler/c_plugin.cc +++ b/src/compiler/c_plugin.cc @@ -43,7 +43,6 @@ namespace grpc_c_generator { -using grpc_cpp_generator::GetCppComments; using std::map; class ProtoBufCMethod : public grpc_cpp_generator::Method { @@ -54,11 +53,11 @@ class ProtoBufCMethod : public grpc_cpp_generator::Method { grpc::string name() const { return method_->name(); } grpc::string input_type_name() const { - return grpc_cpp_generator::ClassName(method_->input_type(), true); + return method_->input_type()->name(); } grpc::string output_type_name() const { - return grpc_cpp_generator::ClassName(method_->output_type(), true); + return method_->output_type()->name(); } bool NoStreaming() const { @@ -78,11 +77,11 @@ class ProtoBufCMethod : public grpc_cpp_generator::Method { } grpc::string GetLeadingComments() const { - return GetCppComments(method_, true); + return GetCComments(method_, true); } grpc::string GetTrailingComments() const { - return GetCppComments(method_, false); + return GetCComments(method_, false); } private: @@ -103,11 +102,11 @@ class ProtoBufCService : public grpc_cpp_generator::Service { }; grpc::string GetLeadingComments() const { - return GetCppComments(service_, true); + return GetCComments(service_, true); } grpc::string GetTrailingComments() const { - return GetCppComments(service_, false); + return GetCComments(service_, false); } private: @@ -168,11 +167,11 @@ class ProtoBufCFile : public grpc_cpp_generator::File { } grpc::string GetLeadingComments() const { - return GetCppComments(file_, true); + return GetCComments(file_, true); } grpc::string GetTrailingComments() const { - return GetCppComments(file_, false); + return GetCComments(file_, false); } private: @@ -243,7 +242,6 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { } } - grpc::string header_code = grpc_c_generator::GetHeaderPrologue(&pbfile, generator_parameters) + grpc_c_generator::GetHeaderIncludes(&pbfile, generator_parameters) + diff --git a/src/compiler/cpp_generator.h b/src/compiler/cpp_generator.h index 2a003b106959d..5aa42f3ba23f9 100644 --- a/src/compiler/cpp_generator.h +++ b/src/compiler/cpp_generator.h @@ -56,7 +56,6 @@ namespace grpc_cpp_generator { // Contains all the parameters that are parsed from the command line. struct Parameters { - // Puts the service into a namespace grpc::string services_namespace; // Use system includes (<>) or local includes ("") bool use_system_headers; From 557c8c9f6c506df15679ed7ddd594f973fa0975c Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 8 Jul 2016 17:38:33 -0700 Subject: [PATCH 053/202] [CODEGEN] async unary --- src/compiler/c_generator.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 3879cfe3a0fd6..8238341c58fca 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -139,21 +139,23 @@ void PrintHeaderClientMethod(Printer *printer, printer->Print( *vars, -R"(GRPC_status $CPrefix$$Service$_$Method$( +R"( +GRPC_status $CPrefix$$Service$_$Method$( GRPC_client_context *const context, const $CPrefix$$Request$ request, $CPrefix$$Response$ *response); )"); printer->Print( *vars, -R"(GRPC_status $CPrefix$$Service$_$Method$_Async( +R"( +GRPC_status $CPrefix$$Service$_$Method$_Async( GRPC_client_context *const context, GRPC_completion_queue *cq, const $CPrefix$$Request$ request); -void HLW_Greeter_SayHello_Finish( +void $CPrefix$$Service$_$Method$_Finish( GRPC_client_async_response_reader *reader, - HLW_HelloResponse *response, /* pointer to store RPC response */ + $CPrefix$$Response$ *response, /* pointer to store RPC response */ void *tag); /* call GRPC_completion_queue_next on the cq to wait for result */ )"); From dc9a44c867066fdd1e7003263e416408d63a7dda Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 8 Jul 2016 17:39:22 -0700 Subject: [PATCH 054/202] [CODEGEN] async unary --- src/compiler/c_generator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 8238341c58fca..bfc092ab41ba3 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -148,7 +148,7 @@ GRPC_status $CPrefix$$Service$_$Method$( printer->Print( *vars, R"( -GRPC_status $CPrefix$$Service$_$Method$_Async( +GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( GRPC_client_context *const context, GRPC_completion_queue *cq, const $CPrefix$$Request$ request); From 62884db1605d7407f75b75f7d8017c3455bb5d1a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 17:27:14 -0700 Subject: [PATCH 055/202] [CODEGEN] Generate all client-side API declarations --- src/compiler/c_generator.cc | 313 +++++++++++++----------------------- 1 file changed, 114 insertions(+), 199 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index bfc092ab41ba3..c9b95a934795d 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -136,10 +136,12 @@ void PrintHeaderClientMethod(Printer *printer, (*vars)["Response"] = method->output_type_name(); if (method->NoStreaming()) { + // Unary printer->Print( *vars, R"( +/* Sync */ GRPC_status $CPrefix$$Service$_$Method$( GRPC_client_context *const context, const $CPrefix$$Request$ request, @@ -148,6 +150,7 @@ GRPC_status $CPrefix$$Service$_$Method$( printer->Print( *vars, R"( +/* Async */ GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( GRPC_client_context *const context, GRPC_completion_queue *cq, @@ -155,39 +158,135 @@ GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( void $CPrefix$$Service$_$Method$_Finish( GRPC_client_async_response_reader *reader, - $CPrefix$$Response$ *response, /* pointer to store RPC response */ + $CPrefix$$Response$ *response, void *tag); /* call GRPC_completion_queue_next on the cq to wait for result */ )"); } else if (method->ClientOnlyStreaming()) { + // Client streaming printer->Print( *vars, -R"(GRPC_status $CPrefix$$Service$_$Method$( + R"( +/* Sync */ +GRPC_client_writer $CPrefix$$Service$_$Method$( GRPC_client_context *const context, - const $CPrefix$$Request$ request, $CPrefix$$Response$ *response); + +/* Return value of true means write succeeded */ +bool $CPrefix$$Service$_$Method$_Write( + GRPC_client_writer *writer, + $CPrefix$$Request$ request); + +/* Terminating the writer takes care of ending the call, freeing the writer. */ +/* Returns call status in the context object. */ +void GRPC_client_writer_terminate(GRPC_client_writer *writer); +)"); + + printer->Print( + *vars, + R"( +/* Async */ +GRPC_client_async_writer *$CPrefix$$Service$_$Method$_Async( + GRPC_channel *channel, + GRPC_client_context *const context, + GRPC_completion_queue *cq); + +void $CPrefix$$Service$_$Method$_Write_Async( + GRPC_client_async_writer *writer, + const $CPrefix$$Request$ request, + void *tag); + +void $CPrefix$$Service$_$Method$_Finish( + GRPC_client_async_writer *writer, + $CPrefix$$Response$ *response, + void *tag); +/* call GRPC_completion_queue_next on the cq to wait for result */ +/* the writer object is automatically freed when the request ends */ )"); } else if (method->ServerOnlyStreaming()) { + // Server streaming printer->Print( *vars, -R"(GRPC_status $CPrefix$$Service$_$Method$( +R"( +/* Sync */ +GRPC_client_reader $CPrefix$$Service$_$Method$( GRPC_client_context *const context, - const $CPrefix$$Request$ request, + $CPrefix$$Request$ request); + +/* Return value of true means write succeeded */ +bool $CPrefix$$Service$_$Method$_Read( + GRPC_client_reader *reader, $CPrefix$$Response$ *response); +)"); + printer->Print( + *vars, +R"( +/* Async */ +GRPC_client_async_reader *$CPrefix$$Service$_$Method$_Async( + GRPC_channel *channel, + GRPC_client_context *const context, + GRPC_completion_queue *cq, + const $CPrefix$$Request$ request); + +void $CPrefix$$Service$_$Method$_Read_Async( + GRPC_client_async_reader *reader, + $CPrefix$$Response$ *response, + void *tag); + +void $CPrefix$$Service$_$Method$_Finish( + GRPC_client_async_reader *reader, + void *tag); +/* call GRPC_completion_queue_next on the cq to wait for result */ +/* the writer object is automatically freed when the request ends */ )"); } else if (method->BidiStreaming()) { + // Bidi printer->Print( *vars, -R"(GRPC_status $CPrefix$$Service$_$Method$( - GRPC_client_context *const context, - const $CPrefix$$Request$ request, +R"( +/* Sync */ +GRPC_client_reader_writer *$CPrefix$$Service$_$Method$( + GRPC_channel *channel, + GRPC_client_context *const context); + +bool $CPrefix$$Service$_$Method$_Read( + GRPC_client_reader_writer *reader_writer, $CPrefix$$Response$ *response); + +bool $CPrefix$$Service$_$Method$_Write( + GRPC_client_reader_writer *reader_writer, + $CPrefix$$Request$ request); +)"); + + printer->Print( + *vars, + R"( +/* Async */ +GRPC_client_async_reader_writer *$CPrefix$$Service$_$Method$_Async( + GRPC_channel *channel, + GRPC_client_context *const context); + +void $CPrefix$$Service$_$Method$_Read_Async( + GRPC_client_async_reader_writer *reader_writer, + $CPrefix$$Response$ *response, + void *tag); + +void $CPrefix$$Service$_$Method$_Write_Async( + GRPC_client_async_reader_writer *reader_writer, + $CPrefix$$Request$ request, + void *tag); + +void $CPrefix$$Service$_$Method$_Finish( + GRPC_client_async_reader_writer *reader_writer, + void *tag); +/* call GRPC_completion_queue_next on the cq to wait for result */ +/* the reader-writer object is automatically freed when the request ends */ )"); } @@ -223,97 +322,13 @@ void PrintSourceClientMethod(Printer *printer, (*vars)["Request"] = method->input_type_name(); (*vars)["Response"] = method->output_type_name(); if (method->NoStreaming()) { - printer->Print(*vars, - "::grpc::Status $ns$$Service$::Stub::$Method$(" - "::grpc::ClientContext* context, " - "const $Request$& request, $Response$* response) {\n"); - printer->Print(*vars, - " return ::grpc::BlockingUnaryCall(channel_.get(), " - "rpcmethod_$Method$_, " - "context, request, response);\n" - "}\n\n"); - printer->Print( - *vars, - "::grpc::ClientAsyncResponseReader< $Response$>* " - "$ns$$Service$::Stub::Async$Method$Raw(::grpc::ClientContext* context, " - "const $Request$& request, " - "::grpc::CompletionQueue* cq) {\n"); - printer->Print(*vars, - " return new " - "::grpc::ClientAsyncResponseReader< $Response$>(" - "channel_.get(), cq, " - "rpcmethod_$Method$_, " - "context, request);\n" - "}\n\n"); + } else if (method->ClientOnlyStreaming()) { - printer->Print(*vars, - "::grpc::ClientWriter< $Request$>* " - "$ns$$Service$::Stub::$Method$Raw(" - "::grpc::ClientContext* context, $Response$* response) {\n"); - printer->Print(*vars, - " return new ::grpc::ClientWriter< $Request$>(" - "channel_.get(), " - "rpcmethod_$Method$_, " - "context, response);\n" - "}\n\n"); - printer->Print(*vars, - "::grpc::ClientAsyncWriter< $Request$>* " - "$ns$$Service$::Stub::Async$Method$Raw(" - "::grpc::ClientContext* context, $Response$* response, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Print(*vars, - " return new ::grpc::ClientAsyncWriter< $Request$>(" - "channel_.get(), cq, " - "rpcmethod_$Method$_, " - "context, response, tag);\n" - "}\n\n"); + } else if (method->ServerOnlyStreaming()) { - printer->Print( - *vars, - "::grpc::ClientReader< $Response$>* " - "$ns$$Service$::Stub::$Method$Raw(" - "::grpc::ClientContext* context, const $Request$& request) {\n"); - printer->Print(*vars, - " return new ::grpc::ClientReader< $Response$>(" - "channel_.get(), " - "rpcmethod_$Method$_, " - "context, request);\n" - "}\n\n"); - printer->Print(*vars, - "::grpc::ClientAsyncReader< $Response$>* " - "$ns$$Service$::Stub::Async$Method$Raw(" - "::grpc::ClientContext* context, const $Request$& request, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Print(*vars, - " return new ::grpc::ClientAsyncReader< $Response$>(" - "channel_.get(), cq, " - "rpcmethod_$Method$_, " - "context, request, tag);\n" - "}\n\n"); + } else if (method->BidiStreaming()) { - printer->Print( - *vars, - "::grpc::ClientReaderWriter< $Request$, $Response$>* " - "$ns$$Service$::Stub::$Method$Raw(::grpc::ClientContext* context) {\n"); - printer->Print(*vars, - " return new ::grpc::ClientReaderWriter< " - "$Request$, $Response$>(" - "channel_.get(), " - "rpcmethod_$Method$_, " - "context);\n" - "}\n\n"); - printer->Print( - *vars, - "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>* " - "$ns$$Service$::Stub::Async$Method$Raw(::grpc::ClientContext* context, " - "::grpc::CompletionQueue* cq, void* tag) {\n"); - printer->Print(*vars, - " return new " - "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>(" - "channel_.get(), cq, " - "rpcmethod_$Method$_, " - "context, tag);\n" - "}\n\n"); + } } @@ -329,112 +344,12 @@ void PrintSourceService(Printer *printer, std::map *vars) { (*vars)["Service"] = service->name(); - printer->Print(*vars, - "static const char* $prefix$$Service$_method_names[] = {\n"); - for (int i = 0; i < service->method_count(); ++i) { - (*vars)["Method"] = service->method(i).get()->name(); - printer->Print(*vars, " \"/$Package$$Service$/$Method$\",\n"); - } - printer->Print(*vars, "};\n\n"); - - printer->Print(*vars, - "std::unique_ptr< $ns$$Service$::Stub> $ns$$Service$::NewStub(" - "const std::shared_ptr< ::grpc::ChannelInterface>& channel, " - "const ::grpc::StubOptions& options) {\n" - " std::unique_ptr< $ns$$Service$::Stub> stub(new " - "$ns$$Service$::Stub(channel));\n" - " return stub;\n" - "}\n\n"); - printer->Print(*vars, - "$ns$$Service$::Stub::Stub(const std::shared_ptr< " - "::grpc::ChannelInterface>& channel)\n"); - printer->Indent(); - printer->Print(": channel_(channel)"); - for (int i = 0; i < service->method_count(); ++i) { - auto method = service->method(i); - (*vars)["Method"] = method->name(); - (*vars)["Idx"] = as_string(i); - if (method->NoStreaming()) { - (*vars)["StreamingType"] = "NORMAL_RPC"; - } else if (method->ClientOnlyStreaming()) { - (*vars)["StreamingType"] = "CLIENT_STREAMING"; - } else if (method->ServerOnlyStreaming()) { - (*vars)["StreamingType"] = "SERVER_STREAMING"; - } else { - (*vars)["StreamingType"] = "BIDI_STREAMING"; - } - printer->Print(*vars, - ", rpcmethod_$Method$_(" - "$prefix$$Service$_method_names[$Idx$], " - "::grpc::RpcMethod::$StreamingType$, " - "channel" - ")\n"); - } - printer->Print("{}\n\n"); - printer->Outdent(); - + printer->Print(*vars, BlockifyComments("Service implementation for " + service->name() + "\n\n").c_str()); for (int i = 0; i < service->method_count(); ++i) { (*vars)["Idx"] = as_string(i); PrintSourceClientMethod(printer, service->method(i).get(), vars); } - printer->Print(*vars, "$ns$$Service$::Service::Service() {\n"); - printer->Indent(); - printer->Print(*vars, "(void)$prefix$$Service$_method_names;\n"); - for (int i = 0; i < service->method_count(); ++i) { - auto method = service->method(i); - (*vars)["Idx"] = as_string(i); - (*vars)["Method"] = method->name(); - (*vars)["Request"] = method->input_type_name(); - (*vars)["Response"] = method->output_type_name(); - if (method->NoStreaming()) { - printer->Print( - *vars, - "AddMethod(new ::grpc::RpcServiceMethod(\n" - " $prefix$$Service$_method_names[$Idx$],\n" - " ::grpc::RpcMethod::NORMAL_RPC,\n" - " new ::grpc::RpcMethodHandler< $ns$$Service$::Service, " - "$Request$, " - "$Response$>(\n" - " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); - } else if (method->ClientOnlyStreaming()) { - printer->Print( - *vars, - "AddMethod(new ::grpc::RpcServiceMethod(\n" - " $prefix$$Service$_method_names[$Idx$],\n" - " ::grpc::RpcMethod::CLIENT_STREAMING,\n" - " new ::grpc::ClientStreamingHandler< " - "$ns$$Service$::Service, $Request$, $Response$>(\n" - " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); - } else if (method->ServerOnlyStreaming()) { - printer->Print( - *vars, - "AddMethod(new ::grpc::RpcServiceMethod(\n" - " $prefix$$Service$_method_names[$Idx$],\n" - " ::grpc::RpcMethod::SERVER_STREAMING,\n" - " new ::grpc::ServerStreamingHandler< " - "$ns$$Service$::Service, $Request$, $Response$>(\n" - " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); - } else if (method->BidiStreaming()) { - printer->Print( - *vars, - "AddMethod(new ::grpc::RpcServiceMethod(\n" - " $prefix$$Service$_method_names[$Idx$],\n" - " ::grpc::RpcMethod::BIDI_STREAMING,\n" - " new ::grpc::BidiStreamingHandler< " - "$ns$$Service$::Service, $Request$, $Response$>(\n" - " std::mem_fn(&$ns$$Service$::Service::$Method$), this)));\n"); - } - } - printer->Outdent(); - printer->Print(*vars, "}\n\n"); - printer->Print(*vars, - "$ns$$Service$::Service::~Service() {\n" - "}\n\n"); - for (int i = 0; i < service->method_count(); ++i) { - (*vars)["Idx"] = as_string(i); - PrintSourceServerMethod(printer, service->method(i).get(), vars); - } } // @@ -542,7 +457,7 @@ grpc::string GetSourceIncludes(File *file, "grpc_c/client_streaming_blocking_call.h", "grpc_c/server_streaming_blocking_call.h", "grpc_c/bidi_streaming_blocking_call.h", - "grpc_c/context.h" + "grpc_c/client_context.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); @@ -610,7 +525,7 @@ grpc::string GetHeaderIncludes(File *file, static const char *headers_strs[] = { "grpc_c/status_code.h", "grpc_c/grpc_c.h", - "grpc_c/context.h" + "grpc_c/client_context.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); From 77b0eb682d56e1a229a8ae77008eec6144d5ec89 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 15:18:45 -0700 Subject: [PATCH 056/202] [CODEGEN] Add back lost comment --- src/compiler/cpp_generator.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/cpp_generator.h b/src/compiler/cpp_generator.h index 5aa42f3ba23f9..2a003b106959d 100644 --- a/src/compiler/cpp_generator.h +++ b/src/compiler/cpp_generator.h @@ -56,6 +56,7 @@ namespace grpc_cpp_generator { // Contains all the parameters that are parsed from the command line. struct Parameters { + // Puts the service into a namespace grpc::string services_namespace; // Use system includes (<>) or local includes ("") bool use_system_headers; From da5ca90d59ff4f3c4e1a7d5e7eed66a17f9881e9 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 13:04:02 -0700 Subject: [PATCH 057/202] Add build.yaml definitions for codegen --- build.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/build.yaml b/build.yaml index c39aea2b43616..e23bb99c275c7 100644 --- a/build.yaml +++ b/build.yaml @@ -1110,6 +1110,8 @@ libs: language: c++ headers: - src/compiler/config.h + - src/compiler/c_generator.h + - src/compiler/c_generator_helpers.h - src/compiler/cpp_generator.h - src/compiler/cpp_generator_helpers.h - src/compiler/csharp_generator.h @@ -1125,6 +1127,7 @@ libs: - src/compiler/ruby_generator_map-inl.h - src/compiler/ruby_generator_string-inl.h src: + - src/compiler/c_generator.cc - src/compiler/cpp_generator.cc - src/compiler/csharp_generator.cc - src/compiler/node_generator.cc @@ -2745,6 +2748,16 @@ targets: - gpr_test_util - gpr - grpc++_test_config +- name: grpc_c_plugin + build: protoc + language: c++ + src: + - src/compiler/c_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{06F2EB11-35DA-483D-AB0A-BC420D97B18C}' - name: grpc_cpp_plugin build: protoc language: c++ From 68a6eb50dd67e5979e783d8905f013cd23dd8f40 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 13:50:34 -0700 Subject: [PATCH 058/202] Making APIs more streamlined. Response object is now a void pointer at the runtime level. What to do with it is totally up to the serialization implementations. --- include/grpc_c/bidi_streaming_blocking_call.h | 5 +- .../grpc_c/client_streaming_blocking_call.h | 5 +- include/grpc_c/serialization.h | 2 +- .../grpc_c/server_streaming_blocking_call.h | 5 +- include/grpc_c/unary_async_call.h | 4 +- include/grpc_c/unary_blocking_call.h | 5 +- src/c/bidi_streaming_blocking_call.c | 9 ++- src/c/call_ops.c | 20 +++--- src/c/call_ops.h | 8 +-- src/c/client_context.c | 6 +- src/c/client_context.h | 6 +- src/c/client_streaming_blocking_call.c | 7 +- src/c/id_serialization.c | 6 +- src/c/id_serialization.h | 2 +- src/c/server_streaming_blocking_call.c | 7 +- src/c/unary_async_call.c | 10 +-- src/c/unary_blocking_call.c | 8 ++- test/c/end2end/end2end_test.cc | 71 ++++++++++--------- 18 files changed, 95 insertions(+), 91 deletions(-) diff --git a/include/grpc_c/bidi_streaming_blocking_call.h b/include/grpc_c/bidi_streaming_blocking_call.h index e5c7a8f255fdb..97f62d822da0e 100644 --- a/include/grpc_c/bidi_streaming_blocking_call.h +++ b/include/grpc_c/bidi_streaming_blocking_call.h @@ -37,11 +37,10 @@ #include -GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, +GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context); -bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader, GRPC_message *response); +bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader, void *response); bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request); diff --git a/include/grpc_c/client_streaming_blocking_call.h b/include/grpc_c/client_streaming_blocking_call.h index 0cd582bda9c5d..2e7a23dee7bbc 100644 --- a/include/grpc_c/client_streaming_blocking_call.h +++ b/include/grpc_c/client_streaming_blocking_call.h @@ -37,10 +37,9 @@ #include -GRPC_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, +GRPC_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, - GRPC_message *response); + void *response); bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC_message request); diff --git a/include/grpc_c/serialization.h b/include/grpc_c/serialization.h index 457718452b3cc..9545cdcab62f7 100644 --- a/include/grpc_c/serialization.h +++ b/include/grpc_c/serialization.h @@ -38,6 +38,6 @@ #include typedef void (*GRPC_serializer)(const GRPC_message input, GRPC_message *output); -typedef void (*GRPC_deserializer)(const GRPC_message input, GRPC_message *output); +typedef void (*GRPC_deserializer)(const GRPC_message input, void *output); #endif /* GRPC_C_SERIALIZATION_PUBLIC_H */ diff --git a/include/grpc_c/server_streaming_blocking_call.h b/include/grpc_c/server_streaming_blocking_call.h index 2b52734938233..8527b4d97ac68 100644 --- a/include/grpc_c/server_streaming_blocking_call.h +++ b/include/grpc_c/server_streaming_blocking_call.h @@ -37,12 +37,11 @@ #include -GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, +GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, const GRPC_message request); -bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_message *response); +bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *response); /* Terminating the writer takes care of ending the call, freeing the writer. */ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); diff --git a/include/grpc_c/unary_async_call.h b/include/grpc_c/unary_async_call.h index 0dd0055900b3b..c8bcc7cef2c1c 100644 --- a/include/grpc_c/unary_async_call.h +++ b/include/grpc_c/unary_async_call.h @@ -38,12 +38,12 @@ #include #include -GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, +GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue *cq, const GRPC_method rpc_method, const GRPC_message request, GRPC_client_context *const context); -void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_message *response, void *tag); +void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag); void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); diff --git a/include/grpc_c/unary_blocking_call.h b/include/grpc_c/unary_blocking_call.h index fc7c6c0902bc2..57784653b309a 100644 --- a/include/grpc_c/unary_blocking_call.h +++ b/include/grpc_c/unary_blocking_call.h @@ -37,10 +37,9 @@ #include -GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, - const GRPC_method *const rpc_method, +GRPC_status GRPC_unary_blocking_call(const GRPC_method *const rpc_method, GRPC_client_context *const context, const GRPC_message message, - GRPC_message *response); + void *response); #endif /* GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H */ diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index a8358cd218f9e..ccf34f6024084 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -40,11 +40,10 @@ #include "tag.h" #include "completion_queue.h" -GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, - GRPC_client_context *const context) { +GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, + GRPC_client_context *const context) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(channel, + grpc_call *call = grpc_channel_create_call(context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, @@ -79,7 +78,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(GRPC_channel *chann } } -bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, GRPC_message *response) { +bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, void *response) { grpc_call_op_set set_meta = { { grpc_op_recv_metadata, diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 6323acc9fa100..a904ee66eac14 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -36,7 +36,7 @@ #include #include -static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op->flags = 0; @@ -53,11 +53,11 @@ const grpc_op_manager grpc_op_send_metadata = { op_send_metadata_finish }; -static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_MESSAGE; grpc_message serialized; - context->serialize(message, &serialized); + context->serialization_impl.serialize(message, &serialized); gpr_slice slice = gpr_slice_from_copied_buffer(serialized.data, serialized.length); op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); @@ -79,7 +79,7 @@ const grpc_op_manager grpc_op_send_object = { op_send_object_finish }; -static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { if (context->initial_metadata_received) return false; op->op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array_init(&context->recv_metadata_array); @@ -98,7 +98,7 @@ const grpc_op_manager grpc_op_recv_metadata = { op_recv_metadata_finish }; -static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { set->message_received = false; set->response = response; op->op = GRPC_OP_RECV_MESSAGE; @@ -121,7 +121,7 @@ static void op_recv_object_finish(grpc_client_context *context, grpc_call_op_set uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); size_t len = GPR_SLICE_LENGTH(slice_recv); - context->deserialize((grpc_message) { resp, len }, set->response); + context->serialization_impl.deserialize((grpc_message) { resp, len }, set->response); gpr_slice_unref(slice_recv); grpc_byte_buffer_reader_destroy(&reader); @@ -135,7 +135,7 @@ const grpc_op_manager grpc_op_recv_object = { op_recv_object_finish }; -static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; @@ -150,7 +150,7 @@ const grpc_op_manager grpc_op_send_close = { op_send_close_finish }; -static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, grpc_message *response) { +static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; grpc_metadata_array_init(&context->trailing_metadata_array); context->status.details = NULL; @@ -174,7 +174,7 @@ const grpc_op_manager grpc_op_recv_status = { }; void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, - const grpc_message message, grpc_message *response, grpc_op ops[], size_t *nops) { + const grpc_message message, void *response, grpc_op ops[], size_t *nops) { size_t manager = 0; size_t filled = 0; while (manager < GRPC_MAX_OP_COUNT) { @@ -204,7 +204,7 @@ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *co } void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_client_context *context, - const grpc_message request, grpc_message *response) { + const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; grpc_fill_op_from_call_set(set, &context->rpc_method, context, request, response, ops, &nops); diff --git a/src/c/call_ops.h b/src/c/call_ops.h index bbcbede53c2c8..25b8f3adcd32d 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -45,7 +45,7 @@ typedef GRPC_method grpc_method; typedef struct grpc_client_context grpc_client_context; typedef struct grpc_call_op_set grpc_call_op_set; -typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_client_context *, grpc_call_op_set *, const grpc_message message, grpc_message *response); +typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_client_context *, grpc_call_op_set *, const grpc_message message, void *response); typedef void (*grpc_op_finisher)(grpc_client_context *, grpc_call_op_set *, bool *status, int max_message_size); typedef struct grpc_op_manager { @@ -60,7 +60,7 @@ typedef struct grpc_call_op_set { grpc_client_context * const context; /* these are used by individual operations */ - grpc_message *response; + void *response; grpc_byte_buffer *recv_buffer; bool message_received; @@ -74,13 +74,13 @@ typedef struct grpc_call_op_set { } grpc_call_op_set; void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, - const grpc_message message, grpc_message *response, grpc_op ops[], size_t *nops); + const grpc_message message, void *response, grpc_op ops[], size_t *nops); /* Runs post processing steps in the call op set. Returns false if something wrong happens e.g. serialization. */ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *context); void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_client_context *context, - const grpc_message message, grpc_message *response); + const grpc_message message, void *response); /* list of operations */ diff --git a/src/c/client_context.c b/src/c/client_context.c index 5c9cd3169d371..d8f9e150f6943 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -43,8 +43,10 @@ grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { grpc_client_context, { .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), .channel = chan, - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize, + .serialization_impl = { + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize, + }, .status = { .ok = true } diff --git a/src/c/client_context.h b/src/c/client_context.h index c09968b07773f..07e0fedee7f43 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -52,8 +52,10 @@ typedef struct grpc_client_context { gpr_timespec deadline; // serialization mechanism used in this call - GRPC_serializer serialize; - GRPC_deserializer deserialize; + struct { + GRPC_serializer serialize; + GRPC_deserializer deserialize; + } serialization_impl; // status of the call grpc_status status; diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 489a65819df9a..03f0ce2e00688 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -39,13 +39,12 @@ #include "completion_queue.h" #include "alloc.h" -grpc_client_writer *GRPC_client_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, +grpc_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, - GRPC_message *response) { + void *response) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(channel, + grpc_call *call = grpc_channel_create_call(context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, diff --git a/src/c/id_serialization.c b/src/c/id_serialization.c index 6c190cc3083e4..824530c3d3ccc 100644 --- a/src/c/id_serialization.c +++ b/src/c/id_serialization.c @@ -41,8 +41,6 @@ void GRPC_id_serialize(const grpc_message input, grpc_message *output) { output->length = input.length; } -void GRPC_id_deserialize(const grpc_message input, grpc_message *output) { - output->data = malloc(input.length); - memcpy(output->data, input.data, input.length); - output->length = input.length; +void GRPC_id_deserialize(const grpc_message input, void *output) { + memcpy(output, input.data, input.length); } diff --git a/src/c/id_serialization.h b/src/c/id_serialization.h index d5c2d5626370b..ffe8eed4908b9 100644 --- a/src/c/id_serialization.h +++ b/src/c/id_serialization.h @@ -41,6 +41,6 @@ /* Serialization functions that doesn't do anything except duplicating the buffer */ void GRPC_id_serialize(grpc_message input, grpc_message *output); -void GRPC_id_deserialize(grpc_message input, grpc_message *output); +void GRPC_id_deserialize(grpc_message input, void *output); #endif //TEST_GRPC_C_MOCK_SERIALIZATION_H diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 8202bb5a33853..40c1cc31b3a60 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -41,12 +41,11 @@ #include "completion_queue.h" #include "tag.h" -GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, - const GRPC_method rpc_method, +GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, const GRPC_message request) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(channel, + grpc_call *call = grpc_channel_create_call(context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, @@ -78,7 +77,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call(GRPC_channel *channel, return reader; } -bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_message *response) { +bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *response) { grpc_call_op_set set_meta = { { grpc_op_recv_metadata, diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index bd24a798101fb..0ebfa337b391b 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -39,9 +39,11 @@ #include #include "tag.h" -GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_channel *channel, GRPC_completion_queue *cq, const GRPC_method rpc_method, - const GRPC_message request, GRPC_client_context *context) { - grpc_call *call = grpc_channel_create_call(channel, +GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue *cq, + const GRPC_method rpc_method, + const GRPC_message request, + GRPC_client_context *context) { + grpc_call *call = grpc_channel_create_call(context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, @@ -91,7 +93,7 @@ void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, (GRPC_message) {0}, NULL); } -void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, GRPC_message *response, void *tag) { +void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag) { reader->finish_buf.user_tag = tag; grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, reader->context, (GRPC_message) {0}, response); } diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 382d784a13d58..ef283613e6a35 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -40,10 +40,12 @@ #include #include -GRPC_status GRPC_unary_blocking_call(GRPC_channel *channel, const GRPC_method *const rpc_method, - GRPC_client_context *const context, const GRPC_message message, GRPC_message *response) { +GRPC_status GRPC_unary_blocking_call(const GRPC_method *const rpc_method, + GRPC_client_context *const context, + const GRPC_message message, + void *response) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(channel, + grpc_call *call = grpc_channel_create_call(context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 9a648ef21a5fc..cec87cde767d3 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -142,20 +142,21 @@ static void SendUnaryRpc(GRPC_channel *channel, char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; - GRPC_status status = GRPC_unary_blocking_call(channel, &method, context, msg, &resp); + char resp[100]; + GRPC_status status = GRPC_unary_blocking_call(&method, context, msg, resp); EXPECT_TRUE(status.ok) << status.details; EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; - char *response_string = (char *) malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; + // manually deserializing + int resplength = (int) resp[1]; + char *response_string = (char *) malloc(resplength); + memcpy(response_string, ((char *) resp) + 2, resplength); + response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); free(response_string); - GRPC_message_destroy(&resp); GRPC_client_context_destroy(&context); } } @@ -169,9 +170,9 @@ static void SendClientStreamingRpc(GRPC_channel *channel, char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; + char resp[100]; - GRPC_client_writer *writer = GRPC_client_streaming_blocking_call(channel, method, context, &resp); + GRPC_client_writer *writer = GRPC_client_streaming_blocking_call(method, context, resp); for (int i = 0; i < 3; i++) { bool result = GRPC_client_streaming_blocking_write(writer, msg); EXPECT_TRUE(result); @@ -181,14 +182,15 @@ static void SendClientStreamingRpc(GRPC_channel *channel, EXPECT_TRUE(status.ok) << status.details; EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; - char *response_string = (char *) malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; + // manually deserializing + int resplength = (int) resp[1]; + char *response_string = (char *) malloc(resplength); + memcpy(response_string, ((char *) resp) + 2, resplength); + response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-CgRPC-CgRPC-C"), grpc::string(response_string)); free(response_string); - GRPC_message_destroy(&resp); GRPC_client_context_destroy(&context); } } @@ -202,19 +204,20 @@ static void SendServerStreamingRpc(GRPC_channel *channel, char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; - GRPC_client_reader *reader = GRPC_server_streaming_blocking_call(channel, method, context, msg); + GRPC_client_reader *reader = GRPC_server_streaming_blocking_call(method, context, msg); // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; + char resp[100]; int count = 0; - while (GRPC_server_streaming_blocking_read(reader, &resp)) { - char *response_string = (char *) malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; + while (GRPC_server_streaming_blocking_read(reader, resp)) { + // manually deserializing + int resplength = (int) resp[1]; + char *response_string = (char *) malloc(resplength); + memcpy(response_string, ((char *) resp) + 2, resplength); + response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C") + grpc::to_string(count++), grpc::string(response_string)); free(response_string); - GRPC_message_destroy(&resp); } GRPC_status status = GRPC_client_reader_terminate(reader); @@ -234,10 +237,10 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; - GRPC_client_reader_writer *reader_writer = GRPC_bidi_streaming_blocking_call(channel, method, context); + GRPC_client_reader_writer *reader_writer = GRPC_bidi_streaming_blocking_call(method, context); // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; + char resp[100]; const int kNumMsgToSend = 3; for (int i = 0; i < kNumMsgToSend; i++) { @@ -246,14 +249,15 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, EXPECT_TRUE(GRPC_bidi_streaming_blocking_writes_done(reader_writer)); int received_num = 0; - while (GRPC_bidi_streaming_blocking_read(reader_writer, &resp)) { + while (GRPC_bidi_streaming_blocking_read(reader_writer, resp)) { received_num++; - char *response_string = (char *) malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; + // manually deserializing + int resplength = (int) resp[1]; + char *response_string = (char *) malloc(resplength); + memcpy(response_string, ((char *) resp) + 2, resplength); + response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); free(response_string); - GRPC_message_destroy(&resp); } EXPECT_EQ(kNumMsgToSend, received_num); @@ -275,12 +279,12 @@ static void SendAsyncUnaryRpc(GRPC_channel *channel, char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; // using char array to hold RPC result while protobuf is not there yet - GRPC_message resp; + char resp[100]; void *tag; bool ok; - GRPC_client_async_response_reader *reader = GRPC_unary_async_call(channel, cq, method, msg, context); - GRPC_client_async_finish(reader, &resp, (void*) 12345); + GRPC_client_async_response_reader *reader = GRPC_unary_async_call(cq, method, msg, context); + GRPC_client_async_finish(reader, resp, (void*) 12345); GRPC_completion_queue_next(cq, &tag, &ok); EXPECT_TRUE(ok); EXPECT_TRUE(tag == (void*) 12345); @@ -289,14 +293,15 @@ static void SendAsyncUnaryRpc(GRPC_channel *channel, EXPECT_TRUE(status.ok) << status.details; EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; - char *response_string = (char *) malloc(resp.length - 2 + 1); - memcpy(response_string, ((char *) resp.data) + 2, resp.length - 2); - response_string[resp.length - 2] = '\0'; + // manually deserializing + int resplength = (int) resp[1]; + char *response_string = (char *) malloc(resplength); + memcpy(response_string, ((char *) resp) + 2, resplength); + response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); free(response_string); - GRPC_message_destroy(&resp); GRPC_client_context_destroy(&context); GRPC_completion_queue_shutdown(cq); GRPC_completion_queue_shutdown_wait(cq); From 7356dd4f35ffcc5868c076b831fde2ebc8875e7f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 13:52:49 -0700 Subject: [PATCH 059/202] Update build files --- BUILD | 15 ++ CMakeLists.txt | 20 +++ Makefile | 37 +++- build.yaml | 23 +-- tools/run_tests/sources_and_headers.json | 18 ++ tools/run_tests/tests.json | 2 +- vsprojects/grpc_protoc_plugins.sln | 16 ++ .../grpc_c_plugin/grpc_c_plugin.vcxproj | 168 ++++++++++++++++++ .../grpc_c_plugin.vcxproj.filters | 18 ++ .../grpc_plugin_support.vcxproj | 4 + .../grpc_plugin_support.vcxproj.filters | 9 + 11 files changed, 317 insertions(+), 13 deletions(-) create mode 100644 vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj create mode 100644 vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters diff --git a/BUILD b/BUILD index 9fe2165e719b5..debde719358c9 100644 --- a/BUILD +++ b/BUILD @@ -1678,6 +1678,8 @@ cc_library( cc_library( name = "grpc_plugin_support", srcs = [ + "src/compiler/c_generator.h", + "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.h", "src/compiler/cpp_generator_helpers.h", @@ -1693,6 +1695,7 @@ cc_library( "src/compiler/ruby_generator_helpers-inl.h", "src/compiler/ruby_generator_map-inl.h", "src/compiler/ruby_generator_string-inl.h", + "src/compiler/c_generator.cc", "src/compiler/cpp_generator.cc", "src/compiler/csharp_generator.cc", "src/compiler/node_generator.cc", @@ -2234,6 +2237,18 @@ objc_library( +cc_binary( + name = "grpc_c_plugin", + srcs = [ + "src/compiler/c_plugin.cc", + ], + deps = [ + "//external:protobuf_compiler", + ":grpc_plugin_support", + ], +) + + cc_binary( name = "grpc_cpp_plugin", srcs = [ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d3482419ba47..9255d2fafc6ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -850,6 +850,7 @@ target_link_libraries(grpc++_unsecure add_library(grpc_plugin_support + src/compiler/c_generator.cc src/compiler/cpp_generator.cc src/compiler/csharp_generator.cc src/compiler/node_generator.cc @@ -984,6 +985,25 @@ target_link_libraries(grpc_verify_jwt ) +add_executable(grpc_c_plugin + src/compiler/c_plugin.cc +) + +target_include_directories(grpc_c_plugin + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_ROOT_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib +) + +target_link_libraries(grpc_c_plugin + libprotoc + grpc_plugin_support +) + + add_executable(grpc_cpp_plugin src/compiler/cpp_plugin.cc ) diff --git a/Makefile b/Makefile index c7cc0005a1ff6..a6e2a2f1681c3 100644 --- a/Makefile +++ b/Makefile @@ -732,7 +732,7 @@ PC_LIBS_GRPCXX = CPPFLAGS := -Ithird_party/googletest/include $(CPPFLAGS) -PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin +PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_c_plugin $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin PROTOC_PLUGINS_DIR = $(BINDIR)/$(CONFIG) ifeq ($(HAS_SYSTEM_PROTOBUF),true) @@ -1041,6 +1041,7 @@ end2end_test: $(BINDIR)/$(CONFIG)/end2end_test generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test grpc_c_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_end2end_test +grpc_c_plugin: $(BINDIR)/$(CONFIG)/grpc_c_plugin grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin @@ -2247,6 +2248,8 @@ ifeq ($(SYSTEM),MINGW32) else $(E) "[INSTALL] Installing grpc protoc plugins" $(Q) $(INSTALL) -d $(prefix)/bin + $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_c_plugin $(prefix)/bin/grpc_c_plugin + $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(prefix)/bin/grpc_cpp_plugin $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(prefix)/bin/grpc_csharp_plugin @@ -4233,6 +4236,7 @@ endif LIBGRPC_PLUGIN_SUPPORT_SRC = \ + src/compiler/c_generator.cc \ src/compiler/cpp_generator.cc \ src/compiler/csharp_generator.cc \ src/compiler/node_generator.cc \ @@ -9397,6 +9401,37 @@ endif endif +GRPC_C_PLUGIN_SRC = \ + src/compiler/c_plugin.cc \ + +GRPC_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_PLUGIN_SRC)))) + + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_c_plugin: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_c_plugin: $(PROTOBUF_DEP) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_c_plugin + +endif + +$(OBJDIR)/$(CONFIG)/src/compiler/c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + +deps_grpc_c_plugin: $(GRPC_C_PLUGIN_OBJS:.o=.dep) + +ifneq ($(NO_DEPS),true) +-include $(GRPC_C_PLUGIN_OBJS:.o=.dep) +endif + + GRPC_CLI_SRC = \ test/cpp/util/grpc_cli.cc \ diff --git a/build.yaml b/build.yaml index e23bb99c275c7..45e47322d0191 100644 --- a/build.yaml +++ b/build.yaml @@ -1109,9 +1109,9 @@ libs: build: protoc language: c++ headers: - - src/compiler/config.h - src/compiler/c_generator.h - src/compiler/c_generator_helpers.h + - src/compiler/config.h - src/compiler/cpp_generator.h - src/compiler/cpp_generator_helpers.h - src/compiler/csharp_generator.h @@ -2720,6 +2720,7 @@ targets: - grpc - gpr - name: grpc_c_end2end_test + gtest: true build: test language: c++ src: @@ -2732,6 +2733,16 @@ targets: - grpc - gpr_test_util - gpr +- name: grpc_c_plugin + build: protoc + language: c++ + src: + - src/compiler/c_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{06F2EB11-35DA-483D-AB0A-BC420D97B18C}' - name: grpc_cli build: test run: false @@ -2748,16 +2759,6 @@ targets: - gpr_test_util - gpr - grpc++_test_config -- name: grpc_c_plugin - build: protoc - language: c++ - src: - - src/compiler/c_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{06F2EB11-35DA-483D-AB0A-BC420D97B18C}' - name: grpc_cpp_plugin build: protoc language: c++ diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 5b94a78a59360..bc16346cbfa20 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2146,6 +2146,19 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "grpc_plugin_support" + ], + "headers": [], + "language": "c++", + "name": "grpc_c_plugin", + "src": [ + "src/compiler/c_plugin.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", @@ -4593,6 +4606,8 @@ "grpc++_config_proto" ], "headers": [ + "src/compiler/c_generator.h", + "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.h", "src/compiler/cpp_generator_helpers.h", @@ -4612,6 +4627,9 @@ "language": "c++", "name": "grpc_plugin_support", "src": [ + "src/compiler/c_generator.cc", + "src/compiler/c_generator.h", + "src/compiler/c_generator_helpers.h", "src/compiler/config.h", "src/compiler/cpp_generator.cc", "src/compiler/cpp_generator.h", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 0b4f1eea4f93d..7eac2e1f7fdf0 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -2280,7 +2280,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, + "gtest": true, "language": "c++", "name": "grpc_c_end2end_test", "platforms": [ diff --git a/vsprojects/grpc_protoc_plugins.sln b/vsprojects/grpc_protoc_plugins.sln index 2e55720f28c50..5eadb7cdccef8 100644 --- a/vsprojects/grpc_protoc_plugins.sln +++ b/vsprojects/grpc_protoc_plugins.sln @@ -3,6 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c_plugin", "vcxproj\.\grpc_c_plugin\grpc_c_plugin.vcxproj", "{06F2EB11-35DA-483D-AB0A-BC420D97B18C}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B6E81D84-2ACB-41B8-8781-493A944C7817} = {B6E81D84-2ACB-41B8-8781-493A944C7817} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_cpp_plugin", "vcxproj\.\grpc_cpp_plugin\grpc_cpp_plugin.vcxproj", "{7E51A25F-AC59-488F-906C-C60FAAE706AA}" ProjectSection(myProperties) = preProject lib = "False" @@ -64,6 +72,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|Win32.ActiveCfg = Debug|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|x64.ActiveCfg = Debug|x64 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|Win32.ActiveCfg = Release|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|x64.ActiveCfg = Release|x64 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|Win32.Build.0 = Debug|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Debug|x64.Build.0 = Debug|x64 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|Win32.Build.0 = Release|Win32 + {06F2EB11-35DA-483D-AB0A-BC420D97B18C}.Release|x64.Build.0 = Release|x64 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Debug|Win32.ActiveCfg = Debug|Win32 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Debug|x64.ActiveCfg = Debug|x64 {7E51A25F-AC59-488F-906C-C60FAAE706AA}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj new file mode 100644 index 0000000000000..47aba5005f8ab --- /dev/null +++ b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {06F2EB11-35DA-483D-AB0A-BC420D97B18C} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + grpc_c_plugin + + + grpc_c_plugin + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + + + + + {B6E81D84-2ACB-41B8-8781-493A944C7817} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters new file mode 100644 index 0000000000000..81922be0a5f73 --- /dev/null +++ b/vsprojects/vcxproj/grpc_c_plugin/grpc_c_plugin.vcxproj.filters @@ -0,0 +1,18 @@ + + + + + src\compiler + + + + + + {1ad4fe68-6369-3285-10dc-6272151898a6} + + + {bb7b20f5-fcb8-03bf-ac38-2918fd2abcd0} + + + + diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj index 9828b8bcaf0cc..ca4b87eb5b6ee 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj @@ -151,6 +151,8 @@ + + @@ -168,6 +170,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters index 27eb935e0745c..15e50982d0ab8 100644 --- a/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_plugin_support/grpc_plugin_support.vcxproj.filters @@ -1,6 +1,9 @@ + + src\compiler + src\compiler @@ -26,6 +29,12 @@ + + src\compiler + + + src\compiler + src\compiler From 3beaeda6ecb0b73ff24b70fb8dac16f94561df12 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 13:53:19 -0700 Subject: [PATCH 060/202] Generate C unary client API implementation --- src/compiler/c_generator.cc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index c9b95a934795d..b7aa5f4b1ae60 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -322,7 +322,40 @@ void PrintSourceClientMethod(Printer *printer, (*vars)["Request"] = method->input_type_name(); (*vars)["Response"] = method->output_type_name(); if (method->NoStreaming()) { + // Unary + printer->Print( + *vars, + R"( +GRPC_status $CPrefix$$Service$_$Method$( + GRPC_client_context *const context, + const $CPrefix$$Request$ request, + $CPrefix$$Response$ *response) { + GRPC_message request_msg = { &request, sizeof(request) }; + GRPC_message response_msg; + context->serialization_impl = { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }; + GRPC_unary_blocking_call(GRPC_method_HLW_Greeter_SayHello, context, request_msg, response); +} +)"); + printer->Print( + *vars, + R"( +/* Async */ +GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( + GRPC_client_context *const context, + GRPC_completion_queue *cq, + const $CPrefix$$Request$ request) { + GRPC_message request_msg = { &request, sizeof(request) }; + context->serialization_impl = { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }; + return GRPC_unary_async_call(cq, GRPC_method_HLW_Greeter_SayHello, request_msg, context); +} +void $CPrefix$$Service$_$Method$_Finish( + GRPC_client_async_response_reader *reader, + $CPrefix$$Response$ *response, + void *tag) { + GRPC_client_async_finish(reader, response, tag); +} +)"); } else if (method->ClientOnlyStreaming()) { } else if (method->ServerOnlyStreaming()) { From 5dce3ce43e2941d09f9d8c662611d167f7323b6b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 13:56:04 -0700 Subject: [PATCH 061/202] prepare to include nanopb --- src/compiler/c_plugin.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc index 08192aef0f4cb..efcdbded3c17f 100644 --- a/src/compiler/c_plugin.cc +++ b/src/compiler/c_plugin.cc @@ -144,7 +144,9 @@ class ProtoBufCFile : public grpc_cpp_generator::File { return grpc_generator::StripProto(filename()); } - grpc::string message_header_ext() const { return ".pbc.h"; } + // TODO(yifeit): We're relying on Nanopb right now. After rolling out our own Protobuf-C impl, we should + // use a different extension e.g. ".pbc.h" + grpc::string message_header_ext() const { return ".pb.h"; } grpc::string service_header_ext() const { return ".grpc.pbc.h"; } From abc4febdbbac4ba05d50fbe70dd8cd13bba10a2f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 7 Jul 2016 16:17:05 -0700 Subject: [PATCH 062/202] Add minimal C sample client --- examples/c/README.md | 2 + examples/c/ctutorial.md | 2 + examples/c/helloworld/Makefile | 117 ++++++++ examples/c/helloworld/README.md | 260 ++++++++++++++++++ examples/c/helloworld/greeter_async_client.c | 38 +++ examples/c/helloworld/greeter_async_client2.c | 38 +++ examples/c/helloworld/greeter_client.c | 56 ++++ 7 files changed, 513 insertions(+) create mode 100644 examples/c/README.md create mode 100644 examples/c/ctutorial.md create mode 100644 examples/c/helloworld/Makefile create mode 100644 examples/c/helloworld/README.md create mode 100644 examples/c/helloworld/greeter_async_client.c create mode 100644 examples/c/helloworld/greeter_async_client2.c create mode 100644 examples/c/helloworld/greeter_client.c diff --git a/examples/c/README.md b/examples/c/README.md new file mode 100644 index 0000000000000..660d8e6bbaed6 --- /dev/null +++ b/examples/c/README.md @@ -0,0 +1,2 @@ +#gRPC in 3 minutes (C) + diff --git a/examples/c/ctutorial.md b/examples/c/ctutorial.md new file mode 100644 index 0000000000000..1ccedfccebb67 --- /dev/null +++ b/examples/c/ctutorial.md @@ -0,0 +1,2 @@ +#gRPC Basics: C + diff --git a/examples/c/helloworld/Makefile b/examples/c/helloworld/Makefile new file mode 100644 index 0000000000000..222bcf43407c2 --- /dev/null +++ b/examples/c/helloworld/Makefile @@ -0,0 +1,117 @@ +# +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +CC = gcc +CFLAGS += -I/usr/local/include -pthread +LDFLAGS += -L/usr/local/lib `pkg-config --libs grpc` -lprotobuf -lpthread -ldl +PROTOC = protoc +GRPC_C_PLUGIN = grpc_c_plugin +GRPC_C_PLUGIN_PATH ?= `which $(GRPC_C_PLUGIN)` + +PROTOS_PATH = ../../protos + +vpath %.proto $(PROTOS_PATH) + +all: system-check greeter_client greeter_async_client greeter_async_client2 + +greeter_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_client.o + $(CC) $^ $(LDFLAGS) -o $@ + +greeter_async_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_client.o + $(CC) $^ $(LDFLAGS) -o $@ + +greeter_async_client2: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_client2.o + $(CC) $^ $(LDFLAGS) -o $@ + +.PRECIOUS: %.grpc.pbc.c +%.grpc.pbc.c: %.proto + $(PROTOC) -I $(PROTOS_PATH) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_C_PLUGIN_PATH) $< + +.PRECIOUS: %.pbc.c +%.pbc.c: %.proto + $(PROTOC) -I $(PROTOS_PATH) --c_out=. $< + +clean: + rm -f *.o *.pbc.c *.pbc.h greeter_client greeter_async_client greeter_async_client2 + + +# The following is to test your system and ensure a smoother experience. +# They are by no means necessary to actually compile a grpc-enabled software. + +PROTOC_CMD = which $(PROTOC) +PROTOC_CHECK_CMD = $(PROTOC) --version | grep -q libprotoc.3 +PLUGIN_CHECK_CMD = which $(GRPC_C_PLUGIN) +HAS_PROTOC = $(shell $(PROTOC_CMD) > /dev/null && echo true || echo false) +ifeq ($(HAS_PROTOC),true) +HAS_VALID_PROTOC = $(shell $(PROTOC_CHECK_CMD) 2> /dev/null && echo true || echo false) +endif +HAS_PLUGIN = $(shell $(PLUGIN_CHECK_CMD) > /dev/null && echo true || echo false) + +SYSTEM_OK = false +ifeq ($(HAS_VALID_PROTOC),true) +ifeq ($(HAS_PLUGIN),true) +SYSTEM_OK = true +endif +endif + +system-check: +ifneq ($(HAS_VALID_PROTOC),true) + @echo " DEPENDENCY ERROR" + @echo + @echo "You don't have protoc 3.0.0 installed in your path." + @echo "Please install Google protocol buffers 3.0.0 and its compiler." + @echo "You can find it here:" + @echo + @echo " https://github.com/google/protobuf/releases/tag/v3.0.0-beta-2" + @echo + @echo "Here is what I get when trying to evaluate your version of protoc:" + @echo + -$(PROTOC) --version + @echo + @echo +endif +ifneq ($(HAS_PLUGIN),true) + @echo " DEPENDENCY ERROR" + @echo + @echo "You don't have the grpc c++ protobuf plugin installed in your path." + @echo "Please install grpc. You can find it here:" + @echo + @echo " https://github.com/grpc/grpc" + @echo + @echo "Here is what I get when trying to detect if you have the plugin:" + @echo + -which $(GRPC_CPP_PLUGIN) + @echo + @echo +endif +ifneq ($(SYSTEM_OK),true) + @false +endif diff --git a/examples/c/helloworld/README.md b/examples/c/helloworld/README.md new file mode 100644 index 0000000000000..db953f53628bb --- /dev/null +++ b/examples/c/helloworld/README.md @@ -0,0 +1,260 @@ +# gRPC C++ Hello World Tutorial + +### Install gRPC +Make sure you have installed gRPC on your system. Follow the instructions here: +[https://github.com/grpc/grpc/blob/master/INSTALL](../../../INSTALL.md). + +### Get the tutorial source code + +The example code for this and our other examples lives in the `examples` +directory. Clone this repository to your local machine by running the +following command: + + +```sh +$ git clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpc +``` + +Change your current directory to examples/cpp/helloworld + +```sh +$ cd examples/cpp/helloworld/ +``` + +### Defining a service + +The first step in creating our example is to define a *service*: an RPC +service specifies the methods that can be called remotely with their parameters +and return types. As you saw in the +[overview](#protocolbuffers) above, gRPC does this using [protocol +buffers](https://developers.google.com/protocol-buffers/docs/overview). We +use the protocol buffers interface definition language (IDL) to define our +service methods, and define the parameters and return +types as protocol buffer message types. Both the client and the +server use interface code generated from the service definition. + +Here's our example service definition, defined using protocol buffers IDL in +[helloworld.proto](../../protos/helloworld.proto). The `Greeting` +service has one method, `hello`, that lets the server receive a single +`HelloRequest` +message from the remote client containing the user's name, then send back +a greeting in a single `HelloReply`. This is the simplest type of RPC you +can specify in gRPC - we'll look at some other types later in this document. + +```protobuf +syntax = "proto3"; + +option java_package = "ex.grpc"; + +package helloworld; + +// The greeting service definition. +service Greeter { + // Sends a greeting + rpc SayHello (HelloRequest) returns (HelloReply) {} +} + +// The request message containing the user's name. +message HelloRequest { + string name = 1; +} + +// The response message containing the greetings +message HelloReply { + string message = 1; +} + +``` + + +### Generating gRPC code + +Once we've defined our service, we use the protocol buffer compiler +`protoc` to generate the special client and server code we need to create +our application. The generated code contains both stub code for clients to +use and an abstract interface for servers to implement, both with the method +defined in our `Greeting` service. + +To generate the client and server side interfaces: + +```sh +$ make helloworld.grpc.pb.cc helloworld.pb.cc +``` +Which internally invokes the proto-compiler as: + +```sh +$ protoc -I ../../protos/ --grpc_out=. --plugin=protoc-gen-grpc=grpc_cpp_plugin ../../protos/helloworld.proto +$ protoc -I ../../protos/ --cpp_out=. ../../protos/helloworld.proto +``` + +### Writing a client + +- Create a channel. A channel is a logical connection to an endpoint. A gRPC + channel can be created with the target address, credentials to use and + arguments as follows + + ```cpp + auto channel = CreateChannel("localhost:50051", InsecureChannelCredentials()); + ``` + +- Create a stub. A stub implements the rpc methods of a service and in the + generated code, a method is provided to created a stub with a channel: + + ```cpp + auto stub = helloworld::Greeter::NewStub(channel); + ``` + +- Make a unary rpc, with `ClientContext` and request/response proto messages. + + ```cpp + ClientContext context; + HelloRequest request; + request.set_name("hello"); + HelloReply reply; + Status status = stub->SayHello(&context, request, &reply); + ``` + +- Check returned status and response. + + ```cpp + if (status.ok()) { + // check reply.message() + } else { + // rpc failed. + } + ``` + +For a working example, refer to [greeter_client.cc](greeter_client.cc). + +### Writing a server + +- Implement the service interface + + ```cpp + class GreeterServiceImpl final : public Greeter::Service { + Status SayHello(ServerContext* context, const HelloRequest* request, + HelloReply* reply) override { + std::string prefix("Hello "); + reply->set_message(prefix + request->name()); + return Status::OK; + } + }; + + ``` + +- Build a server exporting the service + + ```cpp + GreeterServiceImpl service; + ServerBuilder builder; + builder.AddListeningPort("0.0.0.0:50051", grpc::InsecureServerCredentials()); + builder.RegisterService(&service); + std::unique_ptr server(builder.BuildAndStart()); + ``` + +For a working example, refer to [greeter_server.cc](greeter_server.cc). + +### Writing asynchronous client and server + +gRPC uses `CompletionQueue` API for asynchronous operations. The basic work flow +is +- bind a `CompletionQueue` to a rpc call +- do something like a read or write, present with a unique `void*` tag +- call `CompletionQueue::Next` to wait for operations to complete. If a tag + appears, it indicates that the corresponding operation is complete. + +#### Async client + +The channel and stub creation code is the same as the sync client. + +- Initiate the rpc and create a handle for the rpc. Bind the rpc to a + `CompletionQueue`. + + ```cpp + CompletionQueue cq; + auto rpc = stub->AsyncSayHello(&context, request, &cq); + ``` + +- Ask for reply and final status, with a unique tag + + ```cpp + Status status; + rpc->Finish(&reply, &status, (void*)1); + ``` + +- Wait for the completion queue to return the next tag. The reply and status are + ready once the tag passed into the corresponding `Finish()` call is returned. + + ```cpp + void* got_tag; + bool ok = false; + cq.Next(&got_tag, &ok); + if (ok && got_tag == (void*)1) { + // check reply and status + } + ``` + +For a working example, refer to [greeter_async_client.cc](greeter_async_client.cc). + +#### Async server + +The server implementation requests a rpc call with a tag and then wait for the +completion queue to return the tag. The basic flow is + +- Build a server exporting the async service + + ```cpp + helloworld::Greeter::AsyncService service; + ServerBuilder builder; + builder.AddListeningPort("0.0.0.0:50051", InsecureServerCredentials()); + builder.RegisterService(&service); + auto cq = builder.AddCompletionQueue(); + auto server = builder.BuildAndStart(); + ``` + +- Request one rpc + + ```cpp + ServerContext context; + HelloRequest request; + ServerAsyncResponseWriter responder; + service.RequestSayHello(&context, &request, &responder, &cq, &cq, (void*)1); + ``` + +- Wait for the completion queue to return the tag. The context, request and + responder are ready once the tag is retrieved. + + ```cpp + HelloReply reply; + Status status; + void* got_tag; + bool ok = false; + cq.Next(&got_tag, &ok); + if (ok && got_tag == (void*)1) { + // set reply and status + responder.Finish(reply, status, (void*)2); + } + ``` + +- Wait for the completion queue to return the tag. The rpc is finished when the + tag is back. + + ```cpp + void* got_tag; + bool ok = false; + cq.Next(&got_tag, &ok); + if (ok && got_tag == (void*)2) { + // clean up + } + ``` + +To handle multiple rpcs, the async server creates an object `CallData` to +maintain the state of each rpc and use the address of it as the unique tag. For +simplicity the server only uses one completion queue for all events, and runs a +main loop in `HandleRpcs` to query the queue. + +For a working example, refer to [greeter_async_server.cc](greeter_async_server.cc). + + + + diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c new file mode 100644 index 0000000000000..a1dda037bd6f3 --- /dev/null +++ b/examples/c/helloworld/greeter_async_client.c @@ -0,0 +1,38 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "helloworld.grpc.pbc.h" + +int main(int argc, char** argv) { + return 0; +} diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c new file mode 100644 index 0000000000000..3c47c78bc74a3 --- /dev/null +++ b/examples/c/helloworld/greeter_async_client2.c @@ -0,0 +1,38 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "helloworld.grpc.pbc.h" + +int main(int argc, char** argv) { + return 0; +} diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c new file mode 100644 index 0000000000000..9ca131a29ca27 --- /dev/null +++ b/examples/c/helloworld/greeter_client.c @@ -0,0 +1,56 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include + +#include "helloworld.grpc.pbc.h" + +int main(int argc, char** argv) { + // Instantiate the client. It requires a channel, out of which the actual RPCs + // are created. This channel models a connection to an endpoint (in this case, + // localhost at port 50051). We indicate that the channel isn't authenticated + // (use of InsecureChannelCredentials()). + // Local greetings server + GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); + GRPC_context *context = GRPC_context_create(chan); + HelloRequest request = { "world" }; + HelloResponse response; + GRPC_status status = Greeter_SayHello(chan, context, request, &response); + if (status.code == GRPC_STATUS_OK) { + printf("Server replied: %s\n", response.message); + return 0; + } else { + printf("Error occurred: %s\n", status.details); + return -1; + } +} From 2d340f82845a89be732b55d1e9d203ef8fdac5ad Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 11 Jul 2016 15:16:28 -0700 Subject: [PATCH 063/202] ignore generated files in examples --- examples/c/helloworld/.gitignore | 4 + examples/c/helloworld/README.md | 258 +------------------------------ 2 files changed, 5 insertions(+), 257 deletions(-) create mode 100644 examples/c/helloworld/.gitignore diff --git a/examples/c/helloworld/.gitignore b/examples/c/helloworld/.gitignore new file mode 100644 index 0000000000000..1c686c551f9fa --- /dev/null +++ b/examples/c/helloworld/.gitignore @@ -0,0 +1,4 @@ +helloworld.grpc.pbc.c +helloworld.grpc.pbc.h +helloworld.pbc.c +helloworld.pbc.h diff --git a/examples/c/helloworld/README.md b/examples/c/helloworld/README.md index db953f53628bb..9fd024b11896d 100644 --- a/examples/c/helloworld/README.md +++ b/examples/c/helloworld/README.md @@ -1,260 +1,4 @@ -# gRPC C++ Hello World Tutorial - -### Install gRPC -Make sure you have installed gRPC on your system. Follow the instructions here: -[https://github.com/grpc/grpc/blob/master/INSTALL](../../../INSTALL.md). - -### Get the tutorial source code - -The example code for this and our other examples lives in the `examples` -directory. Clone this repository to your local machine by running the -following command: - - -```sh -$ git clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpc -``` - -Change your current directory to examples/cpp/helloworld - -```sh -$ cd examples/cpp/helloworld/ -``` - -### Defining a service - -The first step in creating our example is to define a *service*: an RPC -service specifies the methods that can be called remotely with their parameters -and return types. As you saw in the -[overview](#protocolbuffers) above, gRPC does this using [protocol -buffers](https://developers.google.com/protocol-buffers/docs/overview). We -use the protocol buffers interface definition language (IDL) to define our -service methods, and define the parameters and return -types as protocol buffer message types. Both the client and the -server use interface code generated from the service definition. - -Here's our example service definition, defined using protocol buffers IDL in -[helloworld.proto](../../protos/helloworld.proto). The `Greeting` -service has one method, `hello`, that lets the server receive a single -`HelloRequest` -message from the remote client containing the user's name, then send back -a greeting in a single `HelloReply`. This is the simplest type of RPC you -can specify in gRPC - we'll look at some other types later in this document. - -```protobuf -syntax = "proto3"; - -option java_package = "ex.grpc"; - -package helloworld; - -// The greeting service definition. -service Greeter { - // Sends a greeting - rpc SayHello (HelloRequest) returns (HelloReply) {} -} - -// The request message containing the user's name. -message HelloRequest { - string name = 1; -} - -// The response message containing the greetings -message HelloReply { - string message = 1; -} - -``` - - -### Generating gRPC code - -Once we've defined our service, we use the protocol buffer compiler -`protoc` to generate the special client and server code we need to create -our application. The generated code contains both stub code for clients to -use and an abstract interface for servers to implement, both with the method -defined in our `Greeting` service. - -To generate the client and server side interfaces: - -```sh -$ make helloworld.grpc.pb.cc helloworld.pb.cc -``` -Which internally invokes the proto-compiler as: - -```sh -$ protoc -I ../../protos/ --grpc_out=. --plugin=protoc-gen-grpc=grpc_cpp_plugin ../../protos/helloworld.proto -$ protoc -I ../../protos/ --cpp_out=. ../../protos/helloworld.proto -``` - -### Writing a client - -- Create a channel. A channel is a logical connection to an endpoint. A gRPC - channel can be created with the target address, credentials to use and - arguments as follows - - ```cpp - auto channel = CreateChannel("localhost:50051", InsecureChannelCredentials()); - ``` - -- Create a stub. A stub implements the rpc methods of a service and in the - generated code, a method is provided to created a stub with a channel: - - ```cpp - auto stub = helloworld::Greeter::NewStub(channel); - ``` - -- Make a unary rpc, with `ClientContext` and request/response proto messages. - - ```cpp - ClientContext context; - HelloRequest request; - request.set_name("hello"); - HelloReply reply; - Status status = stub->SayHello(&context, request, &reply); - ``` - -- Check returned status and response. - - ```cpp - if (status.ok()) { - // check reply.message() - } else { - // rpc failed. - } - ``` - -For a working example, refer to [greeter_client.cc](greeter_client.cc). - -### Writing a server - -- Implement the service interface - - ```cpp - class GreeterServiceImpl final : public Greeter::Service { - Status SayHello(ServerContext* context, const HelloRequest* request, - HelloReply* reply) override { - std::string prefix("Hello "); - reply->set_message(prefix + request->name()); - return Status::OK; - } - }; - - ``` - -- Build a server exporting the service - - ```cpp - GreeterServiceImpl service; - ServerBuilder builder; - builder.AddListeningPort("0.0.0.0:50051", grpc::InsecureServerCredentials()); - builder.RegisterService(&service); - std::unique_ptr server(builder.BuildAndStart()); - ``` - -For a working example, refer to [greeter_server.cc](greeter_server.cc). - -### Writing asynchronous client and server - -gRPC uses `CompletionQueue` API for asynchronous operations. The basic work flow -is -- bind a `CompletionQueue` to a rpc call -- do something like a read or write, present with a unique `void*` tag -- call `CompletionQueue::Next` to wait for operations to complete. If a tag - appears, it indicates that the corresponding operation is complete. - -#### Async client - -The channel and stub creation code is the same as the sync client. - -- Initiate the rpc and create a handle for the rpc. Bind the rpc to a - `CompletionQueue`. - - ```cpp - CompletionQueue cq; - auto rpc = stub->AsyncSayHello(&context, request, &cq); - ``` - -- Ask for reply and final status, with a unique tag - - ```cpp - Status status; - rpc->Finish(&reply, &status, (void*)1); - ``` - -- Wait for the completion queue to return the next tag. The reply and status are - ready once the tag passed into the corresponding `Finish()` call is returned. - - ```cpp - void* got_tag; - bool ok = false; - cq.Next(&got_tag, &ok); - if (ok && got_tag == (void*)1) { - // check reply and status - } - ``` - -For a working example, refer to [greeter_async_client.cc](greeter_async_client.cc). - -#### Async server - -The server implementation requests a rpc call with a tag and then wait for the -completion queue to return the tag. The basic flow is - -- Build a server exporting the async service - - ```cpp - helloworld::Greeter::AsyncService service; - ServerBuilder builder; - builder.AddListeningPort("0.0.0.0:50051", InsecureServerCredentials()); - builder.RegisterService(&service); - auto cq = builder.AddCompletionQueue(); - auto server = builder.BuildAndStart(); - ``` - -- Request one rpc - - ```cpp - ServerContext context; - HelloRequest request; - ServerAsyncResponseWriter responder; - service.RequestSayHello(&context, &request, &responder, &cq, &cq, (void*)1); - ``` - -- Wait for the completion queue to return the tag. The context, request and - responder are ready once the tag is retrieved. - - ```cpp - HelloReply reply; - Status status; - void* got_tag; - bool ok = false; - cq.Next(&got_tag, &ok); - if (ok && got_tag == (void*)1) { - // set reply and status - responder.Finish(reply, status, (void*)2); - } - ``` - -- Wait for the completion queue to return the tag. The rpc is finished when the - tag is back. - - ```cpp - void* got_tag; - bool ok = false; - cq.Next(&got_tag, &ok); - if (ok && got_tag == (void*)2) { - // clean up - } - ``` - -To handle multiple rpcs, the async server creates an object `CallData` to -maintain the state of each rpc and use the address of it as the unique tag. For -simplicity the server only uses one completion queue for all events, and runs a -main loop in `HandleRpcs` to query the queue. - -For a working example, refer to [greeter_async_server.cc](greeter_async_server.cc). - +# gRPC C Hello World Tutorial From 69e95b3f5440df05ade3dbb98d3b31091bf799c2 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 14:59:51 -0700 Subject: [PATCH 064/202] [wip] Incorporate Nanopb and fix generated code --- BUILD | 1 + Makefile | 1 + build.yaml | 1 + examples/c/helloworld/.gitignore | 3 ++ examples/c/helloworld/Makefile | 23 +++++---- examples/c/helloworld/greeter_client.c | 11 ++--- include/grpc_c/codegen/client_context_priv.h | 49 +++++++++++++++++++ include/grpc_c/completion_queue.h | 4 +- include/grpc_c/grpc_c.h | 6 ++- include/grpc_c/message.h | 4 +- include/grpc_c/serialization.h | 2 +- src/c/call_ops.c | 3 +- src/c/client_context.c | 7 +++ src/c/client_context.h | 9 ++-- src/c/completion_queue.c | 5 +- src/c/id_serialization.c | 8 +-- src/c/id_serialization.h | 4 +- src/c/message.c | 4 +- src/compiler/c_generator.cc | 23 ++++++--- test/c/end2end/end2end_test.cc | 5 ++ .../core/surface/public_headers_must_be_c89.c | 1 + tools/run_tests/sources_and_headers.json | 2 + vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 1 + .../vcxproj/grpc_c/grpc_c.vcxproj.filters | 6 +++ 24 files changed, 137 insertions(+), 46 deletions(-) create mode 100644 include/grpc_c/codegen/client_context_priv.h diff --git a/BUILD b/BUILD index debde719358c9..70fd59765e40b 100644 --- a/BUILD +++ b/BUILD @@ -581,6 +581,7 @@ cc_library( "include/grpc_c/channel.h", "include/grpc_c/client_context.h", "include/grpc_c/client_streaming_blocking_call.h", + "include/grpc_c/codegen/client_context_priv.h", "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", "include/grpc_c/message.h", diff --git a/Makefile b/Makefile index a6e2a2f1681c3..14af520405e49 100644 --- a/Makefile +++ b/Makefile @@ -2756,6 +2756,7 @@ PUBLIC_HEADERS_C += \ include/grpc_c/channel.h \ include/grpc_c/client_context.h \ include/grpc_c/client_streaming_blocking_call.h \ + include/grpc_c/codegen/client_context_priv.h \ include/grpc_c/completion_queue.h \ include/grpc_c/grpc_c.h \ include/grpc_c/message.h \ diff --git a/build.yaml b/build.yaml index 45e47322d0191..689acbfea1631 100644 --- a/build.yaml +++ b/build.yaml @@ -835,6 +835,7 @@ libs: - include/grpc_c/channel.h - include/grpc_c/client_context.h - include/grpc_c/client_streaming_blocking_call.h + - include/grpc_c/codegen/client_context_priv.h - include/grpc_c/completion_queue.h - include/grpc_c/grpc_c.h - include/grpc_c/message.h diff --git a/examples/c/helloworld/.gitignore b/examples/c/helloworld/.gitignore index 1c686c551f9fa..115840d5f5d33 100644 --- a/examples/c/helloworld/.gitignore +++ b/examples/c/helloworld/.gitignore @@ -2,3 +2,6 @@ helloworld.grpc.pbc.c helloworld.grpc.pbc.h helloworld.pbc.c helloworld.pbc.h +helloworld.pb.c +helloworld.pb.h +*.o diff --git a/examples/c/helloworld/Makefile b/examples/c/helloworld/Makefile index 222bcf43407c2..01ed69a2b49a5 100644 --- a/examples/c/helloworld/Makefile +++ b/examples/c/helloworld/Makefile @@ -29,8 +29,11 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # +NANOPB_DIR := $(abspath ../../../third_party/nanopb) +NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c + CC = gcc -CFLAGS += -I/usr/local/include -pthread +CFLAGS += -I/usr/local/include -I$(NANOPB_DIR)/ -pthread LDFLAGS += -L/usr/local/lib `pkg-config --libs grpc` -lprotobuf -lpthread -ldl PROTOC = protoc GRPC_C_PLUGIN = grpc_c_plugin @@ -42,25 +45,25 @@ vpath %.proto $(PROTOS_PATH) all: system-check greeter_client greeter_async_client greeter_async_client2 -greeter_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_client.o - $(CC) $^ $(LDFLAGS) -o $@ +greeter_client: helloworld.pb.o helloworld.grpc.pbc.o greeter_client.o + $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ -greeter_async_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_client.o - $(CC) $^ $(LDFLAGS) -o $@ +greeter_async_client: helloworld.pb.o helloworld.grpc.pbc.o greeter_async_client.o + $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ -greeter_async_client2: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_client2.o - $(CC) $^ $(LDFLAGS) -o $@ +greeter_async_client2: helloworld.pb.o helloworld.grpc.pbc.o greeter_async_client2.o + $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ .PRECIOUS: %.grpc.pbc.c %.grpc.pbc.c: %.proto $(PROTOC) -I $(PROTOS_PATH) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_C_PLUGIN_PATH) $< .PRECIOUS: %.pbc.c -%.pbc.c: %.proto - $(PROTOC) -I $(PROTOS_PATH) --c_out=. $< +%.pb.c: %.proto + $(PROTOC) --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb -I $(PROTOS_PATH) --nanopb_out=. $< clean: - rm -f *.o *.pbc.c *.pbc.h greeter_client greeter_async_client greeter_async_client2 + rm -f *.o *.pb.c *.pb.h *.pbc.c *.pbc.h greeter_client greeter_async_client greeter_async_client2 # The following is to test your system and ensure a smoother experience. diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 9ca131a29ca27..8e82a6781bd3d 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -36,16 +36,15 @@ #include "helloworld.grpc.pbc.h" int main(int argc, char** argv) { - // Instantiate the client. It requires a channel, out of which the actual RPCs + // Instantiate the channel, out of which the actual RPCs // are created. This channel models a connection to an endpoint (in this case, - // localhost at port 50051). We indicate that the channel isn't authenticated - // (use of InsecureChannelCredentials()). + // localhost at port 50051). // Local greetings server GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); GRPC_context *context = GRPC_context_create(chan); - HelloRequest request = { "world" }; - HelloResponse response; - GRPC_status status = Greeter_SayHello(chan, context, request, &response); + helloworld_HelloRequest request = { "world" }; + helloworld_HelloResponse response; + GRPC_status status = helloworld_Greeter_SayHello(chan, context, request, &response); if (status.code == GRPC_STATUS_OK) { printf("Server replied: %s\n", response.message); return 0; diff --git a/include/grpc_c/codegen/client_context_priv.h b/include/grpc_c/codegen/client_context_priv.h new file mode 100644 index 0000000000000..3efeac1853740 --- /dev/null +++ b/include/grpc_c/codegen/client_context_priv.h @@ -0,0 +1,49 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CLIENT_CONTEXT_PRIV_H +#define GRPC_CLIENT_CONTEXT_PRIV_H + +#include +#include + +typedef struct grpc_serialization_impl { + GRPC_serializer serialize; + GRPC_deserializer deserialize; +} grpc_serialization_impl; + +void GRPC_client_context_set_serialization_impl( + GRPC_client_context *context, + grpc_serialization_impl serialization_impl); + +#endif /* GRPC_CLIENT_CONTEXT_PRIV_H */ diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index bd2ed970543ba..24c2398f34c12 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -37,6 +37,8 @@ #include +typedef struct gpr_timespec GRPC_timespec; + /* Tri-state return for GRPC_commit_ops_and_wait */ typedef enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_SHUTDOWN, /* The completion queue has been shutdown. */ @@ -54,7 +56,7 @@ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq); GRPC_completion_queue_operation_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok); GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, - gpr_timespec deadline, + GRPC_timespec deadline, void **tag, bool *ok); #endif /* GRPC_C_COMPLETION_QUEUE_PUBLIC_H */ diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index eea201402f7dd..02a596e407602 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -51,7 +51,7 @@ typedef struct grpc_client_async_reader GRPC_client_async_reader; typedef struct grpc_client_async_writer GRPC_client_async_writer; typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; -typedef struct GRPC_method { +typedef struct grpc_method { enum RpcType { NORMAL_RPC = 0, CLIENT_STREAMING, /* request streaming */ @@ -59,7 +59,9 @@ typedef struct GRPC_method { BIDI_STREAMING } type; const char* name; -} GRPC_method; +} grpc_method; + +typedef struct grpc_method GRPC_method; /* For C compilers without bool support */ #ifndef __cplusplus diff --git a/include/grpc_c/message.h b/include/grpc_c/message.h index c81272af7577d..42e8af102f3fc 100644 --- a/include/grpc_c/message.h +++ b/include/grpc_c/message.h @@ -38,8 +38,8 @@ #include typedef struct GRPC_message { - void * data; - size_t length; + const void * data; + const size_t length; } GRPC_message; void GRPC_message_destroy(GRPC_message *message); diff --git a/include/grpc_c/serialization.h b/include/grpc_c/serialization.h index 9545cdcab62f7..dcf37af89f9ab 100644 --- a/include/grpc_c/serialization.h +++ b/include/grpc_c/serialization.h @@ -37,7 +37,7 @@ #include -typedef void (*GRPC_serializer)(const GRPC_message input, GRPC_message *output); +typedef GRPC_message (*GRPC_serializer)(const GRPC_message input); typedef void (*GRPC_deserializer)(const GRPC_message input, void *output); #endif /* GRPC_C_SERIALIZATION_PUBLIC_H */ diff --git a/src/c/call_ops.c b/src/c/call_ops.c index a904ee66eac14..d5afb0fee836c 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -56,8 +56,7 @@ const grpc_op_manager grpc_op_send_metadata = { static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_MESSAGE; - grpc_message serialized; - context->serialization_impl.serialize(message, &serialized); + grpc_message serialized = context->serialization_impl.serialize(message); gpr_slice slice = gpr_slice_from_copied_buffer(serialized.data, serialized.length); op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); diff --git a/src/c/client_context.c b/src/c/client_context.c index d8f9e150f6943..b6732c4da665f 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -70,3 +70,10 @@ void GRPC_client_context_destroy(GRPC_client_context **context) { GRPC_status GRPC_get_call_status(GRPC_client_context *context) { return context->status; } + +void GRPC_client_context_set_serialization_impl( + GRPC_client_context *context, + grpc_serialization_impl serialization_impl) { + context->serialization_impl = serialization_impl; +} + diff --git a/src/c/client_context.h b/src/c/client_context.h index 07e0fedee7f43..08be913e5294e 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -36,6 +36,7 @@ #define TEST_GRPC_C_CLIENT_CONTEXT_H #include +#include #include #include #include "status.h" @@ -44,6 +45,7 @@ #include typedef struct grpc_call_op_set grpc_call_op_set; +typedef struct grpc_serialization_impl grpc_serialization_impl; typedef struct grpc_client_context { grpc_metadata *send_metadata_array; @@ -52,17 +54,14 @@ typedef struct grpc_client_context { gpr_timespec deadline; // serialization mechanism used in this call - struct { - GRPC_serializer serialize; - GRPC_deserializer deserialize; - } serialization_impl; + grpc_serialization_impl serialization_impl; // status of the call grpc_status status; // state tracking bool initial_metadata_received; - GRPC_method rpc_method; + grpc_method rpc_method; grpc_channel *channel; grpc_call *call; } grpc_client_context; diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index bfc8a70c34802..6a63583b85b11 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -59,8 +59,9 @@ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq) { } GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, - gpr_timespec deadline, - void **tag, bool *ok) { + GRPC_timespec deadline, + void **tag, + bool *ok) { for (;;) { grpc_call_op_set *set = NULL; grpc_event ev = grpc_completion_queue_next(cq, deadline, NULL); diff --git a/src/c/id_serialization.c b/src/c/id_serialization.c index 824530c3d3ccc..f7b72752e4617 100644 --- a/src/c/id_serialization.c +++ b/src/c/id_serialization.c @@ -35,10 +35,10 @@ #include #include "id_serialization.h" -void GRPC_id_serialize(const grpc_message input, grpc_message *output) { - output->data = malloc(input.length); - memcpy(output->data, input.data, input.length); - output->length = input.length; +grpc_message GRPC_id_serialize(const grpc_message input) { + void *tmp = malloc(input.length); + memcpy(tmp, input.data, input.length); + return (grpc_message) { tmp, input.length }; } void GRPC_id_deserialize(const grpc_message input, void *output) { diff --git a/src/c/id_serialization.h b/src/c/id_serialization.h index ffe8eed4908b9..c1cd0188fe76c 100644 --- a/src/c/id_serialization.h +++ b/src/c/id_serialization.h @@ -40,7 +40,7 @@ /* Serialization functions that doesn't do anything except duplicating the buffer */ -void GRPC_id_serialize(grpc_message input, grpc_message *output); -void GRPC_id_deserialize(grpc_message input, void *output); +grpc_message GRPC_id_serialize(const grpc_message input); +void GRPC_id_deserialize(const grpc_message input, void *output); #endif //TEST_GRPC_C_MOCK_SERIALIZATION_H diff --git a/src/c/message.c b/src/c/message.c index 052813a3cdbcf..c5c11fce0ef19 100644 --- a/src/c/message.c +++ b/src/c/message.c @@ -36,6 +36,6 @@ #include void GRPC_message_destroy(grpc_message *message) { - free(message->data); - message->data = NULL; + free((void *)message->data); } + diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index b7aa5f4b1ae60..96730b4f75f1e 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -330,9 +330,10 @@ GRPC_status $CPrefix$$Service$_$Method$( GRPC_client_context *const context, const $CPrefix$$Request$ request, $CPrefix$$Response$ *response) { - GRPC_message request_msg = { &request, sizeof(request) }; + const GRPC_message request_msg = { &request, sizeof(request) }; GRPC_message response_msg; - context->serialization_impl = { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }; + GRPC_client_context_set_serialization_impl(context, + (grpc_serialization_impl) { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }); GRPC_unary_blocking_call(GRPC_method_HLW_Greeter_SayHello, context, request_msg, response); } )"); @@ -344,8 +345,9 @@ GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( GRPC_client_context *const context, GRPC_completion_queue *cq, const $CPrefix$$Request$ request) { - GRPC_message request_msg = { &request, sizeof(request) }; - context->serialization_impl = { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }; + const GRPC_message request_msg = { &request, sizeof(request) }; + GRPC_client_context_set_serialization_impl(context, + (grpc_serialization_impl) { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }); return GRPC_unary_async_call(cq, GRPC_method_HLW_Greeter_SayHello, request_msg, context); } @@ -399,9 +401,11 @@ grpc::string GetHeaderServices(File *file, // Package string is empty or ends with a dot. It is used to fully qualify // method names. vars["Package"] = file->package(); + // TODO(yifeit): hook this up to C prefix if (!file->package().empty()) { vars["Package"].append("."); } + vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; for (int i = 0; i < file->service_count(); ++i) { PrintHeaderService(printer.get(), file->service(i).get(), &vars); @@ -483,6 +487,7 @@ grpc::string GetSourceIncludes(File *file, static const char *headers_strs[] = { "grpc_c/status_code.h", + "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/channel.h", "grpc_c/unary_blocking_call.h", @@ -490,7 +495,11 @@ grpc::string GetSourceIncludes(File *file, "grpc_c/client_streaming_blocking_call.h", "grpc_c/server_streaming_blocking_call.h", "grpc_c/bidi_streaming_blocking_call.h", - "grpc_c/client_context.h" + "grpc_c/client_context.h", + "grpc_c/codegen/client_context_priv.h", + // Relying on Nanopb for Protobuf serialization for now + "pb_encode.h", + "pb_decode.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); @@ -577,11 +586,11 @@ grpc::string GetSourceServices(File *file, // Package string is empty or ends with a dot. It is used to fully qualify // method names. vars["Package"] = file->package(); - // TODO(yifeit): hook this up to C prefix - vars["CPrefix"] = ""; if (!file->package().empty()) { vars["Package"].append("."); } + // TODO(yifeit): hook this up to C prefix + vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; for (int i = 0; i < file->service_count(); ++i) { PrintSourceService(printer.get(), file->service(i).get(), &vars); diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index cec87cde767d3..6eaae9590d68e 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -67,6 +67,11 @@ extern "C" { #include "test/cpp/util/string_ref_helper.h" #include "test/cpp/util/test_credentials_provider.h" +/** + * End-to-end tests for the gRPC C API. + * As of early July 2016, this C API does not support creating servers, so we pull in a server implementation for C++ + * and put this test under the C++ build. + */ using grpc::testing::kTlsCredentialsType; using std::chrono::system_clock; diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c index b86b7d41898fa..a3abebd8e682c 100644 --- a/test/core/surface/public_headers_must_be_c89.c +++ b/test/core/surface/public_headers_must_be_c89.c @@ -78,6 +78,7 @@ #include #include #include +#include #include #include #include diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index bc16346cbfa20..766e46e09c252 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4239,6 +4239,7 @@ "include/grpc_c/channel.h", "include/grpc_c/client_context.h", "include/grpc_c/client_streaming_blocking_call.h", + "include/grpc_c/codegen/client_context_priv.h", "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", "include/grpc_c/message.h", @@ -4270,6 +4271,7 @@ "include/grpc_c/channel.h", "include/grpc_c/client_context.h", "include/grpc_c/client_streaming_blocking_call.h", + "include/grpc_c/codegen/client_context_priv.h", "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", "include/grpc_c/message.h", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index 9e24000239fdb..04b9211696d7e 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -262,6 +262,7 @@ + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index fd81644078028..7cbeae53f116f 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -54,6 +54,9 @@ include\grpc_c + + include\grpc_c\codegen + include\grpc_c @@ -134,6 +137,9 @@ {544356cf-8159-ab1b-8f53-ee9adb4f8d12} + + {822240bd-8995-665a-1254-fc4e3d885fcb} + {95749a6c-2837-e369-a78b-c88960ec3f61} From 5b6233622bdff7ae474931065d62f6e00fbb5820 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 15:10:00 -0700 Subject: [PATCH 065/202] small refactoring --- src/compiler/c_generator.cc | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 96730b4f75f1e..4911d02a01005 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -70,23 +70,6 @@ grpc::string FilenameIdentifier(const grpc::string &filename) { return result; } -} // namespace - -using grpc::protobuf::FileDescriptor; -using grpc::protobuf::ServiceDescriptor; -using grpc::protobuf::MethodDescriptor; -using grpc::protobuf::Descriptor; -using grpc::protobuf::io::StringOutputStream; - -using grpc_cpp_generator::Parameters; -using grpc_cpp_generator::File; -using grpc_cpp_generator::Method; -using grpc_cpp_generator::Service; -using grpc_cpp_generator::Printer; - -template -T *array_end(T (&array)[N]) { return array + N; } - grpc::string Join(std::vector lines, grpc::string delim) { std::ostringstream imploded; std::copy(lines.begin(), lines.end(), std::ostream_iterator(imploded, delim.c_str())); @@ -106,6 +89,23 @@ grpc::string BlockifyComments(grpc::string input) { return Join(lines, "\n"); } +template +T *array_end(T (&array)[N]) { return array + N; } + +} // namespace + +using grpc::protobuf::FileDescriptor; +using grpc::protobuf::ServiceDescriptor; +using grpc::protobuf::MethodDescriptor; +using grpc::protobuf::Descriptor; +using grpc::protobuf::io::StringOutputStream; + +using grpc_cpp_generator::Parameters; +using grpc_cpp_generator::File; +using grpc_cpp_generator::Method; +using grpc_cpp_generator::Service; +using grpc_cpp_generator::Printer; + // Prints a list of header paths as include directives void PrintIncludes(Printer *printer, const std::vector& headers, const Parameters ¶ms) { std::map vars; @@ -333,8 +333,8 @@ GRPC_status $CPrefix$$Service$_$Method$( const GRPC_message request_msg = { &request, sizeof(request) }; GRPC_message response_msg; GRPC_client_context_set_serialization_impl(context, - (grpc_serialization_impl) { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }); - GRPC_unary_blocking_call(GRPC_method_HLW_Greeter_SayHello, context, request_msg, response); + (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); + GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response); } )"); printer->Print( @@ -347,8 +347,8 @@ GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( const $CPrefix$$Request$ request) { const GRPC_message request_msg = { &request, sizeof(request) }; GRPC_client_context_set_serialization_impl(context, - (grpc_serialization_impl) { HLW_HelloRequest_serializer, HLW_HelloResponse_deserializer }); - return GRPC_unary_async_call(cq, GRPC_method_HLW_Greeter_SayHello, request_msg, context); + (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); + return GRPC_unary_async_call(cq, GRPC_method_$CPrefix$$Service$_$Method$, request_msg, context); } void $CPrefix$$Service$_$Method$_Finish( @@ -401,10 +401,10 @@ grpc::string GetHeaderServices(File *file, // Package string is empty or ends with a dot. It is used to fully qualify // method names. vars["Package"] = file->package(); - // TODO(yifeit): hook this up to C prefix if (!file->package().empty()) { vars["Package"].append("."); } + // TODO(yifeit): hook this up to C prefix vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; for (int i = 0; i < file->service_count(); ++i) { From 93cebee42694a6191430228a0e18c6b5dccf7b4a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 15:59:52 -0700 Subject: [PATCH 066/202] Fix compilation of example --- examples/c/helloworld/Makefile | 2 +- examples/c/helloworld/greeter_client.c | 12 ++++++++---- include/grpc_c/grpc_c.h | 3 ++- include/grpc_c/status.h | 2 -- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/examples/c/helloworld/Makefile b/examples/c/helloworld/Makefile index 01ed69a2b49a5..fc51d664f7336 100644 --- a/examples/c/helloworld/Makefile +++ b/examples/c/helloworld/Makefile @@ -34,7 +34,7 @@ NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/ CC = gcc CFLAGS += -I/usr/local/include -I$(NANOPB_DIR)/ -pthread -LDFLAGS += -L/usr/local/lib `pkg-config --libs grpc` -lprotobuf -lpthread -ldl +LDFLAGS += -L/usr/local/lib `pkg-config --libs grpc` -lgrpc_c -lprotobuf -lpthread -ldl PROTOC = protoc GRPC_C_PLUGIN = grpc_c_plugin GRPC_C_PLUGIN_PATH ?= `which $(GRPC_C_PLUGIN)` diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 8e82a6781bd3d..15c74fa2452b4 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -41,15 +41,19 @@ int main(int argc, char** argv) { // localhost at port 50051). // Local greetings server GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); - GRPC_context *context = GRPC_context_create(chan); + GRPC_client_context *context = GRPC_client_context_create(chan); helloworld_HelloRequest request = { "world" }; - helloworld_HelloResponse response; - GRPC_status status = helloworld_Greeter_SayHello(chan, context, request, &response); + helloworld_HelloReply reply; + GRPC_status status = helloworld_Greeter_SayHello(context, request, &reply); if (status.code == GRPC_STATUS_OK) { - printf("Server replied: %s\n", response.message); + printf("Server replied: %s\n", reply.message); + GRPC_client_context_destroy(&context); + GRPC_channel_destroy(chan); return 0; } else { printf("Error occurred: %s\n", status.details); + GRPC_client_context_destroy(&context); + GRPC_channel_destroy(chan); return -1; } } diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 02a596e407602..37fac0c7a879b 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -36,7 +36,6 @@ #define GRPC_C_PUBLIC_H #include -#include typedef struct grpc_channel GRPC_channel; typedef struct grpc_status GRPC_status; @@ -75,4 +74,6 @@ typedef enum _bool bool; #endif #endif +#include + #endif /* GRPC_C_PUBLIC_H */ diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index fc6f91c96c315..a32cfee388972 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -35,8 +35,6 @@ #ifndef GRPC_C_STATUS_PUBLIC_H #define GRPC_C_STATUS_PUBLIC_H -#include - typedef struct grpc_status { bool ok; grpc_status_code code; From f2ca920a090c7f9e3e2f956cc3cbee8725ccc7f8 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 16:41:09 -0700 Subject: [PATCH 067/202] Generate last bits of glue code for nanopb --- include/grpc_c/pb_compat.h | 44 +++++++++++++++++++++++ src/c/pb_compat.c | 72 +++++++++++++++++++++++++++++++++++++ src/compiler/c_generator.cc | 42 +++++++++++++++++++++- src/compiler/c_generator.h | 5 +++ src/compiler/c_plugin.cc | 11 +++++- 5 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 include/grpc_c/pb_compat.h create mode 100644 src/c/pb_compat.c diff --git a/include/grpc_c/pb_compat.h b/include/grpc_c/pb_compat.h new file mode 100644 index 0000000000000..899261439463a --- /dev/null +++ b/include/grpc_c/pb_compat.h @@ -0,0 +1,44 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_PB_COMPAT_H +#define GRPC_C_PB_COMPAT_H + +#include + +typedef struct GRPC_pb_dynamic_array_state GRPC_pb_dynamic_array_state; + +bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count); +GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc(); + +#endif /* GRPC_C_PB_COMPAT_H */ diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c new file mode 100644 index 0000000000000..b1f88be8df881 --- /dev/null +++ b/src/c/pb_compat.c @@ -0,0 +1,72 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include +#include + +typedef struct GRPC_pb_dynamic_array_state { + void *data; + size_t size; + size_t capacity; +} GRPC_pb_dynamic_array_state; + +static size_t upper_power_of_two(size_t v) +{ + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v++; + return v; +} + +GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc() { + return (GRPC_pb_dynamic_array_state) { + .data = NULL, + .size = 0, + .capacity = 0 + }; +} + +bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count) { + GRPC_pb_dynamic_array_state *state = stream->state; + if (state->size + count > state->capacity) { + state->capacity = upper_power_of_two(state->size + count); + state->data = realloc(state->data, state->capacity); + } + if (buf) memcpy((char *) state->data + state->size, buf, count); + state->size += count; +} diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 4911d02a01005..34e4e17720d80 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -321,6 +321,24 @@ void PrintSourceClientMethod(Printer *printer, (*vars)["Method"] = method->name(); (*vars)["Request"] = method->input_type_name(); (*vars)["Response"] = method->output_type_name(); + + if (method->NoStreaming()) { + (*vars)["MethodEnum"] = "NORMAL_RPC"; + } else if (method->ClientOnlyStreaming()) { + (*vars)["MethodEnum"] = "CLIENT_STREAMING"; + } else if (method->ServerOnlyStreaming()) { + (*vars)["MethodEnum"] = "SERVER_STREAMING"; + } else if (method->BidiStreaming()) { + (*vars)["MethodEnum"] = "BIDI_STREAMING"; + } + + printer->Print(*vars, R"( +GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = { + $MethodEnum$, + "/$Package$$Service$/$Method$" +}; +)"); + if (method->NoStreaming()) { // Unary printer->Print( @@ -499,7 +517,8 @@ grpc::string GetSourceIncludes(File *file, "grpc_c/codegen/client_context_priv.h", // Relying on Nanopb for Protobuf serialization for now "pb_encode.h", - "pb_decode.h" + "pb_decode.h", + "grpc_c/pb_compat.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); @@ -566,6 +585,7 @@ grpc::string GetHeaderIncludes(File *file, static const char *headers_strs[] = { "grpc_c/status_code.h", + "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/client_context.h" }; @@ -592,6 +612,26 @@ grpc::string GetSourceServices(File *file, // TODO(yifeit): hook this up to C prefix vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; + for (auto& msg : dynamic_cast(file)->messages()) { + std::map vars_msg(vars); + vars_msg["msgType"] = msg->name(); + printer->Print(vars_msg, R"( +GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input) { + pb_ostream_t ostream; + ostream.callback = GRPC_pb_compat_dynamic_array_callback; + ostream.state = GRPC_pb_compat_dynamic_array_alloc(); + pb_encode(&ostream, $CPrefix$$msgType$_fields, input.data); + return (GRPC_message) { ostream.state, ostream.bytes_written }; +} +)"); + printer->Print(vars_msg, R"( +void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output) { + pb_istream_t istream = pb_istream_from_buffer((void *) input.data, input.length); + pb_decode(&istream, $CPrefix$$msgType$_fields, output); +} +)"); + } + for (int i = 0; i < file->service_count(); ++i) { PrintSourceService(printer.get(), file->service(i).get(), &vars); printer->Print("\n"); diff --git a/src/compiler/c_generator.h b/src/compiler/c_generator.h index 5969af871cc3e..4af339553bb6b 100644 --- a/src/compiler/c_generator.h +++ b/src/compiler/c_generator.h @@ -44,6 +44,11 @@ using ::grpc_cpp_generator::Parameters; using ::grpc_cpp_generator::File; using ::grpc::string; +class CFile : public grpc_cpp_generator::File { +public: + virtual std::vector messages() const = 0; +}; + // Return the prologue of the generated header file. grpc::string GetHeaderPrologue(File *file, const Parameters ¶ms); diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc index efcdbded3c17f..d60be25d1961d 100644 --- a/src/compiler/c_plugin.cc +++ b/src/compiler/c_plugin.cc @@ -134,7 +134,8 @@ class ProtoBufCPrinter : public grpc_cpp_generator::Printer { grpc::protobuf::io::Printer printer_; }; -class ProtoBufCFile : public grpc_cpp_generator::File { + +class ProtoBufCFile : public CFile { public: ProtoBufCFile(const grpc::protobuf::FileDescriptor *file) : file_(file) { } @@ -176,6 +177,14 @@ class ProtoBufCFile : public grpc_cpp_generator::File { return GetCComments(file_, false); } + virtual std::vector messages() const { + std::vector msgs; + for (int i = 0; i < file_->message_type_count(); i++) { + msgs.push_back(file_->message_type(i)); + } + return msgs; + } + private: const grpc::protobuf::FileDescriptor *file_; }; From 7af77649f71833c006ae4d1aadf9d56d406ee45f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 16:41:21 -0700 Subject: [PATCH 068/202] consistent API --- include/grpc_c/unary_blocking_call.h | 2 +- src/c/unary_blocking_call.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/grpc_c/unary_blocking_call.h b/include/grpc_c/unary_blocking_call.h index 57784653b309a..6c393cd668830 100644 --- a/include/grpc_c/unary_blocking_call.h +++ b/include/grpc_c/unary_blocking_call.h @@ -37,7 +37,7 @@ #include -GRPC_status GRPC_unary_blocking_call(const GRPC_method *const rpc_method, +GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, const GRPC_message message, void *response); diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index ef283613e6a35..66f05b156985e 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -40,7 +40,7 @@ #include #include -GRPC_status GRPC_unary_blocking_call(const GRPC_method *const rpc_method, +GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, const GRPC_message message, void *response) { @@ -49,7 +49,7 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method *const rpc_method, NULL, GRPC_PROPAGATE_DEFAULTS, cq, - rpc_method->name, + rpc_method.name, "", context->deadline, NULL); From 0014854b9f7eae95419256b997feb1a8d588275e Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 16:42:21 -0700 Subject: [PATCH 069/202] Refresh builds and tests --- BUILD | 2 ++ Makefile | 1 + build.yaml | 2 ++ test/c/end2end/end2end_test.cc | 2 +- test/core/surface/public_headers_must_be_c89.c | 1 + tools/run_tests/sources_and_headers.json | 4 ++++ vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 2 ++ vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 6 ++++++ 8 files changed, 19 insertions(+), 1 deletion(-) diff --git a/BUILD b/BUILD index 70fd59765e40b..894079697ce16 100644 --- a/BUILD +++ b/BUILD @@ -557,6 +557,7 @@ cc_library( "src/c/id_serialization.h", "src/c/init_shutdown.h", "src/c/message.h", + "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.h", "src/c/status.h", "src/c/tag.h", @@ -585,6 +586,7 @@ cc_library( "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", "include/grpc_c/message.h", + "include/grpc_c/pb_compat.h", "include/grpc_c/serialization.h", "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", diff --git a/Makefile b/Makefile index 14af520405e49..65199f66271ed 100644 --- a/Makefile +++ b/Makefile @@ -2760,6 +2760,7 @@ PUBLIC_HEADERS_C += \ include/grpc_c/completion_queue.h \ include/grpc_c/grpc_c.h \ include/grpc_c/message.h \ + include/grpc_c/pb_compat.h \ include/grpc_c/serialization.h \ include/grpc_c/server_streaming_blocking_call.h \ include/grpc_c/status.h \ diff --git a/build.yaml b/build.yaml index 689acbfea1631..69a571d852fcc 100644 --- a/build.yaml +++ b/build.yaml @@ -839,6 +839,7 @@ libs: - include/grpc_c/completion_queue.h - include/grpc_c/grpc_c.h - include/grpc_c/message.h + - include/grpc_c/pb_compat.h - include/grpc_c/serialization.h - include/grpc_c/server_streaming_blocking_call.h - include/grpc_c/status.h @@ -855,6 +856,7 @@ libs: - src/c/id_serialization.h - src/c/init_shutdown.h - src/c/message.h + - src/c/pb_compat.c - src/c/server_streaming_blocking_call.h - src/c/status.h - src/c/tag.h diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 6eaae9590d68e..67ba9a378852b 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -148,7 +148,7 @@ static void SendUnaryRpc(GRPC_channel *channel, GRPC_message msg = {str, sizeof(str)}; // using char array to hold RPC result while protobuf is not there yet char resp[100]; - GRPC_status status = GRPC_unary_blocking_call(&method, context, msg, resp); + GRPC_status status = GRPC_unary_blocking_call(method, context, msg, resp); EXPECT_TRUE(status.ok) << status.details; EXPECT_TRUE(status.code == GRPC_STATUS_OK) << status.details; diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c index a3abebd8e682c..d0cca3111622b 100644 --- a/test/core/surface/public_headers_must_be_c89.c +++ b/test/core/surface/public_headers_must_be_c89.c @@ -82,6 +82,7 @@ #include #include #include +#include #include #include #include diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 766e46e09c252..2869d28e3f7da 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4243,6 +4243,7 @@ "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", "include/grpc_c/message.h", + "include/grpc_c/pb_compat.h", "include/grpc_c/serialization.h", "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", @@ -4258,6 +4259,7 @@ "src/c/id_serialization.h", "src/c/init_shutdown.h", "src/c/message.h", + "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.h", "src/c/status.h", "src/c/tag.h", @@ -4275,6 +4277,7 @@ "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", "include/grpc_c/message.h", + "include/grpc_c/pb_compat.h", "include/grpc_c/serialization.h", "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", @@ -4300,6 +4303,7 @@ "src/c/init_shutdown.h", "src/c/message.c", "src/c/message.h", + "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.c", "src/c/server_streaming_blocking_call.h", "src/c/status.h", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index 04b9211696d7e..dc529097b94b0 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -266,6 +266,7 @@ + @@ -283,6 +284,7 @@ + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index 7cbeae53f116f..cfa0c0132639b 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -66,6 +66,9 @@ include\grpc_c + + include\grpc_c + include\grpc_c @@ -113,6 +116,9 @@ src\c + + src\c + src\c From 8f22f9cfe3bc3791a4a6a4788ffc0cf567ef5f06 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 16:49:45 -0700 Subject: [PATCH 070/202] Add pb_compat.c and fix errors there --- BUILD | 2 +- CMakeLists.txt | 1 + Makefile | 2 ++ build.yaml | 2 +- include/grpc_c/pb_compat.h | 2 ++ src/c/pb_compat.c | 9 +++++++-- tools/run_tests/sources_and_headers.json | 1 - vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 3 ++- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 6 +++--- 9 files changed, 19 insertions(+), 9 deletions(-) diff --git a/BUILD b/BUILD index 894079697ce16..1e87cb6f2db17 100644 --- a/BUILD +++ b/BUILD @@ -557,7 +557,6 @@ cc_library( "src/c/id_serialization.h", "src/c/init_shutdown.h", "src/c/message.h", - "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.h", "src/c/status.h", "src/c/tag.h", @@ -573,6 +572,7 @@ cc_library( "src/c/id_serialization.c", "src/c/init_shutdown.c", "src/c/message.c", + "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.c", "src/c/unary_async_call.c", "src/c/unary_blocking_call.c", diff --git a/CMakeLists.txt b/CMakeLists.txt index 9255d2fafc6ba..9be44815b535e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -349,6 +349,7 @@ add_library(grpc_c src/c/id_serialization.c src/c/init_shutdown.c src/c/message.c + src/c/pb_compat.c src/c/server_streaming_blocking_call.c src/c/unary_async_call.c src/c/unary_blocking_call.c diff --git a/Makefile b/Makefile index 65199f66271ed..5a24cd0be2c46 100644 --- a/Makefile +++ b/Makefile @@ -2747,6 +2747,7 @@ LIBGRPC_C_SRC = \ src/c/id_serialization.c \ src/c/init_shutdown.c \ src/c/message.c \ + src/c/pb_compat.c \ src/c/server_streaming_blocking_call.c \ src/c/unary_async_call.c \ src/c/unary_blocking_call.c \ @@ -12286,6 +12287,7 @@ src/c/completion_queue.c: $(OPENSSL_DEP) src/c/id_serialization.c: $(OPENSSL_DEP) src/c/init_shutdown.c: $(OPENSSL_DEP) src/c/message.c: $(OPENSSL_DEP) +src/c/pb_compat.c: $(OPENSSL_DEP) src/c/server_streaming_blocking_call.c: $(OPENSSL_DEP) src/c/unary_async_call.c: $(OPENSSL_DEP) src/c/unary_blocking_call.c: $(OPENSSL_DEP) diff --git a/build.yaml b/build.yaml index 69a571d852fcc..3ebbcf0ec5fb2 100644 --- a/build.yaml +++ b/build.yaml @@ -856,7 +856,6 @@ libs: - src/c/id_serialization.h - src/c/init_shutdown.h - src/c/message.h - - src/c/pb_compat.c - src/c/server_streaming_blocking_call.h - src/c/status.h - src/c/tag.h @@ -873,6 +872,7 @@ libs: - src/c/id_serialization.c - src/c/init_shutdown.c - src/c/message.c + - src/c/pb_compat.c - src/c/server_streaming_blocking_call.c - src/c/unary_async_call.c - src/c/unary_blocking_call.c diff --git a/include/grpc_c/pb_compat.h b/include/grpc_c/pb_compat.h index 899261439463a..209e4cb911fbd 100644 --- a/include/grpc_c/pb_compat.h +++ b/include/grpc_c/pb_compat.h @@ -35,8 +35,10 @@ #define GRPC_C_PB_COMPAT_H #include +#include typedef struct GRPC_pb_dynamic_array_state GRPC_pb_dynamic_array_state; +typedef struct pb_ostream_s pb_ostream_t; bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count); GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc(); diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index b1f88be8df881..732c093f555fb 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -34,6 +34,9 @@ #include #include #include +#include +#include +#include "alloc.h" typedef struct GRPC_pb_dynamic_array_state { void *data; @@ -54,11 +57,11 @@ static size_t upper_power_of_two(size_t v) } GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc() { - return (GRPC_pb_dynamic_array_state) { + return GRPC_ALLOC_STRUCT(GRPC_pb_dynamic_array_state, { .data = NULL, .size = 0, .capacity = 0 - }; + }); } bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count) { @@ -67,6 +70,8 @@ bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t * state->capacity = upper_power_of_two(state->size + count); state->data = realloc(state->data, state->capacity); } + if (state->data == NULL) return false; if (buf) memcpy((char *) state->data + state->size, buf, count); state->size += count; + return true; } diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 2869d28e3f7da..c33e9b604a53f 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4259,7 +4259,6 @@ "src/c/id_serialization.h", "src/c/init_shutdown.h", "src/c/message.h", - "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.h", "src/c/status.h", "src/c/tag.h", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index dc529097b94b0..9116800e4b816 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -284,7 +284,6 @@ - @@ -312,6 +311,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index cfa0c0132639b..cda8b3d557fca 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -31,6 +31,9 @@ src\c + + src\c + src\c @@ -116,9 +119,6 @@ src\c - - src\c - src\c From b09f164ae65832ee9d072e0d7569addc60be0912 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 17:37:23 -0700 Subject: [PATCH 071/202] Figure out how to decode strings in nanopb... --- examples/c/helloworld/greeter_client.c | 29 +++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 15c74fa2452b4..5e79ba2275534 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -34,6 +34,26 @@ #include #include "helloworld.grpc.pbc.h" +#include + +bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) +{ + char *str = "world"; + if (!pb_encode_tag_for_field(stream, field)) + return false; + + return pb_encode_string(stream, (uint8_t*)str, strlen(str)); +} + +bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { + size_t len = stream->bytes_left; + char *str = malloc(len + 1); + if(!pb_read(stream, str, len)) return false; + str[len] = '\0'; + printf("Server replied %s\n", str); + free(str); + return true; +} int main(int argc, char** argv) { // Instantiate the channel, out of which the actual RPCs @@ -42,18 +62,17 @@ int main(int argc, char** argv) { // Local greetings server GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); GRPC_client_context *context = GRPC_client_context_create(chan); - helloworld_HelloRequest request = { "world" }; - helloworld_HelloReply reply; + helloworld_HelloRequest request = { .name.funcs.encode = write_string }; + helloworld_HelloReply reply = { .message.funcs.decode = read_string }; GRPC_status status = helloworld_Greeter_SayHello(context, request, &reply); if (status.code == GRPC_STATUS_OK) { - printf("Server replied: %s\n", reply.message); GRPC_client_context_destroy(&context); - GRPC_channel_destroy(chan); + GRPC_channel_destroy(&chan); return 0; } else { printf("Error occurred: %s\n", status.details); GRPC_client_context_destroy(&context); - GRPC_channel_destroy(chan); + GRPC_channel_destroy(&chan); return -1; } } From 0863c353e48275ad40a0fa7d187c07e8531ab539 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 17:38:04 -0700 Subject: [PATCH 072/202] Working unary call. Fix all memory errors --- include/grpc_c/pb_compat.h | 2 ++ src/c/pb_compat.c | 8 ++++++++ src/compiler/c_generator.cc | 18 +++++++++++++----- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/include/grpc_c/pb_compat.h b/include/grpc_c/pb_compat.h index 209e4cb911fbd..9b42a8bad3749 100644 --- a/include/grpc_c/pb_compat.h +++ b/include/grpc_c/pb_compat.h @@ -42,5 +42,7 @@ typedef struct pb_ostream_s pb_ostream_t; bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count); GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc(); +void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state); +void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state); #endif /* GRPC_C_PB_COMPAT_H */ diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index 732c093f555fb..cbe0fa2bcd61c 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -64,6 +64,10 @@ GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc() { }); } +void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state) { + free(state); +} + bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count) { GRPC_pb_dynamic_array_state *state = stream->state; if (state->size + count > state->capacity) { @@ -75,3 +79,7 @@ bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t * state->size += count; return true; } + +void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state) { + return state->data; +} diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 34e4e17720d80..40ca2dfdf12d6 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -587,7 +587,8 @@ grpc::string GetHeaderIncludes(File *file, "grpc_c/status_code.h", "grpc_c/status.h", "grpc_c/grpc_c.h", - "grpc_c/client_context.h" + "grpc_c/client_context.h", + "grpc_c/channel.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); @@ -617,11 +618,18 @@ grpc::string GetSourceServices(File *file, vars_msg["msgType"] = msg->name(); printer->Print(vars_msg, R"( GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input) { - pb_ostream_t ostream; - ostream.callback = GRPC_pb_compat_dynamic_array_callback; - ostream.state = GRPC_pb_compat_dynamic_array_alloc(); + pb_ostream_t ostream = { + .callback = GRPC_pb_compat_dynamic_array_callback, + .state = GRPC_pb_compat_dynamic_array_alloc(), + .max_size = SIZE_MAX + }; pb_encode(&ostream, $CPrefix$$msgType$_fields, input.data); - return (GRPC_message) { ostream.state, ostream.bytes_written }; + GRPC_message msg = (GRPC_message) { + GRPC_pb_compat_dynamic_array_get_content(ostream.state), + ostream.bytes_written + }; + GRPC_pb_compat_dynamic_array_free(ostream.state); + return msg; } )"); printer->Print(vars_msg, R"( From 4a2210eba6e9d4039467baf3f6afb799d30fd951 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 14 Jul 2016 17:41:14 -0700 Subject: [PATCH 073/202] Check ok status --- examples/c/helloworld/greeter_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 5e79ba2275534..aba5a46dfe549 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -65,7 +65,7 @@ int main(int argc, char** argv) { helloworld_HelloRequest request = { .name.funcs.encode = write_string }; helloworld_HelloReply reply = { .message.funcs.decode = read_string }; GRPC_status status = helloworld_Greeter_SayHello(context, request, &reply); - if (status.code == GRPC_STATUS_OK) { + if (status.code == GRPC_STATUS_OK && status.ok) { GRPC_client_context_destroy(&context); GRPC_channel_destroy(&chan); return 0; From c9a9fb38b278fd0ace88958e662f87a75e24aa70 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 15:04:18 -0700 Subject: [PATCH 074/202] streamline API --- src/compiler/c_generator.cc | 57 ++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 40ca2dfdf12d6..40c69ea918033 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -178,10 +178,8 @@ GRPC_client_writer $CPrefix$$Service$_$Method$( bool $CPrefix$$Service$_$Method$_Write( GRPC_client_writer *writer, $CPrefix$$Request$ request); - -/* Terminating the writer takes care of ending the call, freeing the writer. */ -/* Returns call status in the context object. */ -void GRPC_client_writer_terminate(GRPC_client_writer *writer); +/* Call GRPC_client_writer_terminate to close the stream and end the call */ +/* The writer is automatically freed when the request ends */ )"); printer->Print( @@ -189,7 +187,6 @@ void GRPC_client_writer_terminate(GRPC_client_writer *writer); R"( /* Async */ GRPC_client_async_writer *$CPrefix$$Service$_$Method$_Async( - GRPC_channel *channel, GRPC_client_context *const context, GRPC_completion_queue *cq); @@ -202,8 +199,8 @@ void $CPrefix$$Service$_$Method$_Finish( GRPC_client_async_writer *writer, $CPrefix$$Response$ *response, void *tag); -/* call GRPC_completion_queue_next on the cq to wait for result */ -/* the writer object is automatically freed when the request ends */ +/* Call GRPC_completion_queue_next on the cq to wait for result. */ +/* The writer object is automatically freed when the request ends. */ )"); } else if (method->ServerOnlyStreaming()) { @@ -217,7 +214,7 @@ GRPC_client_reader $CPrefix$$Service$_$Method$( GRPC_client_context *const context, $CPrefix$$Request$ request); -/* Return value of true means write succeeded */ +/* Return value of true means read succeeded */ bool $CPrefix$$Service$_$Method$_Read( GRPC_client_reader *reader, $CPrefix$$Response$ *response); @@ -227,7 +224,6 @@ bool $CPrefix$$Service$_$Method$_Read( R"( /* Async */ GRPC_client_async_reader *$CPrefix$$Service$_$Method$_Async( - GRPC_channel *channel, GRPC_client_context *const context, GRPC_completion_queue *cq, const $CPrefix$$Request$ request); @@ -241,7 +237,7 @@ void $CPrefix$$Service$_$Method$_Finish( GRPC_client_async_reader *reader, void *tag); /* call GRPC_completion_queue_next on the cq to wait for result */ -/* the writer object is automatically freed when the request ends */ +/* the reader object is automatically freed when the request ends */ )"); } else if (method->BidiStreaming()) { @@ -252,7 +248,6 @@ void $CPrefix$$Service$_$Method$_Finish( R"( /* Sync */ GRPC_client_reader_writer *$CPrefix$$Service$_$Method$( - GRPC_channel *channel, GRPC_client_context *const context); bool $CPrefix$$Service$_$Method$_Read( @@ -269,7 +264,6 @@ bool $CPrefix$$Service$_$Method$_Write( R"( /* Async */ GRPC_client_async_reader_writer *$CPrefix$$Service$_$Method$_Async( - GRPC_channel *channel, GRPC_client_context *const context); void $CPrefix$$Service$_$Method$_Read_Async( @@ -349,7 +343,6 @@ GRPC_status $CPrefix$$Service$_$Method$( const $CPrefix$$Request$ request, $CPrefix$$Response$ *response) { const GRPC_message request_msg = { &request, sizeof(request) }; - GRPC_message response_msg; GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response); @@ -377,7 +370,45 @@ void $CPrefix$$Service$_$Method$_Finish( } )"); } else if (method->ClientOnlyStreaming()) { + printer->Print( + *vars, + R"( +GRPC_client_writer $CPrefix$$Service$_$Method$( + GRPC_client_context *const context, + $CPrefix$$Response$ *response) { + GRPC_client_context_set_serialization_impl(context, + (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); + GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, response); +} + +bool $CPrefix$$Service$_$Method$_Write( + GRPC_client_writer *writer, + $CPrefix$$Request$ request) { + const GRPC_message request_msg = { &request, sizeof(request) }; + GRPC_client_streaming_blocking_write(writer, request_msg); +} +)"); + + printer->Print( + *vars, + R"( +GRPC_client_async_writer *$CPrefix$$Service$_$Method$_Async( + GRPC_client_context *const context, + GRPC_completion_queue *cq) { +} + +void $CPrefix$$Service$_$Method$_Write_Async( + GRPC_client_async_writer *writer, + const $CPrefix$$Request$ request, + void *tag) { +} +void $CPrefix$$Service$_$Method$_Finish( + GRPC_client_async_writer *writer, + $CPrefix$$Response$ *response, + void *tag) { +} +)"); } else if (method->ServerOnlyStreaming()) { } else if (method->BidiStreaming()) { From 242b9c32fe096e9f19277c345efcc76f465bf4e8 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 15:12:10 -0700 Subject: [PATCH 075/202] Add clean up actions in async --- src/c/call_ops.h | 8 +++++++- src/c/completion_queue.c | 10 ++++++++++ src/c/unary_async_call.c | 14 +++++++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 25b8f3adcd32d..c117b9a29eddc 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -55,6 +55,11 @@ typedef struct grpc_op_manager { enum { GRPC_MAX_OP_COUNT = 8 }; +typedef struct grpc_closure { + void *arg; + void (*callback)(void *arg); +} grpc_closure; + typedef struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; grpc_client_context * const context; @@ -70,7 +75,8 @@ typedef struct grpc_call_op_set { // used in async calls void *user_tag; - bool *user_done; // for clients reading a stream + bool *user_done; /* for clients reading a stream */ + grpc_closure async_cleanup; /* will be called when RPC ends */ } grpc_call_op_set; void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 6a63583b85b11..fab6b95b42e94 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -84,6 +84,12 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_ *tag = set->user_tag; *ok = (ev.success != 0) && status; + + // run user-defined cleanup + if (set->async_cleanup.callback) { + set->async_cleanup.callback(set->async_cleanup.arg); + } + return GRPC_COMPLETION_QUEUE_GOT_EVENT; } } @@ -102,5 +108,9 @@ bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag) GPR_ASSERT(set->user_tag == ev.tag); // run post-processing bool status = grpc_finish_op_from_call_set(set, set->context); + // run user-defined cleanup + if (set->async_cleanup.callback) { + set->async_cleanup.callback(set->async_cleanup.arg); + } return (ev.success != 0) && status; } diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 0ebfa337b391b..32c0b0c26a402 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -39,6 +39,12 @@ #include #include "tag.h" +static void free_reader_and_call(void *arg) { + GRPC_client_async_response_reader *reader = arg; + grpc_call_destroy(reader->call); + free(reader); +} + GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue *cq, const GRPC_method rpc_method, const GRPC_message request, @@ -80,10 +86,16 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue * grpc_op_recv_status }, context, - .response = NULL + .response = NULL, } }); + // Different from blocking call, we need to inform completion queue to run cleanup for us + reader->finish_buf.async_cleanup = (grpc_closure) { + .arg = reader, + .callback = free_reader_and_call + }; + grpc_start_batch_from_op_set(reader->call, &reader->init_buf, reader->context, request, NULL); return reader; } From a1994eef92c4957c4d44e1c8998b539a4ba6f9fc Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 15:24:14 -0700 Subject: [PATCH 076/202] Hook up the other 4 kinds of APIs --- src/compiler/c_generator.cc | 71 +++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 40c69ea918033..33cc2b2f1faf9 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -180,6 +180,7 @@ bool $CPrefix$$Service$_$Method$_Write( $CPrefix$$Request$ request); /* Call GRPC_client_writer_terminate to close the stream and end the call */ /* The writer is automatically freed when the request ends */ +#define $CPrefix$$Service$_$Method$_Terminate GRPC_client_writer_terminate )"); printer->Print( @@ -257,6 +258,11 @@ bool $CPrefix$$Service$_$Method$_Read( bool $CPrefix$$Service$_$Method$_Write( GRPC_client_reader_writer *reader_writer, $CPrefix$$Request$ request); + +/* Call GRPC_client_reader_writer_writes_done to signal to the server that we are no longer sending request items */ +#define $CPrefix$$Service$_$Method$_Writes_Done GRPC_client_reader_writer_writes_done +/* Call GRPC_client_reader_writer_terminate to end the call. The reader_writer object is automatically freed */ +#define $CPrefix$$Service$_$Method$_Terminate GRPC_client_reader_writer_terminate )"); printer->Print( @@ -369,6 +375,7 @@ void $CPrefix$$Service$_$Method$_Finish( GRPC_client_async_finish(reader, response, tag); } )"); + } else if (method->ClientOnlyStreaming()) { printer->Print( *vars, @@ -378,7 +385,7 @@ GRPC_client_writer $CPrefix$$Service$_$Method$( $CPrefix$$Response$ *response) { GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, response); + return GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, response); } bool $CPrefix$$Service$_$Method$_Write( @@ -392,27 +399,63 @@ bool $CPrefix$$Service$_$Method$_Write( printer->Print( *vars, R"( -GRPC_client_async_writer *$CPrefix$$Service$_$Method$_Async( - GRPC_client_context *const context, - GRPC_completion_queue *cq) { -} +/* Async TBD */ +)"); -void $CPrefix$$Service$_$Method$_Write_Async( - GRPC_client_async_writer *writer, - const $CPrefix$$Request$ request, - void *tag) { + } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + R"( +GRPC_client_reader $CPrefix$$Service$_$Method$( + GRPC_client_context *const context, + $CPrefix$$Request$ request) { + const GRPC_message request_msg = { &request, sizeof(request) }; + GRPC_client_context_set_serialization_impl(context, + (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); + return GRPC_server_streaming_blocking_call(GRPC_method$CPrefix$$Service$_$Method$, context, request_msg); } -void $CPrefix$$Service$_$Method$_Finish( - GRPC_client_async_writer *writer, - $CPrefix$$Response$ *response, - void *tag) { +bool $CPrefix$$Service$_$Method$_Read( + GRPC_client_reader *reader, + $CPrefix$$Response$ *response) { + return GRPC_server_streaming_blocking_read(reader, response); } )"); - } else if (method->ServerOnlyStreaming()) { + printer->Print( + *vars, + R"( +/* Async TBD */ +)"); } else if (method->BidiStreaming()) { + printer->Print( + *vars, + R"( +GRPC_client_reader_writer *$CPrefix$$Service$_$Method$( + GRPC_client_context *const context) { + GRPC_client_context_set_serialization_impl(context, + (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); + return GRPC_bidi_streaming_blocking_call(GRPC_method$CPrefix$$Service$_$Method$, context); +} +bool $CPrefix$$Service$_$Method$_Read( + GRPC_client_reader_writer *reader_writer, + $CPrefix$$Response$ *response) { + return GRPC_bidi_streaming_blocking_read(reader_writer, response); +} + +bool $CPrefix$$Service$_$Method$_Write( + GRPC_client_reader_writer *reader_writer, + $CPrefix$$Request$ request) { + const GRPC_message request_msg = { &request, sizeof(request) }; + return GRPC_bidi_streaming_blocking_write(reader_writer, request_msg); +} +)"); + printer->Print( + *vars, + R"( +/* Async TBD */ +)"); } } From bc9a6cb0ea1b4b54715ded339ca21a0d74dfa57f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 15:40:28 -0700 Subject: [PATCH 077/202] Add async example --- examples/c/helloworld/greeter_async_client.c | 53 +++++++++++++++++++ examples/c/helloworld/greeter_async_client2.c | 2 +- examples/c/helloworld/greeter_client.c | 1 - 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c index a1dda037bd6f3..59f1ba13323c8 100644 --- a/examples/c/helloworld/greeter_async_client.c +++ b/examples/c/helloworld/greeter_async_client.c @@ -31,8 +31,61 @@ * */ +#include +#include + #include "helloworld.grpc.pbc.h" +#include +#include + +bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) +{ + char *str = "world"; + if (!pb_encode_tag_for_field(stream, field)) + return false; + + return pb_encode_string(stream, (uint8_t*)str, strlen(str)); +} + +bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { + size_t len = stream->bytes_left; + char *str = malloc(len + 1); + if(!pb_read(stream, str, len)) return false; + str[len] = '\0'; + printf("Server replied %s\n", str); + free(str); + return true; +} int main(int argc, char** argv) { + GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); + GRPC_client_context *context = GRPC_client_context_create(chan); + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + helloworld_HelloRequest request = { .name.funcs.encode = write_string }; + helloworld_HelloReply reply = { .message.funcs.decode = read_string }; + GRPC_client_async_response_reader *reader = helloworld_Greeter_SayHello_Async(context, cq, request); + + // set up finish notification via tag + bool ok; + void *tag; + helloworld_Greeter_SayHello_Finish(reader, &reply, /*TAG*/ (void*) 12345); + + // wait for async RPC to finish + GRPC_completion_queue_operation_status queue_status = GRPC_completion_queue_next(cq, tag, &ok); + assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); + assert(ok); + assert(tag == (void*) 12345); + + // get status from context + GRPC_status status = GRPC_get_call_status(context); + assert(status.ok); + assert(status.code == GRPC_STATUS_OK); + + GRPC_completion_queue_shutdown(cq); + while (GRPC_completion_queue_next(cq, tag, &ok) != GRPC_COMPLETION_QUEUE_SHUTDOWN) { } + GRPC_completion_queue_destroy(cq); + + GRPC_client_context_destroy(&context); + GRPC_channel_destroy(&chan); return 0; } diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index 3c47c78bc74a3..a1dda037bd6f3 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -34,5 +34,5 @@ #include "helloworld.grpc.pbc.h" int main(int argc, char** argv) { - return 0; + return 0; } diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index aba5a46dfe549..85b12f1b6026f 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -59,7 +59,6 @@ int main(int argc, char** argv) { // Instantiate the channel, out of which the actual RPCs // are created. This channel models a connection to an endpoint (in this case, // localhost at port 50051). - // Local greetings server GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); GRPC_client_context *context = GRPC_client_context_create(chan); helloworld_HelloRequest request = { .name.funcs.encode = write_string }; From faf051dd7730edc69ba976cf30761e1c529ea374 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 15:45:27 -0700 Subject: [PATCH 078/202] Fix bug in async example --- examples/c/helloworld/greeter_async_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c index 59f1ba13323c8..0384458823735 100644 --- a/examples/c/helloworld/greeter_async_client.c +++ b/examples/c/helloworld/greeter_async_client.c @@ -71,7 +71,7 @@ int main(int argc, char** argv) { helloworld_Greeter_SayHello_Finish(reader, &reply, /*TAG*/ (void*) 12345); // wait for async RPC to finish - GRPC_completion_queue_operation_status queue_status = GRPC_completion_queue_next(cq, tag, &ok); + GRPC_completion_queue_operation_status queue_status = GRPC_completion_queue_next(cq, &tag, &ok); assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); assert(ok); assert(tag == (void*) 12345); From 6f81210b13696300e05896858b1d9d02e68cb73d Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 15:45:47 -0700 Subject: [PATCH 079/202] fix double destroying call bug --- src/c/unary_async_call.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 32c0b0c26a402..c74dd9afcc1dc 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -41,7 +41,6 @@ static void free_reader_and_call(void *arg) { GRPC_client_async_response_reader *reader = arg; - grpc_call_destroy(reader->call); free(reader); } From eafe793a3efbea908c932bd1fcbad17b02ee9d40 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 17:22:39 -0700 Subject: [PATCH 080/202] Add comments to examples --- examples/c/helloworld/greeter_async_client.c | 5 +++++ examples/c/helloworld/greeter_async_client2.c | 10 ++++++++++ examples/c/helloworld/greeter_client.c | 8 ++++++++ 3 files changed, 23 insertions(+) diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c index 0384458823735..23e90331d8088 100644 --- a/examples/c/helloworld/greeter_async_client.c +++ b/examples/c/helloworld/greeter_async_client.c @@ -31,6 +31,10 @@ * */ +/** + * This file demonstrates the basic usage of async unary API. + */ + #include #include @@ -63,6 +67,7 @@ int main(int argc, char** argv) { GRPC_completion_queue *cq = GRPC_completion_queue_create(); helloworld_HelloRequest request = { .name.funcs.encode = write_string }; helloworld_HelloReply reply = { .message.funcs.decode = read_string }; + // this method returns immediately GRPC_client_async_response_reader *reader = helloworld_Greeter_SayHello_Async(context, cq, request); // set up finish notification via tag diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index a1dda037bd6f3..c68b15400e668 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -33,6 +33,16 @@ #include "helloworld.grpc.pbc.h" +/** + * This example shows the async unary API where there are multiple worker threads processing RPCs. + */ + int main(int argc, char** argv) { + GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); + GRPC_client_context *context = GRPC_client_context_create(chan); + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + + + return 0; } diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 85b12f1b6026f..6d3ae5f901703 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -36,6 +36,10 @@ #include "helloworld.grpc.pbc.h" #include +/** + * Nanopb callbacks for string encoding/decoding. + */ + bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) { char *str = "world"; @@ -55,6 +59,10 @@ bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { return true; } +/** + * Fires a single unary RPC and checks the status. + */ + int main(int argc, char** argv) { // Instantiate the channel, out of which the actual RPCs // are created. This channel models a connection to an endpoint (in this case, From ed98614cad7ef3daaa89d6f2366258fcf30f5610 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 15 Jul 2016 17:41:05 -0700 Subject: [PATCH 081/202] Add advanced async client --- examples/c/helloworld/greeter_async_client.c | 8 +- examples/c/helloworld/greeter_async_client2.c | 102 +++++++++++++++++- examples/c/helloworld/greeter_client.c | 4 +- 3 files changed, 109 insertions(+), 5 deletions(-) diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c index 23e90331d8088..768dc76c94f33 100644 --- a/examples/c/helloworld/greeter_async_client.c +++ b/examples/c/helloworld/greeter_async_client.c @@ -42,7 +42,11 @@ #include #include -bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) +/** + * Nanopb callbacks for string encoding/decoding. + */ + +static bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) { char *str = "world"; if (!pb_encode_tag_for_field(stream, field)) @@ -51,7 +55,7 @@ bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *a return pb_encode_string(stream, (uint8_t*)str, strlen(str)); } -bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { +static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); if(!pb_read(stream, str, len)) return false; diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index c68b15400e668..cbfa731d7d672 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -31,18 +31,118 @@ * */ +/** + * This example shows the async unary API where there are multiple worker threads processing RPCs. + */ + +#include +#include + #include "helloworld.grpc.pbc.h" +#include +#include + +typedef struct async_client { + GRPC_client_context *context; + helloworld_HelloReply reply; +} async_client; + +pthread_mutex_t num_responses_lock; +int num_responses; /** - * This example shows the async unary API where there are multiple worker threads processing RPCs. + * Nanopb callbacks for string encoding/decoding. */ +static bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) +{ + char *str = "world"; + if (!pb_encode_tag_for_field(stream, field)) + return false; + + return pb_encode_string(stream, (uint8_t*)str, strlen(str)); +} + +static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { + size_t len = stream->bytes_left; + char *str = malloc(len + 1); + if(!pb_read(stream, str, len)) return false; + str[len] = '\0'; + printf("Server replied %s\n", str); + free(str); + return true; +} + +static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq) { + GRPC_client_context *context = GRPC_client_context_create(chan); + + async_client *client = (async_client *) calloc(1, sizeof(async_client)); + client->context = context; + client->reply.message.funcs.decode = read_string; + + helloworld_HelloRequest request = { .name.funcs.encode = write_string }; + GRPC_client_async_response_reader *reader = helloworld_Greeter_SayHello_Async(context, cq, request); + helloworld_Greeter_SayHello_Finish(reader, &client->reply, client); +} + +static void *async_say_hello_worker(void *param) { + int i; + GRPC_completion_queue *cq = (GRPC_completion_queue *) param; + for (; ; ) { + void *tag; + bool ok; + GRPC_completion_queue_operation_status status = GRPC_completion_queue_next(cq, &tag, &ok); + if (status == GRPC_COMPLETION_QUEUE_SHUTDOWN) { + printf("Worker thread shutting down\n"); + return NULL; + } + + // Increment response count + pthread_mutex_lock(&num_responses_lock); + num_responses++; + pthread_mutex_unlock(&num_responses_lock); + + assert(ok); + assert(tag != NULL); + async_client *client = (async_client *) tag; + GRPC_client_context_destroy(&client->context); + free(client); + } + return NULL; +} + int main(int argc, char** argv) { GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); GRPC_client_context *context = GRPC_client_context_create(chan); GRPC_completion_queue *cq = GRPC_completion_queue_create(); + num_responses = 0; + pthread_mutex_init(&num_responses_lock, NULL); + + /* Start worker threads */ +#define THREAD_COUNT 3 + pthread_t tids[THREAD_COUNT]; + int i; + for (i = 0; i < THREAD_COUNT; i++) { + pthread_create(&tids[i], NULL, async_say_hello_worker, cq); + } + + for (i = 0; i < 100; i++) { + async_say_hello(chan, cq); + } + + GRPC_completion_queue_shutdown(cq); + + printf("Waiting for thread to terminate\n"); + for (i = 0; i < THREAD_COUNT; i++) { + pthread_join(tids[i], NULL); + } + + GRPC_completion_queue_destroy(cq); + GRPC_channel_destroy(&chan); + printf("Total number of responses: %d\n", num_responses); + pthread_mutex_destroy(&num_responses_lock); return 0; } diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 6d3ae5f901703..64f0c8d9e225b 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -40,7 +40,7 @@ * Nanopb callbacks for string encoding/decoding. */ -bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) +static bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) { char *str = "world"; if (!pb_encode_tag_for_field(stream, field)) @@ -49,7 +49,7 @@ bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *a return pb_encode_string(stream, (uint8_t*)str, strlen(str)); } -bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { +static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); if(!pb_read(stream, str, len)) return false; From 4a8abdd6a2281aa24d365e38608f3a2f51ab6eed Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 18 Jul 2016 16:08:50 -0700 Subject: [PATCH 082/202] comments and cosmetics --- src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.h | 6 +++--- src/c/client_context.c | 2 +- src/c/completion_queue.c | 13 ++++++++----- src/c/id_serialization.c | 4 ++++ src/c/pb_compat.c | 4 ++++ 6 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index c90cd7130cb41..4e064abce0426 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -44,4 +44,4 @@ typedef struct grpc_client_reader_writer { grpc_completion_queue *cq; } grpc_client_reader_writer; -#endif // GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H +#endif /* GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H */ diff --git a/src/c/call_ops.h b/src/c/call_ops.h index c117b9a29eddc..351365af79131 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_CALL_OPS_H -#define TEST_GRPC_C_CALL_OPS_H +#ifndef GRPC_C_CALL_OPS_H +#define GRPC_C_CALL_OPS_H #include #include "message.h" @@ -97,4 +97,4 @@ extern const grpc_op_manager grpc_op_recv_object; extern const grpc_op_manager grpc_op_send_close; extern const grpc_op_manager grpc_op_recv_status; -#endif //TEST_GRPC_C_CALL_OPS_H +#endif /* GRPC_C_CALL_OPS_H */ diff --git a/src/c/client_context.c b/src/c/client_context.c index b6732c4da665f..3c4c6ab34fe3d 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -45,7 +45,7 @@ grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { .channel = chan, .serialization_impl = { .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize, + .deserialize = GRPC_id_deserialize }, .status = { .ok = true diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index fab6b95b42e94..5dcd04b88a8ec 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -31,6 +31,9 @@ * */ +/** + * Wraps the grpc_completion_queue type. + */ #include #include @@ -77,6 +80,11 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_ // run post-processing for async operations bool status = grpc_finish_op_from_call_set(set, set->context); + // run user-defined cleanup + if (set->async_cleanup.callback) { + set->async_cleanup.callback(set->async_cleanup.arg); + } + if (set->hide_from_user) { // don't touch user supplied pointers continue; @@ -85,11 +93,6 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_ *tag = set->user_tag; *ok = (ev.success != 0) && status; - // run user-defined cleanup - if (set->async_cleanup.callback) { - set->async_cleanup.callback(set->async_cleanup.arg); - } - return GRPC_COMPLETION_QUEUE_GOT_EVENT; } } diff --git a/src/c/id_serialization.c b/src/c/id_serialization.c index f7b72752e4617..85848f69b7501 100644 --- a/src/c/id_serialization.c +++ b/src/c/id_serialization.c @@ -35,6 +35,10 @@ #include #include "id_serialization.h" +/** + * Serialization interface that does not transform data. Base implementation of GRPC_serialization_impl. + */ + grpc_message GRPC_id_serialize(const grpc_message input) { void *tmp = malloc(input.length); memcpy(tmp, input.data, input.length); diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index cbe0fa2bcd61c..19ef75e2822a9 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -38,6 +38,10 @@ #include #include "alloc.h" +/** + * This file implements a Nanopb stream used to collect deserialized data from Nanopb. + */ + typedef struct GRPC_pb_dynamic_array_state { void *data; size_t size; From 38e319e36a9b9aae934adede2b64d582eb67921a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 18 Jul 2016 16:12:04 -0700 Subject: [PATCH 083/202] fix syntax err in generated code --- src/compiler/c_generator.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 33cc2b2f1faf9..30a9f477bac33 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -170,7 +170,7 @@ void $CPrefix$$Service$_$Method$_Finish( *vars, R"( /* Sync */ -GRPC_client_writer $CPrefix$$Service$_$Method$( +GRPC_client_writer *$CPrefix$$Service$_$Method$( GRPC_client_context *const context, $CPrefix$$Response$ *response); @@ -211,7 +211,7 @@ void $CPrefix$$Service$_$Method$_Finish( *vars, R"( /* Sync */ -GRPC_client_reader $CPrefix$$Service$_$Method$( +GRPC_client_reader *$CPrefix$$Service$_$Method$( GRPC_client_context *const context, $CPrefix$$Request$ request); @@ -380,7 +380,7 @@ void $CPrefix$$Service$_$Method$_Finish( printer->Print( *vars, R"( -GRPC_client_writer $CPrefix$$Service$_$Method$( +GRPC_client_writer *$CPrefix$$Service$_$Method$( GRPC_client_context *const context, $CPrefix$$Response$ *response) { GRPC_client_context_set_serialization_impl(context, @@ -406,13 +406,13 @@ bool $CPrefix$$Service$_$Method$_Write( printer->Print( *vars, R"( -GRPC_client_reader $CPrefix$$Service$_$Method$( +GRPC_client_reader *$CPrefix$$Service$_$Method$( GRPC_client_context *const context, $CPrefix$$Request$ request) { const GRPC_message request_msg = { &request, sizeof(request) }; GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - return GRPC_server_streaming_blocking_call(GRPC_method$CPrefix$$Service$_$Method$, context, request_msg); + return GRPC_server_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg); } bool $CPrefix$$Service$_$Method$_Read( @@ -435,7 +435,7 @@ GRPC_client_reader_writer *$CPrefix$$Service$_$Method$( GRPC_client_context *const context) { GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - return GRPC_bidi_streaming_blocking_call(GRPC_method$CPrefix$$Service$_$Method$, context); + return GRPC_bidi_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context); } bool $CPrefix$$Service$_$Method$_Read( From 9d11dc92ab113494985a4a19ccc5b258997f472f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 18 Jul 2016 16:19:08 -0700 Subject: [PATCH 084/202] [wip] C route guide example client --- examples/c/route_guide/route_guide_client.c | 47 ++ examples/c/route_guide/route_guide_client.h | 37 ++ examples/c/route_guide/route_guide_db.c | 638 ++++++++++++++++++++ examples/c/route_guide/route_guide_db.h | 47 ++ 4 files changed, 769 insertions(+) create mode 100644 examples/c/route_guide/route_guide_client.c create mode 100644 examples/c/route_guide/route_guide_client.h create mode 100644 examples/c/route_guide/route_guide_db.c create mode 100644 examples/c/route_guide/route_guide_db.h diff --git a/examples/c/route_guide/route_guide_client.c b/examples/c/route_guide/route_guide_client.c new file mode 100644 index 0000000000000..8fc92f9b6bd8a --- /dev/null +++ b/examples/c/route_guide/route_guide_client.c @@ -0,0 +1,47 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "route_guide_client.h" +#include "route_guide.grpc.pbc.h" + +#include +#include + +int main(int argc, char** argv) { + GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); + + + + GRPC_channel_destroy(&chan); + return 0; +} diff --git a/examples/c/route_guide/route_guide_client.h b/examples/c/route_guide/route_guide_client.h new file mode 100644 index 0000000000000..2c8a3d7cf5c97 --- /dev/null +++ b/examples/c/route_guide/route_guide_client.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_ROUTE_GUIDE_CLIENT_H +#define GRPC_ROUTE_GUIDE_CLIENT_H + +#endif /* GRPC_ROUTE_GUIDE_CLIENT_H */ diff --git a/examples/c/route_guide/route_guide_db.c b/examples/c/route_guide/route_guide_db.c new file mode 100644 index 0000000000000..ccf1dea8e13b0 --- /dev/null +++ b/examples/c/route_guide/route_guide_db.c @@ -0,0 +1,638 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "route_guide_db.h" + +const route_feature route_guide_database[] = { + { + .location = { + .latitude = 407838351, + .longitude = -746143763 + }, + .name = "Patriots Path, Mendham, NJ 07945, USA" + }, { + .location = { + .latitude = 408122808, + .longitude = -743999179 + }, + .name = "101 New Jersey 10, Whippany, NJ 07981, USA" + }, { + .location = { + .latitude = 413628156, + .longitude = -749015468 + }, + .name = "U.S. 6, Shohola, PA 18458, USA" + }, { + .location = { + .latitude = 419999544, + .longitude = -740371136 + }, + .name = "5 Conners Road, Kingston, NY 12401, USA" + }, { + .location = { + .latitude = 414008389, + .longitude = -743951297 + }, + .name = "Mid Hudson Psychiatric Center, New Hampton, NY 10958, USA" + }, { + .location = { + .latitude = 419611318, + .longitude = -746524769 + }, + .name = "287 Flugertown Road, Livingston Manor, NY 12758, USA" + }, { + .location = { + .latitude = 406109563, + .longitude = -742186778 + }, + .name = "4001 Tremley Point Road, Linden, NJ 07036, USA" + }, { + .location = { + .latitude = 416802456, + .longitude = -742370183 + }, + .name = "352 South Mountain Road, Wallkill, NY 12589, USA" + }, { + .location = { + .latitude = 412950425, + .longitude = -741077389 + }, + .name = "Bailey Turn Road, Harriman, NY 10926, USA" + }, { + .location = { + .latitude = 412144655, + .longitude = -743949739 + }, + .name = "193-199 Wawayanda Road, Hewitt, NJ 07421, USA" + }, { + .location = { + .latitude = 415736605, + .longitude = -742847522 + }, + .name = "406-496 Ward Avenue, Pine Bush, NY 12566, USA" + }, { + .location = { + .latitude = 413843930, + .longitude = -740501726 + }, + .name = "162 Merrill Road, Highland Mills, NY 10930, USA" + }, { + .location = { + .latitude = 410873075, + .longitude = -744459023 + }, + .name = "Clinton Road, West Milford, NJ 07480, USA" + }, { + .location = { + .latitude = 412346009, + .longitude = -744026814 + }, + .name = "16 Old Brook Lane, Warwick, NY 10990, USA" + }, { + .location = { + .latitude = 402948455, + .longitude = -747903913 + }, + .name = "3 Drake Lane, Pennington, NJ 08534, USA" + }, { + .location = { + .latitude = 406337092, + .longitude = -740122226 + }, + .name = "6324 8th Avenue, Brooklyn, NY 11220, USA" + }, { + .location = { + .latitude = 406421967, + .longitude = -747727624 + }, + .name = "1 Merck Access Road, Whitehouse Station, NJ 08889, USA" + }, { + .location = { + .latitude = 416318082, + .longitude = -749677716 + }, + .name = "78-98 Schalck Road, Narrowsburg, NY 12764, USA" + }, { + .location = { + .latitude = 415301720, + .longitude = -748416257 + }, + .name = "282 Lakeview Drive Road, Highland Lake, NY 12743, USA" + }, { + .location = { + .latitude = 402647019, + .longitude = -747071791 + }, + .name = "330 Evelyn Avenue, Hamilton Township, NJ 08619, USA" + }, { + .location = { + .latitude = 412567807, + .longitude = -741058078 + }, + .name = "New York State Reference Route 987E, Southfields, NY 10975, USA" + }, { + .location = { + .latitude = 416855156, + .longitude = -744420597 + }, + .name = "103-271 Tempaloni Road, Ellenville, NY 12428, USA" + }, { + .location = { + .latitude = 404663628, + .longitude = -744820157 + }, + .name = "1300 Airport Road, North Brunswick Township, NJ 08902, USA" + }, { + .location = { + .latitude = 407113723, + .longitude = -749746483 + }, + .name = "" + }, { + .location = { + .latitude = 402133926, + .longitude = -743613249 + }, + .name = "" + }, { + .location = { + .latitude = 400273442, + .longitude = -741220915 + }, + .name = "" + }, { + .location = { + .latitude = 411236786, + .longitude = -744070769 + }, + .name = "" + }, { + .location = { + .latitude = 411633782, + .longitude = -746784970 + }, + .name = "211-225 Plains Road, Augusta, NJ 07822, USA" + }, { + .location = { + .latitude = 415830701, + .longitude = -742952812 + }, + .name = "" + }, { + .location = { + .latitude = 413447164, + .longitude = -748712898 + }, + .name = "165 Pedersen Ridge Road, Milford, PA 18337, USA" + }, { + .location = { + .latitude = 405047245, + .longitude = -749800722 + }, + .name = "100-122 Locktown Road, Frenchtown, NJ 08825, USA" + }, { + .location = { + .latitude = 418858923, + .longitude = -746156790 + }, + .name = "" + }, { + .location = { + .latitude = 417951888, + .longitude = -748484944 + }, + .name = "650-652 Willi Hill Road, Swan Lake, NY 12783, USA" + }, { + .location = { + .latitude = 407033786, + .longitude = -743977337 + }, + .name = "26 East 3rd Street, New Providence, NJ 07974, USA" + }, { + .location = { + .latitude = 417548014, + .longitude = -740075041 + }, + .name = "" + }, { + .location = { + .latitude = 410395868, + .longitude = -744972325 + }, + .name = "" + }, { + .location = { + .latitude = 404615353, + .longitude = -745129803 + }, + .name = "" + }, { + .location = { + .latitude = 406589790, + .longitude = -743560121 + }, + .name = "611 Lawrence Avenue, Westfield, NJ 07090, USA" + }, { + .location = { + .latitude = 414653148, + .longitude = -740477477 + }, + .name = "18 Lannis Avenue, New Windsor, NY 12553, USA" + }, { + .location = { + .latitude = 405957808, + .longitude = -743255336 + }, + .name = "82-104 Amherst Avenue, Colonia, NJ 07067, USA" + }, { + .location = { + .latitude = 411733589, + .longitude = -741648093 + }, + .name = "170 Seven Lakes Drive, Sloatsburg, NY 10974, USA" + }, { + .location = { + .latitude = 412676291, + .longitude = -742606606 + }, + .name = "1270 Lakes Road, Monroe, NY 10950, USA" + }, { + .location = { + .latitude = 409224445, + .longitude = -748286738 + }, + .name = "509-535 Alphano Road, Great Meadows, NJ 07838, USA" + }, { + .location = { + .latitude = 406523420, + .longitude = -742135517 + }, + .name = "652 Garden Street, Elizabeth, NJ 07202, USA" + }, { + .location = { + .latitude = 401827388, + .longitude = -740294537 + }, + .name = "349 Sea Spray Court, Neptune City, NJ 07753, USA" + }, { + .location = { + .latitude = 410564152, + .longitude = -743685054 + }, + .name = "13-17 Stanley Street, West Milford, NJ 07480, USA" + }, { + .location = { + .latitude = 408472324, + .longitude = -740726046 + }, + .name = "47 Industrial Avenue, Teterboro, NJ 07608, USA" + }, { + .location = { + .latitude = 412452168, + .longitude = -740214052 + }, + .name = "5 White Oak Lane, Stony Point, NY 10980, USA" + }, { + .location = { + .latitude = 409146138, + .longitude = -746188906 + }, + .name = "Berkshire Valley Management Area Trail, Jefferson, NJ, USA" + }, { + .location = { + .latitude = 404701380, + .longitude = -744781745 + }, + .name = "1007 Jersey Avenue, New Brunswick, NJ 08901, USA" + }, { + .location = { + .latitude = 409642566, + .longitude = -746017679 + }, + .name = "6 East Emerald Isle Drive, Lake Hopatcong, NJ 07849, USA" + }, { + .location = { + .latitude = 408031728, + .longitude = -748645385 + }, + .name = "1358-1474 New Jersey 57, Port Murray, NJ 07865, USA" + }, { + .location = { + .latitude = 413700272, + .longitude = -742135189 + }, + .name = "367 Prospect Road, Chester, NY 10918, USA" + }, { + .location = { + .latitude = 404310607, + .longitude = -740282632 + }, + .name = "10 Simon Lake Drive, Atlantic Highlands, NJ 07716, USA" + }, { + .location = { + .latitude = 409319800, + .longitude = -746201391 + }, + .name = "11 Ward Street, Mount Arlington, NJ 07856, USA" + }, { + .location = { + .latitude = 406685311, + .longitude = -742108603 + }, + .name = "300-398 Jefferson Avenue, Elizabeth, NJ 07201, USA" + }, { + .location = { + .latitude = 419018117, + .longitude = -749142781 + }, + .name = "43 Dreher Road, Roscoe, NY 12776, USA" + }, { + .location = { + .latitude = 412856162, + .longitude = -745148837 + }, + .name = "Swan Street, Pine Island, NY 10969, USA" + }, { + .location = { + .latitude = 416560744, + .longitude = -746721964 + }, + .name = "66 Pleasantview Avenue, Monticello, NY 12701, USA" + }, { + .location = { + .latitude = 405314270, + .longitude = -749836354 + }, + .name = "" + }, { + .location = { + .latitude = 414219548, + .longitude = -743327440 + }, + .name = "" + }, { + .location = { + .latitude = 415534177, + .longitude = -742900616 + }, + .name = "565 Winding Hills Road, Montgomery, NY 12549, USA" + }, { + .location = { + .latitude = 406898530, + .longitude = -749127080 + }, + .name = "231 Rocky Run Road, Glen Gardner, NJ 08826, USA" + }, { + .location = { + .latitude = 407586880, + .longitude = -741670168 + }, + .name = "100 Mount Pleasant Avenue, Newark, NJ 07104, USA" + }, { + .location = { + .latitude = 400106455, + .longitude = -742870190 + }, + .name = "517-521 Huntington Drive, Manchester Township, NJ 08759, USA" + }, { + .location = { + .latitude = 400066188, + .longitude = -746793294 + }, + .name = "" + }, { + .location = { + .latitude = 418803880, + .longitude = -744102673 + }, + .name = "40 Mountain Road, Napanoch, NY 12458, USA" + }, { + .location = { + .latitude = 414204288, + .longitude = -747895140 + }, + .name = "" + }, { + .location = { + .latitude = 414777405, + .longitude = -740615601 + }, + .name = "" + }, { + .location = { + .latitude = 415464475, + .longitude = -747175374 + }, + .name = "48 North Road, Forestburgh, NY 12777, USA" + }, { + .location = { + .latitude = 404062378, + .longitude = -746376177 + }, + .name = "" + }, { + .location = { + .latitude = 405688272, + .longitude = -749285130 + }, + .name = "" + }, { + .location = { + .latitude = 400342070, + .longitude = -748788996 + }, + .name = "" + }, { + .location = { + .latitude = 401809022, + .longitude = -744157964 + }, + .name = "" + }, { + .location = { + .latitude = 404226644, + .longitude = -740517141 + }, + .name = "9 Thompson Avenue, Leonardo, NJ 07737, USA" + }, { + .location = { + .latitude = 410322033, + .longitude = -747871659 + }, + .name = "" + }, { + .location = { + .latitude = 407100674, + .longitude = -747742727 + }, + .name = "" + }, { + .location = { + .latitude = 418811433, + .longitude = -741718005 + }, + .name = "213 Bush Road, Stone Ridge, NY 12484, USA" + }, { + .location = { + .latitude = 415034302, + .longitude = -743850945 + }, + .name = "" + }, { + .location = { + .latitude = 411349992, + .longitude = -743694161 + }, + .name = "" + }, { + .location = { + .latitude = 404839914, + .longitude = -744759616 + }, + .name = "1-17 Bergen Court, New Brunswick, NJ 08901, USA" + }, { + .location = { + .latitude = 414638017, + .longitude = -745957854 + }, + .name = "35 Oakland Valley Road, Cuddebackville, NY 12729, USA" + }, { + .location = { + .latitude = 412127800, + .longitude = -740173578 + }, + .name = "" + }, { + .location = { + .latitude = 401263460, + .longitude = -747964303 + }, + .name = "" + }, { + .location = { + .latitude = 412843391, + .longitude = -749086026 + }, + .name = "" + }, { + .location = { + .latitude = 418512773, + .longitude = -743067823 + }, + .name = "" + }, { + .location = { + .latitude = 404318328, + .longitude = -740835638 + }, + .name = "42-102 Main Street, Belford, NJ 07718, USA" + }, { + .location = { + .latitude = 419020746, + .longitude = -741172328 + }, + .name = "" + }, { + .location = { + .latitude = 404080723, + .longitude = -746119569 + }, + .name = "" + }, { + .location = { + .latitude = 401012643, + .longitude = -744035134 + }, + .name = "" + }, { + .location = { + .latitude = 404306372, + .longitude = -741079661 + }, + .name = "" + }, { + .location = { + .latitude = 403966326, + .longitude = -748519297 + }, + .name = "" + }, { + .location = { + .latitude = 405002031, + .longitude = -748407866 + }, + .name = "" + }, { + .location = { + .latitude = 409532885, + .longitude = -742200683 + }, + .name = "" + }, { + .location = { + .latitude = 416851321, + .longitude = -742674555 + }, + .name = "" + }, { + .location = { + .latitude = 406411633, + .longitude = -741722051 + }, + .name = "3387 Richmond Terrace, Staten Island, NY 10303, USA" + }, { + .location = { + .latitude = 413069058, + .longitude = -744597778 + }, + .name = "261 Van Sickle Road, Goshen, NY 10924, USA" + }, { + .location = { + .latitude = 418465462, + .longitude = -746859398 + }, + .name = "" + }, { + .location = { + .latitude = 411733222, + .longitude = -744228360 + }, + .name = "" + }, { + .location = { + .latitude = 410248224, + .longitude = -747127767 + }, + .name = "3 Hasta Way, Newton, NJ 07860, USA" + } +}; diff --git a/examples/c/route_guide/route_guide_db.h b/examples/c/route_guide/route_guide_db.h new file mode 100644 index 0000000000000..33a5d17fb936b --- /dev/null +++ b/examples/c/route_guide/route_guide_db.h @@ -0,0 +1,47 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_ROUTE_GUIDE_DB_H +#define GRPC_ROUTE_GUIDE_DB_H + +typedef struct route_location { + const long latitude; + const long longitude; +} route_location; + +typedef struct route_feature { + const route_location location; + const char *name; +} route_feature; + +#endif /* GRPC_ROUTE_GUIDE_DB_H */ From 5792c0d5b5be10fd3544f5f9f94e25c25e0aa9c5 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 18 Jul 2016 16:20:55 -0700 Subject: [PATCH 085/202] update example .gitignore --- examples/c/helloworld/.gitignore | 3 +++ examples/c/route_guide/.gitignore | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 examples/c/route_guide/.gitignore diff --git a/examples/c/helloworld/.gitignore b/examples/c/helloworld/.gitignore index 115840d5f5d33..daa5eba8d6e9f 100644 --- a/examples/c/helloworld/.gitignore +++ b/examples/c/helloworld/.gitignore @@ -5,3 +5,6 @@ helloworld.pbc.h helloworld.pb.c helloworld.pb.h *.o +greeter_client +greeter_async_client +greeter_async_client2 diff --git a/examples/c/route_guide/.gitignore b/examples/c/route_guide/.gitignore new file mode 100644 index 0000000000000..f5f0764cdb8b2 --- /dev/null +++ b/examples/c/route_guide/.gitignore @@ -0,0 +1,8 @@ +route_guide.grpc.pbc.c +route_guide.grpc.pbc.h +route_guide.pbc.c +route_guide.pbc.h +route_guide.pb.c +route_guide.pb.h +*.o +route_guide_client From 5254cf699b7c7d78fff1f67bb9115a0ed35e540f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 19 Jul 2016 13:56:28 -0700 Subject: [PATCH 086/202] Add missing return statements in generated code --- src/compiler/c_generator.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 30a9f477bac33..450c6a2299e74 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -351,7 +351,7 @@ GRPC_status $CPrefix$$Service$_$Method$( const GRPC_message request_msg = { &request, sizeof(request) }; GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response); + return GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response); } )"); printer->Print( @@ -392,7 +392,7 @@ bool $CPrefix$$Service$_$Method$_Write( GRPC_client_writer *writer, $CPrefix$$Request$ request) { const GRPC_message request_msg = { &request, sizeof(request) }; - GRPC_client_streaming_blocking_write(writer, request_msg); + return GRPC_client_streaming_blocking_write(writer, request_msg); } )"); From fe8645d7f0175d36c286a7504b31d6db9d6b4f24 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 19 Jul 2016 13:59:58 -0700 Subject: [PATCH 087/202] port GetOneFeature from C++ examples --- examples/c/route_guide/route_guide_client.c | 102 +++++++++++++++++++- examples/c/route_guide/route_guide_db.c | 2 + examples/c/route_guide/route_guide_db.h | 3 + 3 files changed, 106 insertions(+), 1 deletion(-) diff --git a/examples/c/route_guide/route_guide_client.c b/examples/c/route_guide/route_guide_client.c index 8fc92f9b6bd8a..0b7fcd94290df 100644 --- a/examples/c/route_guide/route_guide_client.c +++ b/examples/c/route_guide/route_guide_client.c @@ -33,14 +33,114 @@ #include "route_guide_client.h" #include "route_guide.grpc.pbc.h" +#include "route_guide_db.h" #include #include +#include + +/** + * Nanopb callbacks for string encoding/decoding. + */ + +static bool write_string_from_arg(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) +{ + const char *str = *arg; + if (!pb_encode_tag_for_field(stream, field)) + return false; + + return pb_encode_string(stream, (uint8_t*)str, strlen(str)); +} + +static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *field, void **arg) { + size_t len = stream->bytes_left; + char *str = malloc(len + 1); + if (!pb_read(stream, str, len)) return false; + str[len] = '\0'; + *arg = str; + return true; +} + +static const float kCoordFactor = 10000000.0; + +bool get_one_feature(GRPC_channel *channel, routeguide_Point point, routeguide_Feature *feature) { + GRPC_client_context *context = GRPC_client_context_create(channel); + feature->name.funcs.decode = read_string_store_in_arg; + feature->name.arg = NULL; + GRPC_status status = routeguide_RouteGuide_GetFeature(context, point, feature); + if (!status.ok) { + if (status.details_length > 0 && status.details != NULL) { + printf("GetFeature rpc failed. Code = %d. Details: %s\n", status.code, status.details); + } else { + printf("GetFeature rpc failed. Code = %d.\n", status.code); + } + GRPC_client_context_destroy(&context); + return false; + } + if (!feature->has_location) { + printf("Server returns incomplete feature.\n"); + GRPC_client_context_destroy(&context); + return false; + } + if (feature->name.arg == NULL || strcmp(feature->name.arg, "") == 0) { + printf("Found no feature at %.6f, %.6f\n", + feature->location.latitude / kCoordFactor, + feature->location.longitude / kCoordFactor); + } else { + printf("Found feature called %s at %.6f, %.6f\n", + (char *) feature->name.arg, + feature->location.latitude / kCoordFactor, + feature->location.longitude / kCoordFactor); + } + GRPC_client_context_destroy(&context); + return true; +} + +void get_feature(GRPC_channel *chan) { + routeguide_Point point = { true, 409146138, true, -746188906 }; + routeguide_Feature feature; + get_one_feature(chan, point, &feature); + + /* free name string */ + if (feature.name.arg != NULL) { + free(feature.name.arg); + feature.name.arg = NULL; + } + + point = (routeguide_Point) { false, 0, false, 0 }; + get_one_feature(chan, point, &feature); + + /* free name string */ + if (feature.name.arg != NULL) { + free(feature.name.arg); + feature.name.arg = NULL; + } +} + +void list_features(GRPC_channel *chan) { + +} + +void record_route(GRPC_channel *chan) { + +} + +void route_chat(GRPC_channel *chan) { + +} + int main(int argc, char** argv) { GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); - + printf("-------------- GetFeature --------------\n"); + get_feature(chan); + printf("-------------- ListFeatures --------------\n"); + list_features(chan); + printf("-------------- RecordRoute --------------\n"); + record_route(chan); + printf("-------------- RouteChat --------------\n"); + route_chat(chan); GRPC_channel_destroy(&chan); return 0; diff --git a/examples/c/route_guide/route_guide_db.c b/examples/c/route_guide/route_guide_db.c index ccf1dea8e13b0..d25c5fdc59d71 100644 --- a/examples/c/route_guide/route_guide_db.c +++ b/examples/c/route_guide/route_guide_db.c @@ -636,3 +636,5 @@ const route_feature route_guide_database[] = { .name = "3 Hasta Way, Newton, NJ 07860, USA" } }; + +const int num_route_features_in_database = sizeof(route_guide_database) / sizeof(route_feature); diff --git a/examples/c/route_guide/route_guide_db.h b/examples/c/route_guide/route_guide_db.h index 33a5d17fb936b..0676719751019 100644 --- a/examples/c/route_guide/route_guide_db.h +++ b/examples/c/route_guide/route_guide_db.h @@ -44,4 +44,7 @@ typedef struct route_feature { const char *name; } route_feature; +extern const route_feature route_guide_database[]; +extern const int num_route_features_in_database; + #endif /* GRPC_ROUTE_GUIDE_DB_H */ From 295e112f87fb70b95357fb1bbe9ff5481bae1ade Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 19 Jul 2016 14:06:52 -0700 Subject: [PATCH 088/202] Add some spacing and a missing method --- src/compiler/c_generator.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 450c6a2299e74..3853699e55e0c 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -161,6 +161,7 @@ void $CPrefix$$Service$_$Method$_Finish( $CPrefix$$Response$ *response, void *tag); /* call GRPC_completion_queue_next on the cq to wait for result */ + )"); } else if (method->ClientOnlyStreaming()) { @@ -202,6 +203,7 @@ void $CPrefix$$Service$_$Method$_Finish( void *tag); /* Call GRPC_completion_queue_next on the cq to wait for result. */ /* The writer object is automatically freed when the request ends. */ + )"); } else if (method->ServerOnlyStreaming()) { @@ -219,6 +221,10 @@ GRPC_client_reader *$CPrefix$$Service$_$Method$( bool $CPrefix$$Service$_$Method$_Read( GRPC_client_reader *reader, $CPrefix$$Response$ *response); + +/* Call GRPC_client_reader_terminate to close the stream and end the call */ +/* The reader is automatically freed when the request ends */ +#define $CPrefix$$Service$_$Method$_Terminate GRPC_client_reader_terminate )"); printer->Print( *vars, @@ -239,6 +245,7 @@ void $CPrefix$$Service$_$Method$_Finish( void *tag); /* call GRPC_completion_queue_next on the cq to wait for result */ /* the reader object is automatically freed when the request ends */ + )"); } else if (method->BidiStreaming()) { @@ -287,6 +294,7 @@ void $CPrefix$$Service$_$Method$_Finish( void *tag); /* call GRPC_completion_queue_next on the cq to wait for result */ /* the reader-writer object is automatically freed when the request ends */ + )"); } From af1895cf5f4af9161bc7da1ff0bd7fc628a126cb Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 19 Jul 2016 14:28:21 -0700 Subject: [PATCH 089/202] Don't be lazy properly generate all function wrappers --- src/c/server_streaming_blocking_call.h | 6 ++--- src/compiler/c_generator.cc | 34 ++++++++++++++++++++------ 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 71e32e932bdcd..ebc15c970434a 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H -#define TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H +#ifndef GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H +#define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H #include "call_ops.h" #include @@ -44,4 +44,4 @@ typedef struct grpc_client_reader { grpc_completion_queue *cq; } grpc_client_reader; -#endif //TEST_GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H +#endif /* GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H */ diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 3853699e55e0c..09a9d64702787 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -179,9 +179,10 @@ GRPC_client_writer *$CPrefix$$Service$_$Method$( bool $CPrefix$$Service$_$Method$_Write( GRPC_client_writer *writer, $CPrefix$$Request$ request); -/* Call GRPC_client_writer_terminate to close the stream and end the call */ + +/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */ /* The writer is automatically freed when the request ends */ -#define $CPrefix$$Service$_$Method$_Terminate GRPC_client_writer_terminate +GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer); )"); printer->Print( @@ -222,9 +223,9 @@ bool $CPrefix$$Service$_$Method$_Read( GRPC_client_reader *reader, $CPrefix$$Response$ *response); -/* Call GRPC_client_reader_terminate to close the stream and end the call */ +/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */ /* The reader is automatically freed when the request ends */ -#define $CPrefix$$Service$_$Method$_Terminate GRPC_client_reader_terminate +GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader); )"); printer->Print( *vars, @@ -266,10 +267,11 @@ bool $CPrefix$$Service$_$Method$_Write( GRPC_client_reader_writer *reader_writer, $CPrefix$$Request$ request); -/* Call GRPC_client_reader_writer_writes_done to signal to the server that we are no longer sending request items */ -#define $CPrefix$$Service$_$Method$_Writes_Done GRPC_client_reader_writer_writes_done -/* Call GRPC_client_reader_writer_terminate to end the call. The reader_writer object is automatically freed */ -#define $CPrefix$$Service$_$Method$_Terminate GRPC_client_reader_writer_terminate +/* Signals to the server that we are no longer sending request items */ +bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer); + +/* Ends the call. The reader_writer object is automatically freed */ +GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer); )"); printer->Print( @@ -402,6 +404,10 @@ bool $CPrefix$$Service$_$Method$_Write( const GRPC_message request_msg = { &request, sizeof(request) }; return GRPC_client_streaming_blocking_write(writer, request_msg); } + +GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer) { + return GRPC_client_writer_terminate(writer); +} )"); printer->Print( @@ -428,6 +434,10 @@ bool $CPrefix$$Service$_$Method$_Read( $CPrefix$$Response$ *response) { return GRPC_server_streaming_blocking_read(reader, response); } + +GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader) { + return GRPC_client_reader_terminate(reader); +} )"); printer->Print( *vars, @@ -458,6 +468,14 @@ bool $CPrefix$$Service$_$Method$_Write( const GRPC_message request_msg = { &request, sizeof(request) }; return GRPC_bidi_streaming_blocking_write(reader_writer, request_msg); } + +bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer) { + return GRPC_bidi_streaming_blocking_writes_done(reader_writer); +} + +GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer) { + return GRPC_client_reader_writer_terminate(reader_writer); +} )"); printer->Print( *vars, From 077d292d526555de4890d2135ada5f7491f90cc0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 19 Jul 2016 14:28:41 -0700 Subject: [PATCH 090/202] port ListFeatures from C++ --- examples/c/route_guide/route_guide_client.c | 45 +++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/examples/c/route_guide/route_guide_client.c b/examples/c/route_guide/route_guide_client.c index 0b7fcd94290df..cc6e84e540974 100644 --- a/examples/c/route_guide/route_guide_client.c +++ b/examples/c/route_guide/route_guide_client.c @@ -119,7 +119,52 @@ void get_feature(GRPC_channel *chan) { } void list_features(GRPC_channel *chan) { + routeguide_Rectangle rect = { + .has_lo = true, + .lo = { + .has_latitude = true, + .latitude = 400000000, + .has_longitude = true, + .longitude = -750000000 + }, + .has_hi = true, + .hi = { + .has_latitude = true, + .latitude = 420000000, + .has_longitude = true, + .longitude = -730000000 + } + }; + routeguide_Feature feature; + feature.name.funcs.decode = read_string_store_in_arg; + GRPC_client_context *context = GRPC_client_context_create(chan); + + printf("Looking for features between 40, -75 and 42, -73\n"); + GRPC_client_reader *reader = routeguide_RouteGuide_ListFeatures(context, rect); + + while (routeguide_RouteGuide_ListFeatures_Read(reader, &feature)) { + char *name = ""; + if (feature.name.arg) name = feature.name.arg; + printf("Found feature called %s at %.6f, %.6f\n", + name, + feature.location.latitude / kCoordFactor, + feature.location.longitude / kCoordFactor); + + /* free name string */ + if (feature.name.arg != NULL) { + free(feature.name.arg); + feature.name.arg = NULL; + } + } + + GRPC_status status = routeguide_RouteGuide_ListFeatures_Terminate(reader); + if (status.ok) { + printf("ListFeatures rpc succeeded.\n"); + } else { + printf("ListFeatures rpc failed.\n"); + } + GRPC_client_context_destroy(&context); } void record_route(GRPC_channel *chan) { From b2dee9788738612a906c0c381d517fc80395172d Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 19 Jul 2016 16:19:48 -0700 Subject: [PATCH 091/202] Finish route guide example --- examples/c/route_guide/route_guide_client.c | 132 ++++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/examples/c/route_guide/route_guide_client.c b/examples/c/route_guide/route_guide_client.c index cc6e84e540974..dab894c69254d 100644 --- a/examples/c/route_guide/route_guide_client.c +++ b/examples/c/route_guide/route_guide_client.c @@ -39,6 +39,8 @@ #include #include +#include +#include /** * Nanopb callbacks for string encoding/decoding. @@ -53,6 +55,10 @@ static bool write_string_from_arg(pb_ostream_t *stream, const pb_field_t *field, return pb_encode_string(stream, (uint8_t*)str, strlen(str)); } +/** + * This callback function reads a string from Nanopb stream and copies it into the callback args. + * Users need to free the string after use. + */ static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); @@ -168,11 +174,137 @@ void list_features(GRPC_channel *chan) { } void record_route(GRPC_channel *chan) { + routeguide_Point point; + routeguide_RouteSummary stats; + GRPC_client_context *context = GRPC_client_context_create(chan); + const int kPoints = 10; + + srand(time(NULL)); + + GRPC_client_writer *writer = routeguide_RouteGuide_RecordRoute(context, &stats); + + int i; + for (i = 0; i < kPoints; i++) { + const route_feature db_feature = route_guide_database[rand() % num_route_features_in_database]; + const routeguide_Feature f = { + .name = { + .arg = (void *) db_feature.name, + .funcs.encode = write_string_from_arg + }, + .has_location = true, + .location = { + .has_latitude = true, + .latitude = db_feature.location.latitude, + .has_longitude = true, + .longitude = db_feature.location.longitude + } + }; + printf("Visiting point %.6f, %.6f\n", + f.location.latitude / kCoordFactor, + f.location.longitude / kCoordFactor); + if (!routeguide_RouteGuide_RecordRoute_Write(writer, f.location)) { + // Broken stream. + break; + } + usleep((500 + rand() % 1000) * 1000); + } + GRPC_status status = routeguide_RouteGuide_RecordRoute_Terminate(writer); + if (status.ok) { + printf("Finished trip with %d points\nPassed %d features\nTravelled %d meters\nIt took %d seconds\n", + stats.point_count, + stats.feature_count, + stats.distance, + stats.elapsed_time); + } else { + printf("RecordRoute rpc failed.\n"); + } +} + +void route_chat_thread(GRPC_client_reader_writer *reader_writer) { + routeguide_RouteNote notes[] = { + { + .has_location = true, + .location = { + .has_latitude = false, + .latitude = 0, + .has_longitude = false, + .longitude = 0 + }, + .message = { + .arg = (void *) "First message", + .funcs.encode = write_string_from_arg + } + }, { + .has_location = true, + .location = { + .has_latitude = false, + .latitude = 0, + .has_longitude = true, + .longitude = 1 + }, + .message = { + .arg = (void *) "Second message", + .funcs.encode = write_string_from_arg + } + }, { + .has_location = true, + .location = { + .has_latitude = true, + .latitude = 1, + .has_longitude = false, + .longitude = 0 + }, + .message = { + .arg = (void *) "Third message", + .funcs.encode = write_string_from_arg + } + }, { + .has_location = true, + .location = { + .has_latitude = false, + .latitude = 0, + .has_longitude = false, + .longitude = 0 + }, + .message = { + .arg = (void *) "Fourth message", + .funcs.encode = write_string_from_arg + } + } + }; + int i; + for (i = 0; i < 4; i++) { + printf("Sending message %s at %d, %d\n", + (char *) notes[i].message.arg, + notes[i].location.latitude, + notes[i].location.longitude); + routeguide_RouteGuide_RouteChat_Write(reader_writer, notes[i]); + } + routeguide_RouteGuide_RouteChat_Writes_Done(reader_writer); } void route_chat(GRPC_channel *chan) { + GRPC_client_context *context = GRPC_client_context_create(chan); + GRPC_client_reader_writer *reader_writer = routeguide_RouteGuide_RouteChat(context); + + pthread_t tid; + pthread_create(&tid, NULL, route_chat_thread, reader_writer); + + routeguide_RouteNote server_note; + server_note.message.funcs.decode = read_string_store_in_arg; + while (routeguide_RouteGuide_RouteChat_Read(reader_writer, &server_note)) { + printf("Got message %s at %d, %d\n", + (char *) server_note.message.arg, + server_note.location.latitude, + server_note.location.longitude); + } + pthread_join(tid, NULL); + GRPC_status status = routeguide_RouteGuide_RouteChat_Terminate(reader_writer); + if (!status.ok) { + printf("RouteChat rpc failed.\n"); + } } int main(int argc, char** argv) { From 84b6e1e95eea5a062839ba7b1ed05f279ee657a1 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 21 Jul 2016 14:19:09 -0700 Subject: [PATCH 092/202] more comments --- include/grpc_c/status.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index a32cfee388972..7b1836f75edff 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -36,9 +36,25 @@ #define GRPC_C_STATUS_PUBLIC_H typedef struct grpc_status { + /** + * Indicator of success for the entire RPC operation, including network, + * serialization, etc. + */ bool ok; + + /** + * Status code coming from the remote server. + */ grpc_status_code code; + + /** + * Detailed status string from the server. + */ char *details; + + /** + * Length of status string. + */ size_t details_length; } grpc_status; From 9e0e3bc0b615c6cc290340ea4c25576a67ddadb8 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 21 Jul 2016 14:19:53 -0700 Subject: [PATCH 093/202] Generate proto .c files using nanopb for C targets --- templates/Makefile.template | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/templates/Makefile.template b/templates/Makefile.template index 9afc6566e2faf..5bfe89a626a1a 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -47,6 +47,12 @@ return filename return '$(GENDIR)/' + m.group(1) + '.pb.cc $(GENDIR)/' + m.group(1) + '.grpc.pb.cc' + def proto_to_nanoc(filename): + m = proto_re.match(filename) + if not m: + return filename + return '$(GENDIR)/' + m.group(1) + '.pbc.c $(GENDIR)/' + m.group(1) + '.grpc.pbc.c' + sources_that_need_openssl = set() sources_that_don_t_need_openssl = set() @@ -141,6 +147,8 @@ prefix ?= /usr/local + NANOPB_DIR := $(abspath third_party/nanopb) + NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c PROTOC ?= protoc DTRACE ?= dtrace CONFIG ?= opt @@ -1153,6 +1161,11 @@ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< + $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out=--extension=.pbc:$(GENDIR) $< + $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` @@ -1354,12 +1367,20 @@ % endfor <%def name="makelib(lib)"> + # Using nanopb for C files right now LIB${lib.name.upper()}_SRC = \\ + % if lib.language == "c++": % for src in lib.src: ${proto_to_cc(src)} \\ % endfor + % else: + % for src in lib.src: + ${proto_to_nanoc(src)} \\ + + % endfor + % endif % if "public_headers" in lib: % if lib.language == "c++": @@ -1570,10 +1591,17 @@ % if not has_no_sources: ${tgt.name.upper()}_SRC = \\ + % if tgt.language == "c++": % for src in tgt.src: ${proto_to_cc(src)} \\ % endfor + % else: + % for src in tgt.src: + ${proto_to_nanoc(src)} \\ + + % endfor + % endif ${tgt.name.upper()}_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(${tgt.name.upper()}_SRC)))) % endif From 65201d3b2629f5977b3360dec200d6511f619e64 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 21 Jul 2016 14:22:28 -0700 Subject: [PATCH 094/202] Rename end2end to generic end2end --- build.yaml | 4 ++-- test/c/end2end/{end2end_test.cc => generic_end2end_test.cc} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename test/c/end2end/{end2end_test.cc => generic_end2end_test.cc} (100%) diff --git a/build.yaml b/build.yaml index 3ebbcf0ec5fb2..e9fc04212b031 100644 --- a/build.yaml +++ b/build.yaml @@ -2722,12 +2722,12 @@ targets: - grpc++ - grpc - gpr -- name: grpc_c_end2end_test +- name: grpc_c_generic_end2end_test gtest: true build: test language: c++ src: - - test/c/end2end/end2end_test.cc + - test/c/end2end/generic_end2end_test.cc deps: - grpc_c - grpc++_test_util diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/generic_end2end_test.cc similarity index 100% rename from test/c/end2end/end2end_test.cc rename to test/c/end2end/generic_end2end_test.cc From cf64991101323cbe25f710a3e19282d20ad0c8ed Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 21 Jul 2016 15:11:37 -0700 Subject: [PATCH 095/202] Structuring new end2end test --- build.yaml | 31 +++++++++++ test/c/end2end/end2end_test.cc | 79 ++++++++++++++++++++++++++++ test/c/end2end/end2end_test_client.h | 37 +++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 test/c/end2end/end2end_test.cc create mode 100644 test/c/end2end/end2end_test_client.h diff --git a/build.yaml b/build.yaml index e9fc04212b031..860bc39543376 100644 --- a/build.yaml +++ b/build.yaml @@ -1774,6 +1774,22 @@ targets: - grpc - gpr_test_util - gpr +- name: grpc_c_end2end_client_lib + build: private + language: c + headers: + - test/c/end2end/end2end_test_client.h + src: + - src/proto/grpc/testing/echo.proto + - test/c/end2end/end2end_test_client.c + deps: + - grpc_c + - grpc_test_util + - grpc + - gpr_test_util + - gpr + uses: + - nanopb - name: grpc_channel_args_test build: test language: c @@ -2722,6 +2738,21 @@ targets: - grpc++ - grpc - gpr +- name: grpc_c_end2end_test + gtest: true + build: test + language: c++ + src: + - test/c/end2end/end2end_test.cc + deps: + - grpc_c_end2end_client_lib + - grpc_c + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc + - gpr_test_util + - gpr - name: grpc_c_generic_end2end_test gtest: true build: test diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc new file mode 100644 index 0000000000000..d6859abfd8912 --- /dev/null +++ b/test/c/end2end/end2end_test.cc @@ -0,0 +1,79 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Import the C client which actually runs the tests +extern "C" { +#include "test/c/end2end/end2end_test_client.h" +} + +#include "src/core/lib/security/credentials/credentials.h" +#include "test/core/util/port.h" +#include "test/core/util/test_config.h" +#include "test/cpp/end2end/test_service_impl.h" +#include "test/cpp/util/string_ref_helper.h" +#include "test/cpp/util/test_credentials_provider.h" + +/** + * End-to-end tests for the gRPC C API. + * This test involves generated code as well. + * As of early July 2016, this C API does not support creating servers, so we pull in a server implementation for C++ + * and put this test under the C++ build. + */ + +namespace grpc { + +}; + +int main(int argc, char** argv) { + grpc_test_init(argc, argv); + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} + diff --git a/test/c/end2end/end2end_test_client.h b/test/c/end2end/end2end_test_client.h new file mode 100644 index 0000000000000..0348fd8aa8ed2 --- /dev/null +++ b/test/c/end2end/end2end_test_client.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_END2END_TESET_CLIENT_H +#define GRPC_END2END_TESET_CLIENT_H + +#endif // GRPC_END2END_TESET_CLIENT_H From b7fe15a9ab7c5119b08c38c4c4a37f6021403c6e Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 21 Jul 2016 15:13:47 -0700 Subject: [PATCH 096/202] use pbc extension for nanopb --- .gitignore | 1 - examples/c/helloworld/Makefile | 10 +-- examples/c/route_guide/Makefile | 114 ++++++++++++++++++++++++++++++++ src/compiler/c_plugin.cc | 2 +- 4 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 examples/c/route_guide/Makefile diff --git a/.gitignore b/.gitignore index 0cfc82adbd9b6..3bb68e41cb9ef 100644 --- a/.gitignore +++ b/.gitignore @@ -103,7 +103,6 @@ artifacts/ CMakeCache.txt CMakeFiles CMakeScripts -Makefile cmake_install.cmake install_manifest.txt CTestTestfile.cmake diff --git a/examples/c/helloworld/Makefile b/examples/c/helloworld/Makefile index fc51d664f7336..b07536c7eac06 100644 --- a/examples/c/helloworld/Makefile +++ b/examples/c/helloworld/Makefile @@ -45,13 +45,13 @@ vpath %.proto $(PROTOS_PATH) all: system-check greeter_client greeter_async_client greeter_async_client2 -greeter_client: helloworld.pb.o helloworld.grpc.pbc.o greeter_client.o +greeter_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_client.o $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ -greeter_async_client: helloworld.pb.o helloworld.grpc.pbc.o greeter_async_client.o +greeter_async_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_client.o $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ -greeter_async_client2: helloworld.pb.o helloworld.grpc.pbc.o greeter_async_client2.o +greeter_async_client2: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_client2.o $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ .PRECIOUS: %.grpc.pbc.c @@ -59,8 +59,8 @@ greeter_async_client2: helloworld.pb.o helloworld.grpc.pbc.o greeter_async_clien $(PROTOC) -I $(PROTOS_PATH) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_C_PLUGIN_PATH) $< .PRECIOUS: %.pbc.c -%.pb.c: %.proto - $(PROTOC) --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb -I $(PROTOS_PATH) --nanopb_out=. $< +%.pbc.c: %.proto + $(PROTOC) --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb -I $(PROTOS_PATH) --nanopb_out=--extension=.pbc:. $< clean: rm -f *.o *.pb.c *.pb.h *.pbc.c *.pbc.h greeter_client greeter_async_client greeter_async_client2 diff --git a/examples/c/route_guide/Makefile b/examples/c/route_guide/Makefile new file mode 100644 index 0000000000000..8dc0cea4dd625 --- /dev/null +++ b/examples/c/route_guide/Makefile @@ -0,0 +1,114 @@ +# +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +NANOPB_DIR := $(abspath ../../../third_party/nanopb) +NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c + +CC = gcc +CFLAGS += -I/usr/local/include -I$(NANOPB_DIR)/ -pthread +LDFLAGS += -L/usr/local/lib `pkg-config --libs grpc` -lgrpc_c -lprotobuf -lpthread -ldl +PROTOC = protoc +GRPC_C_PLUGIN = grpc_c_plugin +GRPC_C_PLUGIN_PATH ?= `which $(GRPC_C_PLUGIN)` + +PROTOS_PATH = ../../protos + +vpath %.proto $(PROTOS_PATH) + +all: system-check route_guide_client + +route_guide_client: route_guide.pbc.o route_guide.grpc.pbc.o route_guide_client.o route_guide_db.c + $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ + +.PRECIOUS: %.grpc.pbc.c +%.grpc.pbc.c: %.proto + $(PROTOC) -I $(PROTOS_PATH) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_C_PLUGIN_PATH) $< + +.PRECIOUS: %.pbc.c +%.pbc.c: %.proto + $(PROTOC) --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb -I $(PROTOS_PATH) --nanopb_out=--extension=.pbc:. $< + +clean: + rm -f *.o *.pb.c *.pb.h *.pbc.c *.pbc.h route_guide_client + + +# The following is to test your system and ensure a smoother experience. +# They are by no means necessary to actually compile a grpc-enabled software. + +PROTOC_CMD = which $(PROTOC) +PROTOC_CHECK_CMD = $(PROTOC) --version | grep -q libprotoc.3 +PLUGIN_CHECK_CMD = which $(GRPC_C_PLUGIN) +HAS_PROTOC = $(shell $(PROTOC_CMD) > /dev/null && echo true || echo false) +ifeq ($(HAS_PROTOC),true) +HAS_VALID_PROTOC = $(shell $(PROTOC_CHECK_CMD) 2> /dev/null && echo true || echo false) +endif +HAS_PLUGIN = $(shell $(PLUGIN_CHECK_CMD) > /dev/null && echo true || echo false) + +SYSTEM_OK = false +ifeq ($(HAS_VALID_PROTOC),true) +ifeq ($(HAS_PLUGIN),true) +SYSTEM_OK = true +endif +endif + +system-check: +ifneq ($(HAS_VALID_PROTOC),true) + @echo " DEPENDENCY ERROR" + @echo + @echo "You don't have protoc 3.0.0 installed in your path." + @echo "Please install Google protocol buffers 3.0.0 and its compiler." + @echo "You can find it here:" + @echo + @echo " https://github.com/google/protobuf/releases/tag/v3.0.0-beta-2" + @echo + @echo "Here is what I get when trying to evaluate your version of protoc:" + @echo + -$(PROTOC) --version + @echo + @echo +endif +ifneq ($(HAS_PLUGIN),true) + @echo " DEPENDENCY ERROR" + @echo + @echo "You don't have the grpc c++ protobuf plugin installed in your path." + @echo "Please install grpc. You can find it here:" + @echo + @echo " https://github.com/grpc/grpc" + @echo + @echo "Here is what I get when trying to detect if you have the plugin:" + @echo + -which $(GRPC_CPP_PLUGIN) + @echo + @echo +endif +ifneq ($(SYSTEM_OK),true) + @false +endif diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc index d60be25d1961d..ccac196f25f6e 100644 --- a/src/compiler/c_plugin.cc +++ b/src/compiler/c_plugin.cc @@ -147,7 +147,7 @@ class ProtoBufCFile : public CFile { // TODO(yifeit): We're relying on Nanopb right now. After rolling out our own Protobuf-C impl, we should // use a different extension e.g. ".pbc.h" - grpc::string message_header_ext() const { return ".pb.h"; } + grpc::string message_header_ext() const { return ".pbc.h"; } grpc::string service_header_ext() const { return ".grpc.pbc.h"; } From 07d37f9ace12dc4699cdecef0ad0b576b6ac49e0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 21 Jul 2016 15:14:01 -0700 Subject: [PATCH 097/202] Structuring new end2end test --- test/c/end2end/end2end_test.cc | 8 +++++- test/c/end2end/end2end_test_client.c | 35 ++++++++++++++++++++++++++ test/c/end2end/end2end_test_client.h | 6 ++--- test/c/end2end/generic_end2end_test.cc | 1 + 4 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 test/c/end2end/end2end_test_client.c diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index d6859abfd8912..82f1d34504513 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -68,8 +68,14 @@ extern "C" { */ namespace grpc { +namespace testing { +namespace { -}; + + +} // namespace +} // namespace testing +} // namespace grpc int main(int argc, char** argv) { grpc_test_init(argc, argv); diff --git a/test/c/end2end/end2end_test_client.c b/test/c/end2end/end2end_test_client.c new file mode 100644 index 0000000000000..2627c23f64dd6 --- /dev/null +++ b/test/c/end2end/end2end_test_client.c @@ -0,0 +1,35 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "test/c/end2end/end2end_test_client.h" + diff --git a/test/c/end2end/end2end_test_client.h b/test/c/end2end/end2end_test_client.h index 0348fd8aa8ed2..301a4b64e4d3d 100644 --- a/test/c/end2end/end2end_test_client.h +++ b/test/c/end2end/end2end_test_client.h @@ -31,7 +31,7 @@ * */ -#ifndef GRPC_END2END_TESET_CLIENT_H -#define GRPC_END2END_TESET_CLIENT_H +#ifndef GRPC_END2END_TEST_CLIENT_H +#define GRPC_END2END_TEST_CLIENT_H -#endif // GRPC_END2END_TESET_CLIENT_H +#endif // GRPC_END2END_TEST_CLIENT_H diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index 67ba9a378852b..b9b2aff155538 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -69,6 +69,7 @@ extern "C" { /** * End-to-end tests for the gRPC C API. + * This test calls the codegen layer directly instead of exercising generated code. * As of early July 2016, this C API does not support creating servers, so we pull in a server implementation for C++ * and put this test under the C++ build. */ From 3933a55d461c77d4f7bd19d14e99a5f238f97fd1 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:02:19 -0700 Subject: [PATCH 098/202] Include headers of dependencies when compiling service definition --- src/compiler/c_generator.cc | 31 ++++++++++++++++++++++++++++--- src/compiler/c_generator.h | 13 ++++++++++++- src/compiler/c_plugin.cc | 23 +++++++++++++---------- 3 files changed, 53 insertions(+), 14 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 09a9d64702787..302c78f50cb94 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -100,7 +100,6 @@ using grpc::protobuf::MethodDescriptor; using grpc::protobuf::Descriptor; using grpc::protobuf::io::StringOutputStream; -using grpc_cpp_generator::Parameters; using grpc_cpp_generator::File; using grpc_cpp_generator::Method; using grpc_cpp_generator::Service; @@ -525,6 +524,18 @@ grpc::string GetHeaderServices(File *file, // TODO(yifeit): hook this up to C prefix vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; + // We need to generate a short serialization helper for every message type + // This should be handled in protoc but there's nothing we can do at the moment + // given we're on nanopb. + for (auto& msg : dynamic_cast(file)->messages()) { + std::map vars_msg(vars); + vars_msg["msgType"] = msg->name(); + printer->Print(vars_msg, R"( +GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input); +void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output); +)"); + } + for (int i = 0; i < file->service_count(); ++i) { PrintHeaderService(printer.get(), file->service(i).get(), &vars); printer->Print("\n"); @@ -587,6 +598,14 @@ R"( printer->Print(vars, BlockifyComments(filename).c_str()); printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(vars, "/* Other message dependencies */\n"); + // include all other service headers on which this one depends + for (auto &depFile : dynamic_cast(file)->dependencies()) { + std::map depvars(vars); + depvars["filename_base"] = depFile->filename_without_ext(); + depvars["service_header_ext"] = depFile->service_header_ext(); + printer->Print(depvars, "#include \"$filename_base$$service_header_ext$\"\n"); + } printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); printer->Print(vars, file->additional_headers().c_str()); @@ -603,6 +622,9 @@ grpc::string GetSourceIncludes(File *file, auto printer = file->CreatePrinter(&output); std::map vars; + grpc::string nano_encode = params.nanopb_headers_prefix + "pb_encode.h"; + grpc::string nano_decode = params.nanopb_headers_prefix + "pb_decode.h"; + static const char *headers_strs[] = { "grpc_c/status_code.h", "grpc_c/status.h", @@ -616,8 +638,8 @@ grpc::string GetSourceIncludes(File *file, "grpc_c/client_context.h", "grpc_c/codegen/client_context_priv.h", // Relying on Nanopb for Protobuf serialization for now - "pb_encode.h", - "pb_decode.h", + nano_encode.c_str(), + nano_decode.c_str(), "grpc_c/pb_compat.h" }; std::vector headers(headers_strs, array_end(headers_strs)); @@ -713,6 +735,9 @@ grpc::string GetSourceServices(File *file, // TODO(yifeit): hook this up to C prefix vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; + // We need to generate a short serialization helper for every message type + // This should be handled in protoc but there's nothing we can do at the moment + // given we're on nanopb. for (auto& msg : dynamic_cast(file)->messages()) { std::map vars_msg(vars); vars_msg["msgType"] = msg->name(); diff --git a/src/compiler/c_generator.h b/src/compiler/c_generator.h index 4af339553bb6b..882ab86b22dd1 100644 --- a/src/compiler/c_generator.h +++ b/src/compiler/c_generator.h @@ -40,13 +40,24 @@ namespace grpc_c_generator { using ::grpc::protobuf::ServiceDescriptor; -using ::grpc_cpp_generator::Parameters; using ::grpc_cpp_generator::File; using ::grpc::string; +// Contains all the parameters that are parsed from the command line. +struct Parameters { + // Use system includes (<>) or local includes ("") + bool use_system_headers; + // Prefix to any grpc include + grpc::string grpc_search_path; + // Prefix to nanopb includes + grpc::string nanopb_headers_prefix; +}; + class CFile : public grpc_cpp_generator::File { public: + // List of messages defined in the file virtual std::vector messages() const = 0; + virtual std::vector > dependencies() const = 0; }; // Return the prologue of the generated header file. diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc index ccac196f25f6e..6445837444f80 100644 --- a/src/compiler/c_plugin.cc +++ b/src/compiler/c_plugin.cc @@ -185,6 +185,14 @@ class ProtoBufCFile : public CFile { return msgs; } + virtual std::vector > dependencies() const { + std::vector > deps; + for (int i = 0; i < file_->dependency_count(); i++) { + deps.push_back(std::unique_ptr(new ProtoBufCFile(file_->dependency(i)))); + } + return deps; + } + private: const grpc::protobuf::FileDescriptor *file_; }; @@ -201,11 +209,6 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { grpc::protobuf::compiler::GeneratorContext *context, ::grpc::string *error) const { - if (file->service_count() == 0) { - // No services. Do nothing. - return true; - } - grpc::string file_name = grpc_generator::StripProto(file->name()); // TODO(yifeit): Add c_prefix option in protobuf, and update descriptor @@ -220,7 +223,7 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { return false; } - grpc_cpp_generator::Parameters generator_parameters; + grpc_c_generator::Parameters generator_parameters; generator_parameters.use_system_headers = true; grpc_c_generator::ProtoBufCFile pbfile(file); @@ -233,8 +236,10 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { parameter_string++) { std::vector param = grpc_generator::tokenize(*parameter_string, "="); - if (param[0] == "services_namespace") { - generator_parameters.services_namespace = param[1]; + if (param[0] == "grpc_search_path") { + generator_parameters.grpc_search_path = param[1]; + } else if (param[0] == "nanopb_headers_prefix") { + generator_parameters.nanopb_headers_prefix = param[1]; } else if (param[0] == "use_system_headers") { if (param[1] == "true") { generator_parameters.use_system_headers = true; @@ -244,8 +249,6 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { *error = grpc::string("Invalid parameter: ") + *parameter_string; return false; } - } else if (param[0] == "grpc_search_path") { - generator_parameters.grpc_search_path = param[1]; } else { *error = grpc::string("Unknown parameter: ") + *parameter_string; return false; From bce4ac17753ef535e0827f54edfdc5413afcb2e0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:03:13 -0700 Subject: [PATCH 099/202] Got first C test involving codegen compiling --- build.yaml | 33 +++++++++++++++++---------------- templates/Makefile.template | 7 ++++++- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/build.yaml b/build.yaml index 860bc39543376..1fea930599936 100644 --- a/build.yaml +++ b/build.yaml @@ -883,6 +883,23 @@ libs: dll: true secure: check vs_project_guid: '{8AC0CB05-6E3C-4A40-B45E-FDA77644F432}' +- name: grpc_c_end2end_client_lib + build: private + language: c + headers: + - test/c/end2end/end2end_test_client.h + src: + - src/proto/grpc/testing/echo_messages.proto + - src/proto/grpc/testing/echo.proto + - test/c/end2end/end2end_test_client.c + deps: + - grpc_c + - grpc_test_util + - grpc + - gpr_test_util + - gpr + uses: + - nanopb - name: grpc_cronet build: all language: c @@ -1774,22 +1791,6 @@ targets: - grpc - gpr_test_util - gpr -- name: grpc_c_end2end_client_lib - build: private - language: c - headers: - - test/c/end2end/end2end_test_client.h - src: - - src/proto/grpc/testing/echo.proto - - test/c/end2end/end2end_test_client.c - deps: - - grpc_c - - grpc_test_util - - grpc - - gpr_test_util - - gpr - uses: - - nanopb - name: grpc_channel_args_test build: test language: c diff --git a/templates/Makefile.template b/templates/Makefile.template index 5bfe89a626a1a..e057e73506767 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1164,12 +1164,17 @@ $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out=--extension=.pbc:$(GENDIR) $< + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + + $(GENDIR)/${p}.grpc.pbc.c: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/${p}.pbc.c ${' '.join('$(GENDIR)/%s.pbc.c $(GENDIR)/%s.grpc.pbc.c' % (q,q) for q in proto_deps.get(p, []))} + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif % endfor From e1e0bdc6cfee2a2c3757f49f4a78bfdb1cd73d38 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:03:30 -0700 Subject: [PATCH 100/202] Regenerate build files --- Makefile | 270 +++++++++++++++++- tools/run_tests/sources_and_headers.json | 45 +++ tools/run_tests/tests.json | 21 ++ vsprojects/grpc.sln | 28 ++ .../grpc_c_end2end_client_lib.vcxproj | 198 +++++++++++++ .../grpc_c_end2end_client_lib.vcxproj.filters | 44 +++ .../grpc_c_end2end_test.vcxproj | 3 + .../grpc_c_generic_end2end_test.vcxproj | 210 ++++++++++++++ ...rpc_c_generic_end2end_test.vcxproj.filters | 21 ++ 9 files changed, 836 insertions(+), 4 deletions(-) create mode 100644 vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj create mode 100644 vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj create mode 100644 vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters diff --git a/Makefile b/Makefile index 5a24cd0be2c46..f80ad9fb376c8 100644 --- a/Makefile +++ b/Makefile @@ -257,6 +257,8 @@ DEFINES_gcov = _DEBUG DEBUG GPR_GCOV prefix ?= /usr/local +NANOPB_DIR := $(abspath third_party/nanopb) +NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c PROTOC ?= protoc DTRACE ?= dtrace CONFIG ?= opt @@ -1041,6 +1043,7 @@ end2end_test: $(BINDIR)/$(CONFIG)/end2end_test generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test grpc_c_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_end2end_test +grpc_c_generic_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test grpc_c_plugin: $(BINDIR)/$(CONFIG)/grpc_c_plugin grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin @@ -1170,7 +1173,7 @@ plugins: $(PROTOC_PLUGINS) privatelibs: privatelibs_c privatelibs_cxx -privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a +privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc @@ -1366,6 +1369,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/generic_end2end_test \ $(BINDIR)/$(CONFIG)/golden_file_test \ $(BINDIR)/$(CONFIG)/grpc_c_end2end_test \ + $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test \ $(BINDIR)/$(CONFIG)/grpc_cli \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ @@ -1413,6 +1417,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/generic_end2end_test \ $(BINDIR)/$(CONFIG)/golden_file_test \ $(BINDIR)/$(CONFIG)/grpc_c_end2end_test \ + $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test \ $(BINDIR)/$(CONFIG)/grpc_cli \ $(BINDIR)/$(CONFIG)/grpclb_api_test \ $(BINDIR)/$(CONFIG)/hybrid_end2end_test \ @@ -1702,6 +1707,8 @@ test_cxx: buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/golden_file_test || ( echo test golden_file_test failed ; exit 1 ) $(E) "[RUN] Testing grpc_c_end2end_test" $(Q) $(BINDIR)/$(CONFIG)/grpc_c_end2end_test || ( echo test grpc_c_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing grpc_c_generic_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test || ( echo test grpc_c_generic_end2end_test failed ; exit 1 ) $(E) "[RUN] Testing grpclb_api_test" $(Q) $(BINDIR)/$(CONFIG)/grpclb_api_test || ( echo test grpclb_api_test failed ; exit 1 ) $(E) "[RUN] Testing hybrid_end2end_test" @@ -1849,10 +1856,20 @@ $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_ba $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1864,10 +1881,20 @@ $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: src/proto/grpc/ref $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1879,10 +1906,20 @@ $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/com $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1894,10 +1931,20 @@ $(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.p $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/control.pbc.c: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/control.grpc.pbc.c: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/control.pbc.c $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.grpc.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1909,10 +1956,20 @@ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1924,10 +1981,20 @@ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/echo.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1939,10 +2006,20 @@ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/ech $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1954,10 +2031,20 @@ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/empty.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/empty.grpc.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1969,10 +2056,20 @@ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/messages.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/messages.grpc.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1984,10 +2081,20 @@ $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.p $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/metrics.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/metrics.grpc.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/metrics.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -1999,10 +2106,20 @@ $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/payloads.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/payloads.grpc.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -2014,10 +2131,20 @@ $(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/services.pbc.c: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/services.grpc.pbc.c: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/services.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.grpc.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c $(GENDIR)/src/proto/grpc/testing/control.grpc.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -2029,10 +2156,20 @@ $(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/stats.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/stats.grpc.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/stats.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif ifeq ($(NO_PROTOC),true) @@ -2044,10 +2181,20 @@ $(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< +$(GENDIR)/src/proto/grpc/testing/test.pbc.c: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c + $(E) "[PROTOC] Generating nanopb C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< + +$(GENDIR)/src/proto/grpc/testing/test.grpc.pbc.c: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/test.pbc.c $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/empty.grpc.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.grpc.pbc.c + $(E) "[GRPC] Generating gRPC-C's protobuf service C file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=nanopb_headers_prefix=third_party/nanopb/:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_c_plugin $< endif @@ -2310,6 +2457,7 @@ clean: # The various libraries +# Using nanopb for C files right now LIBGPR_SRC = \ src/core/lib/profiling/basic_timers.c \ src/core/lib/profiling/stap_timers.c \ @@ -2438,6 +2586,7 @@ ifneq ($(NO_DEPS),true) endif +# Using nanopb for C files right now LIBGPR_TEST_UTIL_SRC = \ test/core/util/test_config.c \ @@ -2463,6 +2612,7 @@ ifneq ($(NO_DEPS),true) endif +# Using nanopb for C files right now LIBGRPC_SRC = \ src/core/lib/surface/init.c \ src/core/lib/channel/channel_args.c \ @@ -2736,6 +2886,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC_C_SRC = \ src/c/alloc.c \ src/c/bidi_streaming_blocking_call.c \ @@ -2821,6 +2972,50 @@ endif endif +# Using nanopb for C files right now +LIBGRPC_C_END2END_CLIENT_LIB_SRC = \ + $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c \ + $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c \ + test/c/end2end/end2end_test_client.c \ + +PUBLIC_HEADERS_C += \ + +LIBGRPC_C_END2END_CLIENT_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_END2END_CLIENT_LIB_SRC)))) + + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a: openssl_dep_error + + +else + + +$(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a +endif + + + + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS:.o=.dep) +endif +endif +$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test_client.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc + + +# Using nanopb for C files right now LIBGRPC_CRONET_SRC = \ src/core/lib/surface/init.c \ src/core/lib/channel/channel_args.c \ @@ -3071,6 +3266,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC_TEST_UTIL_SRC = \ test/core/end2end/data/client_certs.c \ test/core/end2end/data/server1_cert.c \ @@ -3126,6 +3322,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ test/core/end2end/cq_verifier.c \ test/core/end2end/fixtures/proxy.c \ @@ -3162,6 +3359,7 @@ ifneq ($(NO_DEPS),true) endif +# Using nanopb for C files right now LIBGRPC_UNSECURE_SRC = \ src/core/lib/surface/init.c \ src/core/lib/surface/init_unsecure.c \ @@ -3389,6 +3587,7 @@ ifneq ($(NO_DEPS),true) endif +# Using nanopb for C files right now LIBRECONNECT_SERVER_SRC = \ test/core/util/reconnect_server.c \ @@ -3428,6 +3627,7 @@ endif endif +# Using nanopb for C files right now LIBTEST_TCP_SERVER_SRC = \ test/core/util/test_tcp_server.c \ @@ -3467,6 +3667,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC++_SRC = \ src/cpp/client/secure_credentials.cc \ src/cpp/common/auth_property_iterator.cc \ @@ -3665,6 +3866,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC++_REFLECTION_SRC = \ src/cpp/ext/proto_server_reflection.cc \ src/cpp/ext/proto_server_reflection_plugin.cc \ @@ -3792,6 +3994,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC++_REFLECTION_CODEGEN_SRC = \ $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc \ @@ -3841,6 +4044,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC++_TEST_CONFIG_SRC = \ test/cpp/util/test_config.cc \ @@ -3890,6 +4094,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC++_TEST_UTIL_SRC = \ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \ @@ -4008,6 +4213,7 @@ $(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/pro $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc +# Using nanopb for C files right now LIBGRPC++_UNSECURE_SRC = \ src/cpp/common/insecure_create_auth_context.cc \ src/cpp/client/channel.cc \ @@ -4187,6 +4393,7 @@ ifneq ($(NO_DEPS),true) endif +# Using nanopb for C files right now LIBGRPC_CLI_LIBS_SRC = \ test/cpp/util/cli_call.cc \ test/cpp/util/proto_file_parser.cc \ @@ -4238,6 +4445,7 @@ endif endif +# Using nanopb for C files right now LIBGRPC_PLUGIN_SUPPORT_SRC = \ src/compiler/c_generator.cc \ src/compiler/cpp_generator.cc \ @@ -4281,6 +4489,7 @@ ifneq ($(NO_DEPS),true) endif +# Using nanopb for C files right now LIBINTEROP_CLIENT_HELPER_SRC = \ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ test/cpp/interop/client_helper.cc \ @@ -4332,6 +4541,7 @@ endif $(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc +# Using nanopb for C files right now LIBINTEROP_CLIENT_MAIN_SRC = \ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ @@ -4387,6 +4597,7 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/client.o: $(GENDIR)/src/proto/grpc/testing/ $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +# Using nanopb for C files right now LIBINTEROP_SERVER_HELPER_SRC = \ test/cpp/interop/server_helper.cc \ @@ -4436,6 +4647,7 @@ endif endif +# Using nanopb for C files right now LIBINTEROP_SERVER_MAIN_SRC = \ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ @@ -4489,6 +4701,7 @@ endif $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +# Using nanopb for C files right now LIBQPS_SRC = \ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ @@ -4564,6 +4777,7 @@ $(OBJDIR)/$(CONFIG)/test/cpp/qps/usage_timer.o: $(GENDIR)/src/proto/grpc/testing $(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc +# Using nanopb for C files right now LIBGRPC_CSHARP_EXT_SRC = \ src/csharp/ext/grpc_csharp_ext.c \ @@ -4621,6 +4835,7 @@ endif endif +# Using nanopb for C files right now LIBBAD_CLIENT_TEST_SRC = \ test/core/bad_client/bad_client.c \ @@ -4660,6 +4875,7 @@ endif endif +# Using nanopb for C files right now LIBBAD_SSL_TEST_SERVER_SRC = \ test/core/bad_ssl/server_common.c \ @@ -4699,6 +4915,7 @@ endif endif +# Using nanopb for C files right now LIBEND2END_TESTS_SRC = \ test/core/end2end/end2end_tests.c \ test/core/end2end/tests/bad_hostname.c \ @@ -4778,6 +4995,7 @@ endif endif +# Using nanopb for C files right now LIBEND2END_NOSEC_TESTS_SRC = \ test/core/end2end/end2end_nosec_tests.c \ test/core/end2end/tests/bad_hostname.c \ @@ -9384,16 +9602,16 @@ $(BINDIR)/$(CONFIG)/grpc_c_end2end_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end_test endif endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a deps_grpc_c_end2end_test: $(GRPC_C_END2END_TEST_OBJS:.o=.dep) @@ -9404,6 +9622,49 @@ endif endif +GRPC_C_GENERIC_END2END_TEST_SRC = \ + test/c/end2end/generic_end2end_test.cc \ + +GRPC_C_GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_GENERIC_END2END_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: openssl_dep_error + +else + + + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test + +endif + +endif + +$(OBJDIR)/$(CONFIG)/test/c/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_grpc_c_generic_end2end_test: $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) +endif +endif + + GRPC_C_PLUGIN_SRC = \ src/compiler/c_plugin.cc \ @@ -12337,6 +12598,7 @@ src/cpp/ext/reflection.grpc.pb.cc: $(OPENSSL_DEP) src/cpp/ext/reflection.pb.cc: $(OPENSSL_DEP) src/cpp/server/secure_server_credentials.cc: $(OPENSSL_DEP) src/csharp/ext/grpc_csharp_ext.c: $(OPENSSL_DEP) +test/c/end2end/end2end_test_client.c: $(OPENSSL_DEP) test/core/bad_client/bad_client.c: $(OPENSSL_DEP) test/core/bad_ssl/server_common.c: $(OPENSSL_DEP) test/core/end2end/data/client_certs.c: $(OPENSSL_DEP) diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index c33e9b604a53f..aecd07d492e08 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2135,6 +2135,7 @@ "grpc++", "grpc++_test_util", "grpc_c", + "grpc_c_end2end_client_lib", "grpc_test_util" ], "headers": [], @@ -2146,6 +2147,25 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_c", + "grpc_test_util" + ], + "headers": [], + "language": "c++", + "name": "grpc_c_generic_end2end_test", + "src": [ + "test/c/end2end/generic_end2end_test.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "grpc_plugin_support" @@ -4315,6 +4335,31 @@ "third_party": false, "type": "lib" }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_c", + "grpc_test_util", + "nanopb" + ], + "headers": [ + "src/proto/grpc/testing/echo.grpc.pb.h", + "src/proto/grpc/testing/echo.pb.h", + "src/proto/grpc/testing/echo_messages.grpc.pb.h", + "src/proto/grpc/testing/echo_messages.pb.h", + "test/c/end2end/end2end_test_client.h" + ], + "language": "c", + "name": "grpc_c_end2end_client_lib", + "src": [ + "test/c/end2end/end2end_test_client.c", + "test/c/end2end/end2end_test_client.h" + ], + "third_party": false, + "type": "lib" + }, { "deps": [ "gpr", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 7eac2e1f7fdf0..5eebe946f7cba 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -2290,6 +2290,27 @@ "windows" ] }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "grpc_c_generic_end2end_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ diff --git a/vsprojects/grpc.sln b/vsprojects/grpc.sln index 52376e073eee4..64a5d343b058f 100644 --- a/vsprojects/grpc.sln +++ b/vsprojects/grpc.sln @@ -78,6 +78,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c", "vcxproj\.\grpc_c\ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c_end2end_client_lib", "vcxproj\.\grpc_c_end2end_client_lib\grpc_c_end2end_client_lib.vcxproj", "{E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} = {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_create_jwt", "vcxproj\.\grpc_create_jwt\grpc_create_jwt.vcxproj", "{77971F8D-F583-3E77-0E3C-6C1FB6B1749C}" ProjectSection(myProperties) = preProject lib = "False" @@ -343,6 +355,22 @@ Global {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|x64.Build.0 = Release-DLL|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug|Win32.ActiveCfg = Debug|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug|x64.ActiveCfg = Debug|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release|Win32.ActiveCfg = Release|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release|x64.ActiveCfg = Release|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug|Win32.Build.0 = Debug|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug|x64.Build.0 = Debug|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release|Win32.Build.0 = Release|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release|x64.Build.0 = Release|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Debug-DLL|x64.Build.0 = Debug|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release-DLL|Win32.Build.0 = Release|Win32 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release-DLL|x64.ActiveCfg = Release|x64 + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA}.Release-DLL|x64.Build.0 = Release|x64 {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|Win32.ActiveCfg = Debug|Win32 {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|x64.ActiveCfg = Debug|x64 {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj b/vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj new file mode 100644 index 0000000000000..c63361cb2c9b8 --- /dev/null +++ b/vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj @@ -0,0 +1,198 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + grpc_c_end2end_client_lib + + + grpc_c_end2end_client_lib + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Windows + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Windows + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Windows + true + false + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} + + + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + + + {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + + + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + diff --git a/vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj.filters b/vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj.filters new file mode 100644 index 0000000000000..9b046e9f3f2c6 --- /dev/null +++ b/vsprojects/vcxproj/grpc_c_end2end_client_lib/grpc_c_end2end_client_lib.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + src\proto\grpc\testing + + + src\proto\grpc\testing + + + test\c\end2end + + + + + test\c\end2end + + + + + + {88845056-dbea-064e-84b0-dd20edaf5c2f} + + + {97f6e7eb-e0bd-f1b3-02ec-04261c94d61e} + + + {24903da9-9e6a-6cde-d6c1-9f52cd8fc3da} + + + {bf09c59c-87f3-7875-bf92-c90365f1b173} + + + {9424231e-e157-b648-4da7-ac7eb95134dd} + + + {0e6c7bac-9816-5cc5-6500-b9d405acd56e} + + + {8316c6cd-96ba-6359-3500-325fee948ec2} + + + + diff --git a/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj index 475f777e94246..9f99ee55abded 100644 --- a/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_c_end2end_test/grpc_c_end2end_test.vcxproj @@ -164,6 +164,9 @@ + + {E5471C90-7EB8-3B1C-6E9E-C85E0B79FFBA} + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} diff --git a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj new file mode 100644 index 0000000000000..605f3bd553604 --- /dev/null +++ b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj @@ -0,0 +1,210 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {BA030408-865D-F9FA-8956-CDB22AD833E0} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + grpc_c_generic_end2end_test + static + Debug + static + Debug + + + grpc_c_generic_end2end_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + + + + + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} + + + {0BE77741-552A-929B-A497-4EF7ECE17A64} + + + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + + + {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} + + + {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + + + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters new file mode 100644 index 0000000000000..f7ca2b4a815a5 --- /dev/null +++ b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + test\c\end2end + + + + + + {86056035-a2c0-d9e4-e726-e94554c9d703} + + + {6e7f35dd-fd55-5887-5d76-a2d8d41d0141} + + + {804b2017-2bd3-bfd6-1e41-e2a4c08da27a} + + + + From f869141671a280df0f9cf50303a2eb007225b167 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:25:36 -0700 Subject: [PATCH 101/202] Recursively add dependencies --- src/compiler/c_plugin.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc index 6445837444f80..23fa8f95dbb10 100644 --- a/src/compiler/c_plugin.cc +++ b/src/compiler/c_plugin.cc @@ -188,7 +188,12 @@ class ProtoBufCFile : public CFile { virtual std::vector > dependencies() const { std::vector > deps; for (int i = 0; i < file_->dependency_count(); i++) { - deps.push_back(std::unique_ptr(new ProtoBufCFile(file_->dependency(i)))); + std::unique_ptr dep(new ProtoBufCFile(file_->dependency(i))); + // recursively add dependencies + auto child_dependency = dep->dependencies(); + std::move(child_dependency.begin(), child_dependency.end(), std::back_inserter(deps)); + // add myself by moving + deps.push_back(std::move(dep)); } return deps; } From 8ba447d60ceb0b6b6885373df96be56b637dc071 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:25:57 -0700 Subject: [PATCH 102/202] [wip] adding empty C test impl --- test/c/end2end/end2end_test.cc | 112 ++++++++++++++++++++++++++- test/c/end2end/end2end_test_client.c | 51 ++++++++++++ test/c/end2end/end2end_test_client.h | 8 ++ 3 files changed, 170 insertions(+), 1 deletion(-) diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 82f1d34504513..c8de7224cc656 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -71,7 +71,118 @@ namespace grpc { namespace testing { namespace { +class End2endTest { +public: + End2endTest() + : is_server_started_(false), + kMaxMessageSize_(8192), + c_channel_(NULL) { + } + ~End2endTest() { + GRPC_channel_destroy(&c_channel_); + } + + void TearDown() { + if (is_server_started_) { + server_->Shutdown(); + } + } + + void StartServer(const std::shared_ptr &processor) { + int port = grpc_pick_unused_port_or_die(); + server_address_ << "127.0.0.1:" << port; + // Setup server + ServerBuilder builder; + + builder.AddListeningPort(server_address_.str(), InsecureServerCredentials()); + builder.RegisterService(&service_); + builder.SetMaxMessageSize( + kMaxMessageSize_); // For testing max message size. + server_ = builder.BuildAndStart(); + is_server_started_ = true; + } + + void ResetChannel() { + if (!is_server_started_) { + StartServer(std::shared_ptr()); + } + EXPECT_TRUE(is_server_started_); + + // TODO(yifeit): add credentials + if (c_channel_) GRPC_channel_destroy(&c_channel_); + c_channel_ = GRPC_channel_create(server_address_.str().c_str()); + } + + void ResetStub() { + ResetChannel(); + } + + bool is_server_started_; + + std::unique_ptr server_; + std::ostringstream server_address_; + const int kMaxMessageSize_; + TestServiceImpl service_; + grpc::string user_agent_prefix_; + + GRPC_channel *c_channel_; +}; + +class UnaryEnd2endTest : public End2endTest { +protected: +}; + +class ClientStreamingEnd2endTest : public End2endTest { +protected: +}; + +class ServerStreamingEnd2endTest : public End2endTest { +protected: +}; + +class BidiStreamingEnd2endTest : public End2endTest { +protected: +}; + +class AsyncUnaryEnd2endTest : public End2endTest { +protected: +}; + +TEST(End2endTest, UnaryRpc) { + UnaryEnd2endTest test; + test.ResetStub(); + test_client_send_unary_rpc(test.c_channel_, 3); + test.TearDown(); +} + +TEST(End2endTest, ClientStreamingRpc) { + ClientStreamingEnd2endTest test; + test.ResetStub(); + test_client_send_client_streaming_rpc(test.c_channel_, 3); + test.TearDown(); +} + +TEST(End2endTest, ServerStreamingRpc) { + ServerStreamingEnd2endTest test; + test.ResetStub(); + test_client_send_server_streaming_rpc(test.c_channel_, 3); + test.TearDown(); +} + +TEST(End2endTest, BidiStreamingRpc) { + BidiStreamingEnd2endTest test; + test.ResetStub(); + test_client_send_bidi_streaming_rpc(test.c_channel_, 3); + test.TearDown(); +} + +TEST(End2endTest, AsyncUnaryRpc) { + AsyncUnaryEnd2endTest test; + test.ResetStub(); + test_client_send_async_unary_rpc(test.c_channel_, 3); + test.TearDown(); +} } // namespace } // namespace testing @@ -82,4 +193,3 @@ int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } - diff --git a/test/c/end2end/end2end_test_client.c b/test/c/end2end/end2end_test_client.c index 2627c23f64dd6..41bea3d776626 100644 --- a/test/c/end2end/end2end_test_client.c +++ b/test/c/end2end/end2end_test_client.c @@ -31,5 +31,56 @@ * */ +/** + * This file contains the C part of end2end test. It is called by the GoogleTest-based C++ code. + */ + #include "test/c/end2end/end2end_test_client.h" +#include "src/proto/grpc/testing/echo.grpc.pbc.h" +#include +#include + +/** + * Nanopb callbacks for string encoding/decoding. + */ +static bool write_string_from_arg(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) +{ + const char *str = *arg; + if (!pb_encode_tag_for_field(stream, field)) + return false; + + return pb_encode_string(stream, (uint8_t*)str, strlen(str)); +} + +/** + * This callback function reads a string from Nanopb stream and copies it into the callback args. + * Users need to free the string after use. + */ +static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *field, void **arg) { + size_t len = stream->bytes_left; + char *str = malloc(len + 1); + if (!pb_read(stream, (uint8_t *) str, len)) return false; + str[len] = '\0'; + *arg = str; + return true; +} + +void test_client_send_unary_rpc(GRPC_channel *channel, int repeat) { + +} + +void test_client_send_client_streaming_rpc(GRPC_channel *channel, int repeat) { + +} + +void test_client_send_server_streaming_rpc(GRPC_channel *channel, int repeat) { + +} + +void test_client_send_bidi_streaming_rpc(GRPC_channel *channel, int repeat) { + +} + +void test_client_send_async_unary_rpc(GRPC_channel *channel, int repeat) { +} diff --git a/test/c/end2end/end2end_test_client.h b/test/c/end2end/end2end_test_client.h index 301a4b64e4d3d..ab61e0a2bfee6 100644 --- a/test/c/end2end/end2end_test_client.h +++ b/test/c/end2end/end2end_test_client.h @@ -34,4 +34,12 @@ #ifndef GRPC_END2END_TEST_CLIENT_H #define GRPC_END2END_TEST_CLIENT_H +#include + +void test_client_send_unary_rpc(GRPC_channel *channel, int repeat); +void test_client_send_client_streaming_rpc(GRPC_channel *channel, int repeat); +void test_client_send_server_streaming_rpc(GRPC_channel *channel, int repeat); +void test_client_send_bidi_streaming_rpc(GRPC_channel *channel, int repeat); +void test_client_send_async_unary_rpc(GRPC_channel *channel, int repeat); + #endif // GRPC_END2END_TEST_CLIENT_H From 9aa7e7436fb4bbe0eb56fe6f82cb575508dfd8a5 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:33:43 -0700 Subject: [PATCH 103/202] Add unary end2end test --- test/c/end2end/end2end_test.cc | 6 ++++++ test/c/end2end/end2end_test_client.c | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index c8de7224cc656..ca81876ac5c2d 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -48,6 +48,12 @@ #include #include +// Import the relevant bits in gRPC-C runtime +extern "C" { +#include +#include +} + // Import the C client which actually runs the tests extern "C" { #include "test/c/end2end/end2end_test_client.h" diff --git a/test/c/end2end/end2end_test_client.c b/test/c/end2end/end2end_test_client.c index 41bea3d776626..0588605b07dfb 100644 --- a/test/c/end2end/end2end_test_client.c +++ b/test/c/end2end/end2end_test_client.c @@ -39,6 +39,7 @@ #include "src/proto/grpc/testing/echo.grpc.pbc.h" #include #include +#include /** * Nanopb callbacks for string encoding/decoding. @@ -66,7 +67,15 @@ static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *fie } void test_client_send_unary_rpc(GRPC_channel *channel, int repeat) { + grpc_testing_EchoRequest request = { .message = { .arg = "gRPC-C", .funcs.encode = write_string_from_arg } }; + grpc_testing_EchoResponse response = { .message = { .funcs.decode = read_string_store_in_arg } }; + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_status status = grpc_testing_EchoTestService_Echo(context, request, &response); + GPR_ASSERT(status.ok); + GPR_ASSERT(status.code == GRPC_STATUS_OK); + GPR_ASSERT(strcmp(response.message.arg, "gRPC-C") == 0); + GRPC_client_context_destroy(&context); } void test_client_send_client_streaming_rpc(GRPC_channel *channel, int repeat) { From 89201f045713e835821e1675b4c3f962078cbb0c Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:40:37 -0700 Subject: [PATCH 104/202] implement client streaming end2end test --- test/c/end2end/end2end_test_client.c | 47 +++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/test/c/end2end/end2end_test_client.c b/test/c/end2end/end2end_test_client.c index 0588605b07dfb..6ced256131c86 100644 --- a/test/c/end2end/end2end_test_client.c +++ b/test/c/end2end/end2end_test_client.c @@ -67,29 +67,60 @@ static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *fie } void test_client_send_unary_rpc(GRPC_channel *channel, int repeat) { - grpc_testing_EchoRequest request = { .message = { .arg = "gRPC-C", .funcs.encode = write_string_from_arg } }; - grpc_testing_EchoResponse response = { .message = { .funcs.decode = read_string_store_in_arg } }; + int i; + for (i = 0; i < repeat; i++) { + grpc_testing_EchoRequest request = {.message = {.arg = "gRPC-C", .funcs.encode = write_string_from_arg}}; + grpc_testing_EchoResponse response = {.message = {.funcs.decode = read_string_store_in_arg}}; - GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_status status = grpc_testing_EchoTestService_Echo(context, request, &response); - GPR_ASSERT(status.ok); - GPR_ASSERT(status.code == GRPC_STATUS_OK); - GPR_ASSERT(strcmp(response.message.arg, "gRPC-C") == 0); - GRPC_client_context_destroy(&context); + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_status status = grpc_testing_EchoTestService_Echo(context, request, &response); + GPR_ASSERT(status.ok); + GPR_ASSERT(status.code == GRPC_STATUS_OK); + GPR_ASSERT(strcmp(response.message.arg, "gRPC-C") == 0); + free(response.message.arg); + GRPC_client_context_destroy(&context); + } } void test_client_send_client_streaming_rpc(GRPC_channel *channel, int repeat) { + int i; + for (i = 0; i < repeat; i++) { + grpc_testing_EchoRequest request = {.message = {.arg = "gRPC-C", .funcs.encode = write_string_from_arg}}; + grpc_testing_EchoResponse response = {.message = {.funcs.decode = read_string_store_in_arg}}; + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_writer *writer = grpc_testing_EchoTestService_RequestStream(context, &response); + GPR_ASSERT(writer != NULL); + int j; + for (j = 0; j < 3; j++) { + GPR_ASSERT(grpc_testing_EchoTestService_RequestStream_Write(writer, request)); + } + GRPC_status status = grpc_testing_EchoTestService_RequestStream_Terminate(writer); + GPR_ASSERT(status.ok); + GPR_ASSERT(status.code == GRPC_STATUS_OK); + GPR_ASSERT(strcmp(response.message.arg, "gRPC-CgRPC-CgRPC-C") == 0); + free(response.message.arg); + GRPC_client_context_destroy(&context); + } } void test_client_send_server_streaming_rpc(GRPC_channel *channel, int repeat) { + int i; + for (i = 0; i < repeat; i++) { + } } void test_client_send_bidi_streaming_rpc(GRPC_channel *channel, int repeat) { + int i; + for (i = 0; i < repeat; i++) { + } } void test_client_send_async_unary_rpc(GRPC_channel *channel, int repeat) { + int i; + for (i = 0; i < repeat; i++) { + } } From f0d3e4493f57394213e01db3999210c835e4a516 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 17:57:59 -0700 Subject: [PATCH 105/202] implement server streaming end2end test --- test/c/end2end/end2end_test_client.c | 21 +++++++++++++++++++++ test/c/end2end/generic_end2end_test.cc | 1 + 2 files changed, 22 insertions(+) diff --git a/test/c/end2end/end2end_test_client.c b/test/c/end2end/end2end_test_client.c index 6ced256131c86..b6f2ac6819b6d 100644 --- a/test/c/end2end/end2end_test_client.c +++ b/test/c/end2end/end2end_test_client.c @@ -40,6 +40,7 @@ #include #include #include +#include /** * Nanopb callbacks for string encoding/decoding. @@ -107,7 +108,27 @@ void test_client_send_client_streaming_rpc(GRPC_channel *channel, int repeat) { void test_client_send_server_streaming_rpc(GRPC_channel *channel, int repeat) { int i; for (i = 0; i < repeat; i++) { + grpc_testing_EchoRequest request = {.message = {.arg = "gRPC-C", .funcs.encode = write_string_from_arg}}; + grpc_testing_EchoResponse response = {.message = {.funcs.decode = read_string_store_in_arg}}; + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_reader *reader = grpc_testing_EchoTestService_ResponseStream(context, request); + GPR_ASSERT(reader != NULL); + int j = 0; + while (grpc_testing_EchoTestService_ResponseStream_Read(reader, &response)) { + GPR_ASSERT(response.message.arg != NULL); + char *buf = malloc(strlen(response.message.arg) + 10); + sprintf(buf, "%s%d", "gRPC-C", j); + GPR_ASSERT(strcmp(buf, response.message.arg) == 0); + free(buf); + free(response.message.arg); + j++; + } + GPR_ASSERT(j > 0); + GRPC_status status = grpc_testing_EchoTestService_ResponseStream_Terminate(reader); + GPR_ASSERT(status.ok); + GPR_ASSERT(status.code == GRPC_STATUS_OK); + GRPC_client_context_destroy(&context); } } diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index b9b2aff155538..43796276103a3 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -225,6 +225,7 @@ static void SendServerStreamingRpc(GRPC_channel *channel, EXPECT_EQ(grpc::string("gRPC-C") + grpc::to_string(count++), grpc::string(response_string)); free(response_string); } + EXPECT_TRUE(count > 0); GRPC_status status = GRPC_client_reader_terminate(reader); EXPECT_TRUE(status.ok) << status.details; From 7fe9426c30985c60fac10338ac4a04a13ad05c1a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 18:11:28 -0700 Subject: [PATCH 106/202] implement bidi streaming end2end test --- test/c/end2end/end2end_test_client.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/c/end2end/end2end_test_client.c b/test/c/end2end/end2end_test_client.c index b6f2ac6819b6d..e2856d76e5d4d 100644 --- a/test/c/end2end/end2end_test_client.c +++ b/test/c/end2end/end2end_test_client.c @@ -135,7 +135,34 @@ void test_client_send_server_streaming_rpc(GRPC_channel *channel, int repeat) { void test_client_send_bidi_streaming_rpc(GRPC_channel *channel, int repeat) { int i; for (i = 0; i < repeat; i++) { + grpc_testing_EchoRequest request = {.message = {.arg = "gRPC-C", .funcs.encode = write_string_from_arg}}; + grpc_testing_EchoResponse response = {.message = {.funcs.decode = read_string_store_in_arg}}; + + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_reader_writer *reader_writer = grpc_testing_EchoTestService_BidiStream(context); + GPR_ASSERT(reader_writer != NULL); + + const int kNumRequestToSend = 3; + + int j; + for (j = 0; j < kNumRequestToSend; j++) { + GPR_ASSERT(grpc_testing_EchoTestService_BidiStream_Write(reader_writer, request)); + } + GPR_ASSERT(grpc_testing_EchoTestService_BidiStream_Writes_Done(reader_writer)); + int count = 0; + while (grpc_testing_EchoTestService_BidiStream_Read(reader_writer, &response)) { + GPR_ASSERT(response.message.arg != NULL); + GPR_ASSERT(strcmp("gRPC-C", response.message.arg) == 0); + free(response.message.arg); + count++; + } + + GPR_ASSERT(kNumRequestToSend == count); + GRPC_status status = grpc_testing_EchoTestService_BidiStream_Terminate(reader_writer); + GPR_ASSERT(status.ok); + GPR_ASSERT(status.code == GRPC_STATUS_OK); + GRPC_client_context_destroy(&context); } } From 791b8ec9d9ffb1c13b78f42da011710e278cf358 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 18:43:12 -0700 Subject: [PATCH 107/202] commenting --- build.yaml | 5 +++++ src/compiler/c_generator.cc | 2 ++ 2 files changed, 7 insertions(+) diff --git a/build.yaml b/build.yaml index 1fea930599936..74812ad6b4e00 100644 --- a/build.yaml +++ b/build.yaml @@ -2740,6 +2740,9 @@ targets: - grpc - gpr - name: grpc_c_end2end_test + comments: + - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C server + - '#2': We're using the library grpc_c_end2end_client_lib to process nanopb and interface with generated code gtest: true build: test language: c++ @@ -2755,6 +2758,8 @@ targets: - gpr_test_util - gpr - name: grpc_c_generic_end2end_test + comments: + - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C server gtest: true build: test language: c++ diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 302c78f50cb94..0a76dd2a68e24 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -597,6 +597,7 @@ R"( } printer->Print(vars, BlockifyComments(filename).c_str()); + printer->Print(vars, "/* Message header */\n"); printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); printer->Print(vars, "/* Other message dependencies */\n"); // include all other service headers on which this one depends @@ -606,6 +607,7 @@ R"( depvars["service_header_ext"] = depFile->service_header_ext(); printer->Print(depvars, "#include \"$filename_base$$service_header_ext$\"\n"); } + printer->Print(vars, "/* Service header */\n"); printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); printer->Print(vars, file->additional_headers().c_str()); From b5167a7ab29dd7ad4959713982c226396f44f7e8 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 22 Jul 2016 19:03:48 -0700 Subject: [PATCH 108/202] implement async unary end2end test --- test/c/end2end/end2end_test_client.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/c/end2end/end2end_test_client.c b/test/c/end2end/end2end_test_client.c index e2856d76e5d4d..81cdafe276901 100644 --- a/test/c/end2end/end2end_test_client.c +++ b/test/c/end2end/end2end_test_client.c @@ -41,6 +41,7 @@ #include #include #include +#include /** * Nanopb callbacks for string encoding/decoding. @@ -77,6 +78,7 @@ void test_client_send_unary_rpc(GRPC_channel *channel, int repeat) { GRPC_status status = grpc_testing_EchoTestService_Echo(context, request, &response); GPR_ASSERT(status.ok); GPR_ASSERT(status.code == GRPC_STATUS_OK); + GPR_ASSERT(response.message.arg != NULL); GPR_ASSERT(strcmp(response.message.arg, "gRPC-C") == 0); free(response.message.arg); GRPC_client_context_destroy(&context); @@ -99,6 +101,7 @@ void test_client_send_client_streaming_rpc(GRPC_channel *channel, int repeat) { GRPC_status status = grpc_testing_EchoTestService_RequestStream_Terminate(writer); GPR_ASSERT(status.ok); GPR_ASSERT(status.code == GRPC_STATUS_OK); + GPR_ASSERT(response.message.arg != NULL); GPR_ASSERT(strcmp(response.message.arg, "gRPC-CgRPC-CgRPC-C") == 0); free(response.message.arg); GRPC_client_context_destroy(&context); @@ -169,6 +172,31 @@ void test_client_send_bidi_streaming_rpc(GRPC_channel *channel, int repeat) { void test_client_send_async_unary_rpc(GRPC_channel *channel, int repeat) { int i; for (i = 0; i < repeat; i++) { + grpc_testing_EchoRequest request = {.message = {.arg = "gRPC-C", .funcs.encode = write_string_from_arg}}; + grpc_testing_EchoResponse response = {.message = {.funcs.decode = read_string_store_in_arg}}; + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + + bool ok; + void *tag; + GRPC_client_async_response_reader *async_reader = grpc_testing_EchoTestService_Echo_Async(context, cq, request); + GPR_ASSERT(async_reader != NULL); + grpc_testing_EchoTestService_Echo_Finish(async_reader, &response, (void *) 12345); + GRPC_completion_queue_next(cq, &tag, &ok); + GPR_ASSERT(ok); + GPR_ASSERT(tag == (void*) 12345); + + GRPC_status status = GRPC_get_call_status(context); + GPR_ASSERT(status.ok); + GPR_ASSERT(status.code == GRPC_STATUS_OK); + GPR_ASSERT(response.message.arg != NULL); + GPR_ASSERT(strcmp(response.message.arg, "gRPC-C") == 0); + free(response.message.arg); + + GRPC_client_context_destroy(&context); + GRPC_completion_queue_shutdown(cq); + GRPC_completion_queue_shutdown_wait(cq); + GRPC_completion_queue_destroy(cq); } } From ce4d81b26a291a91ce30e0adf15ce759d3540764 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 14:02:13 -0700 Subject: [PATCH 109/202] Make grpc_ensure_grpc_init thread-safe --- src/c/init_shutdown.c | 11 +++++----- test/c/end2end/end2end_test.cc | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/src/c/init_shutdown.c b/src/c/init_shutdown.c index 3d05ca646c65d..897e612bfcd65 100644 --- a/src/c/init_shutdown.c +++ b/src/c/init_shutdown.c @@ -33,16 +33,17 @@ #include "init_shutdown.h" #include -#include #include #include -void grpc_ensure_grpc_init() { - static bool initialized = false; - if (initialized) return; +static void perform_grpc_init() { grpc_init(); /* register grpc_shutdown to be called */ GPR_ASSERT(atexit(grpc_shutdown) == 0); - initialized = true; +} + +void grpc_ensure_grpc_init() { + static gpr_once once_var = GPR_ONCE_INIT; + gpr_once_init(&once_var, perform_grpc_init); } diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index ca81876ac5c2d..2e2137933060b 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -32,7 +32,10 @@ */ #include +#include +#include #include +#include #include #include @@ -162,6 +165,43 @@ TEST(End2endTest, UnaryRpc) { test.TearDown(); } +TEST(End2endTest, UnaryRpcRacing) { + UnaryEnd2endTest test; + test.ResetStub(); + std::vector threads; + const int kNumThreads = 50; + std::mutex mu; + std::condition_variable cv; + bool start_racing = false; + for (int i = 0; i < kNumThreads; i++) { + threads.push_back(std::move(std::thread([&test, &start_racing, &mu, &cv](int id) { + std::default_random_engine generator( std::random_device{}() ); + std::uniform_int_distribution<> distrib(1, 3); + { + { + std::unique_lock lock(mu); + while (!start_racing) { + cv.wait(lock); + } + } + for (int j = 0; j < 5; j++) { + std::this_thread::sleep_for(std::chrono::milliseconds(distrib(generator))); + test_client_send_unary_rpc(test.c_channel_, 5); + } + } + }, i))); + } + { + std::unique_lock lock(mu); + start_racing = true; + cv.notify_all(); + } + for (int i = 0; i < kNumThreads; i++) { + threads[i].join(); + } + test.TearDown(); +} + TEST(End2endTest, ClientStreamingRpc) { ClientStreamingEnd2endTest test; test.ResetStub(); From 1d3e45f53a41abea6aa50169684ec57383335db6 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 14:11:49 -0700 Subject: [PATCH 110/202] use designated initializers --- src/c/unary_async_call.c | 6 +++--- src/c/unary_blocking_call.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index c74dd9afcc1dc..953e074d48751 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -67,7 +67,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue * grpc_op_send_object, grpc_op_send_close }, - context, + .context = context, .response = NULL, .hide_from_user = true }, @@ -75,7 +75,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue * { grpc_op_recv_metadata }, - context, + .context = context, .response = NULL }, .finish_buf = { @@ -84,7 +84,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue * grpc_op_recv_object, grpc_op_recv_status }, - context, + .context = context, .response = NULL, } }); diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 66f05b156985e..f808e9f3a79cf 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -63,7 +63,7 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, grpc_op_send_close, grpc_op_recv_status }, - context, + .context = context, .user_tag = TAG(&set) }; From 06e7d446a69613b5433a26f3b335b4f1f07f0418 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 14:51:57 -0700 Subject: [PATCH 111/202] Compile proto files first before building C code which depends on them --- templates/Makefile.template | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/templates/Makefile.template b/templates/Makefile.template index e057e73506767..88340a450aefc 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1585,9 +1585,15 @@ % if lib.get('secure', 'check') == True or lib.get('secure', 'check') == 'check': endif % endif + + # Force compilation of proto files before building code that could potentially depend on them % for src in lib.src: % if not proto_re.match(src) and any(proto_re.match(src2) for src2 in lib.src): - $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o: ${' '.join(proto_to_cc(src2) for src2 in lib.src if proto_re.match(src2))} + % if lib.language == 'c++': + $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o: ${' '.join(proto_to_cc(src2) for src2 in lib.src if proto_re.match(src2))} + % else: + $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o: ${' '.join(proto_to_nanoc(src2) for src2 in lib.src if proto_re.match(src2))} + % endif % endif % endfor @@ -1759,9 +1765,15 @@ endif % endif % endif + + # Force compilation of proto files before building code that could potentially depend on them % for src in tgt.src: % if not proto_re.match(src) and any(proto_re.match(src2) for src2 in tgt.src): - $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o: ${' '.join(proto_to_cc(src2) for src2 in tgt.src if proto_re.match(src2))} + % if tgt.language == 'c++': + $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o: ${' '.join(proto_to_cc(src2) for src2 in tgt.src if proto_re.match(src2))} + % else: + $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o: ${' '.join(proto_to_nanoc(src2) for src2 in tgt.src if proto_re.match(src2))} + % endif % endif % endfor From fa4dc2d486fb58e92a90977807070596216c3c85 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 14:52:17 -0700 Subject: [PATCH 112/202] Regenerate build files --- Makefile | 574 +++++++++++++++++++++++++++++++++++++++++++++++++---- build.yaml | 13 +- 2 files changed, 547 insertions(+), 40 deletions(-) diff --git a/Makefile b/Makefile index f80ad9fb376c8..48e1a333762f6 100644 --- a/Makefile +++ b/Makefile @@ -2585,6 +2585,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBGPR_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGPR_TEST_UTIL_SRC = \ @@ -2611,6 +2613,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBGPR_TEST_UTIL_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_SRC = \ @@ -2885,6 +2889,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_C_SRC = \ @@ -2971,6 +2977,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_C_END2END_CLIENT_LIB_SRC = \ @@ -3012,7 +3020,9 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test_client.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test_client.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c # Using nanopb for C files right now @@ -3265,6 +3275,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_TEST_UTIL_SRC = \ @@ -3321,6 +3333,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ @@ -3358,6 +3372,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC_TEST_UTIL_UNSECURE_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_UNSECURE_SRC = \ @@ -3586,6 +3602,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC_UNSECURE_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBRECONNECT_SERVER_SRC = \ @@ -3626,6 +3644,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBTEST_TCP_SERVER_SRC = \ @@ -3666,6 +3686,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC++_SRC = \ @@ -3865,6 +3887,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC++_REFLECTION_SRC = \ @@ -3993,6 +4017,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC++_REFLECTION_CODEGEN_SRC = \ @@ -4043,6 +4069,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC++_TEST_CONFIG_SRC = \ @@ -4093,6 +4121,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC++_TEST_UTIL_SRC = \ @@ -4204,13 +4234,15 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC++_TEST_UTIL_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc # Using nanopb for C files right now @@ -4392,6 +4424,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC++_UNSECURE_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_CLI_LIBS_SRC = \ @@ -4444,6 +4478,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBGRPC_PLUGIN_SUPPORT_SRC = \ @@ -4488,6 +4524,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC_PLUGIN_SUPPORT_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBINTEROP_CLIENT_HELPER_SRC = \ @@ -4538,7 +4576,9 @@ ifneq ($(NO_DEPS),true) -include $(LIBINTEROP_CLIENT_HELPER_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc # Using nanopb for C files right now @@ -4593,8 +4633,10 @@ ifneq ($(NO_DEPS),true) -include $(LIBINTEROP_CLIENT_MAIN_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc # Using nanopb for C files right now @@ -4646,6 +4688,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBINTEROP_SERVER_MAIN_SRC = \ @@ -4698,7 +4742,9 @@ ifneq ($(NO_DEPS),true) -include $(LIBINTEROP_SERVER_MAIN_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc # Using nanopb for C files right now @@ -4764,17 +4810,19 @@ ifneq ($(NO_DEPS),true) -include $(LIBQPS_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/limit_cores.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/parse_json.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/usage_timer.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/limit_cores.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/parse_json.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/usage_timer.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc # Using nanopb for C files right now @@ -4834,6 +4882,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBBAD_CLIENT_TEST_SRC = \ @@ -4874,6 +4924,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBBAD_SSL_TEST_SERVER_SRC = \ @@ -4914,6 +4966,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBEND2END_TESTS_SRC = \ @@ -4994,6 +5048,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + # Using nanopb for C files right now LIBEND2END_NOSEC_TESTS_SRC = \ @@ -5059,6 +5115,8 @@ ifneq ($(NO_DEPS),true) -include $(LIBEND2END_NOSEC_TESTS_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + # All of the test targets, and protoc plugins @@ -5095,6 +5153,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + ALGORITHM_TEST_SRC = \ test/core/compression/algorithm_test.c \ @@ -5127,6 +5187,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + ALLOC_TEST_SRC = \ test/core/support/alloc_test.c \ @@ -5159,6 +5221,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + ALPN_TEST_SRC = \ test/core/transport/chttp2/alpn_test.c \ @@ -5191,6 +5255,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + API_FUZZER_SRC = \ test/core/end2end/fuzzers/api_fuzzer.c \ @@ -5223,6 +5289,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + BAD_SERVER_RESPONSE_TEST_SRC = \ test/core/end2end/bad_server_response_test.c \ @@ -5255,6 +5323,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + BIN_DECODER_TEST_SRC = \ test/core/transport/chttp2/bin_decoder_test.c \ @@ -5287,6 +5357,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + BIN_ENCODER_TEST_SRC = \ test/core/transport/chttp2/bin_encoder_test.c \ @@ -5319,6 +5391,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CENSUS_CONTEXT_TEST_SRC = \ test/core/census/context_test.c \ @@ -5351,6 +5425,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CHANNEL_CREATE_TEST_SRC = \ test/core/surface/channel_create_test.c \ @@ -5383,6 +5459,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CHTTP2_HPACK_ENCODER_TEST_SRC = \ test/core/transport/chttp2/hpack_encoder_test.c \ @@ -5415,6 +5493,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CHTTP2_STATUS_CONVERSION_TEST_SRC = \ test/core/transport/chttp2/status_conversion_test.c \ @@ -5447,6 +5527,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CHTTP2_STREAM_MAP_TEST_SRC = \ test/core/transport/chttp2/stream_map_test.c \ @@ -5479,6 +5561,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CHTTP2_VARINT_TEST_SRC = \ test/core/transport/chttp2/varint_test.c \ @@ -5511,6 +5595,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CLIENT_FUZZER_SRC = \ test/core/end2end/fuzzers/client_fuzzer.c \ @@ -5543,6 +5629,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + COMPRESSION_TEST_SRC = \ test/core/compression/compression_test.c \ @@ -5575,6 +5663,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CONCURRENT_CONNECTIVITY_TEST_SRC = \ test/core/surface/concurrent_connectivity_test.c \ @@ -5607,6 +5697,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \ test/core/client_config/resolvers/dns_resolver_connectivity_test.c \ @@ -5639,6 +5731,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + DNS_RESOLVER_TEST_SRC = \ test/core/client_config/resolvers/dns_resolver_test.c \ @@ -5671,6 +5765,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + DUALSTACK_SOCKET_TEST_SRC = \ test/core/end2end/dualstack_socket_test.c \ @@ -5703,6 +5799,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + ENDPOINT_PAIR_TEST_SRC = \ test/core/iomgr/endpoint_pair_test.c \ @@ -5735,6 +5833,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + EV_EPOLL_LINUX_TEST_SRC = \ test/core/iomgr/ev_epoll_linux_test.c \ @@ -5767,6 +5867,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + FD_CONSERVATION_POSIX_TEST_SRC = \ test/core/iomgr/fd_conservation_posix_test.c \ @@ -5799,6 +5901,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + FD_POSIX_TEST_SRC = \ test/core/iomgr/fd_posix_test.c \ @@ -5831,6 +5935,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + FLING_CLIENT_SRC = \ test/core/fling/client.c \ @@ -5863,6 +5969,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + FLING_SERVER_SRC = \ test/core/fling/server.c \ @@ -5895,6 +6003,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + FLING_STREAM_TEST_SRC = \ test/core/fling/fling_stream_test.c \ @@ -5927,6 +6037,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + FLING_TEST_SRC = \ test/core/fling/fling_test.c \ @@ -5959,6 +6071,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GEN_HPACK_TABLES_SRC = \ tools/codegen/core/gen_hpack_tables.c \ @@ -5991,6 +6105,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GEN_LEGAL_METADATA_CHARACTERS_SRC = \ tools/codegen/core/gen_legal_metadata_characters.c \ @@ -6023,6 +6139,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GOAWAY_SERVER_TEST_SRC = \ test/core/end2end/goaway_server_test.c \ @@ -6055,6 +6173,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_AVL_TEST_SRC = \ test/core/support/avl_test.c \ @@ -6087,6 +6207,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_BACKOFF_TEST_SRC = \ test/core/support/backoff_test.c \ @@ -6119,6 +6241,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_CMDLINE_TEST_SRC = \ test/core/support/cmdline_test.c \ @@ -6151,6 +6275,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_CPU_TEST_SRC = \ test/core/support/cpu_test.c \ @@ -6183,6 +6309,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_ENV_TEST_SRC = \ test/core/support/env_test.c \ @@ -6215,6 +6343,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_HISTOGRAM_TEST_SRC = \ test/core/support/histogram_test.c \ @@ -6247,6 +6377,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_HOST_PORT_TEST_SRC = \ test/core/support/host_port_test.c \ @@ -6279,6 +6411,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_LOG_TEST_SRC = \ test/core/support/log_test.c \ @@ -6311,6 +6445,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_SLICE_BUFFER_TEST_SRC = \ test/core/support/slice_buffer_test.c \ @@ -6343,6 +6479,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_SLICE_TEST_SRC = \ test/core/support/slice_test.c \ @@ -6375,6 +6513,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_STACK_LOCKFREE_TEST_SRC = \ test/core/support/stack_lockfree_test.c \ @@ -6407,6 +6547,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_STRING_TEST_SRC = \ test/core/support/string_test.c \ @@ -6439,6 +6581,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_SYNC_TEST_SRC = \ test/core/support/sync_test.c \ @@ -6471,6 +6615,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_THD_TEST_SRC = \ test/core/support/thd_test.c \ @@ -6503,6 +6649,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_TIME_TEST_SRC = \ test/core/support/time_test.c \ @@ -6535,6 +6683,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_TLS_TEST_SRC = \ test/core/support/tls_test.c \ @@ -6567,6 +6717,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GPR_USEFUL_TEST_SRC = \ test/core/support/useful_test.c \ @@ -6599,6 +6751,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_AUTH_CONTEXT_TEST_SRC = \ test/core/security/auth_context_test.c \ @@ -6631,6 +6785,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_B64_TEST_SRC = \ test/core/security/b64_test.c \ @@ -6663,6 +6819,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_BYTE_BUFFER_READER_TEST_SRC = \ test/core/surface/byte_buffer_reader_test.c \ @@ -6695,6 +6853,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_CHANNEL_ARGS_TEST_SRC = \ test/core/channel/channel_args_test.c \ @@ -6727,6 +6887,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_CHANNEL_STACK_TEST_SRC = \ test/core/channel/channel_stack_test.c \ @@ -6759,6 +6921,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_COMPLETION_QUEUE_TEST_SRC = \ test/core/surface/completion_queue_test.c \ @@ -6791,6 +6955,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_CREATE_JWT_SRC = \ test/core/security/create_jwt.c \ @@ -6823,6 +6989,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_CREDENTIALS_TEST_SRC = \ test/core/security/credentials_test.c \ @@ -6855,6 +7023,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_FETCH_OAUTH2_SRC = \ test/core/security/fetch_oauth2.c \ @@ -6887,6 +7057,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \ test/core/surface/invalid_channel_args_test.c \ @@ -6919,6 +7091,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_JSON_TOKEN_TEST_SRC = \ test/core/security/json_token_test.c \ @@ -6951,6 +7125,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_JWT_VERIFIER_TEST_SRC = \ test/core/security/jwt_verifier_test.c \ @@ -6983,6 +7159,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \ test/core/security/print_google_default_creds_token.c \ @@ -7015,6 +7193,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_SECURITY_CONNECTOR_TEST_SRC = \ test/core/security/security_connector_test.c \ @@ -7047,6 +7227,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_VERIFY_JWT_SRC = \ test/core/security/verify_jwt.c \ @@ -7079,6 +7261,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HPACK_PARSER_FUZZER_TEST_SRC = \ test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ @@ -7111,6 +7295,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HPACK_PARSER_TEST_SRC = \ test/core/transport/chttp2/hpack_parser_test.c \ @@ -7143,6 +7329,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HPACK_TABLE_TEST_SRC = \ test/core/transport/chttp2/hpack_table_test.c \ @@ -7175,6 +7363,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTP_PARSER_TEST_SRC = \ test/core/http/parser_test.c \ @@ -7207,6 +7397,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTP_REQUEST_FUZZER_TEST_SRC = \ test/core/http/request_fuzzer.c \ @@ -7239,6 +7431,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTP_RESPONSE_FUZZER_TEST_SRC = \ test/core/http/response_fuzzer.c \ @@ -7271,6 +7465,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTPCLI_FORMAT_REQUEST_TEST_SRC = \ test/core/http/format_request_test.c \ @@ -7303,6 +7499,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTPCLI_TEST_SRC = \ test/core/http/httpcli_test.c \ @@ -7335,6 +7533,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTPSCLI_TEST_SRC = \ test/core/http/httpscli_test.c \ @@ -7367,6 +7567,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + INIT_TEST_SRC = \ test/core/surface/init_test.c \ @@ -7399,6 +7601,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ test/core/internal_api_canaries/iomgr.c \ @@ -7431,6 +7635,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ test/core/internal_api_canaries/iomgr.c \ @@ -7463,6 +7669,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ test/core/internal_api_canaries/iomgr.c \ @@ -7495,6 +7703,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + INVALID_CALL_ARGUMENT_TEST_SRC = \ test/core/end2end/invalid_call_argument_test.c \ @@ -7527,6 +7737,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + JSON_FUZZER_TEST_SRC = \ test/core/json/fuzzer.c \ @@ -7559,6 +7771,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + JSON_REWRITE_SRC = \ test/core/json/json_rewrite.c \ @@ -7591,6 +7805,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + JSON_REWRITE_TEST_SRC = \ test/core/json/json_rewrite_test.c \ @@ -7623,6 +7839,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + JSON_STREAM_ERROR_TEST_SRC = \ test/core/json/json_stream_error_test.c \ @@ -7655,6 +7873,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + JSON_TEST_SRC = \ test/core/json/json_test.c \ @@ -7687,6 +7907,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + LAME_CLIENT_TEST_SRC = \ test/core/surface/lame_client_test.c \ @@ -7719,6 +7941,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + LB_POLICIES_TEST_SRC = \ test/core/client_config/lb_policies_test.c \ @@ -7751,6 +7975,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + LOAD_FILE_TEST_SRC = \ test/core/iomgr/load_file_test.c \ @@ -7783,6 +8009,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \ test/core/network_benchmarks/low_level_ping_pong.c \ @@ -7815,6 +8043,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + MESSAGE_COMPRESS_TEST_SRC = \ test/core/compression/message_compress_test.c \ @@ -7847,6 +8077,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + MLOG_TEST_SRC = \ test/core/census/mlog_test.c \ @@ -7879,6 +8111,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + MULTIPLE_SERVER_QUEUES_TEST_SRC = \ test/core/end2end/multiple_server_queues_test.c \ @@ -7911,6 +8145,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + MURMUR_HASH_TEST_SRC = \ test/core/support/murmur_hash_test.c \ @@ -7943,6 +8179,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + NANOPB_FUZZER_RESPONSE_TEST_SRC = \ test/core/nanopb/fuzzer_response.c \ @@ -7975,6 +8213,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + NANOPB_FUZZER_SERVERLIST_TEST_SRC = \ test/core/nanopb/fuzzer_serverlist.c \ @@ -8007,6 +8247,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + NO_SERVER_TEST_SRC = \ test/core/end2end/no_server_test.c \ @@ -8039,6 +8281,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + RESOLVE_ADDRESS_TEST_SRC = \ test/core/iomgr/resolve_address_test.c \ @@ -8071,6 +8315,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SECURE_CHANNEL_CREATE_TEST_SRC = \ test/core/surface/secure_channel_create_test.c \ @@ -8103,6 +8349,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SECURE_ENDPOINT_TEST_SRC = \ test/core/security/secure_endpoint_test.c \ @@ -8135,6 +8383,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SEQUENTIAL_CONNECTIVITY_TEST_SRC = \ test/core/surface/sequential_connectivity_test.c \ @@ -8167,6 +8417,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_CHTTP2_TEST_SRC = \ test/core/surface/server_chttp2_test.c \ @@ -8199,6 +8451,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_FUZZER_SRC = \ test/core/end2end/fuzzers/server_fuzzer.c \ @@ -8231,6 +8485,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_TEST_SRC = \ test/core/surface/server_test.c \ @@ -8263,6 +8519,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SET_INITIAL_CONNECT_STRING_TEST_SRC = \ test/core/client_config/set_initial_connect_string_test.c \ @@ -8295,6 +8553,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SOCKADDR_RESOLVER_TEST_SRC = \ test/core/client_config/resolvers/sockaddr_resolver_test.c \ @@ -8327,6 +8587,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SOCKADDR_UTILS_TEST_SRC = \ test/core/iomgr/sockaddr_utils_test.c \ @@ -8359,6 +8621,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SOCKET_UTILS_TEST_SRC = \ test/core/iomgr/socket_utils_test.c \ @@ -8391,6 +8655,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TCP_CLIENT_POSIX_TEST_SRC = \ test/core/iomgr/tcp_client_posix_test.c \ @@ -8423,6 +8689,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TCP_POSIX_TEST_SRC = \ test/core/iomgr/tcp_posix_test.c \ @@ -8455,6 +8723,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TCP_SERVER_POSIX_TEST_SRC = \ test/core/iomgr/tcp_server_posix_test.c \ @@ -8487,6 +8757,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TIME_AVERAGED_STATS_TEST_SRC = \ test/core/iomgr/time_averaged_stats_test.c \ @@ -8519,6 +8791,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TIMEOUT_ENCODING_TEST_SRC = \ test/core/transport/chttp2/timeout_encoding_test.c \ @@ -8551,6 +8825,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TIMER_HEAP_TEST_SRC = \ test/core/iomgr/timer_heap_test.c \ @@ -8583,6 +8859,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TIMER_LIST_TEST_SRC = \ test/core/iomgr/timer_list_test.c \ @@ -8615,6 +8893,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \ test/core/transport/connectivity_state_test.c \ @@ -8647,6 +8927,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TRANSPORT_METADATA_TEST_SRC = \ test/core/transport/metadata_test.c \ @@ -8679,6 +8961,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + TRANSPORT_SECURITY_TEST_SRC = \ test/core/tsi/transport_security_test.c \ @@ -8711,6 +8995,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + UDP_SERVER_TEST_SRC = \ test/core/iomgr/udp_server_test.c \ @@ -8743,6 +9029,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + URI_FUZZER_TEST_SRC = \ test/core/client_config/uri_fuzzer_test.c \ @@ -8775,6 +9063,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + URI_PARSER_TEST_SRC = \ test/core/client_config/uri_parser_test.c \ @@ -8807,6 +9097,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + ALARM_CPP_TEST_SRC = \ test/cpp/common/alarm_cpp_test.cc \ @@ -8850,6 +9142,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + ASYNC_END2END_TEST_SRC = \ test/cpp/end2end/async_end2end_test.cc \ @@ -8893,6 +9187,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + AUTH_PROPERTY_ITERATOR_TEST_SRC = \ test/cpp/common/auth_property_iterator_test.cc \ @@ -8936,6 +9232,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CHANNEL_ARGUMENTS_TEST_SRC = \ test/cpp/common/channel_arguments_test.cc \ @@ -8979,6 +9277,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CLI_CALL_TEST_SRC = \ test/cpp/util/cli_call_test.cc \ @@ -9022,6 +9322,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CLIENT_CRASH_TEST_SRC = \ test/cpp/end2end/client_crash_test.cc \ @@ -9065,6 +9367,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CLIENT_CRASH_TEST_SERVER_SRC = \ test/cpp/end2end/client_crash_test_server.cc \ @@ -9108,6 +9412,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CODEGEN_TEST_FULL_SRC = \ $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ @@ -9165,7 +9471,9 @@ ifneq ($(NO_DEPS),true) -include $(CODEGEN_TEST_FULL_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc CODEGEN_TEST_MINIMAL_SRC = \ @@ -9227,8 +9535,10 @@ ifneq ($(NO_DEPS),true) -include $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc CREDENTIALS_TEST_SRC = \ @@ -9273,6 +9583,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CXX_BYTE_BUFFER_TEST_SRC = \ test/cpp/util/byte_buffer_test.cc \ @@ -9316,6 +9628,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CXX_SLICE_TEST_SRC = \ test/cpp/util/slice_test.cc \ @@ -9359,6 +9673,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CXX_STRING_REF_TEST_SRC = \ test/cpp/util/string_ref_test.cc \ @@ -9402,6 +9718,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CXX_TIME_TEST_SRC = \ test/cpp/util/time_test.cc \ @@ -9445,6 +9763,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + END2END_TEST_SRC = \ test/cpp/end2end/end2end_test.cc \ @@ -9488,6 +9808,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GENERIC_END2END_TEST_SRC = \ test/cpp/end2end/generic_end2end_test.cc \ @@ -9531,6 +9853,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GOLDEN_FILE_TEST_SRC = \ $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ @@ -9576,7 +9900,9 @@ ifneq ($(NO_DEPS),true) -include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc GRPC_C_END2END_TEST_SRC = \ @@ -9621,6 +9947,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_C_GENERIC_END2END_TEST_SRC = \ test/c/end2end/generic_end2end_test.cc \ @@ -9664,6 +9992,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_C_PLUGIN_SRC = \ src/compiler/c_plugin.cc \ @@ -9695,6 +10025,8 @@ ifneq ($(NO_DEPS),true) -include $(GRPC_C_PLUGIN_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_CLI_SRC = \ test/cpp/util/grpc_cli.cc \ @@ -9738,6 +10070,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_CPP_PLUGIN_SRC = \ src/compiler/cpp_plugin.cc \ @@ -9769,6 +10103,8 @@ ifneq ($(NO_DEPS),true) -include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_CSHARP_PLUGIN_SRC = \ src/compiler/csharp_plugin.cc \ @@ -9800,6 +10136,8 @@ ifneq ($(NO_DEPS),true) -include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_NODE_PLUGIN_SRC = \ src/compiler/node_plugin.cc \ @@ -9831,6 +10169,8 @@ ifneq ($(NO_DEPS),true) -include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_OBJECTIVE_C_PLUGIN_SRC = \ src/compiler/objective_c_plugin.cc \ @@ -9862,6 +10202,8 @@ ifneq ($(NO_DEPS),true) -include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_PYTHON_PLUGIN_SRC = \ src/compiler/python_plugin.cc \ @@ -9893,6 +10235,8 @@ ifneq ($(NO_DEPS),true) -include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + GRPC_RUBY_PLUGIN_SRC = \ src/compiler/ruby_plugin.cc \ @@ -9924,6 +10268,8 @@ ifneq ($(NO_DEPS),true) -include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + GRPCLB_API_TEST_SRC = \ $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ @@ -9969,7 +10315,9 @@ ifneq ($(NO_DEPS),true) -include $(GRPCLB_API_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc HYBRID_END2END_TEST_SRC = \ @@ -10014,6 +10362,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + ifeq ($(NO_SECURE),true) @@ -10045,6 +10395,8 @@ endif +# Force compilation of proto files before building code that could potentially depend on them + ifeq ($(NO_SECURE),true) @@ -10076,6 +10428,8 @@ endif +# Force compilation of proto files before building code that could potentially depend on them + INTEROP_TEST_SRC = \ test/cpp/interop/interop_test.cc \ @@ -10119,6 +10473,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + JSON_RUN_LOCALHOST_SRC = \ test/cpp/qps/json_run_localhost.cc \ @@ -10162,6 +10518,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + METRICS_CLIENT_SRC = \ $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ @@ -10207,7 +10565,9 @@ ifneq ($(NO_DEPS),true) -include $(METRICS_CLIENT_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc MOCK_TEST_SRC = \ @@ -10252,6 +10612,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + PROTO_SERVER_REFLECTION_TEST_SRC = \ test/cpp/end2end/proto_server_reflection_test.cc \ @@ -10298,6 +10660,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + QPS_INTERARRIVAL_TEST_SRC = \ test/cpp/qps/qps_interarrival_test.cc \ @@ -10341,6 +10705,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + QPS_JSON_DRIVER_SRC = \ test/cpp/qps/qps_json_driver.cc \ @@ -10384,6 +10750,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + QPS_OPENLOOP_TEST_SRC = \ test/cpp/qps/qps_openloop_test.cc \ @@ -10427,6 +10795,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + QPS_WORKER_SRC = \ test/cpp/qps/worker.cc \ @@ -10470,6 +10840,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + RECONNECT_INTEROP_CLIENT_SRC = \ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ @@ -10521,7 +10893,9 @@ ifneq ($(NO_DEPS),true) -include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc RECONNECT_INTEROP_SERVER_SRC = \ @@ -10574,7 +10948,9 @@ ifneq ($(NO_DEPS),true) -include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc SECURE_AUTH_CONTEXT_TEST_SRC = \ @@ -10619,6 +10995,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ @@ -10662,6 +11040,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_BUILDER_PLUGIN_TEST_SRC = \ test/cpp/end2end/server_builder_plugin_test.cc \ @@ -10705,6 +11085,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_CRASH_TEST_SRC = \ test/cpp/end2end/server_crash_test.cc \ @@ -10748,6 +11130,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_CRASH_TEST_CLIENT_SRC = \ test/cpp/end2end/server_crash_test_client.cc \ @@ -10791,6 +11175,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SHUTDOWN_TEST_SRC = \ test/cpp/end2end/shutdown_test.cc \ @@ -10834,6 +11220,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + STATUS_TEST_SRC = \ test/cpp/util/status_test.cc \ @@ -10877,6 +11265,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + STREAMING_THROUGHPUT_TEST_SRC = \ test/cpp/end2end/streaming_throughput_test.cc \ @@ -10920,6 +11310,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + STRESS_TEST_SRC = \ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ @@ -10983,10 +11375,12 @@ ifneq ($(NO_DEPS),true) -include $(STRESS_TEST_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc THREAD_STRESS_TEST_SRC = \ @@ -11031,6 +11425,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + PUBLIC_HEADERS_MUST_BE_C89_SRC = \ test/core/surface/public_headers_must_be_c89.c \ @@ -11067,6 +11463,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + BADREQ_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/badreq.c \ @@ -11087,6 +11485,8 @@ ifneq ($(NO_DEPS),true) -include $(BADREQ_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + CONNECTION_PREFIX_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/connection_prefix.c \ @@ -11107,6 +11507,8 @@ ifneq ($(NO_DEPS),true) -include $(CONNECTION_PREFIX_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/head_of_line_blocking.c \ @@ -11127,6 +11529,8 @@ ifneq ($(NO_DEPS),true) -include $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + HEADERS_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/headers.c \ @@ -11147,6 +11551,8 @@ ifneq ($(NO_DEPS),true) -include $(HEADERS_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + INITIAL_SETTINGS_FRAME_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/initial_settings_frame.c \ @@ -11167,6 +11573,8 @@ ifneq ($(NO_DEPS),true) -include $(INITIAL_SETTINGS_FRAME_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + LARGE_METADATA_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/large_metadata.c \ @@ -11187,6 +11595,8 @@ ifneq ($(NO_DEPS),true) -include $(LARGE_METADATA_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_REGISTERED_METHOD_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/server_registered_method.c \ @@ -11207,6 +11617,8 @@ ifneq ($(NO_DEPS),true) -include $(SERVER_REGISTERED_METHOD_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + SIMPLE_REQUEST_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/simple_request.c \ @@ -11227,6 +11639,8 @@ ifneq ($(NO_DEPS),true) -include $(SIMPLE_REQUEST_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + UNKNOWN_FRAME_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/unknown_frame.c \ @@ -11247,6 +11661,8 @@ ifneq ($(NO_DEPS),true) -include $(UNKNOWN_FRAME_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + WINDOW_OVERFLOW_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/tests/window_overflow.c \ @@ -11267,6 +11683,8 @@ ifneq ($(NO_DEPS),true) -include $(WINDOW_OVERFLOW_BAD_CLIENT_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + BAD_SSL_ALPN_SERVER_SRC = \ test/core/bad_ssl/servers/alpn.c \ @@ -11299,6 +11717,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + BAD_SSL_CERT_SERVER_SRC = \ test/core/bad_ssl/servers/cert.c \ @@ -11331,6 +11751,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + BAD_SSL_ALPN_TEST_SRC = \ test/core/bad_ssl/bad_ssl_test.c \ @@ -11363,6 +11785,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + BAD_SSL_CERT_TEST_SRC = \ test/core/bad_ssl/bad_ssl_test.c \ @@ -11395,6 +11819,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_CENSUS_TEST_SRC = \ test/core/end2end/fixtures/h2_census.c \ @@ -11427,6 +11853,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_COMPRESS_TEST_SRC = \ test/core/end2end/fixtures/h2_compress.c \ @@ -11459,6 +11887,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FAKESEC_TEST_SRC = \ test/core/end2end/fixtures/h2_fakesec.c \ @@ -11491,6 +11921,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FD_TEST_SRC = \ test/core/end2end/fixtures/h2_fd.c \ @@ -11523,6 +11955,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FULL_TEST_SRC = \ test/core/end2end/fixtures/h2_full.c \ @@ -11555,6 +11989,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FULL+PIPE_TEST_SRC = \ test/core/end2end/fixtures/h2_full+pipe.c \ @@ -11587,6 +12023,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FULL+TRACE_TEST_SRC = \ test/core/end2end/fixtures/h2_full+trace.c \ @@ -11619,6 +12057,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_LOADREPORTING_TEST_SRC = \ test/core/end2end/fixtures/h2_loadreporting.c \ @@ -11651,6 +12091,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_OAUTH2_TEST_SRC = \ test/core/end2end/fixtures/h2_oauth2.c \ @@ -11683,6 +12125,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_PROXY_TEST_SRC = \ test/core/end2end/fixtures/h2_proxy.c \ @@ -11715,6 +12159,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SOCKPAIR_TEST_SRC = \ test/core/end2end/fixtures/h2_sockpair.c \ @@ -11747,6 +12193,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SOCKPAIR+TRACE_TEST_SRC = \ test/core/end2end/fixtures/h2_sockpair+trace.c \ @@ -11779,6 +12227,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SOCKPAIR_1BYTE_TEST_SRC = \ test/core/end2end/fixtures/h2_sockpair_1byte.c \ @@ -11811,6 +12261,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SSL_TEST_SRC = \ test/core/end2end/fixtures/h2_ssl.c \ @@ -11843,6 +12295,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SSL_CERT_TEST_SRC = \ test/core/end2end/fixtures/h2_ssl_cert.c \ @@ -11875,6 +12329,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SSL_PROXY_TEST_SRC = \ test/core/end2end/fixtures/h2_ssl_proxy.c \ @@ -11907,6 +12363,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_UDS_TEST_SRC = \ test/core/end2end/fixtures/h2_uds.c \ @@ -11939,6 +12397,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + H2_CENSUS_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_census.c \ @@ -11959,6 +12419,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_CENSUS_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_COMPRESS_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_compress.c \ @@ -11979,6 +12441,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_COMPRESS_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FD_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_fd.c \ @@ -11999,6 +12463,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_FD_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FULL_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_full.c \ @@ -12019,6 +12485,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_FULL_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FULL+PIPE_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_full+pipe.c \ @@ -12039,6 +12507,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_FULL+PIPE_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_FULL+TRACE_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_full+trace.c \ @@ -12059,6 +12529,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_FULL+TRACE_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_LOADREPORTING_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_loadreporting.c \ @@ -12079,6 +12551,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_LOADREPORTING_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_PROXY_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_proxy.c \ @@ -12099,6 +12573,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_PROXY_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SOCKPAIR_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_sockpair.c \ @@ -12119,6 +12595,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_SOCKPAIR_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SOCKPAIR+TRACE_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_sockpair+trace.c \ @@ -12139,6 +12617,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_SOCKPAIR+TRACE_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_SOCKPAIR_1BYTE_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_sockpair_1byte.c \ @@ -12159,6 +12639,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_SOCKPAIR_1BYTE_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + H2_UDS_NOSEC_TEST_SRC = \ test/core/end2end/fixtures/h2_uds.c \ @@ -12179,6 +12661,8 @@ ifneq ($(NO_DEPS),true) -include $(H2_UDS_NOSEC_TEST_OBJS:.o=.dep) endif +# Force compilation of proto files before building code that could potentially depend on them + API_FUZZER_ONE_ENTRY_SRC = \ test/core/end2end/fuzzers/api_fuzzer.c \ @@ -12214,6 +12698,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + CLIENT_FUZZER_ONE_ENTRY_SRC = \ test/core/end2end/fuzzers/client_fuzzer.c \ @@ -12249,6 +12735,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_SRC = \ test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ @@ -12284,6 +12772,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTP_REQUEST_FUZZER_TEST_ONE_ENTRY_SRC = \ test/core/http/request_fuzzer.c \ @@ -12319,6 +12809,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + HTTP_RESPONSE_FUZZER_TEST_ONE_ENTRY_SRC = \ test/core/http/response_fuzzer.c \ @@ -12354,6 +12846,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + JSON_FUZZER_TEST_ONE_ENTRY_SRC = \ test/core/json/fuzzer.c \ @@ -12389,6 +12883,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + NANOPB_FUZZER_RESPONSE_TEST_ONE_ENTRY_SRC = \ test/core/nanopb/fuzzer_response.c \ @@ -12424,6 +12920,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + NANOPB_FUZZER_SERVERLIST_TEST_ONE_ENTRY_SRC = \ test/core/nanopb/fuzzer_serverlist.c \ @@ -12459,6 +12957,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + SERVER_FUZZER_ONE_ENTRY_SRC = \ test/core/end2end/fuzzers/server_fuzzer.c \ @@ -12494,6 +12994,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + URI_FUZZER_TEST_ONE_ENTRY_SRC = \ test/core/client_config/uri_fuzzer_test.c \ @@ -12529,6 +13031,8 @@ ifneq ($(NO_DEPS),true) endif endif +# Force compilation of proto files before building code that could potentially depend on them + diff --git a/build.yaml b/build.yaml index 74812ad6b4e00..6e3bc18426148 100644 --- a/build.yaml +++ b/build.yaml @@ -2740,9 +2740,6 @@ targets: - grpc - gpr - name: grpc_c_end2end_test - comments: - - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C server - - '#2': We're using the library grpc_c_end2end_client_lib to process nanopb and interface with generated code gtest: true build: test language: c++ @@ -2757,9 +2754,12 @@ targets: - grpc - gpr_test_util - gpr -- name: grpc_c_generic_end2end_test comments: - - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C server + - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C + server + - '#2': We're using the library grpc_c_end2end_client_lib to process nanopb and + interface with generated code +- name: grpc_c_generic_end2end_test gtest: true build: test language: c++ @@ -2773,6 +2773,9 @@ targets: - grpc - gpr_test_util - gpr + comments: + - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C + server - name: grpc_c_plugin build: protoc language: c++ From 55357db270354fe1fcc8d460a7df052e0c958d95 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 14:52:28 -0700 Subject: [PATCH 113/202] use full paths for includes --- src/c/alloc.c | 2 +- src/c/bidi_streaming_blocking_call.c | 4 ++-- src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.c | 4 ++-- src/c/call_ops.h | 4 ++-- src/c/channel.c | 2 +- src/c/client_context.c | 6 +++--- src/c/client_context.h | 6 +++--- src/c/client_streaming_blocking_call.c | 8 ++++---- src/c/client_streaming_blocking_call.h | 2 +- src/c/completion_queue.c | 4 ++-- src/c/id_serialization.c | 2 +- src/c/id_serialization.h | 2 +- src/c/init_shutdown.c | 2 +- src/c/message.c | 2 +- src/c/pb_compat.c | 2 +- src/c/server_streaming_blocking_call.c | 8 ++++---- src/c/server_streaming_blocking_call.h | 2 +- src/c/unary_async_call.c | 6 +++--- src/c/unary_async_call.h | 2 +- src/c/unary_blocking_call.c | 10 +++++----- 21 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/c/alloc.c b/src/c/alloc.c index 616d8294466c9..f63115b28b257 100644 --- a/src/c/alloc.c +++ b/src/c/alloc.c @@ -31,7 +31,7 @@ * */ -#include "alloc.h" +#include "src/c/alloc.h" #include void *grpc_memdup(const void *dst, size_t size) { diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index ccf34f6024084..8b16301ae0aa3 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -36,8 +36,8 @@ #include #include "bidi_streaming_blocking_call.h" #include -#include "alloc.h" -#include "tag.h" +#include "src/c/alloc.h" +#include "src/c/tag.h" #include "completion_queue.h" GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index 4e064abce0426..22bfdcfaaf82a 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -35,7 +35,7 @@ #ifndef GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H #define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H -#include "call_ops.h" +#include "src/c/call_ops.h" #include typedef struct grpc_client_reader_writer { diff --git a/src/c/call_ops.c b/src/c/call_ops.c index d5afb0fee836c..968f9ddcf60df 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -31,8 +31,8 @@ * */ #include -#include "call_ops.h" -#include "tag.h" +#include "src/c/call_ops.h" +#include "src/c/tag.h" #include #include diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 351365af79131..6e1db6f915e9c 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -36,8 +36,8 @@ #define GRPC_C_CALL_OPS_H #include -#include "message.h" -#include "client_context.h" +#include "src/c/message.h" +#include "src/c/client_context.h" #include #include diff --git a/src/c/channel.c b/src/c/channel.c index 5b4598b647111..7c226813806b0 100644 --- a/src/c/channel.c +++ b/src/c/channel.c @@ -33,7 +33,7 @@ #include #include -#include "init_shutdown.h" +#include "src/c/init_shutdown.h" #include GRPC_channel *GRPC_channel_create(const char * const target) { diff --git a/src/c/client_context.c b/src/c/client_context.c index 3c4c6ab34fe3d..2a9427c783446 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -34,9 +34,9 @@ #include #include #include -#include "client_context.h" -#include "alloc.h" -#include "id_serialization.h" +#include "src/c/client_context.h" +#include "src/c/alloc.h" +#include "src/c/id_serialization.h" grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { grpc_client_context *context = GRPC_ALLOC_STRUCT( diff --git a/src/c/client_context.h b/src/c/client_context.h index 08be913e5294e..408d3d7152c94 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -39,9 +39,9 @@ #include #include #include -#include "status.h" -#include "message.h" -#include "call_ops.h" +#include "src/c/status.h" +#include "src/c/message.h" +#include "src/c/call_ops.h" #include typedef struct grpc_call_op_set grpc_call_op_set; diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 03f0ce2e00688..b8536339cc296 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -34,10 +34,10 @@ #include #include -#include "client_streaming_blocking_call.h" -#include "tag.h" -#include "completion_queue.h" -#include "alloc.h" +#include "src/c/client_streaming_blocking_call.h" +#include "src/c/tag.h" +#include "src/c/completion_queue.h" +#include "src/c/alloc.h" grpc_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index d10cba79abc9e..936c2e2f1438b 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -36,7 +36,7 @@ #define TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H #include -#include "call_ops.h" +#include "src/c/call_ops.h" typedef struct grpc_client_writer { grpc_call_op_set finish_ops; diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 5dcd04b88a8ec..9301a5d9eab82 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -38,8 +38,8 @@ #include #include #include -#include "completion_queue.h" -#include "call_ops.h" +#include "src/c/completion_queue.h" +#include "src/c/call_ops.h" GRPC_completion_queue *GRPC_completion_queue_create() { return grpc_completion_queue_create(NULL); diff --git a/src/c/id_serialization.c b/src/c/id_serialization.c index 85848f69b7501..dd0ba3006f486 100644 --- a/src/c/id_serialization.c +++ b/src/c/id_serialization.c @@ -33,7 +33,7 @@ #include #include -#include "id_serialization.h" +#include "src/c/id_serialization.h" /** * Serialization interface that does not transform data. Base implementation of GRPC_serialization_impl. diff --git a/src/c/id_serialization.h b/src/c/id_serialization.h index c1cd0188fe76c..750c0d8598beb 100644 --- a/src/c/id_serialization.h +++ b/src/c/id_serialization.h @@ -36,7 +36,7 @@ #define TEST_GRPC_C_MOCK_SERIALIZATION_H #include -#include "message.h" +#include "src/c/message.h" /* Serialization functions that doesn't do anything except duplicating the buffer */ diff --git a/src/c/init_shutdown.c b/src/c/init_shutdown.c index 897e612bfcd65..c7823b85f9ea2 100644 --- a/src/c/init_shutdown.c +++ b/src/c/init_shutdown.c @@ -31,7 +31,7 @@ * */ -#include "init_shutdown.h" +#include "src/c/init_shutdown.h" #include #include #include diff --git a/src/c/message.c b/src/c/message.c index c5c11fce0ef19..6af0766b743f6 100644 --- a/src/c/message.c +++ b/src/c/message.c @@ -32,7 +32,7 @@ */ -#include "message.h" +#include "src/c/message.h" #include void GRPC_message_destroy(grpc_message *message) { diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index 19ef75e2822a9..2986a660f17d3 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -36,7 +36,7 @@ #include #include #include -#include "alloc.h" +#include "src/c/alloc.h" /** * This file implements a Nanopb stream used to collect deserialized data from Nanopb. diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 40c1cc31b3a60..9e8a3efd9aa5a 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -35,11 +35,11 @@ #include #include #include -#include "server_streaming_blocking_call.h" +#include "src/c/server_streaming_blocking_call.h" #include -#include "alloc.h" -#include "completion_queue.h" -#include "tag.h" +#include "src/c/alloc.h" +#include "src/c/completion_queue.h" +#include "src/c/tag.h" GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index ebc15c970434a..485d41c2ffaca 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -35,7 +35,7 @@ #ifndef GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H #define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H -#include "call_ops.h" +#include "src/c/call_ops.h" #include typedef struct grpc_client_reader { diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 953e074d48751..c747b8b94e99d 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -34,10 +34,10 @@ #include #include -#include "unary_async_call.h" -#include "alloc.h" +#include "src/c/unary_async_call.h" +#include "src/c/alloc.h" #include -#include "tag.h" +#include "src/c/tag.h" static void free_reader_and_call(void *arg) { GRPC_client_async_response_reader *reader = arg; diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index 598abc526be62..e064736d53bab 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -35,7 +35,7 @@ #ifndef TEST_GRPC_C_CLIENT_ASYNC_READER_H #define TEST_GRPC_C_CLIENT_ASYNC_READER_H -#include "call_ops.h" +#include "src/c/call_ops.h" typedef struct grpc_client_async_response_reader { grpc_call_op_set init_buf; diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index f808e9f3a79cf..d466a62fe9502 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -31,12 +31,12 @@ * */ -#include "unary_blocking_call.h" +#include "src/c/unary_blocking_call.h" #include -#include "client_context.h" -#include "call_ops.h" -#include "tag.h" -#include "completion_queue.h" +#include "src/c/client_context.h" +#include "src/c/call_ops.h" +#include "src/c/tag.h" +#include "src/c/completion_queue.h" #include #include From 18824ee0bb71d0b3d4d928e0687b93a82a7c7b07 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 15:09:19 -0700 Subject: [PATCH 114/202] remove useless files --- src/c/bidi_streaming_blocking_call.c | 11 ++++--- src/c/call_ops.c | 3 +- src/c/client_context.h | 2 +- src/c/client_streaming_blocking_call.c | 7 ++--- src/c/server_streaming_blocking_call.c | 7 ++--- src/c/status.h | 41 -------------------------- src/c/tag.h | 40 ------------------------- src/c/unary_async_call.c | 1 - src/c/unary_blocking_call.c | 5 ++-- 9 files changed, 15 insertions(+), 102 deletions(-) delete mode 100644 src/c/status.h delete mode 100644 src/c/tag.h diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 8b16301ae0aa3..e1bd39b817a90 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -37,7 +37,6 @@ #include "bidi_streaming_blocking_call.h" #include #include "src/c/alloc.h" -#include "src/c/tag.h" #include "completion_queue.h" GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, @@ -69,7 +68,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method r }); grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); - bool ok = GRPC_completion_queue_pluck_internal(cq, TAG(&set)); + bool ok = GRPC_completion_queue_pluck_internal(cq, &set); if (!ok) { GRPC_client_reader_writer_terminate(reader_writer); return NULL; @@ -102,7 +101,7 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, } grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {0}, response); - bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(pSet)); + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, pSet); reader_writer->context->status.ok &= ok; return ok && pSet->message_received; } @@ -117,7 +116,7 @@ bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer }; grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, request, NULL); - bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); reader_writer->context->status.ok &= ok; return ok; } @@ -132,7 +131,7 @@ bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_ }; grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); - bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, (&set)); reader_writer->context->status.ok &= ok; return ok; } @@ -146,7 +145,7 @@ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reade .user_tag = &set }; grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); - bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, TAG(&set)); + bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); GRPC_completion_queue_shutdown(reader_writer->cq); GRPC_completion_queue_shutdown_wait(reader_writer->cq); GRPC_completion_queue_destroy(reader_writer->cq); diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 968f9ddcf60df..2ba3a50ff87ae 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -32,7 +32,6 @@ */ #include #include "src/c/call_ops.h" -#include "src/c/tag.h" #include #include @@ -207,5 +206,5 @@ void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_c size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; grpc_fill_op_from_call_set(set, &context->rpc_method, context, request, response, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, TAG(set), NULL)); + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); } diff --git a/src/c/client_context.h b/src/c/client_context.h index 408d3d7152c94..96979decf05da 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -36,10 +36,10 @@ #define TEST_GRPC_C_CLIENT_CONTEXT_H #include +#include #include #include #include -#include "src/c/status.h" #include "src/c/message.h" #include "src/c/call_ops.h" #include diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index b8536339cc296..771df5b5235e8 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -35,7 +35,6 @@ #include #include #include "src/c/client_streaming_blocking_call.h" -#include "src/c/tag.h" #include "src/c/completion_queue.h" #include "src/c/alloc.h" @@ -81,7 +80,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_me writer->finish_ops.user_tag = &writer->finish_ops; grpc_start_batch_from_op_set(writer->call, &set, writer->context, (GRPC_message) {0}, NULL); - GRPC_completion_queue_pluck_internal(cq, TAG(&set)); + GRPC_completion_queue_pluck_internal(cq, &set); return writer; } @@ -95,12 +94,12 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC }; grpc_start_batch_from_op_set(writer->call, &set, writer->context, request, NULL); - return GRPC_completion_queue_pluck_internal(writer->cq, TAG(&set)); + return GRPC_completion_queue_pluck_internal(writer->cq, &set); } GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {0}, writer->response); - GRPC_completion_queue_pluck_internal(writer->cq, TAG(&writer->finish_ops)); + GRPC_completion_queue_pluck_internal(writer->cq, &writer->finish_ops); GRPC_completion_queue_shutdown(writer->cq); GRPC_completion_queue_shutdown_wait(writer->cq); GRPC_completion_queue_destroy(writer->cq); diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 9e8a3efd9aa5a..2b58eefb83e57 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -39,7 +39,6 @@ #include #include "src/c/alloc.h" #include "src/c/completion_queue.h" -#include "src/c/tag.h" GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, @@ -73,7 +72,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_me }); grpc_start_batch_from_op_set(reader->call, &set, reader->context, request, NULL); - GRPC_completion_queue_pluck_internal(cq, TAG(&set)); + GRPC_completion_queue_pluck_internal(cq, &set); return reader; } @@ -101,7 +100,7 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *respo } grpc_start_batch_from_op_set(reader->call, pSet, reader->context, (GRPC_message) {0}, response); - return GRPC_completion_queue_pluck_internal(reader->cq, TAG(pSet)) && pSet->message_received; + return GRPC_completion_queue_pluck_internal(reader->cq, pSet) && pSet->message_received; } GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { @@ -113,7 +112,7 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { .user_tag = &set }; grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {0}, NULL); - GRPC_completion_queue_pluck_internal(reader->cq, TAG(&set)); + GRPC_completion_queue_pluck_internal(reader->cq, &set); GRPC_completion_queue_shutdown(reader->cq); GRPC_completion_queue_shutdown_wait(reader->cq); GRPC_completion_queue_destroy(reader->cq); diff --git a/src/c/status.h b/src/c/status.h deleted file mode 100644 index 27c7143a806a3..0000000000000 --- a/src/c/status.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - - -#ifndef GRPC_C_STATUS_H -#define GRPC_C_STATUS_H - -#include -#include - -#endif // GRPC_C_STATUS_H diff --git a/src/c/tag.h b/src/c/tag.h deleted file mode 100644 index 8f2b8c6c568e1..0000000000000 --- a/src/c/tag.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - - -#ifndef GRPC_C_TAG_H -#define GRPC_C_TAG_H - -#define TAG(x) ((void *)x) - -#endif // GRPC_C_TAG_H diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index c747b8b94e99d..f4f2b7439ff17 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -37,7 +37,6 @@ #include "src/c/unary_async_call.h" #include "src/c/alloc.h" #include -#include "src/c/tag.h" static void free_reader_and_call(void *arg) { GRPC_client_async_response_reader *reader = arg; diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index d466a62fe9502..d5197300102ee 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -35,7 +35,6 @@ #include #include "src/c/client_context.h" #include "src/c/call_ops.h" -#include "src/c/tag.h" #include "src/c/completion_queue.h" #include #include @@ -64,7 +63,7 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, grpc_op_recv_status }, .context = context, - .user_tag = TAG(&set) + .user_tag = &set }; grpc_start_batch_from_op_set(call, &set, context, message, response); @@ -73,7 +72,7 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, bool ok; GRPC_completion_queue_operation_status status = GRPC_completion_queue_next_deadline(cq, context->deadline, &tag, &ok); GPR_ASSERT(status == GRPC_COMPLETION_QUEUE_GOT_EVENT); - if (tag == TAG(&set)) { + if (tag == &set) { context->status.ok &= ok; break; } From 167ff7fec2854e8e5068fdc436cc312fa0e23178 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 15:24:26 -0700 Subject: [PATCH 115/202] Remove duplicate status code header --- build.yaml | 1 - include/grpc_c/grpc_c.h | 3 +- include/grpc_c/status.h | 4 +- include/grpc_c/status_code.h | 160 ----------------------------------- src/compiler/c_generator.cc | 3 - 5 files changed, 5 insertions(+), 166 deletions(-) delete mode 100644 include/grpc_c/status_code.h diff --git a/build.yaml b/build.yaml index 6e3bc18426148..d08c1a6406207 100644 --- a/build.yaml +++ b/build.yaml @@ -843,7 +843,6 @@ libs: - include/grpc_c/serialization.h - include/grpc_c/server_streaming_blocking_call.h - include/grpc_c/status.h - - include/grpc_c/status_code.h - include/grpc_c/unary_async_call.h - include/grpc_c/unary_blocking_call.h headers: diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 37fac0c7a879b..8ef68b8104728 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -38,7 +38,8 @@ #include typedef struct grpc_channel GRPC_channel; -typedef struct grpc_status GRPC_status; +/* The GRPC_status type is exposed to the end user */ +typedef struct GRPC_status GRPC_status; typedef struct grpc_client_context GRPC_client_context; typedef struct grpc_completion_queue GRPC_completion_queue; diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index 7b1836f75edff..33bc5fa1c71c2 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -35,7 +35,9 @@ #ifndef GRPC_C_STATUS_PUBLIC_H #define GRPC_C_STATUS_PUBLIC_H -typedef struct grpc_status { +#include + +typedef struct GRPC_status { /** * Indicator of success for the entire RPC operation, including network, * serialization, etc. diff --git a/include/grpc_c/status_code.h b/include/grpc_c/status_code.h deleted file mode 100644 index 7c0c219482950..0000000000000 --- a/include/grpc_c/status_code.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * - * Copyright 2015, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - - -#ifndef GRPC_C_STATUS_CODE_PUBLIC_H -#define GRPC_C_STATUS_CODE_PUBLIC_H - -#ifndef GRPC_IMPL_CODEGEN_STATUS_H - -typedef enum { - /* Not an error; returned on success */ - GRPC_STATUS_OK = 0, - - /* The operation was cancelled (typically by the caller). */ - GRPC_STATUS_CANCELLED = 1, - - /* Unknown error. An example of where this error may be returned is - if a Status value received from another address space belongs to - an error-space that is not known in this address space. Also - errors raised by APIs that do not return enough error information - may be converted to this error. */ - GRPC_STATUS_UNKNOWN = 2, - - /* Client specified an invalid argument. Note that this differs - from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments - that are problematic regardless of the state of the system - (e.g., a malformed file name). */ - GRPC_STATUS_INVALID_ARGUMENT = 3, - - /* Deadline expired before operation could complete. For operations - that change the state of the system, this error may be returned - even if the operation has completed successfully. For example, a - successful response from a server could have been delayed long - enough for the deadline to expire. */ - GRPC_STATUS_DEADLINE_EXCEEDED = 4, - - /* Some requested entity (e.g., file or directory) was not found. */ - GRPC_STATUS_NOT_FOUND = 5, - - /* Some entity that we attempted to create (e.g., file or directory) - already exists. */ - GRPC_STATUS_ALREADY_EXISTS = 6, - - /* The caller does not have permission to execute the specified - operation. PERMISSION_DENIED must not be used for rejections - caused by exhausting some resource (use RESOURCE_EXHAUSTED - instead for those errors). PERMISSION_DENIED must not be - used if the caller can not be identified (use UNAUTHENTICATED - instead for those errors). */ - GRPC_STATUS_PERMISSION_DENIED = 7, - - /* The request does not have valid authentication credentials for the - operation. */ - GRPC_STATUS_UNAUTHENTICATED = 16, - - /* Some resource has been exhausted, perhaps a per-user quota, or - perhaps the entire file system is out of space. */ - GRPC_STATUS_RESOURCE_EXHAUSTED = 8, - - /* Operation was rejected because the system is not in a state - required for the operation's execution. For example, directory - to be deleted may be non-empty, an rmdir operation is applied to - a non-directory, etc. - - A litmus test that may help a service implementor in deciding - between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE: - (a) Use UNAVAILABLE if the client can retry just the failing call. - (b) Use ABORTED if the client should retry at a higher-level - (e.g., restarting a read-modify-write sequence). - (c) Use FAILED_PRECONDITION if the client should not retry until - the system state has been explicitly fixed. E.g., if an "rmdir" - fails because the directory is non-empty, FAILED_PRECONDITION - should be returned since the client should not retry unless - they have first fixed up the directory by deleting files from it. - (d) Use FAILED_PRECONDITION if the client performs conditional - REST Get/Update/Delete on a resource and the resource on the - server does not match the condition. E.g., conflicting - read-modify-write on the same resource. */ - GRPC_STATUS_FAILED_PRECONDITION = 9, - - /* The operation was aborted, typically due to a concurrency issue - like sequencer check failures, transaction aborts, etc. - - See litmus test above for deciding between FAILED_PRECONDITION, - ABORTED, and UNAVAILABLE. */ - GRPC_STATUS_ABORTED = 10, - - /* Operation was attempted past the valid range. E.g., seeking or - reading past end of file. - - Unlike INVALID_ARGUMENT, this error indicates a problem that may - be fixed if the system state changes. For example, a 32-bit file - system will generate INVALID_ARGUMENT if asked to read at an - offset that is not in the range [0,2^32-1], but it will generate - OUT_OF_RANGE if asked to read from an offset past the current - file size. - - There is a fair bit of overlap between FAILED_PRECONDITION and - OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific - error) when it applies so that callers who are iterating through - a space can easily look for an OUT_OF_RANGE error to detect when - they are done. */ - GRPC_STATUS_OUT_OF_RANGE = 11, - - /* Operation is not implemented or not supported/enabled in this service. */ - GRPC_STATUS_UNIMPLEMENTED = 12, - - /* Internal errors. Means some invariants expected by underlying - system has been broken. If you see one of these errors, - something is very broken. */ - GRPC_STATUS_INTERNAL = 13, - - /* The service is currently unavailable. This is a most likely a - transient condition and may be corrected by retrying with - a backoff. - - See litmus test above for deciding between FAILED_PRECONDITION, - ABORTED, and UNAVAILABLE. */ - GRPC_STATUS_UNAVAILABLE = 14, - - /* Unrecoverable data loss or corruption. */ - GRPC_STATUS_DATA_LOSS = 15, - - /* Force users to include a default branch: */ - GRPC_STATUS__DO_NOT_USE = -1 -} grpc_status_code; - -#endif /* #ifdef GRPC_IMPL_CODEGEN_STATUS_H */ - -#endif /* GRPC_C_STATUS_CODE_PUBLIC_H */ diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 0a76dd2a68e24..fe81187731b0e 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -36,7 +36,6 @@ #include "src/compiler/c_generator.h" #include "src/compiler/c_generator_helpers.h" -#include "src/compiler/cpp_generator.h" #include "src/compiler/cpp_generator_helpers.h" /* @@ -628,7 +627,6 @@ grpc::string GetSourceIncludes(File *file, grpc::string nano_decode = params.nanopb_headers_prefix + "pb_decode.h"; static const char *headers_strs[] = { - "grpc_c/status_code.h", "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/channel.h", @@ -708,7 +706,6 @@ grpc::string GetHeaderIncludes(File *file, std::map vars; static const char *headers_strs[] = { - "grpc_c/status_code.h", "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/client_context.h", From 80e77514fe535bfb2b96bebbf43bd673777db7de Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 15:24:44 -0700 Subject: [PATCH 116/202] Regenerate project --- BUILD | 1 - Makefile | 1 - test/core/surface/public_headers_must_be_c89.c | 1 - tools/run_tests/sources_and_headers.json | 2 -- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 1 - vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 3 --- 6 files changed, 9 deletions(-) diff --git a/BUILD b/BUILD index 1e87cb6f2db17..24592de2cdff0 100644 --- a/BUILD +++ b/BUILD @@ -590,7 +590,6 @@ cc_library( "include/grpc_c/serialization.h", "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", - "include/grpc_c/status_code.h", "include/grpc_c/unary_async_call.h", "include/grpc_c/unary_blocking_call.h", ], diff --git a/Makefile b/Makefile index 48e1a333762f6..6fe3790367977 100644 --- a/Makefile +++ b/Makefile @@ -2922,7 +2922,6 @@ PUBLIC_HEADERS_C += \ include/grpc_c/serialization.h \ include/grpc_c/server_streaming_blocking_call.h \ include/grpc_c/status.h \ - include/grpc_c/status_code.h \ include/grpc_c/unary_async_call.h \ include/grpc_c/unary_blocking_call.h \ diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c index d0cca3111622b..e15c845f64155 100644 --- a/test/core/surface/public_headers_must_be_c89.c +++ b/test/core/surface/public_headers_must_be_c89.c @@ -86,7 +86,6 @@ #include #include #include -#include #include #include diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index aecd07d492e08..8cf16d8b8d148 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4267,7 +4267,6 @@ "include/grpc_c/serialization.h", "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", - "include/grpc_c/status_code.h", "include/grpc_c/unary_async_call.h", "include/grpc_c/unary_blocking_call.h", "src/c/alloc.h", @@ -4300,7 +4299,6 @@ "include/grpc_c/serialization.h", "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", - "include/grpc_c/status_code.h", "include/grpc_c/unary_async_call.h", "include/grpc_c/unary_blocking_call.h", "src/c/alloc.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index 9116800e4b816..02214fc4b2310 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -270,7 +270,6 @@ - diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index cda8b3d557fca..1d4fc19113400 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -81,9 +81,6 @@ include\grpc_c - - include\grpc_c - include\grpc_c From eb8219d4a096130e741d27143e3f7c33f4e74ce4 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 15:53:07 -0700 Subject: [PATCH 117/202] various fixes --- src/c/alloc.c | 5 +++-- src/c/alloc.h | 10 +++++----- src/c/bidi_streaming_blocking_call.c | 3 ++- src/c/client_context.c | 20 ++++++++++---------- src/c/client_context.h | 6 +++--- src/c/client_streaming_blocking_call.c | 3 ++- src/c/client_streaming_blocking_call.h | 6 +++--- src/c/completion_queue.h | 6 +++--- src/c/id_serialization.h | 6 +++--- src/c/init_shutdown.h | 6 +++--- src/c/message.h | 6 +++--- src/c/pb_compat.c | 5 +++-- src/c/server_streaming_blocking_call.c | 3 ++- src/c/server_streaming_blocking_call.h | 2 +- src/c/unary_async_call.c | 3 ++- src/c/unary_async_call.h | 6 +++--- src/c/unary_blocking_call.h | 6 +++--- 17 files changed, 54 insertions(+), 48 deletions(-) diff --git a/src/c/alloc.c b/src/c/alloc.c index f63115b28b257..00db8bfee5fe2 100644 --- a/src/c/alloc.c +++ b/src/c/alloc.c @@ -32,9 +32,10 @@ */ #include "src/c/alloc.h" +#include #include -void *grpc_memdup(const void *dst, size_t size) { - void *p = malloc(size); +void *GRPC_memdup(const void *dst, size_t size) { + void *p = gpr_malloc(size); return p ? memcpy(p, dst, size) : NULL; } diff --git a/src/c/alloc.h b/src/c/alloc.h index 30b307d349330..bde3d1f1bac34 100644 --- a/src/c/alloc.h +++ b/src/c/alloc.h @@ -32,13 +32,13 @@ */ -#ifndef TEST_GRPC_C_ALLOC_H -#define TEST_GRPC_C_ALLOC_H +#ifndef GRPC_C_ALLOC_H +#define GRPC_C_ALLOC_H #include -void* grpc_memdup(const void*, size_t); +void* GRPC_memdup(const void *, size_t); -#define GRPC_ALLOC_STRUCT(type, ...) (type *) grpc_memdup(&(type)__VA_ARGS__, sizeof(type)) +#define GRPC_ALLOC_STRUCT(type, ...) (type *) GRPC_memdup(&(type)__VA_ARGS__, sizeof(type)) -#endif //TEST_GRPC_C_ALLOC_H +#endif // GRPC_C_ALLOC_H diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index e1bd39b817a90..cdb5e5103a1a1 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -36,6 +36,7 @@ #include #include "bidi_streaming_blocking_call.h" #include +#include #include "src/c/alloc.h" #include "completion_queue.h" @@ -152,7 +153,7 @@ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reade grpc_call_destroy(reader_writer->call); reader_writer->context->call = NULL; grpc_client_context *context = reader_writer->context; - free(reader_writer); + gpr_free(reader_writer); context->status.ok &= ok; return context->status; } diff --git a/src/c/client_context.c b/src/c/client_context.c index 2a9427c783446..f168eaea43444 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -41,16 +41,16 @@ grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { grpc_client_context *context = GRPC_ALLOC_STRUCT( grpc_client_context, { - .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), - .channel = chan, - .serialization_impl = { - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize - }, - .status = { - .ok = true - } + .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), + .channel = chan, + .serialization_impl = { + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize + }, + .status = { + .ok = true } + } ); return context; } @@ -63,7 +63,7 @@ void GRPC_client_context_destroy(GRPC_client_context **context) { grpc_call_destroy((*context)->call); (*context)->call = NULL; } - free(*context); + gpr_free(*context); *context = NULL; } diff --git a/src/c/client_context.h b/src/c/client_context.h index 96979decf05da..969a05f5efdf5 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_CLIENT_CONTEXT_H -#define TEST_GRPC_C_CLIENT_CONTEXT_H +#ifndef GRPC_C_CLIENT_CONTEXT_H +#define GRPC_C_CLIENT_CONTEXT_H #include #include @@ -68,4 +68,4 @@ typedef struct grpc_client_context { typedef grpc_client_context GRPC_client_context; -#endif //TEST_GRPC_C_CLIENT_CONTEXT_H +#endif // GRPC_C_CLIENT_CONTEXT_H diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 771df5b5235e8..2523b1a54bdef 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -34,6 +34,7 @@ #include #include +#include #include "src/c/client_streaming_blocking_call.h" #include "src/c/completion_queue.h" #include "src/c/alloc.h" @@ -106,6 +107,6 @@ GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { grpc_call_destroy(writer->call); writer->context->call = NULL; grpc_client_context *context = writer->context; - free(writer); + gpr_free(writer); return context->status; } diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 936c2e2f1438b..c34057b5a5bb1 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H -#define TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H +#ifndef GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H +#define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H #include #include "src/c/call_ops.h" @@ -47,4 +47,4 @@ typedef struct grpc_client_writer { grpc_message *response; } grpc_client_writer; -#endif //TEST_GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H +#endif // GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H diff --git a/src/c/completion_queue.h b/src/c/completion_queue.h index 699083fc57451..eee05c5d4ca3c 100644 --- a/src/c/completion_queue.h +++ b/src/c/completion_queue.h @@ -32,11 +32,11 @@ */ -#ifndef TEST_GRPC_C_COMPLETION_QUEUE_H -#define TEST_GRPC_C_COMPLETION_QUEUE_H +#ifndef GRPC_C_COMPLETION_QUEUE_H +#define GRPC_C_COMPLETION_QUEUE_H #include bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag); -#endif //TEST_GRPC_C_COMPLETION_QUEUE_H +#endif // GRPC_C_COMPLETION_QUEUE_H diff --git a/src/c/id_serialization.h b/src/c/id_serialization.h index 750c0d8598beb..3496e15897349 100644 --- a/src/c/id_serialization.h +++ b/src/c/id_serialization.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_MOCK_SERIALIZATION_H -#define TEST_GRPC_C_MOCK_SERIALIZATION_H +#ifndef GRPC_C_MOCK_SERIALIZATION_H +#define GRPC_C_MOCK_SERIALIZATION_H #include #include "src/c/message.h" @@ -43,4 +43,4 @@ grpc_message GRPC_id_serialize(const grpc_message input); void GRPC_id_deserialize(const grpc_message input, void *output); -#endif //TEST_GRPC_C_MOCK_SERIALIZATION_H +#endif // GRPC_C_MOCK_SERIALIZATION_H diff --git a/src/c/init_shutdown.h b/src/c/init_shutdown.h index 61ba4d2b27334..ff4060ce6231b 100644 --- a/src/c/init_shutdown.h +++ b/src/c/init_shutdown.h @@ -31,9 +31,9 @@ * */ -#ifndef TEST_GRPC_C_GRPC_INIT_SHUTDOWN_H -#define TEST_GRPC_C_GRPC_INIT_SHUTDOWN_H +#ifndef GRPC_C_GRPC_INIT_SHUTDOWN_H +#define GRPC_C_GRPC_INIT_SHUTDOWN_H void grpc_ensure_grpc_init(); -#endif //TEST_GRPC_C_GRPC_INIT_SHUTDOWN_H +#endif // GRPC_C_GRPC_INIT_SHUTDOWN_H diff --git a/src/c/message.h b/src/c/message.h index f0f564b82200f..ebe45416a8ca9 100644 --- a/src/c/message.h +++ b/src/c/message.h @@ -32,11 +32,11 @@ */ -#ifndef TEST_GRPC_C_MESSAGE_H -#define TEST_GRPC_C_MESSAGE_H +#ifndef GRPC_C_MESSAGE_H +#define GRPC_C_MESSAGE_H #include typedef GRPC_message grpc_message; -#endif //TEST_GRPC_C_MESSAGE_H +#endif // GRPC_C_MESSAGE_H diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index 2986a660f17d3..7ec1e99dfe5ea 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -36,6 +36,7 @@ #include #include #include +#include #include "src/c/alloc.h" /** @@ -69,14 +70,14 @@ GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc() { } void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state) { - free(state); + gpr_free(state); } bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count) { GRPC_pb_dynamic_array_state *state = stream->state; if (state->size + count > state->capacity) { state->capacity = upper_power_of_two(state->size + count); - state->data = realloc(state->data, state->capacity); + state->data = gpr_realloc(state->data, state->capacity); } if (state->data == NULL) return false; if (buf) memcpy((char *) state->data + state->size, buf, count); diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 2b58eefb83e57..87ce50089a112 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -37,6 +37,7 @@ #include #include "src/c/server_streaming_blocking_call.h" #include +#include #include "src/c/alloc.h" #include "src/c/completion_queue.h" @@ -119,6 +120,6 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { grpc_call_destroy(reader->call); reader->context->call = NULL; grpc_client_context *context = reader->context; - free(reader); + gpr_free(reader); return context->status; } diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 485d41c2ffaca..04b2a038689cc 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -44,4 +44,4 @@ typedef struct grpc_client_reader { grpc_completion_queue *cq; } grpc_client_reader; -#endif /* GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H */ +#endif // GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index f4f2b7439ff17..19a580f6f1a30 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -37,10 +37,11 @@ #include "src/c/unary_async_call.h" #include "src/c/alloc.h" #include +#include static void free_reader_and_call(void *arg) { GRPC_client_async_response_reader *reader = arg; - free(reader); + gpr_free(reader); } GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue *cq, diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index e064736d53bab..2b5fdd913397b 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -32,8 +32,8 @@ */ -#ifndef TEST_GRPC_C_CLIENT_ASYNC_READER_H -#define TEST_GRPC_C_CLIENT_ASYNC_READER_H +#ifndef GRPC_C_CLIENT_ASYNC_READER_H +#define GRPC_C_CLIENT_ASYNC_READER_H #include "src/c/call_ops.h" @@ -47,4 +47,4 @@ typedef struct grpc_client_async_response_reader { grpc_call *call; } grpc_client_async_response_reader; -#endif //TEST_GRPC_C_CLIENT_ASYNC_READER_H +#endif // GRPC_C_CLIENT_ASYNC_READER_H diff --git a/src/c/unary_blocking_call.h b/src/c/unary_blocking_call.h index cccb54b1b9d01..a9193c4df7994 100644 --- a/src/c/unary_blocking_call.h +++ b/src/c/unary_blocking_call.h @@ -31,9 +31,9 @@ * */ -#ifndef TEST_GRPC_C_UNARY_BLOCKING_CALL_H -#define TEST_GRPC_C_UNARY_BLOCKING_CALL_H +#ifndef GRPC_C_UNARY_BLOCKING_CALL_H +#define GRPC_C_UNARY_BLOCKING_CALL_H -#endif //TEST_GRPC_C_UNARY_BLOCKING_CALL_H +#endif // GRPC_C_UNARY_BLOCKING_CALL_H From 0c270e01ccb64af8e5001d1ec1fc269954a2f4a6 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 16:25:09 -0700 Subject: [PATCH 118/202] Move id_serialization away --- build.yaml | 3 +-- src/c/client_context.c | 5 ++--- test/c/end2end/generic_end2end_test.cc | 22 +++++++++++++++++++ .../c/end2end/id_serialization.cc | 2 +- {src/c => test/c/end2end}/id_serialization.h | 0 5 files changed, 26 insertions(+), 6 deletions(-) rename src/c/id_serialization.c => test/c/end2end/id_serialization.cc (97%) rename {src/c => test/c/end2end}/id_serialization.h (100%) diff --git a/build.yaml b/build.yaml index d08c1a6406207..9c8c8579c1d67 100644 --- a/build.yaml +++ b/build.yaml @@ -852,7 +852,6 @@ libs: - src/c/client_context.h - src/c/client_streaming_blocking_call.h - src/c/completion_queue.h - - src/c/id_serialization.h - src/c/init_shutdown.h - src/c/message.h - src/c/server_streaming_blocking_call.h @@ -868,7 +867,6 @@ libs: - src/c/client_context.c - src/c/client_streaming_blocking_call.c - src/c/completion_queue.c - - src/c/id_serialization.c - src/c/init_shutdown.c - src/c/message.c - src/c/pb_compat.c @@ -2764,6 +2762,7 @@ targets: language: c++ src: - test/c/end2end/generic_end2end_test.cc + - test/c/end2end/id_serialization.cc deps: - grpc_c - grpc++_test_util diff --git a/src/c/client_context.c b/src/c/client_context.c index f168eaea43444..62467562718fa 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -36,7 +36,6 @@ #include #include "src/c/client_context.h" #include "src/c/alloc.h" -#include "src/c/id_serialization.h" grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { grpc_client_context *context = GRPC_ALLOC_STRUCT( @@ -44,8 +43,8 @@ grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), .channel = chan, .serialization_impl = { - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize + .serialize = NULL, + .deserialize = NULL }, .status = { .ok = true diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index 43796276103a3..1f758497f5b50 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -58,6 +58,7 @@ extern "C" { #include #include #include +#include } #include "src/core/lib/security/credentials/credentials.h" @@ -66,6 +67,7 @@ extern "C" { #include "test/cpp/end2end/test_service_impl.h" #include "test/cpp/util/string_ref_helper.h" #include "test/cpp/util/test_credentials_provider.h" +#include "test/c/end2end/id_serialization.h" /** * End-to-end tests for the gRPC C API. @@ -144,6 +146,10 @@ static void SendUnaryRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize + }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -172,6 +178,10 @@ static void SendClientStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/RequestStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize + }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -206,6 +216,10 @@ static void SendServerStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/ResponseStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize + }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -240,6 +254,10 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/BidiStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize + }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -281,6 +299,10 @@ static void SendAsyncUnaryRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { + .serialize = GRPC_id_serialize, + .deserialize = GRPC_id_deserialize + }); GRPC_completion_queue *cq = GRPC_completion_queue_create(); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; diff --git a/src/c/id_serialization.c b/test/c/end2end/id_serialization.cc similarity index 97% rename from src/c/id_serialization.c rename to test/c/end2end/id_serialization.cc index dd0ba3006f486..30caf2d3e9ce4 100644 --- a/src/c/id_serialization.c +++ b/test/c/end2end/id_serialization.cc @@ -33,7 +33,7 @@ #include #include -#include "src/c/id_serialization.h" +#include "test/c/end2end/id_serialization.h" /** * Serialization interface that does not transform data. Base implementation of GRPC_serialization_impl. diff --git a/src/c/id_serialization.h b/test/c/end2end/id_serialization.h similarity index 100% rename from src/c/id_serialization.h rename to test/c/end2end/id_serialization.h From 2590929c6c11228aa9e82e29a6ae89cb4bfd0dfc Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 16:25:27 -0700 Subject: [PATCH 119/202] Regenerate projects --- BUILD | 2 -- CMakeLists.txt | 1 - Makefile | 5 +++-- tools/run_tests/sources_and_headers.json | 6 ++---- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 3 --- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 6 ------ .../grpc_c_generic_end2end_test.vcxproj | 2 ++ .../grpc_c_generic_end2end_test.vcxproj.filters | 3 +++ 8 files changed, 10 insertions(+), 18 deletions(-) diff --git a/BUILD b/BUILD index 24592de2cdff0..ebf0df8c5674c 100644 --- a/BUILD +++ b/BUILD @@ -554,7 +554,6 @@ cc_library( "src/c/client_context.h", "src/c/client_streaming_blocking_call.h", "src/c/completion_queue.h", - "src/c/id_serialization.h", "src/c/init_shutdown.h", "src/c/message.h", "src/c/server_streaming_blocking_call.h", @@ -569,7 +568,6 @@ cc_library( "src/c/client_context.c", "src/c/client_streaming_blocking_call.c", "src/c/completion_queue.c", - "src/c/id_serialization.c", "src/c/init_shutdown.c", "src/c/message.c", "src/c/pb_compat.c", diff --git a/CMakeLists.txt b/CMakeLists.txt index 9be44815b535e..43ecaa93ec0d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -346,7 +346,6 @@ add_library(grpc_c src/c/client_context.c src/c/client_streaming_blocking_call.c src/c/completion_queue.c - src/c/id_serialization.c src/c/init_shutdown.c src/c/message.c src/c/pb_compat.c diff --git a/Makefile b/Makefile index 6fe3790367977..8ee8db3d7865f 100644 --- a/Makefile +++ b/Makefile @@ -2901,7 +2901,6 @@ LIBGRPC_C_SRC = \ src/c/client_context.c \ src/c/client_streaming_blocking_call.c \ src/c/completion_queue.c \ - src/c/id_serialization.c \ src/c/init_shutdown.c \ src/c/message.c \ src/c/pb_compat.c \ @@ -9951,6 +9950,7 @@ endif GRPC_C_GENERIC_END2END_TEST_SRC = \ test/c/end2end/generic_end2end_test.cc \ + test/c/end2end/id_serialization.cc \ GRPC_C_GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_GENERIC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) @@ -9983,6 +9983,8 @@ endif $(OBJDIR)/$(CONFIG)/test/c/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/c/end2end/id_serialization.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + deps_grpc_c_generic_end2end_test: $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) @@ -13048,7 +13050,6 @@ src/c/channel.c: $(OPENSSL_DEP) src/c/client_context.c: $(OPENSSL_DEP) src/c/client_streaming_blocking_call.c: $(OPENSSL_DEP) src/c/completion_queue.c: $(OPENSSL_DEP) -src/c/id_serialization.c: $(OPENSSL_DEP) src/c/init_shutdown.c: $(OPENSSL_DEP) src/c/message.c: $(OPENSSL_DEP) src/c/pb_compat.c: $(OPENSSL_DEP) diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 8cf16d8b8d148..eeb7de9e86cd0 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2161,7 +2161,8 @@ "language": "c++", "name": "grpc_c_generic_end2end_test", "src": [ - "test/c/end2end/generic_end2end_test.cc" + "test/c/end2end/generic_end2end_test.cc", + "test/c/end2end/id_serialization.cc" ], "third_party": false, "type": "target" @@ -4275,7 +4276,6 @@ "src/c/client_context.h", "src/c/client_streaming_blocking_call.h", "src/c/completion_queue.h", - "src/c/id_serialization.h", "src/c/init_shutdown.h", "src/c/message.h", "src/c/server_streaming_blocking_call.h", @@ -4314,8 +4314,6 @@ "src/c/client_streaming_blocking_call.h", "src/c/completion_queue.c", "src/c/completion_queue.h", - "src/c/id_serialization.c", - "src/c/id_serialization.h", "src/c/init_shutdown.c", "src/c/init_shutdown.h", "src/c/message.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index 02214fc4b2310..bc722eab5ab13 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -280,7 +280,6 @@ - @@ -304,8 +303,6 @@ - - diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index 1d4fc19113400..8d4cb7921a62c 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -22,9 +22,6 @@ src\c - - src\c - src\c @@ -107,9 +104,6 @@ src\c - - src\c - src\c diff --git a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj index 605f3bd553604..9a938d1134438 100644 --- a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj @@ -162,6 +162,8 @@ + + diff --git a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters index f7ca2b4a815a5..243eaad4ebac3 100644 --- a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters +++ b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters @@ -4,6 +4,9 @@ test\c\end2end + + test\c\end2end + From 6cde99e2ebf776f231d81262c2c285484ebe27d6 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 25 Jul 2016 17:46:13 -0700 Subject: [PATCH 120/202] Use C99 for public gRPC-C headers --- build.yaml | 1 + include/grpc_c/bidi_streaming_blocking_call.h | 1 + include/grpc_c/client_streaming_blocking_call.h | 1 + include/grpc_c/completion_queue.h | 1 + include/grpc_c/grpc_c.h | 12 ------------ include/grpc_c/pb_compat.h | 1 + include/grpc_c/server_streaming_blocking_call.h | 1 + include/grpc_c/status.h | 1 + templates/README.md | 3 +++ .../surface/public_headers_must_be_c89.c.template | 9 +++++++++ test/core/surface/public_headers_must_be_c89.c | 14 -------------- 11 files changed, 19 insertions(+), 26 deletions(-) diff --git a/build.yaml b/build.yaml index 9c8c8579c1d67..fb3e542caf5f8 100644 --- a/build.yaml +++ b/build.yaml @@ -878,6 +878,7 @@ libs: - gpr baselib: true dll: true + do_not_enforce_c89_public_headers: true secure: check vs_project_guid: '{8AC0CB05-6E3C-4A40-B45E-FDA77644F432}' - name: grpc_c_end2end_client_lib diff --git a/include/grpc_c/bidi_streaming_blocking_call.h b/include/grpc_c/bidi_streaming_blocking_call.h index 97f62d822da0e..7fdea7933c261 100644 --- a/include/grpc_c/bidi_streaming_blocking_call.h +++ b/include/grpc_c/bidi_streaming_blocking_call.h @@ -36,6 +36,7 @@ #define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H #include +#include GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context); diff --git a/include/grpc_c/client_streaming_blocking_call.h b/include/grpc_c/client_streaming_blocking_call.h index 2e7a23dee7bbc..ba17ef2850a42 100644 --- a/include/grpc_c/client_streaming_blocking_call.h +++ b/include/grpc_c/client_streaming_blocking_call.h @@ -36,6 +36,7 @@ #define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H #include +#include GRPC_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 24c2398f34c12..f8bcb0e2ebc3d 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -36,6 +36,7 @@ #define GRPC_C_COMPLETION_QUEUE_PUBLIC_H #include +#include typedef struct gpr_timespec GRPC_timespec; diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 8ef68b8104728..958f07b881fc3 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -63,18 +63,6 @@ typedef struct grpc_method { typedef struct grpc_method GRPC_method; -/* For C compilers without bool support */ -#ifndef __cplusplus -#if defined(__STDC__) && __STDC_VERSION__ >= 199901L -#include -#else -#ifndef bool -typedef enum _bool { false, true }; -typedef enum _bool bool; -#endif -#endif -#endif - #include #endif /* GRPC_C_PUBLIC_H */ diff --git a/include/grpc_c/pb_compat.h b/include/grpc_c/pb_compat.h index 9b42a8bad3749..d00bbbf054eb9 100644 --- a/include/grpc_c/pb_compat.h +++ b/include/grpc_c/pb_compat.h @@ -36,6 +36,7 @@ #include #include +#include typedef struct GRPC_pb_dynamic_array_state GRPC_pb_dynamic_array_state; typedef struct pb_ostream_s pb_ostream_t; diff --git a/include/grpc_c/server_streaming_blocking_call.h b/include/grpc_c/server_streaming_blocking_call.h index 8527b4d97ac68..dd7b5b21e9106 100644 --- a/include/grpc_c/server_streaming_blocking_call.h +++ b/include/grpc_c/server_streaming_blocking_call.h @@ -36,6 +36,7 @@ #define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H #include +#include GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index 33bc5fa1c71c2..d1ccf9383cf61 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -36,6 +36,7 @@ #define GRPC_C_STATUS_PUBLIC_H #include +#include typedef struct GRPC_status { /** diff --git a/templates/README.md b/templates/README.md index eedc6e9c09fa5..efbc8b0ead519 100644 --- a/templates/README.md +++ b/templates/README.md @@ -73,6 +73,9 @@ build: "build type", # in which situation we want that library to be # built and potentially installed (see below). language: "...", # the language tag; "c" or "c++" public_headers: # list of public headers to install +do_not_enforce_c89_public_headers: boolean # set to true to exempt this library + # from the C89 header requirement. C public headers + # must be C89 compliant by default. headers: # list of headers used by that target src: # list of files to compile secure: boolean, # see below diff --git a/templates/test/core/surface/public_headers_must_be_c89.c.template b/templates/test/core/surface/public_headers_must_be_c89.c.template index d33ffda583ba9..ea67d6c5c8bb5 100644 --- a/templates/test/core/surface/public_headers_must_be_c89.c.template +++ b/templates/test/core/surface/public_headers_must_be_c89.c.template @@ -40,10 +40,19 @@ if platform_identifier in hdr: return True return False + def is_lib_exempted(lib): + try: + if lib.do_not_enforce_c89_public_headers == True: + return True + else: + return False + except AttributeError: + return False hdrs = set() pfx = 'include/' for lib in libs: if lib.language != 'c': continue + if is_lib_exempted(lib): continue for hdr in lib.get('public_headers', []): if is_platform_header(hdr): continue if 'grpc_cronet.h' in hdr: continue diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c index e15c845f64155..3eeb55d033dca 100644 --- a/test/core/surface/public_headers_must_be_c89.c +++ b/test/core/surface/public_headers_must_be_c89.c @@ -74,19 +74,5 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include int main(int argc, char **argv) { return 0; } From e2bc247aed680244bef79d69ebe71d3f0c88fddc Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 26 Jul 2016 11:57:36 -0700 Subject: [PATCH 121/202] Regenerate projects after rebase --- Makefile | 7358 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 5187 insertions(+), 2171 deletions(-) diff --git a/Makefile b/Makefile index 8ee8db3d7865f..de6e1c29be484 100644 --- a/Makefile +++ b/Makefile @@ -1078,6 +1078,44 @@ streaming_throughput_test: $(BINDIR)/$(CONFIG)/streaming_throughput_test stress_test: $(BINDIR)/$(CONFIG)/stress_test thread_stress_test: $(BINDIR)/$(CONFIG)/thread_stress_test public_headers_must_be_c89: $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 +boringssl_aes_test: $(BINDIR)/$(CONFIG)/boringssl_aes_test +boringssl_asn1_test: $(BINDIR)/$(CONFIG)/boringssl_asn1_test +boringssl_base64_test: $(BINDIR)/$(CONFIG)/boringssl_base64_test +boringssl_bio_test: $(BINDIR)/$(CONFIG)/boringssl_bio_test +boringssl_bn_test: $(BINDIR)/$(CONFIG)/boringssl_bn_test +boringssl_bytestring_test: $(BINDIR)/$(CONFIG)/boringssl_bytestring_test +boringssl_aead_test: $(BINDIR)/$(CONFIG)/boringssl_aead_test +boringssl_cipher_test: $(BINDIR)/$(CONFIG)/boringssl_cipher_test +boringssl_cmac_test: $(BINDIR)/$(CONFIG)/boringssl_cmac_test +boringssl_constant_time_test: $(BINDIR)/$(CONFIG)/boringssl_constant_time_test +boringssl_ed25519_test: $(BINDIR)/$(CONFIG)/boringssl_ed25519_test +boringssl_x25519_test: $(BINDIR)/$(CONFIG)/boringssl_x25519_test +boringssl_dh_test: $(BINDIR)/$(CONFIG)/boringssl_dh_test +boringssl_digest_test: $(BINDIR)/$(CONFIG)/boringssl_digest_test +boringssl_dsa_test: $(BINDIR)/$(CONFIG)/boringssl_dsa_test +boringssl_ec_test: $(BINDIR)/$(CONFIG)/boringssl_ec_test +boringssl_example_mul: $(BINDIR)/$(CONFIG)/boringssl_example_mul +boringssl_ecdsa_test: $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test +boringssl_err_test: $(BINDIR)/$(CONFIG)/boringssl_err_test +boringssl_evp_extra_test: $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test +boringssl_evp_test: $(BINDIR)/$(CONFIG)/boringssl_evp_test +boringssl_pbkdf_test: $(BINDIR)/$(CONFIG)/boringssl_pbkdf_test +boringssl_hkdf_test: $(BINDIR)/$(CONFIG)/boringssl_hkdf_test +boringssl_hmac_test: $(BINDIR)/$(CONFIG)/boringssl_hmac_test +boringssl_lhash_test: $(BINDIR)/$(CONFIG)/boringssl_lhash_test +boringssl_gcm_test: $(BINDIR)/$(CONFIG)/boringssl_gcm_test +boringssl_pkcs12_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test +boringssl_pkcs8_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test +boringssl_poly1305_test: $(BINDIR)/$(CONFIG)/boringssl_poly1305_test +boringssl_refcount_test: $(BINDIR)/$(CONFIG)/boringssl_refcount_test +boringssl_rsa_test: $(BINDIR)/$(CONFIG)/boringssl_rsa_test +boringssl_thread_test: $(BINDIR)/$(CONFIG)/boringssl_thread_test +boringssl_pkcs7_test: $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test +boringssl_x509_test: $(BINDIR)/$(CONFIG)/boringssl_x509_test +boringssl_tab_test: $(BINDIR)/$(CONFIG)/boringssl_tab_test +boringssl_v3name_test: $(BINDIR)/$(CONFIG)/boringssl_v3name_test +boringssl_pqueue_test: $(BINDIR)/$(CONFIG)/boringssl_pqueue_test +boringssl_ssl_test: $(BINDIR)/$(CONFIG)/boringssl_ssl_test badreq_bad_client_test: $(BINDIR)/$(CONFIG)/badreq_bad_client_test connection_prefix_bad_client_test: $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test head_of_line_blocking_bad_client_test: $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test @@ -1173,7 +1211,7 @@ plugins: $(PROTOC_PLUGINS) privatelibs: privatelibs_c privatelibs_cxx -privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a +privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc @@ -1183,7 +1221,7 @@ pc_cxx: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc pc_cxx_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++_unsecure.pc ifeq ($(EMBED_OPENSSL),true) -privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a +privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a else privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a endif @@ -1396,6 +1434,44 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/streaming_throughput_test \ $(BINDIR)/$(CONFIG)/stress_test \ $(BINDIR)/$(CONFIG)/thread_stress_test \ + $(BINDIR)/$(CONFIG)/boringssl_aes_test \ + $(BINDIR)/$(CONFIG)/boringssl_asn1_test \ + $(BINDIR)/$(CONFIG)/boringssl_base64_test \ + $(BINDIR)/$(CONFIG)/boringssl_bio_test \ + $(BINDIR)/$(CONFIG)/boringssl_bn_test \ + $(BINDIR)/$(CONFIG)/boringssl_bytestring_test \ + $(BINDIR)/$(CONFIG)/boringssl_aead_test \ + $(BINDIR)/$(CONFIG)/boringssl_cipher_test \ + $(BINDIR)/$(CONFIG)/boringssl_cmac_test \ + $(BINDIR)/$(CONFIG)/boringssl_constant_time_test \ + $(BINDIR)/$(CONFIG)/boringssl_ed25519_test \ + $(BINDIR)/$(CONFIG)/boringssl_x25519_test \ + $(BINDIR)/$(CONFIG)/boringssl_dh_test \ + $(BINDIR)/$(CONFIG)/boringssl_digest_test \ + $(BINDIR)/$(CONFIG)/boringssl_dsa_test \ + $(BINDIR)/$(CONFIG)/boringssl_ec_test \ + $(BINDIR)/$(CONFIG)/boringssl_example_mul \ + $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test \ + $(BINDIR)/$(CONFIG)/boringssl_err_test \ + $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test \ + $(BINDIR)/$(CONFIG)/boringssl_evp_test \ + $(BINDIR)/$(CONFIG)/boringssl_pbkdf_test \ + $(BINDIR)/$(CONFIG)/boringssl_hkdf_test \ + $(BINDIR)/$(CONFIG)/boringssl_hmac_test \ + $(BINDIR)/$(CONFIG)/boringssl_lhash_test \ + $(BINDIR)/$(CONFIG)/boringssl_gcm_test \ + $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test \ + $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test \ + $(BINDIR)/$(CONFIG)/boringssl_poly1305_test \ + $(BINDIR)/$(CONFIG)/boringssl_refcount_test \ + $(BINDIR)/$(CONFIG)/boringssl_rsa_test \ + $(BINDIR)/$(CONFIG)/boringssl_thread_test \ + $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test \ + $(BINDIR)/$(CONFIG)/boringssl_x509_test \ + $(BINDIR)/$(CONFIG)/boringssl_tab_test \ + $(BINDIR)/$(CONFIG)/boringssl_v3name_test \ + $(BINDIR)/$(CONFIG)/boringssl_pqueue_test \ + $(BINDIR)/$(CONFIG)/boringssl_ssl_test \ else buildtests_cxx: privatelibs_cxx \ @@ -4884,31 +4960,360 @@ endif # Using nanopb for C files right now -LIBBAD_CLIENT_TEST_SRC = \ - test/core/bad_client/bad_client.c \ +LIBBORINGSSL_SRC = \ + src/boringssl/err_data.c \ + third_party/boringssl/crypto/aes/aes.c \ + third_party/boringssl/crypto/aes/mode_wrappers.c \ + third_party/boringssl/crypto/asn1/a_bitstr.c \ + third_party/boringssl/crypto/asn1/a_bool.c \ + third_party/boringssl/crypto/asn1/a_bytes.c \ + third_party/boringssl/crypto/asn1/a_d2i_fp.c \ + third_party/boringssl/crypto/asn1/a_dup.c \ + third_party/boringssl/crypto/asn1/a_enum.c \ + third_party/boringssl/crypto/asn1/a_gentm.c \ + third_party/boringssl/crypto/asn1/a_i2d_fp.c \ + third_party/boringssl/crypto/asn1/a_int.c \ + third_party/boringssl/crypto/asn1/a_mbstr.c \ + third_party/boringssl/crypto/asn1/a_object.c \ + third_party/boringssl/crypto/asn1/a_octet.c \ + third_party/boringssl/crypto/asn1/a_print.c \ + third_party/boringssl/crypto/asn1/a_strnid.c \ + third_party/boringssl/crypto/asn1/a_time.c \ + third_party/boringssl/crypto/asn1/a_type.c \ + third_party/boringssl/crypto/asn1/a_utctm.c \ + third_party/boringssl/crypto/asn1/a_utf8.c \ + third_party/boringssl/crypto/asn1/asn1_lib.c \ + third_party/boringssl/crypto/asn1/asn1_par.c \ + third_party/boringssl/crypto/asn1/asn_pack.c \ + third_party/boringssl/crypto/asn1/bio_asn1.c \ + third_party/boringssl/crypto/asn1/bio_ndef.c \ + third_party/boringssl/crypto/asn1/f_enum.c \ + third_party/boringssl/crypto/asn1/f_int.c \ + third_party/boringssl/crypto/asn1/f_string.c \ + third_party/boringssl/crypto/asn1/t_bitst.c \ + third_party/boringssl/crypto/asn1/t_pkey.c \ + third_party/boringssl/crypto/asn1/tasn_dec.c \ + third_party/boringssl/crypto/asn1/tasn_enc.c \ + third_party/boringssl/crypto/asn1/tasn_fre.c \ + third_party/boringssl/crypto/asn1/tasn_new.c \ + third_party/boringssl/crypto/asn1/tasn_prn.c \ + third_party/boringssl/crypto/asn1/tasn_typ.c \ + third_party/boringssl/crypto/asn1/tasn_utl.c \ + third_party/boringssl/crypto/asn1/x_bignum.c \ + third_party/boringssl/crypto/asn1/x_long.c \ + third_party/boringssl/crypto/base64/base64.c \ + third_party/boringssl/crypto/bio/bio.c \ + third_party/boringssl/crypto/bio/bio_mem.c \ + third_party/boringssl/crypto/bio/buffer.c \ + third_party/boringssl/crypto/bio/connect.c \ + third_party/boringssl/crypto/bio/fd.c \ + third_party/boringssl/crypto/bio/file.c \ + third_party/boringssl/crypto/bio/hexdump.c \ + third_party/boringssl/crypto/bio/pair.c \ + third_party/boringssl/crypto/bio/printf.c \ + third_party/boringssl/crypto/bio/socket.c \ + third_party/boringssl/crypto/bio/socket_helper.c \ + third_party/boringssl/crypto/bn/add.c \ + third_party/boringssl/crypto/bn/asm/x86_64-gcc.c \ + third_party/boringssl/crypto/bn/bn.c \ + third_party/boringssl/crypto/bn/bn_asn1.c \ + third_party/boringssl/crypto/bn/cmp.c \ + third_party/boringssl/crypto/bn/convert.c \ + third_party/boringssl/crypto/bn/ctx.c \ + third_party/boringssl/crypto/bn/div.c \ + third_party/boringssl/crypto/bn/exponentiation.c \ + third_party/boringssl/crypto/bn/gcd.c \ + third_party/boringssl/crypto/bn/generic.c \ + third_party/boringssl/crypto/bn/kronecker.c \ + third_party/boringssl/crypto/bn/montgomery.c \ + third_party/boringssl/crypto/bn/mul.c \ + third_party/boringssl/crypto/bn/prime.c \ + third_party/boringssl/crypto/bn/random.c \ + third_party/boringssl/crypto/bn/rsaz_exp.c \ + third_party/boringssl/crypto/bn/shift.c \ + third_party/boringssl/crypto/bn/sqrt.c \ + third_party/boringssl/crypto/buf/buf.c \ + third_party/boringssl/crypto/bytestring/asn1_compat.c \ + third_party/boringssl/crypto/bytestring/ber.c \ + third_party/boringssl/crypto/bytestring/cbb.c \ + third_party/boringssl/crypto/bytestring/cbs.c \ + third_party/boringssl/crypto/chacha/chacha_generic.c \ + third_party/boringssl/crypto/chacha/chacha_vec.c \ + third_party/boringssl/crypto/cipher/aead.c \ + third_party/boringssl/crypto/cipher/cipher.c \ + third_party/boringssl/crypto/cipher/derive_key.c \ + third_party/boringssl/crypto/cipher/e_aes.c \ + third_party/boringssl/crypto/cipher/e_chacha20poly1305.c \ + third_party/boringssl/crypto/cipher/e_des.c \ + third_party/boringssl/crypto/cipher/e_null.c \ + third_party/boringssl/crypto/cipher/e_rc2.c \ + third_party/boringssl/crypto/cipher/e_rc4.c \ + third_party/boringssl/crypto/cipher/e_ssl3.c \ + third_party/boringssl/crypto/cipher/e_tls.c \ + third_party/boringssl/crypto/cipher/tls_cbc.c \ + third_party/boringssl/crypto/cmac/cmac.c \ + third_party/boringssl/crypto/conf/conf.c \ + third_party/boringssl/crypto/cpu-arm.c \ + third_party/boringssl/crypto/cpu-intel.c \ + third_party/boringssl/crypto/crypto.c \ + third_party/boringssl/crypto/curve25519/curve25519.c \ + third_party/boringssl/crypto/curve25519/x25519-x86_64.c \ + third_party/boringssl/crypto/des/des.c \ + third_party/boringssl/crypto/dh/check.c \ + third_party/boringssl/crypto/dh/dh.c \ + third_party/boringssl/crypto/dh/dh_asn1.c \ + third_party/boringssl/crypto/dh/params.c \ + third_party/boringssl/crypto/digest/digest.c \ + third_party/boringssl/crypto/digest/digests.c \ + third_party/boringssl/crypto/directory_posix.c \ + third_party/boringssl/crypto/directory_win.c \ + third_party/boringssl/crypto/dsa/dsa.c \ + third_party/boringssl/crypto/dsa/dsa_asn1.c \ + third_party/boringssl/crypto/ec/ec.c \ + third_party/boringssl/crypto/ec/ec_asn1.c \ + third_party/boringssl/crypto/ec/ec_key.c \ + third_party/boringssl/crypto/ec/ec_montgomery.c \ + third_party/boringssl/crypto/ec/oct.c \ + third_party/boringssl/crypto/ec/p224-64.c \ + third_party/boringssl/crypto/ec/p256-64.c \ + third_party/boringssl/crypto/ec/p256-x86_64.c \ + third_party/boringssl/crypto/ec/simple.c \ + third_party/boringssl/crypto/ec/util-64.c \ + third_party/boringssl/crypto/ec/wnaf.c \ + third_party/boringssl/crypto/ecdh/ecdh.c \ + third_party/boringssl/crypto/ecdsa/ecdsa.c \ + third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c \ + third_party/boringssl/crypto/engine/engine.c \ + third_party/boringssl/crypto/err/err.c \ + third_party/boringssl/crypto/evp/algorithm.c \ + third_party/boringssl/crypto/evp/digestsign.c \ + third_party/boringssl/crypto/evp/evp.c \ + third_party/boringssl/crypto/evp/evp_asn1.c \ + third_party/boringssl/crypto/evp/evp_ctx.c \ + third_party/boringssl/crypto/evp/p_dsa_asn1.c \ + third_party/boringssl/crypto/evp/p_ec.c \ + third_party/boringssl/crypto/evp/p_ec_asn1.c \ + third_party/boringssl/crypto/evp/p_rsa.c \ + third_party/boringssl/crypto/evp/p_rsa_asn1.c \ + third_party/boringssl/crypto/evp/pbkdf.c \ + third_party/boringssl/crypto/evp/sign.c \ + third_party/boringssl/crypto/ex_data.c \ + third_party/boringssl/crypto/hkdf/hkdf.c \ + third_party/boringssl/crypto/hmac/hmac.c \ + third_party/boringssl/crypto/lhash/lhash.c \ + third_party/boringssl/crypto/md4/md4.c \ + third_party/boringssl/crypto/md5/md5.c \ + third_party/boringssl/crypto/mem.c \ + third_party/boringssl/crypto/modes/cbc.c \ + third_party/boringssl/crypto/modes/cfb.c \ + third_party/boringssl/crypto/modes/ctr.c \ + third_party/boringssl/crypto/modes/gcm.c \ + third_party/boringssl/crypto/modes/ofb.c \ + third_party/boringssl/crypto/obj/obj.c \ + third_party/boringssl/crypto/obj/obj_xref.c \ + third_party/boringssl/crypto/pem/pem_all.c \ + third_party/boringssl/crypto/pem/pem_info.c \ + third_party/boringssl/crypto/pem/pem_lib.c \ + third_party/boringssl/crypto/pem/pem_oth.c \ + third_party/boringssl/crypto/pem/pem_pk8.c \ + third_party/boringssl/crypto/pem/pem_pkey.c \ + third_party/boringssl/crypto/pem/pem_x509.c \ + third_party/boringssl/crypto/pem/pem_xaux.c \ + third_party/boringssl/crypto/pkcs8/p5_pbe.c \ + third_party/boringssl/crypto/pkcs8/p5_pbev2.c \ + third_party/boringssl/crypto/pkcs8/p8_pkey.c \ + third_party/boringssl/crypto/pkcs8/pkcs8.c \ + third_party/boringssl/crypto/poly1305/poly1305.c \ + third_party/boringssl/crypto/poly1305/poly1305_arm.c \ + third_party/boringssl/crypto/poly1305/poly1305_vec.c \ + third_party/boringssl/crypto/rand/rand.c \ + third_party/boringssl/crypto/rand/urandom.c \ + third_party/boringssl/crypto/rand/windows.c \ + third_party/boringssl/crypto/rc4/rc4.c \ + third_party/boringssl/crypto/refcount_c11.c \ + third_party/boringssl/crypto/refcount_lock.c \ + third_party/boringssl/crypto/rsa/blinding.c \ + third_party/boringssl/crypto/rsa/padding.c \ + third_party/boringssl/crypto/rsa/rsa.c \ + third_party/boringssl/crypto/rsa/rsa_asn1.c \ + third_party/boringssl/crypto/rsa/rsa_impl.c \ + third_party/boringssl/crypto/sha/sha1.c \ + third_party/boringssl/crypto/sha/sha256.c \ + third_party/boringssl/crypto/sha/sha512.c \ + third_party/boringssl/crypto/stack/stack.c \ + third_party/boringssl/crypto/thread.c \ + third_party/boringssl/crypto/thread_none.c \ + third_party/boringssl/crypto/thread_pthread.c \ + third_party/boringssl/crypto/thread_win.c \ + third_party/boringssl/crypto/time_support.c \ + third_party/boringssl/crypto/x509/a_digest.c \ + third_party/boringssl/crypto/x509/a_sign.c \ + third_party/boringssl/crypto/x509/a_strex.c \ + third_party/boringssl/crypto/x509/a_verify.c \ + third_party/boringssl/crypto/x509/asn1_gen.c \ + third_party/boringssl/crypto/x509/by_dir.c \ + third_party/boringssl/crypto/x509/by_file.c \ + third_party/boringssl/crypto/x509/i2d_pr.c \ + third_party/boringssl/crypto/x509/pkcs7.c \ + third_party/boringssl/crypto/x509/t_crl.c \ + third_party/boringssl/crypto/x509/t_req.c \ + third_party/boringssl/crypto/x509/t_x509.c \ + third_party/boringssl/crypto/x509/t_x509a.c \ + third_party/boringssl/crypto/x509/x509.c \ + third_party/boringssl/crypto/x509/x509_att.c \ + third_party/boringssl/crypto/x509/x509_cmp.c \ + third_party/boringssl/crypto/x509/x509_d2.c \ + third_party/boringssl/crypto/x509/x509_def.c \ + third_party/boringssl/crypto/x509/x509_ext.c \ + third_party/boringssl/crypto/x509/x509_lu.c \ + third_party/boringssl/crypto/x509/x509_obj.c \ + third_party/boringssl/crypto/x509/x509_r2x.c \ + third_party/boringssl/crypto/x509/x509_req.c \ + third_party/boringssl/crypto/x509/x509_set.c \ + third_party/boringssl/crypto/x509/x509_trs.c \ + third_party/boringssl/crypto/x509/x509_txt.c \ + third_party/boringssl/crypto/x509/x509_v3.c \ + third_party/boringssl/crypto/x509/x509_vfy.c \ + third_party/boringssl/crypto/x509/x509_vpm.c \ + third_party/boringssl/crypto/x509/x509cset.c \ + third_party/boringssl/crypto/x509/x509name.c \ + third_party/boringssl/crypto/x509/x509rset.c \ + third_party/boringssl/crypto/x509/x509spki.c \ + third_party/boringssl/crypto/x509/x509type.c \ + third_party/boringssl/crypto/x509/x_algor.c \ + third_party/boringssl/crypto/x509/x_all.c \ + third_party/boringssl/crypto/x509/x_attrib.c \ + third_party/boringssl/crypto/x509/x_crl.c \ + third_party/boringssl/crypto/x509/x_exten.c \ + third_party/boringssl/crypto/x509/x_info.c \ + third_party/boringssl/crypto/x509/x_name.c \ + third_party/boringssl/crypto/x509/x_pkey.c \ + third_party/boringssl/crypto/x509/x_pubkey.c \ + third_party/boringssl/crypto/x509/x_req.c \ + third_party/boringssl/crypto/x509/x_sig.c \ + third_party/boringssl/crypto/x509/x_spki.c \ + third_party/boringssl/crypto/x509/x_val.c \ + third_party/boringssl/crypto/x509/x_x509.c \ + third_party/boringssl/crypto/x509/x_x509a.c \ + third_party/boringssl/crypto/x509v3/pcy_cache.c \ + third_party/boringssl/crypto/x509v3/pcy_data.c \ + third_party/boringssl/crypto/x509v3/pcy_lib.c \ + third_party/boringssl/crypto/x509v3/pcy_map.c \ + third_party/boringssl/crypto/x509v3/pcy_node.c \ + third_party/boringssl/crypto/x509v3/pcy_tree.c \ + third_party/boringssl/crypto/x509v3/v3_akey.c \ + third_party/boringssl/crypto/x509v3/v3_akeya.c \ + third_party/boringssl/crypto/x509v3/v3_alt.c \ + third_party/boringssl/crypto/x509v3/v3_bcons.c \ + third_party/boringssl/crypto/x509v3/v3_bitst.c \ + third_party/boringssl/crypto/x509v3/v3_conf.c \ + third_party/boringssl/crypto/x509v3/v3_cpols.c \ + third_party/boringssl/crypto/x509v3/v3_crld.c \ + third_party/boringssl/crypto/x509v3/v3_enum.c \ + third_party/boringssl/crypto/x509v3/v3_extku.c \ + third_party/boringssl/crypto/x509v3/v3_genn.c \ + third_party/boringssl/crypto/x509v3/v3_ia5.c \ + third_party/boringssl/crypto/x509v3/v3_info.c \ + third_party/boringssl/crypto/x509v3/v3_int.c \ + third_party/boringssl/crypto/x509v3/v3_lib.c \ + third_party/boringssl/crypto/x509v3/v3_ncons.c \ + third_party/boringssl/crypto/x509v3/v3_pci.c \ + third_party/boringssl/crypto/x509v3/v3_pcia.c \ + third_party/boringssl/crypto/x509v3/v3_pcons.c \ + third_party/boringssl/crypto/x509v3/v3_pku.c \ + third_party/boringssl/crypto/x509v3/v3_pmaps.c \ + third_party/boringssl/crypto/x509v3/v3_prn.c \ + third_party/boringssl/crypto/x509v3/v3_purp.c \ + third_party/boringssl/crypto/x509v3/v3_skey.c \ + third_party/boringssl/crypto/x509v3/v3_sxnet.c \ + third_party/boringssl/crypto/x509v3/v3_utl.c \ + third_party/boringssl/ssl/custom_extensions.c \ + third_party/boringssl/ssl/d1_both.c \ + third_party/boringssl/ssl/d1_clnt.c \ + third_party/boringssl/ssl/d1_lib.c \ + third_party/boringssl/ssl/d1_meth.c \ + third_party/boringssl/ssl/d1_pkt.c \ + third_party/boringssl/ssl/d1_srtp.c \ + third_party/boringssl/ssl/d1_srvr.c \ + third_party/boringssl/ssl/dtls_record.c \ + third_party/boringssl/ssl/pqueue/pqueue.c \ + third_party/boringssl/ssl/s3_both.c \ + third_party/boringssl/ssl/s3_clnt.c \ + third_party/boringssl/ssl/s3_enc.c \ + third_party/boringssl/ssl/s3_lib.c \ + third_party/boringssl/ssl/s3_meth.c \ + third_party/boringssl/ssl/s3_pkt.c \ + third_party/boringssl/ssl/s3_srvr.c \ + third_party/boringssl/ssl/ssl_aead_ctx.c \ + third_party/boringssl/ssl/ssl_asn1.c \ + third_party/boringssl/ssl/ssl_buffer.c \ + third_party/boringssl/ssl/ssl_cert.c \ + third_party/boringssl/ssl/ssl_cipher.c \ + third_party/boringssl/ssl/ssl_ecdh.c \ + third_party/boringssl/ssl/ssl_file.c \ + third_party/boringssl/ssl/ssl_lib.c \ + third_party/boringssl/ssl/ssl_rsa.c \ + third_party/boringssl/ssl/ssl_session.c \ + third_party/boringssl/ssl/ssl_stat.c \ + third_party/boringssl/ssl/t1_enc.c \ + third_party/boringssl/ssl/t1_lib.c \ + third_party/boringssl/ssl/tls_record.c \ PUBLIC_HEADERS_C += \ -LIBBAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_CLIENT_TEST_SRC)))) +LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC)))) +$(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -ifeq ($(NO_SECURE),true) +$(LIBDIR)/$(CONFIG)/libboringssl.a: $(ZLIB_DEP) $(LIBBORINGSSL_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl.a $(LIBBORINGSSL_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl.a +endif -# You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libbad_client_test.a: openssl_dep_error -else +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_OBJS:.o=.dep) +endif +# Force compilation of proto files before building code that could potentially depend on them -$(LIBDIR)/$(CONFIG)/libbad_client_test.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_CLIENT_TEST_OBJS) + +# Using nanopb for C files right now +LIBBORINGSSL_TEST_UTIL_SRC = \ + third_party/boringssl/crypto/test/file_test.cc \ + third_party/boringssl/crypto/test/malloc.cc \ + third_party/boringssl/crypto/test/test_util.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TEST_UTIL_SRC)))) + +$(LIBBORINGSSL_TEST_UTIL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_test_util.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_test_util.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_TEST_UTIL_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_client_test.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBBAD_CLIENT_TEST_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBBORINGSSL_TEST_UTIL_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_client_test.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a endif @@ -4916,41 +5321,40 @@ endif endif -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBBAD_CLIENT_TEST_OBJS:.o=.dep) -endif +-include $(LIBBORINGSSL_TEST_UTIL_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them # Using nanopb for C files right now -LIBBAD_SSL_TEST_SERVER_SRC = \ - test/core/bad_ssl/server_common.c \ +LIBBORINGSSL_AES_TEST_LIB_SRC = \ + third_party/boringssl/crypto/aes/aes_test.cc \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CXX += \ -LIBBAD_SSL_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_SSL_TEST_SERVER_SRC)))) +LIBBORINGSSL_AES_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AES_TEST_LIB_SRC)))) +$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure libraries if you don't have OpenSSL. +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a: protobuf_dep_error else - -$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_SSL_TEST_SERVER_OBJS) +$(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_AES_TEST_LIB_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBBAD_SSL_TEST_SERVER_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBBORINGSSL_AES_TEST_LIB_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a endif @@ -4958,81 +5362,40 @@ endif endif -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBBAD_SSL_TEST_SERVER_OBJS:.o=.dep) -endif +-include $(LIBBORINGSSL_AES_TEST_LIB_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them # Using nanopb for C files right now -LIBEND2END_TESTS_SRC = \ - test/core/end2end/end2end_tests.c \ - test/core/end2end/tests/bad_hostname.c \ - test/core/end2end/tests/binary_metadata.c \ - test/core/end2end/tests/call_creds.c \ - test/core/end2end/tests/cancel_after_accept.c \ - test/core/end2end/tests/cancel_after_client_done.c \ - test/core/end2end/tests/cancel_after_invoke.c \ - test/core/end2end/tests/cancel_before_invoke.c \ - test/core/end2end/tests/cancel_in_a_vacuum.c \ - test/core/end2end/tests/cancel_with_status.c \ - test/core/end2end/tests/compressed_payload.c \ - test/core/end2end/tests/connectivity.c \ - test/core/end2end/tests/default_host.c \ - test/core/end2end/tests/disappearing_server.c \ - test/core/end2end/tests/empty_batch.c \ - test/core/end2end/tests/filter_causes_close.c \ - test/core/end2end/tests/graceful_server_shutdown.c \ - test/core/end2end/tests/high_initial_seqno.c \ - test/core/end2end/tests/hpack_size.c \ - test/core/end2end/tests/idempotent_request.c \ - test/core/end2end/tests/invoke_large_request.c \ - test/core/end2end/tests/large_metadata.c \ - test/core/end2end/tests/max_concurrent_streams.c \ - test/core/end2end/tests/max_message_length.c \ - test/core/end2end/tests/negative_deadline.c \ - test/core/end2end/tests/network_status_change.c \ - test/core/end2end/tests/no_op.c \ - test/core/end2end/tests/payload.c \ - test/core/end2end/tests/ping.c \ - test/core/end2end/tests/ping_pong_streaming.c \ - test/core/end2end/tests/registered_call.c \ - test/core/end2end/tests/request_with_flags.c \ - test/core/end2end/tests/request_with_payload.c \ - test/core/end2end/tests/server_finishes_request.c \ - test/core/end2end/tests/shutdown_finishes_calls.c \ - test/core/end2end/tests/shutdown_finishes_tags.c \ - test/core/end2end/tests/simple_delayed_request.c \ - test/core/end2end/tests/simple_metadata.c \ - test/core/end2end/tests/simple_request.c \ - test/core/end2end/tests/streaming_error_response.c \ - test/core/end2end/tests/trailing_metadata.c \ +LIBBORINGSSL_ASN1_TEST_LIB_SRC = \ + third_party/boringssl/crypto/asn1/asn1_test.cc \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CXX += \ -LIBEND2END_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_TESTS_SRC)))) +LIBBORINGSSL_ASN1_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ASN1_TEST_LIB_SRC)))) +$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure libraries if you don't have OpenSSL. +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libend2end_tests.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a: protobuf_dep_error else - -$(LIBDIR)/$(CONFIG)/libend2end_tests.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBEND2END_TESTS_OBJS) +$(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ASN1_TEST_LIB_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_tests.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBEND2END_TESTS_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBBORINGSSL_ASN1_TEST_LIB_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_tests.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a endif @@ -5040,182 +5403,1733 @@ endif endif -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBEND2END_TESTS_OBJS:.o=.dep) -endif +-include $(LIBBORINGSSL_ASN1_TEST_LIB_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them # Using nanopb for C files right now -LIBEND2END_NOSEC_TESTS_SRC = \ - test/core/end2end/end2end_nosec_tests.c \ - test/core/end2end/tests/bad_hostname.c \ - test/core/end2end/tests/binary_metadata.c \ - test/core/end2end/tests/cancel_after_accept.c \ - test/core/end2end/tests/cancel_after_client_done.c \ - test/core/end2end/tests/cancel_after_invoke.c \ - test/core/end2end/tests/cancel_before_invoke.c \ - test/core/end2end/tests/cancel_in_a_vacuum.c \ - test/core/end2end/tests/cancel_with_status.c \ - test/core/end2end/tests/compressed_payload.c \ - test/core/end2end/tests/connectivity.c \ - test/core/end2end/tests/default_host.c \ - test/core/end2end/tests/disappearing_server.c \ - test/core/end2end/tests/empty_batch.c \ - test/core/end2end/tests/filter_causes_close.c \ - test/core/end2end/tests/graceful_server_shutdown.c \ - test/core/end2end/tests/high_initial_seqno.c \ - test/core/end2end/tests/hpack_size.c \ - test/core/end2end/tests/idempotent_request.c \ - test/core/end2end/tests/invoke_large_request.c \ - test/core/end2end/tests/large_metadata.c \ - test/core/end2end/tests/max_concurrent_streams.c \ - test/core/end2end/tests/max_message_length.c \ - test/core/end2end/tests/negative_deadline.c \ - test/core/end2end/tests/network_status_change.c \ - test/core/end2end/tests/no_op.c \ - test/core/end2end/tests/payload.c \ - test/core/end2end/tests/ping.c \ - test/core/end2end/tests/ping_pong_streaming.c \ - test/core/end2end/tests/registered_call.c \ - test/core/end2end/tests/request_with_flags.c \ - test/core/end2end/tests/request_with_payload.c \ - test/core/end2end/tests/server_finishes_request.c \ - test/core/end2end/tests/shutdown_finishes_calls.c \ - test/core/end2end/tests/shutdown_finishes_tags.c \ - test/core/end2end/tests/simple_delayed_request.c \ - test/core/end2end/tests/simple_metadata.c \ - test/core/end2end/tests/simple_request.c \ - test/core/end2end/tests/streaming_error_response.c \ - test/core/end2end/tests/trailing_metadata.c \ +LIBBORINGSSL_BASE64_TEST_LIB_SRC = \ + third_party/boringssl/crypto/base64/base64_test.cc \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CXX += \ -LIBEND2END_NOSEC_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_NOSEC_TESTS_SRC)))) +LIBBORINGSSL_BASE64_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BASE64_TEST_LIB_SRC)))) +$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -$(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a: $(ZLIB_DEP) $(LIBEND2END_NOSEC_TESTS_OBJS) +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BASE64_TEST_LIB_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBEND2END_NOSEC_TESTS_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBBORINGSSL_BASE64_TEST_LIB_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a endif +endif + ifneq ($(NO_DEPS),true) --include $(LIBEND2END_NOSEC_TESTS_OBJS:.o=.dep) +-include $(LIBBORINGSSL_BASE64_TEST_LIB_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them +# Using nanopb for C files right now +LIBBORINGSSL_BIO_TEST_LIB_SRC = \ + third_party/boringssl/crypto/bio/bio_test.cc \ -# All of the test targets, and protoc plugins - +PUBLIC_HEADERS_CXX += \ -ALARM_TEST_SRC = \ - test/core/surface/alarm_test.c \ +LIBBORINGSSL_BIO_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BIO_TEST_LIB_SRC)))) -ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -# You can't build secure targets if you don't have OpenSSL. +ifeq ($(NO_PROTOBUF),true) -$(BINDIR)/$(CONFIG)/alarm_test: openssl_dep_error +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -else +$(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a: protobuf_dep_error +else -$(BINDIR)/$(CONFIG)/alarm_test: $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BIO_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alarm_test - + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBBORINGSSL_BIO_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a endif -$(OBJDIR)/$(CONFIG)/test/core/surface/alarm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_alarm_test: $(ALARM_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ALARM_TEST_OBJS:.o=.dep) + endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_BIO_TEST_LIB_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -ALGORITHM_TEST_SRC = \ - test/core/compression/algorithm_test.c \ +# Using nanopb for C files right now +LIBBORINGSSL_BN_TEST_LIB_SRC = \ + third_party/boringssl/crypto/bn/bn_test.cc \ -ALGORITHM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALGORITHM_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +PUBLIC_HEADERS_CXX += \ -# You can't build secure targets if you don't have OpenSSL. +LIBBORINGSSL_BN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BN_TEST_LIB_SRC)))) -$(BINDIR)/$(CONFIG)/algorithm_test: openssl_dep_error +$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -else +ifeq ($(NO_PROTOBUF),true) +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +$(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a: protobuf_dep_error -$(BINDIR)/$(CONFIG)/algorithm_test: $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/algorithm_test +else + +$(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BN_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBBORINGSSL_BN_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a endif -$(OBJDIR)/$(CONFIG)/test/core/compression/algorithm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_algorithm_test: $(ALGORITHM_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ALGORITHM_TEST_OBJS:.o=.dep) + endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_BN_TEST_LIB_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -ALLOC_TEST_SRC = \ - test/core/support/alloc_test.c \ +# Using nanopb for C files right now +LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC = \ + third_party/boringssl/crypto/bytestring/bytestring_test.cc \ -ALLOC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALLOC_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +PUBLIC_HEADERS_CXX += \ -# You can't build secure targets if you don't have OpenSSL. +LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC)))) -$(BINDIR)/$(CONFIG)/alloc_test: openssl_dep_error +$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -else +ifeq ($(NO_PROTOBUF),true) +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +$(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a: protobuf_dep_error -$(BINDIR)/$(CONFIG)/alloc_test: $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alloc_test +else + +$(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a endif -$(OBJDIR)/$(CONFIG)/test/core/support/alloc_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_alloc_test: $(ALLOC_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(ALLOC_TEST_OBJS:.o=.dep) + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_AEAD_TEST_LIB_SRC = \ + third_party/boringssl/crypto/cipher/aead_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_AEAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AEAD_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_AEAD_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBBORINGSSL_AEAD_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_AEAD_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_CIPHER_TEST_LIB_SRC = \ + third_party/boringssl/crypto/cipher/cipher_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_CIPHER_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CIPHER_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_CMAC_TEST_LIB_SRC = \ + third_party/boringssl/crypto/cmac/cmac_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_CMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CMAC_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_CMAC_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBBORINGSSL_CMAC_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_CMAC_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC = \ + third_party/boringssl/crypto/constant_time_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_ED25519_TEST_LIB_SRC = \ + third_party/boringssl/crypto/curve25519/ed25519_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_ED25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ED25519_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ED25519_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBBORINGSSL_ED25519_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_ED25519_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_X25519_TEST_LIB_SRC = \ + third_party/boringssl/crypto/curve25519/x25519_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_X25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X25519_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_X25519_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBBORINGSSL_X25519_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_X25519_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_DH_TEST_LIB_SRC = \ + third_party/boringssl/crypto/dh/dh_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_DH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DH_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_DH_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBBORINGSSL_DH_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_DH_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_DIGEST_TEST_LIB_SRC = \ + third_party/boringssl/crypto/digest/digest_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_DIGEST_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DIGEST_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_DSA_TEST_LIB_SRC = \ + third_party/boringssl/crypto/dsa/dsa_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_DSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DSA_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_DSA_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a $(LIBBORINGSSL_DSA_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_DSA_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_EC_TEST_LIB_SRC = \ + third_party/boringssl/crypto/ec/ec_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_EC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EC_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_EC_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBBORINGSSL_EC_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_EC_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC = \ + third_party/boringssl/crypto/ec/example_mul.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC)))) + +$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_ECDSA_TEST_LIB_SRC = \ + third_party/boringssl/crypto/ecdsa/ecdsa_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_ECDSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_ERR_TEST_LIB_SRC = \ + third_party/boringssl/crypto/err/err_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_ERR_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ERR_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_ERR_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBBORINGSSL_ERR_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_ERR_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC = \ + third_party/boringssl/crypto/evp/evp_extra_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_EVP_TEST_LIB_SRC = \ + third_party/boringssl/crypto/evp/evp_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_EVP_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_EVP_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBBORINGSSL_EVP_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_EVP_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_PBKDF_TEST_LIB_SRC = \ + third_party/boringssl/crypto/evp/pbkdf_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_PBKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PBKDF_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_HKDF_TEST_LIB_SRC = \ + third_party/boringssl/crypto/hkdf/hkdf_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_HKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HKDF_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_HMAC_TEST_LIB_SRC = \ + third_party/boringssl/crypto/hmac/hmac_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_HMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HMAC_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_HMAC_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBBORINGSSL_HMAC_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_HMAC_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_LHASH_TEST_LIB_SRC = \ + third_party/boringssl/crypto/lhash/lhash_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_LHASH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_LHASH_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_GCM_TEST_LIB_SRC = \ + third_party/boringssl/crypto/modes/gcm_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_GCM_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_PKCS12_TEST_LIB_SRC = \ + third_party/boringssl/crypto/pkcs8/pkcs12_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_PKCS12_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS12_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_PKCS8_TEST_LIB_SRC = \ + third_party/boringssl/crypto/pkcs8/pkcs8_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_PKCS8_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS8_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_POLY1305_TEST_LIB_SRC = \ + third_party/boringssl/crypto/poly1305/poly1305_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_POLY1305_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_POLY1305_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC = \ + third_party/boringssl/crypto/refcount_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_RSA_TEST_LIB_SRC = \ + third_party/boringssl/crypto/rsa/rsa_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_RSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_RSA_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_RSA_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBBORINGSSL_RSA_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_RSA_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_THREAD_TEST_LIB_SRC = \ + third_party/boringssl/crypto/thread_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_THREAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_THREAD_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_PKCS7_TEST_LIB_SRC = \ + third_party/boringssl/crypto/x509/pkcs7_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_PKCS7_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS7_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_X509_TEST_LIB_SRC = \ + third_party/boringssl/crypto/x509/x509_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_X509_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X509_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_X509_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBBORINGSSL_X509_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_X509_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_TAB_TEST_LIB_SRC = \ + third_party/boringssl/crypto/x509v3/tab_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_TAB_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TAB_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_TAB_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a $(LIBBORINGSSL_TAB_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_TAB_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_V3NAME_TEST_LIB_SRC = \ + third_party/boringssl/crypto/x509v3/v3name_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_V3NAME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_V3NAME_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_PQUEUE_TEST_LIB_SRC = \ + third_party/boringssl/ssl/pqueue/pqueue_test.c \ + +PUBLIC_HEADERS_C += \ + +LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PQUEUE_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +$(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBORINGSSL_SSL_TEST_LIB_SRC = \ + third_party/boringssl/ssl/ssl_test.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBBORINGSSL_SSL_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SSL_TEST_LIB_SRC)))) + +$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBBORINGSSL_SSL_TEST_LIB_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBBORINGSSL_SSL_TEST_LIB_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBBORINGSSL_SSL_TEST_LIB_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBZ_SRC = \ + third_party/zlib/adler32.c \ + third_party/zlib/compress.c \ + third_party/zlib/crc32.c \ + third_party/zlib/deflate.c \ + third_party/zlib/gzclose.c \ + third_party/zlib/gzlib.c \ + third_party/zlib/gzread.c \ + third_party/zlib/gzwrite.c \ + third_party/zlib/infback.c \ + third_party/zlib/inffast.c \ + third_party/zlib/inflate.c \ + third_party/zlib/inftrees.c \ + third_party/zlib/trees.c \ + third_party/zlib/uncompr.c \ + third_party/zlib/zutil.c \ + +PUBLIC_HEADERS_C += \ + +LIBZ_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBZ_SRC)))) + +$(LIBZ_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-implicit-function-declaration $(W_NO_SHIFT_NEGATIVE_VALUE) -fvisibility=hidden + +$(LIBDIR)/$(CONFIG)/libz.a: $(LIBZ_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libz.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libz.a $(LIBZ_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libz.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBZ_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBAD_CLIENT_TEST_SRC = \ + test/core/bad_client/bad_client.c \ + +PUBLIC_HEADERS_C += \ + +LIBBAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_CLIENT_TEST_SRC)))) + + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libbad_client_test.a: openssl_dep_error + + +else + + +$(LIBDIR)/$(CONFIG)/libbad_client_test.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_CLIENT_TEST_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_client_test.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBBAD_CLIENT_TEST_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_client_test.a +endif + + + + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBBAD_CLIENT_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBBAD_SSL_TEST_SERVER_SRC = \ + test/core/bad_ssl/server_common.c \ + +PUBLIC_HEADERS_C += \ + +LIBBAD_SSL_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_SSL_TEST_SERVER_SRC)))) + + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: openssl_dep_error + + +else + + +$(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBBAD_SSL_TEST_SERVER_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBBAD_SSL_TEST_SERVER_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a +endif + + + + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBBAD_SSL_TEST_SERVER_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBEND2END_TESTS_SRC = \ + test/core/end2end/end2end_tests.c \ + test/core/end2end/tests/bad_hostname.c \ + test/core/end2end/tests/binary_metadata.c \ + test/core/end2end/tests/call_creds.c \ + test/core/end2end/tests/cancel_after_accept.c \ + test/core/end2end/tests/cancel_after_client_done.c \ + test/core/end2end/tests/cancel_after_invoke.c \ + test/core/end2end/tests/cancel_before_invoke.c \ + test/core/end2end/tests/cancel_in_a_vacuum.c \ + test/core/end2end/tests/cancel_with_status.c \ + test/core/end2end/tests/compressed_payload.c \ + test/core/end2end/tests/connectivity.c \ + test/core/end2end/tests/default_host.c \ + test/core/end2end/tests/disappearing_server.c \ + test/core/end2end/tests/empty_batch.c \ + test/core/end2end/tests/filter_causes_close.c \ + test/core/end2end/tests/graceful_server_shutdown.c \ + test/core/end2end/tests/high_initial_seqno.c \ + test/core/end2end/tests/hpack_size.c \ + test/core/end2end/tests/idempotent_request.c \ + test/core/end2end/tests/invoke_large_request.c \ + test/core/end2end/tests/large_metadata.c \ + test/core/end2end/tests/max_concurrent_streams.c \ + test/core/end2end/tests/max_message_length.c \ + test/core/end2end/tests/negative_deadline.c \ + test/core/end2end/tests/network_status_change.c \ + test/core/end2end/tests/no_op.c \ + test/core/end2end/tests/payload.c \ + test/core/end2end/tests/ping.c \ + test/core/end2end/tests/ping_pong_streaming.c \ + test/core/end2end/tests/registered_call.c \ + test/core/end2end/tests/request_with_flags.c \ + test/core/end2end/tests/request_with_payload.c \ + test/core/end2end/tests/server_finishes_request.c \ + test/core/end2end/tests/shutdown_finishes_calls.c \ + test/core/end2end/tests/shutdown_finishes_tags.c \ + test/core/end2end/tests/simple_delayed_request.c \ + test/core/end2end/tests/simple_metadata.c \ + test/core/end2end/tests/simple_request.c \ + test/core/end2end/tests/streaming_error_response.c \ + test/core/end2end/tests/trailing_metadata.c \ + +PUBLIC_HEADERS_C += \ + +LIBEND2END_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_TESTS_SRC)))) + + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libend2end_tests.a: openssl_dep_error + + +else + + +$(LIBDIR)/$(CONFIG)/libend2end_tests.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBEND2END_TESTS_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_tests.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBEND2END_TESTS_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_tests.a +endif + + + + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBEND2END_TESTS_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBEND2END_NOSEC_TESTS_SRC = \ + test/core/end2end/end2end_nosec_tests.c \ + test/core/end2end/tests/bad_hostname.c \ + test/core/end2end/tests/binary_metadata.c \ + test/core/end2end/tests/cancel_after_accept.c \ + test/core/end2end/tests/cancel_after_client_done.c \ + test/core/end2end/tests/cancel_after_invoke.c \ + test/core/end2end/tests/cancel_before_invoke.c \ + test/core/end2end/tests/cancel_in_a_vacuum.c \ + test/core/end2end/tests/cancel_with_status.c \ + test/core/end2end/tests/compressed_payload.c \ + test/core/end2end/tests/connectivity.c \ + test/core/end2end/tests/default_host.c \ + test/core/end2end/tests/disappearing_server.c \ + test/core/end2end/tests/empty_batch.c \ + test/core/end2end/tests/filter_causes_close.c \ + test/core/end2end/tests/graceful_server_shutdown.c \ + test/core/end2end/tests/high_initial_seqno.c \ + test/core/end2end/tests/hpack_size.c \ + test/core/end2end/tests/idempotent_request.c \ + test/core/end2end/tests/invoke_large_request.c \ + test/core/end2end/tests/large_metadata.c \ + test/core/end2end/tests/max_concurrent_streams.c \ + test/core/end2end/tests/max_message_length.c \ + test/core/end2end/tests/negative_deadline.c \ + test/core/end2end/tests/network_status_change.c \ + test/core/end2end/tests/no_op.c \ + test/core/end2end/tests/payload.c \ + test/core/end2end/tests/ping.c \ + test/core/end2end/tests/ping_pong_streaming.c \ + test/core/end2end/tests/registered_call.c \ + test/core/end2end/tests/request_with_flags.c \ + test/core/end2end/tests/request_with_payload.c \ + test/core/end2end/tests/server_finishes_request.c \ + test/core/end2end/tests/shutdown_finishes_calls.c \ + test/core/end2end/tests/shutdown_finishes_tags.c \ + test/core/end2end/tests/simple_delayed_request.c \ + test/core/end2end/tests/simple_metadata.c \ + test/core/end2end/tests/simple_request.c \ + test/core/end2end/tests/streaming_error_response.c \ + test/core/end2end/tests/trailing_metadata.c \ + +PUBLIC_HEADERS_C += \ + +LIBEND2END_NOSEC_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_NOSEC_TESTS_SRC)))) + + +$(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a: $(ZLIB_DEP) $(LIBEND2END_NOSEC_TESTS_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBEND2END_NOSEC_TESTS_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a +endif + + + + +ifneq ($(NO_DEPS),true) +-include $(LIBEND2END_NOSEC_TESTS_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + + +# All of the test targets, and protoc plugins + + +ALARM_TEST_SRC = \ + test/core/surface/alarm_test.c \ + +ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/alarm_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/alarm_test: $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alarm_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/surface/alarm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_alarm_test: $(ALARM_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(ALARM_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +ALGORITHM_TEST_SRC = \ + test/core/compression/algorithm_test.c \ + +ALGORITHM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALGORITHM_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/algorithm_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/algorithm_test: $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/algorithm_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/compression/algorithm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_algorithm_test: $(ALGORITHM_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(ALGORITHM_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +ALLOC_TEST_SRC = \ + test/core/support/alloc_test.c \ + +ALLOC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALLOC_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/alloc_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/alloc_test: $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alloc_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/support/alloc_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_alloc_test: $(ALLOC_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(ALLOC_TEST_OBJS:.o=.dep) endif endif @@ -5225,3891 +7139,4991 @@ endif ALPN_TEST_SRC = \ test/core/transport/chttp2/alpn_test.c \ -ALPN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC)))) +ALPN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/alpn_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/alpn_test: $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alpn_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/alpn_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_alpn_test: $(ALPN_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(ALPN_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +API_FUZZER_SRC = \ + test/core/end2end/fuzzers/api_fuzzer.c \ + +API_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/api_fuzzer: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/api_fuzzer: $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/api_fuzzer + +endif + +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/api_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_api_fuzzer: $(API_FUZZER_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(API_FUZZER_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +BAD_SERVER_RESPONSE_TEST_SRC = \ + test/core/end2end/bad_server_response_test.c \ + +BAD_SERVER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SERVER_RESPONSE_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/bad_server_response_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_server_response_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/end2end/bad_server_response_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +BIN_DECODER_TEST_SRC = \ + test/core/transport/chttp2/bin_decoder_test.c \ + +BIN_DECODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_DECODER_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/bin_decoder_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/bin_decoder_test: $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_decoder_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_decoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_bin_decoder_test: $(BIN_DECODER_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(BIN_DECODER_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +BIN_ENCODER_TEST_SRC = \ + test/core/transport/chttp2/bin_encoder_test.c \ + +BIN_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/bin_encoder_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_encoder_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_bin_encoder_test: $(BIN_ENCODER_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(BIN_ENCODER_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CENSUS_CONTEXT_TEST_SRC = \ + test/core/census/context_test.c \ + +CENSUS_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_CONTEXT_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/census_context_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/census_context_test: $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_context_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/census/context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_census_context_test: $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CHANNEL_CREATE_TEST_SRC = \ + test/core/surface/channel_create_test.c \ + +CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_CREATE_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/channel_create_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/channel_create_test: $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/channel_create_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/surface/channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_channel_create_test: $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CHTTP2_HPACK_ENCODER_TEST_SRC = \ + test/core/transport/chttp2/hpack_encoder_test.c \ + +CHTTP2_HPACK_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_HPACK_ENCODER_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CHTTP2_STATUS_CONVERSION_TEST_SRC = \ + test/core/transport/chttp2/status_conversion_test.c \ + +CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/status_conversion_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CHTTP2_STREAM_MAP_TEST_SRC = \ + test/core/transport/chttp2/stream_map_test.c \ + +CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_stream_map_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/stream_map_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CHTTP2_VARINT_TEST_SRC = \ + test/core/transport/chttp2/varint_test.c \ + +CHTTP2_VARINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_VARINT_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/chttp2_varint_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_varint_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/varint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CLIENT_FUZZER_SRC = \ + test/core/end2end/fuzzers/client_fuzzer.c \ + +CLIENT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/client_fuzzer: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/client_fuzzer: $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/client_fuzzer + +endif + +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/client_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_client_fuzzer: $(CLIENT_FUZZER_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CLIENT_FUZZER_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +COMPRESSION_TEST_SRC = \ + test/core/compression/compression_test.c \ + +COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/compression_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/compression_test: $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/compression/compression_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_compression_test: $(COMPRESSION_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(COMPRESSION_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +CONCURRENT_CONNECTIVITY_TEST_SRC = \ + test/core/surface/concurrent_connectivity_test.c \ + +CONCURRENT_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONCURRENT_CONNECTIVITY_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/concurrent_connectivity_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/surface/concurrent_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \ + test/core/client_config/resolvers/dns_resolver_connectivity_test.c \ + +DNS_RESOLVER_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_CONNECTIVITY_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +DNS_RESOLVER_TEST_SRC = \ + test/core/client_config/resolvers/dns_resolver_test.c \ + +DNS_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/dns_resolver_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(DNS_RESOLVER_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +DUALSTACK_SOCKET_TEST_SRC = \ + test/core/end2end/dualstack_socket_test.c \ + +DUALSTACK_SOCKET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/dualstack_socket_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dualstack_socket_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/end2end/dualstack_socket_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +ENDPOINT_PAIR_TEST_SRC = \ + test/core/iomgr/endpoint_pair_test.c \ + +ENDPOINT_PAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ENDPOINT_PAIR_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/endpoint_pair_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/endpoint_pair_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/iomgr/endpoint_pair_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +EV_EPOLL_LINUX_TEST_SRC = \ + test/core/iomgr/ev_epoll_linux_test.c \ + +EV_EPOLL_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLL_LINUX_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epoll_linux_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/iomgr/ev_epoll_linux_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +FD_CONSERVATION_POSIX_TEST_SRC = \ + test/core/iomgr/fd_conservation_posix_test.c \ + +FD_CONSERVATION_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_CONSERVATION_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/alpn_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/alpn_test: $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alpn_test + $(Q) $(LD) $(LDFLAGS) $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_conservation_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/alpn_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_conservation_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +FD_POSIX_TEST_SRC = \ + test/core/iomgr/fd_posix_test.c \ + +FD_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/fd_posix_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/fd_posix_test: $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_posix_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_fd_posix_test: $(FD_POSIX_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(FD_POSIX_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +FLING_CLIENT_SRC = \ + test/core/fling/client.c \ + +FLING_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/fling_client: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/fling_client: $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_client + +endif + +$(OBJDIR)/$(CONFIG)/test/core/fling/client.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_fling_client: $(FLING_CLIENT_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(FLING_CLIENT_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +FLING_SERVER_SRC = \ + test/core/fling/server.c \ + +FLING_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/fling_server: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/fling_server: $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_server + +endif + +$(OBJDIR)/$(CONFIG)/test/core/fling/server.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_fling_server: $(FLING_SERVER_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(FLING_SERVER_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +FLING_STREAM_TEST_SRC = \ + test/core/fling/fling_stream_test.c \ + +FLING_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/fling_stream_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/fling_stream_test: $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_stream_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/fling/fling_stream_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_fling_stream_test: $(FLING_STREAM_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(FLING_STREAM_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +FLING_TEST_SRC = \ + test/core/fling/fling_test.c \ + +FLING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/fling_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/fling_test: $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/fling/fling_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_fling_test: $(FLING_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(FLING_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +GEN_HPACK_TABLES_SRC = \ + tools/codegen/core/gen_hpack_tables.c \ + +GEN_HPACK_TABLES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/gen_hpack_tables: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_hpack_tables + +endif + +$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_hpack_tables.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(GEN_HPACK_TABLES_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +GEN_LEGAL_METADATA_CHARACTERS_SRC = \ + tools/codegen/core/gen_legal_metadata_characters.c \ + +GEN_LEGAL_METADATA_CHARACTERS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_LEGAL_METADATA_CHARACTERS_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters + +endif + +$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_legal_metadata_characters.o: -deps_alpn_test: $(ALPN_TEST_OBJS:.o=.dep) +deps_gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALPN_TEST_OBJS:.o=.dep) +-include $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -API_FUZZER_SRC = \ - test/core/end2end/fuzzers/api_fuzzer.c \ +GOAWAY_SERVER_TEST_SRC = \ + test/core/end2end/goaway_server_test.c \ -API_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_SRC)))) +GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/api_fuzzer: openssl_dep_error +$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/api_fuzzer: $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/api_fuzzer + $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/api_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_api_fuzzer: $(API_FUZZER_OBJS:.o=.dep) +deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(API_FUZZER_OBJS:.o=.dep) +-include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -BAD_SERVER_RESPONSE_TEST_SRC = \ - test/core/end2end/bad_server_response_test.c \ +GPR_AVL_TEST_SRC = \ + test/core/support/avl_test.c \ -BAD_SERVER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SERVER_RESPONSE_TEST_SRC)))) +GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/bad_server_response_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_avl_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_avl_test: $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_server_response_test + $(Q) $(LD) $(LDFLAGS) $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_avl_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/bad_server_response_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) +deps_gpr_avl_test: $(GPR_AVL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) +-include $(GPR_AVL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -BIN_DECODER_TEST_SRC = \ - test/core/transport/chttp2/bin_decoder_test.c \ +GPR_BACKOFF_TEST_SRC = \ + test/core/support/backoff_test.c \ -BIN_DECODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_DECODER_TEST_SRC)))) +GPR_BACKOFF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_BACKOFF_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/bin_decoder_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_backoff_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/bin_decoder_test: $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(BINDIR)/$(CONFIG)/gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_decoder_test + $(Q) $(LD) $(LDFLAGS) $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_backoff_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_decoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(OBJDIR)/$(CONFIG)/test/core/support/backoff_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_bin_decoder_test: $(BIN_DECODER_TEST_OBJS:.o=.dep) +deps_gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(BIN_DECODER_TEST_OBJS:.o=.dep) +-include $(GPR_BACKOFF_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -BIN_ENCODER_TEST_SRC = \ - test/core/transport/chttp2/bin_encoder_test.c \ +GPR_CMDLINE_TEST_SRC = \ + test/core/support/cmdline_test.c \ -BIN_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC)))) +GPR_CMDLINE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/bin_encoder_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_cmdline_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(BINDIR)/$(CONFIG)/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_encoder_test + $(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cmdline_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(OBJDIR)/$(CONFIG)/test/core/support/cmdline_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_bin_encoder_test: $(BIN_ENCODER_TEST_OBJS:.o=.dep) +deps_gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(BIN_ENCODER_TEST_OBJS:.o=.dep) +-include $(GPR_CMDLINE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CENSUS_CONTEXT_TEST_SRC = \ - test/core/census/context_test.c \ +GPR_CPU_TEST_SRC = \ + test/core/support/cpu_test.c \ -CENSUS_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_CONTEXT_TEST_SRC)))) +GPR_CPU_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CPU_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/census_context_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_cpu_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/census_context_test: $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_cpu_test: $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_context_test + $(Q) $(LD) $(LDFLAGS) $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cpu_test endif -$(OBJDIR)/$(CONFIG)/test/core/census/context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/cpu_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_census_context_test: $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) +deps_gpr_cpu_test: $(GPR_CPU_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) +-include $(GPR_CPU_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHANNEL_CREATE_TEST_SRC = \ - test/core/surface/channel_create_test.c \ +GPR_ENV_TEST_SRC = \ + test/core/support/env_test.c \ -CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_CREATE_TEST_SRC)))) +GPR_ENV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_ENV_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/channel_create_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_env_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/channel_create_test: $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_env_test: $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/channel_create_test + $(Q) $(LD) $(LDFLAGS) $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_env_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/env_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_channel_create_test: $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) +deps_gpr_env_test: $(GPR_ENV_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) +-include $(GPR_ENV_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_HPACK_ENCODER_TEST_SRC = \ - test/core/transport/chttp2/hpack_encoder_test.c \ +GPR_HISTOGRAM_TEST_SRC = \ + test/core/support/histogram_test.c \ -CHTTP2_HPACK_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_HPACK_ENCODER_TEST_SRC)))) +GPR_HISTOGRAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_histogram_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test + $(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_histogram_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/histogram_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) +deps_gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) +-include $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_STATUS_CONVERSION_TEST_SRC = \ - test/core/transport/chttp2/status_conversion_test.c \ +GPR_HOST_PORT_TEST_SRC = \ + test/core/support/host_port_test.c \ -CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC)))) +GPR_HOST_PORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_host_port_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test + $(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_host_port_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/status_conversion_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/host_port_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) +deps_gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) +-include $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_STREAM_MAP_TEST_SRC = \ - test/core/transport/chttp2/stream_map_test.c \ +GPR_LOG_TEST_SRC = \ + test/core/support/log_test.c \ -CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC)))) +GPR_LOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_log_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_log_test: $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_stream_map_test + $(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_log_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/stream_map_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/log_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) +deps_gpr_log_test: $(GPR_LOG_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) +-include $(GPR_LOG_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_VARINT_TEST_SRC = \ - test/core/transport/chttp2/varint_test.c \ +GPR_SLICE_BUFFER_TEST_SRC = \ + test/core/support/slice_buffer_test.c \ -CHTTP2_VARINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_VARINT_TEST_SRC)))) +GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_varint_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_varint_test + $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/varint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/slice_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) +deps_gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) +-include $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CLIENT_FUZZER_SRC = \ - test/core/end2end/fuzzers/client_fuzzer.c \ +GPR_SLICE_TEST_SRC = \ + test/core/support/slice_test.c \ -CLIENT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_SRC)))) +GPR_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_fuzzer: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_slice_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/client_fuzzer: $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/client_fuzzer + $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/client_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/slice_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_client_fuzzer: $(CLIENT_FUZZER_OBJS:.o=.dep) +deps_gpr_slice_test: $(GPR_SLICE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLIENT_FUZZER_OBJS:.o=.dep) +-include $(GPR_SLICE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -COMPRESSION_TEST_SRC = \ - test/core/compression/compression_test.c \ +GPR_STACK_LOCKFREE_TEST_SRC = \ + test/core/support/stack_lockfree_test.c \ -COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC)))) +GPR_STACK_LOCKFREE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STACK_LOCKFREE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/compression_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/compression_test: $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test + $(Q) $(LD) $(LDFLAGS) $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test endif -$(OBJDIR)/$(CONFIG)/test/core/compression/compression_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/stack_lockfree_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_compression_test: $(COMPRESSION_TEST_OBJS:.o=.dep) +deps_gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(COMPRESSION_TEST_OBJS:.o=.dep) +-include $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CONCURRENT_CONNECTIVITY_TEST_SRC = \ - test/core/surface/concurrent_connectivity_test.c \ +GPR_STRING_TEST_SRC = \ + test/core/support/string_test.c \ -CONCURRENT_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONCURRENT_CONNECTIVITY_TEST_SRC)))) +GPR_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_string_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_string_test: $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/concurrent_connectivity_test + $(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_string_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/concurrent_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/string_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) +deps_gpr_string_test: $(GPR_STRING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) +-include $(GPR_STRING_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \ - test/core/client_config/resolvers/dns_resolver_connectivity_test.c \ +GPR_SYNC_TEST_SRC = \ + test/core/support/sync_test.c \ -DNS_RESOLVER_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_CONNECTIVITY_TEST_SRC)))) +GPR_SYNC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_sync_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test + $(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_sync_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/sync_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) +deps_gpr_sync_test: $(GPR_SYNC_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) +-include $(GPR_SYNC_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -DNS_RESOLVER_TEST_SRC = \ - test/core/client_config/resolvers/dns_resolver_test.c \ +GPR_THD_TEST_SRC = \ + test/core/support/thd_test.c \ -DNS_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_TEST_SRC)))) +GPR_THD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/dns_resolver_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_thd_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_thd_test: $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_test + $(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_thd_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/thd_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS:.o=.dep) +deps_gpr_thd_test: $(GPR_THD_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(DNS_RESOLVER_TEST_OBJS:.o=.dep) +-include $(GPR_THD_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -DUALSTACK_SOCKET_TEST_SRC = \ - test/core/end2end/dualstack_socket_test.c \ +GPR_TIME_TEST_SRC = \ + test/core/support/time_test.c \ -DUALSTACK_SOCKET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC)))) +GPR_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/dualstack_socket_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_time_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_time_test: $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dualstack_socket_test + $(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_time_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/dualstack_socket_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/time_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) +deps_gpr_time_test: $(GPR_TIME_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) +-include $(GPR_TIME_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ENDPOINT_PAIR_TEST_SRC = \ - test/core/iomgr/endpoint_pair_test.c \ +GPR_TLS_TEST_SRC = \ + test/core/support/tls_test.c \ -ENDPOINT_PAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ENDPOINT_PAIR_TEST_SRC)))) +GPR_TLS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TLS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/endpoint_pair_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_tls_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_tls_test: $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/endpoint_pair_test + $(Q) $(LD) $(LDFLAGS) $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_tls_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/endpoint_pair_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/tls_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) +deps_gpr_tls_test: $(GPR_TLS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) +-include $(GPR_TLS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -EV_EPOLL_LINUX_TEST_SRC = \ - test/core/iomgr/ev_epoll_linux_test.c \ +GPR_USEFUL_TEST_SRC = \ + test/core/support/useful_test.c \ -EV_EPOLL_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLL_LINUX_TEST_SRC)))) +GPR_USEFUL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_useful_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epoll_linux_test + $(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_useful_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/ev_epoll_linux_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/useful_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) +deps_gpr_useful_test: $(GPR_USEFUL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) +-include $(GPR_USEFUL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -FD_CONSERVATION_POSIX_TEST_SRC = \ - test/core/iomgr/fd_conservation_posix_test.c \ +GRPC_AUTH_CONTEXT_TEST_SRC = \ + test/core/security/auth_context_test.c \ -FD_CONSERVATION_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_CONSERVATION_POSIX_TEST_SRC)))) +GRPC_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_AUTH_CONTEXT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_auth_context_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_conservation_posix_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_auth_context_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_conservation_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) +deps_grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) +-include $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -FD_POSIX_TEST_SRC = \ - test/core/iomgr/fd_posix_test.c \ +GRPC_B64_TEST_SRC = \ + test/core/security/b64_test.c \ -FD_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC)))) +GRPC_B64_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_B64_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fd_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_b64_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fd_posix_test: $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_b64_test: $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_posix_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_b64_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/b64_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fd_posix_test: $(FD_POSIX_TEST_OBJS:.o=.dep) +deps_grpc_b64_test: $(GRPC_B64_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FD_POSIX_TEST_OBJS:.o=.dep) +-include $(GRPC_B64_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -FLING_CLIENT_SRC = \ - test/core/fling/client.c \ +GRPC_BYTE_BUFFER_READER_TEST_SRC = \ + test/core/surface/byte_buffer_reader_test.c \ -FLING_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC)))) +GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_client: $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_client + $(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/client.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/byte_buffer_reader_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_client: $(FLING_CLIENT_OBJS:.o=.dep) +deps_grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_CLIENT_OBJS:.o=.dep) +-include $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -FLING_SERVER_SRC = \ - test/core/fling/server.c \ +GRPC_CHANNEL_ARGS_TEST_SRC = \ + test/core/channel/channel_args_test.c \ -FLING_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC)))) +GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_channel_args_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_server: $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_server + $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/server.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/channel/channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_server: $(FLING_SERVER_OBJS:.o=.dep) +deps_grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_SERVER_OBJS:.o=.dep) +-include $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -FLING_STREAM_TEST_SRC = \ - test/core/fling/fling_stream_test.c \ +GRPC_CHANNEL_STACK_TEST_SRC = \ + test/core/channel/channel_stack_test.c \ -FLING_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC)))) +GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_stream_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_stream_test: $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_stream_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/fling_stream_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/channel/channel_stack_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_stream_test: $(FLING_STREAM_TEST_OBJS:.o=.dep) +deps_grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_STREAM_TEST_OBJS:.o=.dep) +-include $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -FLING_TEST_SRC = \ - test/core/fling/fling_test.c \ +GRPC_COMPLETION_QUEUE_TEST_SRC = \ + test/core/surface/completion_queue_test.c \ -FLING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC)))) +GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_test: $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/fling_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/completion_queue_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_fling_test: $(FLING_TEST_OBJS:.o=.dep) +deps_grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_TEST_OBJS:.o=.dep) +-include $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GEN_HPACK_TABLES_SRC = \ - tools/codegen/core/gen_hpack_tables.c \ +GRPC_CREATE_JWT_SRC = \ + test/core/security/create_jwt.c \ -GEN_HPACK_TABLES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC)))) +GRPC_CREATE_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREATE_JWT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gen_hpack_tables: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_create_jwt: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(BINDIR)/$(CONFIG)/grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_hpack_tables + $(Q) $(LD) $(LDFLAGS) $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_create_jwt endif -$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_hpack_tables.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(OBJDIR)/$(CONFIG)/test/core/security/create_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS:.o=.dep) +deps_grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GEN_HPACK_TABLES_OBJS:.o=.dep) +-include $(GRPC_CREATE_JWT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GEN_LEGAL_METADATA_CHARACTERS_SRC = \ - tools/codegen/core/gen_legal_metadata_characters.c \ +GRPC_CREDENTIALS_TEST_SRC = \ + test/core/security/credentials_test.c \ -GEN_LEGAL_METADATA_CHARACTERS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_LEGAL_METADATA_CHARACTERS_SRC)))) +GRPC_CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_credentials_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) +$(BINDIR)/$(CONFIG)/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters + $(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_credentials_test endif -$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_legal_metadata_characters.o: +$(OBJDIR)/$(CONFIG)/test/core/security/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) +deps_grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) +-include $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GOAWAY_SERVER_TEST_SRC = \ - test/core/end2end/goaway_server_test.c \ +GRPC_FETCH_OAUTH2_SRC = \ + test/core/security/fetch_oauth2.c \ -GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC)))) +GRPC_FETCH_OAUTH2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: openssl_dep_error else -$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/fetch_oauth2.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) +deps_grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) +-include $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_AVL_TEST_SRC = \ - test/core/support/avl_test.c \ +GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \ + test/core/surface/invalid_channel_args_test.c \ -GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC)))) +GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_INVALID_CHANNEL_ARGS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_avl_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_avl_test: $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_avl_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/invalid_channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_avl_test: $(GPR_AVL_TEST_OBJS:.o=.dep) +deps_grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_AVL_TEST_OBJS:.o=.dep) +-include $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_BACKOFF_TEST_SRC = \ - test/core/support/backoff_test.c \ +GRPC_JSON_TOKEN_TEST_SRC = \ + test/core/security/json_token_test.c \ -GPR_BACKOFF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_BACKOFF_TEST_SRC)))) +GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_backoff_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_json_token_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_backoff_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_json_token_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/backoff_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/json_token_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS:.o=.dep) +deps_grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_BACKOFF_TEST_OBJS:.o=.dep) +-include $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_CMDLINE_TEST_SRC = \ - test/core/support/cmdline_test.c \ +GRPC_JWT_VERIFIER_TEST_SRC = \ + test/core/security/jwt_verifier_test.c \ -GPR_CMDLINE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC)))) +GRPC_JWT_VERIFIER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JWT_VERIFIER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_cmdline_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cmdline_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/cmdline_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/jwt_verifier_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS:.o=.dep) +deps_grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_CMDLINE_TEST_OBJS:.o=.dep) +-include $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_CPU_TEST_SRC = \ - test/core/support/cpu_test.c \ +GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \ + test/core/security/print_google_default_creds_token.c \ -GPR_CPU_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CPU_TEST_SRC)))) +GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_cpu_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_cpu_test: $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cpu_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token endif -$(OBJDIR)/$(CONFIG)/test/core/support/cpu_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/print_google_default_creds_token.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_cpu_test: $(GPR_CPU_TEST_OBJS:.o=.dep) +deps_grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_CPU_TEST_OBJS:.o=.dep) +-include $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_ENV_TEST_SRC = \ - test/core/support/env_test.c \ +GRPC_SECURITY_CONNECTOR_TEST_SRC = \ + test/core/security/security_connector_test.c \ -GPR_ENV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_ENV_TEST_SRC)))) +GRPC_SECURITY_CONNECTOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_SECURITY_CONNECTOR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_env_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_security_connector_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_env_test: $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_env_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_security_connector_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/env_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/security_connector_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_env_test: $(GPR_ENV_TEST_OBJS:.o=.dep) +deps_grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_ENV_TEST_OBJS:.o=.dep) +-include $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_HISTOGRAM_TEST_SRC = \ - test/core/support/histogram_test.c \ +GRPC_VERIFY_JWT_SRC = \ + test/core/security/verify_jwt.c \ -GPR_HISTOGRAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC)))) +GRPC_VERIFY_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_VERIFY_JWT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_histogram_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_verify_jwt: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_histogram_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_verify_jwt endif -$(OBJDIR)/$(CONFIG)/test/core/support/histogram_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/verify_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) +deps_grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) +-include $(GRPC_VERIFY_JWT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_HOST_PORT_TEST_SRC = \ - test/core/support/host_port_test.c \ +HPACK_PARSER_FUZZER_TEST_SRC = \ + test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ -GPR_HOST_PORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC)))) +HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_host_port_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_host_port_test + $(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/host_port_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) +deps_hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) +-include $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_LOG_TEST_SRC = \ - test/core/support/log_test.c \ +HPACK_PARSER_TEST_SRC = \ + test/core/transport/chttp2/hpack_parser_test.c \ -GPR_LOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC)))) +HPACK_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_log_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_parser_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_log_test: $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_log_test + $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/log_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_log_test: $(GPR_LOG_TEST_OBJS:.o=.dep) +deps_hpack_parser_test: $(HPACK_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_LOG_TEST_OBJS:.o=.dep) +-include $(HPACK_PARSER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_SLICE_BUFFER_TEST_SRC = \ - test/core/support/slice_buffer_test.c \ +HPACK_TABLE_TEST_SRC = \ + test/core/transport/chttp2/hpack_table_test.c \ -GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC)))) +HPACK_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_table_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test + $(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_table_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/slice_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_table_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) +deps_hpack_table_test: $(HPACK_TABLE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) +-include $(HPACK_TABLE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_SLICE_TEST_SRC = \ - test/core/support/slice_test.c \ +HTTP_PARSER_TEST_SRC = \ + test/core/http/parser_test.c \ -GPR_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC)))) +HTTP_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_slice_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_parser_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_parser_test: $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_test + $(Q) $(LD) $(LDFLAGS) $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_parser_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/slice_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_slice_test: $(GPR_SLICE_TEST_OBJS:.o=.dep) +deps_http_parser_test: $(HTTP_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SLICE_TEST_OBJS:.o=.dep) +-include $(HTTP_PARSER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_STACK_LOCKFREE_TEST_SRC = \ - test/core/support/stack_lockfree_test.c \ +HTTP_REQUEST_FUZZER_TEST_SRC = \ + test/core/http/request_fuzzer.c \ -GPR_STACK_LOCKFREE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STACK_LOCKFREE_TEST_SRC)))) +HTTP_REQUEST_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test + $(Q) $(LDXX) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/stack_lockfree_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/request_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) +deps_http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) +-include $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_STRING_TEST_SRC = \ - test/core/support/string_test.c \ +HTTP_RESPONSE_FUZZER_TEST_SRC = \ + test/core/http/response_fuzzer.c \ -GPR_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC)))) +HTTP_RESPONSE_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_string_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_string_test: $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_string_test + $(Q) $(LDXX) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/string_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/response_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_string_test: $(GPR_STRING_TEST_OBJS:.o=.dep) +deps_http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_STRING_TEST_OBJS:.o=.dep) +-include $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_SYNC_TEST_SRC = \ - test/core/support/sync_test.c \ +HTTPCLI_FORMAT_REQUEST_TEST_SRC = \ + test/core/http/format_request_test.c \ -GPR_SYNC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC)))) +HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_sync_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpcli_format_request_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_sync_test + $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_format_request_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/sync_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/format_request_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_sync_test: $(GPR_SYNC_TEST_OBJS:.o=.dep) +deps_httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SYNC_TEST_OBJS:.o=.dep) +-include $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_THD_TEST_SRC = \ - test/core/support/thd_test.c \ +HTTPCLI_TEST_SRC = \ + test/core/http/httpcli_test.c \ -GPR_THD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC)))) +HTTPCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_thd_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpcli_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_thd_test: $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpcli_test: $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_thd_test + $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/thd_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/httpcli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_thd_test: $(GPR_THD_TEST_OBJS:.o=.dep) +deps_httpcli_test: $(HTTPCLI_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_THD_TEST_OBJS:.o=.dep) +-include $(HTTPCLI_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_TIME_TEST_SRC = \ - test/core/support/time_test.c \ +HTTPSCLI_TEST_SRC = \ + test/core/http/httpscli_test.c \ -GPR_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC)))) +HTTPSCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPSCLI_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_time_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpscli_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_time_test: $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpscli_test: $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_time_test + $(Q) $(LD) $(LDFLAGS) $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpscli_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/time_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/httpscli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_time_test: $(GPR_TIME_TEST_OBJS:.o=.dep) +deps_httpscli_test: $(HTTPSCLI_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_TIME_TEST_OBJS:.o=.dep) +-include $(HTTPSCLI_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_TLS_TEST_SRC = \ - test/core/support/tls_test.c \ +INIT_TEST_SRC = \ + test/core/surface/init_test.c \ -GPR_TLS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TLS_TEST_SRC)))) +INIT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INIT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_tls_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/init_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_tls_test: $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/init_test: $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_tls_test + $(Q) $(LD) $(LDFLAGS) $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/init_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/tls_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/init_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_tls_test: $(GPR_TLS_TEST_OBJS:.o=.dep) +deps_init_test: $(INIT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_TLS_TEST_OBJS:.o=.dep) +-include $(INIT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_USEFUL_TEST_SRC = \ - test/core/support/useful_test.c \ +INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -GPR_USEFUL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC)))) +INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_useful_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_useful_test + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/useful_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_useful_test: $(GPR_USEFUL_TEST_OBJS:.o=.dep) +deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_USEFUL_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_AUTH_CONTEXT_TEST_SRC = \ - test/core/security/auth_context_test.c \ +INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -GRPC_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_AUTH_CONTEXT_TEST_SRC)))) +INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_auth_context_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_auth_context_test + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_B64_TEST_SRC = \ - test/core/security/b64_test.c \ +INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -GRPC_B64_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_B64_TEST_SRC)))) +INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_b64_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_b64_test: $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_b64_test + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/b64_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_b64_test: $(GRPC_B64_TEST_OBJS:.o=.dep) +deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_B64_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_BYTE_BUFFER_READER_TEST_SRC = \ - test/core/surface/byte_buffer_reader_test.c \ +INVALID_CALL_ARGUMENT_TEST_SRC = \ + test/core/end2end/invalid_call_argument_test.c \ -GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC)))) +INVALID_CALL_ARGUMENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INVALID_CALL_ARGUMENT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/invalid_call_argument_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test + $(Q) $(LD) $(LDFLAGS) $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/invalid_call_argument_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/byte_buffer_reader_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/invalid_call_argument_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) +deps_invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) +-include $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CHANNEL_ARGS_TEST_SRC = \ - test/core/channel/channel_args_test.c \ +JSON_FUZZER_TEST_SRC = \ + test/core/json/fuzzer.c \ -GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC)))) +JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_channel_args_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test + $(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/channel/channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +deps_json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +-include $(JSON_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CHANNEL_STACK_TEST_SRC = \ - test/core/channel/channel_stack_test.c \ +JSON_REWRITE_SRC = \ + test/core/json/json_rewrite.c \ -GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC)))) +JSON_REWRITE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_rewrite: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_rewrite: $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_test + $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite endif -$(OBJDIR)/$(CONFIG)/test/core/channel/channel_stack_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) +deps_json_rewrite: $(JSON_REWRITE_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) +-include $(JSON_REWRITE_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_COMPLETION_QUEUE_TEST_SRC = \ - test/core/surface/completion_queue_test.c \ +JSON_REWRITE_TEST_SRC = \ + test/core/json/json_rewrite_test.c \ -GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC)))) +JSON_REWRITE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_rewrite_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_rewrite_test: $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_test + $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/completion_queue_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) +deps_json_rewrite_test: $(JSON_REWRITE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) +-include $(JSON_REWRITE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CREATE_JWT_SRC = \ - test/core/security/create_jwt.c \ +JSON_STREAM_ERROR_TEST_SRC = \ + test/core/json/json_stream_error_test.c \ -GRPC_CREATE_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREATE_JWT_SRC)))) +JSON_STREAM_ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_STREAM_ERROR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_create_jwt: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_stream_error_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_create_jwt + $(Q) $(LD) $(LDFLAGS) $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_stream_error_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/create_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_stream_error_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS:.o=.dep) +deps_json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CREATE_JWT_OBJS:.o=.dep) +-include $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CREDENTIALS_TEST_SRC = \ - test/core/security/credentials_test.c \ +JSON_TEST_SRC = \ + test/core/json/json_test.c \ -GRPC_CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC)))) +JSON_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_credentials_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_test: $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_credentials_test + $(Q) $(LD) $(LDFLAGS) $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) +deps_json_test: $(JSON_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) +-include $(JSON_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_FETCH_OAUTH2_SRC = \ - test/core/security/fetch_oauth2.c \ +LAME_CLIENT_TEST_SRC = \ + test/core/surface/lame_client_test.c \ -GRPC_FETCH_OAUTH2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC)))) +LAME_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: openssl_dep_error +$(BINDIR)/$(CONFIG)/lame_client_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/lame_client_test: $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 + $(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lame_client_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/fetch_oauth2.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/lame_client_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) +deps_lame_client_test: $(LAME_CLIENT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) +-include $(LAME_CLIENT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \ - test/core/surface/invalid_channel_args_test.c \ +LB_POLICIES_TEST_SRC = \ + test/core/client_config/lb_policies_test.c \ -GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_INVALID_CHANNEL_ARGS_TEST_SRC)))) +LB_POLICIES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LB_POLICIES_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/lb_policies_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/lb_policies_test: $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test + $(Q) $(LD) $(LDFLAGS) $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lb_policies_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/invalid_channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/lb_policies_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +deps_lb_policies_test: $(LB_POLICIES_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +-include $(LB_POLICIES_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_JSON_TOKEN_TEST_SRC = \ - test/core/security/json_token_test.c \ +LOAD_FILE_TEST_SRC = \ + test/core/iomgr/load_file_test.c \ -GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC)))) +LOAD_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOAD_FILE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_json_token_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/load_file_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/load_file_test: $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_json_token_test + $(Q) $(LD) $(LDFLAGS) $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/load_file_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/json_token_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/load_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) +deps_load_file_test: $(LOAD_FILE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) +-include $(LOAD_FILE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_JWT_VERIFIER_TEST_SRC = \ - test/core/security/jwt_verifier_test.c \ +LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \ + test/core/network_benchmarks/low_level_ping_pong.c \ -GRPC_JWT_VERIFIER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JWT_VERIFIER_TEST_SRC)))) +LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test + $(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark endif -$(OBJDIR)/$(CONFIG)/test/core/security/jwt_verifier_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/network_benchmarks/low_level_ping_pong.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) +deps_low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) +-include $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \ - test/core/security/print_google_default_creds_token.c \ +MESSAGE_COMPRESS_TEST_SRC = \ + test/core/compression/message_compress_test.c \ -GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC)))) +MESSAGE_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: openssl_dep_error +$(BINDIR)/$(CONFIG)/message_compress_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token + $(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/message_compress_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/print_google_default_creds_token.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/compression/message_compress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) +deps_message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) +-include $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_SECURITY_CONNECTOR_TEST_SRC = \ - test/core/security/security_connector_test.c \ +MLOG_TEST_SRC = \ + test/core/census/mlog_test.c \ -GRPC_SECURITY_CONNECTOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_SECURITY_CONNECTOR_TEST_SRC)))) +MLOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MLOG_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_security_connector_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/mlog_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_security_connector_test + $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/security_connector_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) +deps_mlog_test: $(MLOG_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) +-include $(MLOG_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_VERIFY_JWT_SRC = \ - test/core/security/verify_jwt.c \ +MULTIPLE_SERVER_QUEUES_TEST_SRC = \ + test/core/end2end/multiple_server_queues_test.c \ -GRPC_VERIFY_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_VERIFY_JWT_SRC)))) +MULTIPLE_SERVER_QUEUES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MULTIPLE_SERVER_QUEUES_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_verify_jwt: openssl_dep_error +$(BINDIR)/$(CONFIG)/multiple_server_queues_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_verify_jwt + $(Q) $(LD) $(LDFLAGS) $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/multiple_server_queues_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/verify_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/multiple_server_queues_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS:.o=.dep) +deps_multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_VERIFY_JWT_OBJS:.o=.dep) +-include $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HPACK_PARSER_FUZZER_TEST_SRC = \ - test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ +MURMUR_HASH_TEST_SRC = \ + test/core/support/murmur_hash_test.c \ -HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC)))) +MURMUR_HASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/murmur_hash_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/murmur_hash_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/murmur_hash_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) +deps_murmur_hash_test: $(MURMUR_HASH_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) +-include $(MURMUR_HASH_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HPACK_PARSER_TEST_SRC = \ - test/core/transport/chttp2/hpack_parser_test.c \ +NANOPB_FUZZER_RESPONSE_TEST_SRC = \ + test/core/nanopb/fuzzer_response.c \ -HPACK_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC)))) +NANOPB_FUZZER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_test + $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_response.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_parser_test: $(HPACK_PARSER_TEST_OBJS:.o=.dep) +deps_nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_PARSER_TEST_OBJS:.o=.dep) +-include $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HPACK_TABLE_TEST_SRC = \ - test/core/transport/chttp2/hpack_table_test.c \ +NANOPB_FUZZER_SERVERLIST_TEST_SRC = \ + test/core/nanopb/fuzzer_serverlist.c \ -HPACK_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC)))) +NANOPB_FUZZER_SERVERLIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_table_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_table_test + $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_table_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_serverlist.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_table_test: $(HPACK_TABLE_TEST_OBJS:.o=.dep) +deps_nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_TABLE_TEST_OBJS:.o=.dep) +-include $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTP_PARSER_TEST_SRC = \ - test/core/http/parser_test.c \ +NO_SERVER_TEST_SRC = \ + test/core/end2end/no_server_test.c \ -HTTP_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_PARSER_TEST_SRC)))) +NO_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/no_server_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_parser_test: $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/no_server_test: $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_parser_test + $(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/no_server_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/no_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_parser_test: $(HTTP_PARSER_TEST_OBJS:.o=.dep) +deps_no_server_test: $(NO_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_PARSER_TEST_OBJS:.o=.dep) +-include $(NO_SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTP_REQUEST_FUZZER_TEST_SRC = \ - test/core/http/request_fuzzer.c \ +RESOLVE_ADDRESS_TEST_SRC = \ + test/core/iomgr/resolve_address_test.c \ -HTTP_REQUEST_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_SRC)))) +RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/resolve_address_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/request_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) +deps_resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) +-include $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTP_RESPONSE_FUZZER_TEST_SRC = \ - test/core/http/response_fuzzer.c \ +SECURE_CHANNEL_CREATE_TEST_SRC = \ + test/core/surface/secure_channel_create_test.c \ -HTTP_RESPONSE_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_SRC)))) +SECURE_CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_CHANNEL_CREATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_channel_create_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_channel_create_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/response_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/secure_channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) +deps_secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) +-include $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTPCLI_FORMAT_REQUEST_TEST_SRC = \ - test/core/http/format_request_test.c \ +SECURE_ENDPOINT_TEST_SRC = \ + test/core/security/secure_endpoint_test.c \ -HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC)))) +SECURE_ENDPOINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpcli_format_request_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_endpoint_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_format_request_test + $(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_endpoint_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/format_request_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/secure_endpoint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) +deps_secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) +-include $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTPCLI_TEST_SRC = \ - test/core/http/httpcli_test.c \ +SEQUENTIAL_CONNECTIVITY_TEST_SRC = \ + test/core/surface/sequential_connectivity_test.c \ -HTTPCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC)))) +SEQUENTIAL_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SEQUENTIAL_CONNECTIVITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpcli_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/sequential_connectivity_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpcli_test: $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_test + $(Q) $(LD) $(LDFLAGS) $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sequential_connectivity_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/httpcli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/sequential_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpcli_test: $(HTTPCLI_TEST_OBJS:.o=.dep) +deps_sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPCLI_TEST_OBJS:.o=.dep) +-include $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTPSCLI_TEST_SRC = \ - test/core/http/httpscli_test.c \ +SERVER_CHTTP2_TEST_SRC = \ + test/core/surface/server_chttp2_test.c \ -HTTPSCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPSCLI_TEST_SRC)))) +SERVER_CHTTP2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CHTTP2_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpscli_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_chttp2_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpscli_test: $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpscli_test + $(Q) $(LD) $(LDFLAGS) $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_chttp2_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/httpscli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/server_chttp2_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpscli_test: $(HTTPSCLI_TEST_OBJS:.o=.dep) +deps_server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPSCLI_TEST_OBJS:.o=.dep) +-include $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INIT_TEST_SRC = \ - test/core/surface/init_test.c \ +SERVER_FUZZER_SRC = \ + test/core/end2end/fuzzers/server_fuzzer.c \ -INIT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INIT_TEST_SRC)))) +SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/init_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_fuzzer: openssl_dep_error else -$(BINDIR)/$(CONFIG)/init_test: $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_fuzzer: $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/init_test + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/server_fuzzer endif -$(OBJDIR)/$(CONFIG)/test/core/surface/init_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/server_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_init_test: $(INIT_TEST_OBJS:.o=.dep) +deps_server_fuzzer: $(SERVER_FUZZER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INIT_TEST_OBJS:.o=.dep) +-include $(SERVER_FUZZER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +SERVER_TEST_SRC = \ + test/core/surface/server_test.c \ -INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC)))) +SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_test: $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test + $(Q) $(LD) $(LDFLAGS) $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) +deps_server_test: $(SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) +-include $(SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +SET_INITIAL_CONNECT_STRING_TEST_SRC = \ + test/core/client_config/set_initial_connect_string_test.c \ -INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC)))) +SET_INITIAL_CONNECT_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SET_INITIAL_CONNECT_STRING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test + $(Q) $(LD) $(LDFLAGS) $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/set_initial_connect_string_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/set_initial_connect_string_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) +deps_set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) +-include $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +SOCKADDR_RESOLVER_TEST_SRC = \ + test/core/client_config/resolvers/sockaddr_resolver_test.c \ -INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC)))) +SOCKADDR_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_RESOLVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test + $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_resolver_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/sockaddr_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) +deps_sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) +-include $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INVALID_CALL_ARGUMENT_TEST_SRC = \ - test/core/end2end/invalid_call_argument_test.c \ +SOCKADDR_UTILS_TEST_SRC = \ + test/core/iomgr/sockaddr_utils_test.c \ -INVALID_CALL_ARGUMENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INVALID_CALL_ARGUMENT_TEST_SRC)))) +SOCKADDR_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/invalid_call_argument_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/sockaddr_utils_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/invalid_call_argument_test + $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_utils_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/invalid_call_argument_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/sockaddr_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) +deps_sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) +-include $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_FUZZER_TEST_SRC = \ - test/core/json/fuzzer.c \ +SOCKET_UTILS_TEST_SRC = \ + test/core/iomgr/socket_utils_test.c \ -JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC)))) +SOCKET_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKET_UTILS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/socket_utils_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/socket_utils_test: $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/socket_utils_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/socket_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS:.o=.dep) +deps_socket_utils_test: $(SOCKET_UTILS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_FUZZER_TEST_OBJS:.o=.dep) +-include $(SOCKET_UTILS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_REWRITE_SRC = \ - test/core/json/json_rewrite.c \ +TCP_CLIENT_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_client_posix_test.c \ -JSON_REWRITE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_SRC)))) +TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_rewrite: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_client_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_rewrite: $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite + $(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_client_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_rewrite: $(JSON_REWRITE_OBJS:.o=.dep) +deps_tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_REWRITE_OBJS:.o=.dep) +-include $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_REWRITE_TEST_SRC = \ - test/core/json/json_rewrite_test.c \ +TCP_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_posix_test.c \ -JSON_REWRITE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_TEST_SRC)))) +TCP_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_rewrite_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_rewrite_test: $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite_test + $(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_rewrite_test: $(JSON_REWRITE_TEST_OBJS:.o=.dep) +deps_tcp_posix_test: $(TCP_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_REWRITE_TEST_OBJS:.o=.dep) +-include $(TCP_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_STREAM_ERROR_TEST_SRC = \ - test/core/json/json_stream_error_test.c \ +TCP_SERVER_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_server_posix_test.c \ -JSON_STREAM_ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_STREAM_ERROR_TEST_SRC)))) +TCP_SERVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_stream_error_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_server_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_stream_error_test + $(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_stream_error_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_server_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) +deps_tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) +-include $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_TEST_SRC = \ - test/core/json/json_test.c \ +TIME_AVERAGED_STATS_TEST_SRC = \ + test/core/iomgr/time_averaged_stats_test.c \ -JSON_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_TEST_SRC)))) +TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/time_averaged_stats_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_test: $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_test + $(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/time_averaged_stats_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/time_averaged_stats_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_test: $(JSON_TEST_OBJS:.o=.dep) +deps_time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_TEST_OBJS:.o=.dep) +-include $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LAME_CLIENT_TEST_SRC = \ - test/core/surface/lame_client_test.c \ +TIMEOUT_ENCODING_TEST_SRC = \ + test/core/transport/chttp2/timeout_encoding_test.c \ -LAME_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC)))) +TIMEOUT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/lame_client_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timeout_encoding_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/lame_client_test: $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lame_client_test + $(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timeout_encoding_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/lame_client_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/timeout_encoding_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_lame_client_test: $(LAME_CLIENT_TEST_OBJS:.o=.dep) +deps_timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LAME_CLIENT_TEST_OBJS:.o=.dep) +-include $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LB_POLICIES_TEST_SRC = \ - test/core/client_config/lb_policies_test.c \ +TIMER_HEAP_TEST_SRC = \ + test/core/iomgr/timer_heap_test.c \ -LB_POLICIES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LB_POLICIES_TEST_SRC)))) +TIMER_HEAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_HEAP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/lb_policies_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timer_heap_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/lb_policies_test: $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timer_heap_test: $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lb_policies_test + $(Q) $(LD) $(LDFLAGS) $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_heap_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/lb_policies_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_heap_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_lb_policies_test: $(LB_POLICIES_TEST_OBJS:.o=.dep) +deps_timer_heap_test: $(TIMER_HEAP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LB_POLICIES_TEST_OBJS:.o=.dep) +-include $(TIMER_HEAP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LOAD_FILE_TEST_SRC = \ - test/core/iomgr/load_file_test.c \ +TIMER_LIST_TEST_SRC = \ + test/core/iomgr/timer_list_test.c \ -LOAD_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOAD_FILE_TEST_SRC)))) +TIMER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_LIST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/load_file_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timer_list_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/load_file_test: $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timer_list_test: $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/load_file_test + $(Q) $(LD) $(LDFLAGS) $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_list_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/load_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_list_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_load_file_test: $(LOAD_FILE_TEST_OBJS:.o=.dep) +deps_timer_list_test: $(TIMER_LIST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LOAD_FILE_TEST_OBJS:.o=.dep) +-include $(TIMER_LIST_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \ - test/core/network_benchmarks/low_level_ping_pong.c \ +TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \ + test/core/transport/connectivity_state_test.c \ -LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC)))) +TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_CONNECTIVITY_STATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_connectivity_state_test endif -$(OBJDIR)/$(CONFIG)/test/core/network_benchmarks/low_level_ping_pong.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/connectivity_state_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +deps_transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +-include $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MESSAGE_COMPRESS_TEST_SRC = \ - test/core/compression/message_compress_test.c \ +TRANSPORT_METADATA_TEST_SRC = \ + test/core/transport/metadata_test.c \ -MESSAGE_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC)))) +TRANSPORT_METADATA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/message_compress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_metadata_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/message_compress_test + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_metadata_test endif -$(OBJDIR)/$(CONFIG)/test/core/compression/message_compress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/metadata_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +deps_transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +-include $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MLOG_TEST_SRC = \ - test/core/census/mlog_test.c \ +TRANSPORT_SECURITY_TEST_SRC = \ + test/core/tsi/transport_security_test.c \ -MLOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MLOG_TEST_SRC)))) +TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_SECURITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/mlog_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_security_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_security_test endif -$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/tsi/transport_security_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_mlog_test: $(MLOG_TEST_OBJS:.o=.dep) +deps_transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MLOG_TEST_OBJS:.o=.dep) +-include $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MULTIPLE_SERVER_QUEUES_TEST_SRC = \ - test/core/end2end/multiple_server_queues_test.c \ +UDP_SERVER_TEST_SRC = \ + test/core/iomgr/udp_server_test.c \ -MULTIPLE_SERVER_QUEUES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MULTIPLE_SERVER_QUEUES_TEST_SRC)))) +UDP_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UDP_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/multiple_server_queues_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/udp_server_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/udp_server_test: $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/multiple_server_queues_test + $(Q) $(LD) $(LDFLAGS) $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/udp_server_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/multiple_server_queues_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/udp_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +deps_udp_server_test: $(UDP_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +-include $(UDP_SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MURMUR_HASH_TEST_SRC = \ - test/core/support/murmur_hash_test.c \ +URI_FUZZER_TEST_SRC = \ + test/core/client_config/uri_fuzzer_test.c \ -MURMUR_HASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC)))) +URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/murmur_hash_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/uri_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/murmur_hash_test + $(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/murmur_hash_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_murmur_hash_test: $(MURMUR_HASH_TEST_OBJS:.o=.dep) +deps_uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MURMUR_HASH_TEST_OBJS:.o=.dep) +-include $(URI_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -NANOPB_FUZZER_RESPONSE_TEST_SRC = \ - test/core/nanopb/fuzzer_response.c \ +URI_PARSER_TEST_SRC = \ + test/core/client_config/uri_parser_test.c \ -NANOPB_FUZZER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_SRC)))) +URI_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/uri_parser_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/uri_parser_test: $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test + $(Q) $(LD) $(LDFLAGS) $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_parser_test endif -$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_response.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) +deps_uri_parser_test: $(URI_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) +-include $(URI_PARSER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -NANOPB_FUZZER_SERVERLIST_TEST_SRC = \ - test/core/nanopb/fuzzer_serverlist.c \ +ALARM_CPP_TEST_SRC = \ + test/cpp/common/alarm_cpp_test.cc \ -NANOPB_FUZZER_SERVERLIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_SRC)))) +ALARM_CPP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_CPP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/alarm_cpp_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/alarm_cpp_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/alarm_cpp_test: $(PROTOBUF_DEP) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test + $(Q) $(LDXX) $(LDFLAGS) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alarm_cpp_test endif -$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_serverlist.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/alarm_cpp_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_alarm_cpp_test: $(ALARM_CPP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) +-include $(ALARM_CPP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -NO_SERVER_TEST_SRC = \ - test/core/end2end/no_server_test.c \ +ASYNC_END2END_TEST_SRC = \ + test/cpp/end2end/async_end2end_test.cc \ -NO_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC)))) +ASYNC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ASYNC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/no_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/async_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/no_server_test: $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/async_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/async_end2end_test: $(PROTOBUF_DEP) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/no_server_test + $(Q) $(LDXX) $(LDFLAGS) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/async_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/no_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_no_server_test: $(NO_SERVER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/async_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_async_end2end_test: $(ASYNC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NO_SERVER_TEST_OBJS:.o=.dep) +-include $(ASYNC_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -RESOLVE_ADDRESS_TEST_SRC = \ - test/core/iomgr/resolve_address_test.c \ +AUTH_PROPERTY_ITERATOR_TEST_SRC = \ + test/cpp/common/auth_property_iterator_test.cc \ -RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC)))) +AUTH_PROPERTY_ITERATOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(AUTH_PROPERTY_ITERATOR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/resolve_address_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: $(PROTOBUF_DEP) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_test + $(Q) $(LDXX) $(LDFLAGS) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/auth_property_iterator_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/auth_property_iterator_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_auth_property_iterator_test: $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +-include $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SECURE_CHANNEL_CREATE_TEST_SRC = \ - test/core/surface/secure_channel_create_test.c \ +CHANNEL_ARGUMENTS_TEST_SRC = \ + test/cpp/common/channel_arguments_test.cc \ -SECURE_CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_CHANNEL_CREATE_TEST_SRC)))) +CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_channel_create_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/channel_arguments_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/channel_arguments_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/channel_arguments_test: $(PROTOBUF_DEP) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_channel_create_test + $(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_arguments_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/secure_channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +-include $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SECURE_ENDPOINT_TEST_SRC = \ - test/core/security/secure_endpoint_test.c \ +CLI_CALL_TEST_SRC = \ + test/cpp/util/cli_call_test.cc \ -SECURE_ENDPOINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC)))) +CLI_CALL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLI_CALL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_endpoint_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cli_call_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cli_call_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cli_call_test: $(PROTOBUF_DEP) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_endpoint_test + $(Q) $(LDXX) $(LDFLAGS) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cli_call_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/secure_endpoint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cli_call_test: $(CLI_CALL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) +-include $(CLI_CALL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SEQUENTIAL_CONNECTIVITY_TEST_SRC = \ - test/core/surface/sequential_connectivity_test.c \ +CLIENT_CRASH_TEST_SRC = \ + test/cpp/end2end/client_crash_test.cc \ -SEQUENTIAL_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SEQUENTIAL_CONNECTIVITY_TEST_SRC)))) +CLIENT_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sequential_connectivity_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/client_crash_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/client_crash_test: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sequential_connectivity_test + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/sequential_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_client_crash_test: $(CLIENT_CRASH_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) +-include $(CLIENT_CRASH_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_CHTTP2_TEST_SRC = \ - test/core/surface/server_chttp2_test.c \ +CLIENT_CRASH_TEST_SERVER_SRC = \ + test/cpp/end2end/client_crash_test_server.cc \ -SERVER_CHTTP2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CHTTP2_TEST_SRC)))) +CLIENT_CRASH_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_chttp2_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test_server: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/client_crash_test_server: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/client_crash_test_server: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_chttp2_test + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test_server endif -$(OBJDIR)/$(CONFIG)/test/core/surface/server_chttp2_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_client_crash_test_server: $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) +-include $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_FUZZER_SRC = \ - test/core/end2end/fuzzers/server_fuzzer.c \ +CODEGEN_TEST_FULL_SRC = \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + test/cpp/codegen/codegen_test_full.cc \ -SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_SRC)))) +CODEGEN_TEST_FULL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_FULL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_fuzzer: openssl_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_full: openssl_dep_error + +else + + + + +ifeq ($(NO_PROTOBUF),true) -else +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/codegen_test_full: protobuf_dep_error +else -$(BINDIR)/$(CONFIG)/server_fuzzer: $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/codegen_test_full: $(PROTOBUF_DEP) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/server_fuzzer + $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_full endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/server_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_server_fuzzer: $(SERVER_FUZZER_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_codegen_test_full: $(CODEGEN_TEST_FULL_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_FUZZER_OBJS:.o=.dep) +-include $(CODEGEN_TEST_FULL_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -SERVER_TEST_SRC = \ - test/core/surface/server_test.c \ +CODEGEN_TEST_MINIMAL_SRC = \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + test/cpp/codegen/codegen_test_minimal.cc \ + src/cpp/codegen/codegen_init.cc \ -SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_TEST_SRC)))) +CODEGEN_TEST_MINIMAL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_MINIMAL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_minimal: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_test: $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/surface/server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_test: $(SERVER_TEST_OBJS:.o=.dep) +ifeq ($(NO_PROTOBUF),true) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(SERVER_TEST_OBJS:.o=.dep) -endif -endif +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -# Force compilation of proto files before building code that could potentially depend on them +$(BINDIR)/$(CONFIG)/codegen_test_minimal: protobuf_dep_error +else -SET_INITIAL_CONNECT_STRING_TEST_SRC = \ - test/core/client_config/set_initial_connect_string_test.c \ +$(BINDIR)/$(CONFIG)/codegen_test_minimal: $(PROTOBUF_DEP) $(CODEGEN_TEST_MINIMAL_OBJS) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_MINIMAL_OBJS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_minimal -SET_INITIAL_CONNECT_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SET_INITIAL_CONNECT_STRING_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +endif -# You can't build secure targets if you don't have OpenSSL. +endif -$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: openssl_dep_error +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: -else +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: -$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/set_initial_connect_string_test +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: -endif +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: -$(OBJDIR)/$(CONFIG)/test/core/client_config/set_initial_connect_string_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: -deps_set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) +deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) +-include $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -SOCKADDR_RESOLVER_TEST_SRC = \ - test/core/client_config/resolvers/sockaddr_resolver_test.c \ +CREDENTIALS_TEST_SRC = \ + test/cpp/client/credentials_test.cc \ -SOCKADDR_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_RESOLVER_TEST_SRC)))) +CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CREDENTIALS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/credentials_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/credentials_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/credentials_test: $(PROTOBUF_DEP) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_resolver_test + $(Q) $(LDXX) $(LDFLAGS) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/credentials_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/sockaddr_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/client/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_credentials_test: $(CREDENTIALS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) +-include $(CREDENTIALS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SOCKADDR_UTILS_TEST_SRC = \ - test/core/iomgr/sockaddr_utils_test.c \ +CXX_BYTE_BUFFER_TEST_SRC = \ + test/cpp/util/byte_buffer_test.cc \ -SOCKADDR_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC)))) +CXX_BYTE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_BYTE_BUFFER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sockaddr_utils_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: $(PROTOBUF_DEP) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_utils_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/sockaddr_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cxx_byte_buffer_test: $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) +-include $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SOCKET_UTILS_TEST_SRC = \ - test/core/iomgr/socket_utils_test.c \ +CXX_SLICE_TEST_SRC = \ + test/cpp/util/slice_test.cc \ -SOCKET_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKET_UTILS_TEST_SRC)))) +CXX_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_SLICE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/socket_utils_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_slice_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/socket_utils_test: $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_slice_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_slice_test: $(PROTOBUF_DEP) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/socket_utils_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_slice_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/socket_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_socket_utils_test: $(SOCKET_UTILS_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/slice_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cxx_slice_test: $(CXX_SLICE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKET_UTILS_TEST_OBJS:.o=.dep) +-include $(CXX_SLICE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TCP_CLIENT_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_client_posix_test.c \ +CXX_STRING_REF_TEST_SRC = \ + test/cpp/util/string_ref_test.cc \ -TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC)))) +CXX_STRING_REF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_STRING_REF_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_client_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: $(PROTOBUF_DEP) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_posix_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_client_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a + +deps_cxx_string_ref_test: $(CXX_STRING_REF_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) +-include $(CXX_STRING_REF_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TCP_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_posix_test.c \ +CXX_TIME_TEST_SRC = \ + test/cpp/util/time_test.cc \ -TCP_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC)))) +CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_posix_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_tcp_posix_test: $(TCP_POSIX_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_POSIX_TEST_OBJS:.o=.dep) +-include $(CXX_TIME_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TCP_SERVER_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_server_posix_test.c \ +END2END_TEST_SRC = \ + test/cpp/end2end/end2end_test.cc \ -TCP_SERVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC)))) +END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_server_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/end2end_test: $(PROTOBUF_DEP) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_posix_test + $(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_server_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_end2end_test: $(END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) +-include $(END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TIME_AVERAGED_STATS_TEST_SRC = \ - test/core/iomgr/time_averaged_stats_test.c \ +GENERIC_END2END_TEST_SRC = \ + test/cpp/end2end/generic_end2end_test.cc \ -TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC)))) +GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GENERIC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/time_averaged_stats_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/generic_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/generic_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/generic_end2end_test: $(PROTOBUF_DEP) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/time_averaged_stats_test + $(Q) $(LDXX) $(LDFLAGS) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/time_averaged_stats_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_generic_end2end_test: $(GENERIC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) +-include $(GENERIC_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TIMEOUT_ENCODING_TEST_SRC = \ - test/core/transport/chttp2/timeout_encoding_test.c \ +GOLDEN_FILE_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ + test/cpp/codegen/golden_file_test.cc \ -TIMEOUT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC)))) +GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timeout_encoding_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/golden_file_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/golden_file_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timeout_encoding_test + $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/timeout_encoding_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) +-include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc -TIMER_HEAP_TEST_SRC = \ - test/core/iomgr/timer_heap_test.c \ +GRPC_C_END2END_TEST_SRC = \ + test/c/end2end/end2end_test.cc \ -TIMER_HEAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_HEAP_TEST_SRC)))) +GRPC_C_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timer_heap_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timer_heap_test: $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_heap_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_heap_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_timer_heap_test: $(TIMER_HEAP_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_grpc_c_end2end_test: $(GRPC_C_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMER_HEAP_TEST_OBJS:.o=.dep) +-include $(GRPC_C_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TIMER_LIST_TEST_SRC = \ - test/core/iomgr/timer_list_test.c \ +GRPC_C_GENERIC_END2END_TEST_SRC = \ + test/c/end2end/generic_end2end_test.cc \ + test/c/end2end/id_serialization.cc \ -TIMER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_LIST_TEST_SRC)))) +GRPC_C_GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_GENERIC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timer_list_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timer_list_test: $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_list_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_list_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_timer_list_test: $(TIMER_LIST_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/c/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/c/end2end/id_serialization.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_grpc_c_generic_end2end_test: $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMER_LIST_TEST_OBJS:.o=.dep) +-include $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \ - test/core/transport/connectivity_state_test.c \ +GRPC_C_PLUGIN_SRC = \ + src/compiler/c_plugin.cc \ -TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_CONNECTIVITY_STATE_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_c_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_c_plugin: $(PROTOBUF_DEP) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_connectivity_state_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_c_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/transport/connectivity_state_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) +deps_grpc_c_plugin: $(GRPC_C_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_C_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -TRANSPORT_METADATA_TEST_SRC = \ - test/core/transport/metadata_test.c \ +GRPC_CLI_SRC = \ + test/cpp/util/grpc_cli.cc \ -TRANSPORT_METADATA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC)))) +GRPC_CLI_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CLI_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_metadata_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_cli: openssl_dep_error else -$(BINDIR)/$(CONFIG)/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_cli: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_metadata_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli endif -$(OBJDIR)/$(CONFIG)/test/core/transport/metadata_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) +-include $(GRPC_CLI_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TRANSPORT_SECURITY_TEST_SRC = \ - test/core/tsi/transport_security_test.c \ +GRPC_CPP_PLUGIN_SRC = \ + src/compiler/cpp_plugin.cc \ -TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_SECURITY_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_CPP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CPP_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_security_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: $(PROTOBUF_DEP) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_security_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/tsi/transport_security_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/cpp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) +deps_grpc_cpp_plugin: $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -UDP_SERVER_TEST_SRC = \ - test/core/iomgr/udp_server_test.c \ +GRPC_CSHARP_PLUGIN_SRC = \ + src/compiler/csharp_plugin.cc \ -UDP_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UDP_SERVER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_CSHARP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CSHARP_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/udp_server_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/udp_server_test: $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: $(PROTOBUF_DEP) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/udp_server_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/udp_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/csharp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_udp_server_test: $(UDP_SERVER_TEST_OBJS:.o=.dep) +deps_grpc_csharp_plugin: $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(UDP_SERVER_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) endif -# Force compilation of proto files before building code that could potentially depend on them +# Force compilation of proto files before building code that could potentially depend on them + + +GRPC_NODE_PLUGIN_SRC = \ + src/compiler/node_plugin.cc \ + +GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) -URI_FUZZER_TEST_SRC = \ - test/core/client_config/uri_fuzzer_test.c \ -URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/uri_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error else - - -$(BINDIR)/$(CONFIG)/uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS:.o=.dep) +deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(URI_FUZZER_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -URI_PARSER_TEST_SRC = \ - test/core/client_config/uri_parser_test.c \ +GRPC_OBJECTIVE_C_PLUGIN_SRC = \ + src/compiler/objective_c_plugin.cc \ -URI_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_PARSER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_OBJECTIVE_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_OBJECTIVE_C_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/uri_parser_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: protobuf_dep_error +else -$(BINDIR)/$(CONFIG)/uri_parser_test: $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: $(PROTOBUF_DEP) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_parser_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/objective_c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_uri_parser_test: $(URI_PARSER_TEST_OBJS:.o=.dep) +deps_grpc_objective_c_plugin: $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(URI_PARSER_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -ALARM_CPP_TEST_SRC = \ - test/cpp/common/alarm_cpp_test.cc \ - -ALARM_CPP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_CPP_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/alarm_cpp_test: openssl_dep_error - -else +GRPC_PYTHON_PLUGIN_SRC = \ + src/compiler/python_plugin.cc \ +GRPC_PYTHON_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PYTHON_PLUGIN_SRC)))) @@ -9117,44 +12131,32 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/alarm_cpp_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_python_plugin: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/alarm_cpp_test: $(PROTOBUF_DEP) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_python_plugin: $(PROTOBUF_DEP) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alarm_cpp_test - -endif + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/alarm_cpp_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/python_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_alarm_cpp_test: $(ALARM_CPP_TEST_OBJS:.o=.dep) +deps_grpc_python_plugin: $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALARM_CPP_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -ASYNC_END2END_TEST_SRC = \ - test/cpp/end2end/async_end2end_test.cc \ - -ASYNC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ASYNC_END2END_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/async_end2end_test: openssl_dep_error - -else +GRPC_RUBY_PLUGIN_SRC = \ + src/compiler/ruby_plugin.cc \ +GRPC_RUBY_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_RUBY_PLUGIN_SRC)))) @@ -9162,41 +12164,38 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/async_end2end_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/async_end2end_test: $(PROTOBUF_DEP) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: $(PROTOBUF_DEP) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/async_end2end_test - -endif + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/async_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/ruby_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_async_end2end_test: $(ASYNC_END2END_TEST_OBJS:.o=.dep) +deps_grpc_ruby_plugin: $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ASYNC_END2END_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -AUTH_PROPERTY_ITERATOR_TEST_SRC = \ - test/cpp/common/auth_property_iterator_test.cc \ +GRPCLB_API_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ + test/cpp/grpclb/grpclb_api_test.cc \ -AUTH_PROPERTY_ITERATOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(AUTH_PROPERTY_ITERATOR_TEST_SRC)))) +GRPCLB_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_API_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpclb_api_test: openssl_dep_error else @@ -9207,41 +12206,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/grpclb_api_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: $(PROTOBUF_DEP) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpclb_api_test: $(PROTOBUF_DEP) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/auth_property_iterator_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_api_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/auth_property_iterator_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_auth_property_iterator_test: $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_grpclb_api_test: $(GRPCLB_API_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +-include $(GRPCLB_API_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -CHANNEL_ARGUMENTS_TEST_SRC = \ - test/cpp/common/channel_arguments_test.cc \ +HYBRID_END2END_TEST_SRC = \ + test/cpp/end2end/hybrid_end2end_test.cc \ -CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC)))) +HYBRID_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HYBRID_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/channel_arguments_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: openssl_dep_error else @@ -9252,41 +12254,37 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/channel_arguments_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/channel_arguments_test: $(PROTOBUF_DEP) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: $(PROTOBUF_DEP) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_arguments_test + $(Q) $(LDXX) $(LDFLAGS) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/hybrid_end2end_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/hybrid_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) +deps_hybrid_end2end_test: $(HYBRID_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) +-include $(HYBRID_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CLI_CALL_TEST_SRC = \ - test/cpp/util/cli_call_test.cc \ - -CLI_CALL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLI_CALL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cli_call_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_client: openssl_dep_error else @@ -9297,41 +12295,29 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/cli_call_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/interop_client: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/cli_call_test: $(PROTOBUF_DEP) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/interop_client: $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cli_call_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_client endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_cli_call_test: $(CLI_CALL_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CLI_CALL_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -CLIENT_CRASH_TEST_SRC = \ - test/cpp/end2end/client_crash_test.cc \ - -CLIENT_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_crash_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_server: openssl_dep_error else @@ -9342,41 +12328,33 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/client_crash_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/interop_server: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/client_crash_test: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_client_crash_test: $(CLIENT_CRASH_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(CLIENT_CRASH_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -CLIENT_CRASH_TEST_SERVER_SRC = \ - test/cpp/end2end/client_crash_test_server.cc \ +INTEROP_TEST_SRC = \ + test/cpp/interop/interop_test.cc \ -CLIENT_CRASH_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SERVER_SRC)))) +INTEROP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTEROP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_crash_test_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_test: openssl_dep_error else @@ -9387,46 +12365,41 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/client_crash_test_server: protobuf_dep_error +$(BINDIR)/$(CONFIG)/interop_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/client_crash_test_server: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/interop_test: $(PROTOBUF_DEP) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test_server + $(Q) $(LDXX) $(LDFLAGS) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_client_crash_test_server: $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +deps_interop_test: $(INTEROP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +-include $(INTEROP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CODEGEN_TEST_FULL_SRC = \ - $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ - test/cpp/codegen/codegen_test_full.cc \ +JSON_RUN_LOCALHOST_SRC = \ + test/cpp/qps/json_run_localhost.cc \ -CODEGEN_TEST_FULL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_FULL_SRC)))) +JSON_RUN_LOCALHOST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_RUN_LOCALHOST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/codegen_test_full: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_run_localhost: openssl_dep_error else @@ -9437,58 +12410,42 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/codegen_test_full: protobuf_dep_error +$(BINDIR)/$(CONFIG)/json_run_localhost: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/codegen_test_full: $(PROTOBUF_DEP) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_run_localhost: $(PROTOBUF_DEP) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_full + $(Q) $(LDXX) $(LDFLAGS) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/json_run_localhost endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/qps/json_run_localhost.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_codegen_test_full: $(CODEGEN_TEST_FULL_OBJS:.o=.dep) +deps_json_run_localhost: $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CODEGEN_TEST_FULL_OBJS:.o=.dep) +-include $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -CODEGEN_TEST_MINIMAL_SRC = \ - $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ - test/cpp/codegen/codegen_test_minimal.cc \ - src/cpp/codegen/codegen_init.cc \ +METRICS_CLIENT_SRC = \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ + test/cpp/interop/metrics_client.cc \ -CODEGEN_TEST_MINIMAL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_MINIMAL_SRC)))) +METRICS_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(METRICS_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/codegen_test_minimal: openssl_dep_error +$(BINDIR)/$(CONFIG)/metrics_client: openssl_dep_error else @@ -9499,55 +12456,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/codegen_test_minimal: protobuf_dep_error +$(BINDIR)/$(CONFIG)/metrics_client: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/codegen_test_minimal: $(PROTOBUF_DEP) $(CODEGEN_TEST_MINIMAL_OBJS) +$(BINDIR)/$(CONFIG)/metrics_client: $(PROTOBUF_DEP) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_MINIMAL_OBJS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_minimal + $(Q) $(LDXX) $(LDFLAGS) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/metrics_client endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: - -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: +$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) +deps_metrics_client: $(METRICS_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) +-include $(METRICS_CLIENT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc -CREDENTIALS_TEST_SRC = \ - test/cpp/client/credentials_test.cc \ +MOCK_TEST_SRC = \ + test/cpp/end2end/mock_test.cc \ -CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CREDENTIALS_TEST_SRC)))) +MOCK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MOCK_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/credentials_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/mock_test: openssl_dep_error else @@ -9558,41 +12504,42 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/credentials_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/mock_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/credentials_test: $(PROTOBUF_DEP) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/mock_test: $(PROTOBUF_DEP) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/credentials_test + $(Q) $(LDXX) $(LDFLAGS) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/mock_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/client/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/mock_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_credentials_test: $(CREDENTIALS_TEST_OBJS:.o=.dep) +deps_mock_test: $(MOCK_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CREDENTIALS_TEST_OBJS:.o=.dep) +-include $(MOCK_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_BYTE_BUFFER_TEST_SRC = \ - test/cpp/util/byte_buffer_test.cc \ +PROTO_SERVER_REFLECTION_TEST_SRC = \ + test/cpp/end2end/proto_server_reflection_test.cc \ + test/cpp/util/proto_reflection_descriptor_database.cc \ -CXX_BYTE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_BYTE_BUFFER_TEST_SRC)))) +PROTO_SERVER_REFLECTION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PROTO_SERVER_REFLECTION_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: openssl_dep_error else @@ -9603,41 +12550,43 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: $(PROTOBUF_DEP) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test + $(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_byte_buffer_test: $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_proto_server_reflection_test: $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) +-include $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_SLICE_TEST_SRC = \ - test/cpp/util/slice_test.cc \ +QPS_INTERARRIVAL_TEST_SRC = \ + test/cpp/qps/qps_interarrival_test.cc \ -CXX_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_SLICE_TEST_SRC)))) +QPS_INTERARRIVAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_INTERARRIVAL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_slice_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_interarrival_test: openssl_dep_error else @@ -9648,41 +12597,41 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/cxx_slice_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_interarrival_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/cxx_slice_test: $(PROTOBUF_DEP) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/qps_interarrival_test: $(PROTOBUF_DEP) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_slice_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_interarrival_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/slice_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_interarrival_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_slice_test: $(CXX_SLICE_TEST_OBJS:.o=.dep) +deps_qps_interarrival_test: $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_SLICE_TEST_OBJS:.o=.dep) +-include $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_STRING_REF_TEST_SRC = \ - test/cpp/util/string_ref_test.cc \ +QPS_JSON_DRIVER_SRC = \ + test/cpp/qps/qps_json_driver.cc \ -CXX_STRING_REF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_STRING_REF_TEST_SRC)))) +QPS_JSON_DRIVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_JSON_DRIVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_json_driver: openssl_dep_error else @@ -9693,41 +12642,41 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_json_driver: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: $(PROTOBUF_DEP) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(BINDIR)/$(CONFIG)/qps_json_driver: $(PROTOBUF_DEP) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_json_driver endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_json_driver.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_cxx_string_ref_test: $(CXX_STRING_REF_TEST_OBJS:.o=.dep) +deps_qps_json_driver: $(QPS_JSON_DRIVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_STRING_REF_TEST_OBJS:.o=.dep) +-include $(QPS_JSON_DRIVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_TIME_TEST_SRC = \ - test/cpp/util/time_test.cc \ +QPS_OPENLOOP_TEST_SRC = \ + test/cpp/qps/qps_openloop_test.cc \ -CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC)))) +QPS_OPENLOOP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_OPENLOOP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_openloop_test: openssl_dep_error else @@ -9738,41 +12687,41 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_openloop_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/qps_openloop_test: $(PROTOBUF_DEP) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_openloop_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_openloop_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep) +deps_qps_openloop_test: $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_TIME_TEST_OBJS:.o=.dep) +-include $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -END2END_TEST_SRC = \ - test/cpp/end2end/end2end_test.cc \ +QPS_WORKER_SRC = \ + test/cpp/qps/worker.cc \ -END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(END2END_TEST_SRC)))) +QPS_WORKER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_WORKER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_worker: openssl_dep_error else @@ -9783,41 +12732,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/end2end_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/qps_worker: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/end2end_test: $(PROTOBUF_DEP) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/qps_worker: $(PROTOBUF_DEP) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/end2end_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_worker endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/qps/worker.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_end2end_test: $(END2END_TEST_OBJS:.o=.dep) +deps_qps_worker: $(QPS_WORKER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(END2END_TEST_OBJS:.o=.dep) +-include $(QPS_WORKER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GENERIC_END2END_TEST_SRC = \ - test/cpp/end2end/generic_end2end_test.cc \ +RECONNECT_INTEROP_CLIENT_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/reconnect_interop_client.cc \ -GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GENERIC_END2END_TEST_SRC)))) +RECONNECT_INTEROP_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/generic_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_client: openssl_dep_error else @@ -9828,42 +12780,51 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/generic_end2end_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_client: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/generic_end2end_test: $(PROTOBUF_DEP) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/reconnect_interop_client: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_end2end_test + $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_client endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_generic_end2end_test: $(GENERIC_END2END_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_reconnect_interop_client: $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GENERIC_END2END_TEST_OBJS:.o=.dep) +-include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -GOLDEN_FILE_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ - test/cpp/codegen/golden_file_test.cc \ +RECONNECT_INTEROP_SERVER_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/reconnect_interop_server.cc \ -GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) +RECONNECT_INTEROP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/golden_file_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_server: openssl_dep_error else @@ -9874,44 +12835,48 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/golden_file_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_server: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/reconnect_interop_server: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test + $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_server endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_reconnect_interop_server: $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +-include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -GRPC_C_END2END_TEST_SRC = \ - test/c/end2end/end2end_test.cc \ +SECURE_AUTH_CONTEXT_TEST_SRC = \ + test/cpp/common/secure_auth_context_test.cc \ -GRPC_C_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_TEST_SRC)))) +SECURE_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_AUTH_CONTEXT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_auth_context_test: openssl_dep_error else @@ -9922,42 +12887,41 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/secure_auth_context_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/secure_auth_context_test: $(PROTOBUF_DEP) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end_test + $(Q) $(LDXX) $(LDFLAGS) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_auth_context_test endif endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/common/secure_auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_c_end2end_test: $(GRPC_C_END2END_TEST_OBJS:.o=.dep) +deps_secure_auth_context_test: $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_END2END_TEST_OBJS:.o=.dep) +-include $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_C_GENERIC_END2END_TEST_SRC = \ - test/c/end2end/generic_end2end_test.cc \ - test/c/end2end/id_serialization.cc \ +SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ + test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ -GRPC_C_GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_GENERIC_END2END_TEST_SRC)))) +SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_SYNC_UNARY_PING_PONG_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: openssl_dep_error else @@ -9968,38 +12932,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: $(PROTOBUF_DEP) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test + $(Q) $(LDXX) $(LDFLAGS) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test endif endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/c/end2end/id_serialization.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/cpp/qps/secure_sync_unary_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_c_generic_end2end_test: $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) +deps_secure_sync_unary_ping_pong_test: $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) +-include $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_C_PLUGIN_SRC = \ - src/compiler/c_plugin.cc \ +SERVER_BUILDER_PLUGIN_TEST_SRC = \ + test/cpp/end2end/server_builder_plugin_test.cc \ + +SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error + +else -GRPC_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_PLUGIN_SRC)))) @@ -10007,37 +12977,41 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_c_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_c_plugin: $(PROTOBUF_DEP) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_c_plugin + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_c_plugin: $(GRPC_C_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_PLUGIN_OBJS:.o=.dep) +-include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CLI_SRC = \ - test/cpp/util/grpc_cli.cc \ +SERVER_CRASH_TEST_SRC = \ + test/cpp/end2end/server_crash_test.cc \ -GRPC_CLI_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CLI_SRC)))) +SERVER_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_cli: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test: openssl_dep_error else @@ -10048,36 +13022,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_cli: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/server_crash_test: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep) +deps_server_crash_test: $(SERVER_CRASH_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CLI_OBJS:.o=.dep) +-include $(SERVER_CRASH_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CPP_PLUGIN_SRC = \ - src/compiler/cpp_plugin.cc \ +SERVER_CRASH_TEST_CLIENT_SRC = \ + test/cpp/end2end/server_crash_test_client.cc \ + +SERVER_CRASH_TEST_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_CLIENT_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/server_crash_test_client: openssl_dep_error + +else -GRPC_CPP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CPP_PLUGIN_SRC)))) @@ -10085,32 +13067,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test_client: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: $(PROTOBUF_DEP) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/server_crash_test_client: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test_client endif -$(OBJDIR)/$(CONFIG)/src/compiler/cpp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_cpp_plugin: $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_server_crash_test_client: $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) +-include $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CSHARP_PLUGIN_SRC = \ - src/compiler/csharp_plugin.cc \ +SHUTDOWN_TEST_SRC = \ + test/cpp/end2end/shutdown_test.cc \ + +SHUTDOWN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SHUTDOWN_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/shutdown_test: openssl_dep_error + +else -GRPC_CSHARP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CSHARP_PLUGIN_SRC)))) @@ -10118,32 +13112,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/shutdown_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: $(PROTOBUF_DEP) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/shutdown_test: $(PROTOBUF_DEP) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin + $(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/csharp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_csharp_plugin: $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/shutdown_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_shutdown_test: $(SHUTDOWN_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) +-include $(SHUTDOWN_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_NODE_PLUGIN_SRC = \ - src/compiler/node_plugin.cc \ +STATUS_TEST_SRC = \ + test/cpp/util/status_test.cc \ + +STATUS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/status_test: openssl_dep_error + +else -GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) @@ -10151,32 +13157,44 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/status_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/status_test: $(PROTOBUF_DEP) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin + $(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/status_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_status_test: $(STATUS_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +-include $(STATUS_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_OBJECTIVE_C_PLUGIN_SRC = \ - src/compiler/objective_c_plugin.cc \ +STREAMING_THROUGHPUT_TEST_SRC = \ + test/cpp/end2end/streaming_throughput_test.cc \ + +STREAMING_THROUGHPUT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAMING_THROUGHPUT_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/streaming_throughput_test: openssl_dep_error + +else -GRPC_OBJECTIVE_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_OBJECTIVE_C_PLUGIN_SRC)))) @@ -10184,32 +13202,51 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/streaming_throughput_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: $(PROTOBUF_DEP) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/streaming_throughput_test: $(PROTOBUF_DEP) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin + $(Q) $(LDXX) $(LDFLAGS) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/streaming_throughput_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/objective_c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif -deps_grpc_objective_c_plugin: $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/streaming_throughput_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_streaming_throughput_test: $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) +-include $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_PYTHON_PLUGIN_SRC = \ - src/compiler/python_plugin.cc \ +STRESS_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/interop_client.cc \ + test/cpp/interop/stress_interop_client.cc \ + test/cpp/interop/stress_test.cc \ + test/cpp/util/metrics_server.cc \ + +STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STRESS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/stress_test: openssl_dep_error + +else -GRPC_PYTHON_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PYTHON_PLUGIN_SRC)))) @@ -10217,71 +13254,59 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpc_python_plugin: protobuf_dep_error +$(BINDIR)/$(CONFIG)/stress_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_python_plugin: $(PROTOBUF_DEP) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/stress_test: $(PROTOBUF_DEP) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin + $(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/python_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - -deps_grpc_python_plugin: $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) - -ifneq ($(NO_DEPS),true) --include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) endif -# Force compilation of proto files before building code that could potentially depend on them - - -GRPC_RUBY_PLUGIN_SRC = \ - src/compiler/ruby_plugin.cc \ - -GRPC_RUBY_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_RUBY_PLUGIN_SRC)))) - - - -ifeq ($(NO_PROTOBUF),true) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: protobuf_dep_error +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -else +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: $(PROTOBUF_DEP) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/src/compiler/ruby_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_grpc_ruby_plugin: $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_stress_test: $(STRESS_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) +-include $(STRESS_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -GRPCLB_API_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ - test/cpp/grpclb/grpclb_api_test.cc \ +THREAD_STRESS_TEST_SRC = \ + test/cpp/end2end/thread_stress_test.cc \ -GRPCLB_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_API_TEST_SRC)))) +THREAD_STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(THREAD_STRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpclb_api_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/thread_stress_test: openssl_dep_error else @@ -10292,105 +13317,91 @@ ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/grpclb_api_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/thread_stress_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpclb_api_test: $(PROTOBUF_DEP) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(BINDIR)/$(CONFIG)/thread_stress_test: $(PROTOBUF_DEP) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_api_test + $(Q) $(LDXX) $(LDFLAGS) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_stress_test endif endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a - -$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/thread_stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpclb_api_test: $(GRPCLB_API_TEST_OBJS:.o=.dep) +deps_thread_stress_test: $(THREAD_STRESS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPCLB_API_TEST_OBJS:.o=.dep) +-include $(THREAD_STRESS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -HYBRID_END2END_TEST_SRC = \ - test/cpp/end2end/hybrid_end2end_test.cc \ +PUBLIC_HEADERS_MUST_BE_C89_SRC = \ + test/core/surface/public_headers_must_be_c89.c \ -HYBRID_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HYBRID_END2END_TEST_SRC)))) +PUBLIC_HEADERS_MUST_BE_C89_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PUBLIC_HEADERS_MUST_BE_C89_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: $(PROTOBUF_DEP) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/hybrid_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/hybrid_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o : test/core/surface/public_headers_must_be_c89.c + $(E) "[C] Compiling $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< -deps_hybrid_end2end_test: $(HYBRID_END2END_TEST_OBJS:.o=.dep) +deps_public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HYBRID_END2END_TEST_OBJS:.o=.dep) +-include $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/interop_client: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_AES_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_AES_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_AES_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/interop_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_aes_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/interop_client: $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_aes_test: $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_client - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_aes_test endif @@ -10399,31 +13410,27 @@ endif # Force compilation of proto files before building code that could potentially depend on them -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/interop_server: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_ASN1_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_ASN1_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_ASN1_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/interop_server: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_asn1_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_asn1_test: $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_asn1_test endif @@ -10432,1037 +13439,1046 @@ endif # Force compilation of proto files before building code that could potentially depend on them -INTEROP_TEST_SRC = \ - test/cpp/interop/interop_test.cc \ - -INTEROP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTEROP_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/interop_test: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_BASE64_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_BASE64_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_BASE64_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/interop_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_base64_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/interop_test: $(PROTOBUF_DEP) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_base64_test: $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_base64_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_interop_test: $(INTEROP_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(INTEROP_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -JSON_RUN_LOCALHOST_SRC = \ - test/cpp/qps/json_run_localhost.cc \ - -JSON_RUN_LOCALHOST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_RUN_LOCALHOST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/json_run_localhost: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_BIO_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_BIO_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_BIO_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/json_run_localhost: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_bio_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/json_run_localhost: $(PROTOBUF_DEP) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_bio_test: $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/json_run_localhost - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_bio_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/json_run_localhost.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -deps_json_run_localhost: $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -METRICS_CLIENT_SRC = \ - $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ - test/cpp/interop/metrics_client.cc \ - -METRICS_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(METRICS_CLIENT_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/metrics_client: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_BN_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_BN_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_BN_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/metrics_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_bn_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/metrics_client: $(PROTOBUF_DEP) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_bn_test: $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/metrics_client - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_bn_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_metrics_client: $(METRICS_CLIENT_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(METRICS_CLIENT_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_BYTESTRING_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_BYTESTRING_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_BYTESTRING_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -MOCK_TEST_SRC = \ - test/cpp/end2end/mock_test.cc \ -MOCK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MOCK_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/mock_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_bytestring_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_bytestring_test: $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_bytestring_test + +endif + + +# Force compilation of proto files before building code that could potentially depend on them + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_AEAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_AEAD_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_AEAD_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/mock_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_aead_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/mock_test: $(PROTOBUF_DEP) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_aead_test: $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/mock_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_aead_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/mock_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_mock_test: $(MOCK_TEST_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(MOCK_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_CIPHER_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_CIPHER_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_CIPHER_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -PROTO_SERVER_REFLECTION_TEST_SRC = \ - test/cpp/end2end/proto_server_reflection_test.cc \ - test/cpp/util/proto_reflection_descriptor_database.cc \ -PROTO_SERVER_REFLECTION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PROTO_SERVER_REFLECTION_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_cipher_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_cipher_test: $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_cipher_test + +endif + + +# Force compilation of proto files before building code that could potentially depend on them + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_CMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_CMAC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_CMAC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_cmac_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_cmac_test: $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_cmac_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +# Force compilation of proto files before building code that could potentially depend on them -deps_proto_server_reflection_test: $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -QPS_INTERARRIVAL_TEST_SRC = \ - test/cpp/qps/qps_interarrival_test.cc \ +ifeq ($(NO_PROTOBUF),true) -QPS_INTERARRIVAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_INTERARRIVAL_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_constant_time_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_constant_time_test: $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_constant_time_test + +endif -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_interarrival_test: openssl_dep_error -else +# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_ED25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_ED25519_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_ED25519_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_interarrival_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_ed25519_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_interarrival_test: $(PROTOBUF_DEP) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_ed25519_test: $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_interarrival_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ed25519_test endif -endif - -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_interarrival_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_qps_interarrival_test: $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -QPS_JSON_DRIVER_SRC = \ - test/cpp/qps/qps_json_driver.cc \ - -QPS_JSON_DRIVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_JSON_DRIVER_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/qps_json_driver: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_X25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_X25519_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_X25519_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_json_driver: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_x25519_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_json_driver: $(PROTOBUF_DEP) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_x25519_test: $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_json_driver + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_x25519_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_json_driver.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_qps_json_driver: $(QPS_JSON_DRIVER_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(QPS_JSON_DRIVER_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_DH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_DH_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_DH_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -QPS_OPENLOOP_TEST_SRC = \ - test/cpp/qps/qps_openloop_test.cc \ -QPS_OPENLOOP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_OPENLOOP_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_openloop_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_dh_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_dh_test: $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_dh_test + +endif + +# Force compilation of proto files before building code that could potentially depend on them + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_DIGEST_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_DIGEST_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_DIGEST_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_openloop_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_digest_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_openloop_test: $(PROTOBUF_DEP) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_digest_test: $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_openloop_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_digest_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_openloop_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_qps_openloop_test: $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_DSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_DSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_DSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -QPS_WORKER_SRC = \ - test/cpp/qps/worker.cc \ -QPS_WORKER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_WORKER_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_worker: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_dsa_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_dsa_test: $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_dsa_test + +endif + + +# Force compilation of proto files before building code that could potentially depend on them + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_EC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_EC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_EC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/qps_worker: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_ec_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/qps_worker: $(PROTOBUF_DEP) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_ec_test: $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_worker + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ec_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/worker.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_qps_worker: $(QPS_WORKER_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(QPS_WORKER_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_EXAMPLE_MUL_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_EXAMPLE_MUL_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_EXAMPLE_MUL_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -RECONNECT_INTEROP_CLIENT_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/reconnect_interop_client.cc \ -RECONNECT_INTEROP_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_CLIENT_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/reconnect_interop_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_example_mul: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_example_mul: $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_example_mul + +endif + + + +# Force compilation of proto files before building code that could potentially depend on them + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_ECDSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_ECDSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_ECDSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/reconnect_interop_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_ecdsa_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/reconnect_interop_client: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_ecdsa_test: $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_client + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ecdsa_test endif -endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +# Force compilation of proto files before building code that could potentially depend on them -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_reconnect_interop_client: $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_ERR_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_ERR_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_ERR_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -RECONNECT_INTEROP_SERVER_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/reconnect_interop_server.cc \ +$(BINDIR)/$(CONFIG)/boringssl_err_test: protobuf_dep_error -RECONNECT_INTEROP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_SERVER_SRC)))) -ifeq ($(NO_SECURE),true) +else -# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/boringssl_err_test: $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_err_test + +endif -$(BINDIR)/$(CONFIG)/reconnect_interop_server: openssl_dep_error -else + +# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/reconnect_interop_server: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_evp_extra_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/reconnect_interop_server: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_evp_extra_test: $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_server + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_evp_extra_test endif -endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +# Force compilation of proto files before building code that could potentially depend on them -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -deps_reconnect_interop_server: $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_EVP_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_EVP_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_EVP_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -SECURE_AUTH_CONTEXT_TEST_SRC = \ - test/cpp/common/secure_auth_context_test.cc \ +$(BINDIR)/$(CONFIG)/boringssl_evp_test: protobuf_dep_error -SECURE_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_AUTH_CONTEXT_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +else -# You can't build secure targets if you don't have OpenSSL. +$(BINDIR)/$(CONFIG)/boringssl_evp_test: $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_evp_test -$(BINDIR)/$(CONFIG)/secure_auth_context_test: openssl_dep_error +endif -else + + +# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_PBKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_PBKDF_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_PBKDF_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/secure_auth_context_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_pbkdf_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/secure_auth_context_test: $(PROTOBUF_DEP) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_pbkdf_test: $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_auth_context_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pbkdf_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/secure_auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_auth_context_test: $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_HKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_HKDF_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_HKDF_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ - test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ -SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_SYNC_UNARY_PING_PONG_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_hkdf_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_hkdf_test: $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_hkdf_test + +endif + + +# Force compilation of proto files before building code that could potentially depend on them + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_HMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_HMAC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_HMAC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_hmac_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: $(PROTOBUF_DEP) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_hmac_test: $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_hmac_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/secure_sync_unary_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_sync_unary_ping_pong_test: $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_LHASH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_LHASH_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_LHASH_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -SERVER_BUILDER_PLUGIN_TEST_SRC = \ - test/cpp/end2end/server_builder_plugin_test.cc \ -SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/boringssl_lhash_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/boringssl_lhash_test: $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_lhash_test + +endif -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error -else +# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_GCM_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_GCM_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_GCM_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_gcm_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_gcm_test: $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_gcm_test endif -endif - -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_CRASH_TEST_SRC = \ - test/cpp/end2end/server_crash_test.cc \ - -SERVER_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/server_crash_test: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_PKCS12_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_PKCS12_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_PKCS12_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/server_crash_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_pkcs12_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/server_crash_test: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_pkcs12_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pkcs12_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_server_crash_test: $(SERVER_CRASH_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(SERVER_CRASH_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_CRASH_TEST_CLIENT_SRC = \ - test/cpp/end2end/server_crash_test_client.cc \ - -SERVER_CRASH_TEST_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_CLIENT_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/server_crash_test_client: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_PKCS8_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_PKCS8_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_PKCS8_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/server_crash_test_client: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_pkcs8_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/server_crash_test_client: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_pkcs8_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test_client - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pkcs8_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_server_crash_test_client: $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -SHUTDOWN_TEST_SRC = \ - test/cpp/end2end/shutdown_test.cc \ - -SHUTDOWN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SHUTDOWN_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/shutdown_test: openssl_dep_error - -else - +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_POLY1305_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_POLY1305_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_POLY1305_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/shutdown_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_poly1305_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/shutdown_test: $(PROTOBUF_DEP) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_poly1305_test: $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_poly1305_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/shutdown_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_shutdown_test: $(SHUTDOWN_TEST_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(SHUTDOWN_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_REFCOUNT_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_REFCOUNT_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_REFCOUNT_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -STATUS_TEST_SRC = \ - test/cpp/util/status_test.cc \ -STATUS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/status_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_refcount_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_refcount_test: $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_refcount_test + +endif + + + +# Force compilation of proto files before building code that could potentially depend on them + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_RSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_RSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_RSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE + ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/status_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_rsa_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/status_test: $(PROTOBUF_DEP) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_rsa_test: $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_rsa_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/status_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_status_test: $(STATUS_TEST_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(STATUS_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_THREAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_THREAD_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_THREAD_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -STREAMING_THROUGHPUT_TEST_SRC = \ - test/cpp/end2end/streaming_throughput_test.cc \ -STREAMING_THROUGHPUT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAMING_THROUGHPUT_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/streaming_throughput_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_thread_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_thread_test: $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_thread_test + +endif + + + +# Force compilation of proto files before building code that could potentially depend on them + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_PKCS7_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_PKCS7_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_PKCS7_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/streaming_throughput_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_pkcs7_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/streaming_throughput_test: $(PROTOBUF_DEP) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_pkcs7_test: $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/streaming_throughput_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pkcs7_test endif -endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/streaming_throughput_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_streaming_throughput_test: $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) +# Force compilation of proto files before building code that could potentially depend on them -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_X509_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_X509_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_X509_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -STRESS_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/interop_client.cc \ - test/cpp/interop/stress_interop_client.cc \ - test/cpp/interop/stress_test.cc \ - test/cpp/util/metrics_server.cc \ -STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STRESS_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +ifeq ($(NO_PROTOBUF),true) -# You can't build secure targets if you don't have OpenSSL. +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/stress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/boringssl_x509_test: protobuf_dep_error else +$(BINDIR)/$(CONFIG)/boringssl_x509_test: $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_x509_test + +endif + + +# Force compilation of proto files before building code that could potentially depend on them + + + +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_TAB_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_TAB_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_TAB_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/stress_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_tab_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/stress_test: $(PROTOBUF_DEP) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/boringssl_tab_test: $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_tab_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +# Force compilation of proto files before building code that could potentially depend on them -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_V3NAME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_V3NAME_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_V3NAME_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a -$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +ifeq ($(NO_PROTOBUF),true) -deps_stress_test: $(STRESS_TEST_OBJS:.o=.dep) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(STRESS_TEST_OBJS:.o=.dep) -endif -endif +$(BINDIR)/$(CONFIG)/boringssl_v3name_test: protobuf_dep_error -# Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc +else +$(BINDIR)/$(CONFIG)/boringssl_v3name_test: $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_v3name_test -THREAD_STRESS_TEST_SRC = \ - test/cpp/end2end/thread_stress_test.cc \ +endif -THREAD_STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(THREAD_STRESS_TEST_SRC)))) -ifeq ($(NO_SECURE),true) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/thread_stress_test: openssl_dep_error +# Force compilation of proto files before building code that could potentially depend on them -else +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_PQUEUE_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_PQUEUE_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_PQUEUE_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE ifeq ($(NO_PROTOBUF),true) # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. -$(BINDIR)/$(CONFIG)/thread_stress_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/boringssl_pqueue_test: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/thread_stress_test: $(PROTOBUF_DEP) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_pqueue_test: $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_stress_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_pqueue_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/thread_stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_thread_stress_test: $(THREAD_STRESS_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(THREAD_STRESS_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -PUBLIC_HEADERS_MUST_BE_C89_SRC = \ - test/core/surface/public_headers_must_be_c89.c \ -PUBLIC_HEADERS_MUST_BE_C89_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PUBLIC_HEADERS_MUST_BE_C89_SRC)))) -ifeq ($(NO_SECURE),true) +# boringssl needs an override to ensure that it does not include +# system openssl headers regardless of other configuration +# we do so here with a target specific variable assignment +$(BORINGSSL_SSL_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI) +$(BORINGSSL_SSL_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) +$(BORINGSSL_SSL_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: openssl_dep_error +ifeq ($(NO_PROTOBUF),true) -else +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/boringssl_ssl_test: protobuf_dep_error +else -$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/boringssl_ssl_test: $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ssl_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o : test/core/surface/public_headers_must_be_c89.c - $(E) "[C] Compiling $<" - $(Q) mkdir -p `dirname $@` - $(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< - -deps_public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them From 117d33bc6a7c18a6b5c43ea9c13b7aefd53ba32d Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 26 Jul 2016 12:54:40 -0700 Subject: [PATCH 122/202] Move codegen headers --- BUILD | 19 +++---- Makefile | 19 +++---- build.yaml | 19 +++---- examples/c/helloworld/greeter_async_client.c | 2 +- examples/c/helloworld/greeter_async_client2.c | 2 +- examples/c/helloworld/greeter_client.c | 1 + include/grpc_c/channel.h | 1 - include/grpc_c/client_context.h | 1 - .../bidi_streaming_blocking_call.h | 9 ++-- ...client_context_priv.h => client_context.h} | 8 +-- .../client_streaming_blocking_call.h | 8 +-- include/grpc_c/{ => codegen}/message.h | 7 ++- include/grpc_c/codegen/method.h | 49 +++++++++++++++++++ include/grpc_c/{ => codegen}/pb_compat.h | 6 +-- include/grpc_c/{ => codegen}/serialization.h | 8 +-- .../server_streaming_blocking_call.h | 9 ++-- .../grpc_c/{ => codegen}/unary_async_call.h | 9 ++-- .../{ => codegen}/unary_blocking_call.h | 9 ++-- include/grpc_c/completion_queue.h | 1 - include/grpc_c/grpc_c.h | 17 ------- include/grpc_c/status.h | 6 +-- src/c/alloc.c | 2 +- src/c/bidi_streaming_blocking_call.c | 7 +-- src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.c | 1 + src/c/call_ops.h | 1 + src/c/client_context.h | 6 +-- src/c/client_streaming_blocking_call.c | 3 +- src/c/client_streaming_blocking_call.h | 2 +- src/c/message.h | 2 +- src/c/pb_compat.c | 5 +- src/c/server_streaming_blocking_call.c | 3 +- src/c/server_streaming_blocking_call.h | 2 +- src/c/unary_async_call.c | 5 +- src/c/unary_blocking_call.c | 2 + src/compiler/c_generator.cc | 23 +++++---- test/c/end2end/generic_end2end_test.cc | 12 ++--- test/c/end2end/id_serialization.h | 2 +- tools/run_tests/sources_and_headers.json | 38 +++++++------- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 19 +++---- .../vcxproj/grpc_c/grpc_c.vcxproj.filters | 45 +++++++++-------- 41 files changed, 224 insertions(+), 168 deletions(-) rename include/grpc_c/{ => codegen}/bidi_streaming_blocking_call.h (90%) rename include/grpc_c/codegen/{client_context_priv.h => client_context.h} (91%) rename include/grpc_c/{ => codegen}/client_streaming_blocking_call.h (89%) rename include/grpc_c/{ => codegen}/message.h (93%) create mode 100644 include/grpc_c/codegen/method.h rename include/grpc_c/{ => codegen}/pb_compat.h (94%) rename include/grpc_c/{ => codegen}/serialization.h (90%) rename include/grpc_c/{ => codegen}/server_streaming_blocking_call.h (88%) rename include/grpc_c/{ => codegen}/unary_async_call.h (90%) rename include/grpc_c/{ => codegen}/unary_blocking_call.h (88%) diff --git a/BUILD b/BUILD index ebf0df8c5674c..355138798993f 100644 --- a/BUILD +++ b/BUILD @@ -576,20 +576,21 @@ cc_library( "src/c/unary_blocking_call.c", ], hdrs = [ - "include/grpc_c/bidi_streaming_blocking_call.h", "include/grpc_c/channel.h", "include/grpc_c/client_context.h", - "include/grpc_c/client_streaming_blocking_call.h", - "include/grpc_c/codegen/client_context_priv.h", + "include/grpc_c/codegen/bidi_streaming_blocking_call.h", + "include/grpc_c/codegen/client_context.h", + "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/message.h", + "include/grpc_c/codegen/method.h", + "include/grpc_c/codegen/pb_compat.h", + "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server_streaming_blocking_call.h", + "include/grpc_c/codegen/unary_async_call.h", + "include/grpc_c/codegen/unary_blocking_call.h", "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", - "include/grpc_c/message.h", - "include/grpc_c/pb_compat.h", - "include/grpc_c/serialization.h", - "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", - "include/grpc_c/unary_async_call.h", - "include/grpc_c/unary_blocking_call.h", ], includes = [ "include", diff --git a/Makefile b/Makefile index de6e1c29be484..4a6f2c1d62fdd 100644 --- a/Makefile +++ b/Makefile @@ -2985,20 +2985,21 @@ LIBGRPC_C_SRC = \ src/c/unary_blocking_call.c \ PUBLIC_HEADERS_C += \ - include/grpc_c/bidi_streaming_blocking_call.h \ include/grpc_c/channel.h \ include/grpc_c/client_context.h \ - include/grpc_c/client_streaming_blocking_call.h \ - include/grpc_c/codegen/client_context_priv.h \ + include/grpc_c/codegen/bidi_streaming_blocking_call.h \ + include/grpc_c/codegen/client_context.h \ + include/grpc_c/codegen/client_streaming_blocking_call.h \ + include/grpc_c/codegen/message.h \ + include/grpc_c/codegen/method.h \ + include/grpc_c/codegen/pb_compat.h \ + include/grpc_c/codegen/serialization.h \ + include/grpc_c/codegen/server_streaming_blocking_call.h \ + include/grpc_c/codegen/unary_async_call.h \ + include/grpc_c/codegen/unary_blocking_call.h \ include/grpc_c/completion_queue.h \ include/grpc_c/grpc_c.h \ - include/grpc_c/message.h \ - include/grpc_c/pb_compat.h \ - include/grpc_c/serialization.h \ - include/grpc_c/server_streaming_blocking_call.h \ include/grpc_c/status.h \ - include/grpc_c/unary_async_call.h \ - include/grpc_c/unary_blocking_call.h \ LIBGRPC_C_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_SRC)))) diff --git a/build.yaml b/build.yaml index fb3e542caf5f8..bb7667d7b442d 100644 --- a/build.yaml +++ b/build.yaml @@ -831,20 +831,21 @@ libs: build: all language: c public_headers: - - include/grpc_c/bidi_streaming_blocking_call.h - include/grpc_c/channel.h - include/grpc_c/client_context.h - - include/grpc_c/client_streaming_blocking_call.h - - include/grpc_c/codegen/client_context_priv.h + - include/grpc_c/codegen/bidi_streaming_blocking_call.h + - include/grpc_c/codegen/client_context.h + - include/grpc_c/codegen/client_streaming_blocking_call.h + - include/grpc_c/codegen/message.h + - include/grpc_c/codegen/method.h + - include/grpc_c/codegen/pb_compat.h + - include/grpc_c/codegen/serialization.h + - include/grpc_c/codegen/server_streaming_blocking_call.h + - include/grpc_c/codegen/unary_async_call.h + - include/grpc_c/codegen/unary_blocking_call.h - include/grpc_c/completion_queue.h - include/grpc_c/grpc_c.h - - include/grpc_c/message.h - - include/grpc_c/pb_compat.h - - include/grpc_c/serialization.h - - include/grpc_c/server_streaming_blocking_call.h - include/grpc_c/status.h - - include/grpc_c/unary_async_call.h - - include/grpc_c/unary_blocking_call.h headers: - src/c/alloc.h - src/c/bidi_streaming_blocking_call.h diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c index 768dc76c94f33..6a01b077c9950 100644 --- a/examples/c/helloworld/greeter_async_client.c +++ b/examples/c/helloworld/greeter_async_client.c @@ -37,10 +37,10 @@ #include #include +#include #include "helloworld.grpc.pbc.h" #include -#include /** * Nanopb callbacks for string encoding/decoding. diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index cbfa731d7d672..8e95d60822333 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -37,10 +37,10 @@ #include #include +#include #include "helloworld.grpc.pbc.h" #include -#include typedef struct async_client { GRPC_client_context *context; diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 64f0c8d9e225b..3135b32277c6f 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -32,6 +32,7 @@ */ #include +#include #include "helloworld.grpc.pbc.h" #include diff --git a/include/grpc_c/channel.h b/include/grpc_c/channel.h index 9782f7c9d92ca..f104ae3d25a97 100644 --- a/include/grpc_c/channel.h +++ b/include/grpc_c/channel.h @@ -31,7 +31,6 @@ * */ - #ifndef GRPC_C_CHANNEL_PUBLIC_H #define GRPC_C_CHANNEL_PUBLIC_H diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index 034554fe22567..0e2f352081d15 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -31,7 +31,6 @@ * */ - #ifndef GRPC_C_CONTEXT_PUBLIC_H #define GRPC_C_CONTEXT_PUBLIC_H diff --git a/include/grpc_c/bidi_streaming_blocking_call.h b/include/grpc_c/codegen/bidi_streaming_blocking_call.h similarity index 90% rename from include/grpc_c/bidi_streaming_blocking_call.h rename to include/grpc_c/codegen/bidi_streaming_blocking_call.h index 7fdea7933c261..b802ad5d9c5b5 100644 --- a/include/grpc_c/bidi_streaming_blocking_call.h +++ b/include/grpc_c/codegen/bidi_streaming_blocking_call.h @@ -31,11 +31,12 @@ * */ - -#ifndef GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H #include +#include +#include #include GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, @@ -51,4 +52,4 @@ bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer); -#endif /* GRPC_C_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H */ diff --git a/include/grpc_c/codegen/client_context_priv.h b/include/grpc_c/codegen/client_context.h similarity index 91% rename from include/grpc_c/codegen/client_context_priv.h rename to include/grpc_c/codegen/client_context.h index 3efeac1853740..185391549b9b4 100644 --- a/include/grpc_c/codegen/client_context_priv.h +++ b/include/grpc_c/codegen/client_context.h @@ -31,10 +31,10 @@ * */ -#ifndef GRPC_CLIENT_CONTEXT_PRIV_H -#define GRPC_CLIENT_CONTEXT_PRIV_H +#ifndef GRPC_C_CODEGEN_CLIENT_CONTEXT_H +#define GRPC_C_CODEGEN_CLIENT_CONTEXT_H -#include +#include #include typedef struct grpc_serialization_impl { @@ -46,4 +46,4 @@ void GRPC_client_context_set_serialization_impl( GRPC_client_context *context, grpc_serialization_impl serialization_impl); -#endif /* GRPC_CLIENT_CONTEXT_PRIV_H */ +#endif /* GRPC_C_CODEGEN_CLIENT_CONTEXT_H */ diff --git a/include/grpc_c/client_streaming_blocking_call.h b/include/grpc_c/codegen/client_streaming_blocking_call.h similarity index 89% rename from include/grpc_c/client_streaming_blocking_call.h rename to include/grpc_c/codegen/client_streaming_blocking_call.h index ba17ef2850a42..fd45f34bdfdd0 100644 --- a/include/grpc_c/client_streaming_blocking_call.h +++ b/include/grpc_c/codegen/client_streaming_blocking_call.h @@ -32,10 +32,12 @@ */ -#ifndef GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H #include +#include +#include #include GRPC_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_method, @@ -48,4 +50,4 @@ bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC /* Returns call status in the context object. */ GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer); -#endif /* GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H */ diff --git a/include/grpc_c/message.h b/include/grpc_c/codegen/message.h similarity index 93% rename from include/grpc_c/message.h rename to include/grpc_c/codegen/message.h index 42e8af102f3fc..3d6a3689226f1 100644 --- a/include/grpc_c/message.h +++ b/include/grpc_c/codegen/message.h @@ -31,9 +31,8 @@ * */ - -#ifndef GRPC_C_MESSAGE_PUBLIC_H -#define GRPC_C_MESSAGE_PUBLIC_H +#ifndef GRPC_C_CODEGEN_MESSAGE_PUBLIC_H +#define GRPC_C_CODEGEN_MESSAGE_PUBLIC_H #include @@ -44,4 +43,4 @@ typedef struct GRPC_message { void GRPC_message_destroy(GRPC_message *message); -#endif /* GRPC_C_MESSAGE_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_MESSAGE_PUBLIC_H */ diff --git a/include/grpc_c/codegen/method.h b/include/grpc_c/codegen/method.h new file mode 100644 index 0000000000000..ce3a74f731011 --- /dev/null +++ b/include/grpc_c/codegen/method.h @@ -0,0 +1,49 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_CODEGEN_METHOD_PUBLIC_H +#define GRPC_C_CODEGEN_METHOD_PUBLIC_H + +typedef struct grpc_method { + enum RpcType { + NORMAL_RPC = 0, + CLIENT_STREAMING, /* request streaming */ + SERVER_STREAMING, /* response streaming */ + BIDI_STREAMING + } type; + const char* name; +} grpc_method; + +typedef struct grpc_method GRPC_method; + +#endif /* GRPC_C_CODEGEN_METHOD_PUBLIC_H */ diff --git a/include/grpc_c/pb_compat.h b/include/grpc_c/codegen/pb_compat.h similarity index 94% rename from include/grpc_c/pb_compat.h rename to include/grpc_c/codegen/pb_compat.h index d00bbbf054eb9..49b6e4d99bcfe 100644 --- a/include/grpc_c/pb_compat.h +++ b/include/grpc_c/codegen/pb_compat.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_PB_COMPAT_H -#define GRPC_C_PB_COMPAT_H +#ifndef GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H +#define GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H #include #include @@ -46,4 +46,4 @@ GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc(); void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state); void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state); -#endif /* GRPC_C_PB_COMPAT_H */ +#endif /* GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H */ diff --git a/include/grpc_c/serialization.h b/include/grpc_c/codegen/serialization.h similarity index 90% rename from include/grpc_c/serialization.h rename to include/grpc_c/codegen/serialization.h index dcf37af89f9ab..59920ddf3e8eb 100644 --- a/include/grpc_c/serialization.h +++ b/include/grpc_c/codegen/serialization.h @@ -31,13 +31,13 @@ * */ - -#ifndef GRPC_C_SERIALIZATION_PUBLIC_H -#define GRPC_C_SERIALIZATION_PUBLIC_H +#ifndef GRPC_C_CODEGEN_SERIALIZATION_PUBLIC_H +#define GRPC_C_CODEGEN_SERIALIZATION_PUBLIC_H #include +#include typedef GRPC_message (*GRPC_serializer)(const GRPC_message input); typedef void (*GRPC_deserializer)(const GRPC_message input, void *output); -#endif /* GRPC_C_SERIALIZATION_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_SERIALIZATION_PUBLIC_H */ diff --git a/include/grpc_c/server_streaming_blocking_call.h b/include/grpc_c/codegen/server_streaming_blocking_call.h similarity index 88% rename from include/grpc_c/server_streaming_blocking_call.h rename to include/grpc_c/codegen/server_streaming_blocking_call.h index dd7b5b21e9106..367587309edbb 100644 --- a/include/grpc_c/server_streaming_blocking_call.h +++ b/include/grpc_c/codegen/server_streaming_blocking_call.h @@ -31,11 +31,12 @@ * */ - -#ifndef GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H #include +#include +#include #include GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, @@ -47,4 +48,4 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *respo /* Terminating the writer takes care of ending the call, freeing the writer. */ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); -#endif /* GRPC_C_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H */ diff --git a/include/grpc_c/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h similarity index 90% rename from include/grpc_c/unary_async_call.h rename to include/grpc_c/codegen/unary_async_call.h index c8bcc7cef2c1c..8f8cd6e1961e5 100644 --- a/include/grpc_c/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -31,11 +31,12 @@ * */ - -#ifndef GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H -#define GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H +#ifndef GRPC_C_CODEGEN_CLIENT_ASYNC_READER_PUBLIC_H +#define GRPC_C_CODEGEN_CLIENT_ASYNC_READER_PUBLIC_H #include +#include +#include #include GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue *cq, @@ -47,4 +48,4 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *r void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); -#endif /* GRPC_C_CLIENT_ASYNC_READER_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_CLIENT_ASYNC_READER_PUBLIC_H */ diff --git a/include/grpc_c/unary_blocking_call.h b/include/grpc_c/codegen/unary_blocking_call.h similarity index 88% rename from include/grpc_c/unary_blocking_call.h rename to include/grpc_c/codegen/unary_blocking_call.h index 6c393cd668830..85af39ea1a4e3 100644 --- a/include/grpc_c/unary_blocking_call.h +++ b/include/grpc_c/codegen/unary_blocking_call.h @@ -31,15 +31,16 @@ * */ - -#ifndef GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_PUBLIC_H +#define GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_PUBLIC_H #include +#include +#include GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, const GRPC_message message, void *response); -#endif /* GRPC_C_UNARY_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_PUBLIC_H */ diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index f8bcb0e2ebc3d..076dd19dc5cb6 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -31,7 +31,6 @@ * */ - #ifndef GRPC_C_COMPLETION_QUEUE_PUBLIC_H #define GRPC_C_COMPLETION_QUEUE_PUBLIC_H diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 958f07b881fc3..97f0112044a64 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -31,12 +31,9 @@ * */ - #ifndef GRPC_C_PUBLIC_H #define GRPC_C_PUBLIC_H -#include - typedef struct grpc_channel GRPC_channel; /* The GRPC_status type is exposed to the end user */ typedef struct GRPC_status GRPC_status; @@ -51,18 +48,4 @@ typedef struct grpc_client_async_reader GRPC_client_async_reader; typedef struct grpc_client_async_writer GRPC_client_async_writer; typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; -typedef struct grpc_method { - enum RpcType { - NORMAL_RPC = 0, - CLIENT_STREAMING, /* request streaming */ - SERVER_STREAMING, /* response streaming */ - BIDI_STREAMING - } type; - const char* name; -} grpc_method; - -typedef struct grpc_method GRPC_method; - -#include - #endif /* GRPC_C_PUBLIC_H */ diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index d1ccf9383cf61..d92943dd968bd 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -31,12 +31,12 @@ * */ - #ifndef GRPC_C_STATUS_PUBLIC_H #define GRPC_C_STATUS_PUBLIC_H #include #include +#include typedef struct GRPC_status { /** @@ -59,6 +59,6 @@ typedef struct GRPC_status { * Length of status string. */ size_t details_length; -} grpc_status; +} GRPC_status; -#endif /* GRPC_C_STATUS_CODE_PUBLIC_H */ +#endif /* GRPC_C_STATUS_PUBLIC_H */ diff --git a/src/c/alloc.c b/src/c/alloc.c index 00db8bfee5fe2..7772d76062985 100644 --- a/src/c/alloc.c +++ b/src/c/alloc.c @@ -32,7 +32,7 @@ */ #include "src/c/alloc.h" -#include +#include #include void *GRPC_memdup(const void *dst, size_t size) { diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index cdb5e5103a1a1..9c8d8cf1e579b 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -33,12 +33,13 @@ #include +#include #include -#include "bidi_streaming_blocking_call.h" +#include "src/c/bidi_streaming_blocking_call.h" #include -#include +#include #include "src/c/alloc.h" -#include "completion_queue.h" +#include "src/c/completion_queue.h" GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context) { diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index 22bfdcfaaf82a..d005206b7f6ef 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -36,7 +36,7 @@ #define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H #include "src/c/call_ops.h" -#include +#include typedef struct grpc_client_reader_writer { grpc_client_context *context; diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 2ba3a50ff87ae..7ecb94016fdcc 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -30,6 +30,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + #include #include "src/c/call_ops.h" #include diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 6e1db6f915e9c..48ba914c798a4 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -36,6 +36,7 @@ #define GRPC_C_CALL_OPS_H #include +#include #include "src/c/message.h" #include "src/c/client_context.h" #include diff --git a/src/c/client_context.h b/src/c/client_context.h index 969a05f5efdf5..e6c649bca2e74 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -37,8 +37,8 @@ #include #include -#include -#include +#include +#include #include #include "src/c/message.h" #include "src/c/call_ops.h" @@ -57,7 +57,7 @@ typedef struct grpc_client_context { grpc_serialization_impl serialization_impl; // status of the call - grpc_status status; + GRPC_status status; // state tracking bool initial_metadata_received; diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 2523b1a54bdef..38851922637e2 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -33,8 +33,9 @@ #include +#include #include -#include +#include #include "src/c/client_streaming_blocking_call.h" #include "src/c/completion_queue.h" #include "src/c/alloc.h" diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index c34057b5a5bb1..38034b1ad26ec 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -35,7 +35,7 @@ #ifndef GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H #define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H -#include +#include #include "src/c/call_ops.h" typedef struct grpc_client_writer { diff --git a/src/c/message.h b/src/c/message.h index ebe45416a8ca9..607a5636f5214 100644 --- a/src/c/message.h +++ b/src/c/message.h @@ -35,7 +35,7 @@ #ifndef GRPC_C_MESSAGE_H #define GRPC_C_MESSAGE_H -#include +#include typedef GRPC_message grpc_message; diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index 7ec1e99dfe5ea..3de45cfb68e53 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -32,11 +32,10 @@ */ #include -#include -#include +#include #include #include -#include +#include #include "src/c/alloc.h" /** diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 87ce50089a112..e84bbd978d976 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -33,11 +33,12 @@ #include +#include #include #include #include "src/c/server_streaming_blocking_call.h" #include -#include +#include #include "src/c/alloc.h" #include "src/c/completion_queue.h" diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 04b2a038689cc..441442bf2d142 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -36,7 +36,7 @@ #define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H #include "src/c/call_ops.h" -#include +#include typedef struct grpc_client_reader { grpc_client_context *context; diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 19a580f6f1a30..cb7278f496f69 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -33,11 +33,12 @@ #include +#include #include #include "src/c/unary_async_call.h" #include "src/c/alloc.h" -#include -#include +#include +#include static void free_reader_and_call(void *arg) { GRPC_client_async_response_reader *reader = arg; diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index d5197300102ee..a49f80895cee4 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -33,6 +33,8 @@ #include "src/c/unary_blocking_call.h" #include +#include +#include #include "src/c/client_context.h" #include "src/c/call_ops.h" #include "src/c/completion_queue.h" diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index fe81187731b0e..5e4d0befc96cc 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -526,6 +526,7 @@ grpc::string GetHeaderServices(File *file, // We need to generate a short serialization helper for every message type // This should be handled in protoc but there's nothing we can do at the moment // given we're on nanopb. + printer->Print("typedef struct GRPC_message GRPC_message;\n"); for (auto& msg : dynamic_cast(file)->messages()) { std::map vars_msg(vars); vars_msg["msgType"] = msg->name(); @@ -534,6 +535,7 @@ GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input); void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output); )"); } + printer->Print("\n"); for (int i = 0; i < file->service_count(); ++i) { PrintHeaderService(printer.get(), file->service(i).get(), &vars); @@ -630,17 +632,19 @@ grpc::string GetSourceIncludes(File *file, "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/channel.h", - "grpc_c/unary_blocking_call.h", - "grpc_c/unary_async_call.h", - "grpc_c/client_streaming_blocking_call.h", - "grpc_c/server_streaming_blocking_call.h", - "grpc_c/bidi_streaming_blocking_call.h", "grpc_c/client_context.h", - "grpc_c/codegen/client_context_priv.h", + "grpc_c/codegen/message.h", + "grpc_c/codegen/method.h", + "grpc_c/codegen/unary_blocking_call.h", + "grpc_c/codegen/unary_async_call.h", + "grpc_c/codegen/client_streaming_blocking_call.h", + "grpc_c/codegen/server_streaming_blocking_call.h", + "grpc_c/codegen/bidi_streaming_blocking_call.h", + "grpc_c/codegen/client_context.h", // Relying on Nanopb for Protobuf serialization for now nano_encode.c_str(), nano_decode.c_str(), - "grpc_c/pb_compat.h" + "grpc_c/codegen/pb_compat.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); @@ -706,10 +710,11 @@ grpc::string GetHeaderIncludes(File *file, std::map vars; static const char *headers_strs[] = { - "grpc_c/status.h", "grpc_c/grpc_c.h", + "grpc_c/status.h", + "grpc_c/channel.h", "grpc_c/client_context.h", - "grpc_c/channel.h" + "grpc_c/completion_queue.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index 1f758497f5b50..072f5aef77405 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -52,13 +52,13 @@ extern "C" { #include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include -#include +#include } #include "src/core/lib/security/credentials/credentials.h" diff --git a/test/c/end2end/id_serialization.h b/test/c/end2end/id_serialization.h index 3496e15897349..e3dc892c2cd30 100644 --- a/test/c/end2end/id_serialization.h +++ b/test/c/end2end/id_serialization.h @@ -35,7 +35,7 @@ #ifndef GRPC_C_MOCK_SERIALIZATION_H #define GRPC_C_MOCK_SERIALIZATION_H -#include +#include #include "src/c/message.h" /* Serialization functions that doesn't do anything except duplicating the buffer */ diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index eeb7de9e86cd0..3a3bddd6f002b 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4256,20 +4256,21 @@ "grpc" ], "headers": [ - "include/grpc_c/bidi_streaming_blocking_call.h", "include/grpc_c/channel.h", "include/grpc_c/client_context.h", - "include/grpc_c/client_streaming_blocking_call.h", - "include/grpc_c/codegen/client_context_priv.h", + "include/grpc_c/codegen/bidi_streaming_blocking_call.h", + "include/grpc_c/codegen/client_context.h", + "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/message.h", + "include/grpc_c/codegen/method.h", + "include/grpc_c/codegen/pb_compat.h", + "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server_streaming_blocking_call.h", + "include/grpc_c/codegen/unary_async_call.h", + "include/grpc_c/codegen/unary_blocking_call.h", "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", - "include/grpc_c/message.h", - "include/grpc_c/pb_compat.h", - "include/grpc_c/serialization.h", - "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", - "include/grpc_c/unary_async_call.h", - "include/grpc_c/unary_blocking_call.h", "src/c/alloc.h", "src/c/bidi_streaming_blocking_call.h", "src/c/call_ops.h", @@ -4287,20 +4288,21 @@ "language": "c", "name": "grpc_c", "src": [ - "include/grpc_c/bidi_streaming_blocking_call.h", "include/grpc_c/channel.h", "include/grpc_c/client_context.h", - "include/grpc_c/client_streaming_blocking_call.h", - "include/grpc_c/codegen/client_context_priv.h", + "include/grpc_c/codegen/bidi_streaming_blocking_call.h", + "include/grpc_c/codegen/client_context.h", + "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/message.h", + "include/grpc_c/codegen/method.h", + "include/grpc_c/codegen/pb_compat.h", + "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server_streaming_blocking_call.h", + "include/grpc_c/codegen/unary_async_call.h", + "include/grpc_c/codegen/unary_blocking_call.h", "include/grpc_c/completion_queue.h", "include/grpc_c/grpc_c.h", - "include/grpc_c/message.h", - "include/grpc_c/pb_compat.h", - "include/grpc_c/serialization.h", - "include/grpc_c/server_streaming_blocking_call.h", "include/grpc_c/status.h", - "include/grpc_c/unary_async_call.h", - "include/grpc_c/unary_blocking_call.h", "src/c/alloc.c", "src/c/alloc.h", "src/c/bidi_streaming_blocking_call.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index bc722eab5ab13..b2ca96f2c9ec9 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -258,20 +258,21 @@ - - - + + + + + + + + + + - - - - - - diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index 8d4cb7921a62c..ca3cc8f7781af 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -42,46 +42,49 @@ - - include\grpc_c - include\grpc_c include\grpc_c - - include\grpc_c + + include\grpc_c\codegen - + include\grpc_c\codegen - - include\grpc_c + + include\grpc_c\codegen - - include\grpc_c + + include\grpc_c\codegen - - include\grpc_c + + include\grpc_c\codegen - - include\grpc_c + + include\grpc_c\codegen - - include\grpc_c + + include\grpc_c\codegen - - include\grpc_c + + include\grpc_c\codegen - + + include\grpc_c\codegen + + + include\grpc_c\codegen + + include\grpc_c - + include\grpc_c - + include\grpc_c From 05d22fbab43325656d262ebce855d305af93e37e Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 26 Jul 2016 17:32:55 -0700 Subject: [PATCH 123/202] Modify the C codegen to make it GCC 4.4 compatible --- src/compiler/c_generator.cc | 558 ++++++++++++++++++------------------ 1 file changed, 279 insertions(+), 279 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 5e4d0befc96cc..c3b8dd99ee563 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -82,7 +82,7 @@ grpc::string BlockifyComments(grpc::string input) { if (lines[lines.size() - 1] == "") lines.pop_back(); for (grpc::string& str : lines) { grpc_generator::StripPrefix(&str, "//"); - str.append(std::max(0UL, kMaxCharactersPerLine - str.size()), ' '); + str.append(std::max(size_t(0), kMaxCharactersPerLine - str.size()), ' '); str = "/* " + str + " */"; } return Join(lines, "\n"); @@ -138,164 +138,163 @@ void PrintHeaderClientMethod(Printer *printer, printer->Print( *vars, -R"( -/* Sync */ -GRPC_status $CPrefix$$Service$_$Method$( - GRPC_client_context *const context, - const $CPrefix$$Request$ request, - $CPrefix$$Response$ *response); -)"); + "/* Sync */\n" + "GRPC_status $CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " const $CPrefix$$Request$ request,\n" + " $CPrefix$$Response$ *response);\n" + ); printer->Print( *vars, -R"( -/* Async */ -GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( - GRPC_client_context *const context, - GRPC_completion_queue *cq, - const $CPrefix$$Request$ request); - -void $CPrefix$$Service$_$Method$_Finish( - GRPC_client_async_response_reader *reader, - $CPrefix$$Response$ *response, - void *tag); -/* call GRPC_completion_queue_next on the cq to wait for result */ - -)"); + "\n" + "/* Async */\n" + "GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async(\n" + " GRPC_client_context *const context,\n" + " GRPC_completion_queue *cq,\n" + " const $CPrefix$$Request$ request);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Finish(\n" + " GRPC_client_async_response_reader *reader,\n" + " $CPrefix$$Response$ *response,\n" + " void *tag);\n" + "/* call GRPC_completion_queue_next on the cq to wait for result */\n" + "\n" + "\n"); } else if (method->ClientOnlyStreaming()) { // Client streaming printer->Print( *vars, - R"( -/* Sync */ -GRPC_client_writer *$CPrefix$$Service$_$Method$( - GRPC_client_context *const context, - $CPrefix$$Response$ *response); - -/* Return value of true means write succeeded */ -bool $CPrefix$$Service$_$Method$_Write( - GRPC_client_writer *writer, - $CPrefix$$Request$ request); - -/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */ -/* The writer is automatically freed when the request ends */ -GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer); -)"); + "\n" + "/* Sync */\n" + "GRPC_client_writer *$CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " $CPrefix$$Response$ *response);\n" + "\n" + "/* Return value of true means write succeeded */\n" + "bool $CPrefix$$Service$_$Method$_Write(\n" + " GRPC_client_writer *writer,\n" + " $CPrefix$$Request$ request);\n" + "\n" + "/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */\n" + "/* The writer is automatically freed when the request ends */\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer);\n" + "\n"); printer->Print( *vars, - R"( -/* Async */ -GRPC_client_async_writer *$CPrefix$$Service$_$Method$_Async( - GRPC_client_context *const context, - GRPC_completion_queue *cq); - -void $CPrefix$$Service$_$Method$_Write_Async( - GRPC_client_async_writer *writer, - const $CPrefix$$Request$ request, - void *tag); - -void $CPrefix$$Service$_$Method$_Finish( - GRPC_client_async_writer *writer, - $CPrefix$$Response$ *response, - void *tag); -/* Call GRPC_completion_queue_next on the cq to wait for result. */ -/* The writer object is automatically freed when the request ends. */ - -)"); + "\n" + "/* Async */\n" + "GRPC_client_async_writer *$CPrefix$$Service$_$Method$_Async(\n" + " GRPC_client_context *const context,\n" + " GRPC_completion_queue *cq);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Write_Async(\n" + " GRPC_client_async_writer *writer,\n" + " const $CPrefix$$Request$ request,\n" + " void *tag);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Finish(\n" + " GRPC_client_async_writer *writer,\n" + " $CPrefix$$Response$ *response,\n" + " void *tag);\n" + "/* Call GRPC_completion_queue_next on the cq to wait for result. */\n" + "/* The writer object is automatically freed when the request ends. */\n" + "\n" + "\n"); } else if (method->ServerOnlyStreaming()) { // Server streaming printer->Print( *vars, -R"( -/* Sync */ -GRPC_client_reader *$CPrefix$$Service$_$Method$( - GRPC_client_context *const context, - $CPrefix$$Request$ request); - -/* Return value of true means read succeeded */ -bool $CPrefix$$Service$_$Method$_Read( - GRPC_client_reader *reader, - $CPrefix$$Response$ *response); - -/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */ -/* The reader is automatically freed when the request ends */ -GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader); -)"); + "\n" + "/* Sync */\n" + "GRPC_client_reader *$CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " $CPrefix$$Request$ request);\n" + "\n" + "/* Return value of true means read succeeded */\n" + "bool $CPrefix$$Service$_$Method$_Read(\n" + " GRPC_client_reader *reader,\n" + " $CPrefix$$Response$ *response);\n" + "\n" + "/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */\n" + "/* The reader is automatically freed when the request ends */\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader);\n" + "\n"); printer->Print( *vars, -R"( -/* Async */ -GRPC_client_async_reader *$CPrefix$$Service$_$Method$_Async( - GRPC_client_context *const context, - GRPC_completion_queue *cq, - const $CPrefix$$Request$ request); - -void $CPrefix$$Service$_$Method$_Read_Async( - GRPC_client_async_reader *reader, - $CPrefix$$Response$ *response, - void *tag); - -void $CPrefix$$Service$_$Method$_Finish( - GRPC_client_async_reader *reader, - void *tag); -/* call GRPC_completion_queue_next on the cq to wait for result */ -/* the reader object is automatically freed when the request ends */ - -)"); + "\n" + "/* Async */\n" + "GRPC_client_async_reader *$CPrefix$$Service$_$Method$_Async(\n" + " GRPC_client_context *const context,\n" + " GRPC_completion_queue *cq,\n" + " const $CPrefix$$Request$ request);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Read_Async(\n" + " GRPC_client_async_reader *reader,\n" + " $CPrefix$$Response$ *response,\n" + " void *tag);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Finish(\n" + " GRPC_client_async_reader *reader,\n" + " void *tag);\n" + "/* call GRPC_completion_queue_next on the cq to wait for result */\n" + "/* the reader object is automatically freed when the request ends */\n" + "\n" + "\n"); } else if (method->BidiStreaming()) { // Bidi printer->Print( *vars, -R"( -/* Sync */ -GRPC_client_reader_writer *$CPrefix$$Service$_$Method$( - GRPC_client_context *const context); - -bool $CPrefix$$Service$_$Method$_Read( - GRPC_client_reader_writer *reader_writer, - $CPrefix$$Response$ *response); - -bool $CPrefix$$Service$_$Method$_Write( - GRPC_client_reader_writer *reader_writer, - $CPrefix$$Request$ request); - -/* Signals to the server that we are no longer sending request items */ -bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer); - -/* Ends the call. The reader_writer object is automatically freed */ -GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer); -)"); + "\n" + "/* Sync */\n" + "GRPC_client_reader_writer *$CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context);\n" + "\n" + "bool $CPrefix$$Service$_$Method$_Read(\n" + " GRPC_client_reader_writer *reader_writer,\n" + " $CPrefix$$Response$ *response);\n" + "\n" + "bool $CPrefix$$Service$_$Method$_Write(\n" + " GRPC_client_reader_writer *reader_writer,\n" + " $CPrefix$$Request$ request);\n" + "\n" + "/* Signals to the server that we are no longer sending request items */\n" + "bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer);\n" + "\n" + "/* Ends the call. The reader_writer object is automatically freed */\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer);\n" + "\n"); printer->Print( *vars, - R"( -/* Async */ -GRPC_client_async_reader_writer *$CPrefix$$Service$_$Method$_Async( - GRPC_client_context *const context); - -void $CPrefix$$Service$_$Method$_Read_Async( - GRPC_client_async_reader_writer *reader_writer, - $CPrefix$$Response$ *response, - void *tag); - -void $CPrefix$$Service$_$Method$_Write_Async( - GRPC_client_async_reader_writer *reader_writer, - $CPrefix$$Request$ request, - void *tag); - -void $CPrefix$$Service$_$Method$_Finish( - GRPC_client_async_reader_writer *reader_writer, - void *tag); -/* call GRPC_completion_queue_next on the cq to wait for result */ -/* the reader-writer object is automatically freed when the request ends */ - -)"); + "\n" + "/* Async */\n" + "GRPC_client_async_reader_writer *$CPrefix$$Service$_$Method$_Async(\n" + " GRPC_client_context *const context);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Read_Async(\n" + " GRPC_client_async_reader_writer *reader_writer,\n" + " $CPrefix$$Response$ *response,\n" + " void *tag);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Write_Async(\n" + " GRPC_client_async_reader_writer *reader_writer,\n" + " $CPrefix$$Request$ request,\n" + " void *tag);\n" + "\n" + "void $CPrefix$$Service$_$Method$_Finish(\n" + " GRPC_client_async_reader_writer *reader_writer,\n" + " void *tag);\n" + "/* call GRPC_completion_queue_next on the cq to wait for result */\n" + "/* the reader-writer object is automatically freed when the request ends */\n" + "\n" + "\n"); } } @@ -340,146 +339,147 @@ void PrintSourceClientMethod(Printer *printer, (*vars)["MethodEnum"] = "BIDI_STREAMING"; } - printer->Print(*vars, R"( -GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = { - $MethodEnum$, - "/$Package$$Service$/$Method$" -}; -)"); + printer->Print(*vars, + "\n" + "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" + " $MethodEnum$,\n" + " \"/$Package$$Service$/$Method$\"\n" + "};\n" + "\n"); if (method->NoStreaming()) { // Unary printer->Print( *vars, - R"( -GRPC_status $CPrefix$$Service$_$Method$( - GRPC_client_context *const context, - const $CPrefix$$Request$ request, - $CPrefix$$Response$ *response) { - const GRPC_message request_msg = { &request, sizeof(request) }; - GRPC_client_context_set_serialization_impl(context, - (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - return GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response); -} -)"); + "\n" + "GRPC_status $CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " const $CPrefix$$Request$ request,\n" + " $CPrefix$$Response$ *response) {\n" + " const GRPC_message request_msg = { &request, sizeof(request) };\n" + " GRPC_client_context_set_serialization_impl(context,\n" + " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " return GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response);\n" + "}\n" + "\n"); printer->Print( *vars, - R"( -/* Async */ -GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async( - GRPC_client_context *const context, - GRPC_completion_queue *cq, - const $CPrefix$$Request$ request) { - const GRPC_message request_msg = { &request, sizeof(request) }; - GRPC_client_context_set_serialization_impl(context, - (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - return GRPC_unary_async_call(cq, GRPC_method_$CPrefix$$Service$_$Method$, request_msg, context); -} - -void $CPrefix$$Service$_$Method$_Finish( - GRPC_client_async_response_reader *reader, - $CPrefix$$Response$ *response, - void *tag) { - GRPC_client_async_finish(reader, response, tag); -} -)"); + "\n" + "/* Async */\n" + "GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async(\n" + " GRPC_client_context *const context,\n" + " GRPC_completion_queue *cq,\n" + " const $CPrefix$$Request$ request) {\n" + " const GRPC_message request_msg = { &request, sizeof(request) };\n" + " GRPC_client_context_set_serialization_impl(context,\n" + " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " return GRPC_unary_async_call(cq, GRPC_method_$CPrefix$$Service$_$Method$, request_msg, context);\n" + "}\n" + "\n" + "void $CPrefix$$Service$_$Method$_Finish(\n" + " GRPC_client_async_response_reader *reader,\n" + " $CPrefix$$Response$ *response,\n" + " void *tag) {\n" + " GRPC_client_async_finish(reader, response, tag);\n" + "}\n" + "\n"); } else if (method->ClientOnlyStreaming()) { printer->Print( *vars, - R"( -GRPC_client_writer *$CPrefix$$Service$_$Method$( - GRPC_client_context *const context, - $CPrefix$$Response$ *response) { - GRPC_client_context_set_serialization_impl(context, - (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - return GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, response); -} - -bool $CPrefix$$Service$_$Method$_Write( - GRPC_client_writer *writer, - $CPrefix$$Request$ request) { - const GRPC_message request_msg = { &request, sizeof(request) }; - return GRPC_client_streaming_blocking_write(writer, request_msg); -} - -GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer) { - return GRPC_client_writer_terminate(writer); -} -)"); + "\n" + "GRPC_client_writer *$CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " $CPrefix$$Response$ *response) {\n" + " GRPC_client_context_set_serialization_impl(context,\n" + " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " return GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, response);\n" + "}\n" + "\n" + "bool $CPrefix$$Service$_$Method$_Write(\n" + " GRPC_client_writer *writer,\n" + " $CPrefix$$Request$ request) {\n" + " const GRPC_message request_msg = { &request, sizeof(request) };\n" + " return GRPC_client_streaming_blocking_write(writer, request_msg);\n" + "}\n" + "\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer) {\n" + " return GRPC_client_writer_terminate(writer);\n" + "}\n" + "\n"); printer->Print( *vars, - R"( -/* Async TBD */ -)"); + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->ServerOnlyStreaming()) { printer->Print( *vars, - R"( -GRPC_client_reader *$CPrefix$$Service$_$Method$( - GRPC_client_context *const context, - $CPrefix$$Request$ request) { - const GRPC_message request_msg = { &request, sizeof(request) }; - GRPC_client_context_set_serialization_impl(context, - (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - return GRPC_server_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg); -} - -bool $CPrefix$$Service$_$Method$_Read( - GRPC_client_reader *reader, - $CPrefix$$Response$ *response) { - return GRPC_server_streaming_blocking_read(reader, response); -} - -GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader) { - return GRPC_client_reader_terminate(reader); -} -)"); + "\n" + "GRPC_client_reader *$CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " $CPrefix$$Request$ request) {\n" + " const GRPC_message request_msg = { &request, sizeof(request) };\n" + " GRPC_client_context_set_serialization_impl(context,\n" + " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " return GRPC_server_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg);\n" + "}\n" + "\n" + "bool $CPrefix$$Service$_$Method$_Read(\n" + " GRPC_client_reader *reader,\n" + " $CPrefix$$Response$ *response) {\n" + " return GRPC_server_streaming_blocking_read(reader, response);\n" + "}\n" + "\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader) {\n" + " return GRPC_client_reader_terminate(reader);\n" + "}\n" + "\n"); printer->Print( *vars, - R"( -/* Async TBD */ -)"); + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->BidiStreaming()) { printer->Print( *vars, - R"( -GRPC_client_reader_writer *$CPrefix$$Service$_$Method$( - GRPC_client_context *const context) { - GRPC_client_context_set_serialization_impl(context, - (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer }); - return GRPC_bidi_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context); -} - -bool $CPrefix$$Service$_$Method$_Read( - GRPC_client_reader_writer *reader_writer, - $CPrefix$$Response$ *response) { - return GRPC_bidi_streaming_blocking_read(reader_writer, response); -} - -bool $CPrefix$$Service$_$Method$_Write( - GRPC_client_reader_writer *reader_writer, - $CPrefix$$Request$ request) { - const GRPC_message request_msg = { &request, sizeof(request) }; - return GRPC_bidi_streaming_blocking_write(reader_writer, request_msg); -} - -bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer) { - return GRPC_bidi_streaming_blocking_writes_done(reader_writer); -} - -GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer) { - return GRPC_client_reader_writer_terminate(reader_writer); -} -)"); + "\n" + "GRPC_client_reader_writer *$CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context) {\n" + " GRPC_client_context_set_serialization_impl(context,\n" + " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " return GRPC_bidi_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context);\n" + "}\n" + "\n" + "bool $CPrefix$$Service$_$Method$_Read(\n" + " GRPC_client_reader_writer *reader_writer,\n" + " $CPrefix$$Response$ *response) {\n" + " return GRPC_bidi_streaming_blocking_read(reader_writer, response);\n" + "}\n" + "\n" + "bool $CPrefix$$Service$_$Method$_Write(\n" + " GRPC_client_reader_writer *reader_writer,\n" + " $CPrefix$$Request$ request) {\n" + " const GRPC_message request_msg = { &request, sizeof(request) };\n" + " return GRPC_bidi_streaming_blocking_write(reader_writer, request_msg);\n" + "}\n" + "\n" + "bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer) {\n" + " return GRPC_bidi_streaming_blocking_writes_done(reader_writer);\n" + "}\n" + "\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer) {\n" + " return GRPC_client_reader_writer_terminate(reader_writer);\n" + "}\n" + "\n"); printer->Print( *vars, - R"( -/* Async TBD */ -)"); + "\n" + "/* Async TBD */\n" + "\n"); } } @@ -530,10 +530,10 @@ grpc::string GetHeaderServices(File *file, for (auto& msg : dynamic_cast(file)->messages()) { std::map vars_msg(vars); vars_msg["msgType"] = msg->name(); - printer->Print(vars_msg, R"( -GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input); -void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output); -)"); + printer->Print(vars_msg, "\n" + "GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input);\n" + "void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output);\n" + "\n"); } printer->Print("\n"); @@ -586,10 +586,10 @@ grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { vars["service_header_ext"] = file->service_header_ext(); printer->Print(vars, BlockifyComments( -R"( -// Generated by the gRPC protobuf plugin. -// If you make any local change, they will be lost. -)").c_str()); + "\n" + "// Generated by the gRPC protobuf plugin.\n" + "// If you make any local change, they will be lost.\n" + "\n").c_str()); grpc::string filename; { @@ -675,10 +675,10 @@ grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { vars["message_header_ext"] = file->message_header_ext(); printer->Print(vars, BlockifyComments( - R"( -// Generated by the gRPC protobuf plugin. -// If you make any local change, they will be lost. -)").c_str()); + "\n" + "// Generated by the gRPC protobuf plugin.\n" + "// If you make any local change, they will be lost.\n" + "\n").c_str()); grpc::string filename; { @@ -745,28 +745,28 @@ grpc::string GetSourceServices(File *file, for (auto& msg : dynamic_cast(file)->messages()) { std::map vars_msg(vars); vars_msg["msgType"] = msg->name(); - printer->Print(vars_msg, R"( -GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input) { - pb_ostream_t ostream = { - .callback = GRPC_pb_compat_dynamic_array_callback, - .state = GRPC_pb_compat_dynamic_array_alloc(), - .max_size = SIZE_MAX - }; - pb_encode(&ostream, $CPrefix$$msgType$_fields, input.data); - GRPC_message msg = (GRPC_message) { - GRPC_pb_compat_dynamic_array_get_content(ostream.state), - ostream.bytes_written - }; - GRPC_pb_compat_dynamic_array_free(ostream.state); - return msg; -} -)"); - printer->Print(vars_msg, R"( -void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output) { - pb_istream_t istream = pb_istream_from_buffer((void *) input.data, input.length); - pb_decode(&istream, $CPrefix$$msgType$_fields, output); -} -)"); + printer->Print(vars_msg, "\n" + "GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input) {\n" + " pb_ostream_t ostream = {\n" + " .callback = GRPC_pb_compat_dynamic_array_callback,\n" + " .state = GRPC_pb_compat_dynamic_array_alloc(),\n" + " .max_size = SIZE_MAX\n" + " };\n" + " pb_encode(&ostream, $CPrefix$$msgType$_fields, input.data);\n" + " GRPC_message msg = (GRPC_message) {\n" + " GRPC_pb_compat_dynamic_array_get_content(ostream.state),\n" + " ostream.bytes_written\n" + " };\n" + " GRPC_pb_compat_dynamic_array_free(ostream.state);\n" + " return msg;\n" + "}\n" + "\n"); + printer->Print(vars_msg, "\n" + "void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output) {\n" + " pb_istream_t istream = pb_istream_from_buffer((void *) input.data, input.length);\n" + " pb_decode(&istream, $CPrefix$$msgType$_fields, output);\n" + "}\n" + "\n"); } for (int i = 0; i < file->service_count(); ++i) { From fe2e9fa13c0bf18c163187525944bfe5fce087db Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 26 Jul 2016 18:05:49 -0700 Subject: [PATCH 124/202] build nanopb before using it --- Makefile | 37 +++++++++++++++++++++++-------------- templates/Makefile.template | 12 +++++++++++- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 4a6f2c1d62fdd..26421ab349e52 100644 --- a/Makefile +++ b/Makefile @@ -259,6 +259,8 @@ prefix ?= /usr/local NANOPB_DIR := $(abspath third_party/nanopb) NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c +NANOPB_DEP := $(NANOPB_DIR)/generator/proto/nanopb_pb2.py $(NANOPB_DIR)/generator/proto/plugin_pb2.py + PROTOC ?= protoc DTRACE ?= dtrace CONFIG ?= opt @@ -1932,7 +1934,7 @@ $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_ba $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -1957,7 +1959,7 @@ $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: src/proto/grpc/ref $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -1982,7 +1984,7 @@ $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/com $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2007,7 +2009,7 @@ $(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.p $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/control.pbc.c: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c +$(GENDIR)/src/proto/grpc/testing/control.pbc.c: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2032,7 +2034,7 @@ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2057,7 +2059,7 @@ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/echo.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c +$(GENDIR)/src/proto/grpc/testing/echo.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2082,7 +2084,7 @@ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/ech $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2107,7 +2109,7 @@ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/empty.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/empty.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2132,7 +2134,7 @@ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/messages.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/messages.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2157,7 +2159,7 @@ $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.p $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/metrics.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/metrics.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2182,7 +2184,7 @@ $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/payloads.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/payloads.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2207,7 +2209,7 @@ $(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/services.pbc.c: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c +$(GENDIR)/src/proto/grpc/testing/services.pbc.c: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2232,7 +2234,7 @@ $(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/stats.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/stats.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -2257,7 +2259,7 @@ $(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/test.pbc.c: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c +$(GENDIR)/src/proto/grpc/testing/test.pbc.c: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -16164,3 +16166,10 @@ endif .PHONY: printvars printvars: @$(foreach V,$(sort $(.VARIABLES)), $(if $(filter-out environment% default automatic, $(origin $V)),$(warning $V=$($V) ($(value $V))))) + +# Build Nanopb before using it +$(NANOPB_DIR)/generator/proto/nanopb_pb2.py: + $(E) "[NANOPB] Preparing Nanopb" + $(Q) $(MAKE) -C $(NANOPB_DIR)/generator/proto + +$(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py diff --git a/templates/Makefile.template b/templates/Makefile.template index 88340a450aefc..7861ca22e009d 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -149,6 +149,8 @@ NANOPB_DIR := $(abspath third_party/nanopb) NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c + NANOPB_DEP := $(NANOPB_DIR)/generator/proto/nanopb_pb2.py $(NANOPB_DIR)/generator/proto/plugin_pb2.py + PROTOC ?= protoc DTRACE ?= dtrace CONFIG ?= opt @@ -1161,7 +1163,7 @@ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< - $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} + $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< @@ -1808,3 +1810,11 @@ @$(foreach V,$(sort $(.VARIABLES)), \ $(if $(filter-out environment% default automatic, \ $(origin $V)),$(warning $V=$($V) ($(value $V))))) + + # Build Nanopb before using it + $(NANOPB_DIR)/generator/proto/nanopb_pb2.py: + $(E) "[NANOPB] Preparing Nanopb" + $(Q) $(MAKE) -C $(NANOPB_DIR)/generator/proto + + $(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py + From 47112a599a5403da3d737a9c62f156bb8bc74345 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 26 Jul 2016 18:24:56 -0700 Subject: [PATCH 125/202] use iterator instead of range-based for loops to work with gcc 4.4 --- src/compiler/c_generator.cc | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index c3b8dd99ee563..338ec47b02cca 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -76,14 +76,14 @@ grpc::string Join(std::vector lines, grpc::string delim) { } grpc::string BlockifyComments(grpc::string input) { - constexpr int kMaxCharactersPerLine = 90; + const int kMaxCharactersPerLine = 90; std::vector lines = grpc_generator::tokenize(input, "\n"); // kill trailing new line if (lines[lines.size() - 1] == "") lines.pop_back(); - for (grpc::string& str : lines) { - grpc_generator::StripPrefix(&str, "//"); - str.append(std::max(size_t(0), kMaxCharactersPerLine - str.size()), ' '); - str = "/* " + str + " */"; + for (auto itr = lines.begin(); itr != lines.end(); itr++) { + grpc_generator::StripPrefix(&*itr, "//"); + (*itr).append(std::max(size_t(0), kMaxCharactersPerLine - (*itr).size()), ' '); + *itr = "/* " + *itr + " */"; } return Join(lines, "\n"); } @@ -527,9 +527,10 @@ grpc::string GetHeaderServices(File *file, // This should be handled in protoc but there's nothing we can do at the moment // given we're on nanopb. printer->Print("typedef struct GRPC_message GRPC_message;\n"); - for (auto& msg : dynamic_cast(file)->messages()) { + auto messages = dynamic_cast(file)->messages(); + for (auto itr = messages.begin(); itr != messages.end(); itr++) { std::map vars_msg(vars); - vars_msg["msgType"] = msg->name(); + vars_msg["msgType"] = (*itr)->name(); printer->Print(vars_msg, "\n" "GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input);\n" "void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output);\n" @@ -602,10 +603,11 @@ grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); printer->Print(vars, "/* Other message dependencies */\n"); // include all other service headers on which this one depends - for (auto &depFile : dynamic_cast(file)->dependencies()) { + auto deps = dynamic_cast(file)->dependencies(); + for (auto itr = deps.begin(); itr != deps.end(); itr++) { std::map depvars(vars); - depvars["filename_base"] = depFile->filename_without_ext(); - depvars["service_header_ext"] = depFile->service_header_ext(); + depvars["filename_base"] = (*itr)->filename_without_ext(); + depvars["service_header_ext"] = (*itr)->service_header_ext(); printer->Print(depvars, "#include \"$filename_base$$service_header_ext$\"\n"); } printer->Print(vars, "/* Service header */\n"); @@ -742,9 +744,10 @@ grpc::string GetSourceServices(File *file, // We need to generate a short serialization helper for every message type // This should be handled in protoc but there's nothing we can do at the moment // given we're on nanopb. - for (auto& msg : dynamic_cast(file)->messages()) { + auto messages = dynamic_cast(file)->messages(); + for (auto itr = messages.begin(); itr != messages.end(); itr++) { std::map vars_msg(vars); - vars_msg["msgType"] = msg->name(); + vars_msg["msgType"] = (*itr)->name(); printer->Print(vars_msg, "\n" "GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input) {\n" " pb_ostream_t ostream = {\n" @@ -778,3 +781,4 @@ grpc::string GetSourceServices(File *file, } } // namespace grpc_c_generator + From 3bf8e3ab6d7be1fd0cc986ddf6ce2573c5f23d22 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 27 Jul 2016 14:37:08 -0700 Subject: [PATCH 126/202] search for protoc and feed it to nanopb --- Makefile | 2 +- templates/Makefile.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 26421ab349e52..f60e8013a8113 100644 --- a/Makefile +++ b/Makefile @@ -16170,6 +16170,6 @@ printvars: # Build Nanopb before using it $(NANOPB_DIR)/generator/proto/nanopb_pb2.py: $(E) "[NANOPB] Preparing Nanopb" - $(Q) $(MAKE) -C $(NANOPB_DIR)/generator/proto + $(Q) PATH=`dirname $(PROTOC)`:$$(dirname `command -v protoc || echo .`):$$PATH $(MAKE) -C $(NANOPB_DIR)/generator/proto $(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py diff --git a/templates/Makefile.template b/templates/Makefile.template index 7861ca22e009d..8668ee02692fa 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1814,7 +1814,7 @@ # Build Nanopb before using it $(NANOPB_DIR)/generator/proto/nanopb_pb2.py: $(E) "[NANOPB] Preparing Nanopb" - $(Q) $(MAKE) -C $(NANOPB_DIR)/generator/proto + $(Q) PATH=`dirname $(PROTOC)`:$$(dirname `command -v protoc || echo .`):$$PATH $(MAKE) -C $(NANOPB_DIR)/generator/proto $(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py From 6330f6a3f3372153f5f2d999ea9513cceaf98730 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Thu, 28 Jul 2016 00:20:35 +0200 Subject: [PATCH 127/202] Alternative way to build nanopb files. --- Makefile | 6 +++--- templates/Makefile.template | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index f60e8013a8113..92d07eb8a9222 100644 --- a/Makefile +++ b/Makefile @@ -16168,8 +16168,8 @@ printvars: @$(foreach V,$(sort $(.VARIABLES)), $(if $(filter-out environment% default automatic, $(origin $V)),$(warning $V=$($V) ($(value $V))))) # Build Nanopb before using it -$(NANOPB_DIR)/generator/proto/nanopb_pb2.py: - $(E) "[NANOPB] Preparing Nanopb" - $(Q) PATH=`dirname $(PROTOC)`:$$(dirname `command -v protoc || echo .`):$$PATH $(MAKE) -C $(NANOPB_DIR)/generator/proto $(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py + +%_pb2.py: %.proto + $(PROTOC) --python_out=$(dir $<) $< diff --git a/templates/Makefile.template b/templates/Makefile.template index 8668ee02692fa..999285009c128 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1812,9 +1812,8 @@ $(origin $V)),$(warning $V=$($V) ($(value $V))))) # Build Nanopb before using it - $(NANOPB_DIR)/generator/proto/nanopb_pb2.py: - $(E) "[NANOPB] Preparing Nanopb" - $(Q) PATH=`dirname $(PROTOC)`:$$(dirname `command -v protoc || echo .`):$$PATH $(MAKE) -C $(NANOPB_DIR)/generator/proto $(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py + %%_pb2.py: %.proto + $(PROTOC) --python_out=$(dir $<) $< From 7fc45053d360f7d225bb3d1bba8bde5ed65e83c9 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 27 Jul 2016 15:42:06 -0700 Subject: [PATCH 128/202] use our nanopb make rules instead of the one in nanopb module --- Makefile | 10 ++++------ templates/Makefile.template | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 92d07eb8a9222..3d7424a66edc5 100644 --- a/Makefile +++ b/Makefile @@ -16167,9 +16167,7 @@ endif printvars: @$(foreach V,$(sort $(.VARIABLES)), $(if $(filter-out environment% default automatic, $(origin $V)),$(warning $V=$($V) ($(value $V))))) -# Build Nanopb before using it - -$(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py - -%_pb2.py: %.proto - $(PROTOC) --python_out=$(dir $<) $< +# Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) +$(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto + $(E) "[NANOPB] Compiling $<" + $(Q) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $< diff --git a/templates/Makefile.template b/templates/Makefile.template index 999285009c128..b40d54ebe8fd8 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1811,9 +1811,7 @@ $(if $(filter-out environment% default automatic, \ $(origin $V)),$(warning $V=$($V) ($(value $V))))) - # Build Nanopb before using it - - $(NANOPB_DIR)/generator/proto/plugin_pb2.py: $(NANOPB_DIR)/generator/proto/nanopb_pb2.py - - %%_pb2.py: %.proto - $(PROTOC) --python_out=$(dir $<) $< + # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) + $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto + $(E) "[NANOPB] Compiling $<" + $(Q) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $< From f6d4f6d0e6fccb0cf60dccd515df9c39fa64efd0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 27 Jul 2016 16:40:26 -0700 Subject: [PATCH 129/202] ensure protoc is ready --- Makefile | 2 +- templates/Makefile.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3d7424a66edc5..653ba499eb60f 100644 --- a/Makefile +++ b/Makefile @@ -16168,6 +16168,6 @@ printvars: @$(foreach V,$(sort $(.VARIABLES)), $(if $(filter-out environment% default automatic, $(origin $V)),$(warning $V=$($V) ($(value $V))))) # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) -$(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto +$(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) $(E) "[NANOPB] Compiling $<" $(Q) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $< diff --git a/templates/Makefile.template b/templates/Makefile.template index b40d54ebe8fd8..9fecddcd4ecf0 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1812,6 +1812,6 @@ $(origin $V)),$(warning $V=$($V) ($(value $V))))) # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) - $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto + $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) $(E) "[NANOPB] Compiling $<" $(Q) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $< From d073254fcfb5383258b89a788f06e08639ba7103 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 28 Jul 2016 17:25:44 -0700 Subject: [PATCH 130/202] [wip] resolve more portability issues and make serialization pluggable --- include/grpc_c/codegen/pb_compat.h | 10 +--- include/grpc_c/declare_serializer.h | 64 +++++++++++++++++++++ include/grpc_c/grpc_c.h | 2 - src/c/pb_compat.c | 28 ++++++++++ src/compiler/c_generator.cc | 86 +++++++++++++++-------------- 5 files changed, 141 insertions(+), 49 deletions(-) create mode 100644 include/grpc_c/declare_serializer.h diff --git a/include/grpc_c/codegen/pb_compat.h b/include/grpc_c/codegen/pb_compat.h index 49b6e4d99bcfe..025db4dae7f3a 100644 --- a/include/grpc_c/codegen/pb_compat.h +++ b/include/grpc_c/codegen/pb_compat.h @@ -35,15 +35,11 @@ #define GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H #include +#include #include #include -typedef struct GRPC_pb_dynamic_array_state GRPC_pb_dynamic_array_state; -typedef struct pb_ostream_s pb_ostream_t; - -bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count); -GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc(); -void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state); -void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state); +GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, void *fields); +void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, void *fields); #endif /* GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H */ diff --git a/include/grpc_c/declare_serializer.h b/include/grpc_c/declare_serializer.h new file mode 100644 index 0000000000000..58ce1068a1a00 --- /dev/null +++ b/include/grpc_c/declare_serializer.h @@ -0,0 +1,64 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_DECLARE_SERIALIZER_H +#define GRPC_C_DECLARE_SERIALIZER_H + +/** + * Procedures to hook up gRPC-C to a user-defined serialization mechanism + * ====================================================================== + * + * First take a look at https://github.com/google/flatbuffers/blob/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70/include/flatbuffers/grpc.h + * which glues FlatBuffers to gRPC-C++. For every new serialization algorithm, we need to create a similar file that + * imports this declare_serializer.h, and partially specializes the GRPC_SERIALIZATION_IMPL_MSGTYPE macro defined here. This mirrors + * the C++ template partial specialization method and allows plugging in new serialization implementations with + * zero knowledge from the gRPC library. Of course we need to include this file in our message header, which is in turn + * referenced by the generated service implementation. This will typically be controlled by a switch in the codegen, so + * as to avoid constantly pulling in the gRPC dependency in any other use cases of the serialization library. + * + * Because we wouldn't want to hack the Nanopb, specializations for Nanopb are hardcoded in the gRPC library, and are + * automatically activated when Nanopb objects are detected. + * + * The service implementation expands the GRPC_C_RESOLVE_SERIALIZER(MessageType) macro, which is expected to provide the + * grpc_serialization_impl struct instance that handles serialization for that particular message type. + */ + + +#define GRPC_C_RESOLVE_SERIALIZER(msgType) GRPC_C_FETCH_SERIALIZER(GRPC_C_DECLARE_SERIALIZATION_##msgType) +#define GRPC_C_RESOLVE_DESERIALIZER(msgType) GRPC_C_FETCH_DESERIALIZER(GRPC_C_DECLARE_SERIALIZATION_##msgType) +#define GRPC_C_FETCH_SERIALIZER(...) GRPC_C_FETCH_SERIALIZER_PRIMITIVE(__VA_ARGS__) +#define GRPC_C_FETCH_DESERIALIZER(...) GRPC_C_FETCH_DESERIALIZER_PRIMITIVE(__VA_ARGS__) +#define GRPC_C_FETCH_SERIALIZER_PRIMITIVE(x, y) x +#define GRPC_C_FETCH_DESERIALIZER_PRIMITIVE(x, y) y + +#endif /* GRPC_C_DECLARE_SERIALIZER_H */ diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 97f0112044a64..8fe16b7e47dc4 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -35,8 +35,6 @@ #define GRPC_C_PUBLIC_H typedef struct grpc_channel GRPC_channel; -/* The GRPC_status type is exposed to the end user */ -typedef struct GRPC_status GRPC_status; typedef struct grpc_client_context GRPC_client_context; typedef struct grpc_completion_queue GRPC_completion_queue; diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index 3de45cfb68e53..c1358f813135f 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include "src/c/alloc.h" @@ -48,6 +49,13 @@ typedef struct GRPC_pb_dynamic_array_state { size_t capacity; } GRPC_pb_dynamic_array_state; +typedef struct GRPC_pb_dynamic_array_state GRPC_pb_dynamic_array_state; + +bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count); +GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc(); +void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state); +void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state); + static size_t upper_power_of_two(size_t v) { v--; @@ -87,3 +95,23 @@ bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t * void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state) { return state->data; } + +GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, void *fields) { + pb_ostream_t ostream = { + .callback = GRPC_pb_compat_dynamic_array_callback, + .state = GRPC_pb_compat_dynamic_array_alloc(), + .max_size = SIZE_MAX + }; + pb_encode(&ostream, fields, input.data); + GRPC_message msg = (GRPC_message) { + GRPC_pb_compat_dynamic_array_get_content(ostream.state), + ostream.bytes_written + }; + GRPC_pb_compat_dynamic_array_free(ostream.state); + return msg; +} + +void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, void *fields) { + pb_istream_t istream = pb_istream_from_buffer((void *) input.data, input.length); + pb_decode(&istream, fields, output); +} diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 338ec47b02cca..5e8a2f9b7fa98 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -358,7 +358,7 @@ void PrintSourceClientMethod(Printer *printer, " $CPrefix$$Response$ *response) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" " return GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response);\n" "}\n" "\n"); @@ -372,7 +372,7 @@ void PrintSourceClientMethod(Printer *printer, " const $CPrefix$$Request$ request) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" " return GRPC_unary_async_call(cq, GRPC_method_$CPrefix$$Service$_$Method$, request_msg, context);\n" "}\n" "\n" @@ -392,7 +392,7 @@ void PrintSourceClientMethod(Printer *printer, " GRPC_client_context *const context,\n" " $CPrefix$$Response$ *response) {\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" " return GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, response);\n" "}\n" "\n" @@ -423,7 +423,7 @@ void PrintSourceClientMethod(Printer *printer, " $CPrefix$$Request$ request) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" " return GRPC_server_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg);\n" "}\n" "\n" @@ -450,7 +450,7 @@ void PrintSourceClientMethod(Printer *printer, "GRPC_client_reader_writer *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context) {\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { $CPrefix$$Request$_serializer, $CPrefix$$Response$_deserializer });\n" + " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" " return GRPC_bidi_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context);\n" "}\n" "\n" @@ -523,21 +523,6 @@ grpc::string GetHeaderServices(File *file, // TODO(yifeit): hook this up to C prefix vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; - // We need to generate a short serialization helper for every message type - // This should be handled in protoc but there's nothing we can do at the moment - // given we're on nanopb. - printer->Print("typedef struct GRPC_message GRPC_message;\n"); - auto messages = dynamic_cast(file)->messages(); - for (auto itr = messages.begin(); itr != messages.end(); itr++) { - std::map vars_msg(vars); - vars_msg["msgType"] = (*itr)->name(); - printer->Print(vars_msg, "\n" - "GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input);\n" - "void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output);\n" - "\n"); - } - printer->Print("\n"); - for (int i = 0; i < file->service_count(); ++i) { PrintHeaderService(printer.get(), file->service(i).get(), &vars); printer->Print("\n"); @@ -646,7 +631,8 @@ grpc::string GetSourceIncludes(File *file, // Relying on Nanopb for Protobuf serialization for now nano_encode.c_str(), nano_decode.c_str(), - "grpc_c/codegen/pb_compat.h" + "grpc_c/codegen/pb_compat.h", + "grpc_c/declare_serializer.h" }; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); @@ -739,36 +725,56 @@ grpc::string GetSourceServices(File *file, vars["Package"].append("."); } // TODO(yifeit): hook this up to C prefix + // TODO(yifeit): what if proto files in the dependency tree had different packages + // we are using the same prefix for all referenced type vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; + // We need to generate a declaration of serialization helper for every message type we could use + // in this file. The implementations will be scattered across different service implementation files. + auto messages = dynamic_cast(file)->messages(); + std::vector all_message_names; + for (auto itr = messages.begin(); itr != messages.end(); itr++) { + all_message_names.push_back((*itr)->name()); + } + for (int i = 0; i < file->service_count(); i++) { + auto service = file->service(i); + for (int j = 0; j < service->method_count(); j++) { + auto method = service->method(j); + all_message_names.push_back(method->input_type_name()); + all_message_names.push_back(method->output_type_name()); + } + } + std::set dedupe_message_names(all_message_names.begin(), all_message_names.end()); + for (auto itr = dedupe_message_names.begin(); itr != dedupe_message_names.end(); itr++) { + std::map vars_msg(vars); + vars_msg["msgType"] = (*itr); + printer->Print(vars_msg, "\n" + "#ifdef $CPrefix$$msgType$_init_default\n" + "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const GRPC_message input);\n" + "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output);\n" + "#endif\n" + "\n"); + } + printer->Print("\n"); + // We need to generate a short serialization helper for every message type // This should be handled in protoc but there's nothing we can do at the moment // given we're on nanopb. - auto messages = dynamic_cast(file)->messages(); for (auto itr = messages.begin(); itr != messages.end(); itr++) { std::map vars_msg(vars); vars_msg["msgType"] = (*itr)->name(); printer->Print(vars_msg, "\n" - "GRPC_message $CPrefix$$msgType$_serializer(const GRPC_message input) {\n" - " pb_ostream_t ostream = {\n" - " .callback = GRPC_pb_compat_dynamic_array_callback,\n" - " .state = GRPC_pb_compat_dynamic_array_alloc(),\n" - " .max_size = SIZE_MAX\n" - " };\n" - " pb_encode(&ostream, $CPrefix$$msgType$_fields, input.data);\n" - " GRPC_message msg = (GRPC_message) {\n" - " GRPC_pb_compat_dynamic_array_get_content(ostream.state),\n" - " ostream.bytes_written\n" - " };\n" - " GRPC_pb_compat_dynamic_array_free(ostream.state);\n" - " return msg;\n" + "#ifdef $CPrefix$$msgType$_init_default\n" + "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const GRPC_message input) {\n" + " return GRPC_pb_compat_generic_serializer(input, $CPrefix$$msgType$_fields);\n" "}\n" - "\n"); - printer->Print(vars_msg, "\n" - "void $CPrefix$$msgType$_deserializer(const GRPC_message input, void *output) {\n" - " pb_istream_t istream = pb_istream_from_buffer((void *) input.data, input.length);\n" - " pb_decode(&istream, $CPrefix$$msgType$_fields, output);\n" + "\n" + "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output) {\n" + " return GRPC_pb_compat_generic_deserializer(input, output, $CPrefix$$msgType$_fields);\n" "}\n" + "#define GRPC_C_DECLARE_SERIALIZATION_$CPrefix$$msgType$ \\" + " ($CPrefix$$msgType$_nanopb_serializer, $CPrefix$$msgType$_nanopb_deserializer)\n" + "#endif\n" "\n"); } From b3a433fce946274c876235c2ba67c5beecce109b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 28 Jul 2016 17:36:46 -0700 Subject: [PATCH 131/202] fix syntax errors --- BUILD | 1 + Makefile | 1 + build.yaml | 1 + include/grpc_c/client_context.h | 1 + include/grpc_c/codegen/pb_compat.h | 4 ++-- src/c/pb_compat.c | 4 ++-- src/compiler/c_generator.cc | 4 ++-- tools/run_tests/sources_and_headers.json | 2 ++ vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 1 + vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 3 +++ 10 files changed, 16 insertions(+), 6 deletions(-) diff --git a/BUILD b/BUILD index 355138798993f..d371e35076112 100644 --- a/BUILD +++ b/BUILD @@ -589,6 +589,7 @@ cc_library( "include/grpc_c/codegen/unary_async_call.h", "include/grpc_c/codegen/unary_blocking_call.h", "include/grpc_c/completion_queue.h", + "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", "include/grpc_c/status.h", ], diff --git a/Makefile b/Makefile index 653ba499eb60f..01728dd56f4c9 100644 --- a/Makefile +++ b/Makefile @@ -3000,6 +3000,7 @@ PUBLIC_HEADERS_C += \ include/grpc_c/codegen/unary_async_call.h \ include/grpc_c/codegen/unary_blocking_call.h \ include/grpc_c/completion_queue.h \ + include/grpc_c/declare_serializer.h \ include/grpc_c/grpc_c.h \ include/grpc_c/status.h \ diff --git a/build.yaml b/build.yaml index bb7667d7b442d..0ab699ae37da0 100644 --- a/build.yaml +++ b/build.yaml @@ -844,6 +844,7 @@ libs: - include/grpc_c/codegen/unary_async_call.h - include/grpc_c/codegen/unary_blocking_call.h - include/grpc_c/completion_queue.h + - include/grpc_c/declare_serializer.h - include/grpc_c/grpc_c.h - include/grpc_c/status.h headers: diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index 0e2f352081d15..fd22fce354480 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -35,6 +35,7 @@ #define GRPC_C_CONTEXT_PUBLIC_H #include +#include GRPC_client_context *GRPC_client_context_create(GRPC_channel *chan); void GRPC_client_context_destroy(GRPC_client_context **context); diff --git a/include/grpc_c/codegen/pb_compat.h b/include/grpc_c/codegen/pb_compat.h index 025db4dae7f3a..72331d0dff39a 100644 --- a/include/grpc_c/codegen/pb_compat.h +++ b/include/grpc_c/codegen/pb_compat.h @@ -39,7 +39,7 @@ #include #include -GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, void *fields); -void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, void *fields); +GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, const void *fields); +void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, const void *fields); #endif /* GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H */ diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index c1358f813135f..d446fb7588add 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -96,7 +96,7 @@ void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *stat return state->data; } -GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, void *fields) { +GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, const void *fields) { pb_ostream_t ostream = { .callback = GRPC_pb_compat_dynamic_array_callback, .state = GRPC_pb_compat_dynamic_array_alloc(), @@ -111,7 +111,7 @@ GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, void *f return msg; } -void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, void *fields) { +void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, const void *fields) { pb_istream_t istream = pb_istream_from_buffer((void *) input.data, input.length); pb_decode(&istream, fields, output); } diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 5e8a2f9b7fa98..20e949826e1ff 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -772,8 +772,8 @@ grpc::string GetSourceServices(File *file, "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output) {\n" " return GRPC_pb_compat_generic_deserializer(input, output, $CPrefix$$msgType$_fields);\n" "}\n" - "#define GRPC_C_DECLARE_SERIALIZATION_$CPrefix$$msgType$ \\" - " ($CPrefix$$msgType$_nanopb_serializer, $CPrefix$$msgType$_nanopb_deserializer)\n" + "#define GRPC_C_DECLARE_SERIALIZATION_$CPrefix$$msgType$ \\\n" + " $CPrefix$$msgType$_nanopb_serializer, $CPrefix$$msgType$_nanopb_deserializer\n" "#endif\n" "\n"); } diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 3a3bddd6f002b..d02d2d94cbeae 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4269,6 +4269,7 @@ "include/grpc_c/codegen/unary_async_call.h", "include/grpc_c/codegen/unary_blocking_call.h", "include/grpc_c/completion_queue.h", + "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", "include/grpc_c/status.h", "src/c/alloc.h", @@ -4301,6 +4302,7 @@ "include/grpc_c/codegen/unary_async_call.h", "include/grpc_c/codegen/unary_blocking_call.h", "include/grpc_c/completion_queue.h", + "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", "include/grpc_c/status.h", "src/c/alloc.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index b2ca96f2c9ec9..f780c118f3cd4 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -271,6 +271,7 @@ + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index ca3cc8f7781af..e7e5d5d01f164 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -81,6 +81,9 @@ include\grpc_c + + include\grpc_c + include\grpc_c From ea25445e3fa7cacc85d61072f2b399507ee83ff8 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 28 Jul 2016 17:46:51 -0700 Subject: [PATCH 132/202] commenting --- include/grpc_c/client_context.h | 5 +++++ include/grpc_c/completion_queue.h | 8 ++++++-- include/grpc_c/declare_serializer.h | 8 ++++++++ src/compiler/c_generator.cc | 5 ++++- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index fd22fce354480..fcd2ef05e9c47 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -39,6 +39,11 @@ GRPC_client_context *GRPC_client_context_create(GRPC_channel *chan); void GRPC_client_context_destroy(GRPC_client_context **context); + +/** + * Gets the status of the RPC call. Use it only after the call terminates. + * There is no need to free the returned GRPC_status instance or memory referenced by it. + */ GRPC_status GRPC_get_call_status(GRPC_client_context *context); #endif /* GRPC_C_CONTEXT_PUBLIC_H */ diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 076dd19dc5cb6..398f02043146b 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -39,7 +39,7 @@ typedef struct gpr_timespec GRPC_timespec; -/* Tri-state return for GRPC_commit_ops_and_wait */ +/** Tri-state return for GRPC_commit_ops_and_wait */ typedef enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_SHUTDOWN, /* The completion queue has been shutdown. */ GRPC_COMPLETION_QUEUE_GOT_EVENT, /* Got a new event; \a tag will be filled in with its */ @@ -47,11 +47,15 @@ typedef enum GRPC_completion_queue_next_status { GRPC_COMPLETION_QUEUE_TIMEOUT /* deadline was reached. */ } GRPC_completion_queue_operation_status; +/** Creates a completion queue. You can listen for new events about calls on the queue. */ GRPC_completion_queue *GRPC_completion_queue_create(); + void GRPC_completion_queue_shutdown(GRPC_completion_queue *cq); + +/** Destroys the completion queue and frees resources. The queue must be fully shutdown before this call. */ void GRPC_completion_queue_destroy(GRPC_completion_queue *cq); -/* Swallows events and blocks until it sees the shutdown event */ +/** Swallows events and blocks until it sees the shutdown event */ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq); GRPC_completion_queue_operation_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok); diff --git a/include/grpc_c/declare_serializer.h b/include/grpc_c/declare_serializer.h index 58ce1068a1a00..6055d0f59ef04 100644 --- a/include/grpc_c/declare_serializer.h +++ b/include/grpc_c/declare_serializer.h @@ -61,4 +61,12 @@ #define GRPC_C_FETCH_SERIALIZER_PRIMITIVE(x, y) x #define GRPC_C_FETCH_DESERIALIZER_PRIMITIVE(x, y) y +/** + * Syntax: write this before including gRPC service headers. + * + * #define GRPC_C_DECLARE_SERIALIZATION_Foo foo_serialize, foo_deserialize + * + * This will cause gRPC-C to invoke foo_serialize when sending Foo, and correspondingly foo_deserialize when receiving Foo. + */ + #endif /* GRPC_C_DECLARE_SERIALIZER_H */ diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 20e949826e1ff..80f949102b9a7 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -729,7 +729,9 @@ grpc::string GetSourceServices(File *file, // we are using the same prefix for all referenced type vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; - // We need to generate a declaration of serialization helper for every message type we could use + // The following are Nanopb glue code. Putting them here since we're not going to modify Nanopb. + + // We need to generate a declaration of serialization helper for every nanopb message type we could use // in this file. The implementations will be scattered across different service implementation files. auto messages = dynamic_cast(file)->messages(); std::vector all_message_names; @@ -778,6 +780,7 @@ grpc::string GetSourceServices(File *file, "\n"); } + // Print service implementations for (int i = 0; i < file->service_count(); ++i) { PrintSourceService(printer.get(), file->service(i).get(), &vars); printer->Print("\n"); From e5b50f8dc78933ba83b67ac726d2b673ee5ade96 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 28 Jul 2016 18:05:47 -0700 Subject: [PATCH 133/202] fix bug when service declaration is split across different files --- src/compiler/c_generator.cc | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 80f949102b9a7..c8499057b3ba2 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -587,13 +587,13 @@ grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { printer->Print(vars, "/* Message header */\n"); printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); printer->Print(vars, "/* Other message dependencies */\n"); - // include all other service headers on which this one depends + // include all other message headers on which this one depends auto deps = dynamic_cast(file)->dependencies(); for (auto itr = deps.begin(); itr != deps.end(); itr++) { std::map depvars(vars); depvars["filename_base"] = (*itr)->filename_without_ext(); depvars["service_header_ext"] = (*itr)->service_header_ext(); - printer->Print(depvars, "#include \"$filename_base$$service_header_ext$\"\n"); + printer->Print(depvars, "#include \"$filename_base$$message_header_ext$\"\n"); } printer->Print(vars, "/* Service header */\n"); printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); @@ -754,8 +754,9 @@ grpc::string GetSourceServices(File *file, "#ifdef $CPrefix$$msgType$_init_default\n" "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const GRPC_message input);\n" "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output);\n" - "#endif\n" - "\n"); + "#define GRPC_C_DECLARE_SERIALIZATION_$CPrefix$$msgType$ \\\n" + " $CPrefix$$msgType$_nanopb_serializer, $CPrefix$$msgType$_nanopb_deserializer\n" + "#endif\n"); } printer->Print("\n"); @@ -774,11 +775,9 @@ grpc::string GetSourceServices(File *file, "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output) {\n" " return GRPC_pb_compat_generic_deserializer(input, output, $CPrefix$$msgType$_fields);\n" "}\n" - "#define GRPC_C_DECLARE_SERIALIZATION_$CPrefix$$msgType$ \\\n" - " $CPrefix$$msgType$_nanopb_serializer, $CPrefix$$msgType$_nanopb_deserializer\n" - "#endif\n" - "\n"); + "#endif\n"); } + printer->Print("\n"); // Print service implementations for (int i = 0; i < file->service_count(); ++i) { From 6dec840ef9f47cca888f663dac31d9ac382df504 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 28 Jul 2016 18:08:30 -0700 Subject: [PATCH 134/202] stop including nanopb in generated files --- src/compiler/c_generator.cc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index c8499057b3ba2..566a5c95d3980 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -612,9 +612,6 @@ grpc::string GetSourceIncludes(File *file, auto printer = file->CreatePrinter(&output); std::map vars; - grpc::string nano_encode = params.nanopb_headers_prefix + "pb_encode.h"; - grpc::string nano_decode = params.nanopb_headers_prefix + "pb_decode.h"; - static const char *headers_strs[] = { "grpc_c/status.h", "grpc_c/grpc_c.h", @@ -629,8 +626,6 @@ grpc::string GetSourceIncludes(File *file, "grpc_c/codegen/bidi_streaming_blocking_call.h", "grpc_c/codegen/client_context.h", // Relying on Nanopb for Protobuf serialization for now - nano_encode.c_str(), - nano_decode.c_str(), "grpc_c/codegen/pb_compat.h", "grpc_c/declare_serializer.h" }; From 6002df0a95a4a2cf58747114473e36359624662b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 28 Jul 2016 18:27:15 -0700 Subject: [PATCH 135/202] fix more portability issues stemming from typedef redefinitions --- include/grpc_c/codegen/unary_blocking_call.h | 1 + src/c/bidi_streaming_blocking_call.c | 12 ++++++------ src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.h | 10 ++++------ src/c/client_context.h | 11 ++++------- src/c/client_streaming_blocking_call.c | 4 ++-- src/c/server_streaming_blocking_call.c | 8 ++++---- src/c/unary_async_call.c | 9 ++++----- src/c/unary_blocking_call.c | 5 ++--- 9 files changed, 28 insertions(+), 34 deletions(-) diff --git a/include/grpc_c/codegen/unary_blocking_call.h b/include/grpc_c/codegen/unary_blocking_call.h index 85af39ea1a4e3..e549b53a2d7d4 100644 --- a/include/grpc_c/codegen/unary_blocking_call.h +++ b/include/grpc_c/codegen/unary_blocking_call.h @@ -35,6 +35,7 @@ #define GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_PUBLIC_H #include +#include #include #include diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 9c8d8cf1e579b..c352c9bc3ab75 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -34,10 +34,10 @@ #include #include -#include -#include "src/c/bidi_streaming_blocking_call.h" #include +#include #include +#include "src/c/bidi_streaming_blocking_call.h" #include "src/c/alloc.h" #include "src/c/completion_queue.h" @@ -69,7 +69,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method r .cq = cq, }); - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(cq, &set); if (!ok) { GRPC_client_reader_writer_terminate(reader_writer); @@ -102,7 +102,7 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {0}, response); + grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {0, 0}, response); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, pSet); reader_writer->context->status.ok &= ok; return ok && pSet->message_received; @@ -132,7 +132,7 @@ bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_ .user_tag = &set }; - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, (&set)); reader_writer->context->status.ok &= ok; return ok; @@ -146,7 +146,7 @@ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reade .context = reader_writer->context, .user_tag = &set }; - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); GRPC_completion_queue_shutdown(reader_writer->cq); GRPC_completion_queue_shutdown_wait(reader_writer->cq); diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index d005206b7f6ef..c399d95cb50ae 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -36,7 +36,7 @@ #define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H #include "src/c/call_ops.h" -#include +#include typedef struct grpc_client_reader_writer { grpc_client_context *context; diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 48ba914c798a4..168cedb56a743 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -35,15 +35,13 @@ #ifndef GRPC_C_CALL_OPS_H #define GRPC_C_CALL_OPS_H +#include #include #include +#include #include "src/c/message.h" #include "src/c/client_context.h" -#include -#include -typedef GRPC_method grpc_method; -typedef struct grpc_client_context grpc_client_context; typedef struct grpc_call_op_set grpc_call_op_set; typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_client_context *, grpc_call_op_set *, const grpc_message message, void *response); @@ -61,7 +59,7 @@ typedef struct grpc_closure { void (*callback)(void *arg); } grpc_closure; -typedef struct grpc_call_op_set { +struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; grpc_client_context * const context; @@ -78,7 +76,7 @@ typedef struct grpc_call_op_set { void *user_tag; bool *user_done; /* for clients reading a stream */ grpc_closure async_cleanup; /* will be called when RPC ends */ -} grpc_call_op_set; +}; void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops); diff --git a/src/c/client_context.h b/src/c/client_context.h index e6c649bca2e74..4b6c88258e05c 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -39,15 +39,14 @@ #include #include #include +#include #include #include "src/c/message.h" -#include "src/c/call_ops.h" #include -typedef struct grpc_call_op_set grpc_call_op_set; -typedef struct grpc_serialization_impl grpc_serialization_impl; +typedef struct grpc_client_context grpc_client_context; -typedef struct grpc_client_context { +struct grpc_client_context { grpc_metadata *send_metadata_array; grpc_metadata_array recv_metadata_array; grpc_metadata_array trailing_metadata_array; @@ -64,8 +63,6 @@ typedef struct grpc_client_context { grpc_method rpc_method; grpc_channel *channel; grpc_call *call; -} grpc_client_context; - -typedef grpc_client_context GRPC_client_context; +}; #endif // GRPC_C_CLIENT_CONTEXT_H diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 38851922637e2..92303a96c30d9 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -81,7 +81,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_me }); writer->finish_ops.user_tag = &writer->finish_ops; - grpc_start_batch_from_op_set(writer->call, &set, writer->context, (GRPC_message) {0}, NULL); + grpc_start_batch_from_op_set(writer->call, &set, writer->context, (GRPC_message) {0, 0}, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return writer; } @@ -100,7 +100,7 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC } GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { - grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {0}, writer->response); + grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {0, 0}, writer->response); GRPC_completion_queue_pluck_internal(writer->cq, &writer->finish_ops); GRPC_completion_queue_shutdown(writer->cq); GRPC_completion_queue_shutdown_wait(writer->cq); diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index e84bbd978d976..dbe9651d70ab7 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -34,11 +34,11 @@ #include #include +#include #include #include -#include "src/c/server_streaming_blocking_call.h" -#include #include +#include "src/c/server_streaming_blocking_call.h" #include "src/c/alloc.h" #include "src/c/completion_queue.h" @@ -101,7 +101,7 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *respo pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader->call, pSet, reader->context, (GRPC_message) {0}, response); + grpc_start_batch_from_op_set(reader->call, pSet, reader->context, (GRPC_message) {0, 0}, response); return GRPC_completion_queue_pluck_internal(reader->cq, pSet) && pSet->message_received; } @@ -113,7 +113,7 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { .context = reader->context, .user_tag = &set }; - grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {0}, NULL); + grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {0, 0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, &set); GRPC_completion_queue_shutdown(reader->cq); GRPC_completion_queue_shutdown_wait(reader->cq); diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index cb7278f496f69..f4a22e85e346e 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -33,12 +33,11 @@ #include -#include #include +#include +#include #include "src/c/unary_async_call.h" #include "src/c/alloc.h" -#include -#include static void free_reader_and_call(void *arg) { GRPC_client_async_response_reader *reader = arg; @@ -102,10 +101,10 @@ GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue * void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { reader->meta_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, (GRPC_message) {0}, NULL); + grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, (GRPC_message) {0, 0}, NULL); } void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag) { reader->finish_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, reader->context, (GRPC_message) {0}, response); + grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, reader->context, (GRPC_message) {0, 0}, response); } diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index a49f80895cee4..473a5861f3df0 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -31,15 +31,14 @@ * */ -#include "src/c/unary_blocking_call.h" #include #include #include +#include #include "src/c/client_context.h" #include "src/c/call_ops.h" +#include "src/c/unary_blocking_call.h" #include "src/c/completion_queue.h" -#include -#include GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, From d04eeab5c4327eb957eb67f247ea0cad3f122706 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 28 Jul 2016 18:39:12 -0700 Subject: [PATCH 136/202] clean up and retrigger crashed jenkins --- src/c/alloc.c | 4 ++-- src/c/alloc.h | 2 +- src/c/call_ops.c | 2 +- src/c/client_context.h | 2 +- src/c/message.c | 2 +- src/c/pb_compat.c | 7 ------- src/compiler/c_generator.cc | 1 - 7 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/c/alloc.c b/src/c/alloc.c index 7772d76062985..9d4f342343733 100644 --- a/src/c/alloc.c +++ b/src/c/alloc.c @@ -31,9 +31,9 @@ * */ -#include "src/c/alloc.h" -#include #include +#include +#include "src/c/alloc.h" void *GRPC_memdup(const void *dst, size_t size) { void *p = gpr_malloc(size); diff --git a/src/c/alloc.h b/src/c/alloc.h index bde3d1f1bac34..a6896a77cf6f9 100644 --- a/src/c/alloc.h +++ b/src/c/alloc.h @@ -37,7 +37,7 @@ #include -void* GRPC_memdup(const void *, size_t); +void* GRPC_memdup(const void * dst, size_t size); #define GRPC_ALLOC_STRUCT(type, ...) (type *) GRPC_memdup(&(type)__VA_ARGS__, sizeof(type)) diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 7ecb94016fdcc..10ec6c36374c5 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -32,9 +32,9 @@ */ #include -#include "src/c/call_ops.h" #include #include +#include "src/c/call_ops.h" static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; diff --git a/src/c/client_context.h b/src/c/client_context.h index 4b6c88258e05c..25ef2be10b1a1 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -35,6 +35,7 @@ #ifndef GRPC_C_CLIENT_CONTEXT_H #define GRPC_C_CLIENT_CONTEXT_H +#include #include #include #include @@ -42,7 +43,6 @@ #include #include #include "src/c/message.h" -#include typedef struct grpc_client_context grpc_client_context; diff --git a/src/c/message.c b/src/c/message.c index 6af0766b743f6..0efaefd73e1ac 100644 --- a/src/c/message.c +++ b/src/c/message.c @@ -32,8 +32,8 @@ */ -#include "src/c/message.h" #include +#include "src/c/message.h" void GRPC_message_destroy(grpc_message *message) { free((void *)message->data); diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index d446fb7588add..b90b64caafa72 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -49,13 +49,6 @@ typedef struct GRPC_pb_dynamic_array_state { size_t capacity; } GRPC_pb_dynamic_array_state; -typedef struct GRPC_pb_dynamic_array_state GRPC_pb_dynamic_array_state; - -bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count); -GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc(); -void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state); -void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state); - static size_t upper_power_of_two(size_t v) { v--; diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 566a5c95d3980..a75d18c18543b 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -766,7 +766,6 @@ grpc::string GetSourceServices(File *file, "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const GRPC_message input) {\n" " return GRPC_pb_compat_generic_serializer(input, $CPrefix$$msgType$_fields);\n" "}\n" - "\n" "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output) {\n" " return GRPC_pb_compat_generic_deserializer(input, output, $CPrefix$$msgType$_fields);\n" "}\n" From 4e2958ebe74c2a58a009cfca2321c3da4d08cebb Mon Sep 17 00:00:00 2001 From: Teng Yifei Date: Thu, 28 Jul 2016 22:59:35 -0700 Subject: [PATCH 137/202] Don't use compound literals (C99 only) in C++ code --- test/c/end2end/generic_end2end_test.cc | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index 072f5aef77405..d39538b23abf6 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -146,10 +146,7 @@ static void SendUnaryRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize - }); + GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -178,10 +175,7 @@ static void SendClientStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/RequestStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize - }); + GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -216,10 +210,7 @@ static void SendServerStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/ResponseStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize - }); + GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -254,10 +245,7 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/BidiStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize - }); + GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -299,10 +287,7 @@ static void SendAsyncUnaryRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, (grpc_serialization_impl) { - .serialize = GRPC_id_serialize, - .deserialize = GRPC_id_deserialize - }); + GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); GRPC_completion_queue *cq = GRPC_completion_queue_create(); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; From a5bd817eac1b2f653d6cc59094d9eef456e0627b Mon Sep 17 00:00:00 2001 From: Teng Yifei Date: Thu, 28 Jul 2016 23:04:55 -0700 Subject: [PATCH 138/202] No need to std::move thread. vector is move-aware --- test/c/end2end/end2end_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 2e2137933060b..2e7088ef79c29 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -174,7 +174,7 @@ TEST(End2endTest, UnaryRpcRacing) { std::condition_variable cv; bool start_racing = false; for (int i = 0; i < kNumThreads; i++) { - threads.push_back(std::move(std::thread([&test, &start_racing, &mu, &cv](int id) { + threads.push_back(std::thread([&test, &start_racing, &mu, &cv](int id) { std::default_random_engine generator( std::random_device{}() ); std::uniform_int_distribution<> distrib(1, 3); { @@ -189,7 +189,7 @@ TEST(End2endTest, UnaryRpcRacing) { test_client_send_unary_rpc(test.c_channel_, 5); } } - }, i))); + }, i)); } { std::unique_lock lock(mu); From 414bde85a187b754151f1bfafee034e14574fc47 Mon Sep 17 00:00:00 2001 From: Teng Yifei Date: Thu, 28 Jul 2016 23:15:42 -0700 Subject: [PATCH 139/202] Remove lambda for GCC 4.4 --- test/c/end2end/end2end_test.cc | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 2e7088ef79c29..091af168d4120 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -165,6 +165,23 @@ TEST(End2endTest, UnaryRpc) { test.TearDown(); } +void racing_thread(UnaryEnd2endTest& test, bool& start_racing, std::mutex& mu, std::condition_variable& cv) { + std::default_random_engine generator( std::random_device{}() ); + std::uniform_int_distribution<> distrib(1, 3); + { + { + std::unique_lock lock(mu); + while (!start_racing) { + cv.wait(lock); + } + } + for (int j = 0; j < 5; j++) { + std::this_thread::sleep_for(std::chrono::milliseconds(distrib(generator))); + test_client_send_unary_rpc(test.c_channel_, 5); + } + } +} + TEST(End2endTest, UnaryRpcRacing) { UnaryEnd2endTest test; test.ResetStub(); @@ -174,22 +191,7 @@ TEST(End2endTest, UnaryRpcRacing) { std::condition_variable cv; bool start_racing = false; for (int i = 0; i < kNumThreads; i++) { - threads.push_back(std::thread([&test, &start_racing, &mu, &cv](int id) { - std::default_random_engine generator( std::random_device{}() ); - std::uniform_int_distribution<> distrib(1, 3); - { - { - std::unique_lock lock(mu); - while (!start_racing) { - cv.wait(lock); - } - } - for (int j = 0; j < 5; j++) { - std::this_thread::sleep_for(std::chrono::milliseconds(distrib(generator))); - test_client_send_unary_rpc(test.c_channel_, 5); - } - } - }, i)); + threads.push_back(std::thread(racing_thread, test, start_racing, mu, cv)); } { std::unique_lock lock(mu); From 3eefebf35dd2e8d3ba6337d3f957f995d854e288 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 29 Jul 2016 13:10:45 -0700 Subject: [PATCH 140/202] use std::ref to indicate references --- test/c/end2end/end2end_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 091af168d4120..f9a4aaf47874f 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -191,7 +191,7 @@ TEST(End2endTest, UnaryRpcRacing) { std::condition_variable cv; bool start_racing = false; for (int i = 0; i < kNumThreads; i++) { - threads.push_back(std::thread(racing_thread, test, start_racing, mu, cv)); + threads.push_back(std::thread(racing_thread, std::ref(test), std::ref(start_racing), std::ref(mu), std::ref(cv))); } { std::unique_lock lock(mu); From 8fedab1df12f78fdd13265e78708ecda2d96ac7d Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 29 Jul 2016 14:00:56 -0700 Subject: [PATCH 141/202] gcc 4.4 compat --- test/c/end2end/end2end_test.cc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index f9a4aaf47874f..84e99c3f88f28 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -31,8 +31,24 @@ * */ -#include +/** + * Compatibility for GCC 4.4 + */ +#if (__GNUC__ == 4) && (__GNUC_MINOR__ <= 4) +// Workaround macro bug +#define _GLIBCXX_USE_NANOSLEEP +#include +using std::tr1::default_random_engine; +using std::tr1::random_device; +using std::tr1::uniform_int_distribution; +#else #include +using std::default_random_engine; +using std::random_device; +using std::uniform_int_distribution; +#endif + +#include #include #include #include @@ -166,8 +182,8 @@ TEST(End2endTest, UnaryRpc) { } void racing_thread(UnaryEnd2endTest& test, bool& start_racing, std::mutex& mu, std::condition_variable& cv) { - std::default_random_engine generator( std::random_device{}() ); - std::uniform_int_distribution<> distrib(1, 3); + default_random_engine generator( random_device{}() ); + uniform_int_distribution<> distrib(1, 3); { { std::unique_lock lock(mu); From bb5d61cf9bfdc03c60d6b1ab6636f927e023f145 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 29 Jul 2016 16:23:32 -0700 Subject: [PATCH 142/202] give up using c++ random numbers. use C instead --- test/c/end2end/end2end_test.cc | 35 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/test/c/end2end/end2end_test.cc b/test/c/end2end/end2end_test.cc index 84e99c3f88f28..750f7e861e31e 100644 --- a/test/c/end2end/end2end_test.cc +++ b/test/c/end2end/end2end_test.cc @@ -37,15 +37,6 @@ #if (__GNUC__ == 4) && (__GNUC_MINOR__ <= 4) // Workaround macro bug #define _GLIBCXX_USE_NANOSLEEP -#include -using std::tr1::default_random_engine; -using std::tr1::random_device; -using std::tr1::uniform_int_distribution; -#else -#include -using std::default_random_engine; -using std::random_device; -using std::uniform_int_distribution; #endif #include @@ -181,33 +172,31 @@ TEST(End2endTest, UnaryRpc) { test.TearDown(); } -void racing_thread(UnaryEnd2endTest& test, bool& start_racing, std::mutex& mu, std::condition_variable& cv) { - default_random_engine generator( random_device{}() ); - uniform_int_distribution<> distrib(1, 3); +static const int kNumThreads = 50; + +void racing_thread(UnaryEnd2endTest& test, bool& start_racing, std::mutex& mu, std::condition_variable& cv, int id) { + unsigned int seed = time(NULL) * kNumThreads + id; { - { - std::unique_lock lock(mu); - while (!start_racing) { - cv.wait(lock); - } - } - for (int j = 0; j < 5; j++) { - std::this_thread::sleep_for(std::chrono::milliseconds(distrib(generator))); - test_client_send_unary_rpc(test.c_channel_, 5); + std::unique_lock lock(mu); + while (!start_racing) { + cv.wait(lock); } } + for (int j = 0; j < 5; j++) { + std::this_thread::sleep_for(std::chrono::milliseconds(rand_r(&seed) % 3 + 1)); + test_client_send_unary_rpc(test.c_channel_, 5); + } } TEST(End2endTest, UnaryRpcRacing) { UnaryEnd2endTest test; test.ResetStub(); std::vector threads; - const int kNumThreads = 50; std::mutex mu; std::condition_variable cv; bool start_racing = false; for (int i = 0; i < kNumThreads; i++) { - threads.push_back(std::thread(racing_thread, std::ref(test), std::ref(start_racing), std::ref(mu), std::ref(cv))); + threads.push_back(std::thread(racing_thread, std::ref(test), std::ref(start_racing), std::ref(mu), std::ref(cv), i)); } { std::unique_lock lock(mu); From 7aa02c4aacae766e185f591597407b0112d749a3 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 14:32:44 -0700 Subject: [PATCH 143/202] Ensure nanopb prerequisites for the 'all' and 'test' targets --- Makefile | 74 +++++++++++++++++++++++++++---------- templates/Makefile.template | 48 ++++++++++++++++++++---- 2 files changed, 95 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 01728dd56f4c9..394d406b41c8e 100644 --- a/Makefile +++ b/Makefile @@ -261,6 +261,39 @@ NANOPB_DIR := $(abspath third_party/nanopb) NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c NANOPB_DEP := $(NANOPB_DIR)/generator/proto/nanopb_pb2.py $(NANOPB_DIR)/generator/proto/plugin_pb2.py + +SYSTEM_PYTHON_PROTOBUF_GOOD := $(shell \ +version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ +major=( $${version//./ } );\ +majordef=$${major:-0};\ +if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) + +ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) +# For systems with built-in python-protobuf +all: all_after_prereq +test: test_after_prereq +%: +else +# We need to install a local python-protobuf +NANOPB_VENV_DIR := $(shell mktemp -d) +NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) +# Trigger variable evaluation +NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) +all: + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ + trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ + NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ + $(MAKE) $(MFLAGS) all_after_prereq; \ + deactivate +test: + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ + trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ + NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ + $(MAKE) $(MFLAGS) test_after_prereq; \ + deactivate +endif + + PROTOC ?= protoc DTRACE ?= dtrace CONFIG ?= opt @@ -813,12 +846,13 @@ endif .SECONDARY = %.pb.h %.pb.cc +# This is the 'all' target to be executed after handling prerequisites ifeq ($(DEP_MISSING),) -all: static shared plugins +all_after_prereq: static shared plugins dep_error: @echo "You shouldn't see this message - all of your dependencies are correct." else -all: dep_error git_update stop +all_after_prereq: dep_error git_update stop dep_error: @echo @@ -1525,8 +1559,8 @@ buildtests_cxx: privatelibs_cxx \ endif - -test: test_c test_cxx +# This is the 'test' target to be executed after handling prerequisites +test_after_prereq: test_c test_cxx flaky_test: flaky_test_c flaky_test_cxx @@ -1937,7 +1971,7 @@ $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_ba $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -1962,7 +1996,7 @@ $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: src/proto/grpc/ref $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -1987,7 +2021,7 @@ $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/com $(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2012,7 +2046,7 @@ $(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.p $(GENDIR)/src/proto/grpc/testing/control.pbc.c: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2037,7 +2071,7 @@ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2062,7 +2096,7 @@ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $ $(GENDIR)/src/proto/grpc/testing/echo.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2087,7 +2121,7 @@ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/ech $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2112,7 +2146,7 @@ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(GENDIR)/src/proto/grpc/testing/empty.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2137,7 +2171,7 @@ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages $(GENDIR)/src/proto/grpc/testing/messages.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2162,7 +2196,7 @@ $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.p $(GENDIR)/src/proto/grpc/testing/metrics.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2187,7 +2221,7 @@ $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2212,7 +2246,7 @@ $(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services $(GENDIR)/src/proto/grpc/testing/services.pbc.c: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2237,7 +2271,7 @@ $(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(GENDIR)/src/proto/grpc/testing/stats.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2262,7 +2296,7 @@ $(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $ $(GENDIR)/src/proto/grpc/testing/test.pbc.c: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -16162,7 +16196,7 @@ test/cpp/util/test_config.cc: $(OPENSSL_DEP) test/cpp/util/test_credentials_provider.cc: $(OPENSSL_DEP) endif -.PHONY: all strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx test test_c test_cxx install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean +.PHONY: all_after_prereq strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx test test_c test_cxx install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean .PHONY: printvars printvars: @@ -16171,4 +16205,4 @@ printvars: # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) $(E) "[NANOPB] Compiling $<" - $(Q) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $< + $(Q) $(NANOPB_PRECOMPILE) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; $(NANOPB_POSTCOMPILE) diff --git a/templates/Makefile.template b/templates/Makefile.template index 9fecddcd4ecf0..f2f99c0c03bd0 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -151,6 +151,39 @@ NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c NANOPB_DEP := $(NANOPB_DIR)/generator/proto/nanopb_pb2.py $(NANOPB_DIR)/generator/proto/plugin_pb2.py + <%text> + SYSTEM_PYTHON_PROTOBUF_GOOD := $(shell \ + version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ + major=( $${version//./ } );\ + majordef=$${major:-0};\ + if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) + + ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) + # For systems with built-in python-protobuf + all: all_after_prereq + test: test_after_prereq + %: + else + # We need to install a local python-protobuf + NANOPB_VENV_DIR := $(shell mktemp -d) + NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) + # Trigger variable evaluation + NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) + all: + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ + trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ + NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ + $(MAKE) $(MFLAGS) all_after_prereq; \ + deactivate + test: + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ + trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ + NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ + $(MAKE) $(MFLAGS) test_after_prereq; \ + deactivate + endif + + PROTOC ?= protoc DTRACE ?= dtrace CONFIG ?= opt @@ -713,8 +746,9 @@ .SECONDARY = %.pb.h %.pb.cc + # This is the 'all' target to be executed after handling prerequisites ifeq ($(DEP_MISSING),) - all: static shared plugins\ + all_after_prereq: static shared plugins\ % for tgt in targets: % if tgt.build == 'all': $(BINDIR)/$(CONFIG)/${tgt.name}\ @@ -724,7 +758,7 @@ dep_error: @echo "You shouldn't see this message - all of your dependencies are correct." else - all: dep_error git_update stop + all_after_prereq: dep_error git_update stop dep_error: @echo @@ -969,8 +1003,8 @@ endif - - test: test_c test_cxx + # This is the 'test' target to be executed after handling prerequisites + test_after_prereq: test_c test_cxx flaky_test: flaky_test_c flaky_test_cxx @@ -1166,7 +1200,7 @@ $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $< + $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -1791,7 +1825,7 @@ % endfor endif - .PHONY: all strip tools \ + .PHONY: all_after_prereq strip tools \ dep_error openssl_dep_error openssl_dep_message git_update stop \ buildtests buildtests_c buildtests_cxx \ test test_c test_cxx \ @@ -1814,4 +1848,4 @@ # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) $(E) "[NANOPB] Compiling $<" - $(Q) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $< + $(Q) $(NANOPB_PRECOMPILE) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; $(NANOPB_POSTCOMPILE) From 97fd5f3369094e2d67ba2c1d09caf48031d1842a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 14:51:24 -0700 Subject: [PATCH 144/202] Fix shell syntax error. --- Makefile | 30 +++++++++++++++--------------- templates/Makefile.template | 4 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index 394d406b41c8e..93be5a1b77049 100644 --- a/Makefile +++ b/Makefile @@ -1971,7 +1971,7 @@ $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_ba $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -1996,7 +1996,7 @@ $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: src/proto/grpc/ref $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2021,7 +2021,7 @@ $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/com $(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2046,7 +2046,7 @@ $(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.p $(GENDIR)/src/proto/grpc/testing/control.pbc.c: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2071,7 +2071,7 @@ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2096,7 +2096,7 @@ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $ $(GENDIR)/src/proto/grpc/testing/echo.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2121,7 +2121,7 @@ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/ech $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2146,7 +2146,7 @@ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(GENDIR)/src/proto/grpc/testing/empty.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2171,7 +2171,7 @@ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages $(GENDIR)/src/proto/grpc/testing/messages.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2196,7 +2196,7 @@ $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.p $(GENDIR)/src/proto/grpc/testing/metrics.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2221,7 +2221,7 @@ $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2246,7 +2246,7 @@ $(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services $(GENDIR)/src/proto/grpc/testing/services.pbc.c: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2271,7 +2271,7 @@ $(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(GENDIR)/src/proto/grpc/testing/stats.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2296,7 +2296,7 @@ $(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $ $(GENDIR)/src/proto/grpc/testing/test.pbc.c: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -16205,4 +16205,4 @@ printvars: # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) $(E) "[NANOPB] Compiling $<" - $(Q) $(NANOPB_PRECOMPILE) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; diff --git a/templates/Makefile.template b/templates/Makefile.template index f2f99c0c03bd0..7d3169fb6f555 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1200,7 +1200,7 @@ $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) $(NANOPB_PRECOMPILE); $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -1848,4 +1848,4 @@ # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) $(E) "[NANOPB] Compiling $<" - $(Q) $(NANOPB_PRECOMPILE) $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; $(NANOPB_POSTCOMPILE) + $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; From a45b7e6765ec98467e8118108c8d5864e2588c50 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 15:13:16 -0700 Subject: [PATCH 145/202] correct mktemp usage for OS X --- Makefile | 2 +- templates/Makefile.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 93be5a1b77049..c60ea1771280d 100644 --- a/Makefile +++ b/Makefile @@ -275,7 +275,7 @@ test: test_after_prereq %: else # We need to install a local python-protobuf -NANOPB_VENV_DIR := $(shell mktemp -d) +NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX) NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) # Trigger variable evaluation NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) diff --git a/templates/Makefile.template b/templates/Makefile.template index 7d3169fb6f555..50a2544279571 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -165,7 +165,7 @@ %: else # We need to install a local python-protobuf - NANOPB_VENV_DIR := $(shell mktemp -d) + NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX) NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) # Trigger variable evaluation NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) From 5c04f6569e2d8103b1455c01f003c1b4ea30239f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 15:22:52 -0700 Subject: [PATCH 146/202] Don't use expressions with side-effects in macros --- test/c/end2end/generic_end2end_test.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index d39538b23abf6..dc5001386d4b8 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -227,7 +227,8 @@ static void SendServerStreamingRpc(GRPC_channel *channel, char *response_string = (char *) malloc(resplength); memcpy(response_string, ((char *) resp) + 2, resplength); response_string[resplength] = '\0'; - EXPECT_EQ(grpc::string("gRPC-C") + grpc::to_string(count++), grpc::string(response_string)); + EXPECT_EQ(grpc::string("gRPC-C") + grpc::to_string(count), grpc::string(response_string)); + count++; free(response_string); } EXPECT_TRUE(count > 0); From 6b96a2386028f2599eda66e0d33923b44347ff00 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 15:30:04 -0700 Subject: [PATCH 147/202] fix include guards as indicated by sanity check --- include/grpc_c/channel.h | 6 +++--- include/grpc_c/client_context.h | 6 +++--- include/grpc_c/codegen/bidi_streaming_blocking_call.h | 6 +++--- include/grpc_c/codegen/client_streaming_blocking_call.h | 6 +++--- include/grpc_c/codegen/message.h | 6 +++--- include/grpc_c/codegen/method.h | 6 +++--- include/grpc_c/codegen/pb_compat.h | 6 +++--- include/grpc_c/codegen/serialization.h | 6 +++--- include/grpc_c/codegen/server_streaming_blocking_call.h | 6 +++--- include/grpc_c/codegen/unary_async_call.h | 6 +++--- include/grpc_c/codegen/unary_blocking_call.h | 6 +++--- include/grpc_c/completion_queue.h | 6 +++--- include/grpc_c/grpc_c.h | 6 +++--- include/grpc_c/status.h | 6 +++--- 14 files changed, 42 insertions(+), 42 deletions(-) diff --git a/include/grpc_c/channel.h b/include/grpc_c/channel.h index f104ae3d25a97..01f59c938ee22 100644 --- a/include/grpc_c/channel.h +++ b/include/grpc_c/channel.h @@ -31,12 +31,12 @@ * */ -#ifndef GRPC_C_CHANNEL_PUBLIC_H -#define GRPC_C_CHANNEL_PUBLIC_H +#ifndef GRPC_C_CHANNEL_H +#define GRPC_C_CHANNEL_H #include GRPC_channel *GRPC_channel_create(const char * const target); void GRPC_channel_destroy(GRPC_channel ** channel); -#endif /* GRPC_C_CHANNEL_PUBLIC_H */ +#endif /* GRPC_C_CHANNEL_H */ diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index fcd2ef05e9c47..263447d524c12 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CONTEXT_PUBLIC_H -#define GRPC_C_CONTEXT_PUBLIC_H +#ifndef GRPC_C_CLIENT_CONTEXT_H +#define GRPC_C_CLIENT_CONTEXT_H #include #include @@ -46,4 +46,4 @@ void GRPC_client_context_destroy(GRPC_client_context **context); */ GRPC_status GRPC_get_call_status(GRPC_client_context *context); -#endif /* GRPC_C_CONTEXT_PUBLIC_H */ +#endif /* GRPC_C_CLIENT_CONTEXT_H */ diff --git a/include/grpc_c/codegen/bidi_streaming_blocking_call.h b/include/grpc_c/codegen/bidi_streaming_blocking_call.h index b802ad5d9c5b5..ffe2e652fb45a 100644 --- a/include/grpc_c/codegen/bidi_streaming_blocking_call.h +++ b/include/grpc_c/codegen/bidi_streaming_blocking_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_H +#define GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_H #include #include @@ -52,4 +52,4 @@ bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_ GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer); -#endif /* GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_H */ diff --git a/include/grpc_c/codegen/client_streaming_blocking_call.h b/include/grpc_c/codegen/client_streaming_blocking_call.h index fd45f34bdfdd0..30c586ee621c8 100644 --- a/include/grpc_c/codegen/client_streaming_blocking_call.h +++ b/include/grpc_c/codegen/client_streaming_blocking_call.h @@ -32,8 +32,8 @@ */ -#ifndef GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_H +#define GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_H #include #include @@ -50,4 +50,4 @@ bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC /* Returns call status in the context object. */ GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer); -#endif /* GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_H */ diff --git a/include/grpc_c/codegen/message.h b/include/grpc_c/codegen/message.h index 3d6a3689226f1..9e43beccfcb7a 100644 --- a/include/grpc_c/codegen/message.h +++ b/include/grpc_c/codegen/message.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_MESSAGE_PUBLIC_H -#define GRPC_C_CODEGEN_MESSAGE_PUBLIC_H +#ifndef GRPC_C_CODEGEN_MESSAGE_H +#define GRPC_C_CODEGEN_MESSAGE_H #include @@ -43,4 +43,4 @@ typedef struct GRPC_message { void GRPC_message_destroy(GRPC_message *message); -#endif /* GRPC_C_CODEGEN_MESSAGE_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_MESSAGE_H */ diff --git a/include/grpc_c/codegen/method.h b/include/grpc_c/codegen/method.h index ce3a74f731011..59d62491e6e21 100644 --- a/include/grpc_c/codegen/method.h +++ b/include/grpc_c/codegen/method.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_METHOD_PUBLIC_H -#define GRPC_C_CODEGEN_METHOD_PUBLIC_H +#ifndef GRPC_C_CODEGEN_METHOD_H +#define GRPC_C_CODEGEN_METHOD_H typedef struct grpc_method { enum RpcType { @@ -46,4 +46,4 @@ typedef struct grpc_method { typedef struct grpc_method GRPC_method; -#endif /* GRPC_C_CODEGEN_METHOD_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_METHOD_H */ diff --git a/include/grpc_c/codegen/pb_compat.h b/include/grpc_c/codegen/pb_compat.h index 72331d0dff39a..665a04d2e26b2 100644 --- a/include/grpc_c/codegen/pb_compat.h +++ b/include/grpc_c/codegen/pb_compat.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H -#define GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H +#ifndef GRPC_C_CODEGEN_PB_COMPAT_H +#define GRPC_C_CODEGEN_PB_COMPAT_H #include #include @@ -42,4 +42,4 @@ GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, const void *fields); void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, const void *fields); -#endif /* GRPC_C_CODEGEN_PB_COMPAT_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_PB_COMPAT_H */ diff --git a/include/grpc_c/codegen/serialization.h b/include/grpc_c/codegen/serialization.h index 59920ddf3e8eb..296e6487311fa 100644 --- a/include/grpc_c/codegen/serialization.h +++ b/include/grpc_c/codegen/serialization.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_SERIALIZATION_PUBLIC_H -#define GRPC_C_CODEGEN_SERIALIZATION_PUBLIC_H +#ifndef GRPC_C_CODEGEN_SERIALIZATION_H +#define GRPC_C_CODEGEN_SERIALIZATION_H #include #include @@ -40,4 +40,4 @@ typedef GRPC_message (*GRPC_serializer)(const GRPC_message input); typedef void (*GRPC_deserializer)(const GRPC_message input, void *output); -#endif /* GRPC_C_CODEGEN_SERIALIZATION_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_SERIALIZATION_H */ diff --git a/include/grpc_c/codegen/server_streaming_blocking_call.h b/include/grpc_c/codegen/server_streaming_blocking_call.h index 367587309edbb..8ae116f813c7f 100644 --- a/include/grpc_c/codegen/server_streaming_blocking_call.h +++ b/include/grpc_c/codegen/server_streaming_blocking_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_H +#define GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_H #include #include @@ -48,4 +48,4 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *respo /* Terminating the writer takes care of ending the call, freeing the writer. */ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); -#endif /* GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_H */ diff --git a/include/grpc_c/codegen/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h index 8f8cd6e1961e5..dc2869b19a347 100644 --- a/include/grpc_c/codegen/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_CLIENT_ASYNC_READER_PUBLIC_H -#define GRPC_C_CODEGEN_CLIENT_ASYNC_READER_PUBLIC_H +#ifndef GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H +#define GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H #include #include @@ -48,4 +48,4 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *r void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); -#endif /* GRPC_C_CODEGEN_CLIENT_ASYNC_READER_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H */ diff --git a/include/grpc_c/codegen/unary_blocking_call.h b/include/grpc_c/codegen/unary_blocking_call.h index e549b53a2d7d4..e4fdcdadf292d 100644 --- a/include/grpc_c/codegen/unary_blocking_call.h +++ b/include/grpc_c/codegen/unary_blocking_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_PUBLIC_H -#define GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_PUBLIC_H +#ifndef GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_H +#define GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_H #include #include @@ -44,4 +44,4 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, const GRPC_message message, void *response); -#endif /* GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_PUBLIC_H */ +#endif /* GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_H */ diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 398f02043146b..04a612a5371bf 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_COMPLETION_QUEUE_PUBLIC_H -#define GRPC_C_COMPLETION_QUEUE_PUBLIC_H +#ifndef GRPC_C_COMPLETION_QUEUE_H +#define GRPC_C_COMPLETION_QUEUE_H #include #include @@ -63,4 +63,4 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_ GRPC_timespec deadline, void **tag, bool *ok); -#endif /* GRPC_C_COMPLETION_QUEUE_PUBLIC_H */ +#endif /* GRPC_C_COMPLETION_QUEUE_H */ diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 8fe16b7e47dc4..3faff6ff17df9 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_PUBLIC_H -#define GRPC_C_PUBLIC_H +#ifndef GRPC_C_GRPC_C_H +#define GRPC_C_GRPC_C_H typedef struct grpc_channel GRPC_channel; typedef struct grpc_client_context GRPC_client_context; @@ -46,4 +46,4 @@ typedef struct grpc_client_async_reader GRPC_client_async_reader; typedef struct grpc_client_async_writer GRPC_client_async_writer; typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; -#endif /* GRPC_C_PUBLIC_H */ +#endif /* GRPC_C_GRPC_C_H */ diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index d92943dd968bd..af9edd752e85a 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_STATUS_PUBLIC_H -#define GRPC_C_STATUS_PUBLIC_H +#ifndef GRPC_C_STATUS_H +#define GRPC_C_STATUS_H #include #include @@ -61,4 +61,4 @@ typedef struct GRPC_status { size_t details_length; } GRPC_status; -#endif /* GRPC_C_STATUS_PUBLIC_H */ +#endif /* GRPC_C_STATUS_H */ From e3cad4a54973815d54fd86b93322acfe3fa00179 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 15:58:53 -0700 Subject: [PATCH 148/202] clang-format --- examples/c/helloworld/greeter_async_client.c | 38 +- examples/c/helloworld/greeter_async_client2.c | 41 +- examples/c/helloworld/greeter_client.c | 22 +- examples/c/route_guide/route_guide_client.c | 200 ++--- examples/c/route_guide/route_guide_db.c | 769 ++++-------------- include/grpc_c/channel.h | 4 +- include/grpc_c/client_context.h | 3 +- .../codegen/bidi_streaming_blocking_call.h | 20 +- include/grpc_c/codegen/client_context.h | 5 +- .../codegen/client_streaming_blocking_call.h | 14 +- include/grpc_c/codegen/message.h | 2 +- include/grpc_c/codegen/method.h | 6 +- include/grpc_c/codegen/pb_compat.h | 10 +- include/grpc_c/codegen/serialization.h | 2 +- .../codegen/server_streaming_blocking_call.h | 13 +- include/grpc_c/codegen/unary_async_call.h | 17 +- include/grpc_c/codegen/unary_blocking_call.h | 4 +- include/grpc_c/completion_queue.h | 23 +- include/grpc_c/declare_serializer.h | 50 +- include/grpc_c/grpc_c.h | 3 +- src/c/alloc.c | 4 +- src/c/alloc.h | 8 +- src/c/bidi_streaming_blocking_call.c | 122 ++- src/c/bidi_streaming_blocking_call.h | 3 +- src/c/call_ops.c | 146 ++-- src/c/call_ops.h | 41 +- src/c/channel.c | 8 +- src/c/client_context.c | 25 +- src/c/client_context.h | 13 +- src/c/client_streaming_blocking_call.c | 80 +- src/c/client_streaming_blocking_call.h | 3 +- src/c/completion_queue.c | 25 +- src/c/completion_queue.h | 3 +- src/c/init_shutdown.c | 3 +- src/c/init_shutdown.h | 2 +- src/c/message.c | 4 +- src/c/message.h | 3 +- src/c/pb_compat.c | 51 +- src/c/server_streaming_blocking_call.c | 91 +-- src/c/server_streaming_blocking_call.h | 5 +- src/c/unary_async_call.c | 94 +-- src/c/unary_async_call.h | 3 +- src/c/unary_blocking_call.c | 37 +- src/c/unary_blocking_call.h | 4 +- src/compiler/c_generator.cc | 404 +++++---- src/compiler/c_generator.h | 7 +- src/compiler/c_generator_helpers.h | 5 +- src/compiler/c_plugin.cc | 103 ++- 48 files changed, 1043 insertions(+), 1500 deletions(-) diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c index 6a01b077c9950..0022096532aaa 100644 --- a/examples/c/helloworld/greeter_async_client.c +++ b/examples/c/helloworld/greeter_async_client.c @@ -35,55 +35,57 @@ * This file demonstrates the basic usage of async unary API. */ -#include #include +#include #include -#include "helloworld.grpc.pbc.h" #include +#include "helloworld.grpc.pbc.h" /** * Nanopb callbacks for string encoding/decoding. */ -static bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) -{ +static bool write_string(pb_ostream_t *stream, const pb_field_t *field, + void *const *arg) { char *str = "world"; - if (!pb_encode_tag_for_field(stream, field)) - return false; + if (!pb_encode_tag_for_field(stream, field)) return false; - return pb_encode_string(stream, (uint8_t*)str, strlen(str)); + return pb_encode_string(stream, (uint8_t *)str, strlen(str)); } -static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { +static bool read_string(pb_istream_t *stream, const pb_field_t *field, + void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); - if(!pb_read(stream, str, len)) return false; + if (!pb_read(stream, str, len)) return false; str[len] = '\0'; printf("Server replied %s\n", str); free(str); return true; } -int main(int argc, char** argv) { +int main(int argc, char **argv) { GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); GRPC_client_context *context = GRPC_client_context_create(chan); GRPC_completion_queue *cq = GRPC_completion_queue_create(); - helloworld_HelloRequest request = { .name.funcs.encode = write_string }; - helloworld_HelloReply reply = { .message.funcs.decode = read_string }; + helloworld_HelloRequest request = {.name.funcs.encode = write_string}; + helloworld_HelloReply reply = {.message.funcs.decode = read_string}; // this method returns immediately - GRPC_client_async_response_reader *reader = helloworld_Greeter_SayHello_Async(context, cq, request); + GRPC_client_async_response_reader *reader = + helloworld_Greeter_SayHello_Async(context, cq, request); // set up finish notification via tag bool ok; void *tag; - helloworld_Greeter_SayHello_Finish(reader, &reply, /*TAG*/ (void*) 12345); + helloworld_Greeter_SayHello_Finish(reader, &reply, /*TAG*/ (void *)12345); // wait for async RPC to finish - GRPC_completion_queue_operation_status queue_status = GRPC_completion_queue_next(cq, &tag, &ok); + GRPC_completion_queue_operation_status queue_status = + GRPC_completion_queue_next(cq, &tag, &ok); assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); assert(ok); - assert(tag == (void*) 12345); + assert(tag == (void *)12345); // get status from context GRPC_status status = GRPC_get_call_status(context); @@ -91,7 +93,9 @@ int main(int argc, char** argv) { assert(status.code == GRPC_STATUS_OK); GRPC_completion_queue_shutdown(cq); - while (GRPC_completion_queue_next(cq, tag, &ok) != GRPC_COMPLETION_QUEUE_SHUTDOWN) { } + while (GRPC_completion_queue_next(cq, tag, &ok) != + GRPC_COMPLETION_QUEUE_SHUTDOWN) { + } GRPC_completion_queue_destroy(cq); GRPC_client_context_destroy(&context); diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index 8e95d60822333..f4312491752a3 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -32,15 +32,16 @@ */ /** - * This example shows the async unary API where there are multiple worker threads processing RPCs. + * This example shows the async unary API where there are multiple worker + * threads processing RPCs. */ -#include #include +#include #include -#include "helloworld.grpc.pbc.h" #include +#include "helloworld.grpc.pbc.h" typedef struct async_client { GRPC_client_context *context; @@ -54,19 +55,19 @@ int num_responses; * Nanopb callbacks for string encoding/decoding. */ -static bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) -{ +static bool write_string(pb_ostream_t *stream, const pb_field_t *field, + void *const *arg) { char *str = "world"; - if (!pb_encode_tag_for_field(stream, field)) - return false; + if (!pb_encode_tag_for_field(stream, field)) return false; - return pb_encode_string(stream, (uint8_t*)str, strlen(str)); + return pb_encode_string(stream, (uint8_t *)str, strlen(str)); } -static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { +static bool read_string(pb_istream_t *stream, const pb_field_t *field, + void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); - if(!pb_read(stream, str, len)) return false; + if (!pb_read(stream, str, len)) return false; str[len] = '\0'; printf("Server replied %s\n", str); free(str); @@ -76,22 +77,24 @@ static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **ar static void async_say_hello(GRPC_channel *chan, GRPC_completion_queue *cq) { GRPC_client_context *context = GRPC_client_context_create(chan); - async_client *client = (async_client *) calloc(1, sizeof(async_client)); + async_client *client = (async_client *)calloc(1, sizeof(async_client)); client->context = context; client->reply.message.funcs.decode = read_string; - helloworld_HelloRequest request = { .name.funcs.encode = write_string }; - GRPC_client_async_response_reader *reader = helloworld_Greeter_SayHello_Async(context, cq, request); + helloworld_HelloRequest request = {.name.funcs.encode = write_string}; + GRPC_client_async_response_reader *reader = + helloworld_Greeter_SayHello_Async(context, cq, request); helloworld_Greeter_SayHello_Finish(reader, &client->reply, client); } static void *async_say_hello_worker(void *param) { int i; - GRPC_completion_queue *cq = (GRPC_completion_queue *) param; - for (; ; ) { + GRPC_completion_queue *cq = (GRPC_completion_queue *)param; + for (;;) { void *tag; bool ok; - GRPC_completion_queue_operation_status status = GRPC_completion_queue_next(cq, &tag, &ok); + GRPC_completion_queue_operation_status status = + GRPC_completion_queue_next(cq, &tag, &ok); if (status == GRPC_COMPLETION_QUEUE_SHUTDOWN) { printf("Worker thread shutting down\n"); return NULL; @@ -104,14 +107,14 @@ static void *async_say_hello_worker(void *param) { assert(ok); assert(tag != NULL); - async_client *client = (async_client *) tag; + async_client *client = (async_client *)tag; GRPC_client_context_destroy(&client->context); free(client); } return NULL; } -int main(int argc, char** argv) { +int main(int argc, char **argv) { GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); GRPC_client_context *context = GRPC_client_context_create(chan); GRPC_completion_queue *cq = GRPC_completion_queue_create(); @@ -119,7 +122,7 @@ int main(int argc, char** argv) { num_responses = 0; pthread_mutex_init(&num_responses_lock, NULL); - /* Start worker threads */ +/* Start worker threads */ #define THREAD_COUNT 3 pthread_t tids[THREAD_COUNT]; int i; diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index 3135b32277c6f..b55217f2eb68d 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -34,26 +34,26 @@ #include #include -#include "helloworld.grpc.pbc.h" #include +#include "helloworld.grpc.pbc.h" /** * Nanopb callbacks for string encoding/decoding. */ -static bool write_string(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) -{ +static bool write_string(pb_ostream_t *stream, const pb_field_t *field, + void *const *arg) { char *str = "world"; - if (!pb_encode_tag_for_field(stream, field)) - return false; + if (!pb_encode_tag_for_field(stream, field)) return false; - return pb_encode_string(stream, (uint8_t*)str, strlen(str)); + return pb_encode_string(stream, (uint8_t *)str, strlen(str)); } -static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { +static bool read_string(pb_istream_t *stream, const pb_field_t *field, + void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); - if(!pb_read(stream, str, len)) return false; + if (!pb_read(stream, str, len)) return false; str[len] = '\0'; printf("Server replied %s\n", str); free(str); @@ -64,14 +64,14 @@ static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **ar * Fires a single unary RPC and checks the status. */ -int main(int argc, char** argv) { +int main(int argc, char **argv) { // Instantiate the channel, out of which the actual RPCs // are created. This channel models a connection to an endpoint (in this case, // localhost at port 50051). GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); GRPC_client_context *context = GRPC_client_context_create(chan); - helloworld_HelloRequest request = { .name.funcs.encode = write_string }; - helloworld_HelloReply reply = { .message.funcs.decode = read_string }; + helloworld_HelloRequest request = {.name.funcs.encode = write_string}; + helloworld_HelloReply reply = {.message.funcs.decode = read_string}; GRPC_status status = helloworld_Greeter_SayHello(context, request, &reply); if (status.code == GRPC_STATUS_OK && status.ok) { GRPC_client_context_destroy(&context); diff --git a/examples/c/route_guide/route_guide_client.c b/examples/c/route_guide/route_guide_client.c index dab894c69254d..193393d07e856 100644 --- a/examples/c/route_guide/route_guide_client.c +++ b/examples/c/route_guide/route_guide_client.c @@ -35,31 +35,32 @@ #include "route_guide.grpc.pbc.h" #include "route_guide_db.h" -#include #include +#include #include -#include #include +#include /** * Nanopb callbacks for string encoding/decoding. */ -static bool write_string_from_arg(pb_ostream_t *stream, const pb_field_t *field, void * const *arg) -{ +static bool write_string_from_arg(pb_ostream_t *stream, const pb_field_t *field, + void *const *arg) { const char *str = *arg; - if (!pb_encode_tag_for_field(stream, field)) - return false; + if (!pb_encode_tag_for_field(stream, field)) return false; - return pb_encode_string(stream, (uint8_t*)str, strlen(str)); + return pb_encode_string(stream, (uint8_t *)str, strlen(str)); } /** - * This callback function reads a string from Nanopb stream and copies it into the callback args. + * This callback function reads a string from Nanopb stream and copies it into + * the callback args. * Users need to free the string after use. */ -static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *field, void **arg) { +static bool read_string_store_in_arg(pb_istream_t *stream, + const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); if (!pb_read(stream, str, len)) return false; @@ -70,14 +71,17 @@ static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *fie static const float kCoordFactor = 10000000.0; -bool get_one_feature(GRPC_channel *channel, routeguide_Point point, routeguide_Feature *feature) { +bool get_one_feature(GRPC_channel *channel, routeguide_Point point, + routeguide_Feature *feature) { GRPC_client_context *context = GRPC_client_context_create(channel); feature->name.funcs.decode = read_string_store_in_arg; feature->name.arg = NULL; - GRPC_status status = routeguide_RouteGuide_GetFeature(context, point, feature); + GRPC_status status = + routeguide_RouteGuide_GetFeature(context, point, feature); if (!status.ok) { if (status.details_length > 0 && status.details != NULL) { - printf("GetFeature rpc failed. Code = %d. Details: %s\n", status.code, status.details); + printf("GetFeature rpc failed. Code = %d. Details: %s\n", status.code, + status.details); } else { printf("GetFeature rpc failed. Code = %d.\n", status.code); } @@ -94,8 +98,7 @@ bool get_one_feature(GRPC_channel *channel, routeguide_Point point, routeguide_F feature->location.latitude / kCoordFactor, feature->location.longitude / kCoordFactor); } else { - printf("Found feature called %s at %.6f, %.6f\n", - (char *) feature->name.arg, + printf("Found feature called %s at %.6f, %.6f\n", (char *)feature->name.arg, feature->location.latitude / kCoordFactor, feature->location.longitude / kCoordFactor); } @@ -104,7 +107,7 @@ bool get_one_feature(GRPC_channel *channel, routeguide_Point point, routeguide_F } void get_feature(GRPC_channel *chan) { - routeguide_Point point = { true, 409146138, true, -746188906 }; + routeguide_Point point = {true, 409146138, true, -746188906}; routeguide_Feature feature; get_one_feature(chan, point, &feature); @@ -114,7 +117,7 @@ void get_feature(GRPC_channel *chan) { feature.name.arg = NULL; } - point = (routeguide_Point) { false, 0, false, 0 }; + point = (routeguide_Point){false, 0, false, 0}; get_one_feature(chan, point, &feature); /* free name string */ @@ -125,35 +128,29 @@ void get_feature(GRPC_channel *chan) { } void list_features(GRPC_channel *chan) { - routeguide_Rectangle rect = { - .has_lo = true, - .lo = { - .has_latitude = true, - .latitude = 400000000, - .has_longitude = true, - .longitude = -750000000 - }, - .has_hi = true, - .hi = { - .has_latitude = true, - .latitude = 420000000, - .has_longitude = true, - .longitude = -730000000 - } - }; + routeguide_Rectangle rect = {.has_lo = true, + .lo = {.has_latitude = true, + .latitude = 400000000, + .has_longitude = true, + .longitude = -750000000}, + .has_hi = true, + .hi = {.has_latitude = true, + .latitude = 420000000, + .has_longitude = true, + .longitude = -730000000}}; routeguide_Feature feature; feature.name.funcs.decode = read_string_store_in_arg; GRPC_client_context *context = GRPC_client_context_create(chan); printf("Looking for features between 40, -75 and 42, -73\n"); - GRPC_client_reader *reader = routeguide_RouteGuide_ListFeatures(context, rect); + GRPC_client_reader *reader = + routeguide_RouteGuide_ListFeatures(context, rect); while (routeguide_RouteGuide_ListFeatures_Read(reader, &feature)) { char *name = ""; if (feature.name.arg) name = feature.name.arg; - printf("Found feature called %s at %.6f, %.6f\n", - name, + printf("Found feature called %s at %.6f, %.6f\n", name, feature.location.latitude / kCoordFactor, feature.location.longitude / kCoordFactor); @@ -181,26 +178,22 @@ void record_route(GRPC_channel *chan) { srand(time(NULL)); - GRPC_client_writer *writer = routeguide_RouteGuide_RecordRoute(context, &stats); + GRPC_client_writer *writer = + routeguide_RouteGuide_RecordRoute(context, &stats); int i; for (i = 0; i < kPoints; i++) { - const route_feature db_feature = route_guide_database[rand() % num_route_features_in_database]; + const route_feature db_feature = + route_guide_database[rand() % num_route_features_in_database]; const routeguide_Feature f = { - .name = { - .arg = (void *) db_feature.name, - .funcs.encode = write_string_from_arg - }, - .has_location = true, - .location = { - .has_latitude = true, - .latitude = db_feature.location.latitude, - .has_longitude = true, - .longitude = db_feature.location.longitude - } - }; - printf("Visiting point %.6f, %.6f\n", - f.location.latitude / kCoordFactor, + .name = {.arg = (void *)db_feature.name, + .funcs.encode = write_string_from_arg}, + .has_location = true, + .location = {.has_latitude = true, + .latitude = db_feature.location.latitude, + .has_longitude = true, + .longitude = db_feature.location.longitude}}; + printf("Visiting point %.6f, %.6f\n", f.location.latitude / kCoordFactor, f.location.longitude / kCoordFactor); if (!routeguide_RouteGuide_RecordRoute_Write(writer, f.location)) { // Broken stream. @@ -210,11 +203,11 @@ void record_route(GRPC_channel *chan) { } GRPC_status status = routeguide_RouteGuide_RecordRoute_Terminate(writer); if (status.ok) { - printf("Finished trip with %d points\nPassed %d features\nTravelled %d meters\nIt took %d seconds\n", - stats.point_count, - stats.feature_count, - stats.distance, - stats.elapsed_time); + printf( + "Finished trip with %d points\nPassed %d features\nTravelled %d " + "meters\nIt took %d seconds\n", + stats.point_count, stats.feature_count, stats.distance, + stats.elapsed_time); } else { printf("RecordRoute rpc failed.\n"); } @@ -222,63 +215,39 @@ void record_route(GRPC_channel *chan) { void route_chat_thread(GRPC_client_reader_writer *reader_writer) { routeguide_RouteNote notes[] = { - { - .has_location = true, - .location = { - .has_latitude = false, - .latitude = 0, - .has_longitude = false, - .longitude = 0 - }, - .message = { - .arg = (void *) "First message", - .funcs.encode = write_string_from_arg - } - }, { - .has_location = true, - .location = { - .has_latitude = false, - .latitude = 0, - .has_longitude = true, - .longitude = 1 - }, - .message = { - .arg = (void *) "Second message", - .funcs.encode = write_string_from_arg - } - }, { - .has_location = true, - .location = { - .has_latitude = true, - .latitude = 1, - .has_longitude = false, - .longitude = 0 - }, - .message = { - .arg = (void *) "Third message", - .funcs.encode = write_string_from_arg - } - }, { - .has_location = true, - .location = { - .has_latitude = false, - .latitude = 0, - .has_longitude = false, - .longitude = 0 - }, - .message = { - .arg = (void *) "Fourth message", - .funcs.encode = write_string_from_arg - } - } - }; + {.has_location = true, + .location = {.has_latitude = false, + .latitude = 0, + .has_longitude = false, + .longitude = 0}, + .message = {.arg = (void *)"First message", + .funcs.encode = write_string_from_arg}}, + {.has_location = true, + .location = {.has_latitude = false, + .latitude = 0, + .has_longitude = true, + .longitude = 1}, + .message = {.arg = (void *)"Second message", + .funcs.encode = write_string_from_arg}}, + {.has_location = true, + .location = {.has_latitude = true, + .latitude = 1, + .has_longitude = false, + .longitude = 0}, + .message = {.arg = (void *)"Third message", + .funcs.encode = write_string_from_arg}}, + {.has_location = true, + .location = {.has_latitude = false, + .latitude = 0, + .has_longitude = false, + .longitude = 0}, + .message = {.arg = (void *)"Fourth message", + .funcs.encode = write_string_from_arg}}}; int i; for (i = 0; i < 4; i++) { - printf("Sending message %s at %d, %d\n", - (char *) notes[i].message.arg, - notes[i].location.latitude, - notes[i].location.longitude); + printf("Sending message %s at %d, %d\n", (char *)notes[i].message.arg, + notes[i].location.latitude, notes[i].location.longitude); routeguide_RouteGuide_RouteChat_Write(reader_writer, notes[i]); } routeguide_RouteGuide_RouteChat_Writes_Done(reader_writer); @@ -287,7 +256,8 @@ void route_chat_thread(GRPC_client_reader_writer *reader_writer) { void route_chat(GRPC_channel *chan) { GRPC_client_context *context = GRPC_client_context_create(chan); - GRPC_client_reader_writer *reader_writer = routeguide_RouteGuide_RouteChat(context); + GRPC_client_reader_writer *reader_writer = + routeguide_RouteGuide_RouteChat(context); pthread_t tid; pthread_create(&tid, NULL, route_chat_thread, reader_writer); @@ -295,10 +265,8 @@ void route_chat(GRPC_channel *chan) { routeguide_RouteNote server_note; server_note.message.funcs.decode = read_string_store_in_arg; while (routeguide_RouteGuide_RouteChat_Read(reader_writer, &server_note)) { - printf("Got message %s at %d, %d\n", - (char *) server_note.message.arg, - server_note.location.latitude, - server_note.location.longitude); + printf("Got message %s at %d, %d\n", (char *)server_note.message.arg, + server_note.location.latitude, server_note.location.longitude); } pthread_join(tid, NULL); GRPC_status status = routeguide_RouteGuide_RouteChat_Terminate(reader_writer); @@ -307,7 +275,7 @@ void route_chat(GRPC_channel *chan) { } } -int main(int argc, char** argv) { +int main(int argc, char **argv) { GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); printf("-------------- GetFeature --------------\n"); diff --git a/examples/c/route_guide/route_guide_db.c b/examples/c/route_guide/route_guide_db.c index d25c5fdc59d71..b17c9f764f48e 100644 --- a/examples/c/route_guide/route_guide_db.c +++ b/examples/c/route_guide/route_guide_db.c @@ -34,607 +34,170 @@ #include "route_guide_db.h" const route_feature route_guide_database[] = { - { - .location = { - .latitude = 407838351, - .longitude = -746143763 - }, - .name = "Patriots Path, Mendham, NJ 07945, USA" - }, { - .location = { - .latitude = 408122808, - .longitude = -743999179 - }, - .name = "101 New Jersey 10, Whippany, NJ 07981, USA" - }, { - .location = { - .latitude = 413628156, - .longitude = -749015468 - }, - .name = "U.S. 6, Shohola, PA 18458, USA" - }, { - .location = { - .latitude = 419999544, - .longitude = -740371136 - }, - .name = "5 Conners Road, Kingston, NY 12401, USA" - }, { - .location = { - .latitude = 414008389, - .longitude = -743951297 - }, - .name = "Mid Hudson Psychiatric Center, New Hampton, NY 10958, USA" - }, { - .location = { - .latitude = 419611318, - .longitude = -746524769 - }, - .name = "287 Flugertown Road, Livingston Manor, NY 12758, USA" - }, { - .location = { - .latitude = 406109563, - .longitude = -742186778 - }, - .name = "4001 Tremley Point Road, Linden, NJ 07036, USA" - }, { - .location = { - .latitude = 416802456, - .longitude = -742370183 - }, - .name = "352 South Mountain Road, Wallkill, NY 12589, USA" - }, { - .location = { - .latitude = 412950425, - .longitude = -741077389 - }, - .name = "Bailey Turn Road, Harriman, NY 10926, USA" - }, { - .location = { - .latitude = 412144655, - .longitude = -743949739 - }, - .name = "193-199 Wawayanda Road, Hewitt, NJ 07421, USA" - }, { - .location = { - .latitude = 415736605, - .longitude = -742847522 - }, - .name = "406-496 Ward Avenue, Pine Bush, NY 12566, USA" - }, { - .location = { - .latitude = 413843930, - .longitude = -740501726 - }, - .name = "162 Merrill Road, Highland Mills, NY 10930, USA" - }, { - .location = { - .latitude = 410873075, - .longitude = -744459023 - }, - .name = "Clinton Road, West Milford, NJ 07480, USA" - }, { - .location = { - .latitude = 412346009, - .longitude = -744026814 - }, - .name = "16 Old Brook Lane, Warwick, NY 10990, USA" - }, { - .location = { - .latitude = 402948455, - .longitude = -747903913 - }, - .name = "3 Drake Lane, Pennington, NJ 08534, USA" - }, { - .location = { - .latitude = 406337092, - .longitude = -740122226 - }, - .name = "6324 8th Avenue, Brooklyn, NY 11220, USA" - }, { - .location = { - .latitude = 406421967, - .longitude = -747727624 - }, - .name = "1 Merck Access Road, Whitehouse Station, NJ 08889, USA" - }, { - .location = { - .latitude = 416318082, - .longitude = -749677716 - }, - .name = "78-98 Schalck Road, Narrowsburg, NY 12764, USA" - }, { - .location = { - .latitude = 415301720, - .longitude = -748416257 - }, - .name = "282 Lakeview Drive Road, Highland Lake, NY 12743, USA" - }, { - .location = { - .latitude = 402647019, - .longitude = -747071791 - }, - .name = "330 Evelyn Avenue, Hamilton Township, NJ 08619, USA" - }, { - .location = { - .latitude = 412567807, - .longitude = -741058078 - }, - .name = "New York State Reference Route 987E, Southfields, NY 10975, USA" - }, { - .location = { - .latitude = 416855156, - .longitude = -744420597 - }, - .name = "103-271 Tempaloni Road, Ellenville, NY 12428, USA" - }, { - .location = { - .latitude = 404663628, - .longitude = -744820157 - }, - .name = "1300 Airport Road, North Brunswick Township, NJ 08902, USA" - }, { - .location = { - .latitude = 407113723, - .longitude = -749746483 - }, - .name = "" - }, { - .location = { - .latitude = 402133926, - .longitude = -743613249 - }, - .name = "" - }, { - .location = { - .latitude = 400273442, - .longitude = -741220915 - }, - .name = "" - }, { - .location = { - .latitude = 411236786, - .longitude = -744070769 - }, - .name = "" - }, { - .location = { - .latitude = 411633782, - .longitude = -746784970 - }, - .name = "211-225 Plains Road, Augusta, NJ 07822, USA" - }, { - .location = { - .latitude = 415830701, - .longitude = -742952812 - }, - .name = "" - }, { - .location = { - .latitude = 413447164, - .longitude = -748712898 - }, - .name = "165 Pedersen Ridge Road, Milford, PA 18337, USA" - }, { - .location = { - .latitude = 405047245, - .longitude = -749800722 - }, - .name = "100-122 Locktown Road, Frenchtown, NJ 08825, USA" - }, { - .location = { - .latitude = 418858923, - .longitude = -746156790 - }, - .name = "" - }, { - .location = { - .latitude = 417951888, - .longitude = -748484944 - }, - .name = "650-652 Willi Hill Road, Swan Lake, NY 12783, USA" - }, { - .location = { - .latitude = 407033786, - .longitude = -743977337 - }, - .name = "26 East 3rd Street, New Providence, NJ 07974, USA" - }, { - .location = { - .latitude = 417548014, - .longitude = -740075041 - }, - .name = "" - }, { - .location = { - .latitude = 410395868, - .longitude = -744972325 - }, - .name = "" - }, { - .location = { - .latitude = 404615353, - .longitude = -745129803 - }, - .name = "" - }, { - .location = { - .latitude = 406589790, - .longitude = -743560121 - }, - .name = "611 Lawrence Avenue, Westfield, NJ 07090, USA" - }, { - .location = { - .latitude = 414653148, - .longitude = -740477477 - }, - .name = "18 Lannis Avenue, New Windsor, NY 12553, USA" - }, { - .location = { - .latitude = 405957808, - .longitude = -743255336 - }, - .name = "82-104 Amherst Avenue, Colonia, NJ 07067, USA" - }, { - .location = { - .latitude = 411733589, - .longitude = -741648093 - }, - .name = "170 Seven Lakes Drive, Sloatsburg, NY 10974, USA" - }, { - .location = { - .latitude = 412676291, - .longitude = -742606606 - }, - .name = "1270 Lakes Road, Monroe, NY 10950, USA" - }, { - .location = { - .latitude = 409224445, - .longitude = -748286738 - }, - .name = "509-535 Alphano Road, Great Meadows, NJ 07838, USA" - }, { - .location = { - .latitude = 406523420, - .longitude = -742135517 - }, - .name = "652 Garden Street, Elizabeth, NJ 07202, USA" - }, { - .location = { - .latitude = 401827388, - .longitude = -740294537 - }, - .name = "349 Sea Spray Court, Neptune City, NJ 07753, USA" - }, { - .location = { - .latitude = 410564152, - .longitude = -743685054 - }, - .name = "13-17 Stanley Street, West Milford, NJ 07480, USA" - }, { - .location = { - .latitude = 408472324, - .longitude = -740726046 - }, - .name = "47 Industrial Avenue, Teterboro, NJ 07608, USA" - }, { - .location = { - .latitude = 412452168, - .longitude = -740214052 - }, - .name = "5 White Oak Lane, Stony Point, NY 10980, USA" - }, { - .location = { - .latitude = 409146138, - .longitude = -746188906 - }, - .name = "Berkshire Valley Management Area Trail, Jefferson, NJ, USA" - }, { - .location = { - .latitude = 404701380, - .longitude = -744781745 - }, - .name = "1007 Jersey Avenue, New Brunswick, NJ 08901, USA" - }, { - .location = { - .latitude = 409642566, - .longitude = -746017679 - }, - .name = "6 East Emerald Isle Drive, Lake Hopatcong, NJ 07849, USA" - }, { - .location = { - .latitude = 408031728, - .longitude = -748645385 - }, - .name = "1358-1474 New Jersey 57, Port Murray, NJ 07865, USA" - }, { - .location = { - .latitude = 413700272, - .longitude = -742135189 - }, - .name = "367 Prospect Road, Chester, NY 10918, USA" - }, { - .location = { - .latitude = 404310607, - .longitude = -740282632 - }, - .name = "10 Simon Lake Drive, Atlantic Highlands, NJ 07716, USA" - }, { - .location = { - .latitude = 409319800, - .longitude = -746201391 - }, - .name = "11 Ward Street, Mount Arlington, NJ 07856, USA" - }, { - .location = { - .latitude = 406685311, - .longitude = -742108603 - }, - .name = "300-398 Jefferson Avenue, Elizabeth, NJ 07201, USA" - }, { - .location = { - .latitude = 419018117, - .longitude = -749142781 - }, - .name = "43 Dreher Road, Roscoe, NY 12776, USA" - }, { - .location = { - .latitude = 412856162, - .longitude = -745148837 - }, - .name = "Swan Street, Pine Island, NY 10969, USA" - }, { - .location = { - .latitude = 416560744, - .longitude = -746721964 - }, - .name = "66 Pleasantview Avenue, Monticello, NY 12701, USA" - }, { - .location = { - .latitude = 405314270, - .longitude = -749836354 - }, - .name = "" - }, { - .location = { - .latitude = 414219548, - .longitude = -743327440 - }, - .name = "" - }, { - .location = { - .latitude = 415534177, - .longitude = -742900616 - }, - .name = "565 Winding Hills Road, Montgomery, NY 12549, USA" - }, { - .location = { - .latitude = 406898530, - .longitude = -749127080 - }, - .name = "231 Rocky Run Road, Glen Gardner, NJ 08826, USA" - }, { - .location = { - .latitude = 407586880, - .longitude = -741670168 - }, - .name = "100 Mount Pleasant Avenue, Newark, NJ 07104, USA" - }, { - .location = { - .latitude = 400106455, - .longitude = -742870190 - }, - .name = "517-521 Huntington Drive, Manchester Township, NJ 08759, USA" - }, { - .location = { - .latitude = 400066188, - .longitude = -746793294 - }, - .name = "" - }, { - .location = { - .latitude = 418803880, - .longitude = -744102673 - }, - .name = "40 Mountain Road, Napanoch, NY 12458, USA" - }, { - .location = { - .latitude = 414204288, - .longitude = -747895140 - }, - .name = "" - }, { - .location = { - .latitude = 414777405, - .longitude = -740615601 - }, - .name = "" - }, { - .location = { - .latitude = 415464475, - .longitude = -747175374 - }, - .name = "48 North Road, Forestburgh, NY 12777, USA" - }, { - .location = { - .latitude = 404062378, - .longitude = -746376177 - }, - .name = "" - }, { - .location = { - .latitude = 405688272, - .longitude = -749285130 - }, - .name = "" - }, { - .location = { - .latitude = 400342070, - .longitude = -748788996 - }, - .name = "" - }, { - .location = { - .latitude = 401809022, - .longitude = -744157964 - }, - .name = "" - }, { - .location = { - .latitude = 404226644, - .longitude = -740517141 - }, - .name = "9 Thompson Avenue, Leonardo, NJ 07737, USA" - }, { - .location = { - .latitude = 410322033, - .longitude = -747871659 - }, - .name = "" - }, { - .location = { - .latitude = 407100674, - .longitude = -747742727 - }, - .name = "" - }, { - .location = { - .latitude = 418811433, - .longitude = -741718005 - }, - .name = "213 Bush Road, Stone Ridge, NY 12484, USA" - }, { - .location = { - .latitude = 415034302, - .longitude = -743850945 - }, - .name = "" - }, { - .location = { - .latitude = 411349992, - .longitude = -743694161 - }, - .name = "" - }, { - .location = { - .latitude = 404839914, - .longitude = -744759616 - }, - .name = "1-17 Bergen Court, New Brunswick, NJ 08901, USA" - }, { - .location = { - .latitude = 414638017, - .longitude = -745957854 - }, - .name = "35 Oakland Valley Road, Cuddebackville, NY 12729, USA" - }, { - .location = { - .latitude = 412127800, - .longitude = -740173578 - }, - .name = "" - }, { - .location = { - .latitude = 401263460, - .longitude = -747964303 - }, - .name = "" - }, { - .location = { - .latitude = 412843391, - .longitude = -749086026 - }, - .name = "" - }, { - .location = { - .latitude = 418512773, - .longitude = -743067823 - }, - .name = "" - }, { - .location = { - .latitude = 404318328, - .longitude = -740835638 - }, - .name = "42-102 Main Street, Belford, NJ 07718, USA" - }, { - .location = { - .latitude = 419020746, - .longitude = -741172328 - }, - .name = "" - }, { - .location = { - .latitude = 404080723, - .longitude = -746119569 - }, - .name = "" - }, { - .location = { - .latitude = 401012643, - .longitude = -744035134 - }, - .name = "" - }, { - .location = { - .latitude = 404306372, - .longitude = -741079661 - }, - .name = "" - }, { - .location = { - .latitude = 403966326, - .longitude = -748519297 - }, - .name = "" - }, { - .location = { - .latitude = 405002031, - .longitude = -748407866 - }, - .name = "" - }, { - .location = { - .latitude = 409532885, - .longitude = -742200683 - }, - .name = "" - }, { - .location = { - .latitude = 416851321, - .longitude = -742674555 - }, - .name = "" - }, { - .location = { - .latitude = 406411633, - .longitude = -741722051 - }, - .name = "3387 Richmond Terrace, Staten Island, NY 10303, USA" - }, { - .location = { - .latitude = 413069058, - .longitude = -744597778 - }, - .name = "261 Van Sickle Road, Goshen, NY 10924, USA" - }, { - .location = { - .latitude = 418465462, - .longitude = -746859398 - }, - .name = "" - }, { - .location = { - .latitude = 411733222, - .longitude = -744228360 - }, - .name = "" - }, { - .location = { - .latitude = 410248224, - .longitude = -747127767 - }, - .name = "3 Hasta Way, Newton, NJ 07860, USA" - } -}; + {.location = {.latitude = 407838351, .longitude = -746143763}, + .name = "Patriots Path, Mendham, NJ 07945, USA"}, + {.location = {.latitude = 408122808, .longitude = -743999179}, + .name = "101 New Jersey 10, Whippany, NJ 07981, USA"}, + {.location = {.latitude = 413628156, .longitude = -749015468}, + .name = "U.S. 6, Shohola, PA 18458, USA"}, + {.location = {.latitude = 419999544, .longitude = -740371136}, + .name = "5 Conners Road, Kingston, NY 12401, USA"}, + {.location = {.latitude = 414008389, .longitude = -743951297}, + .name = "Mid Hudson Psychiatric Center, New Hampton, NY 10958, USA"}, + {.location = {.latitude = 419611318, .longitude = -746524769}, + .name = "287 Flugertown Road, Livingston Manor, NY 12758, USA"}, + {.location = {.latitude = 406109563, .longitude = -742186778}, + .name = "4001 Tremley Point Road, Linden, NJ 07036, USA"}, + {.location = {.latitude = 416802456, .longitude = -742370183}, + .name = "352 South Mountain Road, Wallkill, NY 12589, USA"}, + {.location = {.latitude = 412950425, .longitude = -741077389}, + .name = "Bailey Turn Road, Harriman, NY 10926, USA"}, + {.location = {.latitude = 412144655, .longitude = -743949739}, + .name = "193-199 Wawayanda Road, Hewitt, NJ 07421, USA"}, + {.location = {.latitude = 415736605, .longitude = -742847522}, + .name = "406-496 Ward Avenue, Pine Bush, NY 12566, USA"}, + {.location = {.latitude = 413843930, .longitude = -740501726}, + .name = "162 Merrill Road, Highland Mills, NY 10930, USA"}, + {.location = {.latitude = 410873075, .longitude = -744459023}, + .name = "Clinton Road, West Milford, NJ 07480, USA"}, + {.location = {.latitude = 412346009, .longitude = -744026814}, + .name = "16 Old Brook Lane, Warwick, NY 10990, USA"}, + {.location = {.latitude = 402948455, .longitude = -747903913}, + .name = "3 Drake Lane, Pennington, NJ 08534, USA"}, + {.location = {.latitude = 406337092, .longitude = -740122226}, + .name = "6324 8th Avenue, Brooklyn, NY 11220, USA"}, + {.location = {.latitude = 406421967, .longitude = -747727624}, + .name = "1 Merck Access Road, Whitehouse Station, NJ 08889, USA"}, + {.location = {.latitude = 416318082, .longitude = -749677716}, + .name = "78-98 Schalck Road, Narrowsburg, NY 12764, USA"}, + {.location = {.latitude = 415301720, .longitude = -748416257}, + .name = "282 Lakeview Drive Road, Highland Lake, NY 12743, USA"}, + {.location = {.latitude = 402647019, .longitude = -747071791}, + .name = "330 Evelyn Avenue, Hamilton Township, NJ 08619, USA"}, + {.location = {.latitude = 412567807, .longitude = -741058078}, + .name = "New York State Reference Route 987E, Southfields, NY 10975, USA"}, + {.location = {.latitude = 416855156, .longitude = -744420597}, + .name = "103-271 Tempaloni Road, Ellenville, NY 12428, USA"}, + {.location = {.latitude = 404663628, .longitude = -744820157}, + .name = "1300 Airport Road, North Brunswick Township, NJ 08902, USA"}, + {.location = {.latitude = 407113723, .longitude = -749746483}, .name = ""}, + {.location = {.latitude = 402133926, .longitude = -743613249}, .name = ""}, + {.location = {.latitude = 400273442, .longitude = -741220915}, .name = ""}, + {.location = {.latitude = 411236786, .longitude = -744070769}, .name = ""}, + {.location = {.latitude = 411633782, .longitude = -746784970}, + .name = "211-225 Plains Road, Augusta, NJ 07822, USA"}, + {.location = {.latitude = 415830701, .longitude = -742952812}, .name = ""}, + {.location = {.latitude = 413447164, .longitude = -748712898}, + .name = "165 Pedersen Ridge Road, Milford, PA 18337, USA"}, + {.location = {.latitude = 405047245, .longitude = -749800722}, + .name = "100-122 Locktown Road, Frenchtown, NJ 08825, USA"}, + {.location = {.latitude = 418858923, .longitude = -746156790}, .name = ""}, + {.location = {.latitude = 417951888, .longitude = -748484944}, + .name = "650-652 Willi Hill Road, Swan Lake, NY 12783, USA"}, + {.location = {.latitude = 407033786, .longitude = -743977337}, + .name = "26 East 3rd Street, New Providence, NJ 07974, USA"}, + {.location = {.latitude = 417548014, .longitude = -740075041}, .name = ""}, + {.location = {.latitude = 410395868, .longitude = -744972325}, .name = ""}, + {.location = {.latitude = 404615353, .longitude = -745129803}, .name = ""}, + {.location = {.latitude = 406589790, .longitude = -743560121}, + .name = "611 Lawrence Avenue, Westfield, NJ 07090, USA"}, + {.location = {.latitude = 414653148, .longitude = -740477477}, + .name = "18 Lannis Avenue, New Windsor, NY 12553, USA"}, + {.location = {.latitude = 405957808, .longitude = -743255336}, + .name = "82-104 Amherst Avenue, Colonia, NJ 07067, USA"}, + {.location = {.latitude = 411733589, .longitude = -741648093}, + .name = "170 Seven Lakes Drive, Sloatsburg, NY 10974, USA"}, + {.location = {.latitude = 412676291, .longitude = -742606606}, + .name = "1270 Lakes Road, Monroe, NY 10950, USA"}, + {.location = {.latitude = 409224445, .longitude = -748286738}, + .name = "509-535 Alphano Road, Great Meadows, NJ 07838, USA"}, + {.location = {.latitude = 406523420, .longitude = -742135517}, + .name = "652 Garden Street, Elizabeth, NJ 07202, USA"}, + {.location = {.latitude = 401827388, .longitude = -740294537}, + .name = "349 Sea Spray Court, Neptune City, NJ 07753, USA"}, + {.location = {.latitude = 410564152, .longitude = -743685054}, + .name = "13-17 Stanley Street, West Milford, NJ 07480, USA"}, + {.location = {.latitude = 408472324, .longitude = -740726046}, + .name = "47 Industrial Avenue, Teterboro, NJ 07608, USA"}, + {.location = {.latitude = 412452168, .longitude = -740214052}, + .name = "5 White Oak Lane, Stony Point, NY 10980, USA"}, + {.location = {.latitude = 409146138, .longitude = -746188906}, + .name = "Berkshire Valley Management Area Trail, Jefferson, NJ, USA"}, + {.location = {.latitude = 404701380, .longitude = -744781745}, + .name = "1007 Jersey Avenue, New Brunswick, NJ 08901, USA"}, + {.location = {.latitude = 409642566, .longitude = -746017679}, + .name = "6 East Emerald Isle Drive, Lake Hopatcong, NJ 07849, USA"}, + {.location = {.latitude = 408031728, .longitude = -748645385}, + .name = "1358-1474 New Jersey 57, Port Murray, NJ 07865, USA"}, + {.location = {.latitude = 413700272, .longitude = -742135189}, + .name = "367 Prospect Road, Chester, NY 10918, USA"}, + {.location = {.latitude = 404310607, .longitude = -740282632}, + .name = "10 Simon Lake Drive, Atlantic Highlands, NJ 07716, USA"}, + {.location = {.latitude = 409319800, .longitude = -746201391}, + .name = "11 Ward Street, Mount Arlington, NJ 07856, USA"}, + {.location = {.latitude = 406685311, .longitude = -742108603}, + .name = "300-398 Jefferson Avenue, Elizabeth, NJ 07201, USA"}, + {.location = {.latitude = 419018117, .longitude = -749142781}, + .name = "43 Dreher Road, Roscoe, NY 12776, USA"}, + {.location = {.latitude = 412856162, .longitude = -745148837}, + .name = "Swan Street, Pine Island, NY 10969, USA"}, + {.location = {.latitude = 416560744, .longitude = -746721964}, + .name = "66 Pleasantview Avenue, Monticello, NY 12701, USA"}, + {.location = {.latitude = 405314270, .longitude = -749836354}, .name = ""}, + {.location = {.latitude = 414219548, .longitude = -743327440}, .name = ""}, + {.location = {.latitude = 415534177, .longitude = -742900616}, + .name = "565 Winding Hills Road, Montgomery, NY 12549, USA"}, + {.location = {.latitude = 406898530, .longitude = -749127080}, + .name = "231 Rocky Run Road, Glen Gardner, NJ 08826, USA"}, + {.location = {.latitude = 407586880, .longitude = -741670168}, + .name = "100 Mount Pleasant Avenue, Newark, NJ 07104, USA"}, + {.location = {.latitude = 400106455, .longitude = -742870190}, + .name = "517-521 Huntington Drive, Manchester Township, NJ 08759, USA"}, + {.location = {.latitude = 400066188, .longitude = -746793294}, .name = ""}, + {.location = {.latitude = 418803880, .longitude = -744102673}, + .name = "40 Mountain Road, Napanoch, NY 12458, USA"}, + {.location = {.latitude = 414204288, .longitude = -747895140}, .name = ""}, + {.location = {.latitude = 414777405, .longitude = -740615601}, .name = ""}, + {.location = {.latitude = 415464475, .longitude = -747175374}, + .name = "48 North Road, Forestburgh, NY 12777, USA"}, + {.location = {.latitude = 404062378, .longitude = -746376177}, .name = ""}, + {.location = {.latitude = 405688272, .longitude = -749285130}, .name = ""}, + {.location = {.latitude = 400342070, .longitude = -748788996}, .name = ""}, + {.location = {.latitude = 401809022, .longitude = -744157964}, .name = ""}, + {.location = {.latitude = 404226644, .longitude = -740517141}, + .name = "9 Thompson Avenue, Leonardo, NJ 07737, USA"}, + {.location = {.latitude = 410322033, .longitude = -747871659}, .name = ""}, + {.location = {.latitude = 407100674, .longitude = -747742727}, .name = ""}, + {.location = {.latitude = 418811433, .longitude = -741718005}, + .name = "213 Bush Road, Stone Ridge, NY 12484, USA"}, + {.location = {.latitude = 415034302, .longitude = -743850945}, .name = ""}, + {.location = {.latitude = 411349992, .longitude = -743694161}, .name = ""}, + {.location = {.latitude = 404839914, .longitude = -744759616}, + .name = "1-17 Bergen Court, New Brunswick, NJ 08901, USA"}, + {.location = {.latitude = 414638017, .longitude = -745957854}, + .name = "35 Oakland Valley Road, Cuddebackville, NY 12729, USA"}, + {.location = {.latitude = 412127800, .longitude = -740173578}, .name = ""}, + {.location = {.latitude = 401263460, .longitude = -747964303}, .name = ""}, + {.location = {.latitude = 412843391, .longitude = -749086026}, .name = ""}, + {.location = {.latitude = 418512773, .longitude = -743067823}, .name = ""}, + {.location = {.latitude = 404318328, .longitude = -740835638}, + .name = "42-102 Main Street, Belford, NJ 07718, USA"}, + {.location = {.latitude = 419020746, .longitude = -741172328}, .name = ""}, + {.location = {.latitude = 404080723, .longitude = -746119569}, .name = ""}, + {.location = {.latitude = 401012643, .longitude = -744035134}, .name = ""}, + {.location = {.latitude = 404306372, .longitude = -741079661}, .name = ""}, + {.location = {.latitude = 403966326, .longitude = -748519297}, .name = ""}, + {.location = {.latitude = 405002031, .longitude = -748407866}, .name = ""}, + {.location = {.latitude = 409532885, .longitude = -742200683}, .name = ""}, + {.location = {.latitude = 416851321, .longitude = -742674555}, .name = ""}, + {.location = {.latitude = 406411633, .longitude = -741722051}, + .name = "3387 Richmond Terrace, Staten Island, NY 10303, USA"}, + {.location = {.latitude = 413069058, .longitude = -744597778}, + .name = "261 Van Sickle Road, Goshen, NY 10924, USA"}, + {.location = {.latitude = 418465462, .longitude = -746859398}, .name = ""}, + {.location = {.latitude = 411733222, .longitude = -744228360}, .name = ""}, + {.location = {.latitude = 410248224, .longitude = -747127767}, + .name = "3 Hasta Way, Newton, NJ 07860, USA"}}; -const int num_route_features_in_database = sizeof(route_guide_database) / sizeof(route_feature); +const int num_route_features_in_database = + sizeof(route_guide_database) / sizeof(route_feature); diff --git a/include/grpc_c/channel.h b/include/grpc_c/channel.h index 01f59c938ee22..56c97a54a2de2 100644 --- a/include/grpc_c/channel.h +++ b/include/grpc_c/channel.h @@ -36,7 +36,7 @@ #include -GRPC_channel *GRPC_channel_create(const char * const target); -void GRPC_channel_destroy(GRPC_channel ** channel); +GRPC_channel *GRPC_channel_create(const char *const target); +void GRPC_channel_destroy(GRPC_channel **channel); #endif /* GRPC_C_CHANNEL_H */ diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index 263447d524c12..2d06006edc285 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -42,7 +42,8 @@ void GRPC_client_context_destroy(GRPC_client_context **context); /** * Gets the status of the RPC call. Use it only after the call terminates. - * There is no need to free the returned GRPC_status instance or memory referenced by it. + * There is no need to free the returned GRPC_status instance or memory + * referenced by it. */ GRPC_status GRPC_get_call_status(GRPC_client_context *context); diff --git a/include/grpc_c/codegen/bidi_streaming_blocking_call.h b/include/grpc_c/codegen/bidi_streaming_blocking_call.h index ffe2e652fb45a..6920659a04bf2 100644 --- a/include/grpc_c/codegen/bidi_streaming_blocking_call.h +++ b/include/grpc_c/codegen/bidi_streaming_blocking_call.h @@ -34,22 +34,26 @@ #ifndef GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_H #define GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_H -#include -#include #include +#include +#include #include -GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, - GRPC_client_context *const context); +GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( + const GRPC_method rpc_method, GRPC_client_context *const context); -bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader, void *response); +bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader, + void *response); -bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request); +bool GRPC_bidi_streaming_blocking_write( + GRPC_client_reader_writer *reader_writer, const GRPC_message request); /* Marks the end of client stream. Useful for bidi-calls where */ /* the server needs all data from the client to produce a response */ -bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_writer); +bool GRPC_bidi_streaming_blocking_writes_done( + GRPC_client_reader_writer *reader_writer); -GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer); +GRPC_status GRPC_client_reader_writer_terminate( + GRPC_client_reader_writer *reader_writer); #endif /* GRPC_C_CODEGEN_BIDI_STREAMING_BLOCKING_CALL_H */ diff --git a/include/grpc_c/codegen/client_context.h b/include/grpc_c/codegen/client_context.h index 185391549b9b4..cd8c771f2ef4d 100644 --- a/include/grpc_c/codegen/client_context.h +++ b/include/grpc_c/codegen/client_context.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_CODEGEN_CLIENT_CONTEXT_H #define GRPC_C_CODEGEN_CLIENT_CONTEXT_H -#include #include +#include typedef struct grpc_serialization_impl { GRPC_serializer serialize; @@ -43,7 +43,6 @@ typedef struct grpc_serialization_impl { } grpc_serialization_impl; void GRPC_client_context_set_serialization_impl( - GRPC_client_context *context, - grpc_serialization_impl serialization_impl); + GRPC_client_context *context, grpc_serialization_impl serialization_impl); #endif /* GRPC_C_CODEGEN_CLIENT_CONTEXT_H */ diff --git a/include/grpc_c/codegen/client_streaming_blocking_call.h b/include/grpc_c/codegen/client_streaming_blocking_call.h index 30c586ee621c8..621d7951c349a 100644 --- a/include/grpc_c/codegen/client_streaming_blocking_call.h +++ b/include/grpc_c/codegen/client_streaming_blocking_call.h @@ -31,20 +31,20 @@ * */ - #ifndef GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_H #define GRPC_C_CODEGEN_CLIENT_STREAMING_BLOCKING_CALL_H -#include -#include #include +#include +#include #include -GRPC_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_method, - GRPC_client_context *const context, - void *response); +GRPC_client_writer *GRPC_client_streaming_blocking_call( + const GRPC_method rpc_method, GRPC_client_context *const context, + void *response); -bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC_message request); +bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, + const GRPC_message request); /* Terminating the writer takes care of ending the call, freeing the writer. */ /* Returns call status in the context object. */ diff --git a/include/grpc_c/codegen/message.h b/include/grpc_c/codegen/message.h index 9e43beccfcb7a..8aa035694f47e 100644 --- a/include/grpc_c/codegen/message.h +++ b/include/grpc_c/codegen/message.h @@ -37,7 +37,7 @@ #include typedef struct GRPC_message { - const void * data; + const void *data; const size_t length; } GRPC_message; diff --git a/include/grpc_c/codegen/method.h b/include/grpc_c/codegen/method.h index 59d62491e6e21..45e4f337afff4 100644 --- a/include/grpc_c/codegen/method.h +++ b/include/grpc_c/codegen/method.h @@ -37,9 +37,9 @@ typedef struct grpc_method { enum RpcType { NORMAL_RPC = 0, - CLIENT_STREAMING, /* request streaming */ - SERVER_STREAMING, /* response streaming */ - BIDI_STREAMING + CLIENT_STREAMING, /* request streaming */ + SERVER_STREAMING, /* response streaming */ + BIDI_STREAMING } type; const char* name; } grpc_method; diff --git a/include/grpc_c/codegen/pb_compat.h b/include/grpc_c/codegen/pb_compat.h index 665a04d2e26b2..f07aa637e625b 100644 --- a/include/grpc_c/codegen/pb_compat.h +++ b/include/grpc_c/codegen/pb_compat.h @@ -34,12 +34,14 @@ #ifndef GRPC_C_CODEGEN_PB_COMPAT_H #define GRPC_C_CODEGEN_PB_COMPAT_H -#include #include -#include +#include #include +#include -GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, const void *fields); -void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, const void *fields); +GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, + const void *fields); +void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, + const void *fields); #endif /* GRPC_C_CODEGEN_PB_COMPAT_H */ diff --git a/include/grpc_c/codegen/serialization.h b/include/grpc_c/codegen/serialization.h index 296e6487311fa..27f0bf8caa249 100644 --- a/include/grpc_c/codegen/serialization.h +++ b/include/grpc_c/codegen/serialization.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_CODEGEN_SERIALIZATION_H #define GRPC_C_CODEGEN_SERIALIZATION_H -#include #include +#include typedef GRPC_message (*GRPC_serializer)(const GRPC_message input); typedef void (*GRPC_deserializer)(const GRPC_message input, void *output); diff --git a/include/grpc_c/codegen/server_streaming_blocking_call.h b/include/grpc_c/codegen/server_streaming_blocking_call.h index 8ae116f813c7f..f1d0409b76b1d 100644 --- a/include/grpc_c/codegen/server_streaming_blocking_call.h +++ b/include/grpc_c/codegen/server_streaming_blocking_call.h @@ -34,16 +34,17 @@ #ifndef GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_H #define GRPC_C_CODEGEN_SERVER_STREAMING_BLOCKING_CALL_H -#include -#include #include +#include +#include #include -GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, - GRPC_client_context *const context, - const GRPC_message request); +GRPC_client_reader *GRPC_server_streaming_blocking_call( + const GRPC_method rpc_method, GRPC_client_context *const context, + const GRPC_message request); -bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *response); +bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, + void *response); /* Terminating the writer takes care of ending the call, freeing the writer. */ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader); diff --git a/include/grpc_c/codegen/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h index dc2869b19a347..5469268a8419d 100644 --- a/include/grpc_c/codegen/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -34,18 +34,19 @@ #ifndef GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H #define GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H -#include -#include #include +#include #include +#include -GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue *cq, - const GRPC_method rpc_method, - const GRPC_message request, - GRPC_client_context *const context); +GRPC_client_async_response_reader *GRPC_unary_async_call( + GRPC_completion_queue *cq, const GRPC_method rpc_method, + const GRPC_message request, GRPC_client_context *const context); -void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag); +void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, + void *response, void *tag); -void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); +void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, + void *tag); #endif /* GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H */ diff --git a/include/grpc_c/codegen/unary_blocking_call.h b/include/grpc_c/codegen/unary_blocking_call.h index e4fdcdadf292d..2dddff8b4fa5c 100644 --- a/include/grpc_c/codegen/unary_blocking_call.h +++ b/include/grpc_c/codegen/unary_blocking_call.h @@ -34,10 +34,10 @@ #ifndef GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_H #define GRPC_C_CODEGEN_UNARY_BLOCKING_CALL_H +#include +#include #include #include -#include -#include GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, GRPC_client_context *const context, diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 04a612a5371bf..3ad2913eaddf7 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -41,26 +41,29 @@ typedef struct gpr_timespec GRPC_timespec; /** Tri-state return for GRPC_commit_ops_and_wait */ typedef enum GRPC_completion_queue_next_status { - GRPC_COMPLETION_QUEUE_SHUTDOWN, /* The completion queue has been shutdown. */ - GRPC_COMPLETION_QUEUE_GOT_EVENT, /* Got a new event; \a tag will be filled in with its */ - /* associated value; \a ok indicating its success. */ - GRPC_COMPLETION_QUEUE_TIMEOUT /* deadline was reached. */ + GRPC_COMPLETION_QUEUE_SHUTDOWN, /* The completion queue has been shutdown. */ + GRPC_COMPLETION_QUEUE_GOT_EVENT, /* Got a new event; \a tag will be filled in + with its */ + /* associated value; \a ok indicating its success. */ + GRPC_COMPLETION_QUEUE_TIMEOUT /* deadline was reached. */ } GRPC_completion_queue_operation_status; -/** Creates a completion queue. You can listen for new events about calls on the queue. */ +/** Creates a completion queue. You can listen for new events about calls on the + * queue. */ GRPC_completion_queue *GRPC_completion_queue_create(); void GRPC_completion_queue_shutdown(GRPC_completion_queue *cq); -/** Destroys the completion queue and frees resources. The queue must be fully shutdown before this call. */ +/** Destroys the completion queue and frees resources. The queue must be fully + * shutdown before this call. */ void GRPC_completion_queue_destroy(GRPC_completion_queue *cq); /** Swallows events and blocks until it sees the shutdown event */ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq); -GRPC_completion_queue_operation_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok); -GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, - GRPC_timespec deadline, - void **tag, bool *ok); +GRPC_completion_queue_operation_status GRPC_completion_queue_next( + GRPC_completion_queue *cq, void **tag, bool *ok); +GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline( + GRPC_completion_queue *cq, GRPC_timespec deadline, void **tag, bool *ok); #endif /* GRPC_C_COMPLETION_QUEUE_H */ diff --git a/include/grpc_c/declare_serializer.h b/include/grpc_c/declare_serializer.h index 6055d0f59ef04..2042fd1f3eaa2 100644 --- a/include/grpc_c/declare_serializer.h +++ b/include/grpc_c/declare_serializer.h @@ -38,35 +38,49 @@ * Procedures to hook up gRPC-C to a user-defined serialization mechanism * ====================================================================== * - * First take a look at https://github.com/google/flatbuffers/blob/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70/include/flatbuffers/grpc.h - * which glues FlatBuffers to gRPC-C++. For every new serialization algorithm, we need to create a similar file that - * imports this declare_serializer.h, and partially specializes the GRPC_SERIALIZATION_IMPL_MSGTYPE macro defined here. This mirrors - * the C++ template partial specialization method and allows plugging in new serialization implementations with - * zero knowledge from the gRPC library. Of course we need to include this file in our message header, which is in turn - * referenced by the generated service implementation. This will typically be controlled by a switch in the codegen, so - * as to avoid constantly pulling in the gRPC dependency in any other use cases of the serialization library. + * First take a look at + * https://github.com/google/flatbuffers/blob/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70/include/flatbuffers/grpc.h + * which glues FlatBuffers to gRPC-C++. For every new serialization algorithm, + * we need to create a similar file that + * imports this declare_serializer.h, and partially specializes the + * GRPC_SERIALIZATION_IMPL_MSGTYPE macro defined here. This mirrors + * the C++ template partial specialization method and allows plugging in new + * serialization implementations with + * zero knowledge from the gRPC library. Of course we need to include this file + * in our message header, which is in turn + * referenced by the generated service implementation. This will typically be + * controlled by a switch in the codegen, so + * as to avoid constantly pulling in the gRPC dependency in any other use cases + * of the serialization library. * - * Because we wouldn't want to hack the Nanopb, specializations for Nanopb are hardcoded in the gRPC library, and are + * Because we wouldn't want to hack the Nanopb, specializations for Nanopb are + * hardcoded in the gRPC library, and are * automatically activated when Nanopb objects are detected. * - * The service implementation expands the GRPC_C_RESOLVE_SERIALIZER(MessageType) macro, which is expected to provide the - * grpc_serialization_impl struct instance that handles serialization for that particular message type. + * The service implementation expands the GRPC_C_RESOLVE_SERIALIZER(MessageType) + * macro, which is expected to provide the + * grpc_serialization_impl struct instance that handles serialization for that + * particular message type. */ - -#define GRPC_C_RESOLVE_SERIALIZER(msgType) GRPC_C_FETCH_SERIALIZER(GRPC_C_DECLARE_SERIALIZATION_##msgType) -#define GRPC_C_RESOLVE_DESERIALIZER(msgType) GRPC_C_FETCH_DESERIALIZER(GRPC_C_DECLARE_SERIALIZATION_##msgType) -#define GRPC_C_FETCH_SERIALIZER(...) GRPC_C_FETCH_SERIALIZER_PRIMITIVE(__VA_ARGS__) -#define GRPC_C_FETCH_DESERIALIZER(...) GRPC_C_FETCH_DESERIALIZER_PRIMITIVE(__VA_ARGS__) -#define GRPC_C_FETCH_SERIALIZER_PRIMITIVE(x, y) x -#define GRPC_C_FETCH_DESERIALIZER_PRIMITIVE(x, y) y +#define GRPC_C_RESOLVE_SERIALIZER(msgType) \ + GRPC_C_FETCH_SERIALIZER(GRPC_C_DECLARE_SERIALIZATION_##msgType) +#define GRPC_C_RESOLVE_DESERIALIZER(msgType) \ + GRPC_C_FETCH_DESERIALIZER(GRPC_C_DECLARE_SERIALIZATION_##msgType) +#define GRPC_C_FETCH_SERIALIZER(...) \ + GRPC_C_FETCH_SERIALIZER_PRIMITIVE(__VA_ARGS__) +#define GRPC_C_FETCH_DESERIALIZER(...) \ + GRPC_C_FETCH_DESERIALIZER_PRIMITIVE(__VA_ARGS__) +#define GRPC_C_FETCH_SERIALIZER_PRIMITIVE(x, y) x +#define GRPC_C_FETCH_DESERIALIZER_PRIMITIVE(x, y) y /** * Syntax: write this before including gRPC service headers. * * #define GRPC_C_DECLARE_SERIALIZATION_Foo foo_serialize, foo_deserialize * - * This will cause gRPC-C to invoke foo_serialize when sending Foo, and correspondingly foo_deserialize when receiving Foo. + * This will cause gRPC-C to invoke foo_serialize when sending Foo, and + * correspondingly foo_deserialize when receiving Foo. */ #endif /* GRPC_C_DECLARE_SERIALIZER_H */ diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 3faff6ff17df9..3a3be4d823ea3 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -44,6 +44,7 @@ typedef struct grpc_client_writer GRPC_client_writer; typedef struct grpc_client_async_reader_writer GRPC_client_async_reader_writer; typedef struct grpc_client_async_reader GRPC_client_async_reader; typedef struct grpc_client_async_writer GRPC_client_async_writer; -typedef struct grpc_client_async_response_reader GRPC_client_async_response_reader; +typedef struct grpc_client_async_response_reader + GRPC_client_async_response_reader; #endif /* GRPC_C_GRPC_C_H */ diff --git a/src/c/alloc.c b/src/c/alloc.c index 9d4f342343733..7772d76062985 100644 --- a/src/c/alloc.c +++ b/src/c/alloc.c @@ -31,9 +31,9 @@ * */ -#include -#include #include "src/c/alloc.h" +#include +#include void *GRPC_memdup(const void *dst, size_t size) { void *p = gpr_malloc(size); diff --git a/src/c/alloc.h b/src/c/alloc.h index a6896a77cf6f9..104675975ee37 100644 --- a/src/c/alloc.h +++ b/src/c/alloc.h @@ -31,14 +31,14 @@ * */ - #ifndef GRPC_C_ALLOC_H #define GRPC_C_ALLOC_H #include -void* GRPC_memdup(const void * dst, size_t size); +void* GRPC_memdup(const void* dst, size_t size); -#define GRPC_ALLOC_STRUCT(type, ...) (type *) GRPC_memdup(&(type)__VA_ARGS__, sizeof(type)) +#define GRPC_ALLOC_STRUCT(type, ...) \ + (type*)GRPC_memdup(&(type)__VA_ARGS__, sizeof(type)) -#endif // GRPC_C_ALLOC_H +#endif // GRPC_C_ALLOC_H diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index c352c9bc3ab75..84fba92ce0aac 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -31,45 +31,35 @@ * */ - +#include "src/c/bidi_streaming_blocking_call.h" +#include +#include +#include #include #include -#include -#include -#include -#include "src/c/bidi_streaming_blocking_call.h" #include "src/c/alloc.h" #include "src/c/completion_queue.h" -GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method rpc_method, - GRPC_client_context *const context) { +GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( + const GRPC_method rpc_method, GRPC_client_context *const context) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(context->channel, - NULL, - GRPC_PROPAGATE_DEFAULTS, - cq, - rpc_method.name, - "", - context->deadline, - NULL); + grpc_call *call = grpc_channel_create_call( + context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method.name, "", + context->deadline, NULL); context->call = call; context->rpc_method = rpc_method; grpc_call_op_set set = { - { - grpc_op_send_metadata - }, - .context = context, - .user_tag = &set - }; + {grpc_op_send_metadata}, .context = context, .user_tag = &set}; - grpc_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT(grpc_client_reader_writer, { - .context = context, - .call = call, - .cq = cq, - }); + grpc_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT( + grpc_client_reader_writer, { + .context = context, .call = call, .cq = cq, + }); - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0, 0}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, + reader_writer->context, (GRPC_message){0, 0}, + NULL); bool ok = GRPC_completion_queue_pluck_internal(cq, &set); if (!ok) { GRPC_client_reader_writer_terminate(reader_writer); @@ -79,22 +69,14 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call(const GRPC_method r } } -bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, void *response) { - grpc_call_op_set set_meta = { - { - grpc_op_recv_metadata, - grpc_op_recv_object - }, - .context = reader_writer->context, - .user_tag = &set_meta - }; - grpc_call_op_set set_no_meta = { - { - grpc_op_recv_object - }, - .context = reader_writer->context, - .user_tag = &set_no_meta - }; +bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, + void *response) { + grpc_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, + .context = reader_writer->context, + .user_tag = &set_meta}; + grpc_call_op_set set_no_meta = {{grpc_op_recv_object}, + .context = reader_writer->context, + .user_tag = &set_no_meta}; grpc_call_op_set *pSet = NULL; if (reader_writer->context->initial_metadata_received == false) { pSet = &set_meta; @@ -102,51 +84,49 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader_writer->call, pSet, reader_writer->context, (GRPC_message) {0, 0}, response); + grpc_start_batch_from_op_set(reader_writer->call, pSet, + reader_writer->context, (GRPC_message){0, 0}, + response); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, pSet); reader_writer->context->status.ok &= ok; return ok && pSet->message_received; } -bool GRPC_bidi_streaming_blocking_write(GRPC_client_reader_writer *reader_writer, const GRPC_message request) { - grpc_call_op_set set = { - { - grpc_op_send_object - }, - .context = reader_writer->context, - .user_tag = &set - }; +bool GRPC_bidi_streaming_blocking_write( + GRPC_client_reader_writer *reader_writer, const GRPC_message request) { + grpc_call_op_set set = {{grpc_op_send_object}, + .context = reader_writer->context, + .user_tag = &set}; - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, request, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, + reader_writer->context, request, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); reader_writer->context->status.ok &= ok; return ok; } -bool GRPC_bidi_streaming_blocking_writes_done(GRPC_client_reader_writer *reader_writer) { - grpc_call_op_set set = { - { - grpc_op_send_close - }, - .context = reader_writer->context, - .user_tag = &set - }; +bool GRPC_bidi_streaming_blocking_writes_done( + GRPC_client_reader_writer *reader_writer) { + grpc_call_op_set set = {{grpc_op_send_close}, + .context = reader_writer->context, + .user_tag = &set}; - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0, 0}, NULL); + grpc_start_batch_from_op_set(reader_writer->call, &set, + reader_writer->context, (GRPC_message){0, 0}, + NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, (&set)); reader_writer->context->status.ok &= ok; return ok; } -GRPC_status GRPC_client_reader_writer_terminate(GRPC_client_reader_writer *reader_writer) { - grpc_call_op_set set = { - { - grpc_op_recv_status - }, - .context = reader_writer->context, - .user_tag = &set - }; - grpc_start_batch_from_op_set(reader_writer->call, &set, reader_writer->context, (GRPC_message) {0, 0}, NULL); +GRPC_status GRPC_client_reader_writer_terminate( + GRPC_client_reader_writer *reader_writer) { + grpc_call_op_set set = {{grpc_op_recv_status}, + .context = reader_writer->context, + .user_tag = &set}; + grpc_start_batch_from_op_set(reader_writer->call, &set, + reader_writer->context, (GRPC_message){0, 0}, + NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); GRPC_completion_queue_shutdown(reader_writer->cq); GRPC_completion_queue_shutdown_wait(reader_writer->cq); diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index c399d95cb50ae..b875def96e418 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -31,12 +31,11 @@ * */ - #ifndef GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H #define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H -#include "src/c/call_ops.h" #include +#include "src/c/call_ops.h" typedef struct grpc_client_reader_writer { grpc_client_context *context; diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 10ec6c36374c5..99b5bf26b5506 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -31,12 +31,15 @@ * */ -#include -#include -#include #include "src/c/call_ops.h" +#include +#include +#include -static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { +static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; op->flags = 0; @@ -44,21 +47,23 @@ static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_c return true; } -static void op_send_metadata_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_send_metadata_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} -} - -const grpc_op_manager grpc_op_send_metadata = { - op_send_metadata_fill, - op_send_metadata_finish -}; +const grpc_op_manager grpc_op_send_metadata = {op_send_metadata_fill, + op_send_metadata_finish}; -static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { +static bool op_send_object_fill(grpc_op *op, const grpc_method *method, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { op->op = GRPC_OP_SEND_MESSAGE; grpc_message serialized = context->serialization_impl.serialize(message); - gpr_slice slice = gpr_slice_from_copied_buffer(serialized.data, serialized.length); + gpr_slice slice = + gpr_slice_from_copied_buffer(serialized.data, serialized.length); op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); GPR_ASSERT(op->data.send_message != NULL); @@ -69,16 +74,17 @@ static bool op_send_object_fill(grpc_op *op, const grpc_method *method, grpc_cli return true; } -static void op_send_object_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { - -} +static void op_send_object_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} -const grpc_op_manager grpc_op_send_object = { - op_send_object_fill, - op_send_object_finish -}; +const grpc_op_manager grpc_op_send_object = {op_send_object_fill, + op_send_object_finish}; -static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { +static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { if (context->initial_metadata_received) return false; op->op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array_init(&context->recv_metadata_array); @@ -88,16 +94,19 @@ static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, grpc_c return true; } -static void op_recv_metadata_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_recv_metadata_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) { context->initial_metadata_received = true; } -const grpc_op_manager grpc_op_recv_metadata = { - op_recv_metadata_fill, - op_recv_metadata_finish -}; +const grpc_op_manager grpc_op_recv_metadata = {op_recv_metadata_fill, + op_recv_metadata_finish}; -static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { +static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { set->message_received = false; set->response = response; op->op = GRPC_OP_RECV_MESSAGE; @@ -108,7 +117,9 @@ static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, grpc_cli return true; } -static void op_recv_object_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { +static void op_recv_object_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) { if (set->recv_buffer) { GPR_ASSERT(set->message_received == false); // deserialize @@ -120,7 +131,8 @@ static void op_recv_object_finish(grpc_client_context *context, grpc_call_op_set uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); size_t len = GPR_SLICE_LENGTH(slice_recv); - context->serialization_impl.deserialize((grpc_message) { resp, len }, set->response); + context->serialization_impl.deserialize((grpc_message){resp, len}, + set->response); gpr_slice_unref(slice_recv); grpc_byte_buffer_reader_destroy(&reader); @@ -129,69 +141,81 @@ static void op_recv_object_finish(grpc_client_context *context, grpc_call_op_set } } -const grpc_op_manager grpc_op_recv_object = { - op_recv_object_fill, - op_recv_object_finish -}; +const grpc_op_manager grpc_op_recv_object = {op_recv_object_fill, + op_recv_object_finish}; -static bool op_send_close_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { +static bool op_send_close_fill(grpc_op *op, const grpc_method *method, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; return true; } -static void op_send_close_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { -} +static void op_send_close_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} -const grpc_op_manager grpc_op_send_close = { - op_send_close_fill, - op_send_close_finish -}; +const grpc_op_manager grpc_op_send_close = {op_send_close_fill, + op_send_close_finish}; -static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { +static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; grpc_metadata_array_init(&context->trailing_metadata_array); context->status.details = NULL; context->status.details_length = 0; - op->data.recv_status_on_client.trailing_metadata = &context->trailing_metadata_array; + op->data.recv_status_on_client.trailing_metadata = + &context->trailing_metadata_array; op->data.recv_status_on_client.status = &context->status.code; op->data.recv_status_on_client.status_details = &context->status.details; - op->data.recv_status_on_client.status_details_capacity = &context->status.details_length; + op->data.recv_status_on_client.status_details_capacity = + &context->status.details_length; op->flags = 0; op->reserved = NULL; return true; } -static void op_recv_status_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { -} +static void op_recv_status_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} -const grpc_op_manager grpc_op_recv_status = { - op_recv_status_fill, - op_recv_status_finish -}; +const grpc_op_manager grpc_op_recv_status = {op_recv_status_fill, + op_recv_status_finish}; -void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, - const grpc_message message, void *response, grpc_op ops[], size_t *nops) { +void grpc_fill_op_from_call_set(grpc_call_op_set *set, + const grpc_method *rpc_method, + grpc_client_context *context, + const grpc_message message, void *response, + grpc_op ops[], size_t *nops) { size_t manager = 0; size_t filled = 0; while (manager < GRPC_MAX_OP_COUNT) { - if (set->op_managers[manager].fill == NULL && set->op_managers[manager].finish == NULL) break; // end of call set + if (set->op_managers[manager].fill == NULL && + set->op_managers[manager].finish == NULL) + break; // end of call set if (set->op_managers[manager].fill == NULL) continue; - bool result = set->op_managers[manager].fill(&ops[filled], rpc_method, context, set, message, response); + bool result = set->op_managers[manager].fill( + &ops[filled], rpc_method, context, set, message, response); manager++; - if (result) - filled++; + if (result) filled++; } *nops = filled; } -bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *context) { +bool grpc_finish_op_from_call_set(grpc_call_op_set *set, + grpc_client_context *context) { size_t count = 0; bool allStatus = true; while (count < GRPC_MAX_OP_COUNT) { - if (set->op_managers[count].fill == NULL && set->op_managers[count].finish == NULL) break; // end of call set + if (set->op_managers[count].fill == NULL && + set->op_managers[count].finish == NULL) + break; // end of call set if (set->op_managers[count].finish == NULL) continue; int size = 100; // todo(yifeit): hook up this value bool status = true; @@ -202,10 +226,12 @@ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *co return allStatus; } -void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_client_context *context, - const grpc_message request, void *response) { +void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, + grpc_client_context *context, + const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, &context->rpc_method, context, request, response, ops, &nops); + grpc_fill_op_from_call_set(set, &context->rpc_method, context, request, + response, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); } diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 168cedb56a743..5654b14715d0f 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -31,21 +31,23 @@ * */ - #ifndef GRPC_C_CALL_OPS_H #define GRPC_C_CALL_OPS_H -#include -#include -#include #include -#include "src/c/message.h" +#include +#include +#include #include "src/c/client_context.h" +#include "src/c/message.h" typedef struct grpc_call_op_set grpc_call_op_set; -typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, grpc_client_context *, grpc_call_op_set *, const grpc_message message, void *response); -typedef void (*grpc_op_finisher)(grpc_client_context *, grpc_call_op_set *, bool *status, int max_message_size); +typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, + grpc_client_context *, grpc_call_op_set *, + const grpc_message message, void *response); +typedef void (*grpc_op_finisher)(grpc_client_context *, grpc_call_op_set *, + bool *status, int max_message_size); typedef struct grpc_op_manager { const grpc_op_filler fill; @@ -61,30 +63,37 @@ typedef struct grpc_closure { struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; - grpc_client_context * const context; + grpc_client_context *const context; /* these are used by individual operations */ void *response; grpc_byte_buffer *recv_buffer; bool message_received; - /* if this is true (default false), the event tagged by this call_op_set will not be emitted + /* if this is true (default false), the event tagged by this call_op_set will + * not be emitted * from the completion queue wrapper. */ bool hide_from_user; // used in async calls void *user_tag; - bool *user_done; /* for clients reading a stream */ - grpc_closure async_cleanup; /* will be called when RPC ends */ + bool *user_done; /* for clients reading a stream */ + grpc_closure async_cleanup; /* will be called when RPC ends */ }; -void grpc_fill_op_from_call_set(grpc_call_op_set *set, const grpc_method *rpc_method, grpc_client_context *context, - const grpc_message message, void *response, grpc_op ops[], size_t *nops); +void grpc_fill_op_from_call_set(grpc_call_op_set *set, + const grpc_method *rpc_method, + grpc_client_context *context, + const grpc_message message, void *response, + grpc_op ops[], size_t *nops); -/* Runs post processing steps in the call op set. Returns false if something wrong happens e.g. serialization. */ -bool grpc_finish_op_from_call_set(grpc_call_op_set *set, grpc_client_context *context); +/* Runs post processing steps in the call op set. Returns false if something + * wrong happens e.g. serialization. */ +bool grpc_finish_op_from_call_set(grpc_call_op_set *set, + grpc_client_context *context); -void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, grpc_client_context *context, +void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, + grpc_client_context *context, const grpc_message message, void *response); /* list of operations */ diff --git a/src/c/channel.c b/src/c/channel.c index 7c226813806b0..8b923cbd44094 100644 --- a/src/c/channel.c +++ b/src/c/channel.c @@ -31,17 +31,17 @@ * */ -#include +#include #include +#include #include "src/c/init_shutdown.h" -#include -GRPC_channel *GRPC_channel_create(const char * const target) { +GRPC_channel *GRPC_channel_create(const char *const target) { grpc_ensure_grpc_init(); return grpc_insecure_channel_create(target, NULL, NULL); } -void GRPC_channel_destroy(GRPC_channel ** channel) { +void GRPC_channel_destroy(GRPC_channel **channel) { grpc_channel_destroy(*channel); *channel = NULL; } diff --git a/src/c/client_context.c b/src/c/client_context.c index 62467562718fa..27d67c9c63f50 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -31,26 +31,19 @@ * */ +#include "src/c/client_context.h" #include -#include #include -#include "src/c/client_context.h" +#include #include "src/c/alloc.h" grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { grpc_client_context *context = GRPC_ALLOC_STRUCT( - grpc_client_context, { - .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), - .channel = chan, - .serialization_impl = { - .serialize = NULL, - .deserialize = NULL - }, - .status = { - .ok = true - } - } - ); + grpc_client_context, + {.deadline = gpr_inf_future(GPR_CLOCK_REALTIME), + .channel = chan, + .serialization_impl = {.serialize = NULL, .deserialize = NULL}, + .status = {.ok = true}}); return context; } @@ -71,8 +64,6 @@ GRPC_status GRPC_get_call_status(GRPC_client_context *context) { } void GRPC_client_context_set_serialization_impl( - GRPC_client_context *context, - grpc_serialization_impl serialization_impl) { + GRPC_client_context *context, grpc_serialization_impl serialization_impl) { context->serialization_impl = serialization_impl; } - diff --git a/src/c/client_context.h b/src/c/client_context.h index 25ef2be10b1a1..7af8a5d8daf4c 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -31,17 +31,16 @@ * */ - #ifndef GRPC_C_CLIENT_CONTEXT_H #define GRPC_C_CLIENT_CONTEXT_H -#include -#include -#include +#include #include -#include #include -#include +#include +#include +#include +#include #include "src/c/message.h" typedef struct grpc_client_context grpc_client_context; @@ -65,4 +64,4 @@ struct grpc_client_context { grpc_call *call; }; -#endif // GRPC_C_CLIENT_CONTEXT_H +#endif // GRPC_C_CLIENT_CONTEXT_H diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 92303a96c30d9..25700ca4e3895 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -31,76 +31,60 @@ * */ - +#include "src/c/client_streaming_blocking_call.h" +#include +#include #include #include -#include -#include -#include "src/c/client_streaming_blocking_call.h" -#include "src/c/completion_queue.h" #include "src/c/alloc.h" +#include "src/c/completion_queue.h" -grpc_client_writer *GRPC_client_streaming_blocking_call(const GRPC_method rpc_method, - GRPC_client_context *const context, - void *response) { - +grpc_client_writer *GRPC_client_streaming_blocking_call( + const GRPC_method rpc_method, GRPC_client_context *const context, + void *response) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(context->channel, - NULL, - GRPC_PROPAGATE_DEFAULTS, - cq, - rpc_method.name, - "", - context->deadline, - NULL); + grpc_call *call = grpc_channel_create_call( + context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method.name, "", + context->deadline, NULL); context->call = call; context->rpc_method = rpc_method; grpc_call_op_set set = { - { - grpc_op_send_metadata - }, - .context = context, - .user_tag = &set - }; + {grpc_op_send_metadata}, .context = context, .user_tag = &set}; - grpc_client_writer *writer = GRPC_ALLOC_STRUCT(grpc_client_writer, { - .context = context, - .call = call, - .finish_ops = { - { - grpc_op_recv_metadata, - grpc_op_recv_object, - grpc_op_send_close, - grpc_op_recv_status - }, - .context = context, - }, - .cq = cq, - .response = response - }); + grpc_client_writer *writer = GRPC_ALLOC_STRUCT( + grpc_client_writer, {.context = context, + .call = call, + .finish_ops = + { + {grpc_op_recv_metadata, grpc_op_recv_object, + grpc_op_send_close, grpc_op_recv_status}, + .context = context, + }, + .cq = cq, + .response = response}); writer->finish_ops.user_tag = &writer->finish_ops; - grpc_start_batch_from_op_set(writer->call, &set, writer->context, (GRPC_message) {0, 0}, NULL); + grpc_start_batch_from_op_set(writer->call, &set, writer->context, + (GRPC_message){0, 0}, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return writer; } -bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC_message request) { +bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, + const GRPC_message request) { grpc_call_op_set set = { - { - grpc_op_send_object - }, - .context = writer->context, - .user_tag = &set - }; + {grpc_op_send_object}, .context = writer->context, .user_tag = &set}; - grpc_start_batch_from_op_set(writer->call, &set, writer->context, request, NULL); + grpc_start_batch_from_op_set(writer->call, &set, writer->context, request, + NULL); return GRPC_completion_queue_pluck_internal(writer->cq, &set); } GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { - grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, writer->context, (GRPC_message) {0, 0}, writer->response); + grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, + writer->context, (GRPC_message){0, 0}, + writer->response); GRPC_completion_queue_pluck_internal(writer->cq, &writer->finish_ops); GRPC_completion_queue_shutdown(writer->cq); GRPC_completion_queue_shutdown_wait(writer->cq); diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 38034b1ad26ec..ff0cf2c49db73 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -31,7 +31,6 @@ * */ - #ifndef GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H #define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H @@ -47,4 +46,4 @@ typedef struct grpc_client_writer { grpc_message *response; } grpc_client_writer; -#endif // GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H +#endif // GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 9301a5d9eab82..1eaa9b943751e 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -35,10 +35,10 @@ * Wraps the grpc_completion_queue type. */ +#include "src/c/completion_queue.h" #include #include #include -#include "src/c/completion_queue.h" #include "src/c/call_ops.h" GRPC_completion_queue *GRPC_completion_queue_create() { @@ -57,14 +57,14 @@ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq) { for (;;) { void *tag; bool ok; - if (GRPC_completion_queue_next(cq, &tag, &ok) == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; + if (GRPC_completion_queue_next(cq, &tag, &ok) == + GRPC_COMPLETION_QUEUE_SHUTDOWN) + break; } } -GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_completion_queue *cq, - GRPC_timespec deadline, - void **tag, - bool *ok) { +GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline( + GRPC_completion_queue *cq, GRPC_timespec deadline, void **tag, bool *ok) { for (;;) { grpc_call_op_set *set = NULL; grpc_event ev = grpc_completion_queue_next(cq, deadline, NULL); @@ -74,7 +74,7 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_ case GRPC_QUEUE_SHUTDOWN: return GRPC_COMPLETION_QUEUE_SHUTDOWN; case GRPC_OP_COMPLETE: - set = (grpc_call_op_set *) ev.tag; + set = (grpc_call_op_set *)ev.tag; GPR_ASSERT(set != NULL); GPR_ASSERT(set->context != NULL); // run post-processing for async operations @@ -98,14 +98,17 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline(GRPC_ } } -GRPC_completion_queue_operation_status GRPC_completion_queue_next(GRPC_completion_queue *cq, void **tag, bool *ok) { - return GRPC_completion_queue_next_deadline(cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); +GRPC_completion_queue_operation_status GRPC_completion_queue_next( + GRPC_completion_queue *cq, void **tag, bool *ok) { + return GRPC_completion_queue_next_deadline( + cq, gpr_inf_future(GPR_CLOCK_REALTIME), tag, ok); } -bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag) { +bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, + void *tag) { gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_REALTIME); grpc_event ev = grpc_completion_queue_pluck(cq, tag, deadline, NULL); - grpc_call_op_set *set = (grpc_call_op_set *) ev.tag; + grpc_call_op_set *set = (grpc_call_op_set *)ev.tag; GPR_ASSERT(set != NULL); GPR_ASSERT(set->context != NULL); GPR_ASSERT(set->user_tag == ev.tag); diff --git a/src/c/completion_queue.h b/src/c/completion_queue.h index eee05c5d4ca3c..ea25395d1953e 100644 --- a/src/c/completion_queue.h +++ b/src/c/completion_queue.h @@ -31,7 +31,6 @@ * */ - #ifndef GRPC_C_COMPLETION_QUEUE_H #define GRPC_C_COMPLETION_QUEUE_H @@ -39,4 +38,4 @@ bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag); -#endif // GRPC_C_COMPLETION_QUEUE_H +#endif // GRPC_C_COMPLETION_QUEUE_H diff --git a/src/c/init_shutdown.c b/src/c/init_shutdown.c index c7823b85f9ea2..56078b6e5e2ab 100644 --- a/src/c/init_shutdown.c +++ b/src/c/init_shutdown.c @@ -32,9 +32,9 @@ */ #include "src/c/init_shutdown.h" -#include #include #include +#include static void perform_grpc_init() { grpc_init(); @@ -46,4 +46,3 @@ void grpc_ensure_grpc_init() { static gpr_once once_var = GPR_ONCE_INIT; gpr_once_init(&once_var, perform_grpc_init); } - diff --git a/src/c/init_shutdown.h b/src/c/init_shutdown.h index ff4060ce6231b..3ab6387c38cce 100644 --- a/src/c/init_shutdown.h +++ b/src/c/init_shutdown.h @@ -36,4 +36,4 @@ void grpc_ensure_grpc_init(); -#endif // GRPC_C_GRPC_INIT_SHUTDOWN_H +#endif // GRPC_C_GRPC_INIT_SHUTDOWN_H diff --git a/src/c/message.c b/src/c/message.c index 0efaefd73e1ac..9b707a9ca7715 100644 --- a/src/c/message.c +++ b/src/c/message.c @@ -31,11 +31,9 @@ * */ - -#include #include "src/c/message.h" +#include void GRPC_message_destroy(grpc_message *message) { free((void *)message->data); } - diff --git a/src/c/message.h b/src/c/message.h index 607a5636f5214..1a238eb07079c 100644 --- a/src/c/message.h +++ b/src/c/message.h @@ -31,7 +31,6 @@ * */ - #ifndef GRPC_C_MESSAGE_H #define GRPC_C_MESSAGE_H @@ -39,4 +38,4 @@ typedef GRPC_message grpc_message; -#endif // GRPC_C_MESSAGE_H +#endif // GRPC_C_MESSAGE_H diff --git a/src/c/pb_compat.c b/src/c/pb_compat.c index b90b64caafa72..5e9e82612ee4a 100644 --- a/src/c/pb_compat.c +++ b/src/c/pb_compat.c @@ -31,16 +31,17 @@ * */ -#include +#include #include +#include #include -#include #include -#include +#include #include "src/c/alloc.h" /** - * This file implements a Nanopb stream used to collect deserialized data from Nanopb. + * This file implements a Nanopb stream used to collect deserialized data from + * Nanopb. */ typedef struct GRPC_pb_dynamic_array_state { @@ -49,8 +50,7 @@ typedef struct GRPC_pb_dynamic_array_state { size_t capacity; } GRPC_pb_dynamic_array_state; -static size_t upper_power_of_two(size_t v) -{ +static size_t upper_power_of_two(size_t v) { v--; v |= v >> 1; v |= v >> 2; @@ -62,49 +62,48 @@ static size_t upper_power_of_two(size_t v) } GRPC_pb_dynamic_array_state *GRPC_pb_compat_dynamic_array_alloc() { - return GRPC_ALLOC_STRUCT(GRPC_pb_dynamic_array_state, { - .data = NULL, - .size = 0, - .capacity = 0 - }); + return GRPC_ALLOC_STRUCT(GRPC_pb_dynamic_array_state, + {.data = NULL, .size = 0, .capacity = 0}); } void GRPC_pb_compat_dynamic_array_free(GRPC_pb_dynamic_array_state *state) { gpr_free(state); } -bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, const uint8_t *buf, size_t count) { +bool GRPC_pb_compat_dynamic_array_callback(pb_ostream_t *stream, + const uint8_t *buf, size_t count) { GRPC_pb_dynamic_array_state *state = stream->state; if (state->size + count > state->capacity) { state->capacity = upper_power_of_two(state->size + count); state->data = gpr_realloc(state->data, state->capacity); } if (state->data == NULL) return false; - if (buf) memcpy((char *) state->data + state->size, buf, count); + if (buf) memcpy((char *)state->data + state->size, buf, count); state->size += count; return true; } -void *GRPC_pb_compat_dynamic_array_get_content(GRPC_pb_dynamic_array_state *state) { +void *GRPC_pb_compat_dynamic_array_get_content( + GRPC_pb_dynamic_array_state *state) { return state->data; } -GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, const void *fields) { - pb_ostream_t ostream = { - .callback = GRPC_pb_compat_dynamic_array_callback, - .state = GRPC_pb_compat_dynamic_array_alloc(), - .max_size = SIZE_MAX - }; +GRPC_message GRPC_pb_compat_generic_serializer(const GRPC_message input, + const void *fields) { + pb_ostream_t ostream = {.callback = GRPC_pb_compat_dynamic_array_callback, + .state = GRPC_pb_compat_dynamic_array_alloc(), + .max_size = SIZE_MAX}; pb_encode(&ostream, fields, input.data); - GRPC_message msg = (GRPC_message) { - GRPC_pb_compat_dynamic_array_get_content(ostream.state), - ostream.bytes_written - }; + GRPC_message msg = + (GRPC_message){GRPC_pb_compat_dynamic_array_get_content(ostream.state), + ostream.bytes_written}; GRPC_pb_compat_dynamic_array_free(ostream.state); return msg; } -void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, const void *fields) { - pb_istream_t istream = pb_istream_from_buffer((void *) input.data, input.length); +void GRPC_pb_compat_generic_deserializer(const GRPC_message input, void *output, + const void *fields) { + pb_istream_t istream = + pb_istream_from_buffer((void *)input.data, input.length); pb_decode(&istream, fields, output); } diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index dbe9651d70ab7..a2296f5d45dd3 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -31,69 +31,50 @@ * */ - -#include -#include -#include +#include "src/c/server_streaming_blocking_call.h" #include -#include #include -#include "src/c/server_streaming_blocking_call.h" +#include +#include +#include +#include #include "src/c/alloc.h" #include "src/c/completion_queue.h" -GRPC_client_reader *GRPC_server_streaming_blocking_call(const GRPC_method rpc_method, - GRPC_client_context *const context, - const GRPC_message request) { +GRPC_client_reader *GRPC_server_streaming_blocking_call( + const GRPC_method rpc_method, GRPC_client_context *const context, + const GRPC_message request) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(context->channel, - NULL, - GRPC_PROPAGATE_DEFAULTS, - cq, - rpc_method.name, - "", - context->deadline, - NULL); + grpc_call *call = grpc_channel_create_call( + context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method.name, "", + context->deadline, NULL); context->call = call; context->rpc_method = rpc_method; grpc_call_op_set set = { - { - grpc_op_send_metadata, - grpc_op_send_object, - grpc_op_send_close - }, - .context = context, - .user_tag = &set - }; + {grpc_op_send_metadata, grpc_op_send_object, grpc_op_send_close}, + .context = context, + .user_tag = &set}; - grpc_client_reader *reader = GRPC_ALLOC_STRUCT(grpc_client_reader, { - .context = context, - .call = call, - .cq = cq, - }); + grpc_client_reader *reader = GRPC_ALLOC_STRUCT( + grpc_client_reader, { + .context = context, .call = call, .cq = cq, + }); - grpc_start_batch_from_op_set(reader->call, &set, reader->context, request, NULL); + grpc_start_batch_from_op_set(reader->call, &set, reader->context, request, + NULL); GRPC_completion_queue_pluck_internal(cq, &set); return reader; } -bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *response) { - grpc_call_op_set set_meta = { - { - grpc_op_recv_metadata, - grpc_op_recv_object - }, - .context = reader->context, - .user_tag = &set_meta - }; - grpc_call_op_set set_no_meta = { - { - grpc_op_recv_object - }, - .context = reader->context, - .user_tag = &set_no_meta - }; +bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, + void *response) { + grpc_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, + .context = reader->context, + .user_tag = &set_meta}; + grpc_call_op_set set_no_meta = {{grpc_op_recv_object}, + .context = reader->context, + .user_tag = &set_no_meta}; grpc_call_op_set *pSet = NULL; if (reader->context->initial_metadata_received == false) { pSet = &set_meta; @@ -101,19 +82,17 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *respo pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader->call, pSet, reader->context, (GRPC_message) {0, 0}, response); - return GRPC_completion_queue_pluck_internal(reader->cq, pSet) && pSet->message_received; + grpc_start_batch_from_op_set(reader->call, pSet, reader->context, + (GRPC_message){0, 0}, response); + return GRPC_completion_queue_pluck_internal(reader->cq, pSet) && + pSet->message_received; } GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { grpc_call_op_set set = { - { - grpc_op_recv_status - }, - .context = reader->context, - .user_tag = &set - }; - grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message) {0, 0}, NULL); + {grpc_op_recv_status}, .context = reader->context, .user_tag = &set}; + grpc_start_batch_from_op_set(reader->call, &set, reader->context, + (GRPC_message){0, 0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, &set); GRPC_completion_queue_shutdown(reader->cq); GRPC_completion_queue_shutdown_wait(reader->cq); diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 441442bf2d142..0cf6dc248ec9e 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -31,12 +31,11 @@ * */ - #ifndef GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H #define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H -#include "src/c/call_ops.h" #include +#include "src/c/call_ops.h" typedef struct grpc_client_reader { grpc_client_context *context; @@ -44,4 +43,4 @@ typedef struct grpc_client_reader { grpc_completion_queue *cq; } grpc_client_reader; -#endif // GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H +#endif // GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index f4a22e85e346e..520035ff8e088 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -31,12 +31,11 @@ * */ - +#include "src/c/unary_async_call.h" #include -#include #include +#include #include -#include "src/c/unary_async_call.h" #include "src/c/alloc.h" static void free_reader_and_call(void *arg) { @@ -44,67 +43,52 @@ static void free_reader_and_call(void *arg) { gpr_free(reader); } -GRPC_client_async_response_reader *GRPC_unary_async_call(GRPC_completion_queue *cq, - const GRPC_method rpc_method, - const GRPC_message request, - GRPC_client_context *context) { - grpc_call *call = grpc_channel_create_call(context->channel, - NULL, - GRPC_PROPAGATE_DEFAULTS, - cq, - rpc_method.name, - "", - context->deadline, - NULL); +GRPC_client_async_response_reader *GRPC_unary_async_call( + GRPC_completion_queue *cq, const GRPC_method rpc_method, + const GRPC_message request, GRPC_client_context *context) { + grpc_call *call = grpc_channel_create_call( + context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method.name, "", + context->deadline, NULL); context->call = call; context->rpc_method = rpc_method; - GRPC_client_async_response_reader *reader = GRPC_ALLOC_STRUCT(GRPC_client_async_response_reader, { - .context = context, - .call = call, - .init_buf = { - { - grpc_op_send_metadata, - grpc_op_send_object, - grpc_op_send_close - }, - .context = context, - .response = NULL, - .hide_from_user = true - }, - .meta_buf = { - { - grpc_op_recv_metadata - }, - .context = context, - .response = NULL - }, - .finish_buf = { - { - grpc_op_recv_metadata, - grpc_op_recv_object, - grpc_op_recv_status - }, - .context = context, - .response = NULL, - } - }); + GRPC_client_async_response_reader *reader = GRPC_ALLOC_STRUCT( + GRPC_client_async_response_reader, + {.context = context, + .call = call, + .init_buf = {{grpc_op_send_metadata, grpc_op_send_object, + grpc_op_send_close}, + .context = context, + .response = NULL, + .hide_from_user = true}, + .meta_buf = {{grpc_op_recv_metadata}, + .context = context, + .response = NULL}, + .finish_buf = { + {grpc_op_recv_metadata, grpc_op_recv_object, grpc_op_recv_status}, + .context = context, + .response = NULL, + }}); - // Different from blocking call, we need to inform completion queue to run cleanup for us - reader->finish_buf.async_cleanup = (grpc_closure) { - .arg = reader, - .callback = free_reader_and_call - }; + // Different from blocking call, we need to inform completion queue to run + // cleanup for us + reader->finish_buf.async_cleanup = + (grpc_closure){.arg = reader, .callback = free_reader_and_call}; - grpc_start_batch_from_op_set(reader->call, &reader->init_buf, reader->context, request, NULL); + grpc_start_batch_from_op_set(reader->call, &reader->init_buf, reader->context, + request, NULL); return reader; } -void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { +void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, + void *tag) { reader->meta_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, (GRPC_message) {0, 0}, NULL); + grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, + (GRPC_message){0, 0}, NULL); } -void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag) { +void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, + void *response, void *tag) { reader->finish_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, reader->context, (GRPC_message) {0, 0}, response); + grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, + reader->context, (GRPC_message){0, 0}, response); } diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index 2b5fdd913397b..7fe58a9d379b0 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -31,7 +31,6 @@ * */ - #ifndef GRPC_C_CLIENT_ASYNC_READER_H #define GRPC_C_CLIENT_ASYNC_READER_H @@ -47,4 +46,4 @@ typedef struct grpc_client_async_response_reader { grpc_call *call; } grpc_client_async_response_reader; -#endif // GRPC_C_CLIENT_ASYNC_READER_H +#endif // GRPC_C_CLIENT_ASYNC_READER_H diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 473a5861f3df0..7c677d92c702e 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -31,13 +31,13 @@ * */ +#include "src/c/unary_blocking_call.h" +#include +#include #include #include -#include -#include -#include "src/c/client_context.h" #include "src/c/call_ops.h" -#include "src/c/unary_blocking_call.h" +#include "src/c/client_context.h" #include "src/c/completion_queue.h" GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, @@ -45,33 +45,22 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, const GRPC_message message, void *response) { grpc_completion_queue *cq = GRPC_completion_queue_create(); - grpc_call *call = grpc_channel_create_call(context->channel, - NULL, - GRPC_PROPAGATE_DEFAULTS, - cq, - rpc_method.name, - "", - context->deadline, - NULL); + grpc_call *call = grpc_channel_create_call( + context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method.name, "", + context->deadline, NULL); context->call = call; grpc_call_op_set set = { - { - grpc_op_send_metadata, - grpc_op_recv_metadata, - grpc_op_send_object, - grpc_op_recv_object, - grpc_op_send_close, - grpc_op_recv_status - }, - .context = context, - .user_tag = &set - }; + {grpc_op_send_metadata, grpc_op_recv_metadata, grpc_op_send_object, + grpc_op_recv_object, grpc_op_send_close, grpc_op_recv_status}, + .context = context, + .user_tag = &set}; grpc_start_batch_from_op_set(call, &set, context, message, response); for (;;) { void *tag; bool ok; - GRPC_completion_queue_operation_status status = GRPC_completion_queue_next_deadline(cq, context->deadline, &tag, &ok); + GRPC_completion_queue_operation_status status = + GRPC_completion_queue_next_deadline(cq, context->deadline, &tag, &ok); GPR_ASSERT(status == GRPC_COMPLETION_QUEUE_GOT_EVENT); if (tag == &set) { context->status.ok &= ok; diff --git a/src/c/unary_blocking_call.h b/src/c/unary_blocking_call.h index a9193c4df7994..dad421e51159b 100644 --- a/src/c/unary_blocking_call.h +++ b/src/c/unary_blocking_call.h @@ -34,6 +34,4 @@ #ifndef GRPC_C_UNARY_BLOCKING_CALL_H #define GRPC_C_UNARY_BLOCKING_CALL_H - - -#endif // GRPC_C_UNARY_BLOCKING_CALL_H +#endif // GRPC_C_UNARY_BLOCKING_CALL_H diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index a75d18c18543b..3464b7e8eb93f 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -31,8 +31,8 @@ * */ -#include #include +#include #include "src/compiler/c_generator.h" #include "src/compiler/c_generator_helpers.h" @@ -40,7 +40,8 @@ /* * C Generator - * Contains methods for printing comments, service headers, service implementations, etc. + * Contains methods for printing comments, service headers, service + * implementations, etc. */ namespace grpc_c_generator { @@ -71,7 +72,8 @@ grpc::string FilenameIdentifier(const grpc::string &filename) { grpc::string Join(std::vector lines, grpc::string delim) { std::ostringstream imploded; - std::copy(lines.begin(), lines.end(), std::ostream_iterator(imploded, delim.c_str())); + std::copy(lines.begin(), lines.end(), + std::ostream_iterator(imploded, delim.c_str())); return imploded.str(); } @@ -82,14 +84,17 @@ grpc::string BlockifyComments(grpc::string input) { if (lines[lines.size() - 1] == "") lines.pop_back(); for (auto itr = lines.begin(); itr != lines.end(); itr++) { grpc_generator::StripPrefix(&*itr, "//"); - (*itr).append(std::max(size_t(0), kMaxCharactersPerLine - (*itr).size()), ' '); + (*itr).append(std::max(size_t(0), kMaxCharactersPerLine - (*itr).size()), + ' '); *itr = "/* " + *itr + " */"; } return Join(lines, "\n"); } -template -T *array_end(T (&array)[N]) { return array + N; } +template +T *array_end(T (&array)[N]) { + return array + N; +} } // namespace @@ -105,16 +110,17 @@ using grpc_cpp_generator::Service; using grpc_cpp_generator::Printer; // Prints a list of header paths as include directives -void PrintIncludes(Printer *printer, const std::vector& headers, const Parameters ¶ms) { +void PrintIncludes(Printer *printer, const std::vector &headers, + const Parameters ¶ms) { std::map vars; vars["l"] = params.use_system_headers ? '<' : '"'; vars["r"] = params.use_system_headers ? '>' : '"'; - auto& s = params.grpc_search_path; + auto &s = params.grpc_search_path; if (!s.empty()) { vars["l"] += s; - if (s[s.size()-1] != '/') { + if (s[s.size() - 1] != '/') { vars["l"] += '/'; } } @@ -126,8 +132,7 @@ void PrintIncludes(Printer *printer, const std::vector& headers, c } // Prints declaration of a single client method -void PrintHeaderClientMethod(Printer *printer, - const Method *method, +void PrintHeaderClientMethod(Printer *printer, const Method *method, std::map *vars) { (*vars)["Method"] = method->name(); (*vars)["Request"] = method->input_type_name(); @@ -136,19 +141,18 @@ void PrintHeaderClientMethod(Printer *printer, if (method->NoStreaming()) { // Unary + printer->Print(*vars, + "/* Sync */\n" + "GRPC_status $CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " const $CPrefix$$Request$ request,\n" + " $CPrefix$$Response$ *response);\n"); printer->Print( - *vars, - "/* Sync */\n" - "GRPC_status $CPrefix$$Service$_$Method$(\n" - " GRPC_client_context *const context,\n" - " const $CPrefix$$Request$ request,\n" - " $CPrefix$$Response$ *response);\n" - ); - printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Async */\n" - "GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async(\n" + "GRPC_client_async_response_reader " + "*$CPrefix$$Service$_$Method$_Async(\n" " GRPC_client_context *const context,\n" " GRPC_completion_queue *cq,\n" " const $CPrefix$$Request$ request);\n" @@ -165,8 +169,8 @@ void PrintHeaderClientMethod(Printer *printer, // Client streaming printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Sync */\n" "GRPC_client_writer *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context,\n" @@ -177,14 +181,16 @@ void PrintHeaderClientMethod(Printer *printer, " GRPC_client_writer *writer,\n" " $CPrefix$$Request$ request);\n" "\n" - "/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */\n" + "/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and " + "end the call */\n" "/* The writer is automatically freed when the request ends */\n" - "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer);\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer " + "*writer);\n" "\n"); printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Async */\n" "GRPC_client_async_writer *$CPrefix$$Service$_$Method$_Async(\n" " GRPC_client_context *const context,\n" @@ -199,8 +205,10 @@ void PrintHeaderClientMethod(Printer *printer, " GRPC_client_async_writer *writer,\n" " $CPrefix$$Response$ *response,\n" " void *tag);\n" - "/* Call GRPC_completion_queue_next on the cq to wait for result. */\n" - "/* The writer object is automatically freed when the request ends. */\n" + "/* Call GRPC_completion_queue_next on the cq to wait for result. " + "*/\n" + "/* The writer object is automatically freed when the request ends. " + "*/\n" "\n" "\n"); @@ -208,8 +216,8 @@ void PrintHeaderClientMethod(Printer *printer, // Server streaming printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Sync */\n" "GRPC_client_reader *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context,\n" @@ -220,13 +228,15 @@ void PrintHeaderClientMethod(Printer *printer, " GRPC_client_reader *reader,\n" " $CPrefix$$Response$ *response);\n" "\n" - "/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and end the call */\n" + "/* Call $CPrefix$$Service$_$Method$_Terminate to close the stream and " + "end the call */\n" "/* The reader is automatically freed when the request ends */\n" - "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader);\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader " + "*reader);\n" "\n"); printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Async */\n" "GRPC_client_async_reader *$CPrefix$$Service$_$Method$_Async(\n" " GRPC_client_context *const context,\n" @@ -250,8 +260,8 @@ void PrintHeaderClientMethod(Printer *printer, // Bidi printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Sync */\n" "GRPC_client_reader_writer *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context);\n" @@ -264,16 +274,21 @@ void PrintHeaderClientMethod(Printer *printer, " GRPC_client_reader_writer *reader_writer,\n" " $CPrefix$$Request$ request);\n" "\n" - "/* Signals to the server that we are no longer sending request items */\n" - "bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer);\n" + "/* Signals to the server that we are no longer sending request items " + "*/\n" + "bool " + "$CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer " + "*reader_writer);\n" "\n" "/* Ends the call. The reader_writer object is automatically freed */\n" - "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer);\n" + "GRPC_status " + "$CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer " + "*reader_writer);\n" "\n"); printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Async */\n" "GRPC_client_async_reader_writer *$CPrefix$$Service$_$Method$_Async(\n" " GRPC_client_context *const context);\n" @@ -292,27 +307,30 @@ void PrintHeaderClientMethod(Printer *printer, " GRPC_client_async_reader_writer *reader_writer,\n" " void *tag);\n" "/* call GRPC_completion_queue_next on the cq to wait for result */\n" - "/* the reader-writer object is automatically freed when the request ends */\n" + "/* the reader-writer object is automatically freed when the request " + "ends */\n" "\n" "\n"); - } } // Prints declaration of a single service -void PrintHeaderService(Printer *printer, - const Service *service, +void PrintHeaderService(Printer *printer, const Service *service, std::map *vars) { (*vars)["Service"] = service->name(); - printer->Print(*vars, BlockifyComments("Service declaration for " + service->name() + "\n").c_str()); + printer->Print(*vars, BlockifyComments("Service declaration for " + + service->name() + "\n") + .c_str()); printer->Print(BlockifyComments(service->GetLeadingComments()).c_str()); // Client side for (int i = 0; i < service->method_count(); ++i) { - printer->Print(BlockifyComments(service->method(i)->GetLeadingComments()).c_str()); + printer->Print( + BlockifyComments(service->method(i)->GetLeadingComments()).c_str()); PrintHeaderClientMethod(printer, service->method(i).get(), vars); - printer->Print(BlockifyComments(service->method(i)->GetTrailingComments()).c_str()); + printer->Print( + BlockifyComments(service->method(i)->GetTrailingComments()).c_str()); } printer->Print("\n\n"); @@ -322,8 +340,7 @@ void PrintHeaderService(Printer *printer, } // Prints implementation of a single client method -void PrintSourceClientMethod(Printer *printer, - const Method *method, +void PrintSourceClientMethod(Printer *printer, const Method *method, std::map *vars) { (*vars)["Method"] = method->name(); (*vars)["Request"] = method->input_type_name(); @@ -341,39 +358,47 @@ void PrintSourceClientMethod(Printer *printer, printer->Print(*vars, "\n" - "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" - " $MethodEnum$,\n" - " \"/$Package$$Service$/$Method$\"\n" - "};\n" - "\n"); + "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" + " $MethodEnum$,\n" + " \"/$Package$$Service$/$Method$\"\n" + "};\n" + "\n"); if (method->NoStreaming()) { // Unary printer->Print( - *vars, - "\n" + *vars, + "\n" "GRPC_status $CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context,\n" " const $CPrefix$$Request$ request,\n" " $CPrefix$$Response$ *response) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" - " return GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg, response);\n" + " (grpc_serialization_impl) { " + "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " + "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" + " return " + "GRPC_unary_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, " + "context, request_msg, response);\n" "}\n" "\n"); printer->Print( - *vars, - "\n" + *vars, + "\n" "/* Async */\n" - "GRPC_client_async_response_reader *$CPrefix$$Service$_$Method$_Async(\n" + "GRPC_client_async_response_reader " + "*$CPrefix$$Service$_$Method$_Async(\n" " GRPC_client_context *const context,\n" " GRPC_completion_queue *cq,\n" " const $CPrefix$$Request$ request) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" - " return GRPC_unary_async_call(cq, GRPC_method_$CPrefix$$Service$_$Method$, request_msg, context);\n" + " (grpc_serialization_impl) { " + "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " + "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" + " return GRPC_unary_async_call(cq, " + "GRPC_method_$CPrefix$$Service$_$Method$, request_msg, context);\n" "}\n" "\n" "void $CPrefix$$Service$_$Method$_Finish(\n" @@ -386,14 +411,18 @@ void PrintSourceClientMethod(Printer *printer, } else if (method->ClientOnlyStreaming()) { printer->Print( - *vars, - "\n" + *vars, + "\n" "GRPC_client_writer *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context,\n" " $CPrefix$$Response$ *response) {\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" - " return GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, response);\n" + " (grpc_serialization_impl) { " + "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " + "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" + " return " + "GRPC_client_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$" + "Method$, context, response);\n" "}\n" "\n" "bool $CPrefix$$Service$_$Method$_Write(\n" @@ -403,28 +432,32 @@ void PrintSourceClientMethod(Printer *printer, " return GRPC_client_streaming_blocking_write(writer, request_msg);\n" "}\n" "\n" - "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer *writer) {\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_writer " + "*writer) {\n" " return GRPC_client_writer_terminate(writer);\n" "}\n" "\n"); - printer->Print( - *vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print(*vars, + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->ServerOnlyStreaming()) { printer->Print( - *vars, - "\n" + *vars, + "\n" "GRPC_client_reader *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context,\n" " $CPrefix$$Request$ request) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" - " return GRPC_server_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context, request_msg);\n" + " (grpc_serialization_impl) { " + "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " + "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" + " return " + "GRPC_server_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$" + "Method$, context, request_msg);\n" "}\n" "\n" "bool $CPrefix$$Service$_$Method$_Read(\n" @@ -433,25 +466,29 @@ void PrintSourceClientMethod(Printer *printer, " return GRPC_server_streaming_blocking_read(reader, response);\n" "}\n" "\n" - "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader *reader) {\n" + "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader " + "*reader) {\n" " return GRPC_client_reader_terminate(reader);\n" "}\n" "\n"); - printer->Print( - *vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print(*vars, + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->BidiStreaming()) { printer->Print( - *vars, - "\n" + *vars, + "\n" "GRPC_client_reader_writer *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context) {\n" " GRPC_client_context_set_serialization_impl(context,\n" - " (grpc_serialization_impl) { GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" - " return GRPC_bidi_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$Method$, context);\n" + " (grpc_serialization_impl) { " + "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " + "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" + " return " + "GRPC_bidi_streaming_blocking_call(GRPC_method_$CPrefix$$Service$_$" + "Method$, context);\n" "}\n" "\n" "bool $CPrefix$$Service$_$Method$_Read(\n" @@ -464,51 +501,53 @@ void PrintSourceClientMethod(Printer *printer, " GRPC_client_reader_writer *reader_writer,\n" " $CPrefix$$Request$ request) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" - " return GRPC_bidi_streaming_blocking_write(reader_writer, request_msg);\n" + " return GRPC_bidi_streaming_blocking_write(reader_writer, " + "request_msg);\n" "}\n" "\n" - "bool $CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer *reader_writer) {\n" + "bool " + "$CPrefix$$Service$_$Method$_Writes_Done(GRPC_client_reader_writer " + "*reader_writer) {\n" " return GRPC_bidi_streaming_blocking_writes_done(reader_writer);\n" "}\n" "\n" - "GRPC_status $CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer *reader_writer) {\n" + "GRPC_status " + "$CPrefix$$Service$_$Method$_Terminate(GRPC_client_reader_writer " + "*reader_writer) {\n" " return GRPC_client_reader_writer_terminate(reader_writer);\n" "}\n" "\n"); - printer->Print( - *vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print(*vars, + "\n" + "/* Async TBD */\n" + "\n"); } } -void PrintSourceServerMethod(Printer *printer, - const Method *method, +void PrintSourceServerMethod(Printer *printer, const Method *method, std::map *vars) { // TBD } // Prints implementation of all methods in a service -void PrintSourceService(Printer *printer, - const Service *service, +void PrintSourceService(Printer *printer, const Service *service, std::map *vars) { (*vars)["Service"] = service->name(); - printer->Print(*vars, BlockifyComments("Service implementation for " + service->name() + "\n\n").c_str()); + printer->Print(*vars, BlockifyComments("Service implementation for " + + service->name() + "\n\n") + .c_str()); for (int i = 0; i < service->method_count(); ++i) { (*vars)["Idx"] = as_string(i); PrintSourceClientMethod(printer, service->method(i).get(), vars); } - } // // PUBLIC // -grpc::string GetHeaderServices(File *file, - const Parameters ¶ms) { +grpc::string GetHeaderServices(File *file, const Parameters ¶ms) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -521,13 +560,13 @@ grpc::string GetHeaderServices(File *file, vars["Package"].append("."); } // TODO(yifeit): hook this up to C prefix - vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; + vars["CPrefix"] = + grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; for (int i = 0; i < file->service_count(); ++i) { PrintHeaderService(printer.get(), file->service(i).get(), &vars); printer->Print("\n"); } - } return output; } @@ -552,7 +591,8 @@ grpc::string GetHeaderEpilogue(File *file, const Parameters & /*params*/) { } printer->Print(vars, "\n"); - printer->Print(vars, "#endif /* GRPC_C_$filename_identifier$__INCLUDED */\n"); + printer->Print(vars, + "#endif /* GRPC_C_$filename_identifier$__INCLUDED */\n"); printer->Print(file->GetTrailingComments().c_str()); } @@ -571,11 +611,13 @@ grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { vars["message_header_ext"] = file->message_header_ext(); vars["service_header_ext"] = file->service_header_ext(); - printer->Print(vars, BlockifyComments( - "\n" - "// Generated by the gRPC protobuf plugin.\n" - "// If you make any local change, they will be lost.\n" - "\n").c_str()); + printer->Print( + vars, + BlockifyComments("\n" + "// Generated by the gRPC protobuf plugin.\n" + "// If you make any local change, they will be lost.\n" + "\n") + .c_str()); grpc::string filename; { @@ -588,12 +630,13 @@ grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n"); printer->Print(vars, "/* Other message dependencies */\n"); // include all other message headers on which this one depends - auto deps = dynamic_cast(file)->dependencies(); + auto deps = dynamic_cast(file)->dependencies(); for (auto itr = deps.begin(); itr != deps.end(); itr++) { std::map depvars(vars); depvars["filename_base"] = (*itr)->filename_without_ext(); depvars["service_header_ext"] = (*itr)->service_header_ext(); - printer->Print(depvars, "#include \"$filename_base$$message_header_ext$\"\n"); + printer->Print(depvars, + "#include \"$filename_base$$message_header_ext$\"\n"); } printer->Print(vars, "/* Service header */\n"); printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n"); @@ -604,8 +647,7 @@ grpc::string GetSourcePrologue(File *file, const Parameters & /*params*/) { return output; } -grpc::string GetSourceIncludes(File *file, - const Parameters ¶ms) { +grpc::string GetSourceIncludes(File *file, const Parameters ¶ms) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -613,22 +655,16 @@ grpc::string GetSourceIncludes(File *file, std::map vars; static const char *headers_strs[] = { - "grpc_c/status.h", - "grpc_c/grpc_c.h", - "grpc_c/channel.h", - "grpc_c/client_context.h", - "grpc_c/codegen/message.h", - "grpc_c/codegen/method.h", - "grpc_c/codegen/unary_blocking_call.h", - "grpc_c/codegen/unary_async_call.h", - "grpc_c/codegen/client_streaming_blocking_call.h", - "grpc_c/codegen/server_streaming_blocking_call.h", - "grpc_c/codegen/bidi_streaming_blocking_call.h", - "grpc_c/codegen/client_context.h", - // Relying on Nanopb for Protobuf serialization for now - "grpc_c/codegen/pb_compat.h", - "grpc_c/declare_serializer.h" - }; + "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/channel.h", + "grpc_c/client_context.h", "grpc_c/codegen/message.h", + "grpc_c/codegen/method.h", "grpc_c/codegen/unary_blocking_call.h", + "grpc_c/codegen/unary_async_call.h", + "grpc_c/codegen/client_streaming_blocking_call.h", + "grpc_c/codegen/server_streaming_blocking_call.h", + "grpc_c/codegen/bidi_streaming_blocking_call.h", + "grpc_c/codegen/client_context.h", + // Relying on Nanopb for Protobuf serialization for now + "grpc_c/codegen/pb_compat.h", "grpc_c/declare_serializer.h"}; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); @@ -657,11 +693,13 @@ grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { vars["filename_base"] = file->filename_without_ext(); vars["message_header_ext"] = file->message_header_ext(); - printer->Print(vars, BlockifyComments( - "\n" - "// Generated by the gRPC protobuf plugin.\n" - "// If you make any local change, they will be lost.\n" - "\n").c_str()); + printer->Print( + vars, + BlockifyComments("\n" + "// Generated by the gRPC protobuf plugin.\n" + "// If you make any local change, they will be lost.\n" + "\n") + .c_str()); grpc::string filename; { @@ -672,7 +710,8 @@ grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { grpc::string leading_comments = file->GetLeadingComments(); if (!leading_comments.empty()) { - printer->Print(vars, BlockifyComments("// Original file comments:\n").c_str()); + printer->Print(vars, + BlockifyComments("// Original file comments:\n").c_str()); printer->Print(BlockifyComments(leading_comments).c_str()); } printer->Print(vars, "#ifndef GRPC_C_$filename_identifier$__INCLUDED\n"); @@ -684,8 +723,7 @@ grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { return output; } -grpc::string GetHeaderIncludes(File *file, - const Parameters ¶ms) { +grpc::string GetHeaderIncludes(File *file, const Parameters ¶ms) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -693,12 +731,8 @@ grpc::string GetHeaderIncludes(File *file, std::map vars; static const char *headers_strs[] = { - "grpc_c/grpc_c.h", - "grpc_c/status.h", - "grpc_c/channel.h", - "grpc_c/client_context.h", - "grpc_c/completion_queue.h" - }; + "grpc_c/grpc_c.h", "grpc_c/status.h", "grpc_c/channel.h", + "grpc_c/client_context.h", "grpc_c/completion_queue.h"}; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); printer->Print(vars, "\n"); @@ -706,8 +740,7 @@ grpc::string GetHeaderIncludes(File *file, return output; } -grpc::string GetSourceServices(File *file, - const Parameters ¶ms) { +grpc::string GetSourceServices(File *file, const Parameters ¶ms) { grpc::string output; { // Scope the output stream so it closes and finalizes output to the string. @@ -720,15 +753,20 @@ grpc::string GetSourceServices(File *file, vars["Package"].append("."); } // TODO(yifeit): hook this up to C prefix - // TODO(yifeit): what if proto files in the dependency tree had different packages + // TODO(yifeit): what if proto files in the dependency tree had different + // packages // we are using the same prefix for all referenced type - vars["CPrefix"] = grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; + vars["CPrefix"] = + grpc_cpp_generator::DotsToUnderscores(file->package()) + "_"; - // The following are Nanopb glue code. Putting them here since we're not going to modify Nanopb. + // The following are Nanopb glue code. Putting them here since we're not + // going to modify Nanopb. - // We need to generate a declaration of serialization helper for every nanopb message type we could use - // in this file. The implementations will be scattered across different service implementation files. - auto messages = dynamic_cast(file)->messages(); + // We need to generate a declaration of serialization helper for every + // nanopb message type we could use + // in this file. The implementations will be scattered across different + // service implementation files. + auto messages = dynamic_cast(file)->messages(); std::vector all_message_names; for (auto itr = messages.begin(); itr != messages.end(); itr++) { all_message_names.push_back((*itr)->name()); @@ -741,35 +779,48 @@ grpc::string GetSourceServices(File *file, all_message_names.push_back(method->output_type_name()); } } - std::set dedupe_message_names(all_message_names.begin(), all_message_names.end()); - for (auto itr = dedupe_message_names.begin(); itr != dedupe_message_names.end(); itr++) { + std::set dedupe_message_names(all_message_names.begin(), + all_message_names.end()); + for (auto itr = dedupe_message_names.begin(); + itr != dedupe_message_names.end(); itr++) { std::map vars_msg(vars); vars_msg["msgType"] = (*itr); - printer->Print(vars_msg, "\n" - "#ifdef $CPrefix$$msgType$_init_default\n" - "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const GRPC_message input);\n" - "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output);\n" - "#define GRPC_C_DECLARE_SERIALIZATION_$CPrefix$$msgType$ \\\n" - " $CPrefix$$msgType$_nanopb_serializer, $CPrefix$$msgType$_nanopb_deserializer\n" - "#endif\n"); + printer->Print( + vars_msg, + "\n" + "#ifdef $CPrefix$$msgType$_init_default\n" + "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const " + "GRPC_message input);\n" + "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message " + "input, void *output);\n" + "#define GRPC_C_DECLARE_SERIALIZATION_$CPrefix$$msgType$ \\\n" + " $CPrefix$$msgType$_nanopb_serializer, " + "$CPrefix$$msgType$_nanopb_deserializer\n" + "#endif\n"); } printer->Print("\n"); // We need to generate a short serialization helper for every message type - // This should be handled in protoc but there's nothing we can do at the moment + // This should be handled in protoc but there's nothing we can do at the + // moment // given we're on nanopb. for (auto itr = messages.begin(); itr != messages.end(); itr++) { std::map vars_msg(vars); vars_msg["msgType"] = (*itr)->name(); - printer->Print(vars_msg, "\n" - "#ifdef $CPrefix$$msgType$_init_default\n" - "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const GRPC_message input) {\n" - " return GRPC_pb_compat_generic_serializer(input, $CPrefix$$msgType$_fields);\n" - "}\n" - "void $CPrefix$$msgType$_nanopb_deserializer(const GRPC_message input, void *output) {\n" - " return GRPC_pb_compat_generic_deserializer(input, output, $CPrefix$$msgType$_fields);\n" - "}\n" - "#endif\n"); + printer->Print(vars_msg, + "\n" + "#ifdef $CPrefix$$msgType$_init_default\n" + "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const " + "GRPC_message input) {\n" + " return GRPC_pb_compat_generic_serializer(input, " + "$CPrefix$$msgType$_fields);\n" + "}\n" + "void $CPrefix$$msgType$_nanopb_deserializer(const " + "GRPC_message input, void *output) {\n" + " return GRPC_pb_compat_generic_deserializer(input, " + "output, $CPrefix$$msgType$_fields);\n" + "}\n" + "#endif\n"); } printer->Print("\n"); @@ -782,5 +833,4 @@ grpc::string GetSourceServices(File *file, return output; } -} // namespace grpc_c_generator - +} // namespace grpc_c_generator diff --git a/src/compiler/c_generator.h b/src/compiler/c_generator.h index 882ab86b22dd1..1cab66524b404 100644 --- a/src/compiler/c_generator.h +++ b/src/compiler/c_generator.h @@ -54,9 +54,10 @@ struct Parameters { }; class CFile : public grpc_cpp_generator::File { -public: + public: // List of messages defined in the file - virtual std::vector messages() const = 0; + virtual std::vector messages() + const = 0; virtual std::vector > dependencies() const = 0; }; @@ -86,4 +87,4 @@ grpc::string GetSourceEpilogue(File *file, const Parameters ¶ms); } // namespace grpc_c_generator -#endif // GRPC_INTERNAL_COMPILER_C_GENERATOR_H +#endif // GRPC_INTERNAL_COMPILER_C_GENERATOR_H diff --git a/src/compiler/c_generator_helpers.h b/src/compiler/c_generator_helpers.h index b6f7af13e5ec5..95278fd3e5f9f 100644 --- a/src/compiler/c_generator_helpers.h +++ b/src/compiler/c_generator_helpers.h @@ -40,7 +40,6 @@ namespace grpc_c_generator { - // Get leading or trailing comments in a string. Comment lines start with "// ". // Leading detached comments are put in in front of leading comments. template @@ -48,6 +47,6 @@ inline grpc::string GetCComments(const DescriptorType *desc, bool leading) { return grpc_generator::GetPrefixedComments(desc, leading, "//"); } -} // namespace grpc_c_generator +} // namespace grpc_c_generator -#endif // GRPC_INTERNAL_COMPILER_C_GENERATOR_HELPERS_H +#endif // GRPC_INTERNAL_COMPILER_C_GENERATOR_HELPERS_H diff --git a/src/compiler/c_plugin.cc b/src/compiler/c_plugin.cc index 23fa8f95dbb10..e2f27a259fb5b 100644 --- a/src/compiler/c_plugin.cc +++ b/src/compiler/c_plugin.cc @@ -35,26 +35,24 @@ #include -#include "src/compiler/config.h" #include "src/compiler/c_generator.h" #include "src/compiler/c_generator_helpers.h" -#include "src/compiler/cpp_generator_helpers.h" +#include "src/compiler/config.h" #include "src/compiler/cpp_generator.h" +#include "src/compiler/cpp_generator_helpers.h" namespace grpc_c_generator { using std::map; class ProtoBufCMethod : public grpc_cpp_generator::Method { -public: + public: ProtoBufCMethod(const grpc::protobuf::MethodDescriptor *method) - : method_(method) { } + : method_(method) {} grpc::string name() const { return method_->name(); } - grpc::string input_type_name() const { - return method_->input_type()->name(); - } + grpc::string input_type_name() const { return method_->input_type()->name(); } grpc::string output_type_name() const { return method_->output_type()->name(); @@ -84,21 +82,22 @@ class ProtoBufCMethod : public grpc_cpp_generator::Method { return GetCComments(method_, false); } -private: + private: const grpc::protobuf::MethodDescriptor *method_; }; class ProtoBufCService : public grpc_cpp_generator::Service { -public: + public: ProtoBufCService(const grpc::protobuf::ServiceDescriptor *service) - : service_(service) { } + : service_(service) {} grpc::string name() const { return service_->name(); } int method_count() const { return service_->method_count(); }; std::unique_ptr method(int i) const { - return std::unique_ptr(new ProtoBufCMethod(service_->method(i))); + return std::unique_ptr( + new ProtoBufCMethod(service_->method(i))); }; grpc::string GetLeadingComments() const { @@ -109,14 +108,14 @@ class ProtoBufCService : public grpc_cpp_generator::Service { return GetCComments(service_, false); } -private: + private: const grpc::protobuf::ServiceDescriptor *service_; }; class ProtoBufCPrinter : public grpc_cpp_generator::Printer { -public: + public: ProtoBufCPrinter(grpc::string *str) - : output_stream_(str), printer_(&output_stream_, '$') { } + : output_stream_(str), printer_(&output_stream_, '$') {} void Print(const std::map &vars, const char *string_template) { @@ -129,15 +128,14 @@ class ProtoBufCPrinter : public grpc_cpp_generator::Printer { void Outdent() { printer_.Outdent(); } -private: + private: grpc::protobuf::io::StringOutputStream output_stream_; grpc::protobuf::io::Printer printer_; }; - class ProtoBufCFile : public CFile { -public: - ProtoBufCFile(const grpc::protobuf::FileDescriptor *file) : file_(file) { } + public: + ProtoBufCFile(const grpc::protobuf::FileDescriptor *file) : file_(file) {} grpc::string filename() const { return file_->name(); } @@ -145,7 +143,8 @@ class ProtoBufCFile : public CFile { return grpc_generator::StripProto(filename()); } - // TODO(yifeit): We're relying on Nanopb right now. After rolling out our own Protobuf-C impl, we should + // TODO(yifeit): We're relying on Nanopb right now. After rolling out our own + // Protobuf-C impl, we should // use a different extension e.g. ".pbc.h" grpc::string message_header_ext() const { return ".pbc.h"; } @@ -162,16 +161,17 @@ class ProtoBufCFile : public CFile { int service_count() const { return file_->service_count(); }; std::unique_ptr service(int i) const { - return std::unique_ptr(new ProtoBufCService(file_->service(i))); + return std::unique_ptr( + new ProtoBufCService(file_->service(i))); } - std::unique_ptr CreatePrinter(grpc::string *str) const { - return std::unique_ptr(new ProtoBufCPrinter(str)); + std::unique_ptr CreatePrinter( + grpc::string *str) const { + return std::unique_ptr( + new ProtoBufCPrinter(str)); } - grpc::string GetLeadingComments() const { - return GetCComments(file_, true); - } + grpc::string GetLeadingComments() const { return GetCComments(file_, true); } grpc::string GetTrailingComments() const { return GetCComments(file_, false); @@ -191,21 +191,22 @@ class ProtoBufCFile : public CFile { std::unique_ptr dep(new ProtoBufCFile(file_->dependency(i))); // recursively add dependencies auto child_dependency = dep->dependencies(); - std::move(child_dependency.begin(), child_dependency.end(), std::back_inserter(deps)); + std::move(child_dependency.begin(), child_dependency.end(), + std::back_inserter(deps)); // add myself by moving deps.push_back(std::move(dep)); } return deps; } -private: + private: const grpc::protobuf::FileDescriptor *file_; }; -} // namespace grpc_c_generator +} // namespace grpc_c_generator class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { -public: + public: CGrpcGenerator() {} virtual ~CGrpcGenerator() {} @@ -213,7 +214,6 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { const ::grpc::string ¶meter, grpc::protobuf::compiler::GeneratorContext *context, ::grpc::string *error) const { - grpc::string file_name = grpc_generator::StripProto(file->name()); // TODO(yifeit): Add c_prefix option in protobuf, and update descriptor @@ -222,9 +222,9 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { if (file->options().cc_generic_services()) { *error = - "C grpc proto compiler plugin does not work with generic " - "services. To generate cpp grpc APIs, please set \"" - "cc_generic_service = false\"."; + "C grpc proto compiler plugin does not work with generic " + "services. To generate cpp grpc APIs, please set \"" + "cc_generic_service = false\"."; return false; } @@ -235,12 +235,11 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { if (!parameter.empty()) { std::vector parameters_list = - grpc_generator::tokenize(parameter, ","); + grpc_generator::tokenize(parameter, ","); for (auto parameter_string = parameters_list.begin(); - parameter_string != parameters_list.end(); - parameter_string++) { + parameter_string != parameters_list.end(); parameter_string++) { std::vector param = - grpc_generator::tokenize(*parameter_string, "="); + grpc_generator::tokenize(*parameter_string, "="); if (param[0] == "grpc_search_path") { generator_parameters.grpc_search_path = param[1]; } else if (param[0] == "nanopb_headers_prefix") { @@ -262,37 +261,35 @@ class CGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { } grpc::string header_code = - grpc_c_generator::GetHeaderPrologue(&pbfile, generator_parameters) + - grpc_c_generator::GetHeaderIncludes(&pbfile, generator_parameters) + - grpc_c_generator::GetHeaderServices(&pbfile, generator_parameters) + - grpc_c_generator::GetHeaderEpilogue(&pbfile, generator_parameters); + grpc_c_generator::GetHeaderPrologue(&pbfile, generator_parameters) + + grpc_c_generator::GetHeaderIncludes(&pbfile, generator_parameters) + + grpc_c_generator::GetHeaderServices(&pbfile, generator_parameters) + + grpc_c_generator::GetHeaderEpilogue(&pbfile, generator_parameters); std::unique_ptr header_output( - context->Open(file_name + ".grpc.pbc.h")); - grpc::protobuf::io::CodedOutputStream header_coded_out( - header_output.get()); + context->Open(file_name + ".grpc.pbc.h")); + grpc::protobuf::io::CodedOutputStream header_coded_out(header_output.get()); header_coded_out.WriteRaw(header_code.data(), header_code.size()); grpc::string source_code = - grpc_c_generator::GetSourcePrologue(&pbfile, generator_parameters) + - grpc_c_generator::GetSourceIncludes(&pbfile, generator_parameters) + - grpc_c_generator::GetSourceServices(&pbfile, generator_parameters) + - grpc_c_generator::GetSourceEpilogue(&pbfile, generator_parameters); + grpc_c_generator::GetSourcePrologue(&pbfile, generator_parameters) + + grpc_c_generator::GetSourceIncludes(&pbfile, generator_parameters) + + grpc_c_generator::GetSourceServices(&pbfile, generator_parameters) + + grpc_c_generator::GetSourceEpilogue(&pbfile, generator_parameters); std::unique_ptr source_output( - context->Open(file_name + ".grpc.pbc.c")); - grpc::protobuf::io::CodedOutputStream source_coded_out( - source_output.get()); + context->Open(file_name + ".grpc.pbc.c")); + grpc::protobuf::io::CodedOutputStream source_coded_out(source_output.get()); source_coded_out.WriteRaw(source_code.data(), source_code.size()); return true; } -private: + private: // Insert the given code into the given file at the given insertion point. void Insert(grpc::protobuf::compiler::GeneratorContext *context, const grpc::string &filename, const grpc::string &insertion_point, const grpc::string &code) const { std::unique_ptr output( - context->OpenForInsert(filename, insertion_point)); + context->OpenForInsert(filename, insertion_point)); grpc::protobuf::io::CodedOutputStream coded_out(output.get()); coded_out.WriteRaw(code.data(), code.size()); } From 45b8fa87895103b7719b275c3cd846233a05ddf4 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 16:54:20 -0700 Subject: [PATCH 149/202] use INTERNAL in impl headers to prevent collision --- include/grpc_c/codegen/bidi_streaming_blocking_call.h | 1 + include/grpc_c/codegen/client_streaming_blocking_call.h | 1 + include/grpc_c/codegen/server_streaming_blocking_call.h | 1 + src/c/alloc.h | 6 +++--- src/c/bidi_streaming_blocking_call.h | 6 +++--- src/c/call_ops.h | 6 +++--- src/c/client_context.h | 6 +++--- src/c/client_streaming_blocking_call.h | 6 +++--- src/c/completion_queue.h | 8 +++++--- src/c/init_shutdown.h | 6 +++--- src/c/message.h | 6 +++--- src/c/server_streaming_blocking_call.h | 6 +++--- src/c/unary_async_call.h | 6 +++--- src/c/unary_blocking_call.h | 6 +++--- 14 files changed, 38 insertions(+), 33 deletions(-) diff --git a/include/grpc_c/codegen/bidi_streaming_blocking_call.h b/include/grpc_c/codegen/bidi_streaming_blocking_call.h index 6920659a04bf2..4cfd7178adae2 100644 --- a/include/grpc_c/codegen/bidi_streaming_blocking_call.h +++ b/include/grpc_c/codegen/bidi_streaming_blocking_call.h @@ -37,6 +37,7 @@ #include #include #include +#include #include GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( diff --git a/include/grpc_c/codegen/client_streaming_blocking_call.h b/include/grpc_c/codegen/client_streaming_blocking_call.h index 621d7951c349a..ec44f680f65cf 100644 --- a/include/grpc_c/codegen/client_streaming_blocking_call.h +++ b/include/grpc_c/codegen/client_streaming_blocking_call.h @@ -37,6 +37,7 @@ #include #include #include +#include #include GRPC_client_writer *GRPC_client_streaming_blocking_call( diff --git a/include/grpc_c/codegen/server_streaming_blocking_call.h b/include/grpc_c/codegen/server_streaming_blocking_call.h index f1d0409b76b1d..c5b683d09adbd 100644 --- a/include/grpc_c/codegen/server_streaming_blocking_call.h +++ b/include/grpc_c/codegen/server_streaming_blocking_call.h @@ -37,6 +37,7 @@ #include #include #include +#include #include GRPC_client_reader *GRPC_server_streaming_blocking_call( diff --git a/src/c/alloc.h b/src/c/alloc.h index 104675975ee37..e7ad7510fc0c9 100644 --- a/src/c/alloc.h +++ b/src/c/alloc.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_ALLOC_H -#define GRPC_C_ALLOC_H +#ifndef GRPC_C_INTERNAL_ALLOC_H +#define GRPC_C_INTERNAL_ALLOC_H #include @@ -41,4 +41,4 @@ void* GRPC_memdup(const void* dst, size_t size); #define GRPC_ALLOC_STRUCT(type, ...) \ (type*)GRPC_memdup(&(type)__VA_ARGS__, sizeof(type)) -#endif // GRPC_C_ALLOC_H +#endif // GRPC_C_INTERNAL_ALLOC_H diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index b875def96e418..eae1e5c9078b0 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H -#define GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H +#ifndef GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H +#define GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H #include #include "src/c/call_ops.h" @@ -43,4 +43,4 @@ typedef struct grpc_client_reader_writer { grpc_completion_queue *cq; } grpc_client_reader_writer; -#endif /* GRPC_C_BIDI_STREAMING_BLOCKING_CALL_H */ +#endif /* GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H */ diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 5654b14715d0f..805706041b417 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CALL_OPS_H -#define GRPC_C_CALL_OPS_H +#ifndef GRPC_C_INTERNAL_CALL_OPS_H +#define GRPC_C_INTERNAL_CALL_OPS_H #include #include @@ -105,4 +105,4 @@ extern const grpc_op_manager grpc_op_recv_object; extern const grpc_op_manager grpc_op_send_close; extern const grpc_op_manager grpc_op_recv_status; -#endif /* GRPC_C_CALL_OPS_H */ +#endif /* GRPC_C_INTERNAL_CALL_OPS_H */ diff --git a/src/c/client_context.h b/src/c/client_context.h index 7af8a5d8daf4c..c07e80fb7804b 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CLIENT_CONTEXT_H -#define GRPC_C_CLIENT_CONTEXT_H +#ifndef GRPC_C_INTERNAL_CLIENT_CONTEXT_H +#define GRPC_C_INTERNAL_CLIENT_CONTEXT_H #include #include @@ -64,4 +64,4 @@ struct grpc_client_context { grpc_call *call; }; -#endif // GRPC_C_CLIENT_CONTEXT_H +#endif // GRPC_C_INTERNAL_CLIENT_CONTEXT_H diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index ff0cf2c49db73..b16ecd5185358 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H -#define GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H +#ifndef GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H +#define GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H #include #include "src/c/call_ops.h" @@ -46,4 +46,4 @@ typedef struct grpc_client_writer { grpc_message *response; } grpc_client_writer; -#endif // GRPC_C_CLIENT_STREAMING_BLOCKING_CALL_H +#endif // GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H diff --git a/src/c/completion_queue.h b/src/c/completion_queue.h index ea25395d1953e..5833f7c7da7e8 100644 --- a/src/c/completion_queue.h +++ b/src/c/completion_queue.h @@ -31,11 +31,13 @@ * */ -#ifndef GRPC_C_COMPLETION_QUEUE_H -#define GRPC_C_COMPLETION_QUEUE_H +#ifndef GRPC_C_INTERNAL_COMPLETION_QUEUE_H +#define GRPC_C_INTERNAL_COMPLETION_QUEUE_H #include +#include +#include bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag); -#endif // GRPC_C_COMPLETION_QUEUE_H +#endif // GRPC_C_INTERNAL_COMPLETION_QUEUE_H diff --git a/src/c/init_shutdown.h b/src/c/init_shutdown.h index 3ab6387c38cce..0a4347c797aed 100644 --- a/src/c/init_shutdown.h +++ b/src/c/init_shutdown.h @@ -31,9 +31,9 @@ * */ -#ifndef GRPC_C_GRPC_INIT_SHUTDOWN_H -#define GRPC_C_GRPC_INIT_SHUTDOWN_H +#ifndef GRPC_C_INTERNAL_GRPC_INIT_SHUTDOWN_H +#define GRPC_C_INTERNAL_GRPC_INIT_SHUTDOWN_H void grpc_ensure_grpc_init(); -#endif // GRPC_C_GRPC_INIT_SHUTDOWN_H +#endif // GRPC_C_INTERNAL_GRPC_INIT_SHUTDOWN_H diff --git a/src/c/message.h b/src/c/message.h index 1a238eb07079c..33d864305c285 100644 --- a/src/c/message.h +++ b/src/c/message.h @@ -31,11 +31,11 @@ * */ -#ifndef GRPC_C_MESSAGE_H -#define GRPC_C_MESSAGE_H +#ifndef GRPC_C_INTERNAL_MESSAGE_H +#define GRPC_C_INTERNAL_MESSAGE_H #include typedef GRPC_message grpc_message; -#endif // GRPC_C_MESSAGE_H +#endif // GRPC_C_INTERNAL_MESSAGE_H diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 0cf6dc248ec9e..4653ab47eceda 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H -#define GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H +#ifndef GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H +#define GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H #include #include "src/c/call_ops.h" @@ -43,4 +43,4 @@ typedef struct grpc_client_reader { grpc_completion_queue *cq; } grpc_client_reader; -#endif // GRPC_C_SERVER_STREAMING_BLOCKING_CALL_H +#endif // GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index 7fe58a9d379b0..5121583764a8c 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -31,8 +31,8 @@ * */ -#ifndef GRPC_C_CLIENT_ASYNC_READER_H -#define GRPC_C_CLIENT_ASYNC_READER_H +#ifndef GRPC_C_INTERNAL_CLIENT_ASYNC_READER_H +#define GRPC_C_INTERNAL_CLIENT_ASYNC_READER_H #include "src/c/call_ops.h" @@ -46,4 +46,4 @@ typedef struct grpc_client_async_response_reader { grpc_call *call; } grpc_client_async_response_reader; -#endif // GRPC_C_CLIENT_ASYNC_READER_H +#endif // GRPC_C_INTERNAL_CLIENT_ASYNC_READER_H diff --git a/src/c/unary_blocking_call.h b/src/c/unary_blocking_call.h index dad421e51159b..f3131212b685c 100644 --- a/src/c/unary_blocking_call.h +++ b/src/c/unary_blocking_call.h @@ -31,7 +31,7 @@ * */ -#ifndef GRPC_C_UNARY_BLOCKING_CALL_H -#define GRPC_C_UNARY_BLOCKING_CALL_H +#ifndef GRPC_C_INTERNAL_UNARY_BLOCKING_CALL_H +#define GRPC_C_INTERNAL_UNARY_BLOCKING_CALL_H -#endif // GRPC_C_UNARY_BLOCKING_CALL_H +#endif // GRPC_C_INTERNAL_UNARY_BLOCKING_CALL_H From 8b0ec2568987088edbe65b43feba110b43d6c744 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 17:43:47 -0700 Subject: [PATCH 150/202] trying to fix OS X portability failure --- Makefile | 28 +++++++++++++--------------- templates/Makefile.template | 27 +++++++++++++-------------- 2 files changed, 26 insertions(+), 29 deletions(-) diff --git a/Makefile b/Makefile index c60ea1771280d..5e22277860820 100644 --- a/Makefile +++ b/Makefile @@ -263,7 +263,7 @@ NANOPB_DEP := $(NANOPB_DIR)/generator/proto/nanopb_pb2.py $(NANOPB_DIR)/generato SYSTEM_PYTHON_PROTOBUF_GOOD := $(shell \ -version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ +PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ major=( $${version//./ } );\ majordef=$${major:-0};\ if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) @@ -272,6 +272,8 @@ ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) # For systems with built-in python-protobuf all: all_after_prereq test: test_after_prereq +test_c: test_c_after_prereq +test_cxx: test_cxx_after_prereq %: else # We need to install a local python-protobuf @@ -279,21 +281,17 @@ NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX) NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) # Trigger variable evaluation NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) + all: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ - trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ - NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ - $(MAKE) $(MFLAGS) all_after_prereq; \ - deactivate + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) all_after_prereq; deactivate test: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ - trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ - NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ - $(MAKE) $(MFLAGS) test_after_prereq; \ - deactivate + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) test_after_prereq; deactivate +test_c: + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) test_c_after_prereq; deactivate +test_cxx: + $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) test_cxx_after_prereq; deactivate endif - PROTOC ?= protoc DTRACE ?= dtrace CONFIG ?= opt @@ -1564,7 +1562,7 @@ test_after_prereq: test_c test_cxx flaky_test: flaky_test_c flaky_test_cxx -test_c: buildtests_c +test_c_after_prereq: buildtests_c $(E) "[RUN] Testing alarm_test" $(Q) $(BINDIR)/$(CONFIG)/alarm_test || ( echo test alarm_test failed ; exit 1 ) $(E) "[RUN] Testing algorithm_test" @@ -1784,7 +1782,7 @@ flaky_test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/mlog_test || ( echo test mlog_test failed ; exit 1 ) -test_cxx: buildtests_cxx +test_cxx_after_prereq: buildtests_cxx $(E) "[RUN] Testing alarm_cpp_test" $(Q) $(BINDIR)/$(CONFIG)/alarm_cpp_test || ( echo test alarm_cpp_test failed ; exit 1 ) $(E) "[RUN] Testing async_end2end_test" @@ -16196,7 +16194,7 @@ test/cpp/util/test_config.cc: $(OPENSSL_DEP) test/cpp/util/test_credentials_provider.cc: $(OPENSSL_DEP) endif -.PHONY: all_after_prereq strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx test test_c test_cxx install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean +.PHONY: all all_after_prereq strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx test test_after_prereq test_c test_cxx test_c_after_prereq test_cxx_after_prereq install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean .PHONY: printvars printvars: diff --git a/templates/Makefile.template b/templates/Makefile.template index 50a2544279571..163d73f7c49ff 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -153,7 +153,7 @@ <%text> SYSTEM_PYTHON_PROTOBUF_GOOD := $(shell \ - version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ + PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ major=( $${version//./ } );\ majordef=$${major:-0};\ if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) @@ -162,6 +162,8 @@ # For systems with built-in python-protobuf all: all_after_prereq test: test_after_prereq + test_c: test_c_after_prereq + test_cxx: test_cxx_after_prereq %: else # We need to install a local python-protobuf @@ -169,20 +171,16 @@ NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) # Trigger variable evaluation NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) - all: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ - trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ - NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ - $(MAKE) $(MFLAGS) all_after_prereq; \ - deactivate - test: + + %for tgt in ['all', 'test', 'test_c', 'test_cxx']: + ${tgt}: $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ - $(MAKE) $(MFLAGS) test_after_prereq; \ + $(MAKE) $(MFLAGS) ${tgt}_after_prereq; \ deactivate + %endfor endif - PROTOC ?= protoc DTRACE ?= dtrace @@ -1008,7 +1006,7 @@ flaky_test: flaky_test_c flaky_test_cxx - test_c: buildtests_c + test_c_after_prereq: buildtests_c % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" @@ -1026,7 +1024,7 @@ % endfor - test_cxx: buildtests_cxx + test_cxx_after_prereq: buildtests_cxx % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" @@ -1825,10 +1823,11 @@ % endfor endif - .PHONY: all_after_prereq strip tools \ + .PHONY: all all_after_prereq strip tools \ dep_error openssl_dep_error openssl_dep_message git_update stop \ buildtests buildtests_c buildtests_cxx \ - test test_c test_cxx \ + test test_after_prereq test_c test_cxx \ + test_c_after_prereq test_cxx_after_prereq \ install install_c install_cxx \ install-headers install-headers_c install-headers_cxx \ install-shared install-shared_c install-shared_cxx \ From ff1c3cbdf95874e19c722557c7ff8e0c17fe3ab3 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 17:46:40 -0700 Subject: [PATCH 151/202] Fix for sanity check --- build.yaml | 2 ++ tools/run_tests/sources_and_headers.json | 7 +++++-- .../grpc_c_generic_end2end_test.vcxproj | 3 +++ .../grpc_c_generic_end2end_test.vcxproj.filters | 5 +++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/build.yaml b/build.yaml index 0ab699ae37da0..5fa459e90a2d6 100644 --- a/build.yaml +++ b/build.yaml @@ -2763,6 +2763,8 @@ targets: gtest: true build: test language: c++ + headers: + - test/c/end2end/id_serialization.h src: - test/c/end2end/generic_end2end_test.cc - test/c/end2end/id_serialization.cc diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index d02d2d94cbeae..c770e5d9a196e 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2157,12 +2157,15 @@ "grpc_c", "grpc_test_util" ], - "headers": [], + "headers": [ + "test/c/end2end/id_serialization.h" + ], "language": "c++", "name": "grpc_c_generic_end2end_test", "src": [ "test/c/end2end/generic_end2end_test.cc", - "test/c/end2end/id_serialization.cc" + "test/c/end2end/id_serialization.cc", + "test/c/end2end/id_serialization.h" ], "third_party": false, "type": "target" diff --git a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj index 9a938d1134438..5ab6f29b94ffb 100644 --- a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj +++ b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj @@ -159,6 +159,9 @@ + + + diff --git a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters index 243eaad4ebac3..0b3ce8d4b7a99 100644 --- a/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters +++ b/vsprojects/vcxproj/test/grpc_c_generic_end2end_test/grpc_c_generic_end2end_test.vcxproj.filters @@ -8,6 +8,11 @@ test\c\end2end + + + test\c\end2end + + From a6354d412deaeb41b821364278282ba2a0f47f46 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 17:58:39 -0700 Subject: [PATCH 152/202] more fixes for sanity --- BUILD | 1 - build.yaml | 1 - tools/run_tests/sources_and_headers.json | 2 -- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 1 - vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 3 --- 5 files changed, 8 deletions(-) diff --git a/BUILD b/BUILD index d371e35076112..cf20c9ae9f855 100644 --- a/BUILD +++ b/BUILD @@ -557,7 +557,6 @@ cc_library( "src/c/init_shutdown.h", "src/c/message.h", "src/c/server_streaming_blocking_call.h", - "src/c/status.h", "src/c/tag.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h", diff --git a/build.yaml b/build.yaml index 5fa459e90a2d6..639c36ab25084 100644 --- a/build.yaml +++ b/build.yaml @@ -857,7 +857,6 @@ libs: - src/c/init_shutdown.h - src/c/message.h - src/c/server_streaming_blocking_call.h - - src/c/status.h - src/c/tag.h - src/c/unary_async_call.h - src/c/unary_blocking_call.h diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index c770e5d9a196e..8958f8bd6842e 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4284,7 +4284,6 @@ "src/c/init_shutdown.h", "src/c/message.h", "src/c/server_streaming_blocking_call.h", - "src/c/status.h", "src/c/tag.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h" @@ -4328,7 +4327,6 @@ "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.c", "src/c/server_streaming_blocking_call.h", - "src/c/status.h", "src/c/tag.h", "src/c/unary_async_call.c", "src/c/unary_async_call.h", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index f780c118f3cd4..14e7555499a5c 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -285,7 +285,6 @@ - diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index e7e5d5d01f164..aaa67044264ad 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -119,9 +119,6 @@ src\c - - src\c - src\c From 5af01858a0e43695fbbfc1537baaa8c2399ce490 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 18:03:56 -0700 Subject: [PATCH 153/202] even more fixes for sanity --- BUILD | 1 - build.yaml | 1 - tools/run_tests/sources_and_headers.json | 2 -- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 1 - vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 3 --- 5 files changed, 8 deletions(-) diff --git a/BUILD b/BUILD index cf20c9ae9f855..80220cd673ec0 100644 --- a/BUILD +++ b/BUILD @@ -557,7 +557,6 @@ cc_library( "src/c/init_shutdown.h", "src/c/message.h", "src/c/server_streaming_blocking_call.h", - "src/c/tag.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h", "src/c/alloc.c", diff --git a/build.yaml b/build.yaml index 639c36ab25084..14633e8f90b57 100644 --- a/build.yaml +++ b/build.yaml @@ -857,7 +857,6 @@ libs: - src/c/init_shutdown.h - src/c/message.h - src/c/server_streaming_blocking_call.h - - src/c/tag.h - src/c/unary_async_call.h - src/c/unary_blocking_call.h src: diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 8958f8bd6842e..beb639e40473a 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4284,7 +4284,6 @@ "src/c/init_shutdown.h", "src/c/message.h", "src/c/server_streaming_blocking_call.h", - "src/c/tag.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h" ], @@ -4327,7 +4326,6 @@ "src/c/pb_compat.c", "src/c/server_streaming_blocking_call.c", "src/c/server_streaming_blocking_call.h", - "src/c/tag.h", "src/c/unary_async_call.c", "src/c/unary_async_call.h", "src/c/unary_blocking_call.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index 14e7555499a5c..df9c5990dfcd7 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -285,7 +285,6 @@ - diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index aaa67044264ad..2e56ed15389e0 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -119,9 +119,6 @@ src\c - - src\c - src\c From b4268712b21ec8c2fd6e78aeb1b0076b1fb413c1 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 1 Aug 2016 18:16:40 -0700 Subject: [PATCH 154/202] install python-protobuf on macOS jenkins instance before testing --- tools/jenkins/run_jenkins.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/jenkins/run_jenkins.sh b/tools/jenkins/run_jenkins.sh index 7a6dfe3577faa..a0fcf91e40636 100755 --- a/tools/jenkins/run_jenkins.sh +++ b/tools/jenkins/run_jenkins.sh @@ -45,6 +45,15 @@ then elif [ "$platform" == "freebsd" ] then export MAKE=gmake +elif [ "$platform" == "macos" ] +then + # Install python-protobuf which is needed by nanopb + MACOS_NANOPB_VIRTUAL_ENV=$(mktemp -d /tmp/grpc-nanopb-XXXXXX) + pushd ${MACOS_NANOPB_VIRTUAL_ENV} + virtualenv ${MACOS_NANOPB_VIRTUAL_ENV} + source ${MACOS_NANOPB_VIRTUAL_ENV}/bin/activate + popd + pip install protobuf==3.0.0b2 fi unset platform # variable named 'platform' breaks the windows build @@ -64,6 +73,12 @@ then echo 'No reports generated.' > reports/index.html fi +if [ "$platform" == "macos" ] +then + deactivate + rm -rf ${MACOS_NANOPB_VIRTUAL_ENV} +fi + if [ "$TESTS_FAILED" != "" ] then exit 1 From 46a831475f5609b4b4196cb7db9fefe96b22c215 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 2 Aug 2016 14:01:43 -0700 Subject: [PATCH 155/202] correct handling of gRPC C API files in sanity header checks --- .../run_tests/sources_and_headers.json.template | 12 +++++++++--- tools/run_tests/sanity/check_sources_and_headers.py | 2 +- tools/run_tests/sources_and_headers.json | 8 ++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/templates/tools/run_tests/sources_and_headers.json.template b/templates/tools/run_tests/sources_and_headers.json.template index 07559828dc49a..2aa93104e10ec 100644 --- a/templates/tools/run_tests/sources_and_headers.json.template +++ b/templates/tools/run_tests/sources_and_headers.json.template @@ -4,12 +4,18 @@ import json import os - def proto_headers(src): + def proto_headers(tgt): out = [] + fmt_strs = [] + if tgt.language == 'c': + fmt_strs = ['%s.grpc.pbc.h', '%s.pbc.h'] + else: + fmt_strs = ['%s.grpc.pb.h', '%s.pb.h'] + src = tgt.own_src for f in src: name, ext = os.path.splitext(f) if ext == '.proto': - out.extend(fmt % name for fmt in ['%s.grpc.pb.h', '%s.pb.h']) + out.extend(fmt % name for fmt in fmt_strs) return out def all_targets(targets, libs, filegroups): @@ -46,7 +52,7 @@ "headers": sorted( tgt.own_public_headers + tgt.own_headers + - proto_headers(tgt.own_src)), + proto_headers(tgt)), "deps": sorted(tgt.get('deps', []) + tgt.get('uses', []) + tgt.get('filegroups', []))} diff --git a/tools/run_tests/sanity/check_sources_and_headers.py b/tools/run_tests/sanity/check_sources_and_headers.py index 28c1dc46d7fb8..ebdc82d3af982 100755 --- a/tools/run_tests/sanity/check_sources_and_headers.py +++ b/tools/run_tests/sanity/check_sources_and_headers.py @@ -39,7 +39,7 @@ re_inc1 = re.compile(r'^#\s*include\s*"([^"]*)"') assert re_inc1.match('#include "foo"').group(1) == 'foo' -re_inc2 = re.compile(r'^#\s*include\s*<((grpc|grpc\+\+)/[^"]*)>') +re_inc2 = re.compile(r'^#\s*include\s*<((grpc|grpc\+\+|grpc_c)/[^"]*)>') assert re_inc2.match('#include ').group(1) == 'grpc++/foo' def get_target(name): diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index beb639e40473a..71e1cd36b8734 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4344,10 +4344,10 @@ "nanopb" ], "headers": [ - "src/proto/grpc/testing/echo.grpc.pb.h", - "src/proto/grpc/testing/echo.pb.h", - "src/proto/grpc/testing/echo_messages.grpc.pb.h", - "src/proto/grpc/testing/echo_messages.pb.h", + "src/proto/grpc/testing/echo.grpc.pbc.h", + "src/proto/grpc/testing/echo.pbc.h", + "src/proto/grpc/testing/echo_messages.grpc.pbc.h", + "src/proto/grpc/testing/echo_messages.pbc.h", "test/c/end2end/end2end_test_client.h" ], "language": "c", From ae7fc54e4505090f11194c6820466539539d30e8 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 2 Aug 2016 15:43:28 -0700 Subject: [PATCH 156/202] fix macOS jenkins build --- tools/jenkins/run_jenkins.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/jenkins/run_jenkins.sh b/tools/jenkins/run_jenkins.sh index a0fcf91e40636..d552bd1fe44df 100755 --- a/tools/jenkins/run_jenkins.sh +++ b/tools/jenkins/run_jenkins.sh @@ -48,11 +48,10 @@ then elif [ "$platform" == "macos" ] then # Install python-protobuf which is needed by nanopb + # the other platforms have it installed by default MACOS_NANOPB_VIRTUAL_ENV=$(mktemp -d /tmp/grpc-nanopb-XXXXXX) - pushd ${MACOS_NANOPB_VIRTUAL_ENV} virtualenv ${MACOS_NANOPB_VIRTUAL_ENV} source ${MACOS_NANOPB_VIRTUAL_ENV}/bin/activate - popd pip install protobuf==3.0.0b2 fi From 05f4a26b64659e68564686edc5db313a7246e7a6 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Wed, 3 Aug 2016 22:23:34 +0200 Subject: [PATCH 157/202] Compiling protobuf twice to enable msan in C++, and let cross compilation be a thing. --- Makefile | 75 ++++++++++++++++++++----------------- templates/Makefile.template | 26 ++++++++----- 2 files changed, 58 insertions(+), 43 deletions(-) diff --git a/Makefile b/Makefile index 98dabb3f3da90..2aa4fe4149ebb 100644 --- a/Makefile +++ b/Makefile @@ -756,7 +756,8 @@ PROTOBUF_DEP = $(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a CPPFLAGS := -Ithird_party/protobuf/src $(CPPFLAGS) LDFLAGS := -L$(LIBDIR)/$(CONFIG)/protobuf $(LDFLAGS) ifneq ($(USE_BUILT_PROTOC),false) -PROTOC = $(BINDIR)/$(CONFIG)/protobuf/protoc +PROTOC = $(BINDIR)/opt/protobuf/protoc +PROTOC_DEP = $(PROTOC) PROTOC_PLUGINS = $(PROTOC_PLUGINS_ALL) else PROTOC_PLUGINS = @@ -1179,16 +1180,22 @@ third_party/protobuf/configure: $(E) "[AUTOGEN] Preparing protobuf" $(Q)(cd third_party/protobuf ; autoreconf -f -i -Wall,no-obsolete) -$(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure +$(BINDIR)/opt/protobuf/protoc: third_party/protobuf/configure + $(E) "[MAKE] Building protoc" + $(Q)(cd third_party/protobuf ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_opt) -g $(PROTOBUF_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_opt) -g $(PROTOBUF_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static $(PROTOBUF_CONFIG_OPTS)) + $(Q)$(MAKE) -C third_party/protobuf clean + $(Q)$(MAKE) -C third_party/protobuf + $(Q)mkdir -p $(BINDIR)/opt/protobuf + $(Q)cp third_party/protobuf/src/protoc $(BINDIR)/opt/protobuf + +$(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure $(BINDIR)/opt/protobuf/protoc $(E) "[MAKE] Building protobuf" - $(Q)(cd third_party/protobuf ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(PROTOBUF_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(PROTOBUF_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static $(PROTOBUF_CONFIG_OPTS)) + $(Q)(cd third_party/protobuf ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(PROTOBUF_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(PROTOBUF_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static --with-protoc=$(BINDIR)/opt/protobuf/protoc $(PROTOBUF_CONFIG_OPTS)) $(Q)$(MAKE) -C third_party/protobuf clean $(Q)$(MAKE) -C third_party/protobuf $(Q)mkdir -p $(LIBDIR)/$(CONFIG)/protobuf - $(Q)mkdir -p $(BINDIR)/$(CONFIG)/protobuf - $(Q)cp third_party/protobuf/src/.libs/libprotoc.a $(LIBDIR)/$(CONFIG)/protobuf $(Q)cp third_party/protobuf/src/.libs/libprotobuf.a $(LIBDIR)/$(CONFIG)/protobuf - $(Q)cp third_party/protobuf/src/protoc $(BINDIR)/$(CONFIG)/protobuf + $(Q)cp third_party/protobuf/src/.libs/libprotoc.a $(LIBDIR)/$(CONFIG)/protobuf static: static_c static_cxx @@ -1919,12 +1926,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -1934,12 +1941,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -1949,12 +1956,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -1964,12 +1971,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/control.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc +$(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: src/proto/grpc/testing/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc +$(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: src/proto/grpc/testing/control.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -1979,12 +1986,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -1994,12 +2001,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/echo.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc +$(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc +$(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2009,12 +2016,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2024,12 +2031,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2039,12 +2046,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2054,12 +2061,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2069,12 +2076,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2084,12 +2091,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/services.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc +$(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: src/proto/grpc/testing/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc +$(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: src/proto/grpc/testing/services.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2099,12 +2106,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/stats.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -2114,12 +2121,12 @@ ifeq ($(NO_PROTOC),true) $(GENDIR)/src/proto/grpc/testing/test.pb.cc: protoc_dep_error $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc +$(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: src/proto/grpc/testing/test.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc +$(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: src/proto/grpc/testing/test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< diff --git a/templates/Makefile.template b/templates/Makefile.template index 9afc6566e2faf..cded961d2c3eb 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -650,7 +650,8 @@ CPPFLAGS := -Ithird_party/protobuf/src $(CPPFLAGS) LDFLAGS := -L$(LIBDIR)/$(CONFIG)/protobuf $(LDFLAGS) ifneq ($(USE_BUILT_PROTOC),false) - PROTOC = $(BINDIR)/$(CONFIG)/protobuf/protoc + PROTOC = $(BINDIR)/opt/protobuf/protoc + PROTOC_DEP = $(PROTOC) PROTOC_PLUGINS = $(PROTOC_PLUGINS_ALL) else PROTOC_PLUGINS = @@ -822,16 +823,22 @@ $(E) "[AUTOGEN] Preparing protobuf" $(Q)(cd third_party/protobuf ; autoreconf -f -i -Wall,no-obsolete) - $(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure + $(BINDIR)/opt/protobuf/protoc: third_party/protobuf/configure + $(E) "[MAKE] Building protoc" + $(Q)(cd third_party/protobuf ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_opt) -g $(PROTOBUF_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_opt) -g $(PROTOBUF_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static $(PROTOBUF_CONFIG_OPTS)) + $(Q)$(MAKE) -C third_party/protobuf clean + $(Q)$(MAKE) -C third_party/protobuf + $(Q)mkdir -p $(BINDIR)/opt/protobuf + $(Q)cp third_party/protobuf/src/protoc $(BINDIR)/opt/protobuf + + $(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure $(BINDIR)/opt/protobuf/protoc $(E) "[MAKE] Building protobuf" - $(Q)(cd third_party/protobuf ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(PROTOBUF_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(PROTOBUF_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static $(PROTOBUF_CONFIG_OPTS)) + $(Q)(cd third_party/protobuf ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g $(PROTOBUF_LDFLAGS_EXTRA)" CPPFLAGS="$(PIC_CPPFLAGS) $(CPPFLAGS_$(CONFIG)) -g $(PROTOBUF_CPPFLAGS_EXTRA)" ./configure --disable-shared --enable-static --with-protoc=$(BINDIR)/opt/protobuf/protoc $(PROTOBUF_CONFIG_OPTS)) $(Q)$(MAKE) -C third_party/protobuf clean $(Q)$(MAKE) -C third_party/protobuf $(Q)mkdir -p $(LIBDIR)/$(CONFIG)/protobuf - $(Q)mkdir -p $(BINDIR)/$(CONFIG)/protobuf - $(Q)cp third_party/protobuf/src/.libs/libprotoc.a $(LIBDIR)/$(CONFIG)/protobuf $(Q)cp third_party/protobuf/src/.libs/libprotobuf.a $(LIBDIR)/$(CONFIG)/protobuf - $(Q)cp third_party/protobuf/src/protoc $(BINDIR)/$(CONFIG)/protobuf + $(Q)cp third_party/protobuf/src/.libs/libprotoc.a $(LIBDIR)/$(CONFIG)/protobuf static: static_c static_cxx @@ -1148,12 +1155,12 @@ $(GENDIR)/${p}.pb.cc: protoc_dep_error $(GENDIR)/${p}.grpc.pb.cc: protoc_dep_error else - $(GENDIR)/${p}.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc' % q for q in proto_deps.get(p, []))} + $(GENDIR)/${p}.pb.cc: ${p}.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc' % q for q in proto_deps.get(p, []))} $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< - $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} + $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin $< @@ -1619,7 +1626,8 @@ $(BINDIR)/$(CONFIG)/${tgt.name}: \ % if not has_no_sources: - $(PROTOBUF_DEP) $(${tgt.name.upper()}_OBJS)\ + $(PROTOBUF_DEP) \ + $(${tgt.name.upper()}_OBJS)\ % endif % else: $(BINDIR)/$(CONFIG)/${tgt.name}: \ From 5df09233829926518048615ee34e788251df9492 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 3 Aug 2016 16:06:35 -0700 Subject: [PATCH 158/202] [makefile] POSIX-compliant scripting and handling some race conditions --- Makefile | 20 ++++++++++++-------- templates/Makefile.template | 17 +++++++++-------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 5e22277860820..8336a7aa6d661 100644 --- a/Makefile +++ b/Makefile @@ -277,19 +277,23 @@ test_cxx: test_cxx_after_prereq %: else # We need to install a local python-protobuf -NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX) -NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) -# Trigger variable evaluation -NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) all: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) all_after_prereq; deactivate + $(E) "[NANOPB] Installing Nanopb dependencies" + $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) + $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) all_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} test: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) test_after_prereq; deactivate + $(E) "[NANOPB] Installing Nanopb dependencies" + $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) + $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) test_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} test_c: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) test_c_after_prereq; deactivate + $(E) "[NANOPB] Installing Nanopb dependencies" + $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) + $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) test_c_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} test_cxx: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); $(MAKE) $(MFLAGS) test_cxx_after_prereq; deactivate + $(E) "[NANOPB] Installing Nanopb dependencies" + $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) + $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) test_cxx_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} endif PROTOC ?= protoc diff --git a/templates/Makefile.template b/templates/Makefile.template index 163d73f7c49ff..0c3c8fbfa5ce5 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -167,18 +167,19 @@ %: else # We need to install a local python-protobuf - NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX) - NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF := $(shell pushd $(NANOPB_VENV_DIR); virtualenv $(NANOPB_VENV_DIR); source $(NANOPB_VENV_DIR)/bin/activate; popd; pip install protobuf==3.0.0b2) - # Trigger variable evaluation - NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF_OUTPUT := $(NANOPB_PRECOMPILE_INSTALL_PIP_PROTOBUF) %for tgt in ['all', 'test', 'test_c', 'test_cxx']: ${tgt}: - $(Q) source $(NANOPB_VENV_DIR)/bin/activate; \ - trap 'rm -rf "$(NANOPB_VENV_DIR)"' EXIT; \ - NANOPB_VENV_DIR_PARAM=$(NANOPB_VENV_DIR); \ + $(E) "[NANOPB] Installing Nanopb dependencies" + $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) + $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; \ + trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; \ + . $($@_NANOPB_VENV_DIR)/bin/activate; \ + pip install protobuf==3.0.0b2 >/dev/null; \ $(MAKE) $(MFLAGS) ${tgt}_after_prereq; \ - deactivate + EXIT_CODE=$$?; \ + deactivate; \ + <%text>exit $${EXIT_CODE} %endfor endif From 63dba23f5803b4b0d76bb6b780549a8dc01f9dcd Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 3 Aug 2016 16:33:03 -0700 Subject: [PATCH 159/202] fix run_test targets on systems without protobuf-python --- Makefile | 20 +++++++++++++++----- templates/Makefile.template | 13 ++++++++----- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 14ec4436ceb0d..64585e13f6793 100644 --- a/Makefile +++ b/Makefile @@ -274,6 +274,8 @@ all: all_after_prereq test: test_after_prereq test_c: test_c_after_prereq test_cxx: test_cxx_after_prereq +buildtests_c: buildtests_c_after_prereq +buildtests_cxx: buildtests_cxx_after_prereq %: else # We need to install a local python-protobuf @@ -294,6 +296,14 @@ test_cxx: $(E) "[NANOPB] Installing Nanopb dependencies" $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) test_cxx_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} +buildtests_c: + $(E) "[NANOPB] Installing Nanopb dependencies" + $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) + $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) buildtests_c_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} +buildtests_cxx: + $(E) "[NANOPB] Installing Nanopb dependencies" + $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) + $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) buildtests_cxx_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} endif PROTOC ?= protoc @@ -1276,7 +1286,7 @@ endif buildtests: buildtests_c buildtests_cxx -buildtests_c: privatelibs_c \ +buildtests_c_after_prereq: privatelibs_c \ $(BINDIR)/$(CONFIG)/alarm_test \ $(BINDIR)/$(CONFIG)/algorithm_test \ $(BINDIR)/$(CONFIG)/alloc_test \ @@ -1436,7 +1446,7 @@ buildtests_c: privatelibs_c \ ifeq ($(EMBED_OPENSSL),true) -buildtests_cxx: privatelibs_cxx \ +buildtests_cxx_after_prereq: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/alarm_cpp_test \ $(BINDIR)/$(CONFIG)/async_end2end_test \ $(BINDIR)/$(CONFIG)/auth_property_iterator_test \ @@ -1523,7 +1533,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/boringssl_ssl_test \ else -buildtests_cxx: privatelibs_cxx \ +buildtests_cxx_after_prereq: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/alarm_cpp_test \ $(BINDIR)/$(CONFIG)/async_end2end_test \ $(BINDIR)/$(CONFIG)/auth_property_iterator_test \ @@ -16423,13 +16433,13 @@ test/cpp/util/test_config.cc: $(OPENSSL_DEP) test/cpp/util/test_credentials_provider.cc: $(OPENSSL_DEP) endif -.PHONY: all all_after_prereq strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx test test_after_prereq test_c test_cxx test_c_after_prereq test_cxx_after_prereq install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean +.PHONY: all all_after_prereq strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx buildtests_c_after_prereq buildtests_cxx_after_prereq test test_after_prereq test_c test_cxx test_c_after_prereq test_cxx_after_prereq install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean .PHONY: printvars printvars: @$(foreach V,$(sort $(.VARIABLES)), $(if $(filter-out environment% default automatic, $(origin $V)),$(warning $V=$($V) ($(value $V))))) # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) -$(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) +$(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOC_DEP) $(E) "[NANOPB] Compiling $<" $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; diff --git a/templates/Makefile.template b/templates/Makefile.template index 36ce2444f27bb..0ba39fca6bb08 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -164,11 +164,13 @@ test: test_after_prereq test_c: test_c_after_prereq test_cxx: test_cxx_after_prereq + buildtests_c: buildtests_c_after_prereq + buildtests_cxx: buildtests_cxx_after_prereq %: else # We need to install a local python-protobuf - %for tgt in ['all', 'test', 'test_c', 'test_cxx']: + %for tgt in ['all', 'test', 'test_c', 'test_cxx', 'buildtests_c', 'buildtests_cxx']: ${tgt}: $(E) "[NANOPB] Installing Nanopb dependencies" $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) @@ -983,7 +985,7 @@ buildtests: buildtests_c buildtests_cxx - buildtests_c: privatelibs_c <%text>\ + buildtests_c_after_prereq: privatelibs_c <%text>\ % for tgt in targets: % if tgt.build == 'test' and not tgt.language == 'c++' and not tgt.get('external_deps', None): $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ @@ -992,7 +994,7 @@ ifeq ($(EMBED_OPENSSL),true) - buildtests_cxx: privatelibs_cxx <%text>\ + buildtests_cxx_after_prereq: privatelibs_cxx <%text>\ % for tgt in targets: % if tgt.build == 'test' and tgt.language == 'c++' and not tgt.get('external_deps', None): $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ @@ -1000,7 +1002,7 @@ % endfor else - buildtests_cxx: privatelibs_cxx <%text>\ + buildtests_cxx_after_prereq: privatelibs_cxx <%text>\ % for tgt in targets: % if tgt.build == 'test' and tgt.language == 'c++' and not tgt.get('external_deps', None) and not tgt.boringssl: $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ @@ -1835,6 +1837,7 @@ .PHONY: all all_after_prereq strip tools \ dep_error openssl_dep_error openssl_dep_message git_update stop \ buildtests buildtests_c buildtests_cxx \ + buildtests_c_after_prereq buildtests_cxx_after_prereq \ test test_after_prereq test_c test_cxx \ test_c_after_prereq test_cxx_after_prereq \ install install_c install_cxx \ @@ -1854,6 +1857,6 @@ $(origin $V)),$(warning $V=$($V) ($(value $V))))) # Build Nanopb before using it (these lines duplicate the functionality of the Nanopb Makefile, which cannot use the PROTOC variable) - $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOBUF_DEP) + $(NANOPB_DIR)/generator/proto/%_pb2.py: $(NANOPB_DIR)/generator/proto/%.proto $(PROTOC_DEP) $(E) "[NANOPB] Compiling $<" $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) --proto_path=$(dir $<) --python_out=$(dir $<) $<; From d7d476b287bd9042541452fe2453e5e4ffc38578 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 3 Aug 2016 16:42:08 -0700 Subject: [PATCH 160/202] fix a memory leak. free byte_buffer allocated by us --- src/c/call_ops.c | 7 ++++++- src/c/call_ops.h | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 99b5bf26b5506..25ebb104163ae 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -35,6 +35,7 @@ #include #include #include +#include static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, grpc_client_context *context, @@ -65,6 +66,7 @@ static bool op_send_object_fill(grpc_op *op, const grpc_method *method, gpr_slice slice = gpr_slice_from_copied_buffer(serialized.data, serialized.length); op->data.send_message = grpc_raw_byte_buffer_create(&slice, 1); + set->send_buffer = op->data.send_message; GPR_ASSERT(op->data.send_message != NULL); GRPC_message_destroy(&serialized); @@ -76,7 +78,10 @@ static bool op_send_object_fill(grpc_op *op, const grpc_method *method, static void op_send_object_finish(grpc_client_context *context, grpc_call_op_set *set, bool *status, - int max_message_size) {} + int max_message_size) { + if (set->send_buffer) + grpc_byte_buffer_destroy(set->send_buffer); +} const grpc_op_manager grpc_op_send_object = {op_send_object_fill, op_send_object_finish}; diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 805706041b417..3a27c3a1732d1 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -68,6 +68,9 @@ struct grpc_call_op_set { /* these are used by individual operations */ void *response; grpc_byte_buffer *recv_buffer; + + /* Holding onto the buffer to free it later */ + grpc_byte_buffer *send_buffer; bool message_received; /* if this is true (default false), the event tagged by this call_op_set will From 2c82278115cd6aad3671ff9592252d48c86ef28a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 3 Aug 2016 16:44:30 -0700 Subject: [PATCH 161/202] fix a heap-use-after-free in completion queue --- src/c/completion_queue.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 1eaa9b943751e..18f3d5398c066 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -79,18 +79,21 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline( GPR_ASSERT(set->context != NULL); // run post-processing for async operations bool status = grpc_finish_op_from_call_set(set, set->context); + bool hide_from_user = set->hide_from_user; + void *user_tag = set->user_tag; // run user-defined cleanup if (set->async_cleanup.callback) { set->async_cleanup.callback(set->async_cleanup.arg); } + // set could be freed from this point onwards - if (set->hide_from_user) { + if (hide_from_user) { // don't touch user supplied pointers continue; } - *tag = set->user_tag; + *tag = user_tag; *ok = (ev.success != 0) && status; return GRPC_COMPLETION_QUEUE_GOT_EVENT; From 9de4ea810189ddb60063eacaa7f769832e6f60f0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 3 Aug 2016 16:47:54 -0700 Subject: [PATCH 162/202] fix a heap-buffer-overflow and use C++ syntax in generic C test --- test/c/end2end/generic_end2end_test.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index dc5001386d4b8..a89e8cb534cf6 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -159,13 +159,13 @@ static void SendUnaryRpc(GRPC_channel *channel, // manually deserializing int resplength = (int) resp[1]; - char *response_string = (char *) malloc(resplength); + char *response_string = new char[resplength + 1]; memcpy(response_string, ((char *) resp) + 2, resplength); response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); - free(response_string); + delete []response_string; GRPC_client_context_destroy(&context); } } @@ -194,13 +194,13 @@ static void SendClientStreamingRpc(GRPC_channel *channel, // manually deserializing int resplength = (int) resp[1]; - char *response_string = (char *) malloc(resplength); + char *response_string = new char[resplength + 1]; memcpy(response_string, ((char *) resp) + 2, resplength); response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-CgRPC-CgRPC-C"), grpc::string(response_string)); - free(response_string); + delete []response_string; GRPC_client_context_destroy(&context); } } @@ -224,12 +224,12 @@ static void SendServerStreamingRpc(GRPC_channel *channel, while (GRPC_server_streaming_blocking_read(reader, resp)) { // manually deserializing int resplength = (int) resp[1]; - char *response_string = (char *) malloc(resplength); + char *response_string = new char[resplength + 1]; memcpy(response_string, ((char *) resp) + 2, resplength); response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C") + grpc::to_string(count), grpc::string(response_string)); count++; - free(response_string); + delete []response_string; } EXPECT_TRUE(count > 0); @@ -267,11 +267,11 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, received_num++; // manually deserializing int resplength = (int) resp[1]; - char *response_string = (char *) malloc(resplength); + char *response_string = new char[resplength + 1]; memcpy(response_string, ((char *) resp) + 2, resplength); response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); - free(response_string); + delete []response_string; } EXPECT_EQ(kNumMsgToSend, received_num); @@ -310,13 +310,13 @@ static void SendAsyncUnaryRpc(GRPC_channel *channel, // manually deserializing int resplength = (int) resp[1]; - char *response_string = (char *) malloc(resplength); + char *response_string = new char[resplength + 1]; memcpy(response_string, ((char *) resp) + 2, resplength); response_string[resplength] = '\0'; EXPECT_EQ(grpc::string("gRPC-C"), grpc::string(response_string)); - free(response_string); + delete []response_string; GRPC_client_context_destroy(&context); GRPC_completion_queue_shutdown(cq); GRPC_completion_queue_shutdown_wait(cq); From f982393a53a5056498b69416e12324ad0db987d0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 3 Aug 2016 17:00:02 -0700 Subject: [PATCH 163/202] try to fix --- Makefile | 4 ++-- templates/Makefile.template | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 64585e13f6793..a50828ab74d97 100644 --- a/Makefile +++ b/Makefile @@ -1588,7 +1588,7 @@ test_after_prereq: test_c test_cxx flaky_test: flaky_test_c flaky_test_cxx -test_c_after_prereq: buildtests_c +test_c_after_prereq: buildtests_c_after_prereq $(E) "[RUN] Testing alarm_test" $(Q) $(BINDIR)/$(CONFIG)/alarm_test || ( echo test alarm_test failed ; exit 1 ) $(E) "[RUN] Testing algorithm_test" @@ -1810,7 +1810,7 @@ flaky_test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/mlog_test || ( echo test mlog_test failed ; exit 1 ) -test_cxx_after_prereq: buildtests_cxx +test_cxx_after_prereq: buildtests_cxx_after_prereq $(E) "[RUN] Testing alarm_cpp_test" $(Q) $(BINDIR)/$(CONFIG)/alarm_cpp_test || ( echo test alarm_cpp_test failed ; exit 1 ) $(E) "[RUN] Testing async_end2end_test" diff --git a/templates/Makefile.template b/templates/Makefile.template index 0ba39fca6bb08..4574bd91b3aff 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1016,7 +1016,7 @@ flaky_test: flaky_test_c flaky_test_cxx - test_c_after_prereq: buildtests_c + test_c_after_prereq: buildtests_c_after_prereq % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" @@ -1034,7 +1034,7 @@ % endfor - test_cxx_after_prereq: buildtests_cxx + test_cxx_after_prereq: buildtests_cxx_after_prereq % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" From 6b7b5bba2e10f8c2953b4bea425ca2849e840f53 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 4 Aug 2016 13:05:52 -0700 Subject: [PATCH 164/202] try to fix macOS python build error --- tools/jenkins/run_jenkins.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/jenkins/run_jenkins.sh b/tools/jenkins/run_jenkins.sh index d552bd1fe44df..55375b3873acd 100755 --- a/tools/jenkins/run_jenkins.sh +++ b/tools/jenkins/run_jenkins.sh @@ -53,6 +53,7 @@ then virtualenv ${MACOS_NANOPB_VIRTUAL_ENV} source ${MACOS_NANOPB_VIRTUAL_ENV}/bin/activate pip install protobuf==3.0.0b2 + pip install virtualenv fi unset platform # variable named 'platform' breaks the windows build From da59e4204fe91bdbb0e4ecc2fde5ee0c48dccdca Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 4 Aug 2016 13:28:09 -0700 Subject: [PATCH 165/202] More portable shell script in Makefile --- Makefile | 6 +++--- templates/Makefile.template | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index a50828ab74d97..111be24109c8e 100644 --- a/Makefile +++ b/Makefile @@ -263,9 +263,9 @@ NANOPB_DEP := $(NANOPB_DIR)/generator/proto/nanopb_pb2.py $(NANOPB_DIR)/generato SYSTEM_PYTHON_PROTOBUF_GOOD := $(shell \ -PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ -major=( $${version//./ } );\ -majordef=$${major:-0};\ +PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null || true`; \ +major=`echo $$version | sed 's/\([0-9]*\).*/\1/'`; \ +majordef=$${major:-0}; \ if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) diff --git a/templates/Makefile.template b/templates/Makefile.template index 4574bd91b3aff..53897a260cfe1 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -153,9 +153,9 @@ <%text> SYSTEM_PYTHON_PROTOBUF_GOOD := $(shell \ - PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null` || true;\ - major=( $${version//./ } );\ - majordef=$${major:-0};\ + PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null || true`; \ + major=`echo $$version | sed 's/\([0-9]*\).*/\1/'`; \ + majordef=$${major:-0}; \ if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) From e8f8ea2d9945ee34bcbf7587e4411e408cc2f578 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 4 Aug 2016 13:31:37 -0700 Subject: [PATCH 166/202] More portable shell script in Makefile --- Makefile | 2 +- templates/Makefile.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 111be24109c8e..379e49fd5ffc5 100644 --- a/Makefile +++ b/Makefile @@ -266,7 +266,7 @@ SYSTEM_PYTHON_PROTOBUF_GOOD := $(shell \ PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null || true`; \ major=`echo $$version | sed 's/\([0-9]*\).*/\1/'`; \ majordef=$${major:-0}; \ -if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) +if [ $$majordef -ge 3 ]; then echo true; else echo false; fi;) ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) # For systems with built-in python-protobuf diff --git a/templates/Makefile.template b/templates/Makefile.template index 53897a260cfe1..d47f81a46612d 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -156,7 +156,7 @@ PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf.__version__);' 2> /dev/null || true`; \ major=`echo $$version | sed 's/\([0-9]*\).*/\1/'`; \ majordef=$${major:-0}; \ - if [[ $$majordef -ge 3 ]]; then echo true; else echo false; fi;) + if [ $$majordef -ge 3 ]; then echo true; else echo false; fi;) ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) # For systems with built-in python-protobuf From cc6a8b8db914b14a3e7be1e5c32367b33afbcbad Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 8 Aug 2016 15:44:25 -0700 Subject: [PATCH 167/202] [wip] adding server files and refactoring out useless parameters --- examples/c/helloworld/greeter_async_server.c | 74 ++++++++++++++++++++ include/grpc_c/server.h | 37 ++++++++++ src/c/bidi_streaming_blocking_call.c | 2 +- src/c/call_ops.c | 55 ++++++++++----- src/c/call_ops.h | 6 +- src/c/client_streaming_blocking_call.c | 2 +- src/c/server_streaming_blocking_call.c | 2 +- src/c/unary_async_call.c | 2 +- src/c/unary_blocking_call.c | 2 +- 9 files changed, 156 insertions(+), 26 deletions(-) create mode 100644 examples/c/helloworld/greeter_async_server.c create mode 100644 include/grpc_c/server.h diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c new file mode 100644 index 0000000000000..19b49b79e5575 --- /dev/null +++ b/examples/c/helloworld/greeter_async_server.c @@ -0,0 +1,74 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +/** + * This file demonstrates the basic usage of async unary API. + */ + +#include +#include +#include + +#include +#include "helloworld.grpc.pbc.h" + +/** + * Nanopb callbacks for string encoding/decoding. + */ + +static bool write_string_from_arg(pb_ostream_t *stream, const pb_field_t *field, + void *const *arg) { + const char *str = *arg; + if (!pb_encode_tag_for_field(stream, field)) return false; + + return pb_encode_string(stream, (uint8_t *)str, strlen(str)); +} + +/** + * This callback function reads a string from Nanopb stream and copies it into + * the callback args. + * Users need to free the string after use. + */ +static bool read_string_store_in_arg(pb_istream_t *stream, + const pb_field_t *field, void **arg) { + size_t len = stream->bytes_left; + char *str = malloc(len + 1); + if (!pb_read(stream, str, len)) return false; + str[len] = '\0'; + *arg = str; + return true; +} + +int main(int argc, char **argv) { + return 0; +} diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h new file mode 100644 index 0000000000000..d3492fd3543ae --- /dev/null +++ b/include/grpc_c/server.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_SERVER_H +#define GRPC_C_SERVER_H + +#endif /* GRPC_C_SERVER_H */ diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 84fba92ce0aac..26a984d8cdab6 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -121,7 +121,7 @@ bool GRPC_bidi_streaming_blocking_writes_done( GRPC_status GRPC_client_reader_writer_terminate( GRPC_client_reader_writer *reader_writer) { - grpc_call_op_set set = {{grpc_op_recv_status}, + grpc_call_op_set set = {{grpc_op_client_recv_status}, .context = reader_writer->context, .user_tag = &set}; grpc_start_batch_from_op_set(reader_writer->call, &set, diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 25ebb104163ae..157fbfaa8a803 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -37,7 +37,7 @@ #include #include -static bool op_send_metadata_fill(grpc_op *op, const grpc_method *method, +static bool op_send_metadata_fill(grpc_op *op, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { @@ -55,7 +55,7 @@ static void op_send_metadata_finish(grpc_client_context *context, const grpc_op_manager grpc_op_send_metadata = {op_send_metadata_fill, op_send_metadata_finish}; -static bool op_send_object_fill(grpc_op *op, const grpc_method *method, +static bool op_send_object_fill(grpc_op *op, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { @@ -86,7 +86,7 @@ static void op_send_object_finish(grpc_client_context *context, const grpc_op_manager grpc_op_send_object = {op_send_object_fill, op_send_object_finish}; -static bool op_recv_metadata_fill(grpc_op *op, const grpc_method *method, +static bool op_recv_metadata_fill(grpc_op *op, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { @@ -108,7 +108,7 @@ static void op_recv_metadata_finish(grpc_client_context *context, const grpc_op_manager grpc_op_recv_metadata = {op_recv_metadata_fill, op_recv_metadata_finish}; -static bool op_recv_object_fill(grpc_op *op, const grpc_method *method, +static bool op_recv_object_fill(grpc_op *op, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { @@ -149,7 +149,7 @@ static void op_recv_object_finish(grpc_client_context *context, const grpc_op_manager grpc_op_recv_object = {op_recv_object_fill, op_recv_object_finish}; -static bool op_send_close_fill(grpc_op *op, const grpc_method *method, +static bool op_send_close_fill(grpc_op *op, grpc_client_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { @@ -166,10 +166,10 @@ static void op_send_close_finish(grpc_client_context *context, const grpc_op_manager grpc_op_send_close = {op_send_close_fill, op_send_close_finish}; -static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, - grpc_client_context *context, - grpc_call_op_set *set, - const grpc_message message, void *response) { +static bool op_client_recv_status_fill(grpc_op *op, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; grpc_metadata_array_init(&context->trailing_metadata_array); context->status.details = NULL; @@ -186,15 +186,35 @@ static bool op_recv_status_fill(grpc_op *op, const grpc_method *method, return true; } -static void op_recv_status_finish(grpc_client_context *context, - grpc_call_op_set *set, bool *status, - int max_message_size) {} +static void op_client_recv_status_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} + +const grpc_op_manager grpc_op_client_recv_status = {op_client_recv_status_fill, + op_client_recv_status_finish}; + +static bool op_server_send_status_fill(grpc_op *op, + grpc_client_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { + op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; + op->data.send_status_from_server.trailing_metadata_count = 0; + op->data.send_status_from_server.trailing_metadata = NULL; + op->data.send_status_from_server.status = context->status.code; + op->data.send_status_from_server.status_details = NULL; + op->flags = 0; + op->reserved = NULL; + return true; +} + +static void op_server_send_status_finish(grpc_client_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} -const grpc_op_manager grpc_op_recv_status = {op_recv_status_fill, - op_recv_status_finish}; +const grpc_op_manager grpc_op_server_send_status = {op_server_send_status_fill, + op_server_send_status_finish}; void grpc_fill_op_from_call_set(grpc_call_op_set *set, - const grpc_method *rpc_method, grpc_client_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops) { @@ -206,7 +226,7 @@ void grpc_fill_op_from_call_set(grpc_call_op_set *set, break; // end of call set if (set->op_managers[manager].fill == NULL) continue; bool result = set->op_managers[manager].fill( - &ops[filled], rpc_method, context, set, message, response); + &ops[filled], context, set, message, response); manager++; if (result) filled++; } @@ -236,7 +256,6 @@ void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, &context->rpc_method, context, request, - response, ops, &nops); + grpc_fill_op_from_call_set(set, context, request, response, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); } diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 3a27c3a1732d1..c0f5f2d50467d 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -43,7 +43,7 @@ typedef struct grpc_call_op_set grpc_call_op_set; -typedef bool (*grpc_op_filler)(grpc_op *op, const grpc_method *, +typedef bool (*grpc_op_filler)(grpc_op *op, grpc_client_context *, grpc_call_op_set *, const grpc_message message, void *response); typedef void (*grpc_op_finisher)(grpc_client_context *, grpc_call_op_set *, @@ -85,7 +85,6 @@ struct grpc_call_op_set { }; void grpc_fill_op_from_call_set(grpc_call_op_set *set, - const grpc_method *rpc_method, grpc_client_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops); @@ -106,6 +105,7 @@ extern const grpc_op_manager grpc_op_recv_metadata; extern const grpc_op_manager grpc_op_send_object; extern const grpc_op_manager grpc_op_recv_object; extern const grpc_op_manager grpc_op_send_close; -extern const grpc_op_manager grpc_op_recv_status; +extern const grpc_op_manager grpc_op_client_recv_status; +extern const grpc_op_manager grpc_op_server_send_status; #endif /* GRPC_C_INTERNAL_CALL_OPS_H */ diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 25700ca4e3895..9e591d4dfe5c8 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -58,7 +58,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call( .finish_ops = { {grpc_op_recv_metadata, grpc_op_recv_object, - grpc_op_send_close, grpc_op_recv_status}, + grpc_op_send_close, grpc_op_client_recv_status}, .context = context, }, .cq = cq, diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index a2296f5d45dd3..63763c23e51eb 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -90,7 +90,7 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { grpc_call_op_set set = { - {grpc_op_recv_status}, .context = reader->context, .user_tag = &set}; + {grpc_op_client_recv_status}, .context = reader->context, .user_tag = &set}; grpc_start_batch_from_op_set(reader->call, &set, reader->context, (GRPC_message){0, 0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, &set); diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 520035ff8e088..e5750761af7f7 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -64,7 +64,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( .context = context, .response = NULL}, .finish_buf = { - {grpc_op_recv_metadata, grpc_op_recv_object, grpc_op_recv_status}, + {grpc_op_recv_metadata, grpc_op_recv_object, grpc_op_client_recv_status}, .context = context, .response = NULL, }}); diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 7c677d92c702e..13086c3332540 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -51,7 +51,7 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, context->call = call; grpc_call_op_set set = { {grpc_op_send_metadata, grpc_op_recv_metadata, grpc_op_send_object, - grpc_op_recv_object, grpc_op_send_close, grpc_op_recv_status}, + grpc_op_recv_object, grpc_op_send_close, grpc_op_client_recv_status}, .context = context, .user_tag = &set}; From 47822e8350e6bbab867178228689d3ef5c6ef0c0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 8 Aug 2016 15:52:16 -0700 Subject: [PATCH 168/202] [wip] adding server context --- BUILD | 3 + CMakeLists.txt | 1 + Makefile | 1 + build.yaml | 3 + src/c/client_context.c | 4 +- src/c/client_context.h | 27 +------ src/c/context.h | 71 +++++++++++++++++++ src/c/server_context.h | 46 ++++++++++++ tools/run_tests/sources_and_headers.json | 6 ++ vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 3 + .../vcxproj/grpc_c/grpc_c.vcxproj.filters | 9 +++ 11 files changed, 148 insertions(+), 26 deletions(-) create mode 100644 src/c/context.h create mode 100644 src/c/server_context.h diff --git a/BUILD b/BUILD index 0c9ae78023a9f..d75b4103eabaf 100644 --- a/BUILD +++ b/BUILD @@ -560,8 +560,10 @@ cc_library( "src/c/client_context.h", "src/c/client_streaming_blocking_call.h", "src/c/completion_queue.h", + "src/c/context.h", "src/c/init_shutdown.h", "src/c/message.h", + "src/c/server_context.h", "src/c/server_streaming_blocking_call.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h", @@ -595,6 +597,7 @@ cc_library( "include/grpc_c/completion_queue.h", "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", + "include/grpc_c/server.h", "include/grpc_c/status.h", ], includes = [ diff --git a/CMakeLists.txt b/CMakeLists.txt index e14383be81524..c974222995c48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -581,6 +581,7 @@ foreach(_hdr include/grpc_c/completion_queue.h include/grpc_c/declare_serializer.h include/grpc_c/grpc_c.h + include/grpc_c/server.h include/grpc_c/status.h ) string(REPLACE "include/" "" _path ${_hdr}) diff --git a/Makefile b/Makefile index 379e49fd5ffc5..1f1097a7c010d 100644 --- a/Makefile +++ b/Makefile @@ -3067,6 +3067,7 @@ PUBLIC_HEADERS_C += \ include/grpc_c/completion_queue.h \ include/grpc_c/declare_serializer.h \ include/grpc_c/grpc_c.h \ + include/grpc_c/server.h \ include/grpc_c/status.h \ LIBGRPC_C_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_SRC)))) diff --git a/build.yaml b/build.yaml index 0a8df169c5e68..701721a216198 100644 --- a/build.yaml +++ b/build.yaml @@ -854,6 +854,7 @@ libs: - include/grpc_c/completion_queue.h - include/grpc_c/declare_serializer.h - include/grpc_c/grpc_c.h + - include/grpc_c/server.h - include/grpc_c/status.h headers: - src/c/alloc.h @@ -862,8 +863,10 @@ libs: - src/c/client_context.h - src/c/client_streaming_blocking_call.h - src/c/completion_queue.h + - src/c/context.h - src/c/init_shutdown.h - src/c/message.h + - src/c/server_context.h - src/c/server_streaming_blocking_call.h - src/c/unary_async_call.h - src/c/unary_blocking_call.h diff --git a/src/c/client_context.c b/src/c/client_context.c index 27d67c9c63f50..864c3fad7c20e 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -40,10 +40,10 @@ grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { grpc_client_context *context = GRPC_ALLOC_STRUCT( grpc_client_context, - {.deadline = gpr_inf_future(GPR_CLOCK_REALTIME), + {{.deadline = gpr_inf_future(GPR_CLOCK_REALTIME), .channel = chan, .serialization_impl = {.serialize = NULL, .deserialize = NULL}, - .status = {.ok = true}}); + .status = {.ok = true}}}); return context; } diff --git a/src/c/client_context.h b/src/c/client_context.h index c07e80fb7804b..2c1f9afe264f5 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -34,34 +34,13 @@ #ifndef GRPC_C_INTERNAL_CLIENT_CONTEXT_H #define GRPC_C_INTERNAL_CLIENT_CONTEXT_H -#include -#include -#include -#include -#include -#include -#include -#include "src/c/message.h" +#include "src/c/context.h" typedef struct grpc_client_context grpc_client_context; struct grpc_client_context { - grpc_metadata *send_metadata_array; - grpc_metadata_array recv_metadata_array; - grpc_metadata_array trailing_metadata_array; - gpr_timespec deadline; - - // serialization mechanism used in this call - grpc_serialization_impl serialization_impl; - - // status of the call - GRPC_status status; - - // state tracking - bool initial_metadata_received; - grpc_method rpc_method; - grpc_channel *channel; - grpc_call *call; + // Anonymous struct emulating inheritance + struct GRPC_C_CONTEXT_BASE_MEMBERS; }; #endif // GRPC_C_INTERNAL_CLIENT_CONTEXT_H diff --git a/src/c/context.h b/src/c/context.h new file mode 100644 index 0000000000000..09eea928bfee5 --- /dev/null +++ b/src/c/context.h @@ -0,0 +1,71 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_INTERNAL_CONTEXT_H +#define GRPC_C_INTERNAL_CONTEXT_H + +#include +#include +#include +#include +#include +#include +#include +#include "src/c/message.h" + +typedef struct grpc_context grpc_context; + +/** + * Both client and server context shares this common stub. + */ +#define GRPC_C_CONTEXT_BASE_MEMBERS { \ + grpc_metadata *send_metadata_array; \ + grpc_metadata_array recv_metadata_array; \ + grpc_metadata_array trailing_metadata_array; \ + gpr_timespec deadline; \ +\ + /* serialization mechanism used in this call */ \ + grpc_serialization_impl serialization_impl; \ +\ + /* status of the call */ \ + GRPC_status status; \ +\ + /* state tracking */ \ + bool initial_metadata_received; \ + grpc_method rpc_method; \ + grpc_channel *channel; \ + grpc_call *call; }; + +struct grpc_context GRPC_C_CONTEXT_BASE_MEMBERS; + +#endif // GRPC_C_INTERNAL_CONTEXT_H diff --git a/src/c/server_context.h b/src/c/server_context.h new file mode 100644 index 0000000000000..1acc3cc7ff9c8 --- /dev/null +++ b/src/c/server_context.h @@ -0,0 +1,46 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_INTERNAL_SERVER_CONTEXT_H +#define GRPC_C_INTERNAL_SERVER_CONTEXT_H + +#include "src/c/context.h" + +typedef struct grpc_server_context grpc_server_context; + +struct grpc_server_context { + // Anonymous struct emulating inheritance + struct GRPC_C_CONTEXT_BASE_MEMBERS; +}; + +#endif // GRPC_C_INTERNAL_SERVER_CONTEXT_H diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 495bc889909e1..6719d4f156454 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4312,6 +4312,7 @@ "include/grpc_c/completion_queue.h", "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", + "include/grpc_c/server.h", "include/grpc_c/status.h", "src/c/alloc.h", "src/c/bidi_streaming_blocking_call.h", @@ -4319,8 +4320,10 @@ "src/c/client_context.h", "src/c/client_streaming_blocking_call.h", "src/c/completion_queue.h", + "src/c/context.h", "src/c/init_shutdown.h", "src/c/message.h", + "src/c/server_context.h", "src/c/server_streaming_blocking_call.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h" @@ -4343,6 +4346,7 @@ "include/grpc_c/completion_queue.h", "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", + "include/grpc_c/server.h", "include/grpc_c/status.h", "src/c/alloc.c", "src/c/alloc.h", @@ -4357,11 +4361,13 @@ "src/c/client_streaming_blocking_call.h", "src/c/completion_queue.c", "src/c/completion_queue.h", + "src/c/context.h", "src/c/init_shutdown.c", "src/c/init_shutdown.h", "src/c/message.c", "src/c/message.h", "src/c/pb_compat.c", + "src/c/server_context.h", "src/c/server_streaming_blocking_call.c", "src/c/server_streaming_blocking_call.h", "src/c/unary_async_call.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index df9c5990dfcd7..dfbbb1c44316a 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -273,6 +273,7 @@ + @@ -282,8 +283,10 @@ + + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index 2e56ed15389e0..e6bb130e53e45 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -87,6 +87,9 @@ include\grpc_c + + include\grpc_c + include\grpc_c @@ -110,12 +113,18 @@ src\c + + src\c + src\c src\c + + src\c + src\c From 36a39cf9cccef424f11753dabc685385dbbf2a4b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 8 Aug 2016 16:41:02 -0700 Subject: [PATCH 169/202] Fix compilation warnings --- BUILD | 1 + CMakeLists.txt | 1 + Makefile | 2 + build.yaml | 1 + src/c/bidi_streaming_blocking_call.c | 22 +++++----- src/c/bidi_streaming_blocking_call.h | 3 +- src/c/call_ops.c | 36 ++++++++-------- src/c/call_ops.h | 14 +++---- src/c/client_context.c | 6 +++ src/c/client_context.h | 2 + src/c/client_streaming_blocking_call.c | 12 +++--- src/c/client_streaming_blocking_call.h | 1 + src/c/server_context.c | 41 +++++++++++++++++++ src/c/server_context.h | 2 + src/c/server_streaming_blocking_call.c | 14 +++---- src/c/server_streaming_blocking_call.h | 1 + src/c/unary_async_call.c | 12 +++--- src/c/unary_async_call.h | 1 + src/c/unary_blocking_call.c | 4 +- src/c/unary_blocking_call.h | 2 + tools/run_tests/sources_and_headers.json | 1 + vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 2 + .../vcxproj/grpc_c/grpc_c.vcxproj.filters | 3 ++ 23 files changed, 125 insertions(+), 59 deletions(-) create mode 100644 src/c/server_context.c diff --git a/BUILD b/BUILD index d75b4103eabaf..e2948cb0759c2 100644 --- a/BUILD +++ b/BUILD @@ -577,6 +577,7 @@ cc_library( "src/c/init_shutdown.c", "src/c/message.c", "src/c/pb_compat.c", + "src/c/server_context.c", "src/c/server_streaming_blocking_call.c", "src/c/unary_async_call.c", "src/c/unary_blocking_call.c", diff --git a/CMakeLists.txt b/CMakeLists.txt index c974222995c48..afa060fbc5489 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -543,6 +543,7 @@ add_library(grpc_c src/c/init_shutdown.c src/c/message.c src/c/pb_compat.c + src/c/server_context.c src/c/server_streaming_blocking_call.c src/c/unary_async_call.c src/c/unary_blocking_call.c diff --git a/Makefile b/Makefile index 1f1097a7c010d..bfe54cb94e553 100644 --- a/Makefile +++ b/Makefile @@ -3047,6 +3047,7 @@ LIBGRPC_C_SRC = \ src/c/init_shutdown.c \ src/c/message.c \ src/c/pb_compat.c \ + src/c/server_context.c \ src/c/server_streaming_blocking_call.c \ src/c/unary_async_call.c \ src/c/unary_blocking_call.c \ @@ -16345,6 +16346,7 @@ src/c/completion_queue.c: $(OPENSSL_DEP) src/c/init_shutdown.c: $(OPENSSL_DEP) src/c/message.c: $(OPENSSL_DEP) src/c/pb_compat.c: $(OPENSSL_DEP) +src/c/server_context.c: $(OPENSSL_DEP) src/c/server_streaming_blocking_call.c: $(OPENSSL_DEP) src/c/unary_async_call.c: $(OPENSSL_DEP) src/c/unary_blocking_call.c: $(OPENSSL_DEP) diff --git a/build.yaml b/build.yaml index 701721a216198..fdce76c409b71 100644 --- a/build.yaml +++ b/build.yaml @@ -881,6 +881,7 @@ libs: - src/c/init_shutdown.c - src/c/message.c - src/c/pb_compat.c + - src/c/server_context.c - src/c/server_streaming_blocking_call.c - src/c/unary_async_call.c - src/c/unary_blocking_call.c diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 26a984d8cdab6..2257080fd682e 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -50,7 +50,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( context->rpc_method = rpc_method; grpc_call_op_set set = { - {grpc_op_send_metadata}, .context = context, .user_tag = &set}; + {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; grpc_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT( grpc_client_reader_writer, { @@ -58,7 +58,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( }); grpc_start_batch_from_op_set(reader_writer->call, &set, - reader_writer->context, (GRPC_message){0, 0}, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(cq, &set); if (!ok) { @@ -72,10 +72,10 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, void *response) { grpc_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, - .context = reader_writer->context, + .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set_meta}; grpc_call_op_set set_no_meta = {{grpc_op_recv_object}, - .context = reader_writer->context, + .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set_no_meta}; grpc_call_op_set *pSet = NULL; if (reader_writer->context->initial_metadata_received == false) { @@ -85,7 +85,7 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, } grpc_start_batch_from_op_set(reader_writer->call, pSet, - reader_writer->context, (GRPC_message){0, 0}, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, response); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, pSet); reader_writer->context->status.ok &= ok; @@ -95,11 +95,11 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, bool GRPC_bidi_streaming_blocking_write( GRPC_client_reader_writer *reader_writer, const GRPC_message request) { grpc_call_op_set set = {{grpc_op_send_object}, - .context = reader_writer->context, + .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set}; grpc_start_batch_from_op_set(reader_writer->call, &set, - reader_writer->context, request, NULL); + GRPC_client_context_to_base(reader_writer->context), request, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); reader_writer->context->status.ok &= ok; return ok; @@ -108,11 +108,11 @@ bool GRPC_bidi_streaming_blocking_write( bool GRPC_bidi_streaming_blocking_writes_done( GRPC_client_reader_writer *reader_writer) { grpc_call_op_set set = {{grpc_op_send_close}, - .context = reader_writer->context, + .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set}; grpc_start_batch_from_op_set(reader_writer->call, &set, - reader_writer->context, (GRPC_message){0, 0}, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, (&set)); reader_writer->context->status.ok &= ok; @@ -122,10 +122,10 @@ bool GRPC_bidi_streaming_blocking_writes_done( GRPC_status GRPC_client_reader_writer_terminate( GRPC_client_reader_writer *reader_writer) { grpc_call_op_set set = {{grpc_op_client_recv_status}, - .context = reader_writer->context, + .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set}; grpc_start_batch_from_op_set(reader_writer->call, &set, - reader_writer->context, (GRPC_message){0, 0}, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); GRPC_completion_queue_shutdown(reader_writer->cq); diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index eae1e5c9078b0..a7345f03cde3a 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -35,10 +35,11 @@ #define GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H #include +#include "src/c/client_context.h" #include "src/c/call_ops.h" typedef struct grpc_client_reader_writer { - grpc_client_context *context; + grpc_client_context *const context; grpc_call *call; grpc_completion_queue *cq; } grpc_client_reader_writer; diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 157fbfaa8a803..a5fd8e9a54178 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -34,11 +34,9 @@ #include "src/c/call_ops.h" #include #include -#include -#include static bool op_send_metadata_fill(grpc_op *op, - grpc_client_context *context, + grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; @@ -48,7 +46,7 @@ static bool op_send_metadata_fill(grpc_op *op, return true; } -static void op_send_metadata_finish(grpc_client_context *context, +static void op_send_metadata_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -56,7 +54,7 @@ const grpc_op_manager grpc_op_send_metadata = {op_send_metadata_fill, op_send_metadata_finish}; static bool op_send_object_fill(grpc_op *op, - grpc_client_context *context, + grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_MESSAGE; @@ -76,7 +74,7 @@ static bool op_send_object_fill(grpc_op *op, return true; } -static void op_send_object_finish(grpc_client_context *context, +static void op_send_object_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { if (set->send_buffer) @@ -87,7 +85,7 @@ const grpc_op_manager grpc_op_send_object = {op_send_object_fill, op_send_object_finish}; static bool op_recv_metadata_fill(grpc_op *op, - grpc_client_context *context, + grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { if (context->initial_metadata_received) return false; @@ -99,7 +97,7 @@ static bool op_recv_metadata_fill(grpc_op *op, return true; } -static void op_recv_metadata_finish(grpc_client_context *context, +static void op_recv_metadata_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { context->initial_metadata_received = true; @@ -109,7 +107,7 @@ const grpc_op_manager grpc_op_recv_metadata = {op_recv_metadata_fill, op_recv_metadata_finish}; static bool op_recv_object_fill(grpc_op *op, - grpc_client_context *context, + grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { set->message_received = false; @@ -122,7 +120,7 @@ static bool op_recv_object_fill(grpc_op *op, return true; } -static void op_recv_object_finish(grpc_client_context *context, +static void op_recv_object_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { if (set->recv_buffer) { @@ -150,7 +148,7 @@ const grpc_op_manager grpc_op_recv_object = {op_recv_object_fill, op_recv_object_finish}; static bool op_send_close_fill(grpc_op *op, - grpc_client_context *context, + grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; @@ -159,7 +157,7 @@ static bool op_send_close_fill(grpc_op *op, return true; } -static void op_send_close_finish(grpc_client_context *context, +static void op_send_close_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -167,7 +165,7 @@ const grpc_op_manager grpc_op_send_close = {op_send_close_fill, op_send_close_finish}; static bool op_client_recv_status_fill(grpc_op *op, - grpc_client_context *context, + grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; @@ -186,7 +184,7 @@ static bool op_client_recv_status_fill(grpc_op *op, return true; } -static void op_client_recv_status_finish(grpc_client_context *context, +static void op_client_recv_status_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -194,7 +192,7 @@ const grpc_op_manager grpc_op_client_recv_status = {op_client_recv_status_fill, op_client_recv_status_finish}; static bool op_server_send_status_fill(grpc_op *op, - grpc_client_context *context, + grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; @@ -207,7 +205,7 @@ static bool op_server_send_status_fill(grpc_op *op, return true; } -static void op_server_send_status_finish(grpc_client_context *context, +static void op_server_send_status_finish(grpc_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -215,7 +213,7 @@ const grpc_op_manager grpc_op_server_send_status = {op_server_send_status_fill, op_server_send_status_finish}; void grpc_fill_op_from_call_set(grpc_call_op_set *set, - grpc_client_context *context, + grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops) { size_t manager = 0; @@ -234,7 +232,7 @@ void grpc_fill_op_from_call_set(grpc_call_op_set *set, } bool grpc_finish_op_from_call_set(grpc_call_op_set *set, - grpc_client_context *context) { + grpc_context *context) { size_t count = 0; bool allStatus = true; while (count < GRPC_MAX_OP_COUNT) { @@ -252,7 +250,7 @@ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, } void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, - grpc_client_context *context, + grpc_context *context, const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; diff --git a/src/c/call_ops.h b/src/c/call_ops.h index c0f5f2d50467d..45b171bb6c6fa 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -38,15 +38,15 @@ #include #include #include -#include "src/c/client_context.h" +#include "src/c/context.h" #include "src/c/message.h" typedef struct grpc_call_op_set grpc_call_op_set; typedef bool (*grpc_op_filler)(grpc_op *op, - grpc_client_context *, grpc_call_op_set *, + grpc_context *, grpc_call_op_set *, const grpc_message message, void *response); -typedef void (*grpc_op_finisher)(grpc_client_context *, grpc_call_op_set *, +typedef void (*grpc_op_finisher)(grpc_context *, grpc_call_op_set *, bool *status, int max_message_size); typedef struct grpc_op_manager { @@ -63,7 +63,7 @@ typedef struct grpc_closure { struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; - grpc_client_context *const context; + grpc_context *const context; /* these are used by individual operations */ void *response; @@ -85,17 +85,17 @@ struct grpc_call_op_set { }; void grpc_fill_op_from_call_set(grpc_call_op_set *set, - grpc_client_context *context, + grpc_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops); /* Runs post processing steps in the call op set. Returns false if something * wrong happens e.g. serialization. */ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, - grpc_client_context *context); + grpc_context *context); void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, - grpc_client_context *context, + grpc_context *context, const grpc_message message, void *response); /* list of operations */ diff --git a/src/c/client_context.c b/src/c/client_context.c index 864c3fad7c20e..dfd162171b6dc 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -67,3 +67,9 @@ void GRPC_client_context_set_serialization_impl( GRPC_client_context *context, grpc_serialization_impl serialization_impl) { context->serialization_impl = serialization_impl; } + +// We define a conversion function instead of type-casting, which lets the user convert +// from any pointer to a grpc_context. +grpc_context *GRPC_client_context_to_base(grpc_client_context *client_context) { + return (grpc_context *) client_context; +} diff --git a/src/c/client_context.h b/src/c/client_context.h index 2c1f9afe264f5..dff63f20a6293 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -43,4 +43,6 @@ struct grpc_client_context { struct GRPC_C_CONTEXT_BASE_MEMBERS; }; +grpc_context *GRPC_client_context_to_base(grpc_client_context *client_context); + #endif // GRPC_C_INTERNAL_CLIENT_CONTEXT_H diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 9e591d4dfe5c8..edac756cda727 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -50,7 +50,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call( context->rpc_method = rpc_method; grpc_call_op_set set = { - {grpc_op_send_metadata}, .context = context, .user_tag = &set}; + {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; grpc_client_writer *writer = GRPC_ALLOC_STRUCT( grpc_client_writer, {.context = context, @@ -59,13 +59,13 @@ grpc_client_writer *GRPC_client_streaming_blocking_call( { {grpc_op_recv_metadata, grpc_op_recv_object, grpc_op_send_close, grpc_op_client_recv_status}, - .context = context, + .context = GRPC_client_context_to_base(context) }, .cq = cq, .response = response}); writer->finish_ops.user_tag = &writer->finish_ops; - grpc_start_batch_from_op_set(writer->call, &set, writer->context, + grpc_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), (GRPC_message){0, 0}, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return writer; @@ -74,16 +74,16 @@ grpc_client_writer *GRPC_client_streaming_blocking_call( bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, const GRPC_message request) { grpc_call_op_set set = { - {grpc_op_send_object}, .context = writer->context, .user_tag = &set}; + {grpc_op_send_object}, .context = GRPC_client_context_to_base(writer->context), .user_tag = &set}; - grpc_start_batch_from_op_set(writer->call, &set, writer->context, request, + grpc_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), request, NULL); return GRPC_completion_queue_pluck_internal(writer->cq, &set); } GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, - writer->context, (GRPC_message){0, 0}, + GRPC_client_context_to_base(writer->context), (GRPC_message){0, 0}, writer->response); GRPC_completion_queue_pluck_internal(writer->cq, &writer->finish_ops); GRPC_completion_queue_shutdown(writer->cq); diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index b16ecd5185358..3a0c0ce287fb1 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -36,6 +36,7 @@ #include #include "src/c/call_ops.h" +#include "src/c/client_context.h" typedef struct grpc_client_writer { grpc_call_op_set finish_ops; diff --git a/src/c/server_context.c b/src/c/server_context.c new file mode 100644 index 0000000000000..e959d6cf8820a --- /dev/null +++ b/src/c/server_context.c @@ -0,0 +1,41 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/c/server_context.h" + +// We define a conversion function instead of type-casting, which lets the user convert +// from any pointer to a grpc_context. +grpc_context *GRPC_server_context_to_base(grpc_server_context *server_context) { + return (grpc_context *) server_context; +} + diff --git a/src/c/server_context.h b/src/c/server_context.h index 1acc3cc7ff9c8..9242532bc3d23 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -43,4 +43,6 @@ struct grpc_server_context { struct GRPC_C_CONTEXT_BASE_MEMBERS; }; +grpc_context *GRPC_server_context_to_base(grpc_server_context *server_context); + #endif // GRPC_C_INTERNAL_SERVER_CONTEXT_H diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 63763c23e51eb..e6b9b6411e6d5 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -53,7 +53,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( grpc_call_op_set set = { {grpc_op_send_metadata, grpc_op_send_object, grpc_op_send_close}, - .context = context, + .context = GRPC_client_context_to_base(context), .user_tag = &set}; grpc_client_reader *reader = GRPC_ALLOC_STRUCT( @@ -61,7 +61,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( .context = context, .call = call, .cq = cq, }); - grpc_start_batch_from_op_set(reader->call, &set, reader->context, request, + grpc_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), request, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return reader; @@ -70,10 +70,10 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *response) { grpc_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, - .context = reader->context, + .context = GRPC_client_context_to_base(reader->context), .user_tag = &set_meta}; grpc_call_op_set set_no_meta = {{grpc_op_recv_object}, - .context = reader->context, + .context = GRPC_client_context_to_base(reader->context), .user_tag = &set_no_meta}; grpc_call_op_set *pSet = NULL; if (reader->context->initial_metadata_received == false) { @@ -82,7 +82,7 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader->call, pSet, reader->context, + grpc_start_batch_from_op_set(reader->call, pSet, GRPC_client_context_to_base(reader->context), (GRPC_message){0, 0}, response); return GRPC_completion_queue_pluck_internal(reader->cq, pSet) && pSet->message_received; @@ -90,8 +90,8 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { grpc_call_op_set set = { - {grpc_op_client_recv_status}, .context = reader->context, .user_tag = &set}; - grpc_start_batch_from_op_set(reader->call, &set, reader->context, + {grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(reader->context), .user_tag = &set}; + grpc_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), (GRPC_message){0, 0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, &set); GRPC_completion_queue_shutdown(reader->cq); diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 4653ab47eceda..9b1bcfd03bda6 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -36,6 +36,7 @@ #include #include "src/c/call_ops.h" +#include "src/c/client_context.h" typedef struct grpc_client_reader { grpc_client_context *context; diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index e5750761af7f7..d473d15dae429 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -57,15 +57,15 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( .call = call, .init_buf = {{grpc_op_send_metadata, grpc_op_send_object, grpc_op_send_close}, - .context = context, + .context = GRPC_client_context_to_base(context), .response = NULL, .hide_from_user = true}, .meta_buf = {{grpc_op_recv_metadata}, - .context = context, + .context = GRPC_client_context_to_base(context), .response = NULL}, .finish_buf = { {grpc_op_recv_metadata, grpc_op_recv_object, grpc_op_client_recv_status}, - .context = context, + .context = GRPC_client_context_to_base(context), .response = NULL, }}); @@ -74,7 +74,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( reader->finish_buf.async_cleanup = (grpc_closure){.arg = reader, .callback = free_reader_and_call}; - grpc_start_batch_from_op_set(reader->call, &reader->init_buf, reader->context, + grpc_start_batch_from_op_set(reader->call, &reader->init_buf, GRPC_client_context_to_base(reader->context), request, NULL); return reader; } @@ -82,7 +82,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { reader->meta_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, reader->context, + grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, GRPC_client_context_to_base(reader->context), (GRPC_message){0, 0}, NULL); } @@ -90,5 +90,5 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag) { reader->finish_buf.user_tag = tag; grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, - reader->context, (GRPC_message){0, 0}, response); + GRPC_client_context_to_base(reader->context), (GRPC_message){0, 0}, response); } diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index 5121583764a8c..27df15b8cd8bd 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -35,6 +35,7 @@ #define GRPC_C_INTERNAL_CLIENT_ASYNC_READER_H #include "src/c/call_ops.h" +#include "src/c/client_context.h" typedef struct grpc_client_async_response_reader { grpc_call_op_set init_buf; diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 13086c3332540..f1a7cbce2c543 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -52,10 +52,10 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, grpc_call_op_set set = { {grpc_op_send_metadata, grpc_op_recv_metadata, grpc_op_send_object, grpc_op_recv_object, grpc_op_send_close, grpc_op_client_recv_status}, - .context = context, + .context = GRPC_client_context_to_base(context), .user_tag = &set}; - grpc_start_batch_from_op_set(call, &set, context, message, response); + grpc_start_batch_from_op_set(call, &set, GRPC_client_context_to_base(context), message, response); for (;;) { void *tag; bool ok; diff --git a/src/c/unary_blocking_call.h b/src/c/unary_blocking_call.h index f3131212b685c..43a9d4f8dc59b 100644 --- a/src/c/unary_blocking_call.h +++ b/src/c/unary_blocking_call.h @@ -34,4 +34,6 @@ #ifndef GRPC_C_INTERNAL_UNARY_BLOCKING_CALL_H #define GRPC_C_INTERNAL_UNARY_BLOCKING_CALL_H +#include "src/c/client_context.h" + #endif // GRPC_C_INTERNAL_UNARY_BLOCKING_CALL_H diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 6719d4f156454..f04d85c445d60 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4367,6 +4367,7 @@ "src/c/message.c", "src/c/message.h", "src/c/pb_compat.c", + "src/c/server_context.c", "src/c/server_context.h", "src/c/server_streaming_blocking_call.c", "src/c/server_streaming_blocking_call.h", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index dfbbb1c44316a..1da426f4d847e 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -312,6 +312,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index e6bb130e53e45..58029c934c580 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -31,6 +31,9 @@ src\c + + src\c + src\c From f5aa1c14ddfae1e12c72971c6a31eb0e1440be43 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 8 Aug 2016 17:00:04 -0700 Subject: [PATCH 170/202] ditch non-standard usage of C --- src/c/client_context.c | 4 ++-- src/c/client_context.h | 4 ++-- src/c/context.h | 8 +++++--- src/c/server_context.h | 3 +-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/c/client_context.c b/src/c/client_context.c index dfd162171b6dc..aa8cdc2a8d99a 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -40,10 +40,10 @@ grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { grpc_client_context *context = GRPC_ALLOC_STRUCT( grpc_client_context, - {{.deadline = gpr_inf_future(GPR_CLOCK_REALTIME), + {.deadline = gpr_inf_future(GPR_CLOCK_REALTIME), .channel = chan, .serialization_impl = {.serialize = NULL, .deserialize = NULL}, - .status = {.ok = true}}}); + .status = {.ok = true}}); return context; } diff --git a/src/c/client_context.h b/src/c/client_context.h index dff63f20a6293..2ee2a0a0c35a3 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -39,8 +39,8 @@ typedef struct grpc_client_context grpc_client_context; struct grpc_client_context { - // Anonymous struct emulating inheritance - struct GRPC_C_CONTEXT_BASE_MEMBERS; + // Emulating inheritance + GRPC_C_CONTEXT_BASE_MEMBERS; }; grpc_context *GRPC_client_context_to_base(grpc_client_context *client_context); diff --git a/src/c/context.h b/src/c/context.h index 09eea928bfee5..f02fbcd3cb2ac 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -48,7 +48,7 @@ typedef struct grpc_context grpc_context; /** * Both client and server context shares this common stub. */ -#define GRPC_C_CONTEXT_BASE_MEMBERS { \ +#define GRPC_C_CONTEXT_BASE_MEMBERS \ grpc_metadata *send_metadata_array; \ grpc_metadata_array recv_metadata_array; \ grpc_metadata_array trailing_metadata_array; \ @@ -64,8 +64,10 @@ typedef struct grpc_context grpc_context; bool initial_metadata_received; \ grpc_method rpc_method; \ grpc_channel *channel; \ - grpc_call *call; }; + grpc_call *call; -struct grpc_context GRPC_C_CONTEXT_BASE_MEMBERS; +struct grpc_context { + GRPC_C_CONTEXT_BASE_MEMBERS; +}; #endif // GRPC_C_INTERNAL_CONTEXT_H diff --git a/src/c/server_context.h b/src/c/server_context.h index 9242532bc3d23..05d37424684f8 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -39,8 +39,7 @@ typedef struct grpc_server_context grpc_server_context; struct grpc_server_context { - // Anonymous struct emulating inheritance - struct GRPC_C_CONTEXT_BASE_MEMBERS; + GRPC_C_CONTEXT_BASE_MEMBERS; }; grpc_context *GRPC_server_context_to_base(grpc_server_context *server_context); From ab2571bb6ce3453006c2cde74abc0cbf052d1036 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 8 Aug 2016 18:12:18 -0700 Subject: [PATCH 171/202] [wip] unary async server --- src/c/bidi_streaming_blocking_call.c | 2 +- src/c/call_ops.c | 62 ++++++++++++++++++-------- src/c/call_ops.h | 3 +- src/c/client_context.h | 5 +++ src/c/client_streaming_blocking_call.c | 2 +- src/c/context.h | 4 -- src/c/server_context.h | 6 +++ src/c/server_streaming_blocking_call.c | 2 +- src/c/unary_async_call.c | 14 ++++-- src/c/unary_async_call.h | 18 ++++++-- src/c/unary_blocking_call.c | 2 +- 11 files changed, 86 insertions(+), 34 deletions(-) diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 2257080fd682e..72a62e09febe1 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -107,7 +107,7 @@ bool GRPC_bidi_streaming_blocking_write( bool GRPC_bidi_streaming_blocking_writes_done( GRPC_client_reader_writer *reader_writer) { - grpc_call_op_set set = {{grpc_op_send_close}, + grpc_call_op_set set = {{grpc_op_client_send_close}, .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set}; diff --git a/src/c/call_ops.c b/src/c/call_ops.c index a5fd8e9a54178..5f6adc01dd3f7 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -32,8 +32,11 @@ */ #include "src/c/call_ops.h" +#include "src/c/client_context.h" +#include "src/c/server_context.h" #include #include +#include static bool op_send_metadata_fill(grpc_op *op, grpc_context *context, @@ -147,38 +150,57 @@ static void op_recv_object_finish(grpc_context *context, const grpc_op_manager grpc_op_recv_object = {op_recv_object_fill, op_recv_object_finish}; -static bool op_send_close_fill(grpc_op *op, - grpc_context *context, - grpc_call_op_set *set, - const grpc_message message, void *response) { +static bool op_client_send_close_fill(grpc_op *op, + grpc_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; return true; } -static void op_send_close_finish(grpc_context *context, - grpc_call_op_set *set, bool *status, - int max_message_size) {} +static void op_client_send_close_finish(grpc_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} -const grpc_op_manager grpc_op_send_close = {op_send_close_fill, - op_send_close_finish}; +const grpc_op_manager grpc_op_client_send_close = {op_client_send_close_fill, + op_client_send_close_finish}; + +static bool op_server_recv_close_fill(grpc_op *op, + grpc_context *context, + grpc_call_op_set *set, + const grpc_message message, void *response) { + op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; + op->flags = 0; + op->reserved = NULL; + return true; +} + +static void op_server_recv_close_finish(grpc_context *context, + grpc_call_op_set *set, bool *status, + int max_message_size) {} + +const grpc_op_manager grpc_op_server_recv_close = {op_server_recv_close_fill, + op_server_recv_close_finish}; static bool op_client_recv_status_fill(grpc_op *op, grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; - grpc_metadata_array_init(&context->trailing_metadata_array); - context->status.details = NULL; - context->status.details_length = 0; + + grpc_client_context *client_context = (grpc_client_context *) context; + grpc_metadata_array_init(&client_context->recv_trailing_metadata_array); + client_context->status.details = NULL; + client_context->status.details_length = 0; op->data.recv_status_on_client.trailing_metadata = - &context->trailing_metadata_array; - op->data.recv_status_on_client.status = &context->status.code; - op->data.recv_status_on_client.status_details = &context->status.details; + &client_context->recv_trailing_metadata_array; + op->data.recv_status_on_client.status = &client_context->status.code; + op->data.recv_status_on_client.status_details = &client_context->status.details; op->data.recv_status_on_client.status_details_capacity = - &context->status.details_length; + &client_context->status.details_length; op->flags = 0; op->reserved = NULL; return true; @@ -195,10 +217,12 @@ static bool op_server_send_status_fill(grpc_op *op, grpc_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { + // TODO(yifeit): hook up to server handlers + grpc_server_context *server_context = (grpc_server_context *) context; op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; - op->data.send_status_from_server.trailing_metadata_count = 0; - op->data.send_status_from_server.trailing_metadata = NULL; - op->data.send_status_from_server.status = context->status.code; + op->data.send_status_from_server.trailing_metadata_count = server_context->send_trailing_metadata_array.count; + op->data.send_status_from_server.trailing_metadata = server_context->send_trailing_metadata_array.metadata; + op->data.send_status_from_server.status = server_context->server_return_status; op->data.send_status_from_server.status_details = NULL; op->flags = 0; op->reserved = NULL; diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 45b171bb6c6fa..c73fb437fa27a 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -104,8 +104,9 @@ extern const grpc_op_manager grpc_op_send_metadata; extern const grpc_op_manager grpc_op_recv_metadata; extern const grpc_op_manager grpc_op_send_object; extern const grpc_op_manager grpc_op_recv_object; -extern const grpc_op_manager grpc_op_send_close; +extern const grpc_op_manager grpc_op_client_send_close; extern const grpc_op_manager grpc_op_client_recv_status; +extern const grpc_op_manager grpc_op_server_recv_close; extern const grpc_op_manager grpc_op_server_send_status; #endif /* GRPC_C_INTERNAL_CALL_OPS_H */ diff --git a/src/c/client_context.h b/src/c/client_context.h index 2ee2a0a0c35a3..634840d0104ef 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -41,6 +41,11 @@ typedef struct grpc_client_context grpc_client_context; struct grpc_client_context { // Emulating inheritance GRPC_C_CONTEXT_BASE_MEMBERS; + + // client-side specific + grpc_metadata_array recv_trailing_metadata_array; + // status of the call + GRPC_status status; }; grpc_context *GRPC_client_context_to_base(grpc_client_context *client_context); diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index edac756cda727..6cb5ce2ebed62 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -58,7 +58,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call( .finish_ops = { {grpc_op_recv_metadata, grpc_op_recv_object, - grpc_op_send_close, grpc_op_client_recv_status}, + grpc_op_client_send_close, grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(context) }, .cq = cq, diff --git a/src/c/context.h b/src/c/context.h index f02fbcd3cb2ac..2f2b3304addc3 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -51,14 +51,10 @@ typedef struct grpc_context grpc_context; #define GRPC_C_CONTEXT_BASE_MEMBERS \ grpc_metadata *send_metadata_array; \ grpc_metadata_array recv_metadata_array; \ - grpc_metadata_array trailing_metadata_array; \ gpr_timespec deadline; \ \ /* serialization mechanism used in this call */ \ grpc_serialization_impl serialization_impl; \ -\ - /* status of the call */ \ - GRPC_status status; \ \ /* state tracking */ \ bool initial_metadata_received; \ diff --git a/src/c/server_context.h b/src/c/server_context.h index 05d37424684f8..35648b1ded2ed 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -40,6 +40,12 @@ typedef struct grpc_server_context grpc_server_context; struct grpc_server_context { GRPC_C_CONTEXT_BASE_MEMBERS; + + // server-side specific + // trailing metadata + grpc_metadata_array send_trailing_metadata_array; + // status code to be sent to the client + grpc_status_code server_return_status; }; grpc_context *GRPC_server_context_to_base(grpc_server_context *server_context); diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index e6b9b6411e6d5..0a53a24effa4d 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -52,7 +52,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( context->rpc_method = rpc_method; grpc_call_op_set set = { - {grpc_op_send_metadata, grpc_op_send_object, grpc_op_send_close}, + {grpc_op_send_metadata, grpc_op_send_object, grpc_op_client_send_close}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index d473d15dae429..cc5a0f82247be 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -38,7 +38,11 @@ #include #include "src/c/alloc.h" -static void free_reader_and_call(void *arg) { +// +// Client +// + +static void free_client_reader_and_call(void *arg) { GRPC_client_async_response_reader *reader = arg; gpr_free(reader); } @@ -56,7 +60,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( {.context = context, .call = call, .init_buf = {{grpc_op_send_metadata, grpc_op_send_object, - grpc_op_send_close}, + grpc_op_client_send_close}, .context = GRPC_client_context_to_base(context), .response = NULL, .hide_from_user = true}, @@ -72,7 +76,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( // Different from blocking call, we need to inform completion queue to run // cleanup for us reader->finish_buf.async_cleanup = - (grpc_closure){.arg = reader, .callback = free_reader_and_call}; + (grpc_closure){.arg = reader, .callback = free_client_reader_and_call}; grpc_start_batch_from_op_set(reader->call, &reader->init_buf, GRPC_client_context_to_base(reader->context), request, NULL); @@ -92,3 +96,7 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, GRPC_client_context_to_base(reader->context), (GRPC_message){0, 0}, response); } + +// +// Server +// diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index 27df15b8cd8bd..ff88e0aa3bf94 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -31,11 +31,12 @@ * */ -#ifndef GRPC_C_INTERNAL_CLIENT_ASYNC_READER_H -#define GRPC_C_INTERNAL_CLIENT_ASYNC_READER_H +#ifndef GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H +#define GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H #include "src/c/call_ops.h" #include "src/c/client_context.h" +#include "src/c/server_context.h" typedef struct grpc_client_async_response_reader { grpc_call_op_set init_buf; @@ -47,4 +48,15 @@ typedef struct grpc_client_async_response_reader { grpc_call *call; } grpc_client_async_response_reader; -#endif // GRPC_C_INTERNAL_CLIENT_ASYNC_READER_H +typedef struct grpc_server_async_response_writer { + grpc_call_op_set init_buf; + grpc_call_op_set meta_buf; + grpc_call_op_set finish_buf; + + grpc_completion_queue *cq; + grpc_server_context *context; + grpc_call *call; +} grpc_server_async_response_writer; + + +#endif // GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index f1a7cbce2c543..61b8069494f8d 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -51,7 +51,7 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, context->call = call; grpc_call_op_set set = { {grpc_op_send_metadata, grpc_op_recv_metadata, grpc_op_send_object, - grpc_op_recv_object, grpc_op_send_close, grpc_op_client_recv_status}, + grpc_op_recv_object, grpc_op_client_send_close, grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; From 97471c1e00b2060278328d6df83963f4bbc0ab5f Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 9 Aug 2016 13:56:21 -0700 Subject: [PATCH 172/202] ignore nanopb generated files in clang-format --- .../dockerfile/grpc_clang_format/clang_format_all_the_things.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh index 462c65ab5e9be..fae0d83e1d4b8 100755 --- a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh +++ b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh @@ -44,7 +44,7 @@ for dir in $DIRS do for glob in $GLOB do - files="$files `find /local-code/$dir -name $glob -and -not -name *.generated.* -and -not -name *.pb.h -and -not -name *.pb.c -and -not -name *.pb.cc`" + files="$files `find /local-code/$dir -name $glob -and -not -name *.generated.* -and -not -name *.pb.h -and -not -name *.pb.c -and -not -name *.pb.cc -and -not -name *.pbc.h -and -not -name *.pbc.c`" done done From 9fc0dc9fc0d54ec7c10a25b5ba5fbae9ebcd841d Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 9 Aug 2016 17:34:26 -0700 Subject: [PATCH 173/202] add server C API mock example --- examples/c/helloworld/greeter_async_server.c | 77 ++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index 19b49b79e5575..682fd508ce525 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include "helloworld.grpc.pbc.h" @@ -69,6 +70,82 @@ static bool read_string_store_in_arg(pb_istream_t *stream, return true; } +typedef struct async_server_data { + GRPC_server_context *context; + helloworld_HelloRequest request; + helloworld_HelloReply reply; +} async_server_data; + int main(int argc, char **argv) { + GRPC_server *server = GRPC_build_server({ + .async_services = { helloworld_Greeter_Service, NULL } + }); + GRPC_incoming_notification_queue incoming = + GRPC_server_new_notification_queue(server); + GRPC_server_start(server); + // Run server + for (;;) { + async_server_data *data = calloc(sizeof(async_server_data)); + data->context = GRPC_server_context_create(); + data->request.name.funcs.decode = read_string_store_in_arg; + data->response.message.funcs.encode = write_string_from_arg; + + // Listen for this method + helloworld_Greeter_SayHello_ServerRequest( + &data->context, + &data->request, + &data->response, + incoming, // incoming queue + incoming.cq, // processing queue + data + ); + + // Wait for incoming call + void *tag; + bool ok; + GRPC_completion_queue_operation_status queue_status = + GRPC_completion_queue_next(incoming.cq, &tag, &ok); + + if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; + assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); + assert(ok); + + // Process the request + { + async_server_data *data = (async_server_data *) tag; + char *input_str = data->request.name.arg; + size_t output_len = strlen(input_str) + 6; + char *output_str = malloc(output_len + 1); + sprintf(output_str, "Hello %s", input_str); + data->reply.message.arg = output_str; + + helloworld_Greeter_SayHello_ServerFinish( + &data->context, + &data->reply, + GRPC_STATUS_OK, + data + ); + } + + // Wait for request termination + GRPC_completion_queue_operation_status queue_status = + GRPC_completion_queue_next(incoming.cq, &tag, &ok); + + if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; + assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); + assert(ok); + + // Clean up + { + async_server_data *data = (async_server_data *) tag; + free(data->request.name.arg); + free(data->reply.message.arg); + GRPC_server_context_destroy(data->context); + free(data); + } + } + GRPC_completion_queue_destroy(cq); + GRPC_server_shutdown(server); + GRPC_server_destroy(server); return 0; } From 97f12ed034cd5939bf6f3b5d834a42a7e91501f1 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 10 Aug 2016 14:41:03 -0700 Subject: [PATCH 174/202] [wip] server data structures --- include/grpc_c/grpc_c.h | 24 +++++++----- include/grpc_c/server.h | 12 ++++++ include/grpc_c/server_context.h | 43 +++++++++++++++++++++ include/grpc_c/server_incoming_queue.h | 45 ++++++++++++++++++++++ src/c/bidi_streaming_blocking_call.c | 4 +- src/c/bidi_streaming_blocking_call.h | 4 +- src/c/call_ops.c | 42 ++++++++++----------- src/c/call_ops.h | 12 +++--- src/c/client_context.c | 8 ++-- src/c/client_context.h | 6 +-- src/c/client_streaming_blocking_call.c | 10 ++--- src/c/client_streaming_blocking_call.h | 4 +- src/c/context.h | 4 +- src/c/server.c | 48 ++++++++++++++++++++++++ src/c/server.h | 52 ++++++++++++++++++++++++++ src/c/server_context.c | 16 ++++++-- src/c/server_context.h | 7 ++-- src/c/server_incoming_queue.c | 45 ++++++++++++++++++++++ src/c/server_incoming_queue.h | 43 +++++++++++++++++++++ src/c/server_streaming_blocking_call.c | 4 +- src/c/server_streaming_blocking_call.h | 4 +- src/c/unary_async_call.h | 6 +-- 22 files changed, 372 insertions(+), 71 deletions(-) create mode 100644 include/grpc_c/server_context.h create mode 100644 include/grpc_c/server_incoming_queue.h create mode 100644 src/c/server.c create mode 100644 src/c/server.h create mode 100644 src/c/server_incoming_queue.c create mode 100644 src/c/server_incoming_queue.h diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 3a3be4d823ea3..1db03065c535b 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -34,17 +34,21 @@ #ifndef GRPC_C_GRPC_C_H #define GRPC_C_GRPC_C_H -typedef struct grpc_channel GRPC_channel; -typedef struct grpc_client_context GRPC_client_context; -typedef struct grpc_completion_queue GRPC_completion_queue; +typedef struct grpc_channel GRPC_channel; /* using core data type */ +typedef struct GRPC_context GRPC_context; /* base class for client and server context */ +typedef struct GRPC_client_context GRPC_client_context; +typedef struct GRPC_server_context GRPC_server_context; +typedef struct grpc_completion_queue GRPC_completion_queue; /* using core data type */ +typedef struct GRPC_incoming_notification_queue GRPC_incoming_notification_queue; +typedef struct GRPC_server GRPC_server; -typedef struct grpc_client_reader_writer GRPC_client_reader_writer; -typedef struct grpc_client_reader GRPC_client_reader; -typedef struct grpc_client_writer GRPC_client_writer; -typedef struct grpc_client_async_reader_writer GRPC_client_async_reader_writer; -typedef struct grpc_client_async_reader GRPC_client_async_reader; -typedef struct grpc_client_async_writer GRPC_client_async_writer; -typedef struct grpc_client_async_response_reader +typedef struct GRPC_client_reader_writer GRPC_client_reader_writer; +typedef struct GRPC_client_reader GRPC_client_reader; +typedef struct GRPC_client_writer GRPC_client_writer; +typedef struct GRPC_client_async_reader_writer GRPC_client_async_reader_writer; +typedef struct GRPC_client_async_reader GRPC_client_async_reader; +typedef struct GRPC_client_async_writer GRPC_client_async_writer; +typedef struct GRPC_client_async_response_reader GRPC_client_async_response_reader; #endif /* GRPC_C_GRPC_C_H */ diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h index d3492fd3543ae..622c3d67ab13e 100644 --- a/include/grpc_c/server.h +++ b/include/grpc_c/server.h @@ -34,4 +34,16 @@ #ifndef GRPC_C_SERVER_H #define GRPC_C_SERVER_H +#include + +typedef struct GRPC_service_definition { +} GRPC_service_definition; + +typedef struct GRPC_build_server_options { + GRPC_service_definition *async_services; +} GRPC_build_server_options; + +GRPC_server *GRPC_build_server(GRPC_build_server_options options); +void GRPC_server_start(GRPC_server *server); + #endif /* GRPC_C_SERVER_H */ diff --git a/include/grpc_c/server_context.h b/include/grpc_c/server_context.h new file mode 100644 index 0000000000000..e2b730cdf4a46 --- /dev/null +++ b/include/grpc_c/server_context.h @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_SERVER_CONTEXT_H +#define GRPC_C_SERVER_CONTEXT_H + +#include + +GRPC_server_context *GRPC_server_context_create(); + +GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context); + +#endif /* GRPC_C_SERVER_CONTEXT_H */ diff --git a/include/grpc_c/server_incoming_queue.h b/include/grpc_c/server_incoming_queue.h new file mode 100644 index 0000000000000..e8020c495f25b --- /dev/null +++ b/include/grpc_c/server_incoming_queue.h @@ -0,0 +1,45 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_SERVER_INCOMING_QUEUE_H +#define GRPC_C_SERVER_INCOMING_QUEUE_H + +#include + +typedef struct GRPC_incoming_notification_queue grpc_incoming_notification_queue; + +struct GRPC_incoming_notification_queue { + GRPC_completion_queue *cq; +}; + +#endif /* GRPC_C_SERVER_INCOMING_QUEUE_H */ diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 72a62e09febe1..68f6c3d08429b 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -52,7 +52,7 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( grpc_call_op_set set = { {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; - grpc_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT( + GRPC_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT( grpc_client_reader_writer, { .context = context, .call = call, .cq = cq, }); @@ -133,7 +133,7 @@ GRPC_status GRPC_client_reader_writer_terminate( GRPC_completion_queue_destroy(reader_writer->cq); grpc_call_destroy(reader_writer->call); reader_writer->context->call = NULL; - grpc_client_context *context = reader_writer->context; + GRPC_client_context *context = reader_writer->context; gpr_free(reader_writer); context->status.ok &= ok; return context->status; diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index a7345f03cde3a..ea70bc63bac49 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -38,8 +38,8 @@ #include "src/c/client_context.h" #include "src/c/call_ops.h" -typedef struct grpc_client_reader_writer { - grpc_client_context *const context; +typedef struct GRPC_client_reader_writer { + GRPC_client_context *const context; grpc_call *call; grpc_completion_queue *cq; } grpc_client_reader_writer; diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 5f6adc01dd3f7..b9fa87994c8e2 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -39,7 +39,7 @@ #include static bool op_send_metadata_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; @@ -49,7 +49,7 @@ static bool op_send_metadata_fill(grpc_op *op, return true; } -static void op_send_metadata_finish(grpc_context *context, +static void op_send_metadata_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -57,7 +57,7 @@ const grpc_op_manager grpc_op_send_metadata = {op_send_metadata_fill, op_send_metadata_finish}; static bool op_send_object_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_MESSAGE; @@ -77,7 +77,7 @@ static bool op_send_object_fill(grpc_op *op, return true; } -static void op_send_object_finish(grpc_context *context, +static void op_send_object_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { if (set->send_buffer) @@ -88,7 +88,7 @@ const grpc_op_manager grpc_op_send_object = {op_send_object_fill, op_send_object_finish}; static bool op_recv_metadata_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { if (context->initial_metadata_received) return false; @@ -100,7 +100,7 @@ static bool op_recv_metadata_fill(grpc_op *op, return true; } -static void op_recv_metadata_finish(grpc_context *context, +static void op_recv_metadata_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { context->initial_metadata_received = true; @@ -110,7 +110,7 @@ const grpc_op_manager grpc_op_recv_metadata = {op_recv_metadata_fill, op_recv_metadata_finish}; static bool op_recv_object_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { set->message_received = false; @@ -123,7 +123,7 @@ static bool op_recv_object_fill(grpc_op *op, return true; } -static void op_recv_object_finish(grpc_context *context, +static void op_recv_object_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) { if (set->recv_buffer) { @@ -151,7 +151,7 @@ const grpc_op_manager grpc_op_recv_object = {op_recv_object_fill, op_recv_object_finish}; static bool op_client_send_close_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; @@ -160,7 +160,7 @@ static bool op_client_send_close_fill(grpc_op *op, return true; } -static void op_client_send_close_finish(grpc_context *context, +static void op_client_send_close_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -168,7 +168,7 @@ const grpc_op_manager grpc_op_client_send_close = {op_client_send_close_fill, op_client_send_close_finish}; static bool op_server_recv_close_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; @@ -177,7 +177,7 @@ static bool op_server_recv_close_fill(grpc_op *op, return true; } -static void op_server_recv_close_finish(grpc_context *context, +static void op_server_recv_close_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -185,12 +185,12 @@ const grpc_op_manager grpc_op_server_recv_close = {op_server_recv_close_fill, op_server_recv_close_finish}; static bool op_client_recv_status_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; - grpc_client_context *client_context = (grpc_client_context *) context; + GRPC_client_context *client_context = (GRPC_client_context *) context; grpc_metadata_array_init(&client_context->recv_trailing_metadata_array); client_context->status.details = NULL; client_context->status.details_length = 0; @@ -206,7 +206,7 @@ static bool op_client_recv_status_fill(grpc_op *op, return true; } -static void op_client_recv_status_finish(grpc_context *context, +static void op_client_recv_status_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -214,11 +214,11 @@ const grpc_op_manager grpc_op_client_recv_status = {op_client_recv_status_fill, op_client_recv_status_finish}; static bool op_server_send_status_fill(grpc_op *op, - grpc_context *context, + GRPC_context *context, grpc_call_op_set *set, const grpc_message message, void *response) { // TODO(yifeit): hook up to server handlers - grpc_server_context *server_context = (grpc_server_context *) context; + GRPC_server_context *server_context = (GRPC_server_context *) context; op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; op->data.send_status_from_server.trailing_metadata_count = server_context->send_trailing_metadata_array.count; op->data.send_status_from_server.trailing_metadata = server_context->send_trailing_metadata_array.metadata; @@ -229,7 +229,7 @@ static bool op_server_send_status_fill(grpc_op *op, return true; } -static void op_server_send_status_finish(grpc_context *context, +static void op_server_send_status_finish(GRPC_context *context, grpc_call_op_set *set, bool *status, int max_message_size) {} @@ -237,7 +237,7 @@ const grpc_op_manager grpc_op_server_send_status = {op_server_send_status_fill, op_server_send_status_finish}; void grpc_fill_op_from_call_set(grpc_call_op_set *set, - grpc_context *context, + GRPC_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops) { size_t manager = 0; @@ -256,7 +256,7 @@ void grpc_fill_op_from_call_set(grpc_call_op_set *set, } bool grpc_finish_op_from_call_set(grpc_call_op_set *set, - grpc_context *context) { + GRPC_context *context) { size_t count = 0; bool allStatus = true; while (count < GRPC_MAX_OP_COUNT) { @@ -274,7 +274,7 @@ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, } void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, - grpc_context *context, + GRPC_context *context, const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; diff --git a/src/c/call_ops.h b/src/c/call_ops.h index c73fb437fa27a..c145b6eddc099 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -44,9 +44,9 @@ typedef struct grpc_call_op_set grpc_call_op_set; typedef bool (*grpc_op_filler)(grpc_op *op, - grpc_context *, grpc_call_op_set *, + GRPC_context *, grpc_call_op_set *, const grpc_message message, void *response); -typedef void (*grpc_op_finisher)(grpc_context *, grpc_call_op_set *, +typedef void (*grpc_op_finisher)(GRPC_context *, grpc_call_op_set *, bool *status, int max_message_size); typedef struct grpc_op_manager { @@ -63,7 +63,7 @@ typedef struct grpc_closure { struct grpc_call_op_set { const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; - grpc_context *const context; + GRPC_context *const context; /* these are used by individual operations */ void *response; @@ -85,17 +85,17 @@ struct grpc_call_op_set { }; void grpc_fill_op_from_call_set(grpc_call_op_set *set, - grpc_context *context, + GRPC_context *context, const grpc_message message, void *response, grpc_op ops[], size_t *nops); /* Runs post processing steps in the call op set. Returns false if something * wrong happens e.g. serialization. */ bool grpc_finish_op_from_call_set(grpc_call_op_set *set, - grpc_context *context); + GRPC_context *context); void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, - grpc_context *context, + GRPC_context *context, const grpc_message message, void *response); /* list of operations */ diff --git a/src/c/client_context.c b/src/c/client_context.c index aa8cdc2a8d99a..ffd56ff979719 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -37,8 +37,8 @@ #include #include "src/c/alloc.h" -grpc_client_context *GRPC_client_context_create(grpc_channel *chan) { - grpc_client_context *context = GRPC_ALLOC_STRUCT( +GRPC_client_context *GRPC_client_context_create(grpc_channel *chan) { + GRPC_client_context *context = GRPC_ALLOC_STRUCT( grpc_client_context, {.deadline = gpr_inf_future(GPR_CLOCK_REALTIME), .channel = chan, @@ -70,6 +70,6 @@ void GRPC_client_context_set_serialization_impl( // We define a conversion function instead of type-casting, which lets the user convert // from any pointer to a grpc_context. -grpc_context *GRPC_client_context_to_base(grpc_client_context *client_context) { - return (grpc_context *) client_context; +GRPC_context *GRPC_client_context_to_base(GRPC_client_context *client_context) { + return (GRPC_context *) client_context; } diff --git a/src/c/client_context.h b/src/c/client_context.h index 634840d0104ef..0d73d54c03849 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -36,9 +36,9 @@ #include "src/c/context.h" -typedef struct grpc_client_context grpc_client_context; +typedef struct GRPC_client_context grpc_client_context; -struct grpc_client_context { +struct GRPC_client_context { // Emulating inheritance GRPC_C_CONTEXT_BASE_MEMBERS; @@ -48,6 +48,6 @@ struct grpc_client_context { GRPC_status status; }; -grpc_context *GRPC_client_context_to_base(grpc_client_context *client_context); +GRPC_context *GRPC_client_context_to_base(GRPC_client_context *client_context); #endif // GRPC_C_INTERNAL_CLIENT_CONTEXT_H diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 6cb5ce2ebed62..3d91a5eadecab 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -39,7 +39,7 @@ #include "src/c/alloc.h" #include "src/c/completion_queue.h" -grpc_client_writer *GRPC_client_streaming_blocking_call( +GRPC_client_writer *GRPC_client_streaming_blocking_call( const GRPC_method rpc_method, GRPC_client_context *const context, void *response) { grpc_completion_queue *cq = GRPC_completion_queue_create(); @@ -52,7 +52,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call( grpc_call_op_set set = { {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; - grpc_client_writer *writer = GRPC_ALLOC_STRUCT( + GRPC_client_writer *writer = GRPC_ALLOC_STRUCT( grpc_client_writer, {.context = context, .call = call, .finish_ops = @@ -71,7 +71,7 @@ grpc_client_writer *GRPC_client_streaming_blocking_call( return writer; } -bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, +bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC_message request) { grpc_call_op_set set = { {grpc_op_send_object}, .context = GRPC_client_context_to_base(writer->context), .user_tag = &set}; @@ -81,7 +81,7 @@ bool GRPC_client_streaming_blocking_write(grpc_client_writer *writer, return GRPC_completion_queue_pluck_internal(writer->cq, &set); } -GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { +GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer) { grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, GRPC_client_context_to_base(writer->context), (GRPC_message){0, 0}, writer->response); @@ -91,7 +91,7 @@ GRPC_status GRPC_client_writer_terminate(grpc_client_writer *writer) { GRPC_completion_queue_destroy(writer->cq); grpc_call_destroy(writer->call); writer->context->call = NULL; - grpc_client_context *context = writer->context; + GRPC_client_context *context = writer->context; gpr_free(writer); return context->status; } diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 3a0c0ce287fb1..8a733879cb52d 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -38,10 +38,10 @@ #include "src/c/call_ops.h" #include "src/c/client_context.h" -typedef struct grpc_client_writer { +typedef struct GRPC_client_writer { grpc_call_op_set finish_ops; - grpc_client_context *context; + GRPC_client_context *context; grpc_call *call; grpc_completion_queue *cq; grpc_message *response; diff --git a/src/c/context.h b/src/c/context.h index 2f2b3304addc3..c146f7c17b148 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -43,7 +43,7 @@ #include #include "src/c/message.h" -typedef struct grpc_context grpc_context; +typedef struct GRPC_context GRPC_context; /** * Both client and server context shares this common stub. @@ -62,7 +62,7 @@ typedef struct grpc_context grpc_context; grpc_channel *channel; \ grpc_call *call; -struct grpc_context { +struct GRPC_context { GRPC_C_CONTEXT_BASE_MEMBERS; }; diff --git a/src/c/server.c b/src/c/server.c new file mode 100644 index 0000000000000..a82221718de3e --- /dev/null +++ b/src/c/server.c @@ -0,0 +1,48 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include "src/c/server.h" +#include "src/c/alloc.h" + +GRPC_server *GRPC_build_server(GRPC_build_server_options options) { + grpc_server *core_server = grpc_server_create(NULL, NULL); + GRPC_server *server = GRPC_ALLOC_STRUCT(GRPC_server, { + .core_server = core_server + }); + return server; +} + +void GRPC_server_start(GRPC_server *server) { + grpc_server_start(server->core_server); +} diff --git a/src/c/server.h b/src/c/server.h new file mode 100644 index 0000000000000..318dfb5ae5ad3 --- /dev/null +++ b/src/c/server.h @@ -0,0 +1,52 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_INTERNAL_SERVER_H +#define GRPC_C_INTERNAL_SERVER_H + +#include +#include +#include +#include "src/c/server_incoming_queue.h" + +typedef struct GRPC_server GRPC_server; + +struct GRPC_server { + grpc_server *core_server; + + // async + + //TODO(yifeit): synchronous server state +}; + +#endif // GRPC_C_INTERNAL_SERVER_H diff --git a/src/c/server_context.c b/src/c/server_context.c index e959d6cf8820a..ccbc3149065bc 100644 --- a/src/c/server_context.c +++ b/src/c/server_context.c @@ -32,10 +32,20 @@ */ #include "src/c/server_context.h" +#include "src/c/alloc.h" + +GRPC_server_context *GRPC_server_context_create() { + GRPC_server_context *context = GRPC_ALLOC_STRUCT(GRPC_server_context, { + .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), + .serialization_impl = {.serialize = NULL, .deserialize = NULL} + }); + + grpc_metadata_array_init(&context->send_trailing_metadata_array); + return context; +} // We define a conversion function instead of type-casting, which lets the user convert // from any pointer to a grpc_context. -grpc_context *GRPC_server_context_to_base(grpc_server_context *server_context) { - return (grpc_context *) server_context; +GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context) { + return (GRPC_context *) server_context; } - diff --git a/src/c/server_context.h b/src/c/server_context.h index 35648b1ded2ed..84f879cccfda6 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -35,10 +35,11 @@ #define GRPC_C_INTERNAL_SERVER_CONTEXT_H #include "src/c/context.h" +#include -typedef struct grpc_server_context grpc_server_context; +typedef struct GRPC_server_context grpc_server_context; -struct grpc_server_context { +struct GRPC_server_context { GRPC_C_CONTEXT_BASE_MEMBERS; // server-side specific @@ -48,6 +49,4 @@ struct grpc_server_context { grpc_status_code server_return_status; }; -grpc_context *GRPC_server_context_to_base(grpc_server_context *server_context); - #endif // GRPC_C_INTERNAL_SERVER_CONTEXT_H diff --git a/src/c/server_incoming_queue.c b/src/c/server_incoming_queue.c new file mode 100644 index 0000000000000..7cfdf51ad6c7c --- /dev/null +++ b/src/c/server_incoming_queue.c @@ -0,0 +1,45 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include +#include "src/c/server_incoming_queue.h" +#include "src/c/alloc.h" + +GRPC_incoming_notification_queue *GRPC_incoming_notification_queue_create() { + GRPC_completion_queue *cq = GRPC_completion_queue_create(); + GRPC_incoming_notification_queue *queue = GRPC_ALLOC_STRUCT(GRPC_incoming_notification_queue, { + .cq = cq + }); + return queue; +} diff --git a/src/c/server_incoming_queue.h b/src/c/server_incoming_queue.h new file mode 100644 index 0000000000000..ffef889843b24 --- /dev/null +++ b/src/c/server_incoming_queue.h @@ -0,0 +1,43 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_INTERNAL_SERVER_INCOMING_QUEUE_H +#define GRPC_C_INTERNAL_SERVER_INCOMING_QUEUE_H + +#include +#include + +GRPC_incoming_notification_queue *GRPC_incoming_notification_queue_create(); +void GRPC_incoming_notification_queue_destroy(GRPC_incoming_notification_queue *queue); + +#endif // GRPC_C_INTERNAL_SERVER_INCOMING_QUEUE_H diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 0a53a24effa4d..465032c788f8f 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -56,7 +56,7 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( .context = GRPC_client_context_to_base(context), .user_tag = &set}; - grpc_client_reader *reader = GRPC_ALLOC_STRUCT( + GRPC_client_reader *reader = GRPC_ALLOC_STRUCT( grpc_client_reader, { .context = context, .call = call, .cq = cq, }); @@ -99,7 +99,7 @@ GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { GRPC_completion_queue_destroy(reader->cq); grpc_call_destroy(reader->call); reader->context->call = NULL; - grpc_client_context *context = reader->context; + GRPC_client_context *context = reader->context; gpr_free(reader); return context->status; } diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 9b1bcfd03bda6..2c28f30d0a005 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -38,8 +38,8 @@ #include "src/c/call_ops.h" #include "src/c/client_context.h" -typedef struct grpc_client_reader { - grpc_client_context *context; +typedef struct GRPC_client_reader { + GRPC_client_context *context; grpc_call *call; grpc_completion_queue *cq; } grpc_client_reader; diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index ff88e0aa3bf94..157b8e10e537d 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -38,13 +38,13 @@ #include "src/c/client_context.h" #include "src/c/server_context.h" -typedef struct grpc_client_async_response_reader { +typedef struct GRPC_client_async_response_reader { grpc_call_op_set init_buf; grpc_call_op_set meta_buf; grpc_call_op_set finish_buf; grpc_completion_queue *cq; - grpc_client_context *context; + GRPC_client_context *context; grpc_call *call; } grpc_client_async_response_reader; @@ -54,7 +54,7 @@ typedef struct grpc_server_async_response_writer { grpc_call_op_set finish_buf; grpc_completion_queue *cq; - grpc_server_context *context; + GRPC_server_context *context; grpc_call *call; } grpc_server_async_response_writer; From c30fc0b446f798cbb123d7d56436793554c96830 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 10 Aug 2016 14:41:30 -0700 Subject: [PATCH 175/202] build files --- BUILD | 6 ++++++ CMakeLists.txt | 4 ++++ Makefile | 6 ++++++ build.yaml | 6 ++++++ examples/c/helloworld/greeter_async_server.c | 15 ++++++++------- tools/run_tests/sources_and_headers.json | 10 ++++++++++ vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 8 ++++++++ .../vcxproj/grpc_c/grpc_c.vcxproj.filters | 18 ++++++++++++++++++ 8 files changed, 66 insertions(+), 7 deletions(-) diff --git a/BUILD b/BUILD index e2948cb0759c2..e1190ac0593f3 100644 --- a/BUILD +++ b/BUILD @@ -563,7 +563,9 @@ cc_library( "src/c/context.h", "src/c/init_shutdown.h", "src/c/message.h", + "src/c/server.h", "src/c/server_context.h", + "src/c/server_incoming_queue.h", "src/c/server_streaming_blocking_call.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h", @@ -577,7 +579,9 @@ cc_library( "src/c/init_shutdown.c", "src/c/message.c", "src/c/pb_compat.c", + "src/c/server.c", "src/c/server_context.c", + "src/c/server_incoming_queue.c", "src/c/server_streaming_blocking_call.c", "src/c/unary_async_call.c", "src/c/unary_blocking_call.c", @@ -599,6 +603,8 @@ cc_library( "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", "include/grpc_c/server.h", + "include/grpc_c/server_context.h", + "include/grpc_c/server_incoming_queue.h", "include/grpc_c/status.h", ], includes = [ diff --git a/CMakeLists.txt b/CMakeLists.txt index afa060fbc5489..27c1af3771ff1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -543,7 +543,9 @@ add_library(grpc_c src/c/init_shutdown.c src/c/message.c src/c/pb_compat.c + src/c/server.c src/c/server_context.c + src/c/server_incoming_queue.c src/c/server_streaming_blocking_call.c src/c/unary_async_call.c src/c/unary_blocking_call.c @@ -583,6 +585,8 @@ foreach(_hdr include/grpc_c/declare_serializer.h include/grpc_c/grpc_c.h include/grpc_c/server.h + include/grpc_c/server_context.h + include/grpc_c/server_incoming_queue.h include/grpc_c/status.h ) string(REPLACE "include/" "" _path ${_hdr}) diff --git a/Makefile b/Makefile index bfe54cb94e553..184705bd1607a 100644 --- a/Makefile +++ b/Makefile @@ -3047,7 +3047,9 @@ LIBGRPC_C_SRC = \ src/c/init_shutdown.c \ src/c/message.c \ src/c/pb_compat.c \ + src/c/server.c \ src/c/server_context.c \ + src/c/server_incoming_queue.c \ src/c/server_streaming_blocking_call.c \ src/c/unary_async_call.c \ src/c/unary_blocking_call.c \ @@ -3069,6 +3071,8 @@ PUBLIC_HEADERS_C += \ include/grpc_c/declare_serializer.h \ include/grpc_c/grpc_c.h \ include/grpc_c/server.h \ + include/grpc_c/server_context.h \ + include/grpc_c/server_incoming_queue.h \ include/grpc_c/status.h \ LIBGRPC_C_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_SRC)))) @@ -16346,7 +16350,9 @@ src/c/completion_queue.c: $(OPENSSL_DEP) src/c/init_shutdown.c: $(OPENSSL_DEP) src/c/message.c: $(OPENSSL_DEP) src/c/pb_compat.c: $(OPENSSL_DEP) +src/c/server.c: $(OPENSSL_DEP) src/c/server_context.c: $(OPENSSL_DEP) +src/c/server_incoming_queue.c: $(OPENSSL_DEP) src/c/server_streaming_blocking_call.c: $(OPENSSL_DEP) src/c/unary_async_call.c: $(OPENSSL_DEP) src/c/unary_blocking_call.c: $(OPENSSL_DEP) diff --git a/build.yaml b/build.yaml index fdce76c409b71..c4336faa91daa 100644 --- a/build.yaml +++ b/build.yaml @@ -855,6 +855,8 @@ libs: - include/grpc_c/declare_serializer.h - include/grpc_c/grpc_c.h - include/grpc_c/server.h + - include/grpc_c/server_context.h + - include/grpc_c/server_incoming_queue.h - include/grpc_c/status.h headers: - src/c/alloc.h @@ -866,7 +868,9 @@ libs: - src/c/context.h - src/c/init_shutdown.h - src/c/message.h + - src/c/server.h - src/c/server_context.h + - src/c/server_incoming_queue.h - src/c/server_streaming_blocking_call.h - src/c/unary_async_call.h - src/c/unary_blocking_call.h @@ -881,7 +885,9 @@ libs: - src/c/init_shutdown.c - src/c/message.c - src/c/pb_compat.c + - src/c/server.c - src/c/server_context.c + - src/c/server_incoming_queue.c - src/c/server_streaming_blocking_call.c - src/c/unary_async_call.c - src/c/unary_blocking_call.c diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index 682fd508ce525..b88c0fa1194ae 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -80,8 +80,8 @@ int main(int argc, char **argv) { GRPC_server *server = GRPC_build_server({ .async_services = { helloworld_Greeter_Service, NULL } }); - GRPC_incoming_notification_queue incoming = - GRPC_server_new_notification_queue(server); + GRPC_incoming_notification_queue *incoming = + GRPC_server_new_incoming_queue(server); GRPC_server_start(server); // Run server for (;;) { @@ -96,15 +96,17 @@ int main(int argc, char **argv) { &data->request, &data->response, incoming, // incoming queue - incoming.cq, // processing queue - data + incoming.cq, // processing queue - we can reuse the + // same underlying completion queue, or + // specify a different one here + data // tag for the completion queues ); // Wait for incoming call void *tag; bool ok; GRPC_completion_queue_operation_status queue_status = - GRPC_completion_queue_next(incoming.cq, &tag, &ok); + GRPC_completion_queue_next(incoming->cq, &tag, &ok); if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); @@ -129,7 +131,7 @@ int main(int argc, char **argv) { // Wait for request termination GRPC_completion_queue_operation_status queue_status = - GRPC_completion_queue_next(incoming.cq, &tag, &ok); + GRPC_completion_queue_next(incoming->cq, &tag, &ok); if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); @@ -144,7 +146,6 @@ int main(int argc, char **argv) { free(data); } } - GRPC_completion_queue_destroy(cq); GRPC_server_shutdown(server); GRPC_server_destroy(server); return 0; diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index f04d85c445d60..748790d5480e4 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4313,6 +4313,8 @@ "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", "include/grpc_c/server.h", + "include/grpc_c/server_context.h", + "include/grpc_c/server_incoming_queue.h", "include/grpc_c/status.h", "src/c/alloc.h", "src/c/bidi_streaming_blocking_call.h", @@ -4323,7 +4325,9 @@ "src/c/context.h", "src/c/init_shutdown.h", "src/c/message.h", + "src/c/server.h", "src/c/server_context.h", + "src/c/server_incoming_queue.h", "src/c/server_streaming_blocking_call.h", "src/c/unary_async_call.h", "src/c/unary_blocking_call.h" @@ -4347,6 +4351,8 @@ "include/grpc_c/declare_serializer.h", "include/grpc_c/grpc_c.h", "include/grpc_c/server.h", + "include/grpc_c/server_context.h", + "include/grpc_c/server_incoming_queue.h", "include/grpc_c/status.h", "src/c/alloc.c", "src/c/alloc.h", @@ -4367,8 +4373,12 @@ "src/c/message.c", "src/c/message.h", "src/c/pb_compat.c", + "src/c/server.c", + "src/c/server.h", "src/c/server_context.c", "src/c/server_context.h", + "src/c/server_incoming_queue.c", + "src/c/server_incoming_queue.h", "src/c/server_streaming_blocking_call.c", "src/c/server_streaming_blocking_call.h", "src/c/unary_async_call.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index 1da426f4d847e..c51a1bfb53fea 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -274,6 +274,8 @@ + + @@ -286,7 +288,9 @@ + + @@ -312,8 +316,12 @@ + + + + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index 58029c934c580..d1bbd60d78f82 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -31,9 +31,15 @@ src\c + + src\c + src\c + + src\c + src\c @@ -93,6 +99,12 @@ include\grpc_c + + include\grpc_c + + + include\grpc_c + include\grpc_c @@ -125,9 +137,15 @@ src\c + + src\c + src\c + + src\c + src\c From efdea96376b1007dc04588a09893388dd5bc563b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 11 Aug 2016 16:14:24 -0700 Subject: [PATCH 176/202] [wip] server unary async call --- examples/c/helloworld/greeter_async_server.c | 3 +- include/grpc_c/codegen/unary_async_call.h | 14 ++ include/grpc_c/declare_serializer.h | 23 +--- include/grpc_c/grpc_c.h | 3 + include/grpc_c/server.h | 3 + include/grpc_c/server_context.h | 2 +- include/grpc_c/server_incoming_queue.h | 2 +- include/grpc_c/status.h | 4 +- src/c/array.c | 68 +++++++++ src/c/array.h | 70 ++++++++++ src/c/bidi_streaming_blocking_call.c | 34 ++--- src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.c | 74 +++++----- src/c/call_ops.h | 51 +++---- src/c/channel.c | 2 +- src/c/client_streaming_blocking_call.c | 16 +-- src/c/client_streaming_blocking_call.h | 4 +- src/c/completion_queue.c | 12 +- src/c/init_shutdown.c | 2 +- src/c/init_shutdown.h | 2 +- src/c/server.c | 49 ++++++- src/c/server.h | 5 + src/c/server_context.c | 5 +- src/c/server_context.h | 4 +- src/c/server_incoming_queue.c | 6 + src/c/server_streaming_blocking_call.c | 22 +-- src/c/server_streaming_blocking_call.h | 2 +- src/c/unary_async_call.c | 30 +++- src/c/unary_async_call.h | 19 +-- src/c/unary_blocking_call.c | 9 +- src/compiler/c_generator.cc | 137 +++++++++++++++---- 31 files changed, 492 insertions(+), 187 deletions(-) create mode 100644 src/c/array.c create mode 100644 src/c/array.h diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index b88c0fa1194ae..5d8bea3c88c80 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -86,7 +86,7 @@ int main(int argc, char **argv) { // Run server for (;;) { async_server_data *data = calloc(sizeof(async_server_data)); - data->context = GRPC_server_context_create(); + data->context = GRPC_server_context_create(server); data->request.name.funcs.decode = read_string_store_in_arg; data->response.message.funcs.encode = write_string_from_arg; @@ -94,7 +94,6 @@ int main(int argc, char **argv) { helloworld_Greeter_SayHello_ServerRequest( &data->context, &data->request, - &data->response, incoming, // incoming queue incoming.cq, // processing queue - we can reuse the // same underlying completion queue, or diff --git a/include/grpc_c/codegen/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h index 5469268a8419d..c3fec6e272c8e 100644 --- a/include/grpc_c/codegen/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -49,4 +49,18 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); +GRPC_server_async_response_writer *GRPC_unary_async_server_request( + const GRPC_method rpc_method, + GRPC_server_context *const context, + void* request, + GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, + void *tag); + +void GRPC_unary_async_server_finish( + GRPC_server_async_response_writer *writer, + const GRPC_message response, + const grpc_status_code server_status, + void *tag); + #endif /* GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H */ diff --git a/include/grpc_c/declare_serializer.h b/include/grpc_c/declare_serializer.h index 2042fd1f3eaa2..2701e9899947b 100644 --- a/include/grpc_c/declare_serializer.h +++ b/include/grpc_c/declare_serializer.h @@ -39,28 +39,11 @@ * ====================================================================== * * First take a look at - * https://github.com/google/flatbuffers/blob/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70/include/flatbuffers/grpc.h - * which glues FlatBuffers to gRPC-C++. For every new serialization algorithm, - * we need to create a similar file that - * imports this declare_serializer.h, and partially specializes the - * GRPC_SERIALIZATION_IMPL_MSGTYPE macro defined here. This mirrors - * the C++ template partial specialization method and allows plugging in new - * serialization implementations with - * zero knowledge from the gRPC library. Of course we need to include this file - * in our message header, which is in turn - * referenced by the generated service implementation. This will typically be - * controlled by a switch in the codegen, so - * as to avoid constantly pulling in the gRPC dependency in any other use cases - * of the serialization library. + * https://github.com/google/flatbuffers/blob/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70/include/flatbuffers/grpc.h which glues FlatBuffers to gRPC-C++. For every new serialization algorithm, we need to create a similar file that imports this declare_serializer.h, and partially specializes the GRPC_SERIALIZATION_IMPL_MSGTYPE macro defined here. This mirrors the C++ template partial specialization method and allows plugging in new serialization implementations with zero knowledge from the gRPC library. Of course we need to include this file in our message header, which is in turn referenced by the generated service implementation. This will typically be controlled by a switch in the codegen, so as to avoid constantly pulling in the gRPC dependency in any other use cases of the serialization library. * - * Because we wouldn't want to hack the Nanopb, specializations for Nanopb are - * hardcoded in the gRPC library, and are - * automatically activated when Nanopb objects are detected. + * Because we wouldn't want to hack the Nanopb, specializations for Nanopb are hardcoded in the gRPC library, and are automatically activated when Nanopb objects are detected. * - * The service implementation expands the GRPC_C_RESOLVE_SERIALIZER(MessageType) - * macro, which is expected to provide the - * grpc_serialization_impl struct instance that handles serialization for that - * particular message type. + * The service implementation expands the GRPC_C_RESOLVE_SERIALIZER(MessageType) macro, which is expected to provide the grpc_serialization_impl struct instance that handles serialization for that particular message type. */ #define GRPC_C_RESOLVE_SERIALIZER(msgType) \ diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 1db03065c535b..8fec22c434d11 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -51,4 +51,7 @@ typedef struct GRPC_client_async_writer GRPC_client_async_writer; typedef struct GRPC_client_async_response_reader GRPC_client_async_response_reader; +typedef struct GRPC_server_async_response_writer + GRPC_server_async_response_writer; + #endif /* GRPC_C_GRPC_C_H */ diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h index 622c3d67ab13e..2afc4189d3675 100644 --- a/include/grpc_c/server.h +++ b/include/grpc_c/server.h @@ -44,6 +44,9 @@ typedef struct GRPC_build_server_options { } GRPC_build_server_options; GRPC_server *GRPC_build_server(GRPC_build_server_options options); +GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue(GRPC_server *server); void GRPC_server_start(GRPC_server *server); +void GRPC_server_shutdown(GRPC_server *server); +void GRPC_server_destroy(GRPC_server *server); #endif /* GRPC_C_SERVER_H */ diff --git a/include/grpc_c/server_context.h b/include/grpc_c/server_context.h index e2b730cdf4a46..98ec74d17c424 100644 --- a/include/grpc_c/server_context.h +++ b/include/grpc_c/server_context.h @@ -36,7 +36,7 @@ #include -GRPC_server_context *GRPC_server_context_create(); +GRPC_server_context *GRPC_server_context_create(GRPC_server *server); GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context); diff --git a/include/grpc_c/server_incoming_queue.h b/include/grpc_c/server_incoming_queue.h index e8020c495f25b..c5be742160440 100644 --- a/include/grpc_c/server_incoming_queue.h +++ b/include/grpc_c/server_incoming_queue.h @@ -36,7 +36,7 @@ #include -typedef struct GRPC_incoming_notification_queue grpc_incoming_notification_queue; +typedef struct GRPC_incoming_notification_queue GRPC_incoming_notification_queue; struct GRPC_incoming_notification_queue { GRPC_completion_queue *cq; diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index af9edd752e85a..f3c6227a55318 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -38,6 +38,8 @@ #include #include +typedef grpc_status_code GRPC_status_code; + typedef struct GRPC_status { /** * Indicator of success for the entire RPC operation, including network, @@ -48,7 +50,7 @@ typedef struct GRPC_status { /** * Status code coming from the remote server. */ - grpc_status_code code; + GRPC_status_code code; /** * Detailed status string from the server. diff --git a/src/c/array.c b/src/c/array.c new file mode 100644 index 0000000000000..7b40c2617374d --- /dev/null +++ b/src/c/array.c @@ -0,0 +1,68 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include "src/c/array.h" + +void GRPC_array_init_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size) { + void **data = data_ptr; + state->capacity = 4; + state->size = 0; + *data = gpr_malloc(elem_size * 4); +} + +void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size) { + if (state->size == 0) return; + void **data = data_ptr; + state->size--; + while (state->size * 2 + 1 <= state->capacity) { + *data = gpr_realloc(*data, state->capacity / 2); + state->capacity /= 2; + } +} + +void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, size_t elem_size, size_t target_size) { + if (target_size <= state->capacity) return; + void **data = data_ptr; + while (state->capacity < target_size) { + *data = realloc(*data, state->capacity * 2); + state->capacity *= 2; + } +} + +void GRPC_array_deinit_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size) { + void **data = data_ptr; + if (*data) { + gpr_free(*data); + } +} diff --git a/src/c/array.h b/src/c/array.h new file mode 100644 index 0000000000000..56a42703b4e83 --- /dev/null +++ b/src/c/array.h @@ -0,0 +1,70 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_INTERNAL_ARRAY_H +#define GRPC_C_INTERNAL_ARRAY_H + +#include +#include + +/** + * Implements a generic array structure + * Usage: + * GRPC_array(int) arr; + * GRPC_array_init(arr); + * GRPC_array_push_back(arr, 5); + * // arr.data[0] == 5; + * GRPC_array_deinit(arr); + */ + +typedef struct GRPC_array_state { + size_t size; + size_t capacity; +} GRPC_array_state; + +void GRPC_array_init_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size); +void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size); +void GRPC_array_deinit_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size); +void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, size_t elem_size, size_t target_size); + +#define GRPC_array(type) struct { type *data; GRPC_array_state state; } +#define GRPC_array_init(arr) GRPC_array_init_impl(&arr.state, &arr.data, sizeof(*arr.data)); +// Cannot delegate to a function since we do not know the type of input +#define GRPC_array_push_back(arr, ...) { \ + GRPC_array_ensure_capacity(&arr.state, &arr.data, sizeof(*arr.data), arr.state.size + 1); \ + arr.data[arr.state.size++] = (__VA_ARGS__); \ +} +#define GRPC_array_pop_back(arr) GRPC_array_pop_back_impl(&arr.state, &arr.data, sizeof(*arr.data)); +#define GRPC_array_deinit(arr) GRPC_array_deinit_impl(&arr.state, &arr.data, sizeof(*arr.data)); + +#endif // GRPC_C_INTERNAL_ARRAY_H diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 68f6c3d08429b..4e10da835ce41 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -49,16 +49,16 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( context->call = call; context->rpc_method = rpc_method; - grpc_call_op_set set = { + GRPC_call_op_set set = { {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; GRPC_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT( - grpc_client_reader_writer, { + GRPC_client_reader_writer, { .context = context, .call = call, .cq = cq, }); - grpc_start_batch_from_op_set(reader_writer->call, &set, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + GRPC_start_batch_from_op_set(reader_writer->call, &set, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(cq, &set); if (!ok) { @@ -71,21 +71,21 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, void *response) { - grpc_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, + GRPC_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set_meta}; - grpc_call_op_set set_no_meta = {{grpc_op_recv_object}, + GRPC_call_op_set set_no_meta = {{grpc_op_recv_object}, .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set_no_meta}; - grpc_call_op_set *pSet = NULL; + GRPC_call_op_set *pSet = NULL; if (reader_writer->context->initial_metadata_received == false) { pSet = &set_meta; } else { pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader_writer->call, pSet, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + GRPC_start_batch_from_op_set(reader_writer->call, pSet, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, response); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, pSet); reader_writer->context->status.ok &= ok; @@ -94,11 +94,11 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, bool GRPC_bidi_streaming_blocking_write( GRPC_client_reader_writer *reader_writer, const GRPC_message request) { - grpc_call_op_set set = {{grpc_op_send_object}, + GRPC_call_op_set set = {{grpc_op_send_object}, .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set}; - grpc_start_batch_from_op_set(reader_writer->call, &set, + GRPC_start_batch_from_op_set(reader_writer->call, &set, GRPC_client_context_to_base(reader_writer->context), request, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); reader_writer->context->status.ok &= ok; @@ -107,12 +107,12 @@ bool GRPC_bidi_streaming_blocking_write( bool GRPC_bidi_streaming_blocking_writes_done( GRPC_client_reader_writer *reader_writer) { - grpc_call_op_set set = {{grpc_op_client_send_close}, + GRPC_call_op_set set = {{grpc_op_client_send_close}, .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set}; - grpc_start_batch_from_op_set(reader_writer->call, &set, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + GRPC_start_batch_from_op_set(reader_writer->call, &set, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, (&set)); reader_writer->context->status.ok &= ok; @@ -121,11 +121,11 @@ bool GRPC_bidi_streaming_blocking_writes_done( GRPC_status GRPC_client_reader_writer_terminate( GRPC_client_reader_writer *reader_writer) { - grpc_call_op_set set = {{grpc_op_client_recv_status}, + GRPC_call_op_set set = {{grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(reader_writer->context), .user_tag = &set}; - grpc_start_batch_from_op_set(reader_writer->call, &set, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + GRPC_start_batch_from_op_set(reader_writer->call, &set, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); GRPC_completion_queue_shutdown(reader_writer->cq); diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index ea70bc63bac49..56e3a2bf73ecd 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -42,6 +42,6 @@ typedef struct GRPC_client_reader_writer { GRPC_client_context *const context; grpc_call *call; grpc_completion_queue *cq; -} grpc_client_reader_writer; +} GRPC_client_reader_writer; #endif /* GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H */ diff --git a/src/c/call_ops.c b/src/c/call_ops.c index b9fa87994c8e2..83d3edf306224 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -40,7 +40,7 @@ static bool op_send_metadata_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; op->data.send_initial_metadata.count = 0; @@ -50,15 +50,15 @@ static bool op_send_metadata_fill(grpc_op *op, } static void op_send_metadata_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) {} -const grpc_op_manager grpc_op_send_metadata = {op_send_metadata_fill, +const GRPC_op_manager grpc_op_send_metadata = {op_send_metadata_fill, op_send_metadata_finish}; static bool op_send_object_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_MESSAGE; @@ -78,18 +78,18 @@ static bool op_send_object_fill(grpc_op *op, } static void op_send_object_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) { if (set->send_buffer) grpc_byte_buffer_destroy(set->send_buffer); } -const grpc_op_manager grpc_op_send_object = {op_send_object_fill, +const GRPC_op_manager grpc_op_send_object = {op_send_object_fill, op_send_object_finish}; static bool op_recv_metadata_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { if (context->initial_metadata_received) return false; op->op = GRPC_OP_RECV_INITIAL_METADATA; @@ -101,17 +101,17 @@ static bool op_recv_metadata_fill(grpc_op *op, } static void op_recv_metadata_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) { context->initial_metadata_received = true; } -const grpc_op_manager grpc_op_recv_metadata = {op_recv_metadata_fill, +const GRPC_op_manager grpc_op_recv_metadata = {op_recv_metadata_fill, op_recv_metadata_finish}; static bool op_recv_object_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { set->message_received = false; set->response = response; @@ -124,7 +124,7 @@ static bool op_recv_object_fill(grpc_op *op, } static void op_recv_object_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) { if (set->recv_buffer) { GPR_ASSERT(set->message_received == false); @@ -147,12 +147,12 @@ static void op_recv_object_finish(GRPC_context *context, } } -const grpc_op_manager grpc_op_recv_object = {op_recv_object_fill, +const GRPC_op_manager grpc_op_recv_object = {op_recv_object_fill, op_recv_object_finish}; static bool op_client_send_close_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; @@ -161,15 +161,15 @@ static bool op_client_send_close_fill(grpc_op *op, } static void op_client_send_close_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) {} -const grpc_op_manager grpc_op_client_send_close = {op_client_send_close_fill, +const GRPC_op_manager grpc_op_client_send_close = {op_client_send_close_fill, op_client_send_close_finish}; static bool op_server_recv_close_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; op->flags = 0; @@ -178,15 +178,15 @@ static bool op_server_recv_close_fill(grpc_op *op, } static void op_server_recv_close_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) {} -const grpc_op_manager grpc_op_server_recv_close = {op_server_recv_close_fill, +const GRPC_op_manager grpc_op_server_recv_close = {op_server_recv_close_fill, op_server_recv_close_finish}; static bool op_client_recv_status_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; @@ -207,15 +207,15 @@ static bool op_client_recv_status_fill(grpc_op *op, } static void op_client_recv_status_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) {} -const grpc_op_manager grpc_op_client_recv_status = {op_client_recv_status_fill, +const GRPC_op_manager grpc_op_client_recv_status = {op_client_recv_status_fill, op_client_recv_status_finish}; static bool op_server_send_status_fill(grpc_op *op, GRPC_context *context, - grpc_call_op_set *set, + GRPC_call_op_set *set, const grpc_message message, void *response) { // TODO(yifeit): hook up to server handlers GRPC_server_context *server_context = (GRPC_server_context *) context; @@ -230,24 +230,24 @@ static bool op_server_send_status_fill(grpc_op *op, } static void op_server_send_status_finish(GRPC_context *context, - grpc_call_op_set *set, bool *status, + GRPC_call_op_set *set, bool *status, int max_message_size) {} -const grpc_op_manager grpc_op_server_send_status = {op_server_send_status_fill, +const GRPC_op_manager grpc_op_server_send_status = {op_server_send_status_fill, op_server_send_status_finish}; -void grpc_fill_op_from_call_set(grpc_call_op_set *set, +void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, const grpc_message message, void *response, - grpc_op ops[], size_t *nops) { + grpc_op *ops, size_t *nops) { size_t manager = 0; size_t filled = 0; while (manager < GRPC_MAX_OP_COUNT) { - if (set->op_managers[manager].fill == NULL && - set->op_managers[manager].finish == NULL) + if (set->operations[manager].fill == NULL && + set->operations[manager].finish == NULL) break; // end of call set - if (set->op_managers[manager].fill == NULL) continue; - bool result = set->op_managers[manager].fill( + if (set->operations[manager].fill == NULL) continue; + bool result = set->operations[manager].fill( &ops[filled], context, set, message, response); manager++; if (result) filled++; @@ -255,29 +255,29 @@ void grpc_fill_op_from_call_set(grpc_call_op_set *set, *nops = filled; } -bool grpc_finish_op_from_call_set(grpc_call_op_set *set, +bool GRPC_finish_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context) { size_t count = 0; bool allStatus = true; while (count < GRPC_MAX_OP_COUNT) { - if (set->op_managers[count].fill == NULL && - set->op_managers[count].finish == NULL) + if (set->operations[count].fill == NULL && + set->operations[count].finish == NULL) break; // end of call set - if (set->op_managers[count].finish == NULL) continue; + if (set->operations[count].finish == NULL) continue; int size = 100; // todo(yifeit): hook up this value bool status = true; - set->op_managers[count].finish(context, set, &status, size); + set->operations[count].finish(context, set, &status, size); allStatus &= status; count++; } return allStatus; } -void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, +void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, GRPC_context *context, const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - grpc_fill_op_from_call_set(set, context, request, response, ops, &nops); + GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); } diff --git a/src/c/call_ops.h b/src/c/call_ops.h index c145b6eddc099..ba410d6edaa58 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -41,28 +41,28 @@ #include "src/c/context.h" #include "src/c/message.h" -typedef struct grpc_call_op_set grpc_call_op_set; +typedef struct GRPC_call_op_set GRPC_call_op_set; -typedef bool (*grpc_op_filler)(grpc_op *op, - GRPC_context *, grpc_call_op_set *, +typedef bool (*GRPC_op_filler)(grpc_op *op, + GRPC_context *, GRPC_call_op_set *, const grpc_message message, void *response); -typedef void (*grpc_op_finisher)(GRPC_context *, grpc_call_op_set *, +typedef void (*GRPC_op_finisher)(GRPC_context *, GRPC_call_op_set *, bool *status, int max_message_size); -typedef struct grpc_op_manager { - const grpc_op_filler fill; - const grpc_op_finisher finish; -} grpc_op_manager; +typedef struct GRPC_op_manager { + const GRPC_op_filler fill; + const GRPC_op_finisher finish; +} GRPC_op_manager; enum { GRPC_MAX_OP_COUNT = 8 }; -typedef struct grpc_closure { +typedef struct GRPC_closure { void *arg; void (*callback)(void *arg); -} grpc_closure; +} GRPC_closure; -struct grpc_call_op_set { - const grpc_op_manager op_managers[GRPC_MAX_OP_COUNT]; +struct GRPC_call_op_set { + const GRPC_op_manager operations[GRPC_MAX_OP_COUNT]; GRPC_context *const context; /* these are used by individual operations */ @@ -81,32 +81,33 @@ struct grpc_call_op_set { // used in async calls void *user_tag; bool *user_done; /* for clients reading a stream */ - grpc_closure async_cleanup; /* will be called when RPC ends */ + GRPC_closure async_cleanup; /* will be called when the op_set finishes */ + /* used to cleanup after RPC */ }; -void grpc_fill_op_from_call_set(grpc_call_op_set *set, +void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, const grpc_message message, void *response, - grpc_op ops[], size_t *nops); + grpc_op *ops, size_t *nops); /* Runs post processing steps in the call op set. Returns false if something * wrong happens e.g. serialization. */ -bool grpc_finish_op_from_call_set(grpc_call_op_set *set, +bool GRPC_finish_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context); -void grpc_start_batch_from_op_set(grpc_call *call, grpc_call_op_set *set, +void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, GRPC_context *context, const grpc_message message, void *response); /* list of operations */ -extern const grpc_op_manager grpc_op_send_metadata; -extern const grpc_op_manager grpc_op_recv_metadata; -extern const grpc_op_manager grpc_op_send_object; -extern const grpc_op_manager grpc_op_recv_object; -extern const grpc_op_manager grpc_op_client_send_close; -extern const grpc_op_manager grpc_op_client_recv_status; -extern const grpc_op_manager grpc_op_server_recv_close; -extern const grpc_op_manager grpc_op_server_send_status; +extern const GRPC_op_manager grpc_op_send_metadata; +extern const GRPC_op_manager grpc_op_recv_metadata; +extern const GRPC_op_manager grpc_op_send_object; +extern const GRPC_op_manager grpc_op_recv_object; +extern const GRPC_op_manager grpc_op_client_send_close; +extern const GRPC_op_manager grpc_op_client_recv_status; +extern const GRPC_op_manager grpc_op_server_recv_close; +extern const GRPC_op_manager grpc_op_server_send_status; #endif /* GRPC_C_INTERNAL_CALL_OPS_H */ diff --git a/src/c/channel.c b/src/c/channel.c index 8b923cbd44094..07edcb470d4f0 100644 --- a/src/c/channel.c +++ b/src/c/channel.c @@ -37,7 +37,7 @@ #include "src/c/init_shutdown.h" GRPC_channel *GRPC_channel_create(const char *const target) { - grpc_ensure_grpc_init(); + GRPC_ensure_grpc_init(); return grpc_insecure_channel_create(target, NULL, NULL); } diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 3d91a5eadecab..2accb0b3bcbe7 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -49,11 +49,11 @@ GRPC_client_writer *GRPC_client_streaming_blocking_call( context->call = call; context->rpc_method = rpc_method; - grpc_call_op_set set = { + GRPC_call_op_set set = { {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; GRPC_client_writer *writer = GRPC_ALLOC_STRUCT( - grpc_client_writer, {.context = context, + GRPC_client_writer, {.context = context, .call = call, .finish_ops = { @@ -65,25 +65,25 @@ GRPC_client_writer *GRPC_client_streaming_blocking_call( .response = response}); writer->finish_ops.user_tag = &writer->finish_ops; - grpc_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), - (GRPC_message){0, 0}, NULL); + GRPC_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), + (GRPC_message) {0, 0}, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return writer; } bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC_message request) { - grpc_call_op_set set = { + GRPC_call_op_set set = { {grpc_op_send_object}, .context = GRPC_client_context_to_base(writer->context), .user_tag = &set}; - grpc_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), request, + GRPC_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), request, NULL); return GRPC_completion_queue_pluck_internal(writer->cq, &set); } GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer) { - grpc_start_batch_from_op_set(writer->call, &writer->finish_ops, - GRPC_client_context_to_base(writer->context), (GRPC_message){0, 0}, + GRPC_start_batch_from_op_set(writer->call, &writer->finish_ops, + GRPC_client_context_to_base(writer->context), (GRPC_message) {0, 0}, writer->response); GRPC_completion_queue_pluck_internal(writer->cq, &writer->finish_ops); GRPC_completion_queue_shutdown(writer->cq); diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 8a733879cb52d..b8dc8826a1e14 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -39,12 +39,12 @@ #include "src/c/client_context.h" typedef struct GRPC_client_writer { - grpc_call_op_set finish_ops; + GRPC_call_op_set finish_ops; GRPC_client_context *context; grpc_call *call; grpc_completion_queue *cq; grpc_message *response; -} grpc_client_writer; +} GRPC_client_writer; #endif // GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 18f3d5398c066..6684867418564 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -40,8 +40,10 @@ #include #include #include "src/c/call_ops.h" +#include "init_shutdown.h" GRPC_completion_queue *GRPC_completion_queue_create() { + GRPC_ensure_grpc_init(); return grpc_completion_queue_create(NULL); } @@ -66,7 +68,7 @@ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq) { GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline( GRPC_completion_queue *cq, GRPC_timespec deadline, void **tag, bool *ok) { for (;;) { - grpc_call_op_set *set = NULL; + GRPC_call_op_set *set = NULL; grpc_event ev = grpc_completion_queue_next(cq, deadline, NULL); switch (ev.type) { case GRPC_QUEUE_TIMEOUT: @@ -74,11 +76,11 @@ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline( case GRPC_QUEUE_SHUTDOWN: return GRPC_COMPLETION_QUEUE_SHUTDOWN; case GRPC_OP_COMPLETE: - set = (grpc_call_op_set *)ev.tag; + set = (GRPC_call_op_set *)ev.tag; GPR_ASSERT(set != NULL); GPR_ASSERT(set->context != NULL); // run post-processing for async operations - bool status = grpc_finish_op_from_call_set(set, set->context); + bool status = GRPC_finish_op_from_call_set(set, set->context); bool hide_from_user = set->hide_from_user; void *user_tag = set->user_tag; @@ -111,12 +113,12 @@ bool GRPC_completion_queue_pluck_internal(GRPC_completion_queue *cq, void *tag) { gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_REALTIME); grpc_event ev = grpc_completion_queue_pluck(cq, tag, deadline, NULL); - grpc_call_op_set *set = (grpc_call_op_set *)ev.tag; + GRPC_call_op_set *set = (GRPC_call_op_set *)ev.tag; GPR_ASSERT(set != NULL); GPR_ASSERT(set->context != NULL); GPR_ASSERT(set->user_tag == ev.tag); // run post-processing - bool status = grpc_finish_op_from_call_set(set, set->context); + bool status = GRPC_finish_op_from_call_set(set, set->context); // run user-defined cleanup if (set->async_cleanup.callback) { set->async_cleanup.callback(set->async_cleanup.arg); diff --git a/src/c/init_shutdown.c b/src/c/init_shutdown.c index 56078b6e5e2ab..bcc29d1f7f1a7 100644 --- a/src/c/init_shutdown.c +++ b/src/c/init_shutdown.c @@ -42,7 +42,7 @@ static void perform_grpc_init() { GPR_ASSERT(atexit(grpc_shutdown) == 0); } -void grpc_ensure_grpc_init() { +void GRPC_ensure_grpc_init() { static gpr_once once_var = GPR_ONCE_INIT; gpr_once_init(&once_var, perform_grpc_init); } diff --git a/src/c/init_shutdown.h b/src/c/init_shutdown.h index 0a4347c797aed..3a8075aae2bdb 100644 --- a/src/c/init_shutdown.h +++ b/src/c/init_shutdown.h @@ -34,6 +34,6 @@ #ifndef GRPC_C_INTERNAL_GRPC_INIT_SHUTDOWN_H #define GRPC_C_INTERNAL_GRPC_INIT_SHUTDOWN_H -void grpc_ensure_grpc_init(); +void GRPC_ensure_grpc_init(); #endif // GRPC_C_INTERNAL_GRPC_INIT_SHUTDOWN_H diff --git a/src/c/server.c b/src/c/server.c index a82221718de3e..53f0e65943c2e 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -32,17 +32,64 @@ */ #include +#include #include "src/c/server.h" #include "src/c/alloc.h" +#include "src/c/init_shutdown.h" GRPC_server *GRPC_build_server(GRPC_build_server_options options) { + GRPC_ensure_grpc_init(); grpc_server *core_server = grpc_server_create(NULL, NULL); GRPC_server *server = GRPC_ALLOC_STRUCT(GRPC_server, { - .core_server = core_server + .core_server = core_server, + .internal_queue = grpc_completion_queue_create(NULL) }); + GRPC_array_init(server->registered_queues); return server; } +GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue(GRPC_server *server) { + GRPC_incoming_notification_queue *queue = GRPC_incoming_notification_queue_create(); + grpc_server_register_completion_queue(server->core_server, queue->cq, NULL); + // Stores the completion queue for destruction + GRPC_array_push_back(server->registered_queues, queue); + return queue; +} + void GRPC_server_start(GRPC_server *server) { grpc_server_start(server->core_server); } + +void GRPC_server_shutdown(GRPC_server *server) { + grpc_server_shutdown_and_notify(server->core_server, server->internal_queue, NULL); + // Wait for server to shutdown + for (;;) { + grpc_event ev = grpc_completion_queue_next(server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + if (ev.type == GRPC_OP_COMPLETE) break; + } + // Shutdown all registered queues + int i; + for (i = 0; i < server->registered_queues.state.size; i++) { + GRPC_completion_queue_shutdown(server->registered_queues.data[i]->cq); + } + // Wait for them to shutdown + for (i = 0; i < server->registered_queues.state.size; i++) { + GRPC_completion_queue_shutdown_wait(server->registered_queues.data[i]->cq); + } + for (;;) { + grpc_event ev = grpc_completion_queue_next(server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + if (ev.type == GRPC_QUEUE_SHUTDOWN) break; + } +} + +void GRPC_server_destroy(GRPC_server *server) { + int i; + for (i = 0; i < server->registered_queues.state.size; i++) { + GRPC_incoming_notification_queue_destroy(server->registered_queues.data[i]); + } + GRPC_array_deinit(server->registered_queues); + + grpc_completion_queue_destroy(server->internal_queue); + + grpc_server_destroy(server->core_server); +} diff --git a/src/c/server.h b/src/c/server.h index 318dfb5ae5ad3..0245109c9aa9c 100644 --- a/src/c/server.h +++ b/src/c/server.h @@ -37,12 +37,17 @@ #include #include #include +#include "src/c/array.h" #include "src/c/server_incoming_queue.h" typedef struct GRPC_server GRPC_server; struct GRPC_server { grpc_server *core_server; + GRPC_array(GRPC_incoming_notification_queue*) registered_queues; + + // used to monitor server events + grpc_completion_queue *internal_queue; // async diff --git a/src/c/server_context.c b/src/c/server_context.c index ccbc3149065bc..7030fa421f437 100644 --- a/src/c/server_context.c +++ b/src/c/server_context.c @@ -34,10 +34,11 @@ #include "src/c/server_context.h" #include "src/c/alloc.h" -GRPC_server_context *GRPC_server_context_create() { +GRPC_server_context *GRPC_server_context_create(GRPC_server *server) { GRPC_server_context *context = GRPC_ALLOC_STRUCT(GRPC_server_context, { .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), - .serialization_impl = {.serialize = NULL, .deserialize = NULL} + .serialization_impl = {.serialize = NULL, .deserialize = NULL}, + .server = server }); grpc_metadata_array_init(&context->send_trailing_metadata_array); diff --git a/src/c/server_context.h b/src/c/server_context.h index 84f879cccfda6..f55ee3bd56f13 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -37,12 +37,14 @@ #include "src/c/context.h" #include -typedef struct GRPC_server_context grpc_server_context; +typedef struct GRPC_server_context GRPC_server_context; struct GRPC_server_context { GRPC_C_CONTEXT_BASE_MEMBERS; // server-side specific + GRPC_server *server; + grpc_call_details call_details; // trailing metadata grpc_metadata_array send_trailing_metadata_array; // status code to be sent to the client diff --git a/src/c/server_incoming_queue.c b/src/c/server_incoming_queue.c index 7cfdf51ad6c7c..45abd9e87b4c1 100644 --- a/src/c/server_incoming_queue.c +++ b/src/c/server_incoming_queue.c @@ -31,6 +31,7 @@ * */ +#include #include #include #include "src/c/server_incoming_queue.h" @@ -43,3 +44,8 @@ GRPC_incoming_notification_queue *GRPC_incoming_notification_queue_create() { }); return queue; } + +void GRPC_incoming_notification_queue_destroy(GRPC_incoming_notification_queue *queue) { + GRPC_completion_queue_destroy(queue->cq); + gpr_free(queue); +} diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 465032c788f8f..1065305b768be 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -51,17 +51,17 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( context->call = call; context->rpc_method = rpc_method; - grpc_call_op_set set = { + GRPC_call_op_set set = { {grpc_op_send_metadata, grpc_op_send_object, grpc_op_client_send_close}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; GRPC_client_reader *reader = GRPC_ALLOC_STRUCT( - grpc_client_reader, { + GRPC_client_reader, { .context = context, .call = call, .cq = cq, }); - grpc_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), request, + GRPC_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), request, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return reader; @@ -69,30 +69,30 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *response) { - grpc_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, + GRPC_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, .context = GRPC_client_context_to_base(reader->context), .user_tag = &set_meta}; - grpc_call_op_set set_no_meta = {{grpc_op_recv_object}, + GRPC_call_op_set set_no_meta = {{grpc_op_recv_object}, .context = GRPC_client_context_to_base(reader->context), .user_tag = &set_no_meta}; - grpc_call_op_set *pSet = NULL; + GRPC_call_op_set *pSet = NULL; if (reader->context->initial_metadata_received == false) { pSet = &set_meta; } else { pSet = &set_no_meta; } - grpc_start_batch_from_op_set(reader->call, pSet, GRPC_client_context_to_base(reader->context), - (GRPC_message){0, 0}, response); + GRPC_start_batch_from_op_set(reader->call, pSet, GRPC_client_context_to_base(reader->context), + (GRPC_message) {0, 0}, response); return GRPC_completion_queue_pluck_internal(reader->cq, pSet) && pSet->message_received; } GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { - grpc_call_op_set set = { + GRPC_call_op_set set = { {grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(reader->context), .user_tag = &set}; - grpc_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), - (GRPC_message){0, 0}, NULL); + GRPC_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), + (GRPC_message) {0, 0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, &set); GRPC_completion_queue_shutdown(reader->cq); GRPC_completion_queue_shutdown_wait(reader->cq); diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 2c28f30d0a005..02dfc4a766e2a 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -42,6 +42,6 @@ typedef struct GRPC_client_reader { GRPC_client_context *context; grpc_call *call; grpc_completion_queue *cq; -} grpc_client_reader; +} GRPC_client_reader; #endif // GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index cc5a0f82247be..78f7cdb9ce50e 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -76,9 +76,9 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( // Different from blocking call, we need to inform completion queue to run // cleanup for us reader->finish_buf.async_cleanup = - (grpc_closure){.arg = reader, .callback = free_client_reader_and_call}; + (GRPC_closure){.arg = reader, .callback = free_client_reader_and_call}; - grpc_start_batch_from_op_set(reader->call, &reader->init_buf, GRPC_client_context_to_base(reader->context), + GRPC_start_batch_from_op_set(reader->call, &reader->init_buf, GRPC_client_context_to_base(reader->context), request, NULL); return reader; } @@ -86,17 +86,35 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { reader->meta_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->meta_buf, GRPC_client_context_to_base(reader->context), - (GRPC_message){0, 0}, NULL); + GRPC_start_batch_from_op_set(reader->call, &reader->meta_buf, GRPC_client_context_to_base(reader->context), + (GRPC_message) {0, 0}, NULL); } void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag) { reader->finish_buf.user_tag = tag; - grpc_start_batch_from_op_set(reader->call, &reader->finish_buf, - GRPC_client_context_to_base(reader->context), (GRPC_message){0, 0}, response); + GRPC_start_batch_from_op_set(reader->call, &reader->finish_buf, + GRPC_client_context_to_base(reader->context), (GRPC_message) {0, 0}, response); } // // Server // + +GRPC_server_async_response_writer *GRPC_unary_async_server_request( + const GRPC_method rpc_method, + GRPC_server_context *const context, + void* request, + GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, + void *tag) { + +} + +void GRPC_unary_async_server_finish( + GRPC_server_async_response_writer *writer, + const GRPC_message response, + const grpc_status_code server_status, + void *tag) { + +} diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index 157b8e10e537d..e612d13e4e415 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -39,24 +39,17 @@ #include "src/c/server_context.h" typedef struct GRPC_client_async_response_reader { - grpc_call_op_set init_buf; - grpc_call_op_set meta_buf; - grpc_call_op_set finish_buf; + GRPC_call_op_set init_buf; + GRPC_call_op_set meta_buf; + GRPC_call_op_set finish_buf; grpc_completion_queue *cq; GRPC_client_context *context; grpc_call *call; -} grpc_client_async_response_reader; +} GRPC_client_async_response_reader; -typedef struct grpc_server_async_response_writer { - grpc_call_op_set init_buf; - grpc_call_op_set meta_buf; - grpc_call_op_set finish_buf; - - grpc_completion_queue *cq; +typedef struct GRPC_server_async_response_writer { GRPC_server_context *context; - grpc_call *call; -} grpc_server_async_response_writer; - +} GRPC_server_async_response_writer; #endif // GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 61b8069494f8d..20ecb5393ffbf 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -31,13 +31,10 @@ * */ +#include #include "src/c/unary_blocking_call.h" #include -#include -#include -#include #include "src/c/call_ops.h" -#include "src/c/client_context.h" #include "src/c/completion_queue.h" GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, @@ -49,13 +46,13 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method.name, "", context->deadline, NULL); context->call = call; - grpc_call_op_set set = { + GRPC_call_op_set set = { {grpc_op_send_metadata, grpc_op_recv_metadata, grpc_op_send_object, grpc_op_recv_object, grpc_op_client_send_close, grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; - grpc_start_batch_from_op_set(call, &set, GRPC_client_context_to_base(context), message, response); + GRPC_start_batch_from_op_set(call, &set, GRPC_client_context_to_base(context), message, response); for (;;) { void *tag; bool ok; diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 3464b7e8eb93f..0616c7c8f8fda 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -131,6 +131,40 @@ void PrintIncludes(Printer *printer, const std::vector &headers, } } +// Prints declaration of a single server method +void PrintHeaderServerMethod(Printer *printer, const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + + if (method->NoStreaming()) { + // Unary + + printer->Print( + *vars, + "/* Async */\n" + "void $CPrefix$$Service$_$Method$_ServerRequest(\n" + " GRPC_server_context *const context,\n" + " $CPrefix$$Request$ *request,\n" + " GRPC_incoming_notification_queue *incoming_queue,\n" + " GRPC_completion_queue *processing_queue,\n" + " void *tag);\n" + "\n"); + + printer->Print( + *vars, + "void $CPrefix$$Service$_$Method$_ServerFinish(\n" + " GRPC_server_context *const context,\n" + " $CPrefix$$Response$ *response,\n" + " GRPC_status_code server_status,\n" + " void *tag);\n" + "\n"); + } + + printer->Print("\n\n"); +} + // Prints declaration of a single client method void PrintHeaderClientMethod(Printer *printer, const Method *method, std::map *vars) { @@ -141,12 +175,15 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, if (method->NoStreaming()) { // Unary - printer->Print(*vars, - "/* Sync */\n" - "GRPC_status $CPrefix$$Service$_$Method$(\n" - " GRPC_client_context *const context,\n" - " const $CPrefix$$Request$ request,\n" - " $CPrefix$$Response$ *response);\n"); + printer->Print( + *vars, + "/* Sync */\n" + "GRPC_status $CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " const $CPrefix$$Request$ request,\n" + " $CPrefix$$Response$ *response);\n" + "\n"); + printer->Print( *vars, "\n" @@ -162,7 +199,6 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, " $CPrefix$$Response$ *response,\n" " void *tag);\n" "/* call GRPC_completion_queue_next on the cq to wait for result */\n" - "\n" "\n"); } else if (method->ClientOnlyStreaming()) { @@ -209,7 +245,6 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, "*/\n" "/* The writer object is automatically freed when the request ends. " "*/\n" - "\n" "\n"); } else if (method->ServerOnlyStreaming()) { @@ -253,7 +288,6 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, " void *tag);\n" "/* call GRPC_completion_queue_next on the cq to wait for result */\n" "/* the reader object is automatically freed when the request ends */\n" - "\n" "\n"); } else if (method->BidiStreaming()) { @@ -309,9 +343,10 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, "/* call GRPC_completion_queue_next on the cq to wait for result */\n" "/* the reader-writer object is automatically freed when the request " "ends */\n" - "\n" "\n"); } + + printer->Print("\n\n"); } // Prints declaration of a single service @@ -325,6 +360,7 @@ void PrintHeaderService(Printer *printer, const Service *service, printer->Print(BlockifyComments(service->GetLeadingComments()).c_str()); // Client side + printer->Print("/* Client */\n"); for (int i = 0; i < service->method_count(); ++i) { printer->Print( BlockifyComments(service->method(i)->GetLeadingComments()).c_str()); @@ -334,11 +370,70 @@ void PrintHeaderService(Printer *printer, const Service *service, } printer->Print("\n\n"); - // Server side - TBD + // Server side + printer->Print("/* Server */\n"); + for (int i = 0; i < service->method_count(); ++i) { + printer->Print( + BlockifyComments(service->method(i)->GetLeadingComments()).c_str()); + PrintHeaderServerMethod(printer, service->method(i).get(), vars); + printer->Print( + BlockifyComments(service->method(i)->GetTrailingComments()).c_str()); + } + printer->Print("\n\n"); printer->Print(BlockifyComments(service->GetTrailingComments()).c_str()); } +void PrintSourceServerMethod(Printer *printer, const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + + if (method->NoStreaming()) { + // Unary + + printer->Print( + *vars, + "GRPC_server_async_response_writer *" + "$CPrefix$$Service$_$Method$_ServerRequest(\n" + " GRPC_server_context *const context,\n" + " $CPrefix$$Request$ *request,\n" + " GRPC_incoming_notification_queue *incoming_queue,\n" + " GRPC_completion_queue *processing_queue,\n" + " void *tag) {\n" + " GRPC_client_context_set_serialization_impl(context,\n" + " (grpc_serialization_impl) { " + "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " + "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" + " return GRPC_unary_async_server_request(\n" + " GRPC_method_$CPrefix$$Service$_$Method$,\n" + " context,\n" + " request,\n" + " incoming_queue,\n" + " processing_queue,\n" + " tag);\n" + "}\n" + "\n"); + + printer->Print( + *vars, + "void $CPrefix$$Service$_$Method$_ServerFinish(\n" + " GRPC_server_async_response_writer *writer,\n" + " $CPrefix$$Response$ *response,\n" + " GRPC_status_code server_status,\n" + " void *tag) {\n" + " const GRPC_message response_msg = { response, sizeof(*response) };\n" + " GRPC_unary_async_server_finish(\n" + " writer,\n" + " response_msg,\n" + " server_status,\n" + " tag);\n" + "}\n" + "\n"); + } +} + // Prints implementation of a single client method void PrintSourceClientMethod(Printer *printer, const Method *method, std::map *vars) { @@ -356,13 +451,14 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, (*vars)["MethodEnum"] = "BIDI_STREAMING"; } - printer->Print(*vars, - "\n" - "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" - " $MethodEnum$,\n" - " \"/$Package$$Service$/$Method$\"\n" - "};\n" - "\n"); + printer->Print( + *vars, + "\n" + "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" + " $MethodEnum$,\n" + " \"/$Package$$Service$/$Method$\"\n" + "};\n" + "\n"); if (method->NoStreaming()) { // Unary @@ -524,11 +620,6 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, } } -void PrintSourceServerMethod(Printer *printer, const Method *method, - std::map *vars) { - // TBD -} - // Prints implementation of all methods in a service void PrintSourceService(Printer *printer, const Service *service, std::map *vars) { From 7ce18972f5d10a489a385c132c6cac4fb625eab4 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 11 Aug 2016 16:15:38 -0700 Subject: [PATCH 177/202] clang formatting --- include/grpc_c/codegen/unary_async_call.h | 20 +++--- include/grpc_c/declare_serializer.h | 20 +++++- include/grpc_c/grpc_c.h | 13 ++-- include/grpc_c/server.h | 3 +- include/grpc_c/server_context.h | 2 +- include/grpc_c/server_incoming_queue.h | 3 +- src/c/array.c | 14 ++-- src/c/array.h | 41 +++++++---- src/c/bidi_streaming_blocking_call.c | 73 +++++++++++-------- src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.c | 86 +++++++++++------------ src/c/call_ops.h | 9 +-- src/c/client_context.c | 5 +- src/c/client_streaming_blocking_call.c | 41 ++++++----- src/c/completion_queue.c | 2 +- src/c/context.h | 24 +++---- src/c/server.c | 26 ++++--- src/c/server.h | 6 +- src/c/server_context.c | 15 ++-- src/c/server_context.h | 2 +- src/c/server_incoming_queue.c | 12 ++-- src/c/server_incoming_queue.h | 5 +- src/c/server_streaming_blocking_call.c | 33 +++++---- src/c/unary_async_call.c | 36 +++++----- src/c/unary_blocking_call.c | 8 ++- 25 files changed, 276 insertions(+), 225 deletions(-) diff --git a/include/grpc_c/codegen/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h index c3fec6e272c8e..654b9e03bcbb4 100644 --- a/include/grpc_c/codegen/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -50,17 +50,13 @@ void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); GRPC_server_async_response_writer *GRPC_unary_async_server_request( - const GRPC_method rpc_method, - GRPC_server_context *const context, - void* request, - GRPC_incoming_notification_queue *incoming_queue, - GRPC_completion_queue *processing_queue, - void *tag); - -void GRPC_unary_async_server_finish( - GRPC_server_async_response_writer *writer, - const GRPC_message response, - const grpc_status_code server_status, - void *tag); + const GRPC_method rpc_method, GRPC_server_context *const context, + void *request, GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, void *tag); + +void GRPC_unary_async_server_finish(GRPC_server_async_response_writer *writer, + const GRPC_message response, + const grpc_status_code server_status, + void *tag); #endif /* GRPC_C_CODEGEN_UNARY_ASYNC_CALL_H */ diff --git a/include/grpc_c/declare_serializer.h b/include/grpc_c/declare_serializer.h index 2701e9899947b..f446bb3f1bd9f 100644 --- a/include/grpc_c/declare_serializer.h +++ b/include/grpc_c/declare_serializer.h @@ -39,11 +39,25 @@ * ====================================================================== * * First take a look at - * https://github.com/google/flatbuffers/blob/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70/include/flatbuffers/grpc.h which glues FlatBuffers to gRPC-C++. For every new serialization algorithm, we need to create a similar file that imports this declare_serializer.h, and partially specializes the GRPC_SERIALIZATION_IMPL_MSGTYPE macro defined here. This mirrors the C++ template partial specialization method and allows plugging in new serialization implementations with zero knowledge from the gRPC library. Of course we need to include this file in our message header, which is in turn referenced by the generated service implementation. This will typically be controlled by a switch in the codegen, so as to avoid constantly pulling in the gRPC dependency in any other use cases of the serialization library. + * https://github.com/google/flatbuffers/blob/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70/include/flatbuffers/grpc.h + * which glues FlatBuffers to gRPC-C++. For every new serialization algorithm, + * we need to create a similar file that imports this declare_serializer.h, and + * partially specializes the GRPC_SERIALIZATION_IMPL_MSGTYPE macro defined here. + * This mirrors the C++ template partial specialization method and allows + * plugging in new serialization implementations with zero knowledge from the + * gRPC library. Of course we need to include this file in our message header, + * which is in turn referenced by the generated service implementation. This + * will typically be controlled by a switch in the codegen, so as to avoid + * constantly pulling in the gRPC dependency in any other use cases of the + * serialization library. * - * Because we wouldn't want to hack the Nanopb, specializations for Nanopb are hardcoded in the gRPC library, and are automatically activated when Nanopb objects are detected. + * Because we wouldn't want to hack the Nanopb, specializations for Nanopb are + * hardcoded in the gRPC library, and are automatically activated when Nanopb + * objects are detected. * - * The service implementation expands the GRPC_C_RESOLVE_SERIALIZER(MessageType) macro, which is expected to provide the grpc_serialization_impl struct instance that handles serialization for that particular message type. + * The service implementation expands the GRPC_C_RESOLVE_SERIALIZER(MessageType) + * macro, which is expected to provide the grpc_serialization_impl struct + * instance that handles serialization for that particular message type. */ #define GRPC_C_RESOLVE_SERIALIZER(msgType) \ diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 8fec22c434d11..481d3bbc3e3bb 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -34,12 +34,15 @@ #ifndef GRPC_C_GRPC_C_H #define GRPC_C_GRPC_C_H -typedef struct grpc_channel GRPC_channel; /* using core data type */ -typedef struct GRPC_context GRPC_context; /* base class for client and server context */ +typedef struct grpc_channel GRPC_channel; /* using core data type */ +typedef struct GRPC_context + GRPC_context; /* base class for client and server context */ typedef struct GRPC_client_context GRPC_client_context; typedef struct GRPC_server_context GRPC_server_context; -typedef struct grpc_completion_queue GRPC_completion_queue; /* using core data type */ -typedef struct GRPC_incoming_notification_queue GRPC_incoming_notification_queue; +typedef struct grpc_completion_queue + GRPC_completion_queue; /* using core data type */ +typedef struct GRPC_incoming_notification_queue + GRPC_incoming_notification_queue; typedef struct GRPC_server GRPC_server; typedef struct GRPC_client_reader_writer GRPC_client_reader_writer; @@ -52,6 +55,6 @@ typedef struct GRPC_client_async_response_reader GRPC_client_async_response_reader; typedef struct GRPC_server_async_response_writer - GRPC_server_async_response_writer; + GRPC_server_async_response_writer; #endif /* GRPC_C_GRPC_C_H */ diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h index 2afc4189d3675..845f8611d1d74 100644 --- a/include/grpc_c/server.h +++ b/include/grpc_c/server.h @@ -44,7 +44,8 @@ typedef struct GRPC_build_server_options { } GRPC_build_server_options; GRPC_server *GRPC_build_server(GRPC_build_server_options options); -GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue(GRPC_server *server); +GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue( + GRPC_server *server); void GRPC_server_start(GRPC_server *server); void GRPC_server_shutdown(GRPC_server *server); void GRPC_server_destroy(GRPC_server *server); diff --git a/include/grpc_c/server_context.h b/include/grpc_c/server_context.h index 98ec74d17c424..c217eddcbaf09 100644 --- a/include/grpc_c/server_context.h +++ b/include/grpc_c/server_context.h @@ -40,4 +40,4 @@ GRPC_server_context *GRPC_server_context_create(GRPC_server *server); GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context); -#endif /* GRPC_C_SERVER_CONTEXT_H */ +#endif /* GRPC_C_SERVER_CONTEXT_H */ diff --git a/include/grpc_c/server_incoming_queue.h b/include/grpc_c/server_incoming_queue.h index c5be742160440..e6e8885093ec7 100644 --- a/include/grpc_c/server_incoming_queue.h +++ b/include/grpc_c/server_incoming_queue.h @@ -36,7 +36,8 @@ #include -typedef struct GRPC_incoming_notification_queue GRPC_incoming_notification_queue; +typedef struct GRPC_incoming_notification_queue + GRPC_incoming_notification_queue; struct GRPC_incoming_notification_queue { GRPC_completion_queue *cq; diff --git a/src/c/array.c b/src/c/array.c index 7b40c2617374d..35dfd31dd1505 100644 --- a/src/c/array.c +++ b/src/c/array.c @@ -31,17 +31,19 @@ * */ -#include #include "src/c/array.h" +#include -void GRPC_array_init_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size) { +void GRPC_array_init_impl(GRPC_array_state *state, void *data_ptr, + size_t elem_size) { void **data = data_ptr; state->capacity = 4; state->size = 0; *data = gpr_malloc(elem_size * 4); } -void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size) { +void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, + size_t elem_size) { if (state->size == 0) return; void **data = data_ptr; state->size--; @@ -51,7 +53,8 @@ void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, size_t el } } -void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, size_t elem_size, size_t target_size) { +void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, + size_t elem_size, size_t target_size) { if (target_size <= state->capacity) return; void **data = data_ptr; while (state->capacity < target_size) { @@ -60,7 +63,8 @@ void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, size_t } } -void GRPC_array_deinit_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size) { +void GRPC_array_deinit_impl(GRPC_array_state *state, void *data_ptr, + size_t elem_size) { void **data = data_ptr; if (*data) { gpr_free(*data); diff --git a/src/c/array.h b/src/c/array.h index 56a42703b4e83..924802ed80b84 100644 --- a/src/c/array.h +++ b/src/c/array.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_INTERNAL_ARRAY_H #define GRPC_C_INTERNAL_ARRAY_H -#include #include +#include /** * Implements a generic array structure @@ -52,19 +52,32 @@ typedef struct GRPC_array_state { size_t capacity; } GRPC_array_state; -void GRPC_array_init_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size); -void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size); -void GRPC_array_deinit_impl(GRPC_array_state *state, void *data_ptr, size_t elem_size); -void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, size_t elem_size, size_t target_size); +void GRPC_array_init_impl(GRPC_array_state *state, void *data_ptr, + size_t elem_size); +void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, + size_t elem_size); +void GRPC_array_deinit_impl(GRPC_array_state *state, void *data_ptr, + size_t elem_size); +void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, + size_t elem_size, size_t target_size); -#define GRPC_array(type) struct { type *data; GRPC_array_state state; } -#define GRPC_array_init(arr) GRPC_array_init_impl(&arr.state, &arr.data, sizeof(*arr.data)); +#define GRPC_array(type) \ + struct { \ + type *data; \ + GRPC_array_state state; \ + } +#define GRPC_array_init(arr) \ + GRPC_array_init_impl(&arr.state, &arr.data, sizeof(*arr.data)); // Cannot delegate to a function since we do not know the type of input -#define GRPC_array_push_back(arr, ...) { \ - GRPC_array_ensure_capacity(&arr.state, &arr.data, sizeof(*arr.data), arr.state.size + 1); \ - arr.data[arr.state.size++] = (__VA_ARGS__); \ -} -#define GRPC_array_pop_back(arr) GRPC_array_pop_back_impl(&arr.state, &arr.data, sizeof(*arr.data)); -#define GRPC_array_deinit(arr) GRPC_array_deinit_impl(&arr.state, &arr.data, sizeof(*arr.data)); +#define GRPC_array_push_back(arr, ...) \ + { \ + GRPC_array_ensure_capacity(&arr.state, &arr.data, sizeof(*arr.data), \ + arr.state.size + 1); \ + arr.data[arr.state.size++] = (__VA_ARGS__); \ + } +#define GRPC_array_pop_back(arr) \ + GRPC_array_pop_back_impl(&arr.state, &arr.data, sizeof(*arr.data)); +#define GRPC_array_deinit(arr) \ + GRPC_array_deinit_impl(&arr.state, &arr.data, sizeof(*arr.data)); -#endif // GRPC_C_INTERNAL_ARRAY_H +#endif // GRPC_C_INTERNAL_ARRAY_H diff --git a/src/c/bidi_streaming_blocking_call.c b/src/c/bidi_streaming_blocking_call.c index 4e10da835ce41..799852cfe1131 100644 --- a/src/c/bidi_streaming_blocking_call.c +++ b/src/c/bidi_streaming_blocking_call.c @@ -49,17 +49,19 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( context->call = call; context->rpc_method = rpc_method; - GRPC_call_op_set set = { - {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; + GRPC_call_op_set set = {{grpc_op_send_metadata}, + .context = GRPC_client_context_to_base(context), + .user_tag = &set}; GRPC_client_reader_writer *reader_writer = GRPC_ALLOC_STRUCT( GRPC_client_reader_writer, { .context = context, .call = call, .cq = cq, }); - GRPC_start_batch_from_op_set(reader_writer->call, &set, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, - NULL); + GRPC_start_batch_from_op_set( + reader_writer->call, &set, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + NULL); bool ok = GRPC_completion_queue_pluck_internal(cq, &set); if (!ok) { GRPC_client_reader_writer_terminate(reader_writer); @@ -71,12 +73,14 @@ GRPC_client_reader_writer *GRPC_bidi_streaming_blocking_call( bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, void *response) { - GRPC_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, - .context = GRPC_client_context_to_base(reader_writer->context), - .user_tag = &set_meta}; - GRPC_call_op_set set_no_meta = {{grpc_op_recv_object}, - .context = GRPC_client_context_to_base(reader_writer->context), - .user_tag = &set_no_meta}; + GRPC_call_op_set set_meta = { + {grpc_op_recv_metadata, grpc_op_recv_object}, + .context = GRPC_client_context_to_base(reader_writer->context), + .user_tag = &set_meta}; + GRPC_call_op_set set_no_meta = { + {grpc_op_recv_object}, + .context = GRPC_client_context_to_base(reader_writer->context), + .user_tag = &set_no_meta}; GRPC_call_op_set *pSet = NULL; if (reader_writer->context->initial_metadata_received == false) { pSet = &set_meta; @@ -84,9 +88,10 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, pSet = &set_no_meta; } - GRPC_start_batch_from_op_set(reader_writer->call, pSet, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, - response); + GRPC_start_batch_from_op_set( + reader_writer->call, pSet, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + response); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, pSet); reader_writer->context->status.ok &= ok; return ok && pSet->message_received; @@ -94,12 +99,14 @@ bool GRPC_bidi_streaming_blocking_read(GRPC_client_reader_writer *reader_writer, bool GRPC_bidi_streaming_blocking_write( GRPC_client_reader_writer *reader_writer, const GRPC_message request) { - GRPC_call_op_set set = {{grpc_op_send_object}, - .context = GRPC_client_context_to_base(reader_writer->context), - .user_tag = &set}; + GRPC_call_op_set set = { + {grpc_op_send_object}, + .context = GRPC_client_context_to_base(reader_writer->context), + .user_tag = &set}; - GRPC_start_batch_from_op_set(reader_writer->call, &set, - GRPC_client_context_to_base(reader_writer->context), request, NULL); + GRPC_start_batch_from_op_set( + reader_writer->call, &set, + GRPC_client_context_to_base(reader_writer->context), request, NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); reader_writer->context->status.ok &= ok; return ok; @@ -107,13 +114,15 @@ bool GRPC_bidi_streaming_blocking_write( bool GRPC_bidi_streaming_blocking_writes_done( GRPC_client_reader_writer *reader_writer) { - GRPC_call_op_set set = {{grpc_op_client_send_close}, - .context = GRPC_client_context_to_base(reader_writer->context), - .user_tag = &set}; + GRPC_call_op_set set = { + {grpc_op_client_send_close}, + .context = GRPC_client_context_to_base(reader_writer->context), + .user_tag = &set}; - GRPC_start_batch_from_op_set(reader_writer->call, &set, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, - NULL); + GRPC_start_batch_from_op_set( + reader_writer->call, &set, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, (&set)); reader_writer->context->status.ok &= ok; return ok; @@ -121,12 +130,14 @@ bool GRPC_bidi_streaming_blocking_writes_done( GRPC_status GRPC_client_reader_writer_terminate( GRPC_client_reader_writer *reader_writer) { - GRPC_call_op_set set = {{grpc_op_client_recv_status}, - .context = GRPC_client_context_to_base(reader_writer->context), - .user_tag = &set}; - GRPC_start_batch_from_op_set(reader_writer->call, &set, - GRPC_client_context_to_base(reader_writer->context), (GRPC_message) {0, 0}, - NULL); + GRPC_call_op_set set = { + {grpc_op_client_recv_status}, + .context = GRPC_client_context_to_base(reader_writer->context), + .user_tag = &set}; + GRPC_start_batch_from_op_set( + reader_writer->call, &set, + GRPC_client_context_to_base(reader_writer->context), (GRPC_message){0, 0}, + NULL); bool ok = GRPC_completion_queue_pluck_internal(reader_writer->cq, &set); GRPC_completion_queue_shutdown(reader_writer->cq); GRPC_completion_queue_shutdown_wait(reader_writer->cq); diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index 56e3a2bf73ecd..8d02f6ef2f396 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -35,8 +35,8 @@ #define GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H #include -#include "src/c/client_context.h" #include "src/c/call_ops.h" +#include "src/c/client_context.h" typedef struct GRPC_client_reader_writer { GRPC_client_context *const context; diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 83d3edf306224..2e7cf60e18d04 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -32,14 +32,13 @@ */ #include "src/c/call_ops.h" -#include "src/c/client_context.h" -#include "src/c/server_context.h" #include #include #include +#include "src/c/client_context.h" +#include "src/c/server_context.h" -static bool op_send_metadata_fill(grpc_op *op, - GRPC_context *context, +static bool op_send_metadata_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_INITIAL_METADATA; @@ -56,8 +55,7 @@ static void op_send_metadata_finish(GRPC_context *context, const GRPC_op_manager grpc_op_send_metadata = {op_send_metadata_fill, op_send_metadata_finish}; -static bool op_send_object_fill(grpc_op *op, - GRPC_context *context, +static bool op_send_object_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, const grpc_message message, void *response) { op->op = GRPC_OP_SEND_MESSAGE; @@ -77,18 +75,15 @@ static bool op_send_object_fill(grpc_op *op, return true; } -static void op_send_object_finish(GRPC_context *context, - GRPC_call_op_set *set, bool *status, - int max_message_size) { - if (set->send_buffer) - grpc_byte_buffer_destroy(set->send_buffer); +static void op_send_object_finish(GRPC_context *context, GRPC_call_op_set *set, + bool *status, int max_message_size) { + if (set->send_buffer) grpc_byte_buffer_destroy(set->send_buffer); } const GRPC_op_manager grpc_op_send_object = {op_send_object_fill, op_send_object_finish}; -static bool op_recv_metadata_fill(grpc_op *op, - GRPC_context *context, +static bool op_recv_metadata_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, const grpc_message message, void *response) { if (context->initial_metadata_received) return false; @@ -109,8 +104,7 @@ static void op_recv_metadata_finish(GRPC_context *context, const GRPC_op_manager grpc_op_recv_metadata = {op_recv_metadata_fill, op_recv_metadata_finish}; -static bool op_recv_object_fill(grpc_op *op, - GRPC_context *context, +static bool op_recv_object_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, const grpc_message message, void *response) { set->message_received = false; @@ -123,9 +117,8 @@ static bool op_recv_object_fill(grpc_op *op, return true; } -static void op_recv_object_finish(GRPC_context *context, - GRPC_call_op_set *set, bool *status, - int max_message_size) { +static void op_recv_object_finish(GRPC_context *context, GRPC_call_op_set *set, + bool *status, int max_message_size) { if (set->recv_buffer) { GPR_ASSERT(set->message_received == false); // deserialize @@ -150,10 +143,10 @@ static void op_recv_object_finish(GRPC_context *context, const GRPC_op_manager grpc_op_recv_object = {op_recv_object_fill, op_recv_object_finish}; -static bool op_client_send_close_fill(grpc_op *op, - GRPC_context *context, +static bool op_client_send_close_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, - const grpc_message message, void *response) { + const grpc_message message, + void *response) { op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; op->flags = 0; op->reserved = NULL; @@ -165,12 +158,12 @@ static void op_client_send_close_finish(GRPC_context *context, int max_message_size) {} const GRPC_op_manager grpc_op_client_send_close = {op_client_send_close_fill, - op_client_send_close_finish}; + op_client_send_close_finish}; -static bool op_server_recv_close_fill(grpc_op *op, - GRPC_context *context, +static bool op_server_recv_close_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, - const grpc_message message, void *response) { + const grpc_message message, + void *response) { op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; op->flags = 0; op->reserved = NULL; @@ -184,13 +177,13 @@ static void op_server_recv_close_finish(GRPC_context *context, const GRPC_op_manager grpc_op_server_recv_close = {op_server_recv_close_fill, op_server_recv_close_finish}; -static bool op_client_recv_status_fill(grpc_op *op, - GRPC_context *context, +static bool op_client_recv_status_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, - const grpc_message message, void *response) { + const grpc_message message, + void *response) { op->op = GRPC_OP_RECV_STATUS_ON_CLIENT; - GRPC_client_context *client_context = (GRPC_client_context *) context; + GRPC_client_context *client_context = (GRPC_client_context *)context; grpc_metadata_array_init(&client_context->recv_trailing_metadata_array); client_context->status.details = NULL; client_context->status.details_length = 0; @@ -198,7 +191,8 @@ static bool op_client_recv_status_fill(grpc_op *op, op->data.recv_status_on_client.trailing_metadata = &client_context->recv_trailing_metadata_array; op->data.recv_status_on_client.status = &client_context->status.code; - op->data.recv_status_on_client.status_details = &client_context->status.details; + op->data.recv_status_on_client.status_details = + &client_context->status.details; op->data.recv_status_on_client.status_details_capacity = &client_context->status.details_length; op->flags = 0; @@ -210,19 +204,22 @@ static void op_client_recv_status_finish(GRPC_context *context, GRPC_call_op_set *set, bool *status, int max_message_size) {} -const GRPC_op_manager grpc_op_client_recv_status = {op_client_recv_status_fill, - op_client_recv_status_finish}; +const GRPC_op_manager grpc_op_client_recv_status = { + op_client_recv_status_fill, op_client_recv_status_finish}; -static bool op_server_send_status_fill(grpc_op *op, - GRPC_context *context, +static bool op_server_send_status_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, - const grpc_message message, void *response) { + const grpc_message message, + void *response) { // TODO(yifeit): hook up to server handlers - GRPC_server_context *server_context = (GRPC_server_context *) context; + GRPC_server_context *server_context = (GRPC_server_context *)context; op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; - op->data.send_status_from_server.trailing_metadata_count = server_context->send_trailing_metadata_array.count; - op->data.send_status_from_server.trailing_metadata = server_context->send_trailing_metadata_array.metadata; - op->data.send_status_from_server.status = server_context->server_return_status; + op->data.send_status_from_server.trailing_metadata_count = + server_context->send_trailing_metadata_array.count; + op->data.send_status_from_server.trailing_metadata = + server_context->send_trailing_metadata_array.metadata; + op->data.send_status_from_server.status = + server_context->server_return_status; op->data.send_status_from_server.status_details = NULL; op->flags = 0; op->reserved = NULL; @@ -233,11 +230,10 @@ static void op_server_send_status_finish(GRPC_context *context, GRPC_call_op_set *set, bool *status, int max_message_size) {} -const GRPC_op_manager grpc_op_server_send_status = {op_server_send_status_fill, - op_server_send_status_finish}; +const GRPC_op_manager grpc_op_server_send_status = { + op_server_send_status_fill, op_server_send_status_finish}; -void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, - GRPC_context *context, +void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, const grpc_message message, void *response, grpc_op *ops, size_t *nops) { size_t manager = 0; @@ -247,8 +243,8 @@ void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, set->operations[manager].finish == NULL) break; // end of call set if (set->operations[manager].fill == NULL) continue; - bool result = set->operations[manager].fill( - &ops[filled], context, set, message, response); + bool result = set->operations[manager].fill(&ops[filled], context, set, + message, response); manager++; if (result) filled++; } diff --git a/src/c/call_ops.h b/src/c/call_ops.h index ba410d6edaa58..3552bf33b032f 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -43,8 +43,7 @@ typedef struct GRPC_call_op_set GRPC_call_op_set; -typedef bool (*GRPC_op_filler)(grpc_op *op, - GRPC_context *, GRPC_call_op_set *, +typedef bool (*GRPC_op_filler)(grpc_op *op, GRPC_context *, GRPC_call_op_set *, const grpc_message message, void *response); typedef void (*GRPC_op_finisher)(GRPC_context *, GRPC_call_op_set *, bool *status, int max_message_size); @@ -85,15 +84,13 @@ struct GRPC_call_op_set { /* used to cleanup after RPC */ }; -void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, - GRPC_context *context, +void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, const grpc_message message, void *response, grpc_op *ops, size_t *nops); /* Runs post processing steps in the call op set. Returns false if something * wrong happens e.g. serialization. */ -bool GRPC_finish_op_from_call_set(GRPC_call_op_set *set, - GRPC_context *context); +bool GRPC_finish_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context); void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, GRPC_context *context, diff --git a/src/c/client_context.c b/src/c/client_context.c index ffd56ff979719..cbf715b5d93f4 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -68,8 +68,9 @@ void GRPC_client_context_set_serialization_impl( context->serialization_impl = serialization_impl; } -// We define a conversion function instead of type-casting, which lets the user convert +// We define a conversion function instead of type-casting, which lets the user +// convert // from any pointer to a grpc_context. GRPC_context *GRPC_client_context_to_base(GRPC_client_context *client_context) { - return (GRPC_context *) client_context; + return (GRPC_context *)client_context; } diff --git a/src/c/client_streaming_blocking_call.c b/src/c/client_streaming_blocking_call.c index 2accb0b3bcbe7..32c87941ceeaf 100644 --- a/src/c/client_streaming_blocking_call.c +++ b/src/c/client_streaming_blocking_call.c @@ -49,24 +49,24 @@ GRPC_client_writer *GRPC_client_streaming_blocking_call( context->call = call; context->rpc_method = rpc_method; - GRPC_call_op_set set = { - {grpc_op_send_metadata}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; + GRPC_call_op_set set = {{grpc_op_send_metadata}, + .context = GRPC_client_context_to_base(context), + .user_tag = &set}; GRPC_client_writer *writer = GRPC_ALLOC_STRUCT( - GRPC_client_writer, {.context = context, - .call = call, - .finish_ops = - { - {grpc_op_recv_metadata, grpc_op_recv_object, - grpc_op_client_send_close, grpc_op_client_recv_status}, - .context = GRPC_client_context_to_base(context) - }, - .cq = cq, - .response = response}); + GRPC_client_writer, + {.context = context, + .call = call, + .finish_ops = {{grpc_op_recv_metadata, grpc_op_recv_object, + grpc_op_client_send_close, grpc_op_client_recv_status}, + .context = GRPC_client_context_to_base(context)}, + .cq = cq, + .response = response}); writer->finish_ops.user_tag = &writer->finish_ops; - GRPC_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), - (GRPC_message) {0, 0}, NULL); + GRPC_start_batch_from_op_set(writer->call, &set, + GRPC_client_context_to_base(writer->context), + (GRPC_message){0, 0}, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return writer; } @@ -74,17 +74,20 @@ GRPC_client_writer *GRPC_client_streaming_blocking_call( bool GRPC_client_streaming_blocking_write(GRPC_client_writer *writer, const GRPC_message request) { GRPC_call_op_set set = { - {grpc_op_send_object}, .context = GRPC_client_context_to_base(writer->context), .user_tag = &set}; + {grpc_op_send_object}, + .context = GRPC_client_context_to_base(writer->context), + .user_tag = &set}; - GRPC_start_batch_from_op_set(writer->call, &set, GRPC_client_context_to_base(writer->context), request, - NULL); + GRPC_start_batch_from_op_set(writer->call, &set, + GRPC_client_context_to_base(writer->context), + request, NULL); return GRPC_completion_queue_pluck_internal(writer->cq, &set); } GRPC_status GRPC_client_writer_terminate(GRPC_client_writer *writer) { GRPC_start_batch_from_op_set(writer->call, &writer->finish_ops, - GRPC_client_context_to_base(writer->context), (GRPC_message) {0, 0}, - writer->response); + GRPC_client_context_to_base(writer->context), + (GRPC_message){0, 0}, writer->response); GRPC_completion_queue_pluck_internal(writer->cq, &writer->finish_ops); GRPC_completion_queue_shutdown(writer->cq); GRPC_completion_queue_shutdown_wait(writer->cq); diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 6684867418564..0ebf3641124b1 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -39,8 +39,8 @@ #include #include #include -#include "src/c/call_ops.h" #include "init_shutdown.h" +#include "src/c/call_ops.h" GRPC_completion_queue *GRPC_completion_queue_create() { GRPC_ensure_grpc_init(); diff --git a/src/c/context.h b/src/c/context.h index c146f7c17b148..68e46f21db9e3 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -48,22 +48,22 @@ typedef struct GRPC_context GRPC_context; /** * Both client and server context shares this common stub. */ -#define GRPC_C_CONTEXT_BASE_MEMBERS \ - grpc_metadata *send_metadata_array; \ - grpc_metadata_array recv_metadata_array; \ - gpr_timespec deadline; \ -\ +#define GRPC_C_CONTEXT_BASE_MEMBERS \ + grpc_metadata *send_metadata_array; \ + grpc_metadata_array recv_metadata_array; \ + gpr_timespec deadline; \ + \ /* serialization mechanism used in this call */ \ - grpc_serialization_impl serialization_impl; \ -\ - /* state tracking */ \ - bool initial_metadata_received; \ - grpc_method rpc_method; \ - grpc_channel *channel; \ + grpc_serialization_impl serialization_impl; \ + \ + /* state tracking */ \ + bool initial_metadata_received; \ + grpc_method rpc_method; \ + grpc_channel *channel; \ grpc_call *call; struct GRPC_context { GRPC_C_CONTEXT_BASE_MEMBERS; }; -#endif // GRPC_C_INTERNAL_CONTEXT_H +#endif // GRPC_C_INTERNAL_CONTEXT_H diff --git a/src/c/server.c b/src/c/server.c index 53f0e65943c2e..3196f20e11a4d 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -31,25 +31,26 @@ * */ -#include -#include #include "src/c/server.h" +#include +#include #include "src/c/alloc.h" #include "src/c/init_shutdown.h" GRPC_server *GRPC_build_server(GRPC_build_server_options options) { GRPC_ensure_grpc_init(); grpc_server *core_server = grpc_server_create(NULL, NULL); - GRPC_server *server = GRPC_ALLOC_STRUCT(GRPC_server, { - .core_server = core_server, - .internal_queue = grpc_completion_queue_create(NULL) - }); + GRPC_server *server = GRPC_ALLOC_STRUCT( + GRPC_server, {.core_server = core_server, + .internal_queue = grpc_completion_queue_create(NULL)}); GRPC_array_init(server->registered_queues); return server; } -GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue(GRPC_server *server) { - GRPC_incoming_notification_queue *queue = GRPC_incoming_notification_queue_create(); +GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue( + GRPC_server *server) { + GRPC_incoming_notification_queue *queue = + GRPC_incoming_notification_queue_create(); grpc_server_register_completion_queue(server->core_server, queue->cq, NULL); // Stores the completion queue for destruction GRPC_array_push_back(server->registered_queues, queue); @@ -61,10 +62,12 @@ void GRPC_server_start(GRPC_server *server) { } void GRPC_server_shutdown(GRPC_server *server) { - grpc_server_shutdown_and_notify(server->core_server, server->internal_queue, NULL); + grpc_server_shutdown_and_notify(server->core_server, server->internal_queue, + NULL); // Wait for server to shutdown for (;;) { - grpc_event ev = grpc_completion_queue_next(server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + grpc_event ev = grpc_completion_queue_next( + server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); if (ev.type == GRPC_OP_COMPLETE) break; } // Shutdown all registered queues @@ -77,7 +80,8 @@ void GRPC_server_shutdown(GRPC_server *server) { GRPC_completion_queue_shutdown_wait(server->registered_queues.data[i]->cq); } for (;;) { - grpc_event ev = grpc_completion_queue_next(server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + grpc_event ev = grpc_completion_queue_next( + server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); if (ev.type == GRPC_QUEUE_SHUTDOWN) break; } } diff --git a/src/c/server.h b/src/c/server.h index 0245109c9aa9c..69cb5c3355280 100644 --- a/src/c/server.h +++ b/src/c/server.h @@ -44,14 +44,14 @@ typedef struct GRPC_server GRPC_server; struct GRPC_server { grpc_server *core_server; - GRPC_array(GRPC_incoming_notification_queue*) registered_queues; + GRPC_array(GRPC_incoming_notification_queue *) registered_queues; // used to monitor server events grpc_completion_queue *internal_queue; // async - //TODO(yifeit): synchronous server state + // TODO(yifeit): synchronous server state }; -#endif // GRPC_C_INTERNAL_SERVER_H +#endif // GRPC_C_INTERNAL_SERVER_H diff --git a/src/c/server_context.c b/src/c/server_context.c index 7030fa421f437..00994b962e9e6 100644 --- a/src/c/server_context.c +++ b/src/c/server_context.c @@ -35,18 +35,19 @@ #include "src/c/alloc.h" GRPC_server_context *GRPC_server_context_create(GRPC_server *server) { - GRPC_server_context *context = GRPC_ALLOC_STRUCT(GRPC_server_context, { - .deadline = gpr_inf_future(GPR_CLOCK_REALTIME), - .serialization_impl = {.serialize = NULL, .deserialize = NULL}, - .server = server - }); + GRPC_server_context *context = GRPC_ALLOC_STRUCT( + GRPC_server_context, + {.deadline = gpr_inf_future(GPR_CLOCK_REALTIME), + .serialization_impl = {.serialize = NULL, .deserialize = NULL}, + .server = server}); grpc_metadata_array_init(&context->send_trailing_metadata_array); return context; } -// We define a conversion function instead of type-casting, which lets the user convert +// We define a conversion function instead of type-casting, which lets the user +// convert // from any pointer to a grpc_context. GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context) { - return (GRPC_context *) server_context; + return (GRPC_context *)server_context; } diff --git a/src/c/server_context.h b/src/c/server_context.h index f55ee3bd56f13..5e7a7e3c4d056 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_INTERNAL_SERVER_CONTEXT_H #define GRPC_C_INTERNAL_SERVER_CONTEXT_H -#include "src/c/context.h" #include +#include "src/c/context.h" typedef struct GRPC_server_context GRPC_server_context; diff --git a/src/c/server_incoming_queue.c b/src/c/server_incoming_queue.c index 45abd9e87b4c1..6b1c4383ad3c0 100644 --- a/src/c/server_incoming_queue.c +++ b/src/c/server_incoming_queue.c @@ -31,21 +31,21 @@ * */ +#include "src/c/server_incoming_queue.h" #include -#include #include -#include "src/c/server_incoming_queue.h" +#include #include "src/c/alloc.h" GRPC_incoming_notification_queue *GRPC_incoming_notification_queue_create() { GRPC_completion_queue *cq = GRPC_completion_queue_create(); - GRPC_incoming_notification_queue *queue = GRPC_ALLOC_STRUCT(GRPC_incoming_notification_queue, { - .cq = cq - }); + GRPC_incoming_notification_queue *queue = + GRPC_ALLOC_STRUCT(GRPC_incoming_notification_queue, {.cq = cq}); return queue; } -void GRPC_incoming_notification_queue_destroy(GRPC_incoming_notification_queue *queue) { +void GRPC_incoming_notification_queue_destroy( + GRPC_incoming_notification_queue *queue) { GRPC_completion_queue_destroy(queue->cq); gpr_free(queue); } diff --git a/src/c/server_incoming_queue.h b/src/c/server_incoming_queue.h index ffef889843b24..a39f1cec10918 100644 --- a/src/c/server_incoming_queue.h +++ b/src/c/server_incoming_queue.h @@ -38,6 +38,7 @@ #include GRPC_incoming_notification_queue *GRPC_incoming_notification_queue_create(); -void GRPC_incoming_notification_queue_destroy(GRPC_incoming_notification_queue *queue); +void GRPC_incoming_notification_queue_destroy( + GRPC_incoming_notification_queue *queue); -#endif // GRPC_C_INTERNAL_SERVER_INCOMING_QUEUE_H +#endif // GRPC_C_INTERNAL_SERVER_INCOMING_QUEUE_H diff --git a/src/c/server_streaming_blocking_call.c b/src/c/server_streaming_blocking_call.c index 1065305b768be..a469a292cfdcf 100644 --- a/src/c/server_streaming_blocking_call.c +++ b/src/c/server_streaming_blocking_call.c @@ -61,20 +61,23 @@ GRPC_client_reader *GRPC_server_streaming_blocking_call( .context = context, .call = call, .cq = cq, }); - GRPC_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), request, - NULL); + GRPC_start_batch_from_op_set(reader->call, &set, + GRPC_client_context_to_base(reader->context), + request, NULL); GRPC_completion_queue_pluck_internal(cq, &set); return reader; } bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, void *response) { - GRPC_call_op_set set_meta = {{grpc_op_recv_metadata, grpc_op_recv_object}, - .context = GRPC_client_context_to_base(reader->context), - .user_tag = &set_meta}; - GRPC_call_op_set set_no_meta = {{grpc_op_recv_object}, - .context = GRPC_client_context_to_base(reader->context), - .user_tag = &set_no_meta}; + GRPC_call_op_set set_meta = { + {grpc_op_recv_metadata, grpc_op_recv_object}, + .context = GRPC_client_context_to_base(reader->context), + .user_tag = &set_meta}; + GRPC_call_op_set set_no_meta = { + {grpc_op_recv_object}, + .context = GRPC_client_context_to_base(reader->context), + .user_tag = &set_no_meta}; GRPC_call_op_set *pSet = NULL; if (reader->context->initial_metadata_received == false) { pSet = &set_meta; @@ -82,17 +85,21 @@ bool GRPC_server_streaming_blocking_read(GRPC_client_reader *reader, pSet = &set_no_meta; } - GRPC_start_batch_from_op_set(reader->call, pSet, GRPC_client_context_to_base(reader->context), - (GRPC_message) {0, 0}, response); + GRPC_start_batch_from_op_set(reader->call, pSet, + GRPC_client_context_to_base(reader->context), + (GRPC_message){0, 0}, response); return GRPC_completion_queue_pluck_internal(reader->cq, pSet) && pSet->message_received; } GRPC_status GRPC_client_reader_terminate(GRPC_client_reader *reader) { GRPC_call_op_set set = { - {grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(reader->context), .user_tag = &set}; - GRPC_start_batch_from_op_set(reader->call, &set, GRPC_client_context_to_base(reader->context), - (GRPC_message) {0, 0}, NULL); + {grpc_op_client_recv_status}, + .context = GRPC_client_context_to_base(reader->context), + .user_tag = &set}; + GRPC_start_batch_from_op_set(reader->call, &set, + GRPC_client_context_to_base(reader->context), + (GRPC_message){0, 0}, NULL); GRPC_completion_queue_pluck_internal(reader->cq, &set); GRPC_completion_queue_shutdown(reader->cq); GRPC_completion_queue_shutdown_wait(reader->cq); diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 78f7cdb9ce50e..4e50815f34810 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -68,7 +68,8 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( .context = GRPC_client_context_to_base(context), .response = NULL}, .finish_buf = { - {grpc_op_recv_metadata, grpc_op_recv_object, grpc_op_client_recv_status}, + {grpc_op_recv_metadata, grpc_op_recv_object, + grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(context), .response = NULL, }}); @@ -78,7 +79,8 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( reader->finish_buf.async_cleanup = (GRPC_closure){.arg = reader, .callback = free_client_reader_and_call}; - GRPC_start_batch_from_op_set(reader->call, &reader->init_buf, GRPC_client_context_to_base(reader->context), + GRPC_start_batch_from_op_set(reader->call, &reader->init_buf, + GRPC_client_context_to_base(reader->context), request, NULL); return reader; } @@ -86,15 +88,17 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag) { reader->meta_buf.user_tag = tag; - GRPC_start_batch_from_op_set(reader->call, &reader->meta_buf, GRPC_client_context_to_base(reader->context), - (GRPC_message) {0, 0}, NULL); + GRPC_start_batch_from_op_set(reader->call, &reader->meta_buf, + GRPC_client_context_to_base(reader->context), + (GRPC_message){0, 0}, NULL); } void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, void *response, void *tag) { reader->finish_buf.user_tag = tag; GRPC_start_batch_from_op_set(reader->call, &reader->finish_buf, - GRPC_client_context_to_base(reader->context), (GRPC_message) {0, 0}, response); + GRPC_client_context_to_base(reader->context), + (GRPC_message){0, 0}, response); } // @@ -102,19 +106,11 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, // GRPC_server_async_response_writer *GRPC_unary_async_server_request( - const GRPC_method rpc_method, - GRPC_server_context *const context, - void* request, - GRPC_incoming_notification_queue *incoming_queue, - GRPC_completion_queue *processing_queue, - void *tag) { + const GRPC_method rpc_method, GRPC_server_context *const context, + void *request, GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, void *tag) {} -} - -void GRPC_unary_async_server_finish( - GRPC_server_async_response_writer *writer, - const GRPC_message response, - const grpc_status_code server_status, - void *tag) { - -} +void GRPC_unary_async_server_finish(GRPC_server_async_response_writer *writer, + const GRPC_message response, + const grpc_status_code server_status, + void *tag) {} diff --git a/src/c/unary_blocking_call.c b/src/c/unary_blocking_call.c index 20ecb5393ffbf..f7f6538ddec32 100644 --- a/src/c/unary_blocking_call.c +++ b/src/c/unary_blocking_call.c @@ -31,9 +31,9 @@ * */ -#include #include "src/c/unary_blocking_call.h" #include +#include #include "src/c/call_ops.h" #include "src/c/completion_queue.h" @@ -48,11 +48,13 @@ GRPC_status GRPC_unary_blocking_call(const GRPC_method rpc_method, context->call = call; GRPC_call_op_set set = { {grpc_op_send_metadata, grpc_op_recv_metadata, grpc_op_send_object, - grpc_op_recv_object, grpc_op_client_send_close, grpc_op_client_recv_status}, + grpc_op_recv_object, grpc_op_client_send_close, + grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(context), .user_tag = &set}; - GRPC_start_batch_from_op_set(call, &set, GRPC_client_context_to_base(context), message, response); + GRPC_start_batch_from_op_set(call, &set, GRPC_client_context_to_base(context), + message, response); for (;;) { void *tag; bool ok; From 29e22eeec7c0099d25c7951fcf249dea1f620e60 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 11 Aug 2016 18:30:01 -0700 Subject: [PATCH 178/202] [wip] almost hooking up unary async --- include/grpc_c/codegen/method.h | 20 ++-- include/grpc_c/codegen/server.h | 45 ++++++++ include/grpc_c/codegen/unary_async_call.h | 5 +- include/grpc_c/grpc_c.h | 1 + include/grpc_c/server.h | 4 - src/c/call_ops.c | 52 +++++++++- src/c/call_ops.h | 26 +++-- src/c/client_streaming_blocking_call.h | 2 +- src/c/context.h | 2 +- src/c/server.c | 50 ++++++++- src/c/server.h | 26 +++++ src/c/server_context.h | 3 +- src/c/unary_async_call.c | 25 +++-- src/compiler/c_generator.cc | 119 ++++++++++++++++------ 14 files changed, 305 insertions(+), 75 deletions(-) create mode 100644 include/grpc_c/codegen/server.h diff --git a/include/grpc_c/codegen/method.h b/include/grpc_c/codegen/method.h index 45e4f337afff4..9f99c4517c709 100644 --- a/include/grpc_c/codegen/method.h +++ b/include/grpc_c/codegen/method.h @@ -34,16 +34,18 @@ #ifndef GRPC_C_CODEGEN_METHOD_H #define GRPC_C_CODEGEN_METHOD_H -typedef struct grpc_method { - enum RpcType { - NORMAL_RPC = 0, - CLIENT_STREAMING, /* request streaming */ - SERVER_STREAMING, /* response streaming */ - BIDI_STREAMING - } type; +typedef enum GRPC_rpc_type { + GRPC_NORMAL_RPC = 0, + GRPC_CLIENT_STREAMING, /* request streaming */ + GRPC_SERVER_STREAMING, /* response streaming */ + GRPC_BIDI_STREAMING +} GRPC_rpc_type; + +typedef struct GRPC_method { + GRPC_rpc_type type; const char* name; -} grpc_method; +} GRPC_method; -typedef struct grpc_method GRPC_method; +typedef struct GRPC_method GRPC_method; #endif /* GRPC_C_CODEGEN_METHOD_H */ diff --git a/include/grpc_c/codegen/server.h b/include/grpc_c/codegen/server.h new file mode 100644 index 0000000000000..a1135d9e1b669 --- /dev/null +++ b/include/grpc_c/codegen/server.h @@ -0,0 +1,45 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_CODEGEN_SERVER_H +#define GRPC_C_CODEGEN_SERVER_H + +#include +#include +#include +#include + +typedef GRPC_method** GRPC_service_declaration; +GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_service_declaration service_declaration, size_t num_methods); + +#endif /* GRPC_C_CODEGEN_SERVER_H */ diff --git a/include/grpc_c/codegen/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h index 654b9e03bcbb4..587194a44bca4 100644 --- a/include/grpc_c/codegen/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -50,8 +50,9 @@ void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); GRPC_server_async_response_writer *GRPC_unary_async_server_request( - const GRPC_method rpc_method, GRPC_server_context *const context, - void *request, GRPC_incoming_notification_queue *incoming_queue, + GRPC_registered_service*service, size_t method_index, + GRPC_server_context *const context, void *request, + GRPC_incoming_notification_queue *incoming_queue, GRPC_completion_queue *processing_queue, void *tag); void GRPC_unary_async_server_finish(GRPC_server_async_response_writer *writer, diff --git a/include/grpc_c/grpc_c.h b/include/grpc_c/grpc_c.h index 481d3bbc3e3bb..473074ceb7f48 100644 --- a/include/grpc_c/grpc_c.h +++ b/include/grpc_c/grpc_c.h @@ -44,6 +44,7 @@ typedef struct grpc_completion_queue typedef struct GRPC_incoming_notification_queue GRPC_incoming_notification_queue; typedef struct GRPC_server GRPC_server; +typedef struct GRPC_registered_service GRPC_registered_service; typedef struct GRPC_client_reader_writer GRPC_client_reader_writer; typedef struct GRPC_client_reader GRPC_client_reader; diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h index 845f8611d1d74..5cf0ca81d57a9 100644 --- a/include/grpc_c/server.h +++ b/include/grpc_c/server.h @@ -36,11 +36,7 @@ #include -typedef struct GRPC_service_definition { -} GRPC_service_definition; - typedef struct GRPC_build_server_options { - GRPC_service_definition *async_services; } GRPC_build_server_options; GRPC_server *GRPC_build_server(GRPC_build_server_options options); diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 2e7cf60e18d04..64333185a7290 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -108,7 +108,7 @@ static bool op_recv_object_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, const grpc_message message, void *response) { set->message_received = false; - set->response = response; + set->received_object = response; op->op = GRPC_OP_RECV_MESSAGE; set->recv_buffer = NULL; op->data.recv_message = &set->recv_buffer; @@ -131,7 +131,7 @@ static void op_recv_object_finish(GRPC_context *context, GRPC_call_op_set *set, size_t len = GPR_SLICE_LENGTH(slice_recv); context->serialization_impl.deserialize((grpc_message){resp, len}, - set->response); + set->received_object); gpr_slice_unref(slice_recv); grpc_byte_buffer_reader_destroy(&reader); @@ -233,7 +233,46 @@ static void op_server_send_status_finish(GRPC_context *context, const GRPC_op_manager grpc_op_server_send_status = { op_server_send_status_fill, op_server_send_status_finish}; -void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, +static bool op_server_decode_context_payload_fill(grpc_op *op, GRPC_context *context, + GRPC_call_op_set *set, + const grpc_message message, + void *response) { + set->message_received = false; + set->received_object = response; + return false; // don't fill hence won't trigger grpc_call_start_batch +} + +static void op_server_decode_context_payload_finish(GRPC_context *context, + GRPC_call_op_set *set, bool *status, + int max_message_size) { + // decode payload in server context + GRPC_server_context *server_context = (GRPC_server_context *) context; + grpc_byte_buffer *buffer = server_context->payload; + GPR_ASSERT(buffer != NULL); + + if (!set->message_received) { + set->message_received = true; + + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); + size_t len = GPR_SLICE_LENGTH(slice_recv); + + context->serialization_impl.deserialize((grpc_message){resp, len}, + set->received_object); + + gpr_slice_unref(slice_recv); + grpc_byte_buffer_reader_destroy(&reader); + grpc_byte_buffer_destroy(buffer); + } +} + +const GRPC_op_manager grpc_op_server_decode_context_payload = { + op_server_decode_context_payload_fill, op_server_decode_context_payload_finish +}; + +size_t GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, const grpc_message message, void *response, grpc_op *ops, size_t *nops) { size_t manager = 0; @@ -249,6 +288,7 @@ void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, if (result) filled++; } *nops = filled; + return filled; } bool GRPC_finish_op_from_call_set(GRPC_call_op_set *set, @@ -274,6 +314,8 @@ void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; - GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); + size_t num_ops = GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); + if (num_ops > 0) { + GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); + } } diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 3552bf33b032f..9ad29e037fa3c 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -64,14 +64,9 @@ struct GRPC_call_op_set { const GRPC_op_manager operations[GRPC_MAX_OP_COUNT]; GRPC_context *const context; - /* these are used by individual operations */ - void *response; - grpc_byte_buffer *recv_buffer; - - /* Holding onto the buffer to free it later */ - grpc_byte_buffer *send_buffer; - bool message_received; - + /* + * These are used to work with completion queue. + */ /* if this is true (default false), the event tagged by this call_op_set will * not be emitted * from the completion queue wrapper. */ @@ -82,9 +77,21 @@ struct GRPC_call_op_set { bool *user_done; /* for clients reading a stream */ GRPC_closure async_cleanup; /* will be called when the op_set finishes */ /* used to cleanup after RPC */ + + /* + * these are used by individual operations. + * don't initialize them by hand + */ + /* pointer to the user-supplied object which shall receive deserialized data */ + void *received_object; + grpc_byte_buffer *recv_buffer; + /* Holding onto the buffer to free it later */ + grpc_byte_buffer *send_buffer; + bool message_received; + }; -void GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, +size_t GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, const grpc_message message, void *response, grpc_op *ops, size_t *nops); @@ -106,5 +113,6 @@ extern const GRPC_op_manager grpc_op_client_send_close; extern const GRPC_op_manager grpc_op_client_recv_status; extern const GRPC_op_manager grpc_op_server_recv_close; extern const GRPC_op_manager grpc_op_server_send_status; +extern const GRPC_op_manager grpc_op_server_decode_context_payload; #endif /* GRPC_C_INTERNAL_CALL_OPS_H */ diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index b8dc8826a1e14..2cdd9098a71e6 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -44,7 +44,7 @@ typedef struct GRPC_client_writer { GRPC_client_context *context; grpc_call *call; grpc_completion_queue *cq; - grpc_message *response; + void *response; } GRPC_client_writer; #endif // GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H diff --git a/src/c/context.h b/src/c/context.h index 68e46f21db9e3..0ead25ac7c551 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -58,7 +58,7 @@ typedef struct GRPC_context GRPC_context; \ /* state tracking */ \ bool initial_metadata_received; \ - grpc_method rpc_method; \ + GRPC_method rpc_method; \ grpc_channel *channel; \ grpc_call *call; diff --git a/src/c/server.c b/src/c/server.c index 3196f20e11a4d..c197e72693f83 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -32,10 +32,12 @@ */ #include "src/c/server.h" +#include #include -#include #include "src/c/alloc.h" #include "src/c/init_shutdown.h" +#include "src/c/server_context.h" +#include "server.h" GRPC_server *GRPC_build_server(GRPC_build_server_options options) { GRPC_ensure_grpc_init(); @@ -44,6 +46,7 @@ GRPC_server *GRPC_build_server(GRPC_build_server_options options) { GRPC_server, {.core_server = core_server, .internal_queue = grpc_completion_queue_create(NULL)}); GRPC_array_init(server->registered_queues); + GRPC_array_init(server->registered_services); return server; } @@ -71,7 +74,7 @@ void GRPC_server_shutdown(GRPC_server *server) { if (ev.type == GRPC_OP_COMPLETE) break; } // Shutdown all registered queues - int i; + size_t i; for (i = 0; i < server->registered_queues.state.size; i++) { GRPC_completion_queue_shutdown(server->registered_queues.data[i]->cq); } @@ -87,7 +90,7 @@ void GRPC_server_shutdown(GRPC_server *server) { } void GRPC_server_destroy(GRPC_server *server) { - int i; + size_t i; for (i = 0; i < server->registered_queues.state.size; i++) { GRPC_incoming_notification_queue_destroy(server->registered_queues.data[i]); } @@ -97,3 +100,44 @@ void GRPC_server_destroy(GRPC_server *server) { grpc_server_destroy(server->core_server); } + +GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_service_declaration service_declaration, size_t num_methods) { + // register every method in the service + size_t i; + GRPC_registered_service registered_service; + GRPC_array_init(registered_service.registered_methods); + for (i = 0; i < num_methods; i++) { + GRPC_registered_method registered_method; + registered_method.method = *service_declaration[i]; + grpc_server_register_method_payload_handling handling; + // Let core read the payload for us only in unary case + if (registered_method.method.type == GRPC_NORMAL_RPC) { + handling = GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER; + } else { + handling = GRPC_SRM_PAYLOAD_NONE; + } + registered_method.core_method_handle = grpc_server_register_method(server->core_server, registered_method.method.name, server->host, handling, 0); + GRPC_array_push_back(registered_service.registered_methods, registered_method); + } + GRPC_array_push_back(server->registered_services, registered_service); + return &server->registered_services.data[server->registered_services.state.size - 1]; +} + +grpc_call_error GRPC_server_request_call( + GRPC_registered_service *service, + size_t method_index, + GRPC_server_context *context, + GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, void *tag) { + void *core_method_handle = service->registered_methods.data[method_index].core_method_handle; + return grpc_server_request_registered_call( + context->server->core_server, + core_method_handle, + &context->call, + &context->deadline, + &context->recv_metadata_array, + &context->payload, + processing_queue, + incoming_queue->cq, + tag); +} diff --git a/src/c/server.h b/src/c/server.h index 69cb5c3355280..8a67b39a507d0 100644 --- a/src/c/server.h +++ b/src/c/server.h @@ -37,14 +37,33 @@ #include #include #include +#include #include "src/c/array.h" #include "src/c/server_incoming_queue.h" typedef struct GRPC_server GRPC_server; +typedef struct GRPC_registered_service GRPC_registered_service; +typedef struct GRPC_registered_method GRPC_registered_method; + +struct GRPC_registered_method { + GRPC_method method; + // An opaque structure used by core to identify this method + void *core_method_handle; +}; + +struct GRPC_registered_service { + GRPC_server *server; + // Index of myself in the server-side service array + size_t index; + + GRPC_array(GRPC_registered_method) registered_methods; +}; struct GRPC_server { grpc_server *core_server; + char *host; GRPC_array(GRPC_incoming_notification_queue *) registered_queues; + GRPC_array(GRPC_registered_service) registered_services; // used to monitor server events grpc_completion_queue *internal_queue; @@ -54,4 +73,11 @@ struct GRPC_server { // TODO(yifeit): synchronous server state }; +grpc_call_error GRPC_server_request_call( + GRPC_registered_service *service, + size_t method_index, + GRPC_server_context *context, + GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, void *tag); + #endif // GRPC_C_INTERNAL_SERVER_H diff --git a/src/c/server_context.h b/src/c/server_context.h index 5e7a7e3c4d056..366e34b192b13 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -44,7 +44,8 @@ struct GRPC_server_context { // server-side specific GRPC_server *server; - grpc_call_details call_details; + // optional payload (for unary call) to get from core + grpc_byte_buffer *payload; // trailing metadata grpc_metadata_array send_trailing_metadata_array; // status code to be sent to the client diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 4e50815f34810..70ed8ad8a8cbb 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -37,6 +37,7 @@ #include #include #include "src/c/alloc.h" +#include "server.h" // // Client @@ -62,16 +63,13 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( .init_buf = {{grpc_op_send_metadata, grpc_op_send_object, grpc_op_client_send_close}, .context = GRPC_client_context_to_base(context), - .response = NULL, .hide_from_user = true}, .meta_buf = {{grpc_op_recv_metadata}, - .context = GRPC_client_context_to_base(context), - .response = NULL}, + .context = GRPC_client_context_to_base(context)}, .finish_buf = { {grpc_op_recv_metadata, grpc_op_recv_object, grpc_op_client_recv_status}, .context = GRPC_client_context_to_base(context), - .response = NULL, }}); // Different from blocking call, we need to inform completion queue to run @@ -106,11 +104,22 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, // GRPC_server_async_response_writer *GRPC_unary_async_server_request( - const GRPC_method rpc_method, GRPC_server_context *const context, - void *request, GRPC_incoming_notification_queue *incoming_queue, - GRPC_completion_queue *processing_queue, void *tag) {} + GRPC_registered_service* service, size_t method_index, + GRPC_server_context *const context, void *request, + GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, void *tag) { + GRPC_call_op_set set = { + // deserialize from the payload read by core after the request comes in + .operations = { grpc_op_server_decode_context_payload }, + .context = GRPC_server_context_to_base(context) + }; + GPR_ASSERT(GRPC_server_request_call(service, method_index, context, incoming_queue, processing_queue, tag) == GRPC_CALL_OK); + return NULL; +} void GRPC_unary_async_server_finish(GRPC_server_async_response_writer *writer, const GRPC_message response, const grpc_status_code server_status, - void *tag) {} + void *tag) { + +} diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 0616c7c8f8fda..3a0775fef12aa 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -407,7 +407,7 @@ void PrintSourceServerMethod(Printer *printer, const Method *method, "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" " return GRPC_unary_async_server_request(\n" - " GRPC_method_$CPrefix$$Service$_$Method$,\n" + " GRPC_METHOD_INDEX_$CPrefix$$Service$_$Method$,\n" " context,\n" " request,\n" " incoming_queue,\n" @@ -434,32 +434,79 @@ void PrintSourceServerMethod(Printer *printer, const Method *method, } } -// Prints implementation of a single client method -void PrintSourceClientMethod(Printer *printer, const Method *method, - std::map *vars) { - (*vars)["Method"] = method->name(); - (*vars)["Request"] = method->input_type_name(); - (*vars)["Response"] = method->output_type_name(); +void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std::map *vars) { + for (int i = 0; i < service->method_count(); i++) { + auto method = service->method(i); - if (method->NoStreaming()) { - (*vars)["MethodEnum"] = "NORMAL_RPC"; - } else if (method->ClientOnlyStreaming()) { - (*vars)["MethodEnum"] = "CLIENT_STREAMING"; - } else if (method->ServerOnlyStreaming()) { - (*vars)["MethodEnum"] = "SERVER_STREAMING"; - } else if (method->BidiStreaming()) { - (*vars)["MethodEnum"] = "BIDI_STREAMING"; + (*vars)["Method"] = method->name(); + + if (method->NoStreaming()) { + (*vars)["MethodEnum"] = "GRPC_NORMAL_RPC"; + } else if (method->ClientOnlyStreaming()) { + (*vars)["MethodEnum"] = "GRPC_CLIENT_STREAMING"; + } else if (method->ServerOnlyStreaming()) { + (*vars)["MethodEnum"] = "GRPC_SERVER_STREAMING"; + } else if (method->BidiStreaming()) { + (*vars)["MethodEnum"] = "GRPC_BIDI_STREAMING"; + } + + printer->Print( + *vars, + "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" + " $MethodEnum$,\n" + " \"/$Package$$Service$/$Method$\"\n" + "};\n" + "\n"); + } + + printer->Print( + *vars, + "GRPC_service_declaration GRPC_service_$CPrefix$$Service$ = {\n"); + + // Insert each method definition in the service + for (int i = 0; i < service->method_count(); i++) { + auto method = service->method(i); + (*vars)["Method"] = method->name(); + (*vars)["Terminator"] = i == service->method_count() - 1 ? "" : ","; + printer->Print( + *vars, + " &GRPC_method_$CPrefix$$Service$_$Method$$Terminator$\n"); } printer->Print( *vars, - "\n" - "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" - " $MethodEnum$,\n" - " \"/$Package$$Service$/$Method$\"\n" "};\n" "\n"); + // Array index of each method inside the service declaration array + printer->Print( + *vars, + "enum {\n"); + + for (int i = 0; i < service->method_count(); i++) { + auto method = service->method(i); + (*vars)["Method"] = method->name(); + (*vars)["Index"] = std::to_string(i); + printer->Print( + *vars, + " GRPC_METHOD_INDEX_$CPrefix$$Service$_$Method$ = $Index$,\n"); + } + + (*vars)["MethodCount"] = std::to_string(service->method_count()); + printer->Print( + *vars, + " GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$ = $MethodCount$\n" + "};\n" + "\n"); +} + +// Prints implementation of a single client method +void PrintSourceClientMethod(Printer *printer, const Method *method, + std::map *vars) { + (*vars)["Method"] = method->name(); + (*vars)["Request"] = method->input_type_name(); + (*vars)["Response"] = method->output_type_name(); + if (method->NoStreaming()) { // Unary printer->Print( @@ -534,10 +581,11 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, "}\n" "\n"); - printer->Print(*vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print( + *vars, + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->ServerOnlyStreaming()) { printer->Print( @@ -567,10 +615,11 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, " return GRPC_client_reader_terminate(reader);\n" "}\n" "\n"); - printer->Print(*vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print( + *vars, + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->BidiStreaming()) { printer->Print( @@ -613,10 +662,11 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, " return GRPC_client_reader_writer_terminate(reader_writer);\n" "}\n" "\n"); - printer->Print(*vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print( + *vars, + "\n" + "/* Async TBD */\n" + "\n"); } } @@ -625,13 +675,18 @@ void PrintSourceService(Printer *printer, const Service *service, std::map *vars) { (*vars)["Service"] = service->name(); + printer->Print(*vars, BlockifyComments("Service metadata for " + service->name() + "\n\n").c_str()); + PrintSourceServiceDeclaration(printer, service, vars); + printer->Print(*vars, BlockifyComments("Service implementation for " + service->name() + "\n\n") .c_str()); for (int i = 0; i < service->method_count(); ++i) { - (*vars)["Idx"] = as_string(i); PrintSourceClientMethod(printer, service->method(i).get(), vars); + PrintSourceServerMethod(printer, service->method(i).get(), vars); } + + printer->Print("\n"); } // From 03851b6fb2abdf493276ab935826de49f05cae95 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 11 Aug 2016 18:30:24 -0700 Subject: [PATCH 179/202] build files --- BUILD | 2 ++ CMakeLists.txt | 1 + Makefile | 2 ++ build.yaml | 2 ++ tools/run_tests/sources_and_headers.json | 3 +++ vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 3 +++ vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters | 6 ++++++ 7 files changed, 19 insertions(+) diff --git a/BUILD b/BUILD index e1190ac0593f3..811eff3b1f39d 100644 --- a/BUILD +++ b/BUILD @@ -555,6 +555,7 @@ cc_library( name = "grpc_c", srcs = [ "src/c/alloc.h", + "src/c/array.h", "src/c/bidi_streaming_blocking_call.h", "src/c/call_ops.h", "src/c/client_context.h", @@ -570,6 +571,7 @@ cc_library( "src/c/unary_async_call.h", "src/c/unary_blocking_call.h", "src/c/alloc.c", + "src/c/array.c", "src/c/bidi_streaming_blocking_call.c", "src/c/call_ops.c", "src/c/channel.c", diff --git a/CMakeLists.txt b/CMakeLists.txt index 27c1af3771ff1..c03bbf140a1ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -534,6 +534,7 @@ install(TARGETS grpc EXPORT gRPCTargets add_library(grpc_c src/c/alloc.c + src/c/array.c src/c/bidi_streaming_blocking_call.c src/c/call_ops.c src/c/channel.c diff --git a/Makefile b/Makefile index 184705bd1607a..bd7e3e843de48 100644 --- a/Makefile +++ b/Makefile @@ -3038,6 +3038,7 @@ endif # Using nanopb for C files right now LIBGRPC_C_SRC = \ src/c/alloc.c \ + src/c/array.c \ src/c/bidi_streaming_blocking_call.c \ src/c/call_ops.c \ src/c/channel.c \ @@ -16341,6 +16342,7 @@ ifneq ($(OPENSSL_DEP),) # installing headers to their final destination on the drive. We need this # otherwise parallel compilation will fail if a source is compiled first. src/c/alloc.c: $(OPENSSL_DEP) +src/c/array.c: $(OPENSSL_DEP) src/c/bidi_streaming_blocking_call.c: $(OPENSSL_DEP) src/c/call_ops.c: $(OPENSSL_DEP) src/c/channel.c: $(OPENSSL_DEP) diff --git a/build.yaml b/build.yaml index c4336faa91daa..8f73c18a29ef2 100644 --- a/build.yaml +++ b/build.yaml @@ -860,6 +860,7 @@ libs: - include/grpc_c/status.h headers: - src/c/alloc.h + - src/c/array.h - src/c/bidi_streaming_blocking_call.h - src/c/call_ops.h - src/c/client_context.h @@ -876,6 +877,7 @@ libs: - src/c/unary_blocking_call.h src: - src/c/alloc.c + - src/c/array.c - src/c/bidi_streaming_blocking_call.c - src/c/call_ops.c - src/c/channel.c diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 748790d5480e4..52e43e689d75f 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4317,6 +4317,7 @@ "include/grpc_c/server_incoming_queue.h", "include/grpc_c/status.h", "src/c/alloc.h", + "src/c/array.h", "src/c/bidi_streaming_blocking_call.h", "src/c/call_ops.h", "src/c/client_context.h", @@ -4356,6 +4357,8 @@ "include/grpc_c/status.h", "src/c/alloc.c", "src/c/alloc.h", + "src/c/array.c", + "src/c/array.h", "src/c/bidi_streaming_blocking_call.c", "src/c/bidi_streaming_blocking_call.h", "src/c/call_ops.c", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index c51a1bfb53fea..3e36e113f1584 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -280,6 +280,7 @@ + @@ -298,6 +299,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index d1bbd60d78f82..3bd9797c872e9 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -4,6 +4,9 @@ src\c + + src\c + src\c @@ -113,6 +116,9 @@ src\c + + src\c + src\c From 2ac14795d090909b34d202a6ebf236073c4c42ce Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 12 Aug 2016 15:01:17 -0700 Subject: [PATCH 180/202] [wip] fixed all compilation errors --- BUILD | 4 +- CMakeLists.txt | 4 +- Makefile | 5 +- build.yaml | 4 +- examples/c/helloworld/greeter_async_server.c | 1 - .../codegen/{client_context.h => context.h} | 12 +-- include/grpc_c/codegen/server.h | 2 +- include/grpc_c/codegen/unary_async_call.h | 2 +- src/c/client_context.c | 4 - src/c/context.c | 39 ++++++++ src/c/context.h | 2 +- src/c/server.c | 3 +- src/c/server.h | 2 +- src/c/unary_async_call.c | 18 ++-- src/c/unary_async_call.h | 1 + src/compiler/c_generator.cc | 98 ++++++++++++------- test/c/end2end/generic_end2end_test.cc | 22 ++--- tools/run_tests/sources_and_headers.json | 7 +- vsprojects/vcxproj/grpc_c/grpc_c.vcxproj | 5 +- .../vcxproj/grpc_c/grpc_c.vcxproj.filters | 10 +- 20 files changed, 169 insertions(+), 76 deletions(-) rename include/grpc_c/codegen/{client_context.h => context.h} (85%) create mode 100644 src/c/context.c diff --git a/BUILD b/BUILD index 811eff3b1f39d..5542487d5a19b 100644 --- a/BUILD +++ b/BUILD @@ -578,6 +578,7 @@ cc_library( "src/c/client_context.c", "src/c/client_streaming_blocking_call.c", "src/c/completion_queue.c", + "src/c/context.c", "src/c/init_shutdown.c", "src/c/message.c", "src/c/pb_compat.c", @@ -592,12 +593,13 @@ cc_library( "include/grpc_c/channel.h", "include/grpc_c/client_context.h", "include/grpc_c/codegen/bidi_streaming_blocking_call.h", - "include/grpc_c/codegen/client_context.h", "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/context.h", "include/grpc_c/codegen/message.h", "include/grpc_c/codegen/method.h", "include/grpc_c/codegen/pb_compat.h", "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server.h", "include/grpc_c/codegen/server_streaming_blocking_call.h", "include/grpc_c/codegen/unary_async_call.h", "include/grpc_c/codegen/unary_blocking_call.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index c03bbf140a1ca..6dd43839c8d18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -541,6 +541,7 @@ add_library(grpc_c src/c/client_context.c src/c/client_streaming_blocking_call.c src/c/completion_queue.c + src/c/context.c src/c/init_shutdown.c src/c/message.c src/c/pb_compat.c @@ -573,12 +574,13 @@ foreach(_hdr include/grpc_c/channel.h include/grpc_c/client_context.h include/grpc_c/codegen/bidi_streaming_blocking_call.h - include/grpc_c/codegen/client_context.h include/grpc_c/codegen/client_streaming_blocking_call.h + include/grpc_c/codegen/context.h include/grpc_c/codegen/message.h include/grpc_c/codegen/method.h include/grpc_c/codegen/pb_compat.h include/grpc_c/codegen/serialization.h + include/grpc_c/codegen/server.h include/grpc_c/codegen/server_streaming_blocking_call.h include/grpc_c/codegen/unary_async_call.h include/grpc_c/codegen/unary_blocking_call.h diff --git a/Makefile b/Makefile index bd7e3e843de48..cdb0c68006b97 100644 --- a/Makefile +++ b/Makefile @@ -3045,6 +3045,7 @@ LIBGRPC_C_SRC = \ src/c/client_context.c \ src/c/client_streaming_blocking_call.c \ src/c/completion_queue.c \ + src/c/context.c \ src/c/init_shutdown.c \ src/c/message.c \ src/c/pb_compat.c \ @@ -3059,12 +3060,13 @@ PUBLIC_HEADERS_C += \ include/grpc_c/channel.h \ include/grpc_c/client_context.h \ include/grpc_c/codegen/bidi_streaming_blocking_call.h \ - include/grpc_c/codegen/client_context.h \ include/grpc_c/codegen/client_streaming_blocking_call.h \ + include/grpc_c/codegen/context.h \ include/grpc_c/codegen/message.h \ include/grpc_c/codegen/method.h \ include/grpc_c/codegen/pb_compat.h \ include/grpc_c/codegen/serialization.h \ + include/grpc_c/codegen/server.h \ include/grpc_c/codegen/server_streaming_blocking_call.h \ include/grpc_c/codegen/unary_async_call.h \ include/grpc_c/codegen/unary_blocking_call.h \ @@ -16349,6 +16351,7 @@ src/c/channel.c: $(OPENSSL_DEP) src/c/client_context.c: $(OPENSSL_DEP) src/c/client_streaming_blocking_call.c: $(OPENSSL_DEP) src/c/completion_queue.c: $(OPENSSL_DEP) +src/c/context.c: $(OPENSSL_DEP) src/c/init_shutdown.c: $(OPENSSL_DEP) src/c/message.c: $(OPENSSL_DEP) src/c/pb_compat.c: $(OPENSSL_DEP) diff --git a/build.yaml b/build.yaml index 8f73c18a29ef2..e1df3d5011968 100644 --- a/build.yaml +++ b/build.yaml @@ -842,12 +842,13 @@ libs: - include/grpc_c/channel.h - include/grpc_c/client_context.h - include/grpc_c/codegen/bidi_streaming_blocking_call.h - - include/grpc_c/codegen/client_context.h - include/grpc_c/codegen/client_streaming_blocking_call.h + - include/grpc_c/codegen/context.h - include/grpc_c/codegen/message.h - include/grpc_c/codegen/method.h - include/grpc_c/codegen/pb_compat.h - include/grpc_c/codegen/serialization.h + - include/grpc_c/codegen/server.h - include/grpc_c/codegen/server_streaming_blocking_call.h - include/grpc_c/codegen/unary_async_call.h - include/grpc_c/codegen/unary_blocking_call.h @@ -884,6 +885,7 @@ libs: - src/c/client_context.c - src/c/client_streaming_blocking_call.c - src/c/completion_queue.c + - src/c/context.c - src/c/init_shutdown.c - src/c/message.c - src/c/pb_compat.c diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index 5d8bea3c88c80..ec2287a512c69 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -78,7 +78,6 @@ typedef struct async_server_data { int main(int argc, char **argv) { GRPC_server *server = GRPC_build_server({ - .async_services = { helloworld_Greeter_Service, NULL } }); GRPC_incoming_notification_queue *incoming = GRPC_server_new_incoming_queue(server); diff --git a/include/grpc_c/codegen/client_context.h b/include/grpc_c/codegen/context.h similarity index 85% rename from include/grpc_c/codegen/client_context.h rename to include/grpc_c/codegen/context.h index cd8c771f2ef4d..553941e18b3a1 100644 --- a/include/grpc_c/codegen/client_context.h +++ b/include/grpc_c/codegen/context.h @@ -31,10 +31,10 @@ * */ -#ifndef GRPC_C_CODEGEN_CLIENT_CONTEXT_H -#define GRPC_C_CODEGEN_CLIENT_CONTEXT_H +#ifndef GRPC_C_CODEGEN_CONTEXT_H +#define GRPC_C_CODEGEN_CONTEXT_H -#include +#include #include typedef struct grpc_serialization_impl { @@ -42,7 +42,7 @@ typedef struct grpc_serialization_impl { GRPC_deserializer deserialize; } grpc_serialization_impl; -void GRPC_client_context_set_serialization_impl( - GRPC_client_context *context, grpc_serialization_impl serialization_impl); +void GRPC_context_set_serialization_impl( + GRPC_context *context, grpc_serialization_impl serialization_impl); -#endif /* GRPC_C_CODEGEN_CLIENT_CONTEXT_H */ +#endif /* GRPC_C_CODEGEN_CONTEXT_H */ diff --git a/include/grpc_c/codegen/server.h b/include/grpc_c/codegen/server.h index a1135d9e1b669..0901002b67102 100644 --- a/include/grpc_c/codegen/server.h +++ b/include/grpc_c/codegen/server.h @@ -39,7 +39,7 @@ #include #include -typedef GRPC_method** GRPC_service_declaration; +typedef GRPC_method* GRPC_service_declaration[]; GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_service_declaration service_declaration, size_t num_methods); #endif /* GRPC_C_CODEGEN_SERVER_H */ diff --git a/include/grpc_c/codegen/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h index 587194a44bca4..6c74f69b15930 100644 --- a/include/grpc_c/codegen/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -50,7 +50,7 @@ void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); GRPC_server_async_response_writer *GRPC_unary_async_server_request( - GRPC_registered_service*service, size_t method_index, + GRPC_registered_service* service, size_t method_index, GRPC_server_context *const context, void *request, GRPC_incoming_notification_queue *incoming_queue, GRPC_completion_queue *processing_queue, void *tag); diff --git a/src/c/client_context.c b/src/c/client_context.c index cbf715b5d93f4..10eecd955a1a3 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -63,10 +63,6 @@ GRPC_status GRPC_get_call_status(GRPC_client_context *context) { return context->status; } -void GRPC_client_context_set_serialization_impl( - GRPC_client_context *context, grpc_serialization_impl serialization_impl) { - context->serialization_impl = serialization_impl; -} // We define a conversion function instead of type-casting, which lets the user // convert diff --git a/src/c/context.c b/src/c/context.c new file mode 100644 index 0000000000000..898489e516b5a --- /dev/null +++ b/src/c/context.c @@ -0,0 +1,39 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/c/context.h" + +void GRPC_context_set_serialization_impl( + GRPC_context *context, grpc_serialization_impl serialization_impl) { + context->serialization_impl = serialization_impl; +} diff --git a/src/c/context.h b/src/c/context.h index 0ead25ac7c551..2b46cbe3db5d7 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -35,7 +35,7 @@ #define GRPC_C_INTERNAL_CONTEXT_H #include -#include +#include #include #include #include diff --git a/src/c/server.c b/src/c/server.c index c197e72693f83..8c9dd8660c0ea 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -116,7 +116,8 @@ GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_servi } else { handling = GRPC_SRM_PAYLOAD_NONE; } - registered_method.core_method_handle = grpc_server_register_method(server->core_server, registered_method.method.name, server->host, handling, 0); + // TODO(yifeit): per-method host + registered_method.core_method_handle = grpc_server_register_method(server->core_server, registered_method.method.name, NULL, handling, 0); GRPC_array_push_back(registered_service.registered_methods, registered_method); } GRPC_array_push_back(server->registered_services, registered_service); diff --git a/src/c/server.h b/src/c/server.h index 8a67b39a507d0..c1eea7a932a15 100644 --- a/src/c/server.h +++ b/src/c/server.h @@ -61,7 +61,7 @@ struct GRPC_registered_service { struct GRPC_server { grpc_server *core_server; - char *host; + GRPC_array(char *) listen_hosts; GRPC_array(GRPC_incoming_notification_queue *) registered_queues; GRPC_array(GRPC_registered_service) registered_services; diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 70ed8ad8a8cbb..f0f5f59185400 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -108,13 +108,17 @@ GRPC_server_async_response_writer *GRPC_unary_async_server_request( GRPC_server_context *const context, void *request, GRPC_incoming_notification_queue *incoming_queue, GRPC_completion_queue *processing_queue, void *tag) { - GRPC_call_op_set set = { - // deserialize from the payload read by core after the request comes in - .operations = { grpc_op_server_decode_context_payload }, - .context = GRPC_server_context_to_base(context) - }; - GPR_ASSERT(GRPC_server_request_call(service, method_index, context, incoming_queue, processing_queue, tag) == GRPC_CALL_OK); - return NULL; + GRPC_server_async_response_writer *writer = GRPC_ALLOC_STRUCT(GRPC_server_async_response_writer, { + .context = context, + .receive_set = { + // deserialize from the payload read by core after the request comes in + .operations = { grpc_op_server_decode_context_payload }, + .context = GRPC_server_context_to_base(context), + .user_tag = tag + } + }); + GPR_ASSERT(GRPC_server_request_call(service, method_index, context, incoming_queue, processing_queue, &writer->receive_set) == GRPC_CALL_OK); + return writer; } void GRPC_unary_async_server_finish(GRPC_server_async_response_writer *writer, diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index e612d13e4e415..0b72b8c78b480 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -50,6 +50,7 @@ typedef struct GRPC_client_async_response_reader { typedef struct GRPC_server_async_response_writer { GRPC_server_context *context; + GRPC_call_op_set receive_set; } GRPC_server_async_response_writer; #endif // GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 3a0775fef12aa..9c455225f422f 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -144,7 +144,9 @@ void PrintHeaderServerMethod(Printer *printer, const Method *method, printer->Print( *vars, "/* Async */\n" - "void $CPrefix$$Service$_$Method$_ServerRequest(\n" + "GRPC_server_async_response_writer *" + "$CPrefix$$Service$_$Method$_ServerRequest(\n" + " GRPC_registered_service *service,\n" " GRPC_server_context *const context,\n" " $CPrefix$$Request$ *request,\n" " GRPC_incoming_notification_queue *incoming_queue,\n" @@ -155,7 +157,7 @@ void PrintHeaderServerMethod(Printer *printer, const Method *method, printer->Print( *vars, "void $CPrefix$$Service$_$Method$_ServerFinish(\n" - " GRPC_server_context *const context,\n" + " GRPC_server_async_response_writer *writer,\n" " $CPrefix$$Response$ *response,\n" " GRPC_status_code server_status,\n" " void *tag);\n" @@ -349,11 +351,23 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, printer->Print("\n\n"); } +void PrintHeaderServiceDeclaration(Printer *printer, const Service *service, std::map *vars) { + // Register method + printer->Print( + *vars, + "/* Call this to handle this service in the server */\n" + "GRPC_registered_service *$CPrefix$$Service$_Register(GRPC_server *server);\n\n" + ); +} + // Prints declaration of a single service void PrintHeaderService(Printer *printer, const Service *service, std::map *vars) { (*vars)["Service"] = service->name(); + printer->Print(*vars, BlockifyComments("Service metadata for " + service->name() + "\n\n").c_str()); + PrintHeaderServiceDeclaration(printer, service, vars); + printer->Print(*vars, BlockifyComments("Service declaration for " + service->name() + "\n") .c_str()); @@ -397,16 +411,18 @@ void PrintSourceServerMethod(Printer *printer, const Method *method, *vars, "GRPC_server_async_response_writer *" "$CPrefix$$Service$_$Method$_ServerRequest(\n" + " GRPC_registered_service *service,\n" " GRPC_server_context *const context,\n" " $CPrefix$$Request$ *request,\n" " GRPC_incoming_notification_queue *incoming_queue,\n" " GRPC_completion_queue *processing_queue,\n" " void *tag) {\n" - " GRPC_client_context_set_serialization_impl(context,\n" + " GRPC_context_set_serialization_impl((GRPC_context *) context,\n" " (grpc_serialization_impl) { " "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" " return GRPC_unary_async_server_request(\n" + " service,\n" " GRPC_METHOD_INDEX_$CPrefix$$Service$_$Method$,\n" " context,\n" " request,\n" @@ -498,6 +514,14 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std " GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$ = $MethodCount$\n" "};\n" "\n"); + + printer->Print( + *vars, + "GRPC_registered_service *$CPrefix$$Service$_Register(GRPC_server *server) {\n" + " return GRPC_server_add_service(server, GRPC_service_$CPrefix$$Service$, GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$);\n" + "}\n" + "\n" + ); } // Prints implementation of a single client method @@ -517,7 +541,7 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, " const $CPrefix$$Request$ request,\n" " $CPrefix$$Response$ *response) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" - " GRPC_client_context_set_serialization_impl(context,\n" + " GRPC_context_set_serialization_impl((GRPC_context *) context,\n" " (grpc_serialization_impl) { " "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" @@ -536,7 +560,7 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, " GRPC_completion_queue *cq,\n" " const $CPrefix$$Request$ request) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" - " GRPC_client_context_set_serialization_impl(context,\n" + " GRPC_context_set_serialization_impl((GRPC_context *) context,\n" " (grpc_serialization_impl) { " "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" @@ -559,7 +583,7 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, "GRPC_client_writer *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context,\n" " $CPrefix$$Response$ *response) {\n" - " GRPC_client_context_set_serialization_impl(context,\n" + " GRPC_context_set_serialization_impl((GRPC_context *) context,\n" " (grpc_serialization_impl) { " "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" @@ -595,7 +619,7 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, " GRPC_client_context *const context,\n" " $CPrefix$$Request$ request) {\n" " const GRPC_message request_msg = { &request, sizeof(request) };\n" - " GRPC_client_context_set_serialization_impl(context,\n" + " GRPC_context_set_serialization_impl((GRPC_context *) context,\n" " (grpc_serialization_impl) { " "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" @@ -627,7 +651,7 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, "\n" "GRPC_client_reader_writer *$CPrefix$$Service$_$Method$(\n" " GRPC_client_context *const context) {\n" - " GRPC_client_context_set_serialization_impl(context,\n" + " GRPC_context_set_serialization_impl((GRPC_context *) context,\n" " (grpc_serialization_impl) { " "GRPC_C_RESOLVE_SERIALIZER($CPrefix$$Request$), " "GRPC_C_RESOLVE_DESERIALIZER($CPrefix$$Response$) });\n" @@ -678,9 +702,11 @@ void PrintSourceService(Printer *printer, const Service *service, printer->Print(*vars, BlockifyComments("Service metadata for " + service->name() + "\n\n").c_str()); PrintSourceServiceDeclaration(printer, service, vars); - printer->Print(*vars, BlockifyComments("Service implementation for " + - service->name() + "\n\n") - .c_str()); + printer->Print( + *vars, + BlockifyComments( + "Service implementation for " + service->name() + "\n\n" + ).c_str()); for (int i = 0; i < service->method_count(); ++i) { PrintSourceClientMethod(printer, service->method(i).get(), vars); PrintSourceServerMethod(printer, service->method(i).get(), vars); @@ -802,13 +828,15 @@ grpc::string GetSourceIncludes(File *file, const Parameters ¶ms) { static const char *headers_strs[] = { "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/channel.h", - "grpc_c/client_context.h", "grpc_c/codegen/message.h", + "grpc_c/server.h", "grpc_c/server_incoming_queue.h", + "grpc_c/client_context.h", "grpc_c/server_context.h", "grpc_c/codegen/message.h", "grpc_c/codegen/method.h", "grpc_c/codegen/unary_blocking_call.h", "grpc_c/codegen/unary_async_call.h", + "grpc_c/codegen/server.h", "grpc_c/codegen/client_streaming_blocking_call.h", "grpc_c/codegen/server_streaming_blocking_call.h", "grpc_c/codegen/bidi_streaming_blocking_call.h", - "grpc_c/codegen/client_context.h", + "grpc_c/codegen/context.h", // Relying on Nanopb for Protobuf serialization for now "grpc_c/codegen/pb_compat.h", "grpc_c/declare_serializer.h"}; std::vector headers(headers_strs, array_end(headers_strs)); @@ -841,11 +869,12 @@ grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { printer->Print( vars, - BlockifyComments("\n" - "// Generated by the gRPC protobuf plugin.\n" - "// If you make any local change, they will be lost.\n" - "\n") - .c_str()); + BlockifyComments( + "\n" + "// Generated by the gRPC protobuf plugin.\n" + "// If you make any local change, they will be lost.\n" + "\n" + ).c_str()); grpc::string filename; { @@ -878,7 +907,9 @@ grpc::string GetHeaderIncludes(File *file, const Parameters ¶ms) { static const char *headers_strs[] = { "grpc_c/grpc_c.h", "grpc_c/status.h", "grpc_c/channel.h", - "grpc_c/client_context.h", "grpc_c/completion_queue.h"}; + "grpc_c/client_context.h", "grpc_c/completion_queue.h", + "grpc_c/server_context.h", "grpc_c/server.h", + "grpc_c/server_incoming_queue.h"}; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); printer->Print(vars, "\n"); @@ -953,20 +984,21 @@ grpc::string GetSourceServices(File *file, const Parameters ¶ms) { for (auto itr = messages.begin(); itr != messages.end(); itr++) { std::map vars_msg(vars); vars_msg["msgType"] = (*itr)->name(); - printer->Print(vars_msg, - "\n" - "#ifdef $CPrefix$$msgType$_init_default\n" - "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const " - "GRPC_message input) {\n" - " return GRPC_pb_compat_generic_serializer(input, " - "$CPrefix$$msgType$_fields);\n" - "}\n" - "void $CPrefix$$msgType$_nanopb_deserializer(const " - "GRPC_message input, void *output) {\n" - " return GRPC_pb_compat_generic_deserializer(input, " - "output, $CPrefix$$msgType$_fields);\n" - "}\n" - "#endif\n"); + printer->Print( + vars_msg, + "\n" + "#ifdef $CPrefix$$msgType$_init_default\n" + "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const " + "GRPC_message input) {\n" + " return GRPC_pb_compat_generic_serializer(input, " + "$CPrefix$$msgType$_fields);\n" + "}\n" + "void $CPrefix$$msgType$_nanopb_deserializer(const " + "GRPC_message input, void *output) {\n" + " return GRPC_pb_compat_generic_deserializer(input, " + "output, $CPrefix$$msgType$_fields);\n" + "}\n" + "#endif\n"); } printer->Print("\n"); diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index a89e8cb534cf6..b9813a7262139 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -58,7 +58,7 @@ extern "C" { #include #include #include -#include +#include } #include "src/core/lib/security/credentials/credentials.h" @@ -144,9 +144,9 @@ class End2endTest { static void SendUnaryRpc(GRPC_channel *channel, int num_rpcs) { for (int i = 0; i < num_rpcs; ++i) { - GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; + GRPC_method method = { GRPC_NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -173,9 +173,9 @@ static void SendUnaryRpc(GRPC_channel *channel, static void SendClientStreamingRpc(GRPC_channel *channel, int num_rpcs) { for (int i = 0; i < num_rpcs; ++i) { - GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/RequestStream" }; + GRPC_method method = { GRPC_CLIENT_STREAMING, "/grpc.testing.EchoTestService/RequestStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -208,9 +208,9 @@ static void SendClientStreamingRpc(GRPC_channel *channel, static void SendServerStreamingRpc(GRPC_channel *channel, int num_rpcs) { for (int i = 0; i < num_rpcs; ++i) { - GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/ResponseStream" }; + GRPC_method method = { GRPC_SERVER_STREAMING, "/grpc.testing.EchoTestService/ResponseStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -244,9 +244,9 @@ static void SendServerStreamingRpc(GRPC_channel *channel, static void SendBidiStreamingRpc(GRPC_channel *channel, int num_rpcs) { for (int i = 0; i < num_rpcs; ++i) { - GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/BidiStream" }; + GRPC_method method = { GRPC_BIDI_STREAMING, "/grpc.testing.EchoTestService/BidiStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -286,9 +286,9 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, static void SendAsyncUnaryRpc(GRPC_channel *channel, int num_rpcs) { for (int i = 0; i < num_rpcs; ++i) { - GRPC_method method = { GRPC_method::RpcType::NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; + GRPC_method method = { GRPC_NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_client_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); GRPC_completion_queue *cq = GRPC_completion_queue_create(); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 52e43e689d75f..5a737db3328ea 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -4300,12 +4300,13 @@ "include/grpc_c/channel.h", "include/grpc_c/client_context.h", "include/grpc_c/codegen/bidi_streaming_blocking_call.h", - "include/grpc_c/codegen/client_context.h", "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/context.h", "include/grpc_c/codegen/message.h", "include/grpc_c/codegen/method.h", "include/grpc_c/codegen/pb_compat.h", "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server.h", "include/grpc_c/codegen/server_streaming_blocking_call.h", "include/grpc_c/codegen/unary_async_call.h", "include/grpc_c/codegen/unary_blocking_call.h", @@ -4339,12 +4340,13 @@ "include/grpc_c/channel.h", "include/grpc_c/client_context.h", "include/grpc_c/codegen/bidi_streaming_blocking_call.h", - "include/grpc_c/codegen/client_context.h", "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/context.h", "include/grpc_c/codegen/message.h", "include/grpc_c/codegen/method.h", "include/grpc_c/codegen/pb_compat.h", "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server.h", "include/grpc_c/codegen/server_streaming_blocking_call.h", "include/grpc_c/codegen/unary_async_call.h", "include/grpc_c/codegen/unary_blocking_call.h", @@ -4370,6 +4372,7 @@ "src/c/client_streaming_blocking_call.h", "src/c/completion_queue.c", "src/c/completion_queue.h", + "src/c/context.c", "src/c/context.h", "src/c/init_shutdown.c", "src/c/init_shutdown.h", diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj index 3e36e113f1584..d0a9156bb43dd 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj @@ -261,12 +261,13 @@ - + + @@ -313,6 +314,8 @@ + + diff --git a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters index 3bd9797c872e9..5658b68b24f6b 100644 --- a/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_c/grpc_c.vcxproj.filters @@ -25,6 +25,9 @@ src\c + + src\c + src\c @@ -63,10 +66,10 @@ include\grpc_c\codegen - + include\grpc_c\codegen - + include\grpc_c\codegen @@ -81,6 +84,9 @@ include\grpc_c\codegen + + include\grpc_c\codegen + include\grpc_c\codegen From 797bd6d490c39da8970b6e09126ca9835daeaccf Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 12 Aug 2016 17:11:02 -0700 Subject: [PATCH 181/202] server almost working --- examples/c/helloworld/.gitignore | 1 + examples/c/helloworld/Makefile | 7 +++- examples/c/helloworld/greeter_async_server.c | 42 +++++++++++--------- include/grpc_c/codegen/method.h | 6 ++- include/grpc_c/codegen/server.h | 2 + include/grpc_c/server.h | 1 + include/grpc_c/server_context.h | 2 + include/grpc_c/server_incoming_queue.h | 3 -- src/c/bidi_streaming_blocking_call.h | 5 ++- src/c/call_ops.c | 11 +++-- src/c/client_context.h | 2 +- src/c/client_streaming_blocking_call.h | 5 ++- src/c/context.h | 4 +- src/c/server.c | 12 ++++-- src/c/server.h | 2 - src/c/server_context.c | 10 +++++ src/c/server_context.h | 5 +-- src/c/server_streaming_blocking_call.h | 5 ++- src/c/unary_async_call.c | 24 +++++++++-- src/c/unary_async_call.h | 10 +++-- test/c/end2end/generic_end2end_test.cc | 10 ++--- 21 files changed, 110 insertions(+), 59 deletions(-) diff --git a/examples/c/helloworld/.gitignore b/examples/c/helloworld/.gitignore index daa5eba8d6e9f..6fffa4ba99bab 100644 --- a/examples/c/helloworld/.gitignore +++ b/examples/c/helloworld/.gitignore @@ -8,3 +8,4 @@ helloworld.pb.h greeter_client greeter_async_client greeter_async_client2 +greeter_async_server diff --git a/examples/c/helloworld/Makefile b/examples/c/helloworld/Makefile index b07536c7eac06..35197da8ddf7a 100644 --- a/examples/c/helloworld/Makefile +++ b/examples/c/helloworld/Makefile @@ -43,7 +43,7 @@ PROTOS_PATH = ../../protos vpath %.proto $(PROTOS_PATH) -all: system-check greeter_client greeter_async_client greeter_async_client2 +all: system-check greeter_client greeter_async_client greeter_async_client2 greeter_async_server greeter_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_client.o $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ @@ -54,6 +54,9 @@ greeter_async_client: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_clien greeter_async_client2: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_client2.o $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ +greeter_async_server: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_server.o + $(CC) $^ $(NANOPB_CORE) $(LDFLAGS) -o $@ + .PRECIOUS: %.grpc.pbc.c %.grpc.pbc.c: %.proto $(PROTOC) -I $(PROTOS_PATH) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_C_PLUGIN_PATH) $< @@ -63,7 +66,7 @@ greeter_async_client2: helloworld.pbc.o helloworld.grpc.pbc.o greeter_async_clie $(PROTOC) --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb -I $(PROTOS_PATH) --nanopb_out=--extension=.pbc:. $< clean: - rm -f *.o *.pb.c *.pb.h *.pbc.c *.pbc.h greeter_client greeter_async_client greeter_async_client2 + rm -f *.o *.pb.c *.pb.h *.pbc.c *.pbc.h greeter_client greeter_async_client greeter_async_client2 greeter_async_server # The following is to test your system and ensure a smoother experience. diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index ec2287a512c69..134f89bbdeee3 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -39,7 +39,10 @@ #include #include #include +#include +#include +#include #include #include "helloworld.grpc.pbc.h" @@ -77,24 +80,27 @@ typedef struct async_server_data { } async_server_data; int main(int argc, char **argv) { - GRPC_server *server = GRPC_build_server({ + GRPC_server *server = GRPC_build_server((GRPC_build_server_options) { }); GRPC_incoming_notification_queue *incoming = GRPC_server_new_incoming_queue(server); + GRPC_server_listen_host(server, "0.0.0.0:50051"); + GRPC_registered_service *service = helloworld_Greeter_Register(server); GRPC_server_start(server); // Run server for (;;) { - async_server_data *data = calloc(sizeof(async_server_data)); + async_server_data *data = calloc(sizeof(async_server_data), 1); data->context = GRPC_server_context_create(server); data->request.name.funcs.decode = read_string_store_in_arg; - data->response.message.funcs.encode = write_string_from_arg; + data->reply.message.funcs.encode = write_string_from_arg; // Listen for this method - helloworld_Greeter_SayHello_ServerRequest( - &data->context, + GRPC_server_async_response_writer *writer = helloworld_Greeter_SayHello_ServerRequest( + service, + data->context, &data->request, incoming, // incoming queue - incoming.cq, // processing queue - we can reuse the + incoming->cq, // processing queue - we can reuse the // same underlying completion queue, or // specify a different one here data // tag for the completion queues @@ -112,23 +118,23 @@ int main(int argc, char **argv) { // Process the request { - async_server_data *data = (async_server_data *) tag; - char *input_str = data->request.name.arg; + async_server_data *data_new = (async_server_data *) tag; + char *input_str = data_new->request.name.arg; size_t output_len = strlen(input_str) + 6; char *output_str = malloc(output_len + 1); sprintf(output_str, "Hello %s", input_str); - data->reply.message.arg = output_str; + data_new->reply.message.arg = output_str; helloworld_Greeter_SayHello_ServerFinish( - &data->context, - &data->reply, + writer, + &data_new->reply, GRPC_STATUS_OK, - data + data_new ); } // Wait for request termination - GRPC_completion_queue_operation_status queue_status = + queue_status = GRPC_completion_queue_next(incoming->cq, &tag, &ok); if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; @@ -137,11 +143,11 @@ int main(int argc, char **argv) { // Clean up { - async_server_data *data = (async_server_data *) tag; - free(data->request.name.arg); - free(data->reply.message.arg); - GRPC_server_context_destroy(data->context); - free(data); + async_server_data *data_new = (async_server_data *) tag; + free(data_new->request.name.arg); + free(data_new->reply.message.arg); + GRPC_server_context_destroy(&data_new->context); + free(data_new); } } GRPC_server_shutdown(server); diff --git a/include/grpc_c/codegen/method.h b/include/grpc_c/codegen/method.h index 9f99c4517c709..107f733a8e944 100644 --- a/include/grpc_c/codegen/method.h +++ b/include/grpc_c/codegen/method.h @@ -34,6 +34,8 @@ #ifndef GRPC_C_CODEGEN_METHOD_H #define GRPC_C_CODEGEN_METHOD_H +#include + typedef enum GRPC_rpc_type { GRPC_NORMAL_RPC = 0, GRPC_CLIENT_STREAMING, /* request streaming */ @@ -41,10 +43,10 @@ typedef enum GRPC_rpc_type { GRPC_BIDI_STREAMING } GRPC_rpc_type; -typedef struct GRPC_method { +struct GRPC_method { GRPC_rpc_type type; const char* name; -} GRPC_method; +}; typedef struct GRPC_method GRPC_method; diff --git a/include/grpc_c/codegen/server.h b/include/grpc_c/codegen/server.h index 0901002b67102..b79fc868414bf 100644 --- a/include/grpc_c/codegen/server.h +++ b/include/grpc_c/codegen/server.h @@ -40,6 +40,8 @@ #include typedef GRPC_method* GRPC_service_declaration[]; + +/** Called by generated service code to register themselves on the server */ GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_service_declaration service_declaration, size_t num_methods); #endif /* GRPC_C_CODEGEN_SERVER_H */ diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h index 5cf0ca81d57a9..f3e58c2aaa9a7 100644 --- a/include/grpc_c/server.h +++ b/include/grpc_c/server.h @@ -42,6 +42,7 @@ typedef struct GRPC_build_server_options { GRPC_server *GRPC_build_server(GRPC_build_server_options options); GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue( GRPC_server *server); +void GRPC_server_listen_host(GRPC_server *server, const char *host); void GRPC_server_start(GRPC_server *server); void GRPC_server_shutdown(GRPC_server *server); void GRPC_server_destroy(GRPC_server *server); diff --git a/include/grpc_c/server_context.h b/include/grpc_c/server_context.h index c217eddcbaf09..040f6e0e51700 100644 --- a/include/grpc_c/server_context.h +++ b/include/grpc_c/server_context.h @@ -38,6 +38,8 @@ GRPC_server_context *GRPC_server_context_create(GRPC_server *server); +void GRPC_server_context_destroy(GRPC_server_context **context); + GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context); #endif /* GRPC_C_SERVER_CONTEXT_H */ diff --git a/include/grpc_c/server_incoming_queue.h b/include/grpc_c/server_incoming_queue.h index e6e8885093ec7..d14789a6ac760 100644 --- a/include/grpc_c/server_incoming_queue.h +++ b/include/grpc_c/server_incoming_queue.h @@ -36,9 +36,6 @@ #include -typedef struct GRPC_incoming_notification_queue - GRPC_incoming_notification_queue; - struct GRPC_incoming_notification_queue { GRPC_completion_queue *cq; }; diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index 8d02f6ef2f396..8b50742131432 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -34,14 +34,15 @@ #ifndef GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H #define GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H +#include #include #include "src/c/call_ops.h" #include "src/c/client_context.h" -typedef struct GRPC_client_reader_writer { +struct GRPC_client_reader_writer { GRPC_client_context *const context; grpc_call *call; grpc_completion_queue *cq; -} GRPC_client_reader_writer; +}; #endif /* GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H */ diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 64333185a7290..ce2e7022ef9fa 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -34,7 +34,6 @@ #include "src/c/call_ops.h" #include #include -#include #include "src/c/client_context.h" #include "src/c/server_context.h" @@ -239,12 +238,14 @@ static bool op_server_decode_context_payload_fill(grpc_op *op, GRPC_context *con void *response) { set->message_received = false; set->received_object = response; + ((GRPC_server_context *) context)->payload = NULL; return false; // don't fill hence won't trigger grpc_call_start_batch } static void op_server_decode_context_payload_finish(GRPC_context *context, GRPC_call_op_set *set, bool *status, int max_message_size) { + // decode payload in server context GRPC_server_context *server_context = (GRPC_server_context *) context; grpc_byte_buffer *buffer = server_context->payload; @@ -264,8 +265,10 @@ static void op_server_decode_context_payload_finish(GRPC_context *context, gpr_slice_unref(slice_recv); grpc_byte_buffer_reader_destroy(&reader); - grpc_byte_buffer_destroy(buffer); } + + grpc_byte_buffer_destroy(buffer); + server_context->payload = NULL; } const GRPC_op_manager grpc_op_server_decode_context_payload = { @@ -313,9 +316,9 @@ void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, GRPC_context *context, const grpc_message request, void *response) { size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT]; + grpc_op ops[GRPC_MAX_OP_COUNT] = {}; size_t num_ops = GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); - if (num_ops > 0) { + if (num_ops > 0 && call != NULL) { GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); } } diff --git a/src/c/client_context.h b/src/c/client_context.h index 0d73d54c03849..18e4344c7c910 100644 --- a/src/c/client_context.h +++ b/src/c/client_context.h @@ -40,7 +40,7 @@ typedef struct GRPC_client_context grpc_client_context; struct GRPC_client_context { // Emulating inheritance - GRPC_C_CONTEXT_BASE_MEMBERS; + GRPC_C_CONTEXT_BASE_MEMBERS // client-side specific grpc_metadata_array recv_trailing_metadata_array; diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 2cdd9098a71e6..28e0a8a22f1f9 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -34,17 +34,18 @@ #ifndef GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H #define GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H +#include #include #include "src/c/call_ops.h" #include "src/c/client_context.h" -typedef struct GRPC_client_writer { +struct GRPC_client_writer { GRPC_call_op_set finish_ops; GRPC_client_context *context; grpc_call *call; grpc_completion_queue *cq; void *response; -} GRPC_client_writer; +}; #endif // GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H diff --git a/src/c/context.h b/src/c/context.h index 2b46cbe3db5d7..c4ff59cc7e9ec 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -43,8 +43,6 @@ #include #include "src/c/message.h" -typedef struct GRPC_context GRPC_context; - /** * Both client and server context shares this common stub. */ @@ -63,7 +61,7 @@ typedef struct GRPC_context GRPC_context; grpc_call *call; struct GRPC_context { - GRPC_C_CONTEXT_BASE_MEMBERS; + GRPC_C_CONTEXT_BASE_MEMBERS }; #endif // GRPC_C_INTERNAL_CONTEXT_H diff --git a/src/c/server.c b/src/c/server.c index 8c9dd8660c0ea..3b2acc446e0eb 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -34,10 +34,14 @@ #include "src/c/server.h" #include #include +#include #include "src/c/alloc.h" #include "src/c/init_shutdown.h" #include "src/c/server_context.h" -#include "server.h" + +void GRPC_server_listen_host(GRPC_server *server, const char *host) { + grpc_server_add_insecure_http2_port(server->core_server, host); +} GRPC_server *GRPC_build_server(GRPC_build_server_options options) { GRPC_ensure_grpc_init(); @@ -110,8 +114,9 @@ GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_servi GRPC_registered_method registered_method; registered_method.method = *service_declaration[i]; grpc_server_register_method_payload_handling handling; - // Let core read the payload for us only in unary case - if (registered_method.method.type == GRPC_NORMAL_RPC) { + // Let core read the payload for us only in unary or server streaming case + if (registered_method.method.type == GRPC_NORMAL_RPC + || registered_method.method.type == GRPC_SERVER_STREAMING) { handling = GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER; } else { handling = GRPC_SRM_PAYLOAD_NONE; @@ -131,6 +136,7 @@ grpc_call_error GRPC_server_request_call( GRPC_incoming_notification_queue *incoming_queue, GRPC_completion_queue *processing_queue, void *tag) { void *core_method_handle = service->registered_methods.data[method_index].core_method_handle; + GPR_ASSERT(core_method_handle != NULL); return grpc_server_request_registered_call( context->server->core_server, core_method_handle, diff --git a/src/c/server.h b/src/c/server.h index c1eea7a932a15..f58383782d11a 100644 --- a/src/c/server.h +++ b/src/c/server.h @@ -41,8 +41,6 @@ #include "src/c/array.h" #include "src/c/server_incoming_queue.h" -typedef struct GRPC_server GRPC_server; -typedef struct GRPC_registered_service GRPC_registered_service; typedef struct GRPC_registered_method GRPC_registered_method; struct GRPC_registered_method { diff --git a/src/c/server_context.c b/src/c/server_context.c index 00994b962e9e6..49db528aa40d1 100644 --- a/src/c/server_context.c +++ b/src/c/server_context.c @@ -31,6 +31,7 @@ * */ +#include #include "src/c/server_context.h" #include "src/c/alloc.h" @@ -51,3 +52,12 @@ GRPC_server_context *GRPC_server_context_create(GRPC_server *server) { GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context) { return (GRPC_context *)server_context; } + +void GRPC_server_context_destroy(GRPC_server_context **context) { + if ((*context)->call) { + grpc_call_destroy((*context)->call); + (*context)->call = NULL; + } + gpr_free(*context); + *context = NULL; +} diff --git a/src/c/server_context.h b/src/c/server_context.h index 366e34b192b13..110474e6831eb 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -34,13 +34,12 @@ #ifndef GRPC_C_INTERNAL_SERVER_CONTEXT_H #define GRPC_C_INTERNAL_SERVER_CONTEXT_H +#include #include #include "src/c/context.h" -typedef struct GRPC_server_context GRPC_server_context; - struct GRPC_server_context { - GRPC_C_CONTEXT_BASE_MEMBERS; + GRPC_C_CONTEXT_BASE_MEMBERS // server-side specific GRPC_server *server; diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 02dfc4a766e2a..29591aa6095a3 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -34,14 +34,15 @@ #ifndef GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H #define GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H +#include #include #include "src/c/call_ops.h" #include "src/c/client_context.h" -typedef struct GRPC_client_reader { +struct GRPC_client_reader { GRPC_client_context *context; grpc_call *call; grpc_completion_queue *cq; -} GRPC_client_reader; +}; #endif // GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index f0f5f59185400..f935b33ed8809 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -43,7 +43,7 @@ // Client // -static void free_client_reader_and_call(void *arg) { +static void free_client_reader(void *arg) { GRPC_client_async_response_reader *reader = arg; gpr_free(reader); } @@ -75,7 +75,7 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( // Different from blocking call, we need to inform completion queue to run // cleanup for us reader->finish_buf.async_cleanup = - (GRPC_closure){.arg = reader, .callback = free_client_reader_and_call}; + (GRPC_closure){.arg = reader, .callback = free_client_reader}; GRPC_start_batch_from_op_set(reader->call, &reader->init_buf, GRPC_client_context_to_base(reader->context), @@ -103,6 +103,11 @@ void GRPC_client_async_finish(GRPC_client_async_response_reader *reader, // Server // +static void free_server_writer(void *arg) { + GRPC_server_async_response_writer *writer = arg; + gpr_free(writer); +} + GRPC_server_async_response_writer *GRPC_unary_async_server_request( GRPC_registered_service* service, size_t method_index, GRPC_server_context *const context, void *request, @@ -115,9 +120,20 @@ GRPC_server_async_response_writer *GRPC_unary_async_server_request( .operations = { grpc_op_server_decode_context_payload }, .context = GRPC_server_context_to_base(context), .user_tag = tag + }, + .finish_set = { + .operations = { grpc_op_send_metadata, grpc_op_send_object, grpc_op_server_recv_close, grpc_op_server_send_status }, + .context = GRPC_server_context_to_base(context) } }); + + writer->finish_set.async_cleanup = (GRPC_closure) { + .arg = writer, + .callback = free_server_writer + }; + GPR_ASSERT(GRPC_server_request_call(service, method_index, context, incoming_queue, processing_queue, &writer->receive_set) == GRPC_CALL_OK); + GRPC_start_batch_from_op_set(NULL, &writer->receive_set, GRPC_server_context_to_base(context), (GRPC_message) {0, 0}, request); return writer; } @@ -125,5 +141,7 @@ void GRPC_unary_async_server_finish(GRPC_server_async_response_writer *writer, const GRPC_message response, const grpc_status_code server_status, void *tag) { - + writer->finish_set.user_tag = tag; + writer->context->server_return_status = server_status; + GRPC_start_batch_from_op_set(writer->context->call, &writer->finish_set, GRPC_server_context_to_base(writer->context), response, NULL); } diff --git a/src/c/unary_async_call.h b/src/c/unary_async_call.h index 0b72b8c78b480..6bac132704598 100644 --- a/src/c/unary_async_call.h +++ b/src/c/unary_async_call.h @@ -34,11 +34,12 @@ #ifndef GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H #define GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H +#include #include "src/c/call_ops.h" #include "src/c/client_context.h" #include "src/c/server_context.h" -typedef struct GRPC_client_async_response_reader { +struct GRPC_client_async_response_reader { GRPC_call_op_set init_buf; GRPC_call_op_set meta_buf; GRPC_call_op_set finish_buf; @@ -46,11 +47,12 @@ typedef struct GRPC_client_async_response_reader { grpc_completion_queue *cq; GRPC_client_context *context; grpc_call *call; -} GRPC_client_async_response_reader; +}; -typedef struct GRPC_server_async_response_writer { +struct GRPC_server_async_response_writer { GRPC_server_context *context; GRPC_call_op_set receive_set; -} GRPC_server_async_response_writer; + GRPC_call_op_set finish_set; +}; #endif // GRPC_C_INTERNAL_UNARY_ASYNC_CALL_H diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index b9813a7262139..592124366ca4d 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -146,7 +146,7 @@ static void SendUnaryRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl((GRPC_context *) context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -175,7 +175,7 @@ static void SendClientStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_CLIENT_STREAMING, "/grpc.testing.EchoTestService/RequestStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl((GRPC_context *) context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -210,7 +210,7 @@ static void SendServerStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_SERVER_STREAMING, "/grpc.testing.EchoTestService/ResponseStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl((GRPC_context *) context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -246,7 +246,7 @@ static void SendBidiStreamingRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_BIDI_STREAMING, "/grpc.testing.EchoTestService/BidiStream" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl((GRPC_context *) context, { GRPC_id_serialize, GRPC_id_deserialize }); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; GRPC_message msg = {str, sizeof(str)}; @@ -288,7 +288,7 @@ static void SendAsyncUnaryRpc(GRPC_channel *channel, for (int i = 0; i < num_rpcs; ++i) { GRPC_method method = { GRPC_NORMAL_RPC, "/grpc.testing.EchoTestService/Echo" }; GRPC_client_context *context = GRPC_client_context_create(channel); - GRPC_context_set_serialization_impl(context, { GRPC_id_serialize, GRPC_id_deserialize }); + GRPC_context_set_serialization_impl((GRPC_context *) context, { GRPC_id_serialize, GRPC_id_deserialize }); GRPC_completion_queue *cq = GRPC_completion_queue_create(); // hardcoded string for "gRPC-C" char str[] = {0x0A, 0x06, 0x67, 0x52, 0x50, 0x43, 0x2D, 0x43}; From 7e0e1aba6fb521f7140d70948fb12114ea0f4698 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Fri, 12 Aug 2016 17:48:06 -0700 Subject: [PATCH 182/202] basic server case working. need to investigate race condition --- examples/c/helloworld/greeter_async_client2.c | 9 ++++++--- examples/c/helloworld/greeter_async_server.c | 19 +++++++++++++++---- src/c/call_ops.c | 9 ++++++++- src/c/server_context.h | 2 ++ 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index f4312491752a3..f0a6b78cc0866 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include "helloworld.grpc.pbc.h" @@ -93,9 +94,9 @@ static void *async_say_hello_worker(void *param) { for (;;) { void *tag; bool ok; - GRPC_completion_queue_operation_status status = + GRPC_completion_queue_operation_status op_status = GRPC_completion_queue_next(cq, &tag, &ok); - if (status == GRPC_COMPLETION_QUEUE_SHUTDOWN) { + if (op_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) { printf("Worker thread shutting down\n"); return NULL; } @@ -108,6 +109,9 @@ static void *async_say_hello_worker(void *param) { assert(ok); assert(tag != NULL); async_client *client = (async_client *)tag; + GRPC_status status = GRPC_get_call_status(client->context); + assert(status.ok); + assert(status.code == GRPC_STATUS_OK); GRPC_client_context_destroy(&client->context); free(client); } @@ -116,7 +120,6 @@ static void *async_say_hello_worker(void *param) { int main(int argc, char **argv) { GRPC_channel *chan = GRPC_channel_create("0.0.0.0:50051"); - GRPC_client_context *context = GRPC_client_context_create(chan); GRPC_completion_queue *cq = GRPC_completion_queue_create(); num_responses = 0; diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index 134f89bbdeee3..a1e9c73ee676d 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -94,6 +94,9 @@ int main(int argc, char **argv) { data->request.name.funcs.decode = read_string_store_in_arg; data->reply.message.funcs.encode = write_string_from_arg; + data->request.name.arg = NULL; + data->reply.message.arg = NULL; + // Listen for this method GRPC_server_async_response_writer *writer = helloworld_Greeter_SayHello_ServerRequest( service, @@ -114,10 +117,18 @@ int main(int argc, char **argv) { if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); - assert(ok); + if (!ok) { + async_server_data *data_new = (async_server_data *) tag; + data_new->reply.message.arg = strdup(""); - // Process the request - { + helloworld_Greeter_SayHello_ServerFinish( + writer, + &data_new->reply, + GRPC_STATUS_DATA_LOSS, + data_new + ); + } else { + // Process the request async_server_data *data_new = (async_server_data *) tag; char *input_str = data_new->request.name.arg; size_t output_len = strlen(input_str) + 6; @@ -139,7 +150,7 @@ int main(int argc, char **argv) { if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); - assert(ok); + if (!ok) continue; // Clean up { diff --git a/src/c/call_ops.c b/src/c/call_ops.c index ce2e7022ef9fa..df67c4cc472f6 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -34,6 +34,7 @@ #include "src/c/call_ops.h" #include #include +#include #include "src/c/client_context.h" #include "src/c/server_context.h" @@ -163,7 +164,9 @@ static bool op_server_recv_close_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, const grpc_message message, void *response) { + GRPC_server_context *server_context = (GRPC_server_context *)context; op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; + op->data.recv_close_on_server.cancelled = &server_context->cancelled; op->flags = 0; op->reserved = NULL; return true; @@ -249,7 +252,11 @@ static void op_server_decode_context_payload_finish(GRPC_context *context, // decode payload in server context GRPC_server_context *server_context = (GRPC_server_context *) context; grpc_byte_buffer *buffer = server_context->payload; - GPR_ASSERT(buffer != NULL); + + if (buffer == NULL) { + *status = false; + return; + } if (!set->message_received) { set->message_received = true; diff --git a/src/c/server_context.h b/src/c/server_context.h index 110474e6831eb..0f51c78c85251 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -43,6 +43,8 @@ struct GRPC_server_context { // server-side specific GRPC_server *server; + // set to 1 if call failed in any way (treat as cancelled) + int cancelled; // optional payload (for unary call) to get from core grpc_byte_buffer *payload; // trailing metadata From 66c88eed2c3565f80497cd46907c870745e3934a Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 13:46:36 -0700 Subject: [PATCH 183/202] fix GCC 4.4 compatibilty --- src/compiler/c_generator.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index 9c455225f422f..e956ed2b06da0 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -502,13 +502,13 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std for (int i = 0; i < service->method_count(); i++) { auto method = service->method(i); (*vars)["Method"] = method->name(); - (*vars)["Index"] = std::to_string(i); + (*vars)["Index"] = std::to_string(static_cast(i)); printer->Print( *vars, " GRPC_METHOD_INDEX_$CPrefix$$Service$_$Method$ = $Index$,\n"); } - (*vars)["MethodCount"] = std::to_string(service->method_count()); + (*vars)["MethodCount"] = std::to_string(static_cast(service->method_count())); printer->Print( *vars, " GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$ = $MethodCount$\n" From 7edcd240ad451f98364f4db70300c6b6f28ec4a4 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 13:49:34 -0700 Subject: [PATCH 184/202] clang-format --- examples/c/helloworld/greeter_async_client2.c | 2 +- examples/c/helloworld/greeter_async_server.c | 55 ++--- include/grpc_c/codegen/context.h | 2 +- include/grpc_c/codegen/server.h | 8 +- include/grpc_c/codegen/unary_async_call.h | 2 +- src/c/bidi_streaming_blocking_call.h | 2 +- src/c/call_ops.c | 55 ++--- src/c/call_ops.h | 8 +- src/c/client_context.c | 1 - src/c/client_streaming_blocking_call.h | 2 +- src/c/context.c | 2 +- src/c/server.c | 43 ++-- src/c/server.h | 11 +- src/c/server_context.c | 2 +- src/c/server_streaming_blocking_call.h | 2 +- src/c/unary_async_call.c | 59 ++--- src/compiler/c_generator.cc | 218 +++++++++--------- 17 files changed, 231 insertions(+), 243 deletions(-) diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index f0a6b78cc0866..6406f0e3f6732 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -37,9 +37,9 @@ */ #include +#include #include #include -#include #include #include "helloworld.grpc.pbc.h" diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index a1e9c73ee676d..6ea0a0bfe425b 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -36,14 +36,14 @@ */ #include +#include #include #include -#include #include #include -#include #include +#include #include "helloworld.grpc.pbc.h" /** @@ -80,10 +80,9 @@ typedef struct async_server_data { } async_server_data; int main(int argc, char **argv) { - GRPC_server *server = GRPC_build_server((GRPC_build_server_options) { - }); + GRPC_server *server = GRPC_build_server((GRPC_build_server_options){}); GRPC_incoming_notification_queue *incoming = - GRPC_server_new_incoming_queue(server); + GRPC_server_new_incoming_queue(server); GRPC_server_listen_host(server, "0.0.0.0:50051"); GRPC_registered_service *service = helloworld_Greeter_Register(server); GRPC_server_start(server); @@ -98,55 +97,45 @@ int main(int argc, char **argv) { data->reply.message.arg = NULL; // Listen for this method - GRPC_server_async_response_writer *writer = helloworld_Greeter_SayHello_ServerRequest( - service, - data->context, - &data->request, - incoming, // incoming queue - incoming->cq, // processing queue - we can reuse the - // same underlying completion queue, or - // specify a different one here - data // tag for the completion queues - ); + GRPC_server_async_response_writer *writer = + helloworld_Greeter_SayHello_ServerRequest( + service, data->context, &data->request, + incoming, // incoming queue + incoming->cq, // processing queue - we can reuse the + // same underlying completion queue, or + // specify a different one here + data // tag for the completion queues + ); // Wait for incoming call void *tag; bool ok; GRPC_completion_queue_operation_status queue_status = - GRPC_completion_queue_next(incoming->cq, &tag, &ok); + GRPC_completion_queue_next(incoming->cq, &tag, &ok); if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); if (!ok) { - async_server_data *data_new = (async_server_data *) tag; + async_server_data *data_new = (async_server_data *)tag; data_new->reply.message.arg = strdup(""); - helloworld_Greeter_SayHello_ServerFinish( - writer, - &data_new->reply, - GRPC_STATUS_DATA_LOSS, - data_new - ); + helloworld_Greeter_SayHello_ServerFinish(writer, &data_new->reply, + GRPC_STATUS_DATA_LOSS, data_new); } else { // Process the request - async_server_data *data_new = (async_server_data *) tag; + async_server_data *data_new = (async_server_data *)tag; char *input_str = data_new->request.name.arg; size_t output_len = strlen(input_str) + 6; char *output_str = malloc(output_len + 1); sprintf(output_str, "Hello %s", input_str); data_new->reply.message.arg = output_str; - helloworld_Greeter_SayHello_ServerFinish( - writer, - &data_new->reply, - GRPC_STATUS_OK, - data_new - ); + helloworld_Greeter_SayHello_ServerFinish(writer, &data_new->reply, + GRPC_STATUS_OK, data_new); } // Wait for request termination - queue_status = - GRPC_completion_queue_next(incoming->cq, &tag, &ok); + queue_status = GRPC_completion_queue_next(incoming->cq, &tag, &ok); if (queue_status == GRPC_COMPLETION_QUEUE_SHUTDOWN) break; assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); @@ -154,7 +143,7 @@ int main(int argc, char **argv) { // Clean up { - async_server_data *data_new = (async_server_data *) tag; + async_server_data *data_new = (async_server_data *)tag; free(data_new->request.name.arg); free(data_new->reply.message.arg); GRPC_server_context_destroy(&data_new->context); diff --git a/include/grpc_c/codegen/context.h b/include/grpc_c/codegen/context.h index 553941e18b3a1..f35af8b40c761 100644 --- a/include/grpc_c/codegen/context.h +++ b/include/grpc_c/codegen/context.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_CODEGEN_CONTEXT_H #define GRPC_C_CODEGEN_CONTEXT_H -#include #include +#include typedef struct grpc_serialization_impl { GRPC_serializer serialize; diff --git a/include/grpc_c/codegen/server.h b/include/grpc_c/codegen/server.h index b79fc868414bf..1f2130b5b8e46 100644 --- a/include/grpc_c/codegen/server.h +++ b/include/grpc_c/codegen/server.h @@ -34,14 +34,16 @@ #ifndef GRPC_C_CODEGEN_SERVER_H #define GRPC_C_CODEGEN_SERVER_H +#include #include #include -#include #include -typedef GRPC_method* GRPC_service_declaration[]; +typedef GRPC_method *GRPC_service_declaration[]; /** Called by generated service code to register themselves on the server */ -GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_service_declaration service_declaration, size_t num_methods); +GRPC_registered_service *GRPC_server_add_service( + GRPC_server *server, GRPC_service_declaration service_declaration, + size_t num_methods); #endif /* GRPC_C_CODEGEN_SERVER_H */ diff --git a/include/grpc_c/codegen/unary_async_call.h b/include/grpc_c/codegen/unary_async_call.h index 6c74f69b15930..0128f1e446985 100644 --- a/include/grpc_c/codegen/unary_async_call.h +++ b/include/grpc_c/codegen/unary_async_call.h @@ -50,7 +50,7 @@ void GRPC_client_async_read_metadata(GRPC_client_async_response_reader *reader, void *tag); GRPC_server_async_response_writer *GRPC_unary_async_server_request( - GRPC_registered_service* service, size_t method_index, + GRPC_registered_service *service, size_t method_index, GRPC_server_context *const context, void *request, GRPC_incoming_notification_queue *incoming_queue, GRPC_completion_queue *processing_queue, void *tag); diff --git a/src/c/bidi_streaming_blocking_call.h b/src/c/bidi_streaming_blocking_call.h index 8b50742131432..42b48796d6817 100644 --- a/src/c/bidi_streaming_blocking_call.h +++ b/src/c/bidi_streaming_blocking_call.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H #define GRPC_C_INTERNAL_BIDI_STREAMING_BLOCKING_CALL_H -#include #include +#include #include "src/c/call_ops.h" #include "src/c/client_context.h" diff --git a/src/c/call_ops.c b/src/c/call_ops.c index df67c4cc472f6..3983cc4f8fced 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -235,22 +235,23 @@ static void op_server_send_status_finish(GRPC_context *context, const GRPC_op_manager grpc_op_server_send_status = { op_server_send_status_fill, op_server_send_status_finish}; -static bool op_server_decode_context_payload_fill(grpc_op *op, GRPC_context *context, - GRPC_call_op_set *set, - const grpc_message message, - void *response) { +static bool op_server_decode_context_payload_fill(grpc_op *op, + GRPC_context *context, + GRPC_call_op_set *set, + const grpc_message message, + void *response) { set->message_received = false; set->received_object = response; - ((GRPC_server_context *) context)->payload = NULL; - return false; // don't fill hence won't trigger grpc_call_start_batch + ((GRPC_server_context *)context)->payload = NULL; + return false; // don't fill hence won't trigger grpc_call_start_batch } static void op_server_decode_context_payload_finish(GRPC_context *context, - GRPC_call_op_set *set, bool *status, - int max_message_size) { - + GRPC_call_op_set *set, + bool *status, + int max_message_size) { // decode payload in server context - GRPC_server_context *server_context = (GRPC_server_context *) context; + GRPC_server_context *server_context = (GRPC_server_context *)context; grpc_byte_buffer *buffer = server_context->payload; if (buffer == NULL) { @@ -259,19 +260,19 @@ static void op_server_decode_context_payload_finish(GRPC_context *context, } if (!set->message_received) { - set->message_received = true; + set->message_received = true; - grpc_byte_buffer_reader reader; - grpc_byte_buffer_reader_init(&reader, buffer); - gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); - uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); - size_t len = GPR_SLICE_LENGTH(slice_recv); + grpc_byte_buffer_reader reader; + grpc_byte_buffer_reader_init(&reader, buffer); + gpr_slice slice_recv = grpc_byte_buffer_reader_readall(&reader); + uint8_t *resp = GPR_SLICE_START_PTR(slice_recv); + size_t len = GPR_SLICE_LENGTH(slice_recv); - context->serialization_impl.deserialize((grpc_message){resp, len}, - set->received_object); + context->serialization_impl.deserialize((grpc_message){resp, len}, + set->received_object); - gpr_slice_unref(slice_recv); - grpc_byte_buffer_reader_destroy(&reader); + gpr_slice_unref(slice_recv); + grpc_byte_buffer_reader_destroy(&reader); } grpc_byte_buffer_destroy(buffer); @@ -279,12 +280,12 @@ static void op_server_decode_context_payload_finish(GRPC_context *context, } const GRPC_op_manager grpc_op_server_decode_context_payload = { - op_server_decode_context_payload_fill, op_server_decode_context_payload_finish -}; + op_server_decode_context_payload_fill, + op_server_decode_context_payload_finish}; size_t GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, - const grpc_message message, void *response, - grpc_op *ops, size_t *nops) { + const grpc_message message, void *response, + grpc_op *ops, size_t *nops) { size_t manager = 0; size_t filled = 0; while (manager < GRPC_MAX_OP_COUNT) { @@ -324,8 +325,10 @@ void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, const grpc_message request, void *response) { size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT] = {}; - size_t num_ops = GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); + size_t num_ops = + GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); if (num_ops > 0 && call != NULL) { - GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call, ops, nops, set, NULL)); + GPR_ASSERT(GRPC_CALL_OK == + grpc_call_start_batch(call, ops, nops, set, NULL)); } } diff --git a/src/c/call_ops.h b/src/c/call_ops.h index 9ad29e037fa3c..f83f586c4e506 100644 --- a/src/c/call_ops.h +++ b/src/c/call_ops.h @@ -82,18 +82,18 @@ struct GRPC_call_op_set { * these are used by individual operations. * don't initialize them by hand */ - /* pointer to the user-supplied object which shall receive deserialized data */ + /* pointer to the user-supplied object which shall receive deserialized data + */ void *received_object; grpc_byte_buffer *recv_buffer; /* Holding onto the buffer to free it later */ grpc_byte_buffer *send_buffer; bool message_received; - }; size_t GRPC_fill_op_from_call_set(GRPC_call_op_set *set, GRPC_context *context, - const grpc_message message, void *response, - grpc_op *ops, size_t *nops); + const grpc_message message, void *response, + grpc_op *ops, size_t *nops); /* Runs post processing steps in the call op set. Returns false if something * wrong happens e.g. serialization. */ diff --git a/src/c/client_context.c b/src/c/client_context.c index 10eecd955a1a3..aa58fc7a4c164 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -63,7 +63,6 @@ GRPC_status GRPC_get_call_status(GRPC_client_context *context) { return context->status; } - // We define a conversion function instead of type-casting, which lets the user // convert // from any pointer to a grpc_context. diff --git a/src/c/client_streaming_blocking_call.h b/src/c/client_streaming_blocking_call.h index 28e0a8a22f1f9..d138290194cfc 100644 --- a/src/c/client_streaming_blocking_call.h +++ b/src/c/client_streaming_blocking_call.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H #define GRPC_C_INTERNAL_CLIENT_STREAMING_BLOCKING_CALL_H -#include #include +#include #include "src/c/call_ops.h" #include "src/c/client_context.h" diff --git a/src/c/context.c b/src/c/context.c index 898489e516b5a..5deb7dae36ea3 100644 --- a/src/c/context.c +++ b/src/c/context.c @@ -34,6 +34,6 @@ #include "src/c/context.h" void GRPC_context_set_serialization_impl( - GRPC_context *context, grpc_serialization_impl serialization_impl) { + GRPC_context *context, grpc_serialization_impl serialization_impl) { context->serialization_impl = serialization_impl; } diff --git a/src/c/server.c b/src/c/server.c index 3b2acc446e0eb..703ec153abd4a 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -32,9 +32,9 @@ */ #include "src/c/server.h" +#include #include #include -#include #include "src/c/alloc.h" #include "src/c/init_shutdown.h" #include "src/c/server_context.h" @@ -105,7 +105,9 @@ void GRPC_server_destroy(GRPC_server *server) { grpc_server_destroy(server->core_server); } -GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_service_declaration service_declaration, size_t num_methods) { +GRPC_registered_service *GRPC_server_add_service( + GRPC_server *server, GRPC_service_declaration service_declaration, + size_t num_methods) { // register every method in the service size_t i; GRPC_registered_service registered_service; @@ -115,36 +117,33 @@ GRPC_registered_service *GRPC_server_add_service(GRPC_server *server, GRPC_servi registered_method.method = *service_declaration[i]; grpc_server_register_method_payload_handling handling; // Let core read the payload for us only in unary or server streaming case - if (registered_method.method.type == GRPC_NORMAL_RPC - || registered_method.method.type == GRPC_SERVER_STREAMING) { + if (registered_method.method.type == GRPC_NORMAL_RPC || + registered_method.method.type == GRPC_SERVER_STREAMING) { handling = GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER; } else { handling = GRPC_SRM_PAYLOAD_NONE; } // TODO(yifeit): per-method host - registered_method.core_method_handle = grpc_server_register_method(server->core_server, registered_method.method.name, NULL, handling, 0); - GRPC_array_push_back(registered_service.registered_methods, registered_method); + registered_method.core_method_handle = grpc_server_register_method( + server->core_server, registered_method.method.name, NULL, handling, 0); + GRPC_array_push_back(registered_service.registered_methods, + registered_method); } GRPC_array_push_back(server->registered_services, registered_service); - return &server->registered_services.data[server->registered_services.state.size - 1]; + return &server->registered_services + .data[server->registered_services.state.size - 1]; } grpc_call_error GRPC_server_request_call( - GRPC_registered_service *service, - size_t method_index, - GRPC_server_context *context, - GRPC_incoming_notification_queue *incoming_queue, - GRPC_completion_queue *processing_queue, void *tag) { - void *core_method_handle = service->registered_methods.data[method_index].core_method_handle; + GRPC_registered_service *service, size_t method_index, + GRPC_server_context *context, + GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, void *tag) { + void *core_method_handle = + service->registered_methods.data[method_index].core_method_handle; GPR_ASSERT(core_method_handle != NULL); return grpc_server_request_registered_call( - context->server->core_server, - core_method_handle, - &context->call, - &context->deadline, - &context->recv_metadata_array, - &context->payload, - processing_queue, - incoming_queue->cq, - tag); + context->server->core_server, core_method_handle, &context->call, + &context->deadline, &context->recv_metadata_array, &context->payload, + processing_queue, incoming_queue->cq, tag); } diff --git a/src/c/server.h b/src/c/server.h index f58383782d11a..9215ad4fba688 100644 --- a/src/c/server.h +++ b/src/c/server.h @@ -35,9 +35,9 @@ #define GRPC_C_INTERNAL_SERVER_H #include +#include #include #include -#include #include "src/c/array.h" #include "src/c/server_incoming_queue.h" @@ -72,10 +72,9 @@ struct GRPC_server { }; grpc_call_error GRPC_server_request_call( - GRPC_registered_service *service, - size_t method_index, - GRPC_server_context *context, - GRPC_incoming_notification_queue *incoming_queue, - GRPC_completion_queue *processing_queue, void *tag); + GRPC_registered_service *service, size_t method_index, + GRPC_server_context *context, + GRPC_incoming_notification_queue *incoming_queue, + GRPC_completion_queue *processing_queue, void *tag); #endif // GRPC_C_INTERNAL_SERVER_H diff --git a/src/c/server_context.c b/src/c/server_context.c index 49db528aa40d1..86e7d40e9d1ff 100644 --- a/src/c/server_context.c +++ b/src/c/server_context.c @@ -31,8 +31,8 @@ * */ -#include #include "src/c/server_context.h" +#include #include "src/c/alloc.h" GRPC_server_context *GRPC_server_context_create(GRPC_server *server) { diff --git a/src/c/server_streaming_blocking_call.h b/src/c/server_streaming_blocking_call.h index 29591aa6095a3..ea58b6012da5d 100644 --- a/src/c/server_streaming_blocking_call.h +++ b/src/c/server_streaming_blocking_call.h @@ -34,8 +34,8 @@ #ifndef GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H #define GRPC_C_INTERNAL_SERVER_STREAMING_BLOCKING_CALL_H -#include #include +#include #include "src/c/call_ops.h" #include "src/c/client_context.h" diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index f935b33ed8809..8ebadde2a4fff 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -36,8 +36,8 @@ #include #include #include -#include "src/c/alloc.h" #include "server.h" +#include "src/c/alloc.h" // // Client @@ -66,11 +66,12 @@ GRPC_client_async_response_reader *GRPC_unary_async_call( .hide_from_user = true}, .meta_buf = {{grpc_op_recv_metadata}, .context = GRPC_client_context_to_base(context)}, - .finish_buf = { - {grpc_op_recv_metadata, grpc_op_recv_object, - grpc_op_client_recv_status}, - .context = GRPC_client_context_to_base(context), - }}); + .finish_buf = + { + {grpc_op_recv_metadata, grpc_op_recv_object, + grpc_op_client_recv_status}, + .context = GRPC_client_context_to_base(context), + }}); // Different from blocking call, we need to inform completion queue to run // cleanup for us @@ -109,31 +110,33 @@ static void free_server_writer(void *arg) { } GRPC_server_async_response_writer *GRPC_unary_async_server_request( - GRPC_registered_service* service, size_t method_index, + GRPC_registered_service *service, size_t method_index, GRPC_server_context *const context, void *request, GRPC_incoming_notification_queue *incoming_queue, GRPC_completion_queue *processing_queue, void *tag) { - GRPC_server_async_response_writer *writer = GRPC_ALLOC_STRUCT(GRPC_server_async_response_writer, { - .context = context, - .receive_set = { - // deserialize from the payload read by core after the request comes in - .operations = { grpc_op_server_decode_context_payload }, - .context = GRPC_server_context_to_base(context), - .user_tag = tag - }, - .finish_set = { - .operations = { grpc_op_send_metadata, grpc_op_send_object, grpc_op_server_recv_close, grpc_op_server_send_status }, - .context = GRPC_server_context_to_base(context) - } - }); + GRPC_server_async_response_writer *writer = GRPC_ALLOC_STRUCT( + GRPC_server_async_response_writer, + {.context = context, + .receive_set = + {// deserialize from the payload read by core after the request comes + // in + .operations = {grpc_op_server_decode_context_payload}, + .context = GRPC_server_context_to_base(context), + .user_tag = tag}, + .finish_set = {.operations = {grpc_op_send_metadata, grpc_op_send_object, + grpc_op_server_recv_close, + grpc_op_server_send_status}, + .context = GRPC_server_context_to_base(context)}}); - writer->finish_set.async_cleanup = (GRPC_closure) { - .arg = writer, - .callback = free_server_writer - }; + writer->finish_set.async_cleanup = + (GRPC_closure){.arg = writer, .callback = free_server_writer}; - GPR_ASSERT(GRPC_server_request_call(service, method_index, context, incoming_queue, processing_queue, &writer->receive_set) == GRPC_CALL_OK); - GRPC_start_batch_from_op_set(NULL, &writer->receive_set, GRPC_server_context_to_base(context), (GRPC_message) {0, 0}, request); + GPR_ASSERT(GRPC_server_request_call(service, method_index, context, + incoming_queue, processing_queue, + &writer->receive_set) == GRPC_CALL_OK); + GRPC_start_batch_from_op_set(NULL, &writer->receive_set, + GRPC_server_context_to_base(context), + (GRPC_message){0, 0}, request); return writer; } @@ -143,5 +146,7 @@ void GRPC_unary_async_server_finish(GRPC_server_async_response_writer *writer, void *tag) { writer->finish_set.user_tag = tag; writer->context->server_return_status = server_status; - GRPC_start_batch_from_op_set(writer->context->call, &writer->finish_set, GRPC_server_context_to_base(writer->context), response, NULL); + GRPC_start_batch_from_op_set(writer->context->call, &writer->finish_set, + GRPC_server_context_to_base(writer->context), + response, NULL); } diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index e956ed2b06da0..d369db38bddfe 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -141,27 +141,25 @@ void PrintHeaderServerMethod(Printer *printer, const Method *method, if (method->NoStreaming()) { // Unary - printer->Print( - *vars, - "/* Async */\n" - "GRPC_server_async_response_writer *" - "$CPrefix$$Service$_$Method$_ServerRequest(\n" - " GRPC_registered_service *service,\n" - " GRPC_server_context *const context,\n" - " $CPrefix$$Request$ *request,\n" - " GRPC_incoming_notification_queue *incoming_queue,\n" - " GRPC_completion_queue *processing_queue,\n" - " void *tag);\n" - "\n"); - - printer->Print( - *vars, - "void $CPrefix$$Service$_$Method$_ServerFinish(\n" - " GRPC_server_async_response_writer *writer,\n" - " $CPrefix$$Response$ *response,\n" - " GRPC_status_code server_status,\n" - " void *tag);\n" - "\n"); + printer->Print(*vars, + "/* Async */\n" + "GRPC_server_async_response_writer *" + "$CPrefix$$Service$_$Method$_ServerRequest(\n" + " GRPC_registered_service *service,\n" + " GRPC_server_context *const context,\n" + " $CPrefix$$Request$ *request,\n" + " GRPC_incoming_notification_queue *incoming_queue,\n" + " GRPC_completion_queue *processing_queue,\n" + " void *tag);\n" + "\n"); + + printer->Print(*vars, + "void $CPrefix$$Service$_$Method$_ServerFinish(\n" + " GRPC_server_async_response_writer *writer,\n" + " $CPrefix$$Response$ *response,\n" + " GRPC_status_code server_status,\n" + " void *tag);\n" + "\n"); } printer->Print("\n\n"); @@ -177,14 +175,13 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, if (method->NoStreaming()) { // Unary - printer->Print( - *vars, - "/* Sync */\n" - "GRPC_status $CPrefix$$Service$_$Method$(\n" - " GRPC_client_context *const context,\n" - " const $CPrefix$$Request$ request,\n" - " $CPrefix$$Response$ *response);\n" - "\n"); + printer->Print(*vars, + "/* Sync */\n" + "GRPC_status $CPrefix$$Service$_$Method$(\n" + " GRPC_client_context *const context,\n" + " const $CPrefix$$Request$ request,\n" + " $CPrefix$$Response$ *response);\n" + "\n"); printer->Print( *vars, @@ -351,13 +348,13 @@ void PrintHeaderClientMethod(Printer *printer, const Method *method, printer->Print("\n\n"); } -void PrintHeaderServiceDeclaration(Printer *printer, const Service *service, std::map *vars) { +void PrintHeaderServiceDeclaration(Printer *printer, const Service *service, + std::map *vars) { // Register method - printer->Print( - *vars, - "/* Call this to handle this service in the server */\n" - "GRPC_registered_service *$CPrefix$$Service$_Register(GRPC_server *server);\n\n" - ); + printer->Print(*vars, + "/* Call this to handle this service in the server */\n" + "GRPC_registered_service " + "*$CPrefix$$Service$_Register(GRPC_server *server);\n\n"); } // Prints declaration of a single service @@ -365,7 +362,9 @@ void PrintHeaderService(Printer *printer, const Service *service, std::map *vars) { (*vars)["Service"] = service->name(); - printer->Print(*vars, BlockifyComments("Service metadata for " + service->name() + "\n\n").c_str()); + printer->Print(*vars, BlockifyComments("Service metadata for " + + service->name() + "\n\n") + .c_str()); PrintHeaderServiceDeclaration(printer, service, vars); printer->Print(*vars, BlockifyComments("Service declaration for " + @@ -388,10 +387,10 @@ void PrintHeaderService(Printer *printer, const Service *service, printer->Print("/* Server */\n"); for (int i = 0; i < service->method_count(); ++i) { printer->Print( - BlockifyComments(service->method(i)->GetLeadingComments()).c_str()); + BlockifyComments(service->method(i)->GetLeadingComments()).c_str()); PrintHeaderServerMethod(printer, service->method(i).get(), vars); printer->Print( - BlockifyComments(service->method(i)->GetTrailingComments()).c_str()); + BlockifyComments(service->method(i)->GetTrailingComments()).c_str()); } printer->Print("\n\n"); @@ -450,7 +449,8 @@ void PrintSourceServerMethod(Printer *printer, const Method *method, } } -void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std::map *vars) { +void PrintSourceServiceDeclaration(Printer *printer, const Service *service, + std::map *vars) { for (int i = 0; i < service->method_count(); i++) { auto method = service->method(i); @@ -466,18 +466,16 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std (*vars)["MethodEnum"] = "GRPC_BIDI_STREAMING"; } - printer->Print( - *vars, - "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" - " $MethodEnum$,\n" - " \"/$Package$$Service$/$Method$\"\n" - "};\n" - "\n"); + printer->Print(*vars, + "GRPC_method GRPC_method_$CPrefix$$Service$_$Method$ = {\n" + " $MethodEnum$,\n" + " \"/$Package$$Service$/$Method$\"\n" + "};\n" + "\n"); } printer->Print( - *vars, - "GRPC_service_declaration GRPC_service_$CPrefix$$Service$ = {\n"); + *vars, "GRPC_service_declaration GRPC_service_$CPrefix$$Service$ = {\n"); // Insert each method definition in the service for (int i = 0; i < service->method_count(); i++) { @@ -489,15 +487,12 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std " &GRPC_method_$CPrefix$$Service$_$Method$$Terminator$\n"); } - printer->Print( - *vars, - "};\n" - "\n"); + printer->Print(*vars, + "};\n" + "\n"); // Array index of each method inside the service declaration array - printer->Print( - *vars, - "enum {\n"); + printer->Print(*vars, "enum {\n"); for (int i = 0; i < service->method_count(); i++) { auto method = service->method(i); @@ -508,20 +503,22 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std " GRPC_METHOD_INDEX_$CPrefix$$Service$_$Method$ = $Index$,\n"); } - (*vars)["MethodCount"] = std::to_string(static_cast(service->method_count())); + (*vars)["MethodCount"] = + std::to_string(static_cast(service->method_count())); printer->Print( *vars, " GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$ = $MethodCount$\n" "};\n" "\n"); - printer->Print( - *vars, - "GRPC_registered_service *$CPrefix$$Service$_Register(GRPC_server *server) {\n" - " return GRPC_server_add_service(server, GRPC_service_$CPrefix$$Service$, GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$);\n" - "}\n" - "\n" - ); + printer->Print(*vars, + "GRPC_registered_service " + "*$CPrefix$$Service$_Register(GRPC_server *server) {\n" + " return GRPC_server_add_service(server, " + "GRPC_service_$CPrefix$$Service$, " + "GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$);\n" + "}\n" + "\n"); } // Prints implementation of a single client method @@ -605,11 +602,10 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, "}\n" "\n"); - printer->Print( - *vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print(*vars, + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->ServerOnlyStreaming()) { printer->Print( @@ -639,11 +635,10 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, " return GRPC_client_reader_terminate(reader);\n" "}\n" "\n"); - printer->Print( - *vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print(*vars, + "\n" + "/* Async TBD */\n" + "\n"); } else if (method->BidiStreaming()) { printer->Print( @@ -686,11 +681,10 @@ void PrintSourceClientMethod(Printer *printer, const Method *method, " return GRPC_client_reader_writer_terminate(reader_writer);\n" "}\n" "\n"); - printer->Print( - *vars, - "\n" - "/* Async TBD */\n" - "\n"); + printer->Print(*vars, + "\n" + "/* Async TBD */\n" + "\n"); } } @@ -699,14 +693,14 @@ void PrintSourceService(Printer *printer, const Service *service, std::map *vars) { (*vars)["Service"] = service->name(); - printer->Print(*vars, BlockifyComments("Service metadata for " + service->name() + "\n\n").c_str()); + printer->Print(*vars, BlockifyComments("Service metadata for " + + service->name() + "\n\n") + .c_str()); PrintSourceServiceDeclaration(printer, service, vars); - printer->Print( - *vars, - BlockifyComments( - "Service implementation for " + service->name() + "\n\n" - ).c_str()); + printer->Print(*vars, BlockifyComments("Service implementation for " + + service->name() + "\n\n") + .c_str()); for (int i = 0; i < service->method_count(); ++i) { PrintSourceClientMethod(printer, service->method(i).get(), vars); PrintSourceServerMethod(printer, service->method(i).get(), vars); @@ -829,10 +823,10 @@ grpc::string GetSourceIncludes(File *file, const Parameters ¶ms) { static const char *headers_strs[] = { "grpc_c/status.h", "grpc_c/grpc_c.h", "grpc_c/channel.h", "grpc_c/server.h", "grpc_c/server_incoming_queue.h", - "grpc_c/client_context.h", "grpc_c/server_context.h", "grpc_c/codegen/message.h", - "grpc_c/codegen/method.h", "grpc_c/codegen/unary_blocking_call.h", - "grpc_c/codegen/unary_async_call.h", - "grpc_c/codegen/server.h", + "grpc_c/client_context.h", "grpc_c/server_context.h", + "grpc_c/codegen/message.h", "grpc_c/codegen/method.h", + "grpc_c/codegen/unary_blocking_call.h", + "grpc_c/codegen/unary_async_call.h", "grpc_c/codegen/server.h", "grpc_c/codegen/client_streaming_blocking_call.h", "grpc_c/codegen/server_streaming_blocking_call.h", "grpc_c/codegen/bidi_streaming_blocking_call.h", @@ -869,12 +863,11 @@ grpc::string GetHeaderPrologue(File *file, const Parameters & /*params*/) { printer->Print( vars, - BlockifyComments( - "\n" - "// Generated by the gRPC protobuf plugin.\n" - "// If you make any local change, they will be lost.\n" - "\n" - ).c_str()); + BlockifyComments("\n" + "// Generated by the gRPC protobuf plugin.\n" + "// If you make any local change, they will be lost.\n" + "\n") + .c_str()); grpc::string filename; { @@ -906,10 +899,10 @@ grpc::string GetHeaderIncludes(File *file, const Parameters ¶ms) { std::map vars; static const char *headers_strs[] = { - "grpc_c/grpc_c.h", "grpc_c/status.h", "grpc_c/channel.h", - "grpc_c/client_context.h", "grpc_c/completion_queue.h", - "grpc_c/server_context.h", "grpc_c/server.h", - "grpc_c/server_incoming_queue.h"}; + "grpc_c/grpc_c.h", "grpc_c/status.h", + "grpc_c/channel.h", "grpc_c/client_context.h", + "grpc_c/completion_queue.h", "grpc_c/server_context.h", + "grpc_c/server.h", "grpc_c/server_incoming_queue.h"}; std::vector headers(headers_strs, array_end(headers_strs)); PrintIncludes(printer.get(), headers, params); printer->Print(vars, "\n"); @@ -984,21 +977,20 @@ grpc::string GetSourceServices(File *file, const Parameters ¶ms) { for (auto itr = messages.begin(); itr != messages.end(); itr++) { std::map vars_msg(vars); vars_msg["msgType"] = (*itr)->name(); - printer->Print( - vars_msg, - "\n" - "#ifdef $CPrefix$$msgType$_init_default\n" - "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const " - "GRPC_message input) {\n" - " return GRPC_pb_compat_generic_serializer(input, " - "$CPrefix$$msgType$_fields);\n" - "}\n" - "void $CPrefix$$msgType$_nanopb_deserializer(const " - "GRPC_message input, void *output) {\n" - " return GRPC_pb_compat_generic_deserializer(input, " - "output, $CPrefix$$msgType$_fields);\n" - "}\n" - "#endif\n"); + printer->Print(vars_msg, + "\n" + "#ifdef $CPrefix$$msgType$_init_default\n" + "GRPC_message $CPrefix$$msgType$_nanopb_serializer(const " + "GRPC_message input) {\n" + " return GRPC_pb_compat_generic_serializer(input, " + "$CPrefix$$msgType$_fields);\n" + "}\n" + "void $CPrefix$$msgType$_nanopb_deserializer(const " + "GRPC_message input, void *output) {\n" + " return GRPC_pb_compat_generic_deserializer(input, " + "output, $CPrefix$$msgType$_fields);\n" + "}\n" + "#endif\n"); } printer->Print("\n"); From a6f7e88f178698181c805e29ee6d4a8520de0b0b Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 13:51:01 -0700 Subject: [PATCH 185/202] fix sanity --- src/c/completion_queue.c | 2 +- src/c/unary_async_call.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/c/completion_queue.c b/src/c/completion_queue.c index 0ebf3641124b1..2dec52609ff06 100644 --- a/src/c/completion_queue.c +++ b/src/c/completion_queue.c @@ -39,8 +39,8 @@ #include #include #include -#include "init_shutdown.h" #include "src/c/call_ops.h" +#include "src/c/init_shutdown.h" GRPC_completion_queue *GRPC_completion_queue_create() { GRPC_ensure_grpc_init(); diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index 8ebadde2a4fff..a622ecf388b34 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -36,8 +36,8 @@ #include #include #include -#include "server.h" #include "src/c/alloc.h" +#include "src/c/server.h" // // Client From 11c60358ed158cb62ab98b14268257382f3cadd1 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 14:51:49 -0700 Subject: [PATCH 186/202] Use fixed nanopb venv path to prevent racy make --- Makefile | 116 +++++++++++++++--------------------- templates/Makefile.template | 61 +++++++++---------- 2 files changed, 75 insertions(+), 102 deletions(-) diff --git a/Makefile b/Makefile index cdb0c68006b97..ed56b89f5d438 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,8 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# This is the first (default) target +default: all comma := , @@ -267,43 +269,21 @@ PYTHONPATH='' version=`python -c 'import google.protobuf; print(google.protobuf. major=`echo $$version | sed 's/\([0-9]*\).*/\1/'`; \ majordef=$${major:-0}; \ if [ $$majordef -ge 3 ]; then echo true; else echo false; fi;) +SYSTEM_PYTHON_PROTOBUF_FILE := $(shell python -c 'import google.protobuf; print(google.protobuf.__file__);' 2> /dev/null || true) + ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) # For systems with built-in python-protobuf -all: all_after_prereq -test: test_after_prereq -test_c: test_c_after_prereq -test_cxx: test_cxx_after_prereq -buildtests_c: buildtests_c_after_prereq -buildtests_cxx: buildtests_cxx_after_prereq -%: +nanopb_protobuf_dep: $(SYSTEM_PYTHON_PROTOBUF_FILE) +NANOPB_ACTIVATE_VENV := else # We need to install a local python-protobuf - -all: - $(E) "[NANOPB] Installing Nanopb dependencies" - $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) - $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) all_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} -test: - $(E) "[NANOPB] Installing Nanopb dependencies" - $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) - $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) test_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} -test_c: - $(E) "[NANOPB] Installing Nanopb dependencies" - $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) - $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) test_c_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} -test_cxx: - $(E) "[NANOPB] Installing Nanopb dependencies" - $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) - $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) test_cxx_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} -buildtests_c: - $(E) "[NANOPB] Installing Nanopb dependencies" - $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) - $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) buildtests_c_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} -buildtests_cxx: +NANOPB_VENV_DIR := $(abspath third_party/nanopb/nanopb_protobuf_dep/venv) +nanopb_protobuf_dep: $(NANOPB_VENV_DIR)/bin/activate +$(NANOPB_VENV_DIR)/bin/activate: $(E) "[NANOPB] Installing Nanopb dependencies" - $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) - $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; . $($@_NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; $(MAKE) $(MFLAGS) buildtests_cxx_after_prereq; EXIT_CODE=$$?; deactivate; exit $${EXIT_CODE} + $(Q) virtualenv $(NANOPB_VENV_DIR) >/dev/null; . $(NANOPB_VENV_DIR)/bin/activate; pip install protobuf==3.0.0b2 >/dev/null; +NANOPB_ACTIVATE_VENV := . $(NANOPB_VENV_DIR)/bin/activate; endif PROTOC ?= protoc @@ -861,11 +841,11 @@ endif # This is the 'all' target to be executed after handling prerequisites ifeq ($(DEP_MISSING),) -all_after_prereq: static shared plugins +all: nanopb_protobuf_dep static shared plugins dep_error: @echo "You shouldn't see this message - all of your dependencies are correct." else -all_after_prereq: dep_error git_update stop +all: dep_error git_update stop dep_error: @echo @@ -1286,7 +1266,7 @@ endif buildtests: buildtests_c buildtests_cxx -buildtests_c_after_prereq: privatelibs_c \ +buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/alarm_test \ $(BINDIR)/$(CONFIG)/algorithm_test \ $(BINDIR)/$(CONFIG)/alloc_test \ @@ -1446,7 +1426,7 @@ buildtests_c_after_prereq: privatelibs_c \ ifeq ($(EMBED_OPENSSL),true) -buildtests_cxx_after_prereq: privatelibs_cxx \ +buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/alarm_cpp_test \ $(BINDIR)/$(CONFIG)/async_end2end_test \ $(BINDIR)/$(CONFIG)/auth_property_iterator_test \ @@ -1533,7 +1513,7 @@ buildtests_cxx_after_prereq: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/boringssl_ssl_test \ else -buildtests_cxx_after_prereq: privatelibs_cxx \ +buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/alarm_cpp_test \ $(BINDIR)/$(CONFIG)/async_end2end_test \ $(BINDIR)/$(CONFIG)/auth_property_iterator_test \ @@ -1584,11 +1564,11 @@ buildtests_cxx_after_prereq: privatelibs_cxx \ endif # This is the 'test' target to be executed after handling prerequisites -test_after_prereq: test_c test_cxx +test: test_c test_cxx flaky_test: flaky_test_c flaky_test_cxx -test_c_after_prereq: buildtests_c_after_prereq +test_c: buildtests_c $(E) "[RUN] Testing alarm_test" $(Q) $(BINDIR)/$(CONFIG)/alarm_test || ( echo test alarm_test failed ; exit 1 ) $(E) "[RUN] Testing algorithm_test" @@ -1810,7 +1790,7 @@ flaky_test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/mlog_test || ( echo test mlog_test failed ; exit 1 ) -test_cxx_after_prereq: buildtests_cxx_after_prereq +test_cxx: buildtests_cxx $(E) "[RUN] Testing alarm_cpp_test" $(Q) $(BINDIR)/$(CONFIG)/alarm_cpp_test || ( echo test alarm_cpp_test failed ; exit 1 ) $(E) "[RUN] Testing async_end2end_test" @@ -1996,10 +1976,10 @@ $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_ba $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pbc.c: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2021,10 +2001,10 @@ $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc: src/proto/grpc/ref $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pbc.c: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc: src/proto/grpc/reflection/v1alpha/reflection.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2046,10 +2026,10 @@ $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc: src/proto/grpc/testing/com $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/testing/compiler_test.pbc.c: src/proto/grpc/testing/compiler_test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc: src/proto/grpc/testing/compiler_test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2071,10 +2051,10 @@ $(GENDIR)/src/proto/grpc/testing/control.pb.cc: src/proto/grpc/testing/control.p $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/control.pbc.c: src/proto/grpc/testing/control.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c +$(GENDIR)/src/proto/grpc/testing/control.pbc.c: src/proto/grpc/testing/control.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(GENDIR)/src/proto/grpc/testing/payloads.pbc.c $(GENDIR)/src/proto/grpc/testing/stats.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc: src/proto/grpc/testing/control.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2096,10 +2076,10 @@ $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc: src/proto/grpc/ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c +$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pbc.c: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc: src/proto/grpc/testing/duplicate/echo_duplicate.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2121,10 +2101,10 @@ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc: src/proto/grpc/testing/echo.proto $ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/echo.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c +$(GENDIR)/src/proto/grpc/testing/echo.pbc.c: src/proto/grpc/testing/echo.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc: src/proto/grpc/testing/echo.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2146,10 +2126,10 @@ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc: src/proto/grpc/testing/ech $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c: src/proto/grpc/testing/echo_messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc: src/proto/grpc/testing/echo_messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2171,10 +2151,10 @@ $(GENDIR)/src/proto/grpc/testing/empty.pb.cc: src/proto/grpc/testing/empty.proto $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/empty.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/testing/empty.pbc.c: src/proto/grpc/testing/empty.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc: src/proto/grpc/testing/empty.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2196,10 +2176,10 @@ $(GENDIR)/src/proto/grpc/testing/messages.pb.cc: src/proto/grpc/testing/messages $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/messages.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/testing/messages.pbc.c: src/proto/grpc/testing/messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc: src/proto/grpc/testing/messages.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2221,10 +2201,10 @@ $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc: src/proto/grpc/testing/metrics.p $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/metrics.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/testing/metrics.pbc.c: src/proto/grpc/testing/metrics.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc: src/proto/grpc/testing/metrics.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2246,10 +2226,10 @@ $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc: src/proto/grpc/testing/payloads $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/payloads.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/testing/payloads.pbc.c: src/proto/grpc/testing/payloads.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc: src/proto/grpc/testing/payloads.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2271,10 +2251,10 @@ $(GENDIR)/src/proto/grpc/testing/services.pb.cc: src/proto/grpc/testing/services $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/services.pbc.c: src/proto/grpc/testing/services.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c +$(GENDIR)/src/proto/grpc/testing/services.pbc.c: src/proto/grpc/testing/services.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(GENDIR)/src/proto/grpc/testing/control.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc: src/proto/grpc/testing/services.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2296,10 +2276,10 @@ $(GENDIR)/src/proto/grpc/testing/stats.pb.cc: src/proto/grpc/testing/stats.proto $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/stats.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) +$(GENDIR)/src/proto/grpc/testing/stats.pbc.c: src/proto/grpc/testing/stats.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc: src/proto/grpc/testing/stats.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -2321,10 +2301,10 @@ $(GENDIR)/src/proto/grpc/testing/test.pb.cc: src/proto/grpc/testing/test.proto $ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< -$(GENDIR)/src/proto/grpc/testing/test.pbc.c: src/proto/grpc/testing/test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c +$(GENDIR)/src/proto/grpc/testing/test.pbc.c: src/proto/grpc/testing/test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep $(GENDIR)/src/proto/grpc/testing/empty.pbc.c $(GENDIR)/src/proto/grpc/testing/messages.pbc.c $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc: src/proto/grpc/testing/test.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -16447,7 +16427,7 @@ test/cpp/util/test_config.cc: $(OPENSSL_DEP) test/cpp/util/test_credentials_provider.cc: $(OPENSSL_DEP) endif -.PHONY: all all_after_prereq strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx buildtests_c_after_prereq buildtests_cxx_after_prereq test test_after_prereq test_c test_cxx test_c_after_prereq test_cxx_after_prereq install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean +.PHONY: all all strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx buildtests_c buildtests_cxx test test test_c test_cxx test_c test_cxx install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean .PHONY: printvars printvars: diff --git a/templates/Makefile.template b/templates/Makefile.template index d47f81a46612d..f23d510bcc282 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -70,6 +70,8 @@ return 'no-' + warning %> + # This is the first (default) target + default: all comma := , @@ -157,32 +159,23 @@ major=`echo $$version | sed 's/\([0-9]*\).*/\1/'`; \ majordef=$${major:-0}; \ if [ $$majordef -ge 3 ]; then echo true; else echo false; fi;) + SYSTEM_PYTHON_PROTOBUF_FILE := $(shell python -c 'import google.protobuf; print(google.protobuf.__file__);' 2> /dev/null || true) + ifeq ($(SYSTEM_PYTHON_PROTOBUF_GOOD), true) # For systems with built-in python-protobuf - all: all_after_prereq - test: test_after_prereq - test_c: test_c_after_prereq - test_cxx: test_cxx_after_prereq - buildtests_c: buildtests_c_after_prereq - buildtests_cxx: buildtests_cxx_after_prereq - %: + nanopb_protobuf_dep: $(SYSTEM_PYTHON_PROTOBUF_FILE) + NANOPB_ACTIVATE_VENV := else # We need to install a local python-protobuf - - %for tgt in ['all', 'test', 'test_c', 'test_cxx', 'buildtests_c', 'buildtests_cxx']: - ${tgt}: + NANOPB_VENV_DIR := $(abspath third_party/nanopb/nanopb_protobuf_dep/venv) + nanopb_protobuf_dep: $(NANOPB_VENV_DIR)/bin/activate + $(NANOPB_VENV_DIR)/bin/activate: $(E) "[NANOPB] Installing Nanopb dependencies" - $(eval $@_NANOPB_VENV_DIR := $(shell mktemp -d /tmp/grpc-nanopb-XXXXXX)) - $(Q) virtualenv $($@_NANOPB_VENV_DIR) >/dev/null; \ - trap 'rm -rf "$($@_NANOPB_VENV_DIR)"' EXIT; \ - . $($@_NANOPB_VENV_DIR)/bin/activate; \ - pip install protobuf==3.0.0b2 >/dev/null; \ - $(MAKE) $(MFLAGS) ${tgt}_after_prereq; \ - EXIT_CODE=$$?; \ - deactivate; \ - <%text>exit $${EXIT_CODE} - %endfor + $(Q) virtualenv $(NANOPB_VENV_DIR) >/dev/null; \ + . $(NANOPB_VENV_DIR)/bin/activate; \ + pip install protobuf==3.0.0b2 >/dev/null; + NANOPB_ACTIVATE_VENV := . $(NANOPB_VENV_DIR)/bin/activate; endif PROTOC ?= protoc @@ -750,7 +743,7 @@ # This is the 'all' target to be executed after handling prerequisites ifeq ($(DEP_MISSING),) - all_after_prereq: static shared plugins\ + all: nanopb_protobuf_dep static shared plugins\ % for tgt in targets: % if tgt.build == 'all': $(BINDIR)/$(CONFIG)/${tgt.name}\ @@ -760,7 +753,7 @@ dep_error: @echo "You shouldn't see this message - all of your dependencies are correct." else - all_after_prereq: dep_error git_update stop + all: dep_error git_update stop dep_error: @echo @@ -985,7 +978,7 @@ buildtests: buildtests_c buildtests_cxx - buildtests_c_after_prereq: privatelibs_c <%text>\ + buildtests_c: privatelibs_c <%text>\ % for tgt in targets: % if tgt.build == 'test' and not tgt.language == 'c++' and not tgt.get('external_deps', None): $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ @@ -994,7 +987,7 @@ ifeq ($(EMBED_OPENSSL),true) - buildtests_cxx_after_prereq: privatelibs_cxx <%text>\ + buildtests_cxx: privatelibs_cxx <%text>\ % for tgt in targets: % if tgt.build == 'test' and tgt.language == 'c++' and not tgt.get('external_deps', None): $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ @@ -1002,7 +995,7 @@ % endfor else - buildtests_cxx_after_prereq: privatelibs_cxx <%text>\ + buildtests_cxx: privatelibs_cxx <%text>\ % for tgt in targets: % if tgt.build == 'test' and tgt.language == 'c++' and not tgt.get('external_deps', None) and not tgt.boringssl: $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ @@ -1012,11 +1005,11 @@ endif # This is the 'test' target to be executed after handling prerequisites - test_after_prereq: test_c test_cxx + test: test_c test_cxx flaky_test: flaky_test_c flaky_test_cxx - test_c_after_prereq: buildtests_c_after_prereq + test_c: buildtests_c % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" @@ -1034,7 +1027,7 @@ % endfor - test_cxx_after_prereq: buildtests_cxx_after_prereq + test_cxx: buildtests_cxx % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" @@ -1205,10 +1198,10 @@ $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $< - $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} + $(GENDIR)/${p}.pbc.c: ${p}.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) $(NANOPB_DEP) nanopb_protobuf_dep ${' '.join('$(GENDIR)/%s.pbc.c' % q for q in proto_deps.get(p, []))} $(E) "[PROTOC] Generating nanopb C file from $<" $(Q) mkdir -p `dirname $@` - $(Q) PYTHONPATH=third_party/protobuf/python $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; + $(Q) $(NANOPB_ACTIVATE_VENV) $(PROTOC) -Ithird_party/protobuf/src -I. --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb --nanopb_out="--extension=.pbc --library-include-format='#include '":$(GENDIR) $<; $(GENDIR)/${p}.grpc.pb.cc: ${p}.proto $(PROTOC_DEP) $(PROTOC_PLUGINS) ${' '.join('$(GENDIR)/%s.pb.cc $(GENDIR)/%s.grpc.pb.cc' % (q,q) for q in proto_deps.get(p, []))} $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" @@ -1834,12 +1827,12 @@ % endfor endif - .PHONY: all all_after_prereq strip tools \ + .PHONY: all all strip tools \ dep_error openssl_dep_error openssl_dep_message git_update stop \ buildtests buildtests_c buildtests_cxx \ - buildtests_c_after_prereq buildtests_cxx_after_prereq \ - test test_after_prereq test_c test_cxx \ - test_c_after_prereq test_cxx_after_prereq \ + buildtests_c buildtests_cxx \ + test test test_c test_cxx \ + test_c test_cxx \ install install_c install_cxx \ install-headers install-headers_c install-headers_cxx \ install-shared install-shared_c install-shared_cxx \ From d65b20b943ef39770b46b3243dd1673c54c60eb1 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 16:03:27 -0700 Subject: [PATCH 187/202] [wip] c target => core --- BUILD | 2034 ++-- CMakeLists.txt | 2164 ++--- Makefile | 8443 +++++++++-------- build.yaml | 2390 ++--- templates/Makefile.template | 224 +- .../public_headers_must_be_c89.c.template | 2 +- .../sources_and_headers.json.template | 2 +- .../vsprojects/buildtests_core.sln.template | 13 + templates/vsprojects/grpc.sln.template | 2 +- tools/run_tests/run_tests.py | 1 + tools/run_tests/sources_and_headers.json | 2372 ++--- tools/run_tests/tests.json | 880 +- vsprojects/buildtests_c.sln | 2650 +----- vsprojects/buildtests_core.sln | 2546 +++++ 14 files changed, 12038 insertions(+), 11685 deletions(-) create mode 100644 templates/vsprojects/buildtests_core.sln.template create mode 100644 vsprojects/buildtests_core.sln diff --git a/BUILD b/BUILD index 5542487d5a19b..f28e6f96f74fd 100644 --- a/BUILD +++ b/BUILD @@ -43,472 +43,427 @@ package(default_visibility = ["//visibility:public"]) cc_library( - name = "gpr", + name = "grpc_c", srcs = [ - "src/core/lib/profiling/timers.h", - "src/core/lib/support/backoff.h", - "src/core/lib/support/block_annotate.h", - "src/core/lib/support/env.h", - "src/core/lib/support/murmur_hash.h", - "src/core/lib/support/stack_lockfree.h", - "src/core/lib/support/string.h", - "src/core/lib/support/string_windows.h", - "src/core/lib/support/thd_internal.h", - "src/core/lib/support/time_precise.h", - "src/core/lib/support/tmpfile.h", - "src/core/lib/profiling/basic_timers.c", - "src/core/lib/profiling/stap_timers.c", - "src/core/lib/support/alloc.c", - "src/core/lib/support/avl.c", - "src/core/lib/support/backoff.c", - "src/core/lib/support/cmdline.c", - "src/core/lib/support/cpu_iphone.c", - "src/core/lib/support/cpu_linux.c", - "src/core/lib/support/cpu_posix.c", - "src/core/lib/support/cpu_windows.c", - "src/core/lib/support/env_linux.c", - "src/core/lib/support/env_posix.c", - "src/core/lib/support/env_windows.c", - "src/core/lib/support/histogram.c", - "src/core/lib/support/host_port.c", - "src/core/lib/support/log.c", - "src/core/lib/support/log_android.c", - "src/core/lib/support/log_linux.c", - "src/core/lib/support/log_posix.c", - "src/core/lib/support/log_windows.c", - "src/core/lib/support/murmur_hash.c", - "src/core/lib/support/slice.c", - "src/core/lib/support/slice_buffer.c", - "src/core/lib/support/stack_lockfree.c", - "src/core/lib/support/string.c", - "src/core/lib/support/string_posix.c", - "src/core/lib/support/string_util_windows.c", - "src/core/lib/support/string_windows.c", - "src/core/lib/support/subprocess_posix.c", - "src/core/lib/support/subprocess_windows.c", - "src/core/lib/support/sync.c", - "src/core/lib/support/sync_posix.c", - "src/core/lib/support/sync_windows.c", - "src/core/lib/support/thd.c", - "src/core/lib/support/thd_posix.c", - "src/core/lib/support/thd_windows.c", - "src/core/lib/support/time.c", - "src/core/lib/support/time_posix.c", - "src/core/lib/support/time_precise.c", - "src/core/lib/support/time_windows.c", - "src/core/lib/support/tls_pthread.c", - "src/core/lib/support/tmpfile_msys.c", - "src/core/lib/support/tmpfile_posix.c", - "src/core/lib/support/tmpfile_windows.c", - "src/core/lib/support/wrap_memcpy.c", + "src/c/alloc.h", + "src/c/array.h", + "src/c/bidi_streaming_blocking_call.h", + "src/c/call_ops.h", + "src/c/client_context.h", + "src/c/client_streaming_blocking_call.h", + "src/c/completion_queue.h", + "src/c/context.h", + "src/c/init_shutdown.h", + "src/c/message.h", + "src/c/server.h", + "src/c/server_context.h", + "src/c/server_incoming_queue.h", + "src/c/server_streaming_blocking_call.h", + "src/c/unary_async_call.h", + "src/c/unary_blocking_call.h", + "src/c/alloc.c", + "src/c/array.c", + "src/c/bidi_streaming_blocking_call.c", + "src/c/call_ops.c", + "src/c/channel.c", + "src/c/client_context.c", + "src/c/client_streaming_blocking_call.c", + "src/c/completion_queue.c", + "src/c/context.c", + "src/c/init_shutdown.c", + "src/c/message.c", + "src/c/pb_compat.c", + "src/c/server.c", + "src/c/server_context.c", + "src/c/server_incoming_queue.c", + "src/c/server_streaming_blocking_call.c", + "src/c/unary_async_call.c", + "src/c/unary_blocking_call.c", ], hdrs = [ - "include/grpc/support/alloc.h", - "include/grpc/support/atm.h", - "include/grpc/support/atm_gcc_atomic.h", - "include/grpc/support/atm_gcc_sync.h", - "include/grpc/support/atm_windows.h", - "include/grpc/support/avl.h", - "include/grpc/support/cmdline.h", - "include/grpc/support/cpu.h", - "include/grpc/support/histogram.h", - "include/grpc/support/host_port.h", - "include/grpc/support/log.h", - "include/grpc/support/log_windows.h", - "include/grpc/support/port_platform.h", - "include/grpc/support/slice.h", - "include/grpc/support/slice_buffer.h", - "include/grpc/support/string_util.h", - "include/grpc/support/subprocess.h", - "include/grpc/support/sync.h", - "include/grpc/support/sync_generic.h", - "include/grpc/support/sync_posix.h", - "include/grpc/support/sync_windows.h", - "include/grpc/support/thd.h", - "include/grpc/support/time.h", - "include/grpc/support/tls.h", - "include/grpc/support/tls_gcc.h", - "include/grpc/support/tls_msvc.h", - "include/grpc/support/tls_pthread.h", - "include/grpc/support/useful.h", - "include/grpc/impl/codegen/alloc.h", - "include/grpc/impl/codegen/atm.h", - "include/grpc/impl/codegen/atm_gcc_atomic.h", - "include/grpc/impl/codegen/atm_gcc_sync.h", - "include/grpc/impl/codegen/atm_windows.h", - "include/grpc/impl/codegen/log.h", - "include/grpc/impl/codegen/port_platform.h", - "include/grpc/impl/codegen/slice.h", - "include/grpc/impl/codegen/slice_buffer.h", - "include/grpc/impl/codegen/sync.h", - "include/grpc/impl/codegen/sync_generic.h", - "include/grpc/impl/codegen/sync_posix.h", - "include/grpc/impl/codegen/sync_windows.h", - "include/grpc/impl/codegen/time.h", + "include/grpc_c/channel.h", + "include/grpc_c/client_context.h", + "include/grpc_c/codegen/bidi_streaming_blocking_call.h", + "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/context.h", + "include/grpc_c/codegen/message.h", + "include/grpc_c/codegen/method.h", + "include/grpc_c/codegen/pb_compat.h", + "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server.h", + "include/grpc_c/codegen/server_streaming_blocking_call.h", + "include/grpc_c/codegen/unary_async_call.h", + "include/grpc_c/codegen/unary_blocking_call.h", + "include/grpc_c/completion_queue.h", + "include/grpc_c/declare_serializer.h", + "include/grpc_c/grpc_c.h", + "include/grpc_c/server.h", + "include/grpc_c/server_context.h", + "include/grpc_c/server_incoming_queue.h", + "include/grpc_c/status.h", ], includes = [ "include", ".", ], deps = [ + "//external:libssl", + "//external:protobuf_clib", + ":grpc", + ":gpr", ], ) cc_library( - name = "grpc", + name = "grpc++", srcs = [ - "src/core/lib/channel/channel_args.h", - "src/core/lib/channel/channel_stack.h", - "src/core/lib/channel/channel_stack_builder.h", - "src/core/lib/channel/compress_filter.h", - "src/core/lib/channel/connected_channel.h", - "src/core/lib/channel/context.h", - "src/core/lib/channel/handshaker.h", - "src/core/lib/channel/http_client_filter.h", - "src/core/lib/channel/http_server_filter.h", - "src/core/lib/compression/algorithm_metadata.h", - "src/core/lib/compression/message_compress.h", - "src/core/lib/debug/trace.h", - "src/core/lib/http/format_request.h", - "src/core/lib/http/httpcli.h", - "src/core/lib/http/parser.h", - "src/core/lib/iomgr/closure.h", - "src/core/lib/iomgr/endpoint.h", - "src/core/lib/iomgr/endpoint_pair.h", - "src/core/lib/iomgr/error.h", - "src/core/lib/iomgr/ev_epoll_linux.h", - "src/core/lib/iomgr/ev_poll_and_epoll_posix.h", - "src/core/lib/iomgr/ev_poll_posix.h", - "src/core/lib/iomgr/ev_posix.h", - "src/core/lib/iomgr/exec_ctx.h", - "src/core/lib/iomgr/executor.h", - "src/core/lib/iomgr/iocp_windows.h", - "src/core/lib/iomgr/iomgr.h", - "src/core/lib/iomgr/iomgr_internal.h", - "src/core/lib/iomgr/iomgr_posix.h", - "src/core/lib/iomgr/load_file.h", - "src/core/lib/iomgr/network_status_tracker.h", - "src/core/lib/iomgr/polling_entity.h", - "src/core/lib/iomgr/pollset.h", - "src/core/lib/iomgr/pollset_set.h", - "src/core/lib/iomgr/pollset_set_windows.h", - "src/core/lib/iomgr/pollset_windows.h", - "src/core/lib/iomgr/resolve_address.h", - "src/core/lib/iomgr/sockaddr.h", - "src/core/lib/iomgr/sockaddr_posix.h", - "src/core/lib/iomgr/sockaddr_utils.h", - "src/core/lib/iomgr/sockaddr_windows.h", - "src/core/lib/iomgr/socket_utils_posix.h", - "src/core/lib/iomgr/socket_windows.h", - "src/core/lib/iomgr/tcp_client.h", - "src/core/lib/iomgr/tcp_posix.h", - "src/core/lib/iomgr/tcp_server.h", - "src/core/lib/iomgr/tcp_windows.h", - "src/core/lib/iomgr/time_averaged_stats.h", - "src/core/lib/iomgr/timer.h", - "src/core/lib/iomgr/timer_heap.h", - "src/core/lib/iomgr/udp_server.h", - "src/core/lib/iomgr/unix_sockets_posix.h", - "src/core/lib/iomgr/wakeup_fd_pipe.h", - "src/core/lib/iomgr/wakeup_fd_posix.h", - "src/core/lib/iomgr/workqueue.h", - "src/core/lib/iomgr/workqueue_posix.h", - "src/core/lib/iomgr/workqueue_windows.h", - "src/core/lib/json/json.h", - "src/core/lib/json/json_common.h", - "src/core/lib/json/json_reader.h", - "src/core/lib/json/json_writer.h", - "src/core/lib/surface/api_trace.h", - "src/core/lib/surface/call.h", - "src/core/lib/surface/call_test_only.h", - "src/core/lib/surface/channel.h", - "src/core/lib/surface/channel_init.h", - "src/core/lib/surface/channel_stack_type.h", - "src/core/lib/surface/completion_queue.h", - "src/core/lib/surface/event_string.h", - "src/core/lib/surface/init.h", - "src/core/lib/surface/lame_client.h", - "src/core/lib/surface/server.h", - "src/core/lib/transport/byte_stream.h", - "src/core/lib/transport/connectivity_state.h", - "src/core/lib/transport/metadata.h", - "src/core/lib/transport/metadata_batch.h", - "src/core/lib/transport/static_metadata.h", - "src/core/lib/transport/timeout_encoding.h", - "src/core/lib/transport/transport.h", - "src/core/lib/transport/transport_impl.h", - "src/core/ext/transport/chttp2/transport/bin_decoder.h", - "src/core/ext/transport/chttp2/transport/bin_encoder.h", - "src/core/ext/transport/chttp2/transport/chttp2_transport.h", - "src/core/ext/transport/chttp2/transport/frame.h", - "src/core/ext/transport/chttp2/transport/frame_data.h", - "src/core/ext/transport/chttp2/transport/frame_goaway.h", - "src/core/ext/transport/chttp2/transport/frame_ping.h", - "src/core/ext/transport/chttp2/transport/frame_rst_stream.h", - "src/core/ext/transport/chttp2/transport/frame_settings.h", - "src/core/ext/transport/chttp2/transport/frame_window_update.h", - "src/core/ext/transport/chttp2/transport/hpack_encoder.h", - "src/core/ext/transport/chttp2/transport/hpack_parser.h", - "src/core/ext/transport/chttp2/transport/hpack_table.h", - "src/core/ext/transport/chttp2/transport/http2_errors.h", - "src/core/ext/transport/chttp2/transport/huffsyms.h", - "src/core/ext/transport/chttp2/transport/incoming_metadata.h", - "src/core/ext/transport/chttp2/transport/internal.h", - "src/core/ext/transport/chttp2/transport/status_conversion.h", - "src/core/ext/transport/chttp2/transport/stream_map.h", - "src/core/ext/transport/chttp2/transport/varint.h", - "src/core/ext/transport/chttp2/alpn/alpn.h", - "src/core/lib/security/context/security_context.h", - "src/core/lib/security/credentials/composite/composite_credentials.h", - "src/core/lib/security/credentials/credentials.h", - "src/core/lib/security/credentials/fake/fake_credentials.h", - "src/core/lib/security/credentials/google_default/google_default_credentials.h", - "src/core/lib/security/credentials/iam/iam_credentials.h", - "src/core/lib/security/credentials/jwt/json_token.h", - "src/core/lib/security/credentials/jwt/jwt_credentials.h", - "src/core/lib/security/credentials/jwt/jwt_verifier.h", - "src/core/lib/security/credentials/oauth2/oauth2_credentials.h", - "src/core/lib/security/credentials/plugin/plugin_credentials.h", - "src/core/lib/security/credentials/ssl/ssl_credentials.h", - "src/core/lib/security/transport/auth_filters.h", - "src/core/lib/security/transport/handshake.h", - "src/core/lib/security/transport/secure_endpoint.h", - "src/core/lib/security/transport/security_connector.h", - "src/core/lib/security/transport/tsi_error.h", - "src/core/lib/security/util/b64.h", - "src/core/lib/security/util/json_util.h", - "src/core/lib/tsi/fake_transport_security.h", - "src/core/lib/tsi/ssl_transport_security.h", - "src/core/lib/tsi/ssl_types.h", - "src/core/lib/tsi/transport_security.h", - "src/core/lib/tsi/transport_security_interface.h", - "src/core/ext/client_config/client_channel.h", - "src/core/ext/client_config/client_channel_factory.h", - "src/core/ext/client_config/client_config.h", - "src/core/ext/client_config/connector.h", - "src/core/ext/client_config/initial_connect_string.h", - "src/core/ext/client_config/lb_policy.h", - "src/core/ext/client_config/lb_policy_factory.h", - "src/core/ext/client_config/lb_policy_registry.h", - "src/core/ext/client_config/parse_address.h", - "src/core/ext/client_config/resolver.h", - "src/core/ext/client_config/resolver_factory.h", - "src/core/ext/client_config/resolver_registry.h", - "src/core/ext/client_config/subchannel.h", - "src/core/ext/client_config/subchannel_call_holder.h", - "src/core/ext/client_config/subchannel_index.h", - "src/core/ext/client_config/uri_parser.h", - "src/core/ext/lb_policy/grpclb/grpclb.h", - "src/core/ext/lb_policy/grpclb/load_balancer_api.h", - "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h", - "src/core/ext/load_reporting/load_reporting.h", - "src/core/ext/load_reporting/load_reporting_filter.h", - "src/core/ext/census/aggregation.h", - "src/core/ext/census/base_resources.h", - "src/core/ext/census/census_interface.h", - "src/core/ext/census/census_rpc_stats.h", - "src/core/ext/census/gen/census.pb.h", - "src/core/ext/census/grpc_filter.h", - "src/core/ext/census/mlog.h", - "src/core/ext/census/resource.h", - "src/core/ext/census/rpc_metric_id.h", - "src/core/lib/surface/init.c", - "src/core/lib/channel/channel_args.c", - "src/core/lib/channel/channel_stack.c", - "src/core/lib/channel/channel_stack_builder.c", - "src/core/lib/channel/compress_filter.c", - "src/core/lib/channel/connected_channel.c", - "src/core/lib/channel/handshaker.c", - "src/core/lib/channel/http_client_filter.c", - "src/core/lib/channel/http_server_filter.c", - "src/core/lib/compression/compression.c", - "src/core/lib/compression/message_compress.c", - "src/core/lib/debug/trace.c", - "src/core/lib/http/format_request.c", - "src/core/lib/http/httpcli.c", - "src/core/lib/http/parser.c", - "src/core/lib/iomgr/closure.c", - "src/core/lib/iomgr/endpoint.c", - "src/core/lib/iomgr/endpoint_pair_posix.c", - "src/core/lib/iomgr/endpoint_pair_windows.c", - "src/core/lib/iomgr/error.c", - "src/core/lib/iomgr/ev_epoll_linux.c", - "src/core/lib/iomgr/ev_poll_and_epoll_posix.c", - "src/core/lib/iomgr/ev_poll_posix.c", - "src/core/lib/iomgr/ev_posix.c", - "src/core/lib/iomgr/exec_ctx.c", - "src/core/lib/iomgr/executor.c", - "src/core/lib/iomgr/iocp_windows.c", - "src/core/lib/iomgr/iomgr.c", - "src/core/lib/iomgr/iomgr_posix.c", - "src/core/lib/iomgr/iomgr_windows.c", - "src/core/lib/iomgr/load_file.c", - "src/core/lib/iomgr/network_status_tracker.c", - "src/core/lib/iomgr/polling_entity.c", - "src/core/lib/iomgr/pollset_set_windows.c", - "src/core/lib/iomgr/pollset_windows.c", - "src/core/lib/iomgr/resolve_address_posix.c", - "src/core/lib/iomgr/resolve_address_windows.c", - "src/core/lib/iomgr/sockaddr_utils.c", - "src/core/lib/iomgr/socket_utils_common_posix.c", - "src/core/lib/iomgr/socket_utils_linux.c", - "src/core/lib/iomgr/socket_utils_posix.c", - "src/core/lib/iomgr/socket_windows.c", - "src/core/lib/iomgr/tcp_client_posix.c", - "src/core/lib/iomgr/tcp_client_windows.c", - "src/core/lib/iomgr/tcp_posix.c", - "src/core/lib/iomgr/tcp_server_posix.c", - "src/core/lib/iomgr/tcp_server_windows.c", - "src/core/lib/iomgr/tcp_windows.c", - "src/core/lib/iomgr/time_averaged_stats.c", - "src/core/lib/iomgr/timer.c", - "src/core/lib/iomgr/timer_heap.c", - "src/core/lib/iomgr/udp_server.c", - "src/core/lib/iomgr/unix_sockets_posix.c", - "src/core/lib/iomgr/unix_sockets_posix_noop.c", - "src/core/lib/iomgr/wakeup_fd_eventfd.c", - "src/core/lib/iomgr/wakeup_fd_nospecial.c", - "src/core/lib/iomgr/wakeup_fd_pipe.c", - "src/core/lib/iomgr/wakeup_fd_posix.c", - "src/core/lib/iomgr/workqueue_posix.c", - "src/core/lib/iomgr/workqueue_windows.c", - "src/core/lib/json/json.c", - "src/core/lib/json/json_reader.c", - "src/core/lib/json/json_string.c", - "src/core/lib/json/json_writer.c", - "src/core/lib/surface/alarm.c", - "src/core/lib/surface/api_trace.c", - "src/core/lib/surface/byte_buffer.c", - "src/core/lib/surface/byte_buffer_reader.c", - "src/core/lib/surface/call.c", - "src/core/lib/surface/call_details.c", - "src/core/lib/surface/call_log_batch.c", - "src/core/lib/surface/channel.c", - "src/core/lib/surface/channel_init.c", - "src/core/lib/surface/channel_ping.c", - "src/core/lib/surface/channel_stack_type.c", - "src/core/lib/surface/completion_queue.c", - "src/core/lib/surface/event_string.c", - "src/core/lib/surface/lame_client.c", - "src/core/lib/surface/metadata_array.c", - "src/core/lib/surface/server.c", - "src/core/lib/surface/validate_metadata.c", - "src/core/lib/surface/version.c", - "src/core/lib/transport/byte_stream.c", - "src/core/lib/transport/connectivity_state.c", - "src/core/lib/transport/metadata.c", - "src/core/lib/transport/metadata_batch.c", - "src/core/lib/transport/static_metadata.c", - "src/core/lib/transport/timeout_encoding.c", - "src/core/lib/transport/transport.c", - "src/core/lib/transport/transport_op_string.c", - "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c", - "src/core/ext/transport/chttp2/transport/bin_decoder.c", - "src/core/ext/transport/chttp2/transport/bin_encoder.c", - "src/core/ext/transport/chttp2/transport/chttp2_plugin.c", - "src/core/ext/transport/chttp2/transport/chttp2_transport.c", - "src/core/ext/transport/chttp2/transport/frame_data.c", - "src/core/ext/transport/chttp2/transport/frame_goaway.c", - "src/core/ext/transport/chttp2/transport/frame_ping.c", - "src/core/ext/transport/chttp2/transport/frame_rst_stream.c", - "src/core/ext/transport/chttp2/transport/frame_settings.c", - "src/core/ext/transport/chttp2/transport/frame_window_update.c", - "src/core/ext/transport/chttp2/transport/hpack_encoder.c", - "src/core/ext/transport/chttp2/transport/hpack_parser.c", - "src/core/ext/transport/chttp2/transport/hpack_table.c", - "src/core/ext/transport/chttp2/transport/huffsyms.c", - "src/core/ext/transport/chttp2/transport/incoming_metadata.c", - "src/core/ext/transport/chttp2/transport/parsing.c", - "src/core/ext/transport/chttp2/transport/status_conversion.c", - "src/core/ext/transport/chttp2/transport/stream_lists.c", - "src/core/ext/transport/chttp2/transport/stream_map.c", - "src/core/ext/transport/chttp2/transport/varint.c", - "src/core/ext/transport/chttp2/transport/writing.c", - "src/core/ext/transport/chttp2/alpn/alpn.c", - "src/core/lib/http/httpcli_security_connector.c", - "src/core/lib/security/context/security_context.c", - "src/core/lib/security/credentials/composite/composite_credentials.c", - "src/core/lib/security/credentials/credentials.c", - "src/core/lib/security/credentials/credentials_metadata.c", - "src/core/lib/security/credentials/fake/fake_credentials.c", - "src/core/lib/security/credentials/google_default/credentials_posix.c", - "src/core/lib/security/credentials/google_default/credentials_windows.c", - "src/core/lib/security/credentials/google_default/google_default_credentials.c", - "src/core/lib/security/credentials/iam/iam_credentials.c", - "src/core/lib/security/credentials/jwt/json_token.c", - "src/core/lib/security/credentials/jwt/jwt_credentials.c", - "src/core/lib/security/credentials/jwt/jwt_verifier.c", - "src/core/lib/security/credentials/oauth2/oauth2_credentials.c", - "src/core/lib/security/credentials/plugin/plugin_credentials.c", - "src/core/lib/security/credentials/ssl/ssl_credentials.c", - "src/core/lib/security/transport/client_auth_filter.c", - "src/core/lib/security/transport/handshake.c", - "src/core/lib/security/transport/secure_endpoint.c", - "src/core/lib/security/transport/security_connector.c", - "src/core/lib/security/transport/server_auth_filter.c", - "src/core/lib/security/transport/tsi_error.c", - "src/core/lib/security/util/b64.c", - "src/core/lib/security/util/json_util.c", - "src/core/lib/surface/init_secure.c", - "src/core/lib/tsi/fake_transport_security.c", - "src/core/lib/tsi/ssl_transport_security.c", - "src/core/lib/tsi/transport_security.c", - "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c", - "src/core/ext/client_config/channel_connectivity.c", - "src/core/ext/client_config/client_channel.c", - "src/core/ext/client_config/client_channel_factory.c", - "src/core/ext/client_config/client_config.c", - "src/core/ext/client_config/client_config_plugin.c", - "src/core/ext/client_config/connector.c", - "src/core/ext/client_config/default_initial_connect_string.c", - "src/core/ext/client_config/initial_connect_string.c", - "src/core/ext/client_config/lb_policy.c", - "src/core/ext/client_config/lb_policy_factory.c", - "src/core/ext/client_config/lb_policy_registry.c", - "src/core/ext/client_config/parse_address.c", - "src/core/ext/client_config/resolver.c", - "src/core/ext/client_config/resolver_factory.c", - "src/core/ext/client_config/resolver_registry.c", - "src/core/ext/client_config/subchannel.c", - "src/core/ext/client_config/subchannel_call_holder.c", - "src/core/ext/client_config/subchannel_index.c", - "src/core/ext/client_config/uri_parser.c", - "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c", - "src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c", - "src/core/ext/transport/chttp2/client/insecure/channel_create.c", - "src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c", - "src/core/ext/lb_policy/grpclb/grpclb.c", - "src/core/ext/lb_policy/grpclb/load_balancer_api.c", - "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c", - "src/core/ext/lb_policy/pick_first/pick_first.c", - "src/core/ext/lb_policy/round_robin/round_robin.c", - "src/core/ext/resolver/dns/native/dns_resolver.c", - "src/core/ext/resolver/sockaddr/sockaddr_resolver.c", - "src/core/ext/load_reporting/load_reporting.c", - "src/core/ext/load_reporting/load_reporting_filter.c", - "src/core/ext/census/base_resources.c", - "src/core/ext/census/context.c", - "src/core/ext/census/gen/census.pb.c", - "src/core/ext/census/grpc_context.c", - "src/core/ext/census/grpc_filter.c", - "src/core/ext/census/grpc_plugin.c", - "src/core/ext/census/initialize.c", - "src/core/ext/census/mlog.c", - "src/core/ext/census/operation.c", - "src/core/ext/census/placeholders.c", - "src/core/ext/census/resource.c", - "src/core/ext/census/tracing.c", - "src/core/plugin_registry/grpc_plugin_registry.c", + "include/grpc++/impl/codegen/core_codegen.h", + "src/cpp/client/secure_credentials.h", + "src/cpp/common/secure_auth_context.h", + "src/cpp/server/secure_server_credentials.h", + "src/cpp/client/create_channel_internal.h", + "src/cpp/server/dynamic_thread_pool.h", + "src/cpp/server/thread_pool_interface.h", + "src/cpp/client/secure_credentials.cc", + "src/cpp/common/auth_property_iterator.cc", + "src/cpp/common/secure_auth_context.cc", + "src/cpp/common/secure_channel_arguments.cc", + "src/cpp/common/secure_create_auth_context.cc", + "src/cpp/server/secure_server_credentials.cc", + "src/cpp/client/channel.cc", + "src/cpp/client/client_context.cc", + "src/cpp/client/create_channel.cc", + "src/cpp/client/create_channel_internal.cc", + "src/cpp/client/create_channel_posix.cc", + "src/cpp/client/credentials.cc", + "src/cpp/client/generic_stub.cc", + "src/cpp/client/insecure_credentials.cc", + "src/cpp/common/channel_arguments.cc", + "src/cpp/common/completion_queue.cc", + "src/cpp/common/core_codegen.cc", + "src/cpp/common/rpc_method.cc", + "src/cpp/server/async_generic_service.cc", + "src/cpp/server/create_default_thread_pool.cc", + "src/cpp/server/dynamic_thread_pool.cc", + "src/cpp/server/insecure_server_credentials.cc", + "src/cpp/server/server.cc", + "src/cpp/server/server_builder.cc", + "src/cpp/server/server_context.cc", + "src/cpp/server/server_credentials.cc", + "src/cpp/server/server_posix.cc", + "src/cpp/util/byte_buffer.cc", + "src/cpp/util/slice.cc", + "src/cpp/util/status.cc", + "src/cpp/util/string_ref.cc", + "src/cpp/util/time.cc", + "src/cpp/codegen/codegen_init.cc", + ], + hdrs = [ + "include/grpc++/alarm.h", + "include/grpc++/channel.h", + "include/grpc++/client_context.h", + "include/grpc++/completion_queue.h", + "include/grpc++/create_channel.h", + "include/grpc++/create_channel_posix.h", + "include/grpc++/generic/async_generic_service.h", + "include/grpc++/generic/generic_stub.h", + "include/grpc++/grpc++.h", + "include/grpc++/impl/call.h", + "include/grpc++/impl/client_unary_call.h", + "include/grpc++/impl/codegen/core_codegen.h", + "include/grpc++/impl/grpc_library.h", + "include/grpc++/impl/method_handler_impl.h", + "include/grpc++/impl/rpc_method.h", + "include/grpc++/impl/rpc_service_method.h", + "include/grpc++/impl/serialization_traits.h", + "include/grpc++/impl/server_builder_option.h", + "include/grpc++/impl/server_builder_plugin.h", + "include/grpc++/impl/server_initializer.h", + "include/grpc++/impl/service_type.h", + "include/grpc++/impl/sync.h", + "include/grpc++/impl/sync_cxx11.h", + "include/grpc++/impl/sync_no_cxx11.h", + "include/grpc++/impl/thd.h", + "include/grpc++/impl/thd_cxx11.h", + "include/grpc++/impl/thd_no_cxx11.h", + "include/grpc++/security/auth_context.h", + "include/grpc++/security/auth_metadata_processor.h", + "include/grpc++/security/credentials.h", + "include/grpc++/security/server_credentials.h", + "include/grpc++/server.h", + "include/grpc++/server_builder.h", + "include/grpc++/server_context.h", + "include/grpc++/server_posix.h", + "include/grpc++/support/async_stream.h", + "include/grpc++/support/async_unary_call.h", + "include/grpc++/support/byte_buffer.h", + "include/grpc++/support/channel_arguments.h", + "include/grpc++/support/config.h", + "include/grpc++/support/slice.h", + "include/grpc++/support/status.h", + "include/grpc++/support/status_code_enum.h", + "include/grpc++/support/string_ref.h", + "include/grpc++/support/stub_options.h", + "include/grpc++/support/sync_stream.h", + "include/grpc++/support/time.h", + "include/grpc++/impl/codegen/async_stream.h", + "include/grpc++/impl/codegen/async_unary_call.h", + "include/grpc++/impl/codegen/call.h", + "include/grpc++/impl/codegen/call_hook.h", + "include/grpc++/impl/codegen/channel_interface.h", + "include/grpc++/impl/codegen/client_context.h", + "include/grpc++/impl/codegen/client_unary_call.h", + "include/grpc++/impl/codegen/completion_queue.h", + "include/grpc++/impl/codegen/completion_queue_tag.h", + "include/grpc++/impl/codegen/config.h", + "include/grpc++/impl/codegen/core_codegen_interface.h", + "include/grpc++/impl/codegen/create_auth_context.h", + "include/grpc++/impl/codegen/grpc_library.h", + "include/grpc++/impl/codegen/method_handler_impl.h", + "include/grpc++/impl/codegen/rpc_method.h", + "include/grpc++/impl/codegen/rpc_service_method.h", + "include/grpc++/impl/codegen/security/auth_context.h", + "include/grpc++/impl/codegen/serialization_traits.h", + "include/grpc++/impl/codegen/server_context.h", + "include/grpc++/impl/codegen/server_interface.h", + "include/grpc++/impl/codegen/service_type.h", + "include/grpc++/impl/codegen/status.h", + "include/grpc++/impl/codegen/status_code_enum.h", + "include/grpc++/impl/codegen/string_ref.h", + "include/grpc++/impl/codegen/stub_options.h", + "include/grpc++/impl/codegen/sync.h", + "include/grpc++/impl/codegen/sync_cxx11.h", + "include/grpc++/impl/codegen/sync_no_cxx11.h", + "include/grpc++/impl/codegen/sync_stream.h", + "include/grpc++/impl/codegen/time.h", + "include/grpc/impl/codegen/byte_buffer.h", + "include/grpc/impl/codegen/byte_buffer_reader.h", + "include/grpc/impl/codegen/compression_types.h", + "include/grpc/impl/codegen/connectivity_state.h", + "include/grpc/impl/codegen/grpc_types.h", + "include/grpc/impl/codegen/propagation_bits.h", + "include/grpc/impl/codegen/status.h", + "include/grpc/impl/codegen/alloc.h", + "include/grpc/impl/codegen/atm.h", + "include/grpc/impl/codegen/atm_gcc_atomic.h", + "include/grpc/impl/codegen/atm_gcc_sync.h", + "include/grpc/impl/codegen/atm_windows.h", + "include/grpc/impl/codegen/log.h", + "include/grpc/impl/codegen/port_platform.h", + "include/grpc/impl/codegen/slice.h", + "include/grpc/impl/codegen/slice_buffer.h", + "include/grpc/impl/codegen/sync.h", + "include/grpc/impl/codegen/sync_generic.h", + "include/grpc/impl/codegen/sync_posix.h", + "include/grpc/impl/codegen/sync_windows.h", + "include/grpc/impl/codegen/time.h", + ], + includes = [ + "include", + ".", + ], + deps = [ + "//external:libssl", + "//external:protobuf_clib", + ":grpc", + ], +) + + + +cc_library( + name = "grpc++_reflection", + srcs = [ + "src/cpp/ext/proto_server_reflection.h", + "src/cpp/ext/proto_server_reflection.cc", + "src/cpp/ext/proto_server_reflection_plugin.cc", + "src/cpp/ext/reflection.grpc.pb.cc", + "src/cpp/ext/reflection.pb.cc", + ], + hdrs = [ + "include/grpc++/ext/proto_server_reflection_plugin.h", + "include/grpc++/ext/reflection.grpc.pb.h", + "include/grpc++/ext/reflection.pb.h", + "include/grpc++/impl/codegen/proto_utils.h", + "include/grpc++/impl/codegen/async_stream.h", + "include/grpc++/impl/codegen/async_unary_call.h", + "include/grpc++/impl/codegen/call.h", + "include/grpc++/impl/codegen/call_hook.h", + "include/grpc++/impl/codegen/channel_interface.h", + "include/grpc++/impl/codegen/client_context.h", + "include/grpc++/impl/codegen/client_unary_call.h", + "include/grpc++/impl/codegen/completion_queue.h", + "include/grpc++/impl/codegen/completion_queue_tag.h", + "include/grpc++/impl/codegen/config.h", + "include/grpc++/impl/codegen/core_codegen_interface.h", + "include/grpc++/impl/codegen/create_auth_context.h", + "include/grpc++/impl/codegen/grpc_library.h", + "include/grpc++/impl/codegen/method_handler_impl.h", + "include/grpc++/impl/codegen/rpc_method.h", + "include/grpc++/impl/codegen/rpc_service_method.h", + "include/grpc++/impl/codegen/security/auth_context.h", + "include/grpc++/impl/codegen/serialization_traits.h", + "include/grpc++/impl/codegen/server_context.h", + "include/grpc++/impl/codegen/server_interface.h", + "include/grpc++/impl/codegen/service_type.h", + "include/grpc++/impl/codegen/status.h", + "include/grpc++/impl/codegen/status_code_enum.h", + "include/grpc++/impl/codegen/string_ref.h", + "include/grpc++/impl/codegen/stub_options.h", + "include/grpc++/impl/codegen/sync.h", + "include/grpc++/impl/codegen/sync_cxx11.h", + "include/grpc++/impl/codegen/sync_no_cxx11.h", + "include/grpc++/impl/codegen/sync_stream.h", + "include/grpc++/impl/codegen/time.h", + "include/grpc/impl/codegen/byte_buffer.h", + "include/grpc/impl/codegen/byte_buffer_reader.h", + "include/grpc/impl/codegen/compression_types.h", + "include/grpc/impl/codegen/connectivity_state.h", + "include/grpc/impl/codegen/grpc_types.h", + "include/grpc/impl/codegen/propagation_bits.h", + "include/grpc/impl/codegen/status.h", + "include/grpc/impl/codegen/alloc.h", + "include/grpc/impl/codegen/atm.h", + "include/grpc/impl/codegen/atm_gcc_atomic.h", + "include/grpc/impl/codegen/atm_gcc_sync.h", + "include/grpc/impl/codegen/atm_windows.h", + "include/grpc/impl/codegen/log.h", + "include/grpc/impl/codegen/port_platform.h", + "include/grpc/impl/codegen/slice.h", + "include/grpc/impl/codegen/slice_buffer.h", + "include/grpc/impl/codegen/sync.h", + "include/grpc/impl/codegen/sync_generic.h", + "include/grpc/impl/codegen/sync_posix.h", + "include/grpc/impl/codegen/sync_windows.h", + "include/grpc/impl/codegen/time.h", + "include/grpc++/impl/codegen/config_protobuf.h", + ], + includes = [ + "include", + ".", + ], + deps = [ + ":grpc++", + ], +) + + + +cc_library( + name = "grpc++_unsecure", + srcs = [ + "src/cpp/client/create_channel_internal.h", + "src/cpp/server/dynamic_thread_pool.h", + "src/cpp/server/thread_pool_interface.h", + "src/cpp/common/insecure_create_auth_context.cc", + "src/cpp/client/channel.cc", + "src/cpp/client/client_context.cc", + "src/cpp/client/create_channel.cc", + "src/cpp/client/create_channel_internal.cc", + "src/cpp/client/create_channel_posix.cc", + "src/cpp/client/credentials.cc", + "src/cpp/client/generic_stub.cc", + "src/cpp/client/insecure_credentials.cc", + "src/cpp/common/channel_arguments.cc", + "src/cpp/common/completion_queue.cc", + "src/cpp/common/core_codegen.cc", + "src/cpp/common/rpc_method.cc", + "src/cpp/server/async_generic_service.cc", + "src/cpp/server/create_default_thread_pool.cc", + "src/cpp/server/dynamic_thread_pool.cc", + "src/cpp/server/insecure_server_credentials.cc", + "src/cpp/server/server.cc", + "src/cpp/server/server_builder.cc", + "src/cpp/server/server_context.cc", + "src/cpp/server/server_credentials.cc", + "src/cpp/server/server_posix.cc", + "src/cpp/util/byte_buffer.cc", + "src/cpp/util/slice.cc", + "src/cpp/util/status.cc", + "src/cpp/util/string_ref.cc", + "src/cpp/util/time.cc", + "src/cpp/codegen/codegen_init.cc", ], hdrs = [ - "include/grpc/byte_buffer.h", - "include/grpc/byte_buffer_reader.h", - "include/grpc/compression.h", - "include/grpc/grpc.h", - "include/grpc/grpc_posix.h", - "include/grpc/status.h", + "include/grpc++/alarm.h", + "include/grpc++/channel.h", + "include/grpc++/client_context.h", + "include/grpc++/completion_queue.h", + "include/grpc++/create_channel.h", + "include/grpc++/create_channel_posix.h", + "include/grpc++/generic/async_generic_service.h", + "include/grpc++/generic/generic_stub.h", + "include/grpc++/grpc++.h", + "include/grpc++/impl/call.h", + "include/grpc++/impl/client_unary_call.h", + "include/grpc++/impl/codegen/core_codegen.h", + "include/grpc++/impl/grpc_library.h", + "include/grpc++/impl/method_handler_impl.h", + "include/grpc++/impl/rpc_method.h", + "include/grpc++/impl/rpc_service_method.h", + "include/grpc++/impl/serialization_traits.h", + "include/grpc++/impl/server_builder_option.h", + "include/grpc++/impl/server_builder_plugin.h", + "include/grpc++/impl/server_initializer.h", + "include/grpc++/impl/service_type.h", + "include/grpc++/impl/sync.h", + "include/grpc++/impl/sync_cxx11.h", + "include/grpc++/impl/sync_no_cxx11.h", + "include/grpc++/impl/thd.h", + "include/grpc++/impl/thd_cxx11.h", + "include/grpc++/impl/thd_no_cxx11.h", + "include/grpc++/security/auth_context.h", + "include/grpc++/security/auth_metadata_processor.h", + "include/grpc++/security/credentials.h", + "include/grpc++/security/server_credentials.h", + "include/grpc++/server.h", + "include/grpc++/server_builder.h", + "include/grpc++/server_context.h", + "include/grpc++/server_posix.h", + "include/grpc++/support/async_stream.h", + "include/grpc++/support/async_unary_call.h", + "include/grpc++/support/byte_buffer.h", + "include/grpc++/support/channel_arguments.h", + "include/grpc++/support/config.h", + "include/grpc++/support/slice.h", + "include/grpc++/support/status.h", + "include/grpc++/support/status_code_enum.h", + "include/grpc++/support/string_ref.h", + "include/grpc++/support/stub_options.h", + "include/grpc++/support/sync_stream.h", + "include/grpc++/support/time.h", + "include/grpc++/impl/codegen/async_stream.h", + "include/grpc++/impl/codegen/async_unary_call.h", + "include/grpc++/impl/codegen/call.h", + "include/grpc++/impl/codegen/call_hook.h", + "include/grpc++/impl/codegen/channel_interface.h", + "include/grpc++/impl/codegen/client_context.h", + "include/grpc++/impl/codegen/client_unary_call.h", + "include/grpc++/impl/codegen/completion_queue.h", + "include/grpc++/impl/codegen/completion_queue_tag.h", + "include/grpc++/impl/codegen/config.h", + "include/grpc++/impl/codegen/core_codegen_interface.h", + "include/grpc++/impl/codegen/create_auth_context.h", + "include/grpc++/impl/codegen/grpc_library.h", + "include/grpc++/impl/codegen/method_handler_impl.h", + "include/grpc++/impl/codegen/rpc_method.h", + "include/grpc++/impl/codegen/rpc_service_method.h", + "include/grpc++/impl/codegen/security/auth_context.h", + "include/grpc++/impl/codegen/serialization_traits.h", + "include/grpc++/impl/codegen/server_context.h", + "include/grpc++/impl/codegen/server_interface.h", + "include/grpc++/impl/codegen/service_type.h", + "include/grpc++/impl/codegen/status.h", + "include/grpc++/impl/codegen/status_code_enum.h", + "include/grpc++/impl/codegen/string_ref.h", + "include/grpc++/impl/codegen/stub_options.h", + "include/grpc++/impl/codegen/sync.h", + "include/grpc++/impl/codegen/sync_cxx11.h", + "include/grpc++/impl/codegen/sync_no_cxx11.h", + "include/grpc++/impl/codegen/sync_stream.h", + "include/grpc++/impl/codegen/time.h", "include/grpc/impl/codegen/byte_buffer.h", "include/grpc/impl/codegen/byte_buffer_reader.h", "include/grpc/impl/codegen/compression_types.h", @@ -530,103 +485,179 @@ cc_library( "include/grpc/impl/codegen/sync_posix.h", "include/grpc/impl/codegen/sync_windows.h", "include/grpc/impl/codegen/time.h", - "include/grpc/grpc_security.h", - "include/grpc/grpc_security_constants.h", - "include/grpc/census.h", - ], - includes = [ - "include", - ".", - ], - deps = [ - "//external:libssl", - "//external:zlib", - ":gpr", - "//external:nanopb", - ], - copts = [ - "-std=gnu99", - ], -) - - - -cc_library( - name = "grpc_c", - srcs = [ - "src/c/alloc.h", - "src/c/array.h", - "src/c/bidi_streaming_blocking_call.h", - "src/c/call_ops.h", - "src/c/client_context.h", - "src/c/client_streaming_blocking_call.h", - "src/c/completion_queue.h", - "src/c/context.h", - "src/c/init_shutdown.h", - "src/c/message.h", - "src/c/server.h", - "src/c/server_context.h", - "src/c/server_incoming_queue.h", - "src/c/server_streaming_blocking_call.h", - "src/c/unary_async_call.h", - "src/c/unary_blocking_call.h", - "src/c/alloc.c", - "src/c/array.c", - "src/c/bidi_streaming_blocking_call.c", - "src/c/call_ops.c", - "src/c/channel.c", - "src/c/client_context.c", - "src/c/client_streaming_blocking_call.c", - "src/c/completion_queue.c", - "src/c/context.c", - "src/c/init_shutdown.c", - "src/c/message.c", - "src/c/pb_compat.c", - "src/c/server.c", - "src/c/server_context.c", - "src/c/server_incoming_queue.c", - "src/c/server_streaming_blocking_call.c", - "src/c/unary_async_call.c", - "src/c/unary_blocking_call.c", - ], - hdrs = [ - "include/grpc_c/channel.h", - "include/grpc_c/client_context.h", - "include/grpc_c/codegen/bidi_streaming_blocking_call.h", - "include/grpc_c/codegen/client_streaming_blocking_call.h", - "include/grpc_c/codegen/context.h", - "include/grpc_c/codegen/message.h", - "include/grpc_c/codegen/method.h", - "include/grpc_c/codegen/pb_compat.h", - "include/grpc_c/codegen/serialization.h", - "include/grpc_c/codegen/server.h", - "include/grpc_c/codegen/server_streaming_blocking_call.h", - "include/grpc_c/codegen/unary_async_call.h", - "include/grpc_c/codegen/unary_blocking_call.h", - "include/grpc_c/completion_queue.h", - "include/grpc_c/declare_serializer.h", - "include/grpc_c/grpc_c.h", - "include/grpc_c/server.h", - "include/grpc_c/server_context.h", - "include/grpc_c/server_incoming_queue.h", - "include/grpc_c/status.h", ], includes = [ "include", ".", ], deps = [ - "//external:libssl", - "//external:protobuf_clib", - ":grpc", - ":gpr", + "//external:protobuf_clib", + ":gpr", + ":grpc_unsecure", + ":grpc", + ], +) + + + +cc_library( + name = "grpc_plugin_support", + srcs = [ + "src/compiler/c_generator.h", + "src/compiler/c_generator_helpers.h", + "src/compiler/config.h", + "src/compiler/cpp_generator.h", + "src/compiler/cpp_generator_helpers.h", + "src/compiler/csharp_generator.h", + "src/compiler/csharp_generator_helpers.h", + "src/compiler/generator_helpers.h", + "src/compiler/node_generator.h", + "src/compiler/node_generator_helpers.h", + "src/compiler/objective_c_generator.h", + "src/compiler/objective_c_generator_helpers.h", + "src/compiler/python_generator.h", + "src/compiler/ruby_generator.h", + "src/compiler/ruby_generator_helpers-inl.h", + "src/compiler/ruby_generator_map-inl.h", + "src/compiler/ruby_generator_string-inl.h", + "src/compiler/c_generator.cc", + "src/compiler/cpp_generator.cc", + "src/compiler/csharp_generator.cc", + "src/compiler/node_generator.cc", + "src/compiler/objective_c_generator.cc", + "src/compiler/python_generator.cc", + "src/compiler/ruby_generator.cc", + ], + hdrs = [ + "include/grpc++/impl/codegen/config_protobuf.h", + ], + includes = [ + "include", + ".", + ], + deps = [ + "//external:protobuf_compiler", + ], +) + + + +cc_library( + name = "gpr", + srcs = [ + "src/core/lib/profiling/timers.h", + "src/core/lib/support/backoff.h", + "src/core/lib/support/block_annotate.h", + "src/core/lib/support/env.h", + "src/core/lib/support/murmur_hash.h", + "src/core/lib/support/stack_lockfree.h", + "src/core/lib/support/string.h", + "src/core/lib/support/string_windows.h", + "src/core/lib/support/thd_internal.h", + "src/core/lib/support/time_precise.h", + "src/core/lib/support/tmpfile.h", + "src/core/lib/profiling/basic_timers.c", + "src/core/lib/profiling/stap_timers.c", + "src/core/lib/support/alloc.c", + "src/core/lib/support/avl.c", + "src/core/lib/support/backoff.c", + "src/core/lib/support/cmdline.c", + "src/core/lib/support/cpu_iphone.c", + "src/core/lib/support/cpu_linux.c", + "src/core/lib/support/cpu_posix.c", + "src/core/lib/support/cpu_windows.c", + "src/core/lib/support/env_linux.c", + "src/core/lib/support/env_posix.c", + "src/core/lib/support/env_windows.c", + "src/core/lib/support/histogram.c", + "src/core/lib/support/host_port.c", + "src/core/lib/support/log.c", + "src/core/lib/support/log_android.c", + "src/core/lib/support/log_linux.c", + "src/core/lib/support/log_posix.c", + "src/core/lib/support/log_windows.c", + "src/core/lib/support/murmur_hash.c", + "src/core/lib/support/slice.c", + "src/core/lib/support/slice_buffer.c", + "src/core/lib/support/stack_lockfree.c", + "src/core/lib/support/string.c", + "src/core/lib/support/string_posix.c", + "src/core/lib/support/string_util_windows.c", + "src/core/lib/support/string_windows.c", + "src/core/lib/support/subprocess_posix.c", + "src/core/lib/support/subprocess_windows.c", + "src/core/lib/support/sync.c", + "src/core/lib/support/sync_posix.c", + "src/core/lib/support/sync_windows.c", + "src/core/lib/support/thd.c", + "src/core/lib/support/thd_posix.c", + "src/core/lib/support/thd_windows.c", + "src/core/lib/support/time.c", + "src/core/lib/support/time_posix.c", + "src/core/lib/support/time_precise.c", + "src/core/lib/support/time_windows.c", + "src/core/lib/support/tls_pthread.c", + "src/core/lib/support/tmpfile_msys.c", + "src/core/lib/support/tmpfile_posix.c", + "src/core/lib/support/tmpfile_windows.c", + "src/core/lib/support/wrap_memcpy.c", + ], + hdrs = [ + "include/grpc/support/alloc.h", + "include/grpc/support/atm.h", + "include/grpc/support/atm_gcc_atomic.h", + "include/grpc/support/atm_gcc_sync.h", + "include/grpc/support/atm_windows.h", + "include/grpc/support/avl.h", + "include/grpc/support/cmdline.h", + "include/grpc/support/cpu.h", + "include/grpc/support/histogram.h", + "include/grpc/support/host_port.h", + "include/grpc/support/log.h", + "include/grpc/support/log_windows.h", + "include/grpc/support/port_platform.h", + "include/grpc/support/slice.h", + "include/grpc/support/slice_buffer.h", + "include/grpc/support/string_util.h", + "include/grpc/support/subprocess.h", + "include/grpc/support/sync.h", + "include/grpc/support/sync_generic.h", + "include/grpc/support/sync_posix.h", + "include/grpc/support/sync_windows.h", + "include/grpc/support/thd.h", + "include/grpc/support/time.h", + "include/grpc/support/tls.h", + "include/grpc/support/tls_gcc.h", + "include/grpc/support/tls_msvc.h", + "include/grpc/support/tls_pthread.h", + "include/grpc/support/useful.h", + "include/grpc/impl/codegen/alloc.h", + "include/grpc/impl/codegen/atm.h", + "include/grpc/impl/codegen/atm_gcc_atomic.h", + "include/grpc/impl/codegen/atm_gcc_sync.h", + "include/grpc/impl/codegen/atm_windows.h", + "include/grpc/impl/codegen/log.h", + "include/grpc/impl/codegen/port_platform.h", + "include/grpc/impl/codegen/slice.h", + "include/grpc/impl/codegen/slice_buffer.h", + "include/grpc/impl/codegen/sync.h", + "include/grpc/impl/codegen/sync_generic.h", + "include/grpc/impl/codegen/sync_posix.h", + "include/grpc/impl/codegen/sync_windows.h", + "include/grpc/impl/codegen/time.h", + ], + includes = [ + "include", + ".", + ], + deps = [ ], ) cc_library( - name = "grpc_cronet", + name = "grpc", srcs = [ "src/core/lib/channel/channel_args.h", "src/core/lib/channel/channel_stack.h", @@ -708,7 +739,6 @@ cc_library( "src/core/lib/transport/timeout_encoding.h", "src/core/lib/transport/transport.h", "src/core/lib/transport/transport_impl.h", - "third_party/objective_c/Cronet/cronet_c_for_grpc.h", "src/core/ext/transport/chttp2/transport/bin_decoder.h", "src/core/ext/transport/chttp2/transport/bin_encoder.h", "src/core/ext/transport/chttp2/transport/chttp2_transport.h", @@ -730,22 +760,6 @@ cc_library( "src/core/ext/transport/chttp2/transport/stream_map.h", "src/core/ext/transport/chttp2/transport/varint.h", "src/core/ext/transport/chttp2/alpn/alpn.h", - "src/core/ext/client_config/client_channel.h", - "src/core/ext/client_config/client_channel_factory.h", - "src/core/ext/client_config/client_config.h", - "src/core/ext/client_config/connector.h", - "src/core/ext/client_config/initial_connect_string.h", - "src/core/ext/client_config/lb_policy.h", - "src/core/ext/client_config/lb_policy_factory.h", - "src/core/ext/client_config/lb_policy_registry.h", - "src/core/ext/client_config/parse_address.h", - "src/core/ext/client_config/resolver.h", - "src/core/ext/client_config/resolver_factory.h", - "src/core/ext/client_config/resolver_registry.h", - "src/core/ext/client_config/subchannel.h", - "src/core/ext/client_config/subchannel_call_holder.h", - "src/core/ext/client_config/subchannel_index.h", - "src/core/ext/client_config/uri_parser.h", "src/core/lib/security/context/security_context.h", "src/core/lib/security/credentials/composite/composite_credentials.h", "src/core/lib/security/credentials/credentials.h", @@ -770,6 +784,36 @@ cc_library( "src/core/lib/tsi/ssl_types.h", "src/core/lib/tsi/transport_security.h", "src/core/lib/tsi/transport_security_interface.h", + "src/core/ext/client_config/client_channel.h", + "src/core/ext/client_config/client_channel_factory.h", + "src/core/ext/client_config/client_config.h", + "src/core/ext/client_config/connector.h", + "src/core/ext/client_config/initial_connect_string.h", + "src/core/ext/client_config/lb_policy.h", + "src/core/ext/client_config/lb_policy_factory.h", + "src/core/ext/client_config/lb_policy_registry.h", + "src/core/ext/client_config/parse_address.h", + "src/core/ext/client_config/resolver.h", + "src/core/ext/client_config/resolver_factory.h", + "src/core/ext/client_config/resolver_registry.h", + "src/core/ext/client_config/subchannel.h", + "src/core/ext/client_config/subchannel_call_holder.h", + "src/core/ext/client_config/subchannel_index.h", + "src/core/ext/client_config/uri_parser.h", + "src/core/ext/lb_policy/grpclb/grpclb.h", + "src/core/ext/lb_policy/grpclb/load_balancer_api.h", + "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h", + "src/core/ext/load_reporting/load_reporting.h", + "src/core/ext/load_reporting/load_reporting_filter.h", + "src/core/ext/census/aggregation.h", + "src/core/ext/census/base_resources.h", + "src/core/ext/census/census_interface.h", + "src/core/ext/census/census_rpc_stats.h", + "src/core/ext/census/gen/census.pb.h", + "src/core/ext/census/grpc_filter.h", + "src/core/ext/census/mlog.h", + "src/core/ext/census/resource.h", + "src/core/ext/census/rpc_metric_id.h", "src/core/lib/surface/init.c", "src/core/lib/channel/channel_args.c", "src/core/lib/channel/channel_stack.c", @@ -860,10 +904,7 @@ cc_library( "src/core/lib/transport/timeout_encoding.c", "src/core/lib/transport/transport.c", "src/core/lib/transport/transport_op_string.c", - "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c", - "src/core/ext/transport/cronet/transport/cronet_api_dummy.c", - "src/core/ext/transport/cronet/transport/cronet_transport.c", - "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c", + "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c", "src/core/ext/transport/chttp2/transport/bin_decoder.c", "src/core/ext/transport/chttp2/transport/bin_encoder.c", "src/core/ext/transport/chttp2/transport/chttp2_plugin.c", @@ -886,25 +927,6 @@ cc_library( "src/core/ext/transport/chttp2/transport/varint.c", "src/core/ext/transport/chttp2/transport/writing.c", "src/core/ext/transport/chttp2/alpn/alpn.c", - "src/core/ext/client_config/channel_connectivity.c", - "src/core/ext/client_config/client_channel.c", - "src/core/ext/client_config/client_channel_factory.c", - "src/core/ext/client_config/client_config.c", - "src/core/ext/client_config/client_config_plugin.c", - "src/core/ext/client_config/connector.c", - "src/core/ext/client_config/default_initial_connect_string.c", - "src/core/ext/client_config/initial_connect_string.c", - "src/core/ext/client_config/lb_policy.c", - "src/core/ext/client_config/lb_policy_factory.c", - "src/core/ext/client_config/lb_policy_registry.c", - "src/core/ext/client_config/parse_address.c", - "src/core/ext/client_config/resolver.c", - "src/core/ext/client_config/resolver_factory.c", - "src/core/ext/client_config/resolver_registry.c", - "src/core/ext/client_config/subchannel.c", - "src/core/ext/client_config/subchannel_call_holder.c", - "src/core/ext/client_config/subchannel_index.c", - "src/core/ext/client_config/uri_parser.c", "src/core/lib/http/httpcli_security_connector.c", "src/core/lib/security/context/security_context.c", "src/core/lib/security/credentials/composite/composite_credentials.c", @@ -933,7 +955,52 @@ cc_library( "src/core/lib/tsi/fake_transport_security.c", "src/core/lib/tsi/ssl_transport_security.c", "src/core/lib/tsi/transport_security.c", - "src/core/plugin_registry/grpc_cronet_plugin_registry.c", + "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c", + "src/core/ext/client_config/channel_connectivity.c", + "src/core/ext/client_config/client_channel.c", + "src/core/ext/client_config/client_channel_factory.c", + "src/core/ext/client_config/client_config.c", + "src/core/ext/client_config/client_config_plugin.c", + "src/core/ext/client_config/connector.c", + "src/core/ext/client_config/default_initial_connect_string.c", + "src/core/ext/client_config/initial_connect_string.c", + "src/core/ext/client_config/lb_policy.c", + "src/core/ext/client_config/lb_policy_factory.c", + "src/core/ext/client_config/lb_policy_registry.c", + "src/core/ext/client_config/parse_address.c", + "src/core/ext/client_config/resolver.c", + "src/core/ext/client_config/resolver_factory.c", + "src/core/ext/client_config/resolver_registry.c", + "src/core/ext/client_config/subchannel.c", + "src/core/ext/client_config/subchannel_call_holder.c", + "src/core/ext/client_config/subchannel_index.c", + "src/core/ext/client_config/uri_parser.c", + "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c", + "src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c", + "src/core/ext/transport/chttp2/client/insecure/channel_create.c", + "src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c", + "src/core/ext/lb_policy/grpclb/grpclb.c", + "src/core/ext/lb_policy/grpclb/load_balancer_api.c", + "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c", + "src/core/ext/lb_policy/pick_first/pick_first.c", + "src/core/ext/lb_policy/round_robin/round_robin.c", + "src/core/ext/resolver/dns/native/dns_resolver.c", + "src/core/ext/resolver/sockaddr/sockaddr_resolver.c", + "src/core/ext/load_reporting/load_reporting.c", + "src/core/ext/load_reporting/load_reporting_filter.c", + "src/core/ext/census/base_resources.c", + "src/core/ext/census/context.c", + "src/core/ext/census/gen/census.pb.c", + "src/core/ext/census/grpc_context.c", + "src/core/ext/census/grpc_filter.c", + "src/core/ext/census/grpc_plugin.c", + "src/core/ext/census/initialize.c", + "src/core/ext/census/mlog.c", + "src/core/ext/census/operation.c", + "src/core/ext/census/placeholders.c", + "src/core/ext/census/resource.c", + "src/core/ext/census/tracing.c", + "src/core/plugin_registry/grpc_plugin_registry.c", ], hdrs = [ "include/grpc/byte_buffer.h", @@ -963,9 +1030,9 @@ cc_library( "include/grpc/impl/codegen/sync_posix.h", "include/grpc/impl/codegen/sync_windows.h", "include/grpc/impl/codegen/time.h", - "include/grpc/grpc_cronet.h", "include/grpc/grpc_security.h", "include/grpc/grpc_security_constants.h", + "include/grpc/census.h", ], includes = [ "include", @@ -973,14 +1040,19 @@ cc_library( ], deps = [ "//external:libssl", + "//external:zlib", ":gpr", + "//external:nanopb", + ], + copts = [ + "-std=gnu99", ], ) cc_library( - name = "grpc_unsecure", + name = "grpc_cronet", srcs = [ "src/core/lib/channel/channel_args.h", "src/core/lib/channel/channel_stack.h", @@ -1062,6 +1134,7 @@ cc_library( "src/core/lib/transport/timeout_encoding.h", "src/core/lib/transport/transport.h", "src/core/lib/transport/transport_impl.h", + "third_party/objective_c/Cronet/cronet_c_for_grpc.h", "src/core/ext/transport/chttp2/transport/bin_decoder.h", "src/core/ext/transport/chttp2/transport/bin_encoder.h", "src/core/ext/transport/chttp2/transport/chttp2_transport.h", @@ -1099,22 +1172,31 @@ cc_library( "src/core/ext/client_config/subchannel_call_holder.h", "src/core/ext/client_config/subchannel_index.h", "src/core/ext/client_config/uri_parser.h", - "src/core/ext/load_reporting/load_reporting.h", - "src/core/ext/load_reporting/load_reporting_filter.h", - "src/core/ext/lb_policy/grpclb/grpclb.h", - "src/core/ext/lb_policy/grpclb/load_balancer_api.h", - "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h", - "src/core/ext/census/aggregation.h", - "src/core/ext/census/base_resources.h", - "src/core/ext/census/census_interface.h", - "src/core/ext/census/census_rpc_stats.h", - "src/core/ext/census/gen/census.pb.h", - "src/core/ext/census/grpc_filter.h", - "src/core/ext/census/mlog.h", - "src/core/ext/census/resource.h", - "src/core/ext/census/rpc_metric_id.h", + "src/core/lib/security/context/security_context.h", + "src/core/lib/security/credentials/composite/composite_credentials.h", + "src/core/lib/security/credentials/credentials.h", + "src/core/lib/security/credentials/fake/fake_credentials.h", + "src/core/lib/security/credentials/google_default/google_default_credentials.h", + "src/core/lib/security/credentials/iam/iam_credentials.h", + "src/core/lib/security/credentials/jwt/json_token.h", + "src/core/lib/security/credentials/jwt/jwt_credentials.h", + "src/core/lib/security/credentials/jwt/jwt_verifier.h", + "src/core/lib/security/credentials/oauth2/oauth2_credentials.h", + "src/core/lib/security/credentials/plugin/plugin_credentials.h", + "src/core/lib/security/credentials/ssl/ssl_credentials.h", + "src/core/lib/security/transport/auth_filters.h", + "src/core/lib/security/transport/handshake.h", + "src/core/lib/security/transport/secure_endpoint.h", + "src/core/lib/security/transport/security_connector.h", + "src/core/lib/security/transport/tsi_error.h", + "src/core/lib/security/util/b64.h", + "src/core/lib/security/util/json_util.h", + "src/core/lib/tsi/fake_transport_security.h", + "src/core/lib/tsi/ssl_transport_security.h", + "src/core/lib/tsi/ssl_types.h", + "src/core/lib/tsi/transport_security.h", + "src/core/lib/tsi/transport_security_interface.h", "src/core/lib/surface/init.c", - "src/core/lib/surface/init_unsecure.c", "src/core/lib/channel/channel_args.c", "src/core/lib/channel/channel_stack.c", "src/core/lib/channel/channel_stack_builder.c", @@ -1204,8 +1286,10 @@ cc_library( "src/core/lib/transport/timeout_encoding.c", "src/core/lib/transport/transport.c", "src/core/lib/transport/transport_op_string.c", - "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c", - "src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c", + "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c", + "src/core/ext/transport/cronet/transport/cronet_api_dummy.c", + "src/core/ext/transport/cronet/transport/cronet_transport.c", + "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c", "src/core/ext/transport/chttp2/transport/bin_decoder.c", "src/core/ext/transport/chttp2/transport/bin_encoder.c", "src/core/ext/transport/chttp2/transport/chttp2_plugin.c", @@ -1228,8 +1312,6 @@ cc_library( "src/core/ext/transport/chttp2/transport/varint.c", "src/core/ext/transport/chttp2/transport/writing.c", "src/core/ext/transport/chttp2/alpn/alpn.c", - "src/core/ext/transport/chttp2/client/insecure/channel_create.c", - "src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c", "src/core/ext/client_config/channel_connectivity.c", "src/core/ext/client_config/client_channel.c", "src/core/ext/client_config/client_channel_factory.c", @@ -1249,275 +1331,43 @@ cc_library( "src/core/ext/client_config/subchannel_call_holder.c", "src/core/ext/client_config/subchannel_index.c", "src/core/ext/client_config/uri_parser.c", - "src/core/ext/resolver/dns/native/dns_resolver.c", - "src/core/ext/resolver/sockaddr/sockaddr_resolver.c", - "src/core/ext/load_reporting/load_reporting.c", - "src/core/ext/load_reporting/load_reporting_filter.c", - "src/core/ext/lb_policy/grpclb/grpclb.c", - "src/core/ext/lb_policy/grpclb/load_balancer_api.c", - "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c", - "src/core/ext/lb_policy/pick_first/pick_first.c", - "src/core/ext/lb_policy/round_robin/round_robin.c", - "src/core/ext/census/base_resources.c", - "src/core/ext/census/context.c", - "src/core/ext/census/gen/census.pb.c", - "src/core/ext/census/grpc_context.c", - "src/core/ext/census/grpc_filter.c", - "src/core/ext/census/grpc_plugin.c", - "src/core/ext/census/initialize.c", - "src/core/ext/census/mlog.c", - "src/core/ext/census/operation.c", - "src/core/ext/census/placeholders.c", - "src/core/ext/census/resource.c", - "src/core/ext/census/tracing.c", - "src/core/plugin_registry/grpc_unsecure_plugin_registry.c", - ], - hdrs = [ - "include/grpc/byte_buffer.h", - "include/grpc/byte_buffer_reader.h", - "include/grpc/compression.h", - "include/grpc/grpc.h", - "include/grpc/grpc_posix.h", - "include/grpc/status.h", - "include/grpc/impl/codegen/byte_buffer.h", - "include/grpc/impl/codegen/byte_buffer_reader.h", - "include/grpc/impl/codegen/compression_types.h", - "include/grpc/impl/codegen/connectivity_state.h", - "include/grpc/impl/codegen/grpc_types.h", - "include/grpc/impl/codegen/propagation_bits.h", - "include/grpc/impl/codegen/status.h", - "include/grpc/impl/codegen/alloc.h", - "include/grpc/impl/codegen/atm.h", - "include/grpc/impl/codegen/atm_gcc_atomic.h", - "include/grpc/impl/codegen/atm_gcc_sync.h", - "include/grpc/impl/codegen/atm_windows.h", - "include/grpc/impl/codegen/log.h", - "include/grpc/impl/codegen/port_platform.h", - "include/grpc/impl/codegen/slice.h", - "include/grpc/impl/codegen/slice_buffer.h", - "include/grpc/impl/codegen/sync.h", - "include/grpc/impl/codegen/sync_generic.h", - "include/grpc/impl/codegen/sync_posix.h", - "include/grpc/impl/codegen/sync_windows.h", - "include/grpc/impl/codegen/time.h", - "include/grpc/census.h", - ], - includes = [ - "include", - ".", - ], - deps = [ - ":gpr", - "//external:nanopb", - ], - copts = [ - "-std=gnu99", - ], -) - - - -cc_library( - name = "grpc++", - srcs = [ - "include/grpc++/impl/codegen/core_codegen.h", - "src/cpp/client/secure_credentials.h", - "src/cpp/common/secure_auth_context.h", - "src/cpp/server/secure_server_credentials.h", - "src/cpp/client/create_channel_internal.h", - "src/cpp/server/dynamic_thread_pool.h", - "src/cpp/server/thread_pool_interface.h", - "src/cpp/client/secure_credentials.cc", - "src/cpp/common/auth_property_iterator.cc", - "src/cpp/common/secure_auth_context.cc", - "src/cpp/common/secure_channel_arguments.cc", - "src/cpp/common/secure_create_auth_context.cc", - "src/cpp/server/secure_server_credentials.cc", - "src/cpp/client/channel.cc", - "src/cpp/client/client_context.cc", - "src/cpp/client/create_channel.cc", - "src/cpp/client/create_channel_internal.cc", - "src/cpp/client/create_channel_posix.cc", - "src/cpp/client/credentials.cc", - "src/cpp/client/generic_stub.cc", - "src/cpp/client/insecure_credentials.cc", - "src/cpp/common/channel_arguments.cc", - "src/cpp/common/completion_queue.cc", - "src/cpp/common/core_codegen.cc", - "src/cpp/common/rpc_method.cc", - "src/cpp/server/async_generic_service.cc", - "src/cpp/server/create_default_thread_pool.cc", - "src/cpp/server/dynamic_thread_pool.cc", - "src/cpp/server/insecure_server_credentials.cc", - "src/cpp/server/server.cc", - "src/cpp/server/server_builder.cc", - "src/cpp/server/server_context.cc", - "src/cpp/server/server_credentials.cc", - "src/cpp/server/server_posix.cc", - "src/cpp/util/byte_buffer.cc", - "src/cpp/util/slice.cc", - "src/cpp/util/status.cc", - "src/cpp/util/string_ref.cc", - "src/cpp/util/time.cc", - "src/cpp/codegen/codegen_init.cc", - ], - hdrs = [ - "include/grpc++/alarm.h", - "include/grpc++/channel.h", - "include/grpc++/client_context.h", - "include/grpc++/completion_queue.h", - "include/grpc++/create_channel.h", - "include/grpc++/create_channel_posix.h", - "include/grpc++/generic/async_generic_service.h", - "include/grpc++/generic/generic_stub.h", - "include/grpc++/grpc++.h", - "include/grpc++/impl/call.h", - "include/grpc++/impl/client_unary_call.h", - "include/grpc++/impl/codegen/core_codegen.h", - "include/grpc++/impl/grpc_library.h", - "include/grpc++/impl/method_handler_impl.h", - "include/grpc++/impl/rpc_method.h", - "include/grpc++/impl/rpc_service_method.h", - "include/grpc++/impl/serialization_traits.h", - "include/grpc++/impl/server_builder_option.h", - "include/grpc++/impl/server_builder_plugin.h", - "include/grpc++/impl/server_initializer.h", - "include/grpc++/impl/service_type.h", - "include/grpc++/impl/sync.h", - "include/grpc++/impl/sync_cxx11.h", - "include/grpc++/impl/sync_no_cxx11.h", - "include/grpc++/impl/thd.h", - "include/grpc++/impl/thd_cxx11.h", - "include/grpc++/impl/thd_no_cxx11.h", - "include/grpc++/security/auth_context.h", - "include/grpc++/security/auth_metadata_processor.h", - "include/grpc++/security/credentials.h", - "include/grpc++/security/server_credentials.h", - "include/grpc++/server.h", - "include/grpc++/server_builder.h", - "include/grpc++/server_context.h", - "include/grpc++/server_posix.h", - "include/grpc++/support/async_stream.h", - "include/grpc++/support/async_unary_call.h", - "include/grpc++/support/byte_buffer.h", - "include/grpc++/support/channel_arguments.h", - "include/grpc++/support/config.h", - "include/grpc++/support/slice.h", - "include/grpc++/support/status.h", - "include/grpc++/support/status_code_enum.h", - "include/grpc++/support/string_ref.h", - "include/grpc++/support/stub_options.h", - "include/grpc++/support/sync_stream.h", - "include/grpc++/support/time.h", - "include/grpc++/impl/codegen/async_stream.h", - "include/grpc++/impl/codegen/async_unary_call.h", - "include/grpc++/impl/codegen/call.h", - "include/grpc++/impl/codegen/call_hook.h", - "include/grpc++/impl/codegen/channel_interface.h", - "include/grpc++/impl/codegen/client_context.h", - "include/grpc++/impl/codegen/client_unary_call.h", - "include/grpc++/impl/codegen/completion_queue.h", - "include/grpc++/impl/codegen/completion_queue_tag.h", - "include/grpc++/impl/codegen/config.h", - "include/grpc++/impl/codegen/core_codegen_interface.h", - "include/grpc++/impl/codegen/create_auth_context.h", - "include/grpc++/impl/codegen/grpc_library.h", - "include/grpc++/impl/codegen/method_handler_impl.h", - "include/grpc++/impl/codegen/rpc_method.h", - "include/grpc++/impl/codegen/rpc_service_method.h", - "include/grpc++/impl/codegen/security/auth_context.h", - "include/grpc++/impl/codegen/serialization_traits.h", - "include/grpc++/impl/codegen/server_context.h", - "include/grpc++/impl/codegen/server_interface.h", - "include/grpc++/impl/codegen/service_type.h", - "include/grpc++/impl/codegen/status.h", - "include/grpc++/impl/codegen/status_code_enum.h", - "include/grpc++/impl/codegen/string_ref.h", - "include/grpc++/impl/codegen/stub_options.h", - "include/grpc++/impl/codegen/sync.h", - "include/grpc++/impl/codegen/sync_cxx11.h", - "include/grpc++/impl/codegen/sync_no_cxx11.h", - "include/grpc++/impl/codegen/sync_stream.h", - "include/grpc++/impl/codegen/time.h", - "include/grpc/impl/codegen/byte_buffer.h", - "include/grpc/impl/codegen/byte_buffer_reader.h", - "include/grpc/impl/codegen/compression_types.h", - "include/grpc/impl/codegen/connectivity_state.h", - "include/grpc/impl/codegen/grpc_types.h", - "include/grpc/impl/codegen/propagation_bits.h", - "include/grpc/impl/codegen/status.h", - "include/grpc/impl/codegen/alloc.h", - "include/grpc/impl/codegen/atm.h", - "include/grpc/impl/codegen/atm_gcc_atomic.h", - "include/grpc/impl/codegen/atm_gcc_sync.h", - "include/grpc/impl/codegen/atm_windows.h", - "include/grpc/impl/codegen/log.h", - "include/grpc/impl/codegen/port_platform.h", - "include/grpc/impl/codegen/slice.h", - "include/grpc/impl/codegen/slice_buffer.h", - "include/grpc/impl/codegen/sync.h", - "include/grpc/impl/codegen/sync_generic.h", - "include/grpc/impl/codegen/sync_posix.h", - "include/grpc/impl/codegen/sync_windows.h", - "include/grpc/impl/codegen/time.h", - ], - includes = [ - "include", - ".", - ], - deps = [ - "//external:libssl", - "//external:protobuf_clib", - ":grpc", - ], -) - - - -cc_library( - name = "grpc++_reflection", - srcs = [ - "src/cpp/ext/proto_server_reflection.h", - "src/cpp/ext/proto_server_reflection.cc", - "src/cpp/ext/proto_server_reflection_plugin.cc", - "src/cpp/ext/reflection.grpc.pb.cc", - "src/cpp/ext/reflection.pb.cc", + "src/core/lib/http/httpcli_security_connector.c", + "src/core/lib/security/context/security_context.c", + "src/core/lib/security/credentials/composite/composite_credentials.c", + "src/core/lib/security/credentials/credentials.c", + "src/core/lib/security/credentials/credentials_metadata.c", + "src/core/lib/security/credentials/fake/fake_credentials.c", + "src/core/lib/security/credentials/google_default/credentials_posix.c", + "src/core/lib/security/credentials/google_default/credentials_windows.c", + "src/core/lib/security/credentials/google_default/google_default_credentials.c", + "src/core/lib/security/credentials/iam/iam_credentials.c", + "src/core/lib/security/credentials/jwt/json_token.c", + "src/core/lib/security/credentials/jwt/jwt_credentials.c", + "src/core/lib/security/credentials/jwt/jwt_verifier.c", + "src/core/lib/security/credentials/oauth2/oauth2_credentials.c", + "src/core/lib/security/credentials/plugin/plugin_credentials.c", + "src/core/lib/security/credentials/ssl/ssl_credentials.c", + "src/core/lib/security/transport/client_auth_filter.c", + "src/core/lib/security/transport/handshake.c", + "src/core/lib/security/transport/secure_endpoint.c", + "src/core/lib/security/transport/security_connector.c", + "src/core/lib/security/transport/server_auth_filter.c", + "src/core/lib/security/transport/tsi_error.c", + "src/core/lib/security/util/b64.c", + "src/core/lib/security/util/json_util.c", + "src/core/lib/surface/init_secure.c", + "src/core/lib/tsi/fake_transport_security.c", + "src/core/lib/tsi/ssl_transport_security.c", + "src/core/lib/tsi/transport_security.c", + "src/core/plugin_registry/grpc_cronet_plugin_registry.c", ], hdrs = [ - "include/grpc++/ext/proto_server_reflection_plugin.h", - "include/grpc++/ext/reflection.grpc.pb.h", - "include/grpc++/ext/reflection.pb.h", - "include/grpc++/impl/codegen/proto_utils.h", - "include/grpc++/impl/codegen/async_stream.h", - "include/grpc++/impl/codegen/async_unary_call.h", - "include/grpc++/impl/codegen/call.h", - "include/grpc++/impl/codegen/call_hook.h", - "include/grpc++/impl/codegen/channel_interface.h", - "include/grpc++/impl/codegen/client_context.h", - "include/grpc++/impl/codegen/client_unary_call.h", - "include/grpc++/impl/codegen/completion_queue.h", - "include/grpc++/impl/codegen/completion_queue_tag.h", - "include/grpc++/impl/codegen/config.h", - "include/grpc++/impl/codegen/core_codegen_interface.h", - "include/grpc++/impl/codegen/create_auth_context.h", - "include/grpc++/impl/codegen/grpc_library.h", - "include/grpc++/impl/codegen/method_handler_impl.h", - "include/grpc++/impl/codegen/rpc_method.h", - "include/grpc++/impl/codegen/rpc_service_method.h", - "include/grpc++/impl/codegen/security/auth_context.h", - "include/grpc++/impl/codegen/serialization_traits.h", - "include/grpc++/impl/codegen/server_context.h", - "include/grpc++/impl/codegen/server_interface.h", - "include/grpc++/impl/codegen/service_type.h", - "include/grpc++/impl/codegen/status.h", - "include/grpc++/impl/codegen/status_code_enum.h", - "include/grpc++/impl/codegen/string_ref.h", - "include/grpc++/impl/codegen/stub_options.h", - "include/grpc++/impl/codegen/sync.h", - "include/grpc++/impl/codegen/sync_cxx11.h", - "include/grpc++/impl/codegen/sync_no_cxx11.h", - "include/grpc++/impl/codegen/sync_stream.h", - "include/grpc++/impl/codegen/time.h", + "include/grpc/byte_buffer.h", + "include/grpc/byte_buffer_reader.h", + "include/grpc/compression.h", + "include/grpc/grpc.h", + "include/grpc/grpc_posix.h", + "include/grpc/status.h", "include/grpc/impl/codegen/byte_buffer.h", "include/grpc/impl/codegen/byte_buffer_reader.h", "include/grpc/impl/codegen/compression_types.h", @@ -1539,132 +1389,322 @@ cc_library( "include/grpc/impl/codegen/sync_posix.h", "include/grpc/impl/codegen/sync_windows.h", "include/grpc/impl/codegen/time.h", - "include/grpc++/impl/codegen/config_protobuf.h", + "include/grpc/grpc_cronet.h", + "include/grpc/grpc_security.h", + "include/grpc/grpc_security_constants.h", ], includes = [ "include", ".", ], deps = [ - ":grpc++", + "//external:libssl", + ":gpr", ], ) cc_library( - name = "grpc++_unsecure", + name = "grpc_unsecure", srcs = [ - "src/cpp/client/create_channel_internal.h", - "src/cpp/server/dynamic_thread_pool.h", - "src/cpp/server/thread_pool_interface.h", - "src/cpp/common/insecure_create_auth_context.cc", - "src/cpp/client/channel.cc", - "src/cpp/client/client_context.cc", - "src/cpp/client/create_channel.cc", - "src/cpp/client/create_channel_internal.cc", - "src/cpp/client/create_channel_posix.cc", - "src/cpp/client/credentials.cc", - "src/cpp/client/generic_stub.cc", - "src/cpp/client/insecure_credentials.cc", - "src/cpp/common/channel_arguments.cc", - "src/cpp/common/completion_queue.cc", - "src/cpp/common/core_codegen.cc", - "src/cpp/common/rpc_method.cc", - "src/cpp/server/async_generic_service.cc", - "src/cpp/server/create_default_thread_pool.cc", - "src/cpp/server/dynamic_thread_pool.cc", - "src/cpp/server/insecure_server_credentials.cc", - "src/cpp/server/server.cc", - "src/cpp/server/server_builder.cc", - "src/cpp/server/server_context.cc", - "src/cpp/server/server_credentials.cc", - "src/cpp/server/server_posix.cc", - "src/cpp/util/byte_buffer.cc", - "src/cpp/util/slice.cc", - "src/cpp/util/status.cc", - "src/cpp/util/string_ref.cc", - "src/cpp/util/time.cc", - "src/cpp/codegen/codegen_init.cc", + "src/core/lib/channel/channel_args.h", + "src/core/lib/channel/channel_stack.h", + "src/core/lib/channel/channel_stack_builder.h", + "src/core/lib/channel/compress_filter.h", + "src/core/lib/channel/connected_channel.h", + "src/core/lib/channel/context.h", + "src/core/lib/channel/handshaker.h", + "src/core/lib/channel/http_client_filter.h", + "src/core/lib/channel/http_server_filter.h", + "src/core/lib/compression/algorithm_metadata.h", + "src/core/lib/compression/message_compress.h", + "src/core/lib/debug/trace.h", + "src/core/lib/http/format_request.h", + "src/core/lib/http/httpcli.h", + "src/core/lib/http/parser.h", + "src/core/lib/iomgr/closure.h", + "src/core/lib/iomgr/endpoint.h", + "src/core/lib/iomgr/endpoint_pair.h", + "src/core/lib/iomgr/error.h", + "src/core/lib/iomgr/ev_epoll_linux.h", + "src/core/lib/iomgr/ev_poll_and_epoll_posix.h", + "src/core/lib/iomgr/ev_poll_posix.h", + "src/core/lib/iomgr/ev_posix.h", + "src/core/lib/iomgr/exec_ctx.h", + "src/core/lib/iomgr/executor.h", + "src/core/lib/iomgr/iocp_windows.h", + "src/core/lib/iomgr/iomgr.h", + "src/core/lib/iomgr/iomgr_internal.h", + "src/core/lib/iomgr/iomgr_posix.h", + "src/core/lib/iomgr/load_file.h", + "src/core/lib/iomgr/network_status_tracker.h", + "src/core/lib/iomgr/polling_entity.h", + "src/core/lib/iomgr/pollset.h", + "src/core/lib/iomgr/pollset_set.h", + "src/core/lib/iomgr/pollset_set_windows.h", + "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/resolve_address.h", + "src/core/lib/iomgr/sockaddr.h", + "src/core/lib/iomgr/sockaddr_posix.h", + "src/core/lib/iomgr/sockaddr_utils.h", + "src/core/lib/iomgr/sockaddr_windows.h", + "src/core/lib/iomgr/socket_utils_posix.h", + "src/core/lib/iomgr/socket_windows.h", + "src/core/lib/iomgr/tcp_client.h", + "src/core/lib/iomgr/tcp_posix.h", + "src/core/lib/iomgr/tcp_server.h", + "src/core/lib/iomgr/tcp_windows.h", + "src/core/lib/iomgr/time_averaged_stats.h", + "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/udp_server.h", + "src/core/lib/iomgr/unix_sockets_posix.h", + "src/core/lib/iomgr/wakeup_fd_pipe.h", + "src/core/lib/iomgr/wakeup_fd_posix.h", + "src/core/lib/iomgr/workqueue.h", + "src/core/lib/iomgr/workqueue_posix.h", + "src/core/lib/iomgr/workqueue_windows.h", + "src/core/lib/json/json.h", + "src/core/lib/json/json_common.h", + "src/core/lib/json/json_reader.h", + "src/core/lib/json/json_writer.h", + "src/core/lib/surface/api_trace.h", + "src/core/lib/surface/call.h", + "src/core/lib/surface/call_test_only.h", + "src/core/lib/surface/channel.h", + "src/core/lib/surface/channel_init.h", + "src/core/lib/surface/channel_stack_type.h", + "src/core/lib/surface/completion_queue.h", + "src/core/lib/surface/event_string.h", + "src/core/lib/surface/init.h", + "src/core/lib/surface/lame_client.h", + "src/core/lib/surface/server.h", + "src/core/lib/transport/byte_stream.h", + "src/core/lib/transport/connectivity_state.h", + "src/core/lib/transport/metadata.h", + "src/core/lib/transport/metadata_batch.h", + "src/core/lib/transport/static_metadata.h", + "src/core/lib/transport/timeout_encoding.h", + "src/core/lib/transport/transport.h", + "src/core/lib/transport/transport_impl.h", + "src/core/ext/transport/chttp2/transport/bin_decoder.h", + "src/core/ext/transport/chttp2/transport/bin_encoder.h", + "src/core/ext/transport/chttp2/transport/chttp2_transport.h", + "src/core/ext/transport/chttp2/transport/frame.h", + "src/core/ext/transport/chttp2/transport/frame_data.h", + "src/core/ext/transport/chttp2/transport/frame_goaway.h", + "src/core/ext/transport/chttp2/transport/frame_ping.h", + "src/core/ext/transport/chttp2/transport/frame_rst_stream.h", + "src/core/ext/transport/chttp2/transport/frame_settings.h", + "src/core/ext/transport/chttp2/transport/frame_window_update.h", + "src/core/ext/transport/chttp2/transport/hpack_encoder.h", + "src/core/ext/transport/chttp2/transport/hpack_parser.h", + "src/core/ext/transport/chttp2/transport/hpack_table.h", + "src/core/ext/transport/chttp2/transport/http2_errors.h", + "src/core/ext/transport/chttp2/transport/huffsyms.h", + "src/core/ext/transport/chttp2/transport/incoming_metadata.h", + "src/core/ext/transport/chttp2/transport/internal.h", + "src/core/ext/transport/chttp2/transport/status_conversion.h", + "src/core/ext/transport/chttp2/transport/stream_map.h", + "src/core/ext/transport/chttp2/transport/varint.h", + "src/core/ext/transport/chttp2/alpn/alpn.h", + "src/core/ext/client_config/client_channel.h", + "src/core/ext/client_config/client_channel_factory.h", + "src/core/ext/client_config/client_config.h", + "src/core/ext/client_config/connector.h", + "src/core/ext/client_config/initial_connect_string.h", + "src/core/ext/client_config/lb_policy.h", + "src/core/ext/client_config/lb_policy_factory.h", + "src/core/ext/client_config/lb_policy_registry.h", + "src/core/ext/client_config/parse_address.h", + "src/core/ext/client_config/resolver.h", + "src/core/ext/client_config/resolver_factory.h", + "src/core/ext/client_config/resolver_registry.h", + "src/core/ext/client_config/subchannel.h", + "src/core/ext/client_config/subchannel_call_holder.h", + "src/core/ext/client_config/subchannel_index.h", + "src/core/ext/client_config/uri_parser.h", + "src/core/ext/load_reporting/load_reporting.h", + "src/core/ext/load_reporting/load_reporting_filter.h", + "src/core/ext/lb_policy/grpclb/grpclb.h", + "src/core/ext/lb_policy/grpclb/load_balancer_api.h", + "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h", + "src/core/ext/census/aggregation.h", + "src/core/ext/census/base_resources.h", + "src/core/ext/census/census_interface.h", + "src/core/ext/census/census_rpc_stats.h", + "src/core/ext/census/gen/census.pb.h", + "src/core/ext/census/grpc_filter.h", + "src/core/ext/census/mlog.h", + "src/core/ext/census/resource.h", + "src/core/ext/census/rpc_metric_id.h", + "src/core/lib/surface/init.c", + "src/core/lib/surface/init_unsecure.c", + "src/core/lib/channel/channel_args.c", + "src/core/lib/channel/channel_stack.c", + "src/core/lib/channel/channel_stack_builder.c", + "src/core/lib/channel/compress_filter.c", + "src/core/lib/channel/connected_channel.c", + "src/core/lib/channel/handshaker.c", + "src/core/lib/channel/http_client_filter.c", + "src/core/lib/channel/http_server_filter.c", + "src/core/lib/compression/compression.c", + "src/core/lib/compression/message_compress.c", + "src/core/lib/debug/trace.c", + "src/core/lib/http/format_request.c", + "src/core/lib/http/httpcli.c", + "src/core/lib/http/parser.c", + "src/core/lib/iomgr/closure.c", + "src/core/lib/iomgr/endpoint.c", + "src/core/lib/iomgr/endpoint_pair_posix.c", + "src/core/lib/iomgr/endpoint_pair_windows.c", + "src/core/lib/iomgr/error.c", + "src/core/lib/iomgr/ev_epoll_linux.c", + "src/core/lib/iomgr/ev_poll_and_epoll_posix.c", + "src/core/lib/iomgr/ev_poll_posix.c", + "src/core/lib/iomgr/ev_posix.c", + "src/core/lib/iomgr/exec_ctx.c", + "src/core/lib/iomgr/executor.c", + "src/core/lib/iomgr/iocp_windows.c", + "src/core/lib/iomgr/iomgr.c", + "src/core/lib/iomgr/iomgr_posix.c", + "src/core/lib/iomgr/iomgr_windows.c", + "src/core/lib/iomgr/load_file.c", + "src/core/lib/iomgr/network_status_tracker.c", + "src/core/lib/iomgr/polling_entity.c", + "src/core/lib/iomgr/pollset_set_windows.c", + "src/core/lib/iomgr/pollset_windows.c", + "src/core/lib/iomgr/resolve_address_posix.c", + "src/core/lib/iomgr/resolve_address_windows.c", + "src/core/lib/iomgr/sockaddr_utils.c", + "src/core/lib/iomgr/socket_utils_common_posix.c", + "src/core/lib/iomgr/socket_utils_linux.c", + "src/core/lib/iomgr/socket_utils_posix.c", + "src/core/lib/iomgr/socket_windows.c", + "src/core/lib/iomgr/tcp_client_posix.c", + "src/core/lib/iomgr/tcp_client_windows.c", + "src/core/lib/iomgr/tcp_posix.c", + "src/core/lib/iomgr/tcp_server_posix.c", + "src/core/lib/iomgr/tcp_server_windows.c", + "src/core/lib/iomgr/tcp_windows.c", + "src/core/lib/iomgr/time_averaged_stats.c", + "src/core/lib/iomgr/timer.c", + "src/core/lib/iomgr/timer_heap.c", + "src/core/lib/iomgr/udp_server.c", + "src/core/lib/iomgr/unix_sockets_posix.c", + "src/core/lib/iomgr/unix_sockets_posix_noop.c", + "src/core/lib/iomgr/wakeup_fd_eventfd.c", + "src/core/lib/iomgr/wakeup_fd_nospecial.c", + "src/core/lib/iomgr/wakeup_fd_pipe.c", + "src/core/lib/iomgr/wakeup_fd_posix.c", + "src/core/lib/iomgr/workqueue_posix.c", + "src/core/lib/iomgr/workqueue_windows.c", + "src/core/lib/json/json.c", + "src/core/lib/json/json_reader.c", + "src/core/lib/json/json_string.c", + "src/core/lib/json/json_writer.c", + "src/core/lib/surface/alarm.c", + "src/core/lib/surface/api_trace.c", + "src/core/lib/surface/byte_buffer.c", + "src/core/lib/surface/byte_buffer_reader.c", + "src/core/lib/surface/call.c", + "src/core/lib/surface/call_details.c", + "src/core/lib/surface/call_log_batch.c", + "src/core/lib/surface/channel.c", + "src/core/lib/surface/channel_init.c", + "src/core/lib/surface/channel_ping.c", + "src/core/lib/surface/channel_stack_type.c", + "src/core/lib/surface/completion_queue.c", + "src/core/lib/surface/event_string.c", + "src/core/lib/surface/lame_client.c", + "src/core/lib/surface/metadata_array.c", + "src/core/lib/surface/server.c", + "src/core/lib/surface/validate_metadata.c", + "src/core/lib/surface/version.c", + "src/core/lib/transport/byte_stream.c", + "src/core/lib/transport/connectivity_state.c", + "src/core/lib/transport/metadata.c", + "src/core/lib/transport/metadata_batch.c", + "src/core/lib/transport/static_metadata.c", + "src/core/lib/transport/timeout_encoding.c", + "src/core/lib/transport/transport.c", + "src/core/lib/transport/transport_op_string.c", + "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c", + "src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c", + "src/core/ext/transport/chttp2/transport/bin_decoder.c", + "src/core/ext/transport/chttp2/transport/bin_encoder.c", + "src/core/ext/transport/chttp2/transport/chttp2_plugin.c", + "src/core/ext/transport/chttp2/transport/chttp2_transport.c", + "src/core/ext/transport/chttp2/transport/frame_data.c", + "src/core/ext/transport/chttp2/transport/frame_goaway.c", + "src/core/ext/transport/chttp2/transport/frame_ping.c", + "src/core/ext/transport/chttp2/transport/frame_rst_stream.c", + "src/core/ext/transport/chttp2/transport/frame_settings.c", + "src/core/ext/transport/chttp2/transport/frame_window_update.c", + "src/core/ext/transport/chttp2/transport/hpack_encoder.c", + "src/core/ext/transport/chttp2/transport/hpack_parser.c", + "src/core/ext/transport/chttp2/transport/hpack_table.c", + "src/core/ext/transport/chttp2/transport/huffsyms.c", + "src/core/ext/transport/chttp2/transport/incoming_metadata.c", + "src/core/ext/transport/chttp2/transport/parsing.c", + "src/core/ext/transport/chttp2/transport/status_conversion.c", + "src/core/ext/transport/chttp2/transport/stream_lists.c", + "src/core/ext/transport/chttp2/transport/stream_map.c", + "src/core/ext/transport/chttp2/transport/varint.c", + "src/core/ext/transport/chttp2/transport/writing.c", + "src/core/ext/transport/chttp2/alpn/alpn.c", + "src/core/ext/transport/chttp2/client/insecure/channel_create.c", + "src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c", + "src/core/ext/client_config/channel_connectivity.c", + "src/core/ext/client_config/client_channel.c", + "src/core/ext/client_config/client_channel_factory.c", + "src/core/ext/client_config/client_config.c", + "src/core/ext/client_config/client_config_plugin.c", + "src/core/ext/client_config/connector.c", + "src/core/ext/client_config/default_initial_connect_string.c", + "src/core/ext/client_config/initial_connect_string.c", + "src/core/ext/client_config/lb_policy.c", + "src/core/ext/client_config/lb_policy_factory.c", + "src/core/ext/client_config/lb_policy_registry.c", + "src/core/ext/client_config/parse_address.c", + "src/core/ext/client_config/resolver.c", + "src/core/ext/client_config/resolver_factory.c", + "src/core/ext/client_config/resolver_registry.c", + "src/core/ext/client_config/subchannel.c", + "src/core/ext/client_config/subchannel_call_holder.c", + "src/core/ext/client_config/subchannel_index.c", + "src/core/ext/client_config/uri_parser.c", + "src/core/ext/resolver/dns/native/dns_resolver.c", + "src/core/ext/resolver/sockaddr/sockaddr_resolver.c", + "src/core/ext/load_reporting/load_reporting.c", + "src/core/ext/load_reporting/load_reporting_filter.c", + "src/core/ext/lb_policy/grpclb/grpclb.c", + "src/core/ext/lb_policy/grpclb/load_balancer_api.c", + "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c", + "src/core/ext/lb_policy/pick_first/pick_first.c", + "src/core/ext/lb_policy/round_robin/round_robin.c", + "src/core/ext/census/base_resources.c", + "src/core/ext/census/context.c", + "src/core/ext/census/gen/census.pb.c", + "src/core/ext/census/grpc_context.c", + "src/core/ext/census/grpc_filter.c", + "src/core/ext/census/grpc_plugin.c", + "src/core/ext/census/initialize.c", + "src/core/ext/census/mlog.c", + "src/core/ext/census/operation.c", + "src/core/ext/census/placeholders.c", + "src/core/ext/census/resource.c", + "src/core/ext/census/tracing.c", + "src/core/plugin_registry/grpc_unsecure_plugin_registry.c", ], hdrs = [ - "include/grpc++/alarm.h", - "include/grpc++/channel.h", - "include/grpc++/client_context.h", - "include/grpc++/completion_queue.h", - "include/grpc++/create_channel.h", - "include/grpc++/create_channel_posix.h", - "include/grpc++/generic/async_generic_service.h", - "include/grpc++/generic/generic_stub.h", - "include/grpc++/grpc++.h", - "include/grpc++/impl/call.h", - "include/grpc++/impl/client_unary_call.h", - "include/grpc++/impl/codegen/core_codegen.h", - "include/grpc++/impl/grpc_library.h", - "include/grpc++/impl/method_handler_impl.h", - "include/grpc++/impl/rpc_method.h", - "include/grpc++/impl/rpc_service_method.h", - "include/grpc++/impl/serialization_traits.h", - "include/grpc++/impl/server_builder_option.h", - "include/grpc++/impl/server_builder_plugin.h", - "include/grpc++/impl/server_initializer.h", - "include/grpc++/impl/service_type.h", - "include/grpc++/impl/sync.h", - "include/grpc++/impl/sync_cxx11.h", - "include/grpc++/impl/sync_no_cxx11.h", - "include/grpc++/impl/thd.h", - "include/grpc++/impl/thd_cxx11.h", - "include/grpc++/impl/thd_no_cxx11.h", - "include/grpc++/security/auth_context.h", - "include/grpc++/security/auth_metadata_processor.h", - "include/grpc++/security/credentials.h", - "include/grpc++/security/server_credentials.h", - "include/grpc++/server.h", - "include/grpc++/server_builder.h", - "include/grpc++/server_context.h", - "include/grpc++/server_posix.h", - "include/grpc++/support/async_stream.h", - "include/grpc++/support/async_unary_call.h", - "include/grpc++/support/byte_buffer.h", - "include/grpc++/support/channel_arguments.h", - "include/grpc++/support/config.h", - "include/grpc++/support/slice.h", - "include/grpc++/support/status.h", - "include/grpc++/support/status_code_enum.h", - "include/grpc++/support/string_ref.h", - "include/grpc++/support/stub_options.h", - "include/grpc++/support/sync_stream.h", - "include/grpc++/support/time.h", - "include/grpc++/impl/codegen/async_stream.h", - "include/grpc++/impl/codegen/async_unary_call.h", - "include/grpc++/impl/codegen/call.h", - "include/grpc++/impl/codegen/call_hook.h", - "include/grpc++/impl/codegen/channel_interface.h", - "include/grpc++/impl/codegen/client_context.h", - "include/grpc++/impl/codegen/client_unary_call.h", - "include/grpc++/impl/codegen/completion_queue.h", - "include/grpc++/impl/codegen/completion_queue_tag.h", - "include/grpc++/impl/codegen/config.h", - "include/grpc++/impl/codegen/core_codegen_interface.h", - "include/grpc++/impl/codegen/create_auth_context.h", - "include/grpc++/impl/codegen/grpc_library.h", - "include/grpc++/impl/codegen/method_handler_impl.h", - "include/grpc++/impl/codegen/rpc_method.h", - "include/grpc++/impl/codegen/rpc_service_method.h", - "include/grpc++/impl/codegen/security/auth_context.h", - "include/grpc++/impl/codegen/serialization_traits.h", - "include/grpc++/impl/codegen/server_context.h", - "include/grpc++/impl/codegen/server_interface.h", - "include/grpc++/impl/codegen/service_type.h", - "include/grpc++/impl/codegen/status.h", - "include/grpc++/impl/codegen/status_code_enum.h", - "include/grpc++/impl/codegen/string_ref.h", - "include/grpc++/impl/codegen/stub_options.h", - "include/grpc++/impl/codegen/sync.h", - "include/grpc++/impl/codegen/sync_cxx11.h", - "include/grpc++/impl/codegen/sync_no_cxx11.h", - "include/grpc++/impl/codegen/sync_stream.h", - "include/grpc++/impl/codegen/time.h", + "include/grpc/byte_buffer.h", + "include/grpc/byte_buffer_reader.h", + "include/grpc/compression.h", + "include/grpc/grpc.h", + "include/grpc/grpc_posix.h", + "include/grpc/status.h", "include/grpc/impl/codegen/byte_buffer.h", "include/grpc/impl/codegen/byte_buffer_reader.h", "include/grpc/impl/codegen/compression_types.h", @@ -1686,58 +1726,18 @@ cc_library( "include/grpc/impl/codegen/sync_posix.h", "include/grpc/impl/codegen/sync_windows.h", "include/grpc/impl/codegen/time.h", + "include/grpc/census.h", ], includes = [ "include", ".", ], deps = [ - "//external:protobuf_clib", ":gpr", - ":grpc_unsecure", - ":grpc", - ], -) - - - -cc_library( - name = "grpc_plugin_support", - srcs = [ - "src/compiler/c_generator.h", - "src/compiler/c_generator_helpers.h", - "src/compiler/config.h", - "src/compiler/cpp_generator.h", - "src/compiler/cpp_generator_helpers.h", - "src/compiler/csharp_generator.h", - "src/compiler/csharp_generator_helpers.h", - "src/compiler/generator_helpers.h", - "src/compiler/node_generator.h", - "src/compiler/node_generator_helpers.h", - "src/compiler/objective_c_generator.h", - "src/compiler/objective_c_generator_helpers.h", - "src/compiler/python_generator.h", - "src/compiler/ruby_generator.h", - "src/compiler/ruby_generator_helpers-inl.h", - "src/compiler/ruby_generator_map-inl.h", - "src/compiler/ruby_generator_string-inl.h", - "src/compiler/c_generator.cc", - "src/compiler/cpp_generator.cc", - "src/compiler/csharp_generator.cc", - "src/compiler/node_generator.cc", - "src/compiler/objective_c_generator.cc", - "src/compiler/python_generator.cc", - "src/compiler/ruby_generator.cc", - ], - hdrs = [ - "include/grpc++/impl/codegen/config_protobuf.h", - ], - includes = [ - "include", - ".", + "//external:nanopb", ], - deps = [ - "//external:protobuf_compiler", + copts = [ + "-std=gnu99", ], ) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6dd43839c8d18..17f02d48f4957 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -159,55 +159,28 @@ if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) endif() -add_library(gpr - src/core/lib/profiling/basic_timers.c - src/core/lib/profiling/stap_timers.c - src/core/lib/support/alloc.c - src/core/lib/support/avl.c - src/core/lib/support/backoff.c - src/core/lib/support/cmdline.c - src/core/lib/support/cpu_iphone.c - src/core/lib/support/cpu_linux.c - src/core/lib/support/cpu_posix.c - src/core/lib/support/cpu_windows.c - src/core/lib/support/env_linux.c - src/core/lib/support/env_posix.c - src/core/lib/support/env_windows.c - src/core/lib/support/histogram.c - src/core/lib/support/host_port.c - src/core/lib/support/log.c - src/core/lib/support/log_android.c - src/core/lib/support/log_linux.c - src/core/lib/support/log_posix.c - src/core/lib/support/log_windows.c - src/core/lib/support/murmur_hash.c - src/core/lib/support/slice.c - src/core/lib/support/slice_buffer.c - src/core/lib/support/stack_lockfree.c - src/core/lib/support/string.c - src/core/lib/support/string_posix.c - src/core/lib/support/string_util_windows.c - src/core/lib/support/string_windows.c - src/core/lib/support/subprocess_posix.c - src/core/lib/support/subprocess_windows.c - src/core/lib/support/sync.c - src/core/lib/support/sync_posix.c - src/core/lib/support/sync_windows.c - src/core/lib/support/thd.c - src/core/lib/support/thd_posix.c - src/core/lib/support/thd_windows.c - src/core/lib/support/time.c - src/core/lib/support/time_posix.c - src/core/lib/support/time_precise.c - src/core/lib/support/time_windows.c - src/core/lib/support/tls_pthread.c - src/core/lib/support/tmpfile_msys.c - src/core/lib/support/tmpfile_posix.c - src/core/lib/support/tmpfile_windows.c - src/core/lib/support/wrap_memcpy.c +add_library(grpc_c + src/c/alloc.c + src/c/array.c + src/c/bidi_streaming_blocking_call.c + src/c/call_ops.c + src/c/channel.c + src/c/client_context.c + src/c/client_streaming_blocking_call.c + src/c/completion_queue.c + src/c/context.c + src/c/init_shutdown.c + src/c/message.c + src/c/pb_compat.c + src/c/server.c + src/c/server_context.c + src/c/server_incoming_queue.c + src/c/server_streaming_blocking_call.c + src/c/unary_async_call.c + src/c/unary_blocking_call.c ) -target_include_directories(gpr +target_include_directories(grpc_c PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -216,50 +189,35 @@ target_include_directories(gpr PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) +target_link_libraries(grpc_c + ${_gRPC_BASELIB_LIBRARIES} + ${_gRPC_SSL_LIBRARIES} + ${_gRPC_PROTOBUF_LIBRARIES} + grpc + gpr +) foreach(_hdr - include/grpc/support/alloc.h - include/grpc/support/atm.h - include/grpc/support/atm_gcc_atomic.h - include/grpc/support/atm_gcc_sync.h - include/grpc/support/atm_windows.h - include/grpc/support/avl.h - include/grpc/support/cmdline.h - include/grpc/support/cpu.h - include/grpc/support/histogram.h - include/grpc/support/host_port.h - include/grpc/support/log.h - include/grpc/support/log_windows.h - include/grpc/support/port_platform.h - include/grpc/support/slice.h - include/grpc/support/slice_buffer.h - include/grpc/support/string_util.h - include/grpc/support/subprocess.h - include/grpc/support/sync.h - include/grpc/support/sync_generic.h - include/grpc/support/sync_posix.h - include/grpc/support/sync_windows.h - include/grpc/support/thd.h - include/grpc/support/time.h - include/grpc/support/tls.h - include/grpc/support/tls_gcc.h - include/grpc/support/tls_msvc.h - include/grpc/support/tls_pthread.h - include/grpc/support/useful.h - include/grpc/impl/codegen/alloc.h - include/grpc/impl/codegen/atm.h - include/grpc/impl/codegen/atm_gcc_atomic.h - include/grpc/impl/codegen/atm_gcc_sync.h - include/grpc/impl/codegen/atm_windows.h - include/grpc/impl/codegen/log.h - include/grpc/impl/codegen/port_platform.h - include/grpc/impl/codegen/slice.h - include/grpc/impl/codegen/slice_buffer.h - include/grpc/impl/codegen/sync.h - include/grpc/impl/codegen/sync_generic.h - include/grpc/impl/codegen/sync_posix.h - include/grpc/impl/codegen/sync_windows.h - include/grpc/impl/codegen/time.h + include/grpc_c/channel.h + include/grpc_c/client_context.h + include/grpc_c/codegen/bidi_streaming_blocking_call.h + include/grpc_c/codegen/client_streaming_blocking_call.h + include/grpc_c/codegen/context.h + include/grpc_c/codegen/message.h + include/grpc_c/codegen/method.h + include/grpc_c/codegen/pb_compat.h + include/grpc_c/codegen/serialization.h + include/grpc_c/codegen/server.h + include/grpc_c/codegen/server_streaming_blocking_call.h + include/grpc_c/codegen/unary_async_call.h + include/grpc_c/codegen/unary_blocking_call.h + include/grpc_c/completion_queue.h + include/grpc_c/declare_serializer.h + include/grpc_c/grpc_c.h + include/grpc_c/server.h + include/grpc_c/server_context.h + include/grpc_c/server_incoming_queue.h + include/grpc_c/status.h ) string(REPLACE "include/" "" _path ${_hdr}) get_filename_component(_path ${_path} PATH) @@ -269,207 +227,50 @@ foreach(_hdr endforeach() -install(TARGETS gpr EXPORT gRPCTargets +install(TARGETS grpc_c EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_library(grpc - src/core/lib/surface/init.c - src/core/lib/channel/channel_args.c - src/core/lib/channel/channel_stack.c - src/core/lib/channel/channel_stack_builder.c - src/core/lib/channel/compress_filter.c - src/core/lib/channel/connected_channel.c - src/core/lib/channel/handshaker.c - src/core/lib/channel/http_client_filter.c - src/core/lib/channel/http_server_filter.c - src/core/lib/compression/compression.c - src/core/lib/compression/message_compress.c - src/core/lib/debug/trace.c - src/core/lib/http/format_request.c - src/core/lib/http/httpcli.c - src/core/lib/http/parser.c - src/core/lib/iomgr/closure.c - src/core/lib/iomgr/endpoint.c - src/core/lib/iomgr/endpoint_pair_posix.c - src/core/lib/iomgr/endpoint_pair_windows.c - src/core/lib/iomgr/error.c - src/core/lib/iomgr/ev_epoll_linux.c - src/core/lib/iomgr/ev_poll_and_epoll_posix.c - src/core/lib/iomgr/ev_poll_posix.c - src/core/lib/iomgr/ev_posix.c - src/core/lib/iomgr/exec_ctx.c - src/core/lib/iomgr/executor.c - src/core/lib/iomgr/iocp_windows.c - src/core/lib/iomgr/iomgr.c - src/core/lib/iomgr/iomgr_posix.c - src/core/lib/iomgr/iomgr_windows.c - src/core/lib/iomgr/load_file.c - src/core/lib/iomgr/network_status_tracker.c - src/core/lib/iomgr/polling_entity.c - src/core/lib/iomgr/pollset_set_windows.c - src/core/lib/iomgr/pollset_windows.c - src/core/lib/iomgr/resolve_address_posix.c - src/core/lib/iomgr/resolve_address_windows.c - src/core/lib/iomgr/sockaddr_utils.c - src/core/lib/iomgr/socket_utils_common_posix.c - src/core/lib/iomgr/socket_utils_linux.c - src/core/lib/iomgr/socket_utils_posix.c - src/core/lib/iomgr/socket_windows.c - src/core/lib/iomgr/tcp_client_posix.c - src/core/lib/iomgr/tcp_client_windows.c - src/core/lib/iomgr/tcp_posix.c - src/core/lib/iomgr/tcp_server_posix.c - src/core/lib/iomgr/tcp_server_windows.c - src/core/lib/iomgr/tcp_windows.c - src/core/lib/iomgr/time_averaged_stats.c - src/core/lib/iomgr/timer.c - src/core/lib/iomgr/timer_heap.c - src/core/lib/iomgr/udp_server.c - src/core/lib/iomgr/unix_sockets_posix.c - src/core/lib/iomgr/unix_sockets_posix_noop.c - src/core/lib/iomgr/wakeup_fd_eventfd.c - src/core/lib/iomgr/wakeup_fd_nospecial.c - src/core/lib/iomgr/wakeup_fd_pipe.c - src/core/lib/iomgr/wakeup_fd_posix.c - src/core/lib/iomgr/workqueue_posix.c - src/core/lib/iomgr/workqueue_windows.c - src/core/lib/json/json.c - src/core/lib/json/json_reader.c - src/core/lib/json/json_string.c - src/core/lib/json/json_writer.c - src/core/lib/surface/alarm.c - src/core/lib/surface/api_trace.c - src/core/lib/surface/byte_buffer.c - src/core/lib/surface/byte_buffer_reader.c - src/core/lib/surface/call.c - src/core/lib/surface/call_details.c - src/core/lib/surface/call_log_batch.c - src/core/lib/surface/channel.c - src/core/lib/surface/channel_init.c - src/core/lib/surface/channel_ping.c - src/core/lib/surface/channel_stack_type.c - src/core/lib/surface/completion_queue.c - src/core/lib/surface/event_string.c - src/core/lib/surface/lame_client.c - src/core/lib/surface/metadata_array.c - src/core/lib/surface/server.c - src/core/lib/surface/validate_metadata.c - src/core/lib/surface/version.c - src/core/lib/transport/byte_stream.c - src/core/lib/transport/connectivity_state.c - src/core/lib/transport/metadata.c - src/core/lib/transport/metadata_batch.c - src/core/lib/transport/static_metadata.c - src/core/lib/transport/timeout_encoding.c - src/core/lib/transport/transport.c - src/core/lib/transport/transport_op_string.c - src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c - src/core/ext/transport/chttp2/transport/bin_decoder.c - src/core/ext/transport/chttp2/transport/bin_encoder.c - src/core/ext/transport/chttp2/transport/chttp2_plugin.c - src/core/ext/transport/chttp2/transport/chttp2_transport.c - src/core/ext/transport/chttp2/transport/frame_data.c - src/core/ext/transport/chttp2/transport/frame_goaway.c - src/core/ext/transport/chttp2/transport/frame_ping.c - src/core/ext/transport/chttp2/transport/frame_rst_stream.c - src/core/ext/transport/chttp2/transport/frame_settings.c - src/core/ext/transport/chttp2/transport/frame_window_update.c - src/core/ext/transport/chttp2/transport/hpack_encoder.c - src/core/ext/transport/chttp2/transport/hpack_parser.c - src/core/ext/transport/chttp2/transport/hpack_table.c - src/core/ext/transport/chttp2/transport/huffsyms.c - src/core/ext/transport/chttp2/transport/incoming_metadata.c - src/core/ext/transport/chttp2/transport/parsing.c - src/core/ext/transport/chttp2/transport/status_conversion.c - src/core/ext/transport/chttp2/transport/stream_lists.c - src/core/ext/transport/chttp2/transport/stream_map.c - src/core/ext/transport/chttp2/transport/varint.c - src/core/ext/transport/chttp2/transport/writing.c - src/core/ext/transport/chttp2/alpn/alpn.c - src/core/lib/http/httpcli_security_connector.c - src/core/lib/security/context/security_context.c - src/core/lib/security/credentials/composite/composite_credentials.c - src/core/lib/security/credentials/credentials.c - src/core/lib/security/credentials/credentials_metadata.c - src/core/lib/security/credentials/fake/fake_credentials.c - src/core/lib/security/credentials/google_default/credentials_posix.c - src/core/lib/security/credentials/google_default/credentials_windows.c - src/core/lib/security/credentials/google_default/google_default_credentials.c - src/core/lib/security/credentials/iam/iam_credentials.c - src/core/lib/security/credentials/jwt/json_token.c - src/core/lib/security/credentials/jwt/jwt_credentials.c - src/core/lib/security/credentials/jwt/jwt_verifier.c - src/core/lib/security/credentials/oauth2/oauth2_credentials.c - src/core/lib/security/credentials/plugin/plugin_credentials.c - src/core/lib/security/credentials/ssl/ssl_credentials.c - src/core/lib/security/transport/client_auth_filter.c - src/core/lib/security/transport/handshake.c - src/core/lib/security/transport/secure_endpoint.c - src/core/lib/security/transport/security_connector.c - src/core/lib/security/transport/server_auth_filter.c - src/core/lib/security/transport/tsi_error.c - src/core/lib/security/util/b64.c - src/core/lib/security/util/json_util.c - src/core/lib/surface/init_secure.c - src/core/lib/tsi/fake_transport_security.c - src/core/lib/tsi/ssl_transport_security.c - src/core/lib/tsi/transport_security.c - src/core/ext/transport/chttp2/client/secure/secure_channel_create.c - src/core/ext/client_config/channel_connectivity.c - src/core/ext/client_config/client_channel.c - src/core/ext/client_config/client_channel_factory.c - src/core/ext/client_config/client_config.c - src/core/ext/client_config/client_config_plugin.c - src/core/ext/client_config/connector.c - src/core/ext/client_config/default_initial_connect_string.c - src/core/ext/client_config/initial_connect_string.c - src/core/ext/client_config/lb_policy.c - src/core/ext/client_config/lb_policy_factory.c - src/core/ext/client_config/lb_policy_registry.c - src/core/ext/client_config/parse_address.c - src/core/ext/client_config/resolver.c - src/core/ext/client_config/resolver_factory.c - src/core/ext/client_config/resolver_registry.c - src/core/ext/client_config/subchannel.c - src/core/ext/client_config/subchannel_call_holder.c - src/core/ext/client_config/subchannel_index.c - src/core/ext/client_config/uri_parser.c - src/core/ext/transport/chttp2/server/insecure/server_chttp2.c - src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c - src/core/ext/transport/chttp2/client/insecure/channel_create.c - src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c - src/core/ext/lb_policy/grpclb/grpclb.c - src/core/ext/lb_policy/grpclb/load_balancer_api.c - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c - third_party/nanopb/pb_common.c - third_party/nanopb/pb_decode.c - third_party/nanopb/pb_encode.c - src/core/ext/lb_policy/pick_first/pick_first.c - src/core/ext/lb_policy/round_robin/round_robin.c - src/core/ext/resolver/dns/native/dns_resolver.c - src/core/ext/resolver/sockaddr/sockaddr_resolver.c - src/core/ext/load_reporting/load_reporting.c - src/core/ext/load_reporting/load_reporting_filter.c - src/core/ext/census/base_resources.c - src/core/ext/census/context.c - src/core/ext/census/gen/census.pb.c - src/core/ext/census/grpc_context.c - src/core/ext/census/grpc_filter.c - src/core/ext/census/grpc_plugin.c - src/core/ext/census/initialize.c - src/core/ext/census/mlog.c - src/core/ext/census/operation.c - src/core/ext/census/placeholders.c - src/core/ext/census/resource.c - src/core/ext/census/tracing.c - src/core/plugin_registry/grpc_plugin_registry.c +add_library(grpc++ + src/cpp/client/secure_credentials.cc + src/cpp/common/auth_property_iterator.cc + src/cpp/common/secure_auth_context.cc + src/cpp/common/secure_channel_arguments.cc + src/cpp/common/secure_create_auth_context.cc + src/cpp/server/secure_server_credentials.cc + src/cpp/client/channel.cc + src/cpp/client/client_context.cc + src/cpp/client/create_channel.cc + src/cpp/client/create_channel_internal.cc + src/cpp/client/create_channel_posix.cc + src/cpp/client/credentials.cc + src/cpp/client/generic_stub.cc + src/cpp/client/insecure_credentials.cc + src/cpp/common/channel_arguments.cc + src/cpp/common/completion_queue.cc + src/cpp/common/core_codegen.cc + src/cpp/common/rpc_method.cc + src/cpp/server/async_generic_service.cc + src/cpp/server/create_default_thread_pool.cc + src/cpp/server/dynamic_thread_pool.cc + src/cpp/server/insecure_server_credentials.cc + src/cpp/server/server.cc + src/cpp/server/server_builder.cc + src/cpp/server/server_context.cc + src/cpp/server/server_credentials.cc + src/cpp/server/server_posix.cc + src/cpp/util/byte_buffer.cc + src/cpp/util/slice.cc + src/cpp/util/status.cc + src/cpp/util/string_ref.cc + src/cpp/util/time.cc + src/cpp/codegen/codegen_init.cc ) -target_include_directories(grpc +target_include_directories(grpc++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -478,20 +279,91 @@ target_include_directories(grpc PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc +target_link_libraries(grpc++ ${_gRPC_BASELIB_LIBRARIES} ${_gRPC_SSL_LIBRARIES} - ${_gRPC_ZLIB_LIBRARIES} - gpr + ${_gRPC_PROTOBUF_LIBRARIES} + grpc ) foreach(_hdr - include/grpc/byte_buffer.h - include/grpc/byte_buffer_reader.h - include/grpc/compression.h - include/grpc/grpc.h - include/grpc/grpc_posix.h - include/grpc/status.h + include/grpc++/alarm.h + include/grpc++/channel.h + include/grpc++/client_context.h + include/grpc++/completion_queue.h + include/grpc++/create_channel.h + include/grpc++/create_channel_posix.h + include/grpc++/generic/async_generic_service.h + include/grpc++/generic/generic_stub.h + include/grpc++/grpc++.h + include/grpc++/impl/call.h + include/grpc++/impl/client_unary_call.h + include/grpc++/impl/codegen/core_codegen.h + include/grpc++/impl/grpc_library.h + include/grpc++/impl/method_handler_impl.h + include/grpc++/impl/rpc_method.h + include/grpc++/impl/rpc_service_method.h + include/grpc++/impl/serialization_traits.h + include/grpc++/impl/server_builder_option.h + include/grpc++/impl/server_builder_plugin.h + include/grpc++/impl/server_initializer.h + include/grpc++/impl/service_type.h + include/grpc++/impl/sync.h + include/grpc++/impl/sync_cxx11.h + include/grpc++/impl/sync_no_cxx11.h + include/grpc++/impl/thd.h + include/grpc++/impl/thd_cxx11.h + include/grpc++/impl/thd_no_cxx11.h + include/grpc++/security/auth_context.h + include/grpc++/security/auth_metadata_processor.h + include/grpc++/security/credentials.h + include/grpc++/security/server_credentials.h + include/grpc++/server.h + include/grpc++/server_builder.h + include/grpc++/server_context.h + include/grpc++/server_posix.h + include/grpc++/support/async_stream.h + include/grpc++/support/async_unary_call.h + include/grpc++/support/byte_buffer.h + include/grpc++/support/channel_arguments.h + include/grpc++/support/config.h + include/grpc++/support/slice.h + include/grpc++/support/status.h + include/grpc++/support/status_code_enum.h + include/grpc++/support/string_ref.h + include/grpc++/support/stub_options.h + include/grpc++/support/sync_stream.h + include/grpc++/support/time.h + include/grpc++/impl/codegen/async_stream.h + include/grpc++/impl/codegen/async_unary_call.h + include/grpc++/impl/codegen/call.h + include/grpc++/impl/codegen/call_hook.h + include/grpc++/impl/codegen/channel_interface.h + include/grpc++/impl/codegen/client_context.h + include/grpc++/impl/codegen/client_unary_call.h + include/grpc++/impl/codegen/completion_queue.h + include/grpc++/impl/codegen/completion_queue_tag.h + include/grpc++/impl/codegen/config.h + include/grpc++/impl/codegen/core_codegen_interface.h + include/grpc++/impl/codegen/create_auth_context.h + include/grpc++/impl/codegen/grpc_library.h + include/grpc++/impl/codegen/method_handler_impl.h + include/grpc++/impl/codegen/rpc_method.h + include/grpc++/impl/codegen/rpc_service_method.h + include/grpc++/impl/codegen/security/auth_context.h + include/grpc++/impl/codegen/serialization_traits.h + include/grpc++/impl/codegen/server_context.h + include/grpc++/impl/codegen/server_interface.h + include/grpc++/impl/codegen/service_type.h + include/grpc++/impl/codegen/status.h + include/grpc++/impl/codegen/status_code_enum.h + include/grpc++/impl/codegen/string_ref.h + include/grpc++/impl/codegen/stub_options.h + include/grpc++/impl/codegen/sync.h + include/grpc++/impl/codegen/sync_cxx11.h + include/grpc++/impl/codegen/sync_no_cxx11.h + include/grpc++/impl/codegen/sync_stream.h + include/grpc++/impl/codegen/time.h include/grpc/impl/codegen/byte_buffer.h include/grpc/impl/codegen/byte_buffer_reader.h include/grpc/impl/codegen/compression_types.h @@ -513,9 +385,6 @@ foreach(_hdr include/grpc/impl/codegen/sync_posix.h include/grpc/impl/codegen/sync_windows.h include/grpc/impl/codegen/time.h - include/grpc/grpc_security.h - include/grpc/grpc_security_constants.h - include/grpc/census.h ) string(REPLACE "include/" "" _path ${_hdr}) get_filename_component(_path ${_path} PATH) @@ -525,35 +394,21 @@ foreach(_hdr endforeach() -install(TARGETS grpc EXPORT gRPCTargets +install(TARGETS grpc++ EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_library(grpc_c - src/c/alloc.c - src/c/array.c - src/c/bidi_streaming_blocking_call.c - src/c/call_ops.c - src/c/channel.c - src/c/client_context.c - src/c/client_streaming_blocking_call.c - src/c/completion_queue.c - src/c/context.c - src/c/init_shutdown.c - src/c/message.c - src/c/pb_compat.c - src/c/server.c - src/c/server_context.c - src/c/server_incoming_queue.c - src/c/server_streaming_blocking_call.c - src/c/unary_async_call.c - src/c/unary_blocking_call.c +add_library(grpc++_reflection + src/cpp/ext/proto_server_reflection.cc + src/cpp/ext/proto_server_reflection_plugin.cc + src/cpp/ext/reflection.grpc.pb.cc + src/cpp/ext/reflection.pb.cc ) -target_include_directories(grpc_c +target_include_directories(grpc++_reflection PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -562,240 +417,45 @@ target_include_directories(grpc_c PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_c - ${_gRPC_BASELIB_LIBRARIES} - ${_gRPC_SSL_LIBRARIES} - ${_gRPC_PROTOBUF_LIBRARIES} - grpc - gpr +target_link_libraries(grpc++_reflection + grpc++ ) foreach(_hdr - include/grpc_c/channel.h - include/grpc_c/client_context.h - include/grpc_c/codegen/bidi_streaming_blocking_call.h - include/grpc_c/codegen/client_streaming_blocking_call.h - include/grpc_c/codegen/context.h - include/grpc_c/codegen/message.h - include/grpc_c/codegen/method.h - include/grpc_c/codegen/pb_compat.h - include/grpc_c/codegen/serialization.h - include/grpc_c/codegen/server.h - include/grpc_c/codegen/server_streaming_blocking_call.h - include/grpc_c/codegen/unary_async_call.h - include/grpc_c/codegen/unary_blocking_call.h - include/grpc_c/completion_queue.h - include/grpc_c/declare_serializer.h - include/grpc_c/grpc_c.h - include/grpc_c/server.h - include/grpc_c/server_context.h - include/grpc_c/server_incoming_queue.h - include/grpc_c/status.h -) - string(REPLACE "include/" "" _path ${_hdr}) - get_filename_component(_path ${_path} PATH) - install(FILES ${_hdr} - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${_path}" - ) -endforeach() - - -install(TARGETS grpc_c EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - -add_library(grpc_cronet - src/core/lib/surface/init.c - src/core/lib/channel/channel_args.c - src/core/lib/channel/channel_stack.c - src/core/lib/channel/channel_stack_builder.c - src/core/lib/channel/compress_filter.c - src/core/lib/channel/connected_channel.c - src/core/lib/channel/handshaker.c - src/core/lib/channel/http_client_filter.c - src/core/lib/channel/http_server_filter.c - src/core/lib/compression/compression.c - src/core/lib/compression/message_compress.c - src/core/lib/debug/trace.c - src/core/lib/http/format_request.c - src/core/lib/http/httpcli.c - src/core/lib/http/parser.c - src/core/lib/iomgr/closure.c - src/core/lib/iomgr/endpoint.c - src/core/lib/iomgr/endpoint_pair_posix.c - src/core/lib/iomgr/endpoint_pair_windows.c - src/core/lib/iomgr/error.c - src/core/lib/iomgr/ev_epoll_linux.c - src/core/lib/iomgr/ev_poll_and_epoll_posix.c - src/core/lib/iomgr/ev_poll_posix.c - src/core/lib/iomgr/ev_posix.c - src/core/lib/iomgr/exec_ctx.c - src/core/lib/iomgr/executor.c - src/core/lib/iomgr/iocp_windows.c - src/core/lib/iomgr/iomgr.c - src/core/lib/iomgr/iomgr_posix.c - src/core/lib/iomgr/iomgr_windows.c - src/core/lib/iomgr/load_file.c - src/core/lib/iomgr/network_status_tracker.c - src/core/lib/iomgr/polling_entity.c - src/core/lib/iomgr/pollset_set_windows.c - src/core/lib/iomgr/pollset_windows.c - src/core/lib/iomgr/resolve_address_posix.c - src/core/lib/iomgr/resolve_address_windows.c - src/core/lib/iomgr/sockaddr_utils.c - src/core/lib/iomgr/socket_utils_common_posix.c - src/core/lib/iomgr/socket_utils_linux.c - src/core/lib/iomgr/socket_utils_posix.c - src/core/lib/iomgr/socket_windows.c - src/core/lib/iomgr/tcp_client_posix.c - src/core/lib/iomgr/tcp_client_windows.c - src/core/lib/iomgr/tcp_posix.c - src/core/lib/iomgr/tcp_server_posix.c - src/core/lib/iomgr/tcp_server_windows.c - src/core/lib/iomgr/tcp_windows.c - src/core/lib/iomgr/time_averaged_stats.c - src/core/lib/iomgr/timer.c - src/core/lib/iomgr/timer_heap.c - src/core/lib/iomgr/udp_server.c - src/core/lib/iomgr/unix_sockets_posix.c - src/core/lib/iomgr/unix_sockets_posix_noop.c - src/core/lib/iomgr/wakeup_fd_eventfd.c - src/core/lib/iomgr/wakeup_fd_nospecial.c - src/core/lib/iomgr/wakeup_fd_pipe.c - src/core/lib/iomgr/wakeup_fd_posix.c - src/core/lib/iomgr/workqueue_posix.c - src/core/lib/iomgr/workqueue_windows.c - src/core/lib/json/json.c - src/core/lib/json/json_reader.c - src/core/lib/json/json_string.c - src/core/lib/json/json_writer.c - src/core/lib/surface/alarm.c - src/core/lib/surface/api_trace.c - src/core/lib/surface/byte_buffer.c - src/core/lib/surface/byte_buffer_reader.c - src/core/lib/surface/call.c - src/core/lib/surface/call_details.c - src/core/lib/surface/call_log_batch.c - src/core/lib/surface/channel.c - src/core/lib/surface/channel_init.c - src/core/lib/surface/channel_ping.c - src/core/lib/surface/channel_stack_type.c - src/core/lib/surface/completion_queue.c - src/core/lib/surface/event_string.c - src/core/lib/surface/lame_client.c - src/core/lib/surface/metadata_array.c - src/core/lib/surface/server.c - src/core/lib/surface/validate_metadata.c - src/core/lib/surface/version.c - src/core/lib/transport/byte_stream.c - src/core/lib/transport/connectivity_state.c - src/core/lib/transport/metadata.c - src/core/lib/transport/metadata_batch.c - src/core/lib/transport/static_metadata.c - src/core/lib/transport/timeout_encoding.c - src/core/lib/transport/transport.c - src/core/lib/transport/transport_op_string.c - src/core/ext/transport/cronet/client/secure/cronet_channel_create.c - src/core/ext/transport/cronet/transport/cronet_api_dummy.c - src/core/ext/transport/cronet/transport/cronet_transport.c - src/core/ext/transport/chttp2/client/secure/secure_channel_create.c - src/core/ext/transport/chttp2/transport/bin_decoder.c - src/core/ext/transport/chttp2/transport/bin_encoder.c - src/core/ext/transport/chttp2/transport/chttp2_plugin.c - src/core/ext/transport/chttp2/transport/chttp2_transport.c - src/core/ext/transport/chttp2/transport/frame_data.c - src/core/ext/transport/chttp2/transport/frame_goaway.c - src/core/ext/transport/chttp2/transport/frame_ping.c - src/core/ext/transport/chttp2/transport/frame_rst_stream.c - src/core/ext/transport/chttp2/transport/frame_settings.c - src/core/ext/transport/chttp2/transport/frame_window_update.c - src/core/ext/transport/chttp2/transport/hpack_encoder.c - src/core/ext/transport/chttp2/transport/hpack_parser.c - src/core/ext/transport/chttp2/transport/hpack_table.c - src/core/ext/transport/chttp2/transport/huffsyms.c - src/core/ext/transport/chttp2/transport/incoming_metadata.c - src/core/ext/transport/chttp2/transport/parsing.c - src/core/ext/transport/chttp2/transport/status_conversion.c - src/core/ext/transport/chttp2/transport/stream_lists.c - src/core/ext/transport/chttp2/transport/stream_map.c - src/core/ext/transport/chttp2/transport/varint.c - src/core/ext/transport/chttp2/transport/writing.c - src/core/ext/transport/chttp2/alpn/alpn.c - src/core/ext/client_config/channel_connectivity.c - src/core/ext/client_config/client_channel.c - src/core/ext/client_config/client_channel_factory.c - src/core/ext/client_config/client_config.c - src/core/ext/client_config/client_config_plugin.c - src/core/ext/client_config/connector.c - src/core/ext/client_config/default_initial_connect_string.c - src/core/ext/client_config/initial_connect_string.c - src/core/ext/client_config/lb_policy.c - src/core/ext/client_config/lb_policy_factory.c - src/core/ext/client_config/lb_policy_registry.c - src/core/ext/client_config/parse_address.c - src/core/ext/client_config/resolver.c - src/core/ext/client_config/resolver_factory.c - src/core/ext/client_config/resolver_registry.c - src/core/ext/client_config/subchannel.c - src/core/ext/client_config/subchannel_call_holder.c - src/core/ext/client_config/subchannel_index.c - src/core/ext/client_config/uri_parser.c - src/core/lib/http/httpcli_security_connector.c - src/core/lib/security/context/security_context.c - src/core/lib/security/credentials/composite/composite_credentials.c - src/core/lib/security/credentials/credentials.c - src/core/lib/security/credentials/credentials_metadata.c - src/core/lib/security/credentials/fake/fake_credentials.c - src/core/lib/security/credentials/google_default/credentials_posix.c - src/core/lib/security/credentials/google_default/credentials_windows.c - src/core/lib/security/credentials/google_default/google_default_credentials.c - src/core/lib/security/credentials/iam/iam_credentials.c - src/core/lib/security/credentials/jwt/json_token.c - src/core/lib/security/credentials/jwt/jwt_credentials.c - src/core/lib/security/credentials/jwt/jwt_verifier.c - src/core/lib/security/credentials/oauth2/oauth2_credentials.c - src/core/lib/security/credentials/plugin/plugin_credentials.c - src/core/lib/security/credentials/ssl/ssl_credentials.c - src/core/lib/security/transport/client_auth_filter.c - src/core/lib/security/transport/handshake.c - src/core/lib/security/transport/secure_endpoint.c - src/core/lib/security/transport/security_connector.c - src/core/lib/security/transport/server_auth_filter.c - src/core/lib/security/transport/tsi_error.c - src/core/lib/security/util/b64.c - src/core/lib/security/util/json_util.c - src/core/lib/surface/init_secure.c - src/core/lib/tsi/fake_transport_security.c - src/core/lib/tsi/ssl_transport_security.c - src/core/lib/tsi/transport_security.c - src/core/plugin_registry/grpc_cronet_plugin_registry.c -) - -target_include_directories(grpc_cronet - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_INCLUDE_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_cronet - ${_gRPC_BASELIB_LIBRARIES} - ${_gRPC_SSL_LIBRARIES} - gpr -) - -foreach(_hdr - include/grpc/byte_buffer.h - include/grpc/byte_buffer_reader.h - include/grpc/compression.h - include/grpc/grpc.h - include/grpc/grpc_posix.h - include/grpc/status.h + include/grpc++/ext/proto_server_reflection_plugin.h + include/grpc++/ext/reflection.grpc.pb.h + include/grpc++/ext/reflection.pb.h + include/grpc++/impl/codegen/proto_utils.h + include/grpc++/impl/codegen/async_stream.h + include/grpc++/impl/codegen/async_unary_call.h + include/grpc++/impl/codegen/call.h + include/grpc++/impl/codegen/call_hook.h + include/grpc++/impl/codegen/channel_interface.h + include/grpc++/impl/codegen/client_context.h + include/grpc++/impl/codegen/client_unary_call.h + include/grpc++/impl/codegen/completion_queue.h + include/grpc++/impl/codegen/completion_queue_tag.h + include/grpc++/impl/codegen/config.h + include/grpc++/impl/codegen/core_codegen_interface.h + include/grpc++/impl/codegen/create_auth_context.h + include/grpc++/impl/codegen/grpc_library.h + include/grpc++/impl/codegen/method_handler_impl.h + include/grpc++/impl/codegen/rpc_method.h + include/grpc++/impl/codegen/rpc_service_method.h + include/grpc++/impl/codegen/security/auth_context.h + include/grpc++/impl/codegen/serialization_traits.h + include/grpc++/impl/codegen/server_context.h + include/grpc++/impl/codegen/server_interface.h + include/grpc++/impl/codegen/service_type.h + include/grpc++/impl/codegen/status.h + include/grpc++/impl/codegen/status_code_enum.h + include/grpc++/impl/codegen/string_ref.h + include/grpc++/impl/codegen/stub_options.h + include/grpc++/impl/codegen/sync.h + include/grpc++/impl/codegen/sync_cxx11.h + include/grpc++/impl/codegen/sync_no_cxx11.h + include/grpc++/impl/codegen/sync_stream.h + include/grpc++/impl/codegen/time.h include/grpc/impl/codegen/byte_buffer.h include/grpc/impl/codegen/byte_buffer_reader.h include/grpc/impl/codegen/compression_types.h @@ -817,9 +477,7 @@ foreach(_hdr include/grpc/impl/codegen/sync_posix.h include/grpc/impl/codegen/sync_windows.h include/grpc/impl/codegen/time.h - include/grpc/grpc_cronet.h - include/grpc/grpc_security.h - include/grpc/grpc_security_constants.h + include/grpc++/impl/codegen/config_protobuf.h ) string(REPLACE "include/" "" _path ${_hdr}) get_filename_component(_path ${_path} PATH) @@ -829,243 +487,15 @@ foreach(_hdr endforeach() -install(TARGETS grpc_cronet EXPORT gRPCTargets +install(TARGETS grpc++_reflection EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_library(grpc_unsecure - src/core/lib/surface/init.c - src/core/lib/surface/init_unsecure.c - src/core/lib/channel/channel_args.c - src/core/lib/channel/channel_stack.c - src/core/lib/channel/channel_stack_builder.c - src/core/lib/channel/compress_filter.c - src/core/lib/channel/connected_channel.c - src/core/lib/channel/handshaker.c - src/core/lib/channel/http_client_filter.c - src/core/lib/channel/http_server_filter.c - src/core/lib/compression/compression.c - src/core/lib/compression/message_compress.c - src/core/lib/debug/trace.c - src/core/lib/http/format_request.c - src/core/lib/http/httpcli.c - src/core/lib/http/parser.c - src/core/lib/iomgr/closure.c - src/core/lib/iomgr/endpoint.c - src/core/lib/iomgr/endpoint_pair_posix.c - src/core/lib/iomgr/endpoint_pair_windows.c - src/core/lib/iomgr/error.c - src/core/lib/iomgr/ev_epoll_linux.c - src/core/lib/iomgr/ev_poll_and_epoll_posix.c - src/core/lib/iomgr/ev_poll_posix.c - src/core/lib/iomgr/ev_posix.c - src/core/lib/iomgr/exec_ctx.c - src/core/lib/iomgr/executor.c - src/core/lib/iomgr/iocp_windows.c - src/core/lib/iomgr/iomgr.c - src/core/lib/iomgr/iomgr_posix.c - src/core/lib/iomgr/iomgr_windows.c - src/core/lib/iomgr/load_file.c - src/core/lib/iomgr/network_status_tracker.c - src/core/lib/iomgr/polling_entity.c - src/core/lib/iomgr/pollset_set_windows.c - src/core/lib/iomgr/pollset_windows.c - src/core/lib/iomgr/resolve_address_posix.c - src/core/lib/iomgr/resolve_address_windows.c - src/core/lib/iomgr/sockaddr_utils.c - src/core/lib/iomgr/socket_utils_common_posix.c - src/core/lib/iomgr/socket_utils_linux.c - src/core/lib/iomgr/socket_utils_posix.c - src/core/lib/iomgr/socket_windows.c - src/core/lib/iomgr/tcp_client_posix.c - src/core/lib/iomgr/tcp_client_windows.c - src/core/lib/iomgr/tcp_posix.c - src/core/lib/iomgr/tcp_server_posix.c - src/core/lib/iomgr/tcp_server_windows.c - src/core/lib/iomgr/tcp_windows.c - src/core/lib/iomgr/time_averaged_stats.c - src/core/lib/iomgr/timer.c - src/core/lib/iomgr/timer_heap.c - src/core/lib/iomgr/udp_server.c - src/core/lib/iomgr/unix_sockets_posix.c - src/core/lib/iomgr/unix_sockets_posix_noop.c - src/core/lib/iomgr/wakeup_fd_eventfd.c - src/core/lib/iomgr/wakeup_fd_nospecial.c - src/core/lib/iomgr/wakeup_fd_pipe.c - src/core/lib/iomgr/wakeup_fd_posix.c - src/core/lib/iomgr/workqueue_posix.c - src/core/lib/iomgr/workqueue_windows.c - src/core/lib/json/json.c - src/core/lib/json/json_reader.c - src/core/lib/json/json_string.c - src/core/lib/json/json_writer.c - src/core/lib/surface/alarm.c - src/core/lib/surface/api_trace.c - src/core/lib/surface/byte_buffer.c - src/core/lib/surface/byte_buffer_reader.c - src/core/lib/surface/call.c - src/core/lib/surface/call_details.c - src/core/lib/surface/call_log_batch.c - src/core/lib/surface/channel.c - src/core/lib/surface/channel_init.c - src/core/lib/surface/channel_ping.c - src/core/lib/surface/channel_stack_type.c - src/core/lib/surface/completion_queue.c - src/core/lib/surface/event_string.c - src/core/lib/surface/lame_client.c - src/core/lib/surface/metadata_array.c - src/core/lib/surface/server.c - src/core/lib/surface/validate_metadata.c - src/core/lib/surface/version.c - src/core/lib/transport/byte_stream.c - src/core/lib/transport/connectivity_state.c - src/core/lib/transport/metadata.c - src/core/lib/transport/metadata_batch.c - src/core/lib/transport/static_metadata.c - src/core/lib/transport/timeout_encoding.c - src/core/lib/transport/transport.c - src/core/lib/transport/transport_op_string.c - src/core/ext/transport/chttp2/server/insecure/server_chttp2.c - src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c - src/core/ext/transport/chttp2/transport/bin_decoder.c - src/core/ext/transport/chttp2/transport/bin_encoder.c - src/core/ext/transport/chttp2/transport/chttp2_plugin.c - src/core/ext/transport/chttp2/transport/chttp2_transport.c - src/core/ext/transport/chttp2/transport/frame_data.c - src/core/ext/transport/chttp2/transport/frame_goaway.c - src/core/ext/transport/chttp2/transport/frame_ping.c - src/core/ext/transport/chttp2/transport/frame_rst_stream.c - src/core/ext/transport/chttp2/transport/frame_settings.c - src/core/ext/transport/chttp2/transport/frame_window_update.c - src/core/ext/transport/chttp2/transport/hpack_encoder.c - src/core/ext/transport/chttp2/transport/hpack_parser.c - src/core/ext/transport/chttp2/transport/hpack_table.c - src/core/ext/transport/chttp2/transport/huffsyms.c - src/core/ext/transport/chttp2/transport/incoming_metadata.c - src/core/ext/transport/chttp2/transport/parsing.c - src/core/ext/transport/chttp2/transport/status_conversion.c - src/core/ext/transport/chttp2/transport/stream_lists.c - src/core/ext/transport/chttp2/transport/stream_map.c - src/core/ext/transport/chttp2/transport/varint.c - src/core/ext/transport/chttp2/transport/writing.c - src/core/ext/transport/chttp2/alpn/alpn.c - src/core/ext/transport/chttp2/client/insecure/channel_create.c - src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c - src/core/ext/client_config/channel_connectivity.c - src/core/ext/client_config/client_channel.c - src/core/ext/client_config/client_channel_factory.c - src/core/ext/client_config/client_config.c - src/core/ext/client_config/client_config_plugin.c - src/core/ext/client_config/connector.c - src/core/ext/client_config/default_initial_connect_string.c - src/core/ext/client_config/initial_connect_string.c - src/core/ext/client_config/lb_policy.c - src/core/ext/client_config/lb_policy_factory.c - src/core/ext/client_config/lb_policy_registry.c - src/core/ext/client_config/parse_address.c - src/core/ext/client_config/resolver.c - src/core/ext/client_config/resolver_factory.c - src/core/ext/client_config/resolver_registry.c - src/core/ext/client_config/subchannel.c - src/core/ext/client_config/subchannel_call_holder.c - src/core/ext/client_config/subchannel_index.c - src/core/ext/client_config/uri_parser.c - src/core/ext/resolver/dns/native/dns_resolver.c - src/core/ext/resolver/sockaddr/sockaddr_resolver.c - src/core/ext/load_reporting/load_reporting.c - src/core/ext/load_reporting/load_reporting_filter.c - src/core/ext/lb_policy/grpclb/grpclb.c - src/core/ext/lb_policy/grpclb/load_balancer_api.c - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c - third_party/nanopb/pb_common.c - third_party/nanopb/pb_decode.c - third_party/nanopb/pb_encode.c - src/core/ext/lb_policy/pick_first/pick_first.c - src/core/ext/lb_policy/round_robin/round_robin.c - src/core/ext/census/base_resources.c - src/core/ext/census/context.c - src/core/ext/census/gen/census.pb.c - src/core/ext/census/grpc_context.c - src/core/ext/census/grpc_filter.c - src/core/ext/census/grpc_plugin.c - src/core/ext/census/initialize.c - src/core/ext/census/mlog.c - src/core/ext/census/operation.c - src/core/ext/census/placeholders.c - src/core/ext/census/resource.c - src/core/ext/census/tracing.c - src/core/plugin_registry/grpc_unsecure_plugin_registry.c -) - -target_include_directories(grpc_unsecure - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_INCLUDE_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_unsecure - ${_gRPC_BASELIB_LIBRARIES} - gpr -) - -foreach(_hdr - include/grpc/byte_buffer.h - include/grpc/byte_buffer_reader.h - include/grpc/compression.h - include/grpc/grpc.h - include/grpc/grpc_posix.h - include/grpc/status.h - include/grpc/impl/codegen/byte_buffer.h - include/grpc/impl/codegen/byte_buffer_reader.h - include/grpc/impl/codegen/compression_types.h - include/grpc/impl/codegen/connectivity_state.h - include/grpc/impl/codegen/grpc_types.h - include/grpc/impl/codegen/propagation_bits.h - include/grpc/impl/codegen/status.h - include/grpc/impl/codegen/alloc.h - include/grpc/impl/codegen/atm.h - include/grpc/impl/codegen/atm_gcc_atomic.h - include/grpc/impl/codegen/atm_gcc_sync.h - include/grpc/impl/codegen/atm_windows.h - include/grpc/impl/codegen/log.h - include/grpc/impl/codegen/port_platform.h - include/grpc/impl/codegen/slice.h - include/grpc/impl/codegen/slice_buffer.h - include/grpc/impl/codegen/sync.h - include/grpc/impl/codegen/sync_generic.h - include/grpc/impl/codegen/sync_posix.h - include/grpc/impl/codegen/sync_windows.h - include/grpc/impl/codegen/time.h - include/grpc/census.h -) - string(REPLACE "include/" "" _path ${_hdr}) - get_filename_component(_path ${_path} PATH) - install(FILES ${_hdr} - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${_path}" - ) -endforeach() - - -install(TARGETS grpc_unsecure EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - -add_library(grpc++ - src/cpp/client/secure_credentials.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/secure_auth_context.cc - src/cpp/common/secure_channel_arguments.cc - src/cpp/common/secure_create_auth_context.cc - src/cpp/server/secure_server_credentials.cc +add_library(grpc++_unsecure + src/cpp/common/insecure_create_auth_context.cc src/cpp/client/channel.cc src/cpp/client/client_context.cc src/cpp/client/create_channel.cc @@ -1095,7 +525,7 @@ add_library(grpc++ src/cpp/codegen/codegen_init.cc ) -target_include_directories(grpc++ +target_include_directories(grpc++_unsecure PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1104,10 +534,11 @@ target_include_directories(grpc++ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc++ +target_link_libraries(grpc++_unsecure ${_gRPC_BASELIB_LIBRARIES} - ${_gRPC_SSL_LIBRARIES} ${_gRPC_PROTOBUF_LIBRARIES} + gpr + grpc_unsecure grpc ) @@ -1219,21 +650,24 @@ foreach(_hdr endforeach() -install(TARGETS grpc++ EXPORT gRPCTargets +install(TARGETS grpc++_unsecure EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_library(grpc++_reflection - src/cpp/ext/proto_server_reflection.cc - src/cpp/ext/proto_server_reflection_plugin.cc - src/cpp/ext/reflection.grpc.pb.cc - src/cpp/ext/reflection.pb.cc +add_library(grpc_plugin_support + src/compiler/c_generator.cc + src/compiler/cpp_generator.cc + src/compiler/csharp_generator.cc + src/compiler/node_generator.cc + src/compiler/objective_c_generator.cc + src/compiler/python_generator.cc + src/compiler/ruby_generator.cc ) -target_include_directories(grpc++_reflection +target_include_directories(grpc_plugin_support PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1242,52 +676,115 @@ target_include_directories(grpc++_reflection PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc++_reflection - grpc++ +target_link_libraries(grpc_plugin_support + ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} ) foreach(_hdr - include/grpc++/ext/proto_server_reflection_plugin.h - include/grpc++/ext/reflection.grpc.pb.h - include/grpc++/ext/reflection.pb.h - include/grpc++/impl/codegen/proto_utils.h - include/grpc++/impl/codegen/async_stream.h - include/grpc++/impl/codegen/async_unary_call.h - include/grpc++/impl/codegen/call.h - include/grpc++/impl/codegen/call_hook.h - include/grpc++/impl/codegen/channel_interface.h - include/grpc++/impl/codegen/client_context.h - include/grpc++/impl/codegen/client_unary_call.h - include/grpc++/impl/codegen/completion_queue.h - include/grpc++/impl/codegen/completion_queue_tag.h - include/grpc++/impl/codegen/config.h - include/grpc++/impl/codegen/core_codegen_interface.h - include/grpc++/impl/codegen/create_auth_context.h - include/grpc++/impl/codegen/grpc_library.h - include/grpc++/impl/codegen/method_handler_impl.h - include/grpc++/impl/codegen/rpc_method.h - include/grpc++/impl/codegen/rpc_service_method.h - include/grpc++/impl/codegen/security/auth_context.h - include/grpc++/impl/codegen/serialization_traits.h - include/grpc++/impl/codegen/server_context.h - include/grpc++/impl/codegen/server_interface.h - include/grpc++/impl/codegen/service_type.h - include/grpc++/impl/codegen/status.h - include/grpc++/impl/codegen/status_code_enum.h - include/grpc++/impl/codegen/string_ref.h - include/grpc++/impl/codegen/stub_options.h - include/grpc++/impl/codegen/sync.h - include/grpc++/impl/codegen/sync_cxx11.h - include/grpc++/impl/codegen/sync_no_cxx11.h - include/grpc++/impl/codegen/sync_stream.h - include/grpc++/impl/codegen/time.h - include/grpc/impl/codegen/byte_buffer.h - include/grpc/impl/codegen/byte_buffer_reader.h - include/grpc/impl/codegen/compression_types.h - include/grpc/impl/codegen/connectivity_state.h - include/grpc/impl/codegen/grpc_types.h - include/grpc/impl/codegen/propagation_bits.h - include/grpc/impl/codegen/status.h + include/grpc++/impl/codegen/config_protobuf.h +) + string(REPLACE "include/" "" _path ${_hdr}) + get_filename_component(_path ${_path} PATH) + install(FILES ${_hdr} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${_path}" + ) +endforeach() + + +install(TARGETS grpc_plugin_support EXPORT gRPCTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + + +add_library(gpr + src/core/lib/profiling/basic_timers.c + src/core/lib/profiling/stap_timers.c + src/core/lib/support/alloc.c + src/core/lib/support/avl.c + src/core/lib/support/backoff.c + src/core/lib/support/cmdline.c + src/core/lib/support/cpu_iphone.c + src/core/lib/support/cpu_linux.c + src/core/lib/support/cpu_posix.c + src/core/lib/support/cpu_windows.c + src/core/lib/support/env_linux.c + src/core/lib/support/env_posix.c + src/core/lib/support/env_windows.c + src/core/lib/support/histogram.c + src/core/lib/support/host_port.c + src/core/lib/support/log.c + src/core/lib/support/log_android.c + src/core/lib/support/log_linux.c + src/core/lib/support/log_posix.c + src/core/lib/support/log_windows.c + src/core/lib/support/murmur_hash.c + src/core/lib/support/slice.c + src/core/lib/support/slice_buffer.c + src/core/lib/support/stack_lockfree.c + src/core/lib/support/string.c + src/core/lib/support/string_posix.c + src/core/lib/support/string_util_windows.c + src/core/lib/support/string_windows.c + src/core/lib/support/subprocess_posix.c + src/core/lib/support/subprocess_windows.c + src/core/lib/support/sync.c + src/core/lib/support/sync_posix.c + src/core/lib/support/sync_windows.c + src/core/lib/support/thd.c + src/core/lib/support/thd_posix.c + src/core/lib/support/thd_windows.c + src/core/lib/support/time.c + src/core/lib/support/time_posix.c + src/core/lib/support/time_precise.c + src/core/lib/support/time_windows.c + src/core/lib/support/tls_pthread.c + src/core/lib/support/tmpfile_msys.c + src/core/lib/support/tmpfile_posix.c + src/core/lib/support/tmpfile_windows.c + src/core/lib/support/wrap_memcpy.c +) + +target_include_directories(gpr + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib +) + + +foreach(_hdr + include/grpc/support/alloc.h + include/grpc/support/atm.h + include/grpc/support/atm_gcc_atomic.h + include/grpc/support/atm_gcc_sync.h + include/grpc/support/atm_windows.h + include/grpc/support/avl.h + include/grpc/support/cmdline.h + include/grpc/support/cpu.h + include/grpc/support/histogram.h + include/grpc/support/host_port.h + include/grpc/support/log.h + include/grpc/support/log_windows.h + include/grpc/support/port_platform.h + include/grpc/support/slice.h + include/grpc/support/slice_buffer.h + include/grpc/support/string_util.h + include/grpc/support/subprocess.h + include/grpc/support/sync.h + include/grpc/support/sync_generic.h + include/grpc/support/sync_posix.h + include/grpc/support/sync_windows.h + include/grpc/support/thd.h + include/grpc/support/time.h + include/grpc/support/tls.h + include/grpc/support/tls_gcc.h + include/grpc/support/tls_msvc.h + include/grpc/support/tls_pthread.h + include/grpc/support/useful.h include/grpc/impl/codegen/alloc.h include/grpc/impl/codegen/atm.h include/grpc/impl/codegen/atm_gcc_atomic.h @@ -1302,7 +799,6 @@ foreach(_hdr include/grpc/impl/codegen/sync_posix.h include/grpc/impl/codegen/sync_windows.h include/grpc/impl/codegen/time.h - include/grpc++/impl/codegen/config_protobuf.h ) string(REPLACE "include/" "" _path ${_hdr}) get_filename_component(_path ${_path} PATH) @@ -1312,139 +808,683 @@ foreach(_hdr endforeach() -install(TARGETS grpc++_reflection EXPORT gRPCTargets +install(TARGETS gpr EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_library(grpc++_unsecure - src/cpp/common/insecure_create_auth_context.cc - src/cpp/client/channel.cc - src/cpp/client/client_context.cc - src/cpp/client/create_channel.cc - src/cpp/client/create_channel_internal.cc - src/cpp/client/create_channel_posix.cc - src/cpp/client/credentials.cc - src/cpp/client/generic_stub.cc - src/cpp/client/insecure_credentials.cc - src/cpp/common/channel_arguments.cc - src/cpp/common/completion_queue.cc - src/cpp/common/core_codegen.cc - src/cpp/common/rpc_method.cc - src/cpp/server/async_generic_service.cc - src/cpp/server/create_default_thread_pool.cc - src/cpp/server/dynamic_thread_pool.cc - src/cpp/server/insecure_server_credentials.cc - src/cpp/server/server.cc - src/cpp/server/server_builder.cc - src/cpp/server/server_context.cc - src/cpp/server/server_credentials.cc - src/cpp/server/server_posix.cc - src/cpp/util/byte_buffer.cc - src/cpp/util/slice.cc - src/cpp/util/status.cc - src/cpp/util/string_ref.cc - src/cpp/util/time.cc - src/cpp/codegen/codegen_init.cc -) - -target_include_directories(grpc++_unsecure - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_INCLUDE_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc++_unsecure - ${_gRPC_BASELIB_LIBRARIES} - ${_gRPC_PROTOBUF_LIBRARIES} - gpr - grpc_unsecure - grpc -) - -foreach(_hdr - include/grpc++/alarm.h - include/grpc++/channel.h - include/grpc++/client_context.h - include/grpc++/completion_queue.h - include/grpc++/create_channel.h - include/grpc++/create_channel_posix.h - include/grpc++/generic/async_generic_service.h - include/grpc++/generic/generic_stub.h - include/grpc++/grpc++.h - include/grpc++/impl/call.h - include/grpc++/impl/client_unary_call.h - include/grpc++/impl/codegen/core_codegen.h - include/grpc++/impl/grpc_library.h - include/grpc++/impl/method_handler_impl.h - include/grpc++/impl/rpc_method.h - include/grpc++/impl/rpc_service_method.h - include/grpc++/impl/serialization_traits.h - include/grpc++/impl/server_builder_option.h - include/grpc++/impl/server_builder_plugin.h - include/grpc++/impl/server_initializer.h - include/grpc++/impl/service_type.h - include/grpc++/impl/sync.h - include/grpc++/impl/sync_cxx11.h - include/grpc++/impl/sync_no_cxx11.h - include/grpc++/impl/thd.h - include/grpc++/impl/thd_cxx11.h - include/grpc++/impl/thd_no_cxx11.h - include/grpc++/security/auth_context.h - include/grpc++/security/auth_metadata_processor.h - include/grpc++/security/credentials.h - include/grpc++/security/server_credentials.h - include/grpc++/server.h - include/grpc++/server_builder.h - include/grpc++/server_context.h - include/grpc++/server_posix.h - include/grpc++/support/async_stream.h - include/grpc++/support/async_unary_call.h - include/grpc++/support/byte_buffer.h - include/grpc++/support/channel_arguments.h - include/grpc++/support/config.h - include/grpc++/support/slice.h - include/grpc++/support/status.h - include/grpc++/support/status_code_enum.h - include/grpc++/support/string_ref.h - include/grpc++/support/stub_options.h - include/grpc++/support/sync_stream.h - include/grpc++/support/time.h - include/grpc++/impl/codegen/async_stream.h - include/grpc++/impl/codegen/async_unary_call.h - include/grpc++/impl/codegen/call.h - include/grpc++/impl/codegen/call_hook.h - include/grpc++/impl/codegen/channel_interface.h - include/grpc++/impl/codegen/client_context.h - include/grpc++/impl/codegen/client_unary_call.h - include/grpc++/impl/codegen/completion_queue.h - include/grpc++/impl/codegen/completion_queue_tag.h - include/grpc++/impl/codegen/config.h - include/grpc++/impl/codegen/core_codegen_interface.h - include/grpc++/impl/codegen/create_auth_context.h - include/grpc++/impl/codegen/grpc_library.h - include/grpc++/impl/codegen/method_handler_impl.h - include/grpc++/impl/codegen/rpc_method.h - include/grpc++/impl/codegen/rpc_service_method.h - include/grpc++/impl/codegen/security/auth_context.h - include/grpc++/impl/codegen/serialization_traits.h - include/grpc++/impl/codegen/server_context.h - include/grpc++/impl/codegen/server_interface.h - include/grpc++/impl/codegen/service_type.h - include/grpc++/impl/codegen/status.h - include/grpc++/impl/codegen/status_code_enum.h - include/grpc++/impl/codegen/string_ref.h - include/grpc++/impl/codegen/stub_options.h - include/grpc++/impl/codegen/sync.h - include/grpc++/impl/codegen/sync_cxx11.h - include/grpc++/impl/codegen/sync_no_cxx11.h - include/grpc++/impl/codegen/sync_stream.h - include/grpc++/impl/codegen/time.h +add_library(grpc + src/core/lib/surface/init.c + src/core/lib/channel/channel_args.c + src/core/lib/channel/channel_stack.c + src/core/lib/channel/channel_stack_builder.c + src/core/lib/channel/compress_filter.c + src/core/lib/channel/connected_channel.c + src/core/lib/channel/handshaker.c + src/core/lib/channel/http_client_filter.c + src/core/lib/channel/http_server_filter.c + src/core/lib/compression/compression.c + src/core/lib/compression/message_compress.c + src/core/lib/debug/trace.c + src/core/lib/http/format_request.c + src/core/lib/http/httpcli.c + src/core/lib/http/parser.c + src/core/lib/iomgr/closure.c + src/core/lib/iomgr/endpoint.c + src/core/lib/iomgr/endpoint_pair_posix.c + src/core/lib/iomgr/endpoint_pair_windows.c + src/core/lib/iomgr/error.c + src/core/lib/iomgr/ev_epoll_linux.c + src/core/lib/iomgr/ev_poll_and_epoll_posix.c + src/core/lib/iomgr/ev_poll_posix.c + src/core/lib/iomgr/ev_posix.c + src/core/lib/iomgr/exec_ctx.c + src/core/lib/iomgr/executor.c + src/core/lib/iomgr/iocp_windows.c + src/core/lib/iomgr/iomgr.c + src/core/lib/iomgr/iomgr_posix.c + src/core/lib/iomgr/iomgr_windows.c + src/core/lib/iomgr/load_file.c + src/core/lib/iomgr/network_status_tracker.c + src/core/lib/iomgr/polling_entity.c + src/core/lib/iomgr/pollset_set_windows.c + src/core/lib/iomgr/pollset_windows.c + src/core/lib/iomgr/resolve_address_posix.c + src/core/lib/iomgr/resolve_address_windows.c + src/core/lib/iomgr/sockaddr_utils.c + src/core/lib/iomgr/socket_utils_common_posix.c + src/core/lib/iomgr/socket_utils_linux.c + src/core/lib/iomgr/socket_utils_posix.c + src/core/lib/iomgr/socket_windows.c + src/core/lib/iomgr/tcp_client_posix.c + src/core/lib/iomgr/tcp_client_windows.c + src/core/lib/iomgr/tcp_posix.c + src/core/lib/iomgr/tcp_server_posix.c + src/core/lib/iomgr/tcp_server_windows.c + src/core/lib/iomgr/tcp_windows.c + src/core/lib/iomgr/time_averaged_stats.c + src/core/lib/iomgr/timer.c + src/core/lib/iomgr/timer_heap.c + src/core/lib/iomgr/udp_server.c + src/core/lib/iomgr/unix_sockets_posix.c + src/core/lib/iomgr/unix_sockets_posix_noop.c + src/core/lib/iomgr/wakeup_fd_eventfd.c + src/core/lib/iomgr/wakeup_fd_nospecial.c + src/core/lib/iomgr/wakeup_fd_pipe.c + src/core/lib/iomgr/wakeup_fd_posix.c + src/core/lib/iomgr/workqueue_posix.c + src/core/lib/iomgr/workqueue_windows.c + src/core/lib/json/json.c + src/core/lib/json/json_reader.c + src/core/lib/json/json_string.c + src/core/lib/json/json_writer.c + src/core/lib/surface/alarm.c + src/core/lib/surface/api_trace.c + src/core/lib/surface/byte_buffer.c + src/core/lib/surface/byte_buffer_reader.c + src/core/lib/surface/call.c + src/core/lib/surface/call_details.c + src/core/lib/surface/call_log_batch.c + src/core/lib/surface/channel.c + src/core/lib/surface/channel_init.c + src/core/lib/surface/channel_ping.c + src/core/lib/surface/channel_stack_type.c + src/core/lib/surface/completion_queue.c + src/core/lib/surface/event_string.c + src/core/lib/surface/lame_client.c + src/core/lib/surface/metadata_array.c + src/core/lib/surface/server.c + src/core/lib/surface/validate_metadata.c + src/core/lib/surface/version.c + src/core/lib/transport/byte_stream.c + src/core/lib/transport/connectivity_state.c + src/core/lib/transport/metadata.c + src/core/lib/transport/metadata_batch.c + src/core/lib/transport/static_metadata.c + src/core/lib/transport/timeout_encoding.c + src/core/lib/transport/transport.c + src/core/lib/transport/transport_op_string.c + src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c + src/core/ext/transport/chttp2/transport/bin_decoder.c + src/core/ext/transport/chttp2/transport/bin_encoder.c + src/core/ext/transport/chttp2/transport/chttp2_plugin.c + src/core/ext/transport/chttp2/transport/chttp2_transport.c + src/core/ext/transport/chttp2/transport/frame_data.c + src/core/ext/transport/chttp2/transport/frame_goaway.c + src/core/ext/transport/chttp2/transport/frame_ping.c + src/core/ext/transport/chttp2/transport/frame_rst_stream.c + src/core/ext/transport/chttp2/transport/frame_settings.c + src/core/ext/transport/chttp2/transport/frame_window_update.c + src/core/ext/transport/chttp2/transport/hpack_encoder.c + src/core/ext/transport/chttp2/transport/hpack_parser.c + src/core/ext/transport/chttp2/transport/hpack_table.c + src/core/ext/transport/chttp2/transport/huffsyms.c + src/core/ext/transport/chttp2/transport/incoming_metadata.c + src/core/ext/transport/chttp2/transport/parsing.c + src/core/ext/transport/chttp2/transport/status_conversion.c + src/core/ext/transport/chttp2/transport/stream_lists.c + src/core/ext/transport/chttp2/transport/stream_map.c + src/core/ext/transport/chttp2/transport/varint.c + src/core/ext/transport/chttp2/transport/writing.c + src/core/ext/transport/chttp2/alpn/alpn.c + src/core/lib/http/httpcli_security_connector.c + src/core/lib/security/context/security_context.c + src/core/lib/security/credentials/composite/composite_credentials.c + src/core/lib/security/credentials/credentials.c + src/core/lib/security/credentials/credentials_metadata.c + src/core/lib/security/credentials/fake/fake_credentials.c + src/core/lib/security/credentials/google_default/credentials_posix.c + src/core/lib/security/credentials/google_default/credentials_windows.c + src/core/lib/security/credentials/google_default/google_default_credentials.c + src/core/lib/security/credentials/iam/iam_credentials.c + src/core/lib/security/credentials/jwt/json_token.c + src/core/lib/security/credentials/jwt/jwt_credentials.c + src/core/lib/security/credentials/jwt/jwt_verifier.c + src/core/lib/security/credentials/oauth2/oauth2_credentials.c + src/core/lib/security/credentials/plugin/plugin_credentials.c + src/core/lib/security/credentials/ssl/ssl_credentials.c + src/core/lib/security/transport/client_auth_filter.c + src/core/lib/security/transport/handshake.c + src/core/lib/security/transport/secure_endpoint.c + src/core/lib/security/transport/security_connector.c + src/core/lib/security/transport/server_auth_filter.c + src/core/lib/security/transport/tsi_error.c + src/core/lib/security/util/b64.c + src/core/lib/security/util/json_util.c + src/core/lib/surface/init_secure.c + src/core/lib/tsi/fake_transport_security.c + src/core/lib/tsi/ssl_transport_security.c + src/core/lib/tsi/transport_security.c + src/core/ext/transport/chttp2/client/secure/secure_channel_create.c + src/core/ext/client_config/channel_connectivity.c + src/core/ext/client_config/client_channel.c + src/core/ext/client_config/client_channel_factory.c + src/core/ext/client_config/client_config.c + src/core/ext/client_config/client_config_plugin.c + src/core/ext/client_config/connector.c + src/core/ext/client_config/default_initial_connect_string.c + src/core/ext/client_config/initial_connect_string.c + src/core/ext/client_config/lb_policy.c + src/core/ext/client_config/lb_policy_factory.c + src/core/ext/client_config/lb_policy_registry.c + src/core/ext/client_config/parse_address.c + src/core/ext/client_config/resolver.c + src/core/ext/client_config/resolver_factory.c + src/core/ext/client_config/resolver_registry.c + src/core/ext/client_config/subchannel.c + src/core/ext/client_config/subchannel_call_holder.c + src/core/ext/client_config/subchannel_index.c + src/core/ext/client_config/uri_parser.c + src/core/ext/transport/chttp2/server/insecure/server_chttp2.c + src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c + src/core/ext/transport/chttp2/client/insecure/channel_create.c + src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c + src/core/ext/lb_policy/grpclb/grpclb.c + src/core/ext/lb_policy/grpclb/load_balancer_api.c + src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c + third_party/nanopb/pb_common.c + third_party/nanopb/pb_decode.c + third_party/nanopb/pb_encode.c + src/core/ext/lb_policy/pick_first/pick_first.c + src/core/ext/lb_policy/round_robin/round_robin.c + src/core/ext/resolver/dns/native/dns_resolver.c + src/core/ext/resolver/sockaddr/sockaddr_resolver.c + src/core/ext/load_reporting/load_reporting.c + src/core/ext/load_reporting/load_reporting_filter.c + src/core/ext/census/base_resources.c + src/core/ext/census/context.c + src/core/ext/census/gen/census.pb.c + src/core/ext/census/grpc_context.c + src/core/ext/census/grpc_filter.c + src/core/ext/census/grpc_plugin.c + src/core/ext/census/initialize.c + src/core/ext/census/mlog.c + src/core/ext/census/operation.c + src/core/ext/census/placeholders.c + src/core/ext/census/resource.c + src/core/ext/census/tracing.c + src/core/plugin_registry/grpc_plugin_registry.c +) + +target_include_directories(grpc + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib +) + +target_link_libraries(grpc + ${_gRPC_BASELIB_LIBRARIES} + ${_gRPC_SSL_LIBRARIES} + ${_gRPC_ZLIB_LIBRARIES} + gpr +) + +foreach(_hdr + include/grpc/byte_buffer.h + include/grpc/byte_buffer_reader.h + include/grpc/compression.h + include/grpc/grpc.h + include/grpc/grpc_posix.h + include/grpc/status.h + include/grpc/impl/codegen/byte_buffer.h + include/grpc/impl/codegen/byte_buffer_reader.h + include/grpc/impl/codegen/compression_types.h + include/grpc/impl/codegen/connectivity_state.h + include/grpc/impl/codegen/grpc_types.h + include/grpc/impl/codegen/propagation_bits.h + include/grpc/impl/codegen/status.h + include/grpc/impl/codegen/alloc.h + include/grpc/impl/codegen/atm.h + include/grpc/impl/codegen/atm_gcc_atomic.h + include/grpc/impl/codegen/atm_gcc_sync.h + include/grpc/impl/codegen/atm_windows.h + include/grpc/impl/codegen/log.h + include/grpc/impl/codegen/port_platform.h + include/grpc/impl/codegen/slice.h + include/grpc/impl/codegen/slice_buffer.h + include/grpc/impl/codegen/sync.h + include/grpc/impl/codegen/sync_generic.h + include/grpc/impl/codegen/sync_posix.h + include/grpc/impl/codegen/sync_windows.h + include/grpc/impl/codegen/time.h + include/grpc/grpc_security.h + include/grpc/grpc_security_constants.h + include/grpc/census.h +) + string(REPLACE "include/" "" _path ${_hdr}) + get_filename_component(_path ${_path} PATH) + install(FILES ${_hdr} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${_path}" + ) +endforeach() + + +install(TARGETS grpc EXPORT gRPCTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + + +add_library(grpc_cronet + src/core/lib/surface/init.c + src/core/lib/channel/channel_args.c + src/core/lib/channel/channel_stack.c + src/core/lib/channel/channel_stack_builder.c + src/core/lib/channel/compress_filter.c + src/core/lib/channel/connected_channel.c + src/core/lib/channel/handshaker.c + src/core/lib/channel/http_client_filter.c + src/core/lib/channel/http_server_filter.c + src/core/lib/compression/compression.c + src/core/lib/compression/message_compress.c + src/core/lib/debug/trace.c + src/core/lib/http/format_request.c + src/core/lib/http/httpcli.c + src/core/lib/http/parser.c + src/core/lib/iomgr/closure.c + src/core/lib/iomgr/endpoint.c + src/core/lib/iomgr/endpoint_pair_posix.c + src/core/lib/iomgr/endpoint_pair_windows.c + src/core/lib/iomgr/error.c + src/core/lib/iomgr/ev_epoll_linux.c + src/core/lib/iomgr/ev_poll_and_epoll_posix.c + src/core/lib/iomgr/ev_poll_posix.c + src/core/lib/iomgr/ev_posix.c + src/core/lib/iomgr/exec_ctx.c + src/core/lib/iomgr/executor.c + src/core/lib/iomgr/iocp_windows.c + src/core/lib/iomgr/iomgr.c + src/core/lib/iomgr/iomgr_posix.c + src/core/lib/iomgr/iomgr_windows.c + src/core/lib/iomgr/load_file.c + src/core/lib/iomgr/network_status_tracker.c + src/core/lib/iomgr/polling_entity.c + src/core/lib/iomgr/pollset_set_windows.c + src/core/lib/iomgr/pollset_windows.c + src/core/lib/iomgr/resolve_address_posix.c + src/core/lib/iomgr/resolve_address_windows.c + src/core/lib/iomgr/sockaddr_utils.c + src/core/lib/iomgr/socket_utils_common_posix.c + src/core/lib/iomgr/socket_utils_linux.c + src/core/lib/iomgr/socket_utils_posix.c + src/core/lib/iomgr/socket_windows.c + src/core/lib/iomgr/tcp_client_posix.c + src/core/lib/iomgr/tcp_client_windows.c + src/core/lib/iomgr/tcp_posix.c + src/core/lib/iomgr/tcp_server_posix.c + src/core/lib/iomgr/tcp_server_windows.c + src/core/lib/iomgr/tcp_windows.c + src/core/lib/iomgr/time_averaged_stats.c + src/core/lib/iomgr/timer.c + src/core/lib/iomgr/timer_heap.c + src/core/lib/iomgr/udp_server.c + src/core/lib/iomgr/unix_sockets_posix.c + src/core/lib/iomgr/unix_sockets_posix_noop.c + src/core/lib/iomgr/wakeup_fd_eventfd.c + src/core/lib/iomgr/wakeup_fd_nospecial.c + src/core/lib/iomgr/wakeup_fd_pipe.c + src/core/lib/iomgr/wakeup_fd_posix.c + src/core/lib/iomgr/workqueue_posix.c + src/core/lib/iomgr/workqueue_windows.c + src/core/lib/json/json.c + src/core/lib/json/json_reader.c + src/core/lib/json/json_string.c + src/core/lib/json/json_writer.c + src/core/lib/surface/alarm.c + src/core/lib/surface/api_trace.c + src/core/lib/surface/byte_buffer.c + src/core/lib/surface/byte_buffer_reader.c + src/core/lib/surface/call.c + src/core/lib/surface/call_details.c + src/core/lib/surface/call_log_batch.c + src/core/lib/surface/channel.c + src/core/lib/surface/channel_init.c + src/core/lib/surface/channel_ping.c + src/core/lib/surface/channel_stack_type.c + src/core/lib/surface/completion_queue.c + src/core/lib/surface/event_string.c + src/core/lib/surface/lame_client.c + src/core/lib/surface/metadata_array.c + src/core/lib/surface/server.c + src/core/lib/surface/validate_metadata.c + src/core/lib/surface/version.c + src/core/lib/transport/byte_stream.c + src/core/lib/transport/connectivity_state.c + src/core/lib/transport/metadata.c + src/core/lib/transport/metadata_batch.c + src/core/lib/transport/static_metadata.c + src/core/lib/transport/timeout_encoding.c + src/core/lib/transport/transport.c + src/core/lib/transport/transport_op_string.c + src/core/ext/transport/cronet/client/secure/cronet_channel_create.c + src/core/ext/transport/cronet/transport/cronet_api_dummy.c + src/core/ext/transport/cronet/transport/cronet_transport.c + src/core/ext/transport/chttp2/client/secure/secure_channel_create.c + src/core/ext/transport/chttp2/transport/bin_decoder.c + src/core/ext/transport/chttp2/transport/bin_encoder.c + src/core/ext/transport/chttp2/transport/chttp2_plugin.c + src/core/ext/transport/chttp2/transport/chttp2_transport.c + src/core/ext/transport/chttp2/transport/frame_data.c + src/core/ext/transport/chttp2/transport/frame_goaway.c + src/core/ext/transport/chttp2/transport/frame_ping.c + src/core/ext/transport/chttp2/transport/frame_rst_stream.c + src/core/ext/transport/chttp2/transport/frame_settings.c + src/core/ext/transport/chttp2/transport/frame_window_update.c + src/core/ext/transport/chttp2/transport/hpack_encoder.c + src/core/ext/transport/chttp2/transport/hpack_parser.c + src/core/ext/transport/chttp2/transport/hpack_table.c + src/core/ext/transport/chttp2/transport/huffsyms.c + src/core/ext/transport/chttp2/transport/incoming_metadata.c + src/core/ext/transport/chttp2/transport/parsing.c + src/core/ext/transport/chttp2/transport/status_conversion.c + src/core/ext/transport/chttp2/transport/stream_lists.c + src/core/ext/transport/chttp2/transport/stream_map.c + src/core/ext/transport/chttp2/transport/varint.c + src/core/ext/transport/chttp2/transport/writing.c + src/core/ext/transport/chttp2/alpn/alpn.c + src/core/ext/client_config/channel_connectivity.c + src/core/ext/client_config/client_channel.c + src/core/ext/client_config/client_channel_factory.c + src/core/ext/client_config/client_config.c + src/core/ext/client_config/client_config_plugin.c + src/core/ext/client_config/connector.c + src/core/ext/client_config/default_initial_connect_string.c + src/core/ext/client_config/initial_connect_string.c + src/core/ext/client_config/lb_policy.c + src/core/ext/client_config/lb_policy_factory.c + src/core/ext/client_config/lb_policy_registry.c + src/core/ext/client_config/parse_address.c + src/core/ext/client_config/resolver.c + src/core/ext/client_config/resolver_factory.c + src/core/ext/client_config/resolver_registry.c + src/core/ext/client_config/subchannel.c + src/core/ext/client_config/subchannel_call_holder.c + src/core/ext/client_config/subchannel_index.c + src/core/ext/client_config/uri_parser.c + src/core/lib/http/httpcli_security_connector.c + src/core/lib/security/context/security_context.c + src/core/lib/security/credentials/composite/composite_credentials.c + src/core/lib/security/credentials/credentials.c + src/core/lib/security/credentials/credentials_metadata.c + src/core/lib/security/credentials/fake/fake_credentials.c + src/core/lib/security/credentials/google_default/credentials_posix.c + src/core/lib/security/credentials/google_default/credentials_windows.c + src/core/lib/security/credentials/google_default/google_default_credentials.c + src/core/lib/security/credentials/iam/iam_credentials.c + src/core/lib/security/credentials/jwt/json_token.c + src/core/lib/security/credentials/jwt/jwt_credentials.c + src/core/lib/security/credentials/jwt/jwt_verifier.c + src/core/lib/security/credentials/oauth2/oauth2_credentials.c + src/core/lib/security/credentials/plugin/plugin_credentials.c + src/core/lib/security/credentials/ssl/ssl_credentials.c + src/core/lib/security/transport/client_auth_filter.c + src/core/lib/security/transport/handshake.c + src/core/lib/security/transport/secure_endpoint.c + src/core/lib/security/transport/security_connector.c + src/core/lib/security/transport/server_auth_filter.c + src/core/lib/security/transport/tsi_error.c + src/core/lib/security/util/b64.c + src/core/lib/security/util/json_util.c + src/core/lib/surface/init_secure.c + src/core/lib/tsi/fake_transport_security.c + src/core/lib/tsi/ssl_transport_security.c + src/core/lib/tsi/transport_security.c + src/core/plugin_registry/grpc_cronet_plugin_registry.c +) + +target_include_directories(grpc_cronet + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib +) + +target_link_libraries(grpc_cronet + ${_gRPC_BASELIB_LIBRARIES} + ${_gRPC_SSL_LIBRARIES} + gpr +) + +foreach(_hdr + include/grpc/byte_buffer.h + include/grpc/byte_buffer_reader.h + include/grpc/compression.h + include/grpc/grpc.h + include/grpc/grpc_posix.h + include/grpc/status.h + include/grpc/impl/codegen/byte_buffer.h + include/grpc/impl/codegen/byte_buffer_reader.h + include/grpc/impl/codegen/compression_types.h + include/grpc/impl/codegen/connectivity_state.h + include/grpc/impl/codegen/grpc_types.h + include/grpc/impl/codegen/propagation_bits.h + include/grpc/impl/codegen/status.h + include/grpc/impl/codegen/alloc.h + include/grpc/impl/codegen/atm.h + include/grpc/impl/codegen/atm_gcc_atomic.h + include/grpc/impl/codegen/atm_gcc_sync.h + include/grpc/impl/codegen/atm_windows.h + include/grpc/impl/codegen/log.h + include/grpc/impl/codegen/port_platform.h + include/grpc/impl/codegen/slice.h + include/grpc/impl/codegen/slice_buffer.h + include/grpc/impl/codegen/sync.h + include/grpc/impl/codegen/sync_generic.h + include/grpc/impl/codegen/sync_posix.h + include/grpc/impl/codegen/sync_windows.h + include/grpc/impl/codegen/time.h + include/grpc/grpc_cronet.h + include/grpc/grpc_security.h + include/grpc/grpc_security_constants.h +) + string(REPLACE "include/" "" _path ${_hdr}) + get_filename_component(_path ${_path} PATH) + install(FILES ${_hdr} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${_path}" + ) +endforeach() + + +install(TARGETS grpc_cronet EXPORT gRPCTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + + +add_library(grpc_unsecure + src/core/lib/surface/init.c + src/core/lib/surface/init_unsecure.c + src/core/lib/channel/channel_args.c + src/core/lib/channel/channel_stack.c + src/core/lib/channel/channel_stack_builder.c + src/core/lib/channel/compress_filter.c + src/core/lib/channel/connected_channel.c + src/core/lib/channel/handshaker.c + src/core/lib/channel/http_client_filter.c + src/core/lib/channel/http_server_filter.c + src/core/lib/compression/compression.c + src/core/lib/compression/message_compress.c + src/core/lib/debug/trace.c + src/core/lib/http/format_request.c + src/core/lib/http/httpcli.c + src/core/lib/http/parser.c + src/core/lib/iomgr/closure.c + src/core/lib/iomgr/endpoint.c + src/core/lib/iomgr/endpoint_pair_posix.c + src/core/lib/iomgr/endpoint_pair_windows.c + src/core/lib/iomgr/error.c + src/core/lib/iomgr/ev_epoll_linux.c + src/core/lib/iomgr/ev_poll_and_epoll_posix.c + src/core/lib/iomgr/ev_poll_posix.c + src/core/lib/iomgr/ev_posix.c + src/core/lib/iomgr/exec_ctx.c + src/core/lib/iomgr/executor.c + src/core/lib/iomgr/iocp_windows.c + src/core/lib/iomgr/iomgr.c + src/core/lib/iomgr/iomgr_posix.c + src/core/lib/iomgr/iomgr_windows.c + src/core/lib/iomgr/load_file.c + src/core/lib/iomgr/network_status_tracker.c + src/core/lib/iomgr/polling_entity.c + src/core/lib/iomgr/pollset_set_windows.c + src/core/lib/iomgr/pollset_windows.c + src/core/lib/iomgr/resolve_address_posix.c + src/core/lib/iomgr/resolve_address_windows.c + src/core/lib/iomgr/sockaddr_utils.c + src/core/lib/iomgr/socket_utils_common_posix.c + src/core/lib/iomgr/socket_utils_linux.c + src/core/lib/iomgr/socket_utils_posix.c + src/core/lib/iomgr/socket_windows.c + src/core/lib/iomgr/tcp_client_posix.c + src/core/lib/iomgr/tcp_client_windows.c + src/core/lib/iomgr/tcp_posix.c + src/core/lib/iomgr/tcp_server_posix.c + src/core/lib/iomgr/tcp_server_windows.c + src/core/lib/iomgr/tcp_windows.c + src/core/lib/iomgr/time_averaged_stats.c + src/core/lib/iomgr/timer.c + src/core/lib/iomgr/timer_heap.c + src/core/lib/iomgr/udp_server.c + src/core/lib/iomgr/unix_sockets_posix.c + src/core/lib/iomgr/unix_sockets_posix_noop.c + src/core/lib/iomgr/wakeup_fd_eventfd.c + src/core/lib/iomgr/wakeup_fd_nospecial.c + src/core/lib/iomgr/wakeup_fd_pipe.c + src/core/lib/iomgr/wakeup_fd_posix.c + src/core/lib/iomgr/workqueue_posix.c + src/core/lib/iomgr/workqueue_windows.c + src/core/lib/json/json.c + src/core/lib/json/json_reader.c + src/core/lib/json/json_string.c + src/core/lib/json/json_writer.c + src/core/lib/surface/alarm.c + src/core/lib/surface/api_trace.c + src/core/lib/surface/byte_buffer.c + src/core/lib/surface/byte_buffer_reader.c + src/core/lib/surface/call.c + src/core/lib/surface/call_details.c + src/core/lib/surface/call_log_batch.c + src/core/lib/surface/channel.c + src/core/lib/surface/channel_init.c + src/core/lib/surface/channel_ping.c + src/core/lib/surface/channel_stack_type.c + src/core/lib/surface/completion_queue.c + src/core/lib/surface/event_string.c + src/core/lib/surface/lame_client.c + src/core/lib/surface/metadata_array.c + src/core/lib/surface/server.c + src/core/lib/surface/validate_metadata.c + src/core/lib/surface/version.c + src/core/lib/transport/byte_stream.c + src/core/lib/transport/connectivity_state.c + src/core/lib/transport/metadata.c + src/core/lib/transport/metadata_batch.c + src/core/lib/transport/static_metadata.c + src/core/lib/transport/timeout_encoding.c + src/core/lib/transport/transport.c + src/core/lib/transport/transport_op_string.c + src/core/ext/transport/chttp2/server/insecure/server_chttp2.c + src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c + src/core/ext/transport/chttp2/transport/bin_decoder.c + src/core/ext/transport/chttp2/transport/bin_encoder.c + src/core/ext/transport/chttp2/transport/chttp2_plugin.c + src/core/ext/transport/chttp2/transport/chttp2_transport.c + src/core/ext/transport/chttp2/transport/frame_data.c + src/core/ext/transport/chttp2/transport/frame_goaway.c + src/core/ext/transport/chttp2/transport/frame_ping.c + src/core/ext/transport/chttp2/transport/frame_rst_stream.c + src/core/ext/transport/chttp2/transport/frame_settings.c + src/core/ext/transport/chttp2/transport/frame_window_update.c + src/core/ext/transport/chttp2/transport/hpack_encoder.c + src/core/ext/transport/chttp2/transport/hpack_parser.c + src/core/ext/transport/chttp2/transport/hpack_table.c + src/core/ext/transport/chttp2/transport/huffsyms.c + src/core/ext/transport/chttp2/transport/incoming_metadata.c + src/core/ext/transport/chttp2/transport/parsing.c + src/core/ext/transport/chttp2/transport/status_conversion.c + src/core/ext/transport/chttp2/transport/stream_lists.c + src/core/ext/transport/chttp2/transport/stream_map.c + src/core/ext/transport/chttp2/transport/varint.c + src/core/ext/transport/chttp2/transport/writing.c + src/core/ext/transport/chttp2/alpn/alpn.c + src/core/ext/transport/chttp2/client/insecure/channel_create.c + src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c + src/core/ext/client_config/channel_connectivity.c + src/core/ext/client_config/client_channel.c + src/core/ext/client_config/client_channel_factory.c + src/core/ext/client_config/client_config.c + src/core/ext/client_config/client_config_plugin.c + src/core/ext/client_config/connector.c + src/core/ext/client_config/default_initial_connect_string.c + src/core/ext/client_config/initial_connect_string.c + src/core/ext/client_config/lb_policy.c + src/core/ext/client_config/lb_policy_factory.c + src/core/ext/client_config/lb_policy_registry.c + src/core/ext/client_config/parse_address.c + src/core/ext/client_config/resolver.c + src/core/ext/client_config/resolver_factory.c + src/core/ext/client_config/resolver_registry.c + src/core/ext/client_config/subchannel.c + src/core/ext/client_config/subchannel_call_holder.c + src/core/ext/client_config/subchannel_index.c + src/core/ext/client_config/uri_parser.c + src/core/ext/resolver/dns/native/dns_resolver.c + src/core/ext/resolver/sockaddr/sockaddr_resolver.c + src/core/ext/load_reporting/load_reporting.c + src/core/ext/load_reporting/load_reporting_filter.c + src/core/ext/lb_policy/grpclb/grpclb.c + src/core/ext/lb_policy/grpclb/load_balancer_api.c + src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c + third_party/nanopb/pb_common.c + third_party/nanopb/pb_decode.c + third_party/nanopb/pb_encode.c + src/core/ext/lb_policy/pick_first/pick_first.c + src/core/ext/lb_policy/round_robin/round_robin.c + src/core/ext/census/base_resources.c + src/core/ext/census/context.c + src/core/ext/census/gen/census.pb.c + src/core/ext/census/grpc_context.c + src/core/ext/census/grpc_filter.c + src/core/ext/census/grpc_plugin.c + src/core/ext/census/initialize.c + src/core/ext/census/mlog.c + src/core/ext/census/operation.c + src/core/ext/census/placeholders.c + src/core/ext/census/resource.c + src/core/ext/census/tracing.c + src/core/plugin_registry/grpc_unsecure_plugin_registry.c +) + +target_include_directories(grpc_unsecure + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${BORINGSSL_ROOT_DIR}/include + PRIVATE ${PROTOBUF_ROOT_DIR}/src + PRIVATE ${ZLIB_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib +) + +target_link_libraries(grpc_unsecure + ${_gRPC_BASELIB_LIBRARIES} + gpr +) + +foreach(_hdr + include/grpc/byte_buffer.h + include/grpc/byte_buffer_reader.h + include/grpc/compression.h + include/grpc/grpc.h + include/grpc/grpc_posix.h + include/grpc/status.h include/grpc/impl/codegen/byte_buffer.h include/grpc/impl/codegen/byte_buffer_reader.h include/grpc/impl/codegen/compression_types.h @@ -1466,6 +1506,7 @@ foreach(_hdr include/grpc/impl/codegen/sync_posix.h include/grpc/impl/codegen/sync_windows.h include/grpc/impl/codegen/time.h + include/grpc/census.h ) string(REPLACE "include/" "" _path ${_hdr}) get_filename_component(_path ${_path} PATH) @@ -1475,48 +1516,7 @@ foreach(_hdr endforeach() -install(TARGETS grpc++_unsecure EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - -add_library(grpc_plugin_support - src/compiler/c_generator.cc - src/compiler/cpp_generator.cc - src/compiler/csharp_generator.cc - src/compiler/node_generator.cc - src/compiler/objective_c_generator.cc - src/compiler/python_generator.cc - src/compiler/ruby_generator.cc -) - -target_include_directories(grpc_plugin_support - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_INCLUDE_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_plugin_support - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} -) - -foreach(_hdr - include/grpc++/impl/codegen/config_protobuf.h -) - string(REPLACE "include/" "" _path ${_hdr}) - get_filename_component(_path ${_path} PATH) - install(FILES ${_hdr} - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${_path}" - ) -endforeach() - - -install(TARGETS grpc_plugin_support EXPORT gRPCTargets +install(TARGETS grpc_unsecure EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -1551,11 +1551,11 @@ install(TARGETS grpc_csharp_ext EXPORT gRPCTargets -add_executable(gen_hpack_tables - tools/codegen/core/gen_hpack_tables.c +add_executable(grpc_c_plugin + src/compiler/c_plugin.cc ) -target_include_directories(gen_hpack_tables +target_include_directories(grpc_c_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1564,24 +1564,24 @@ target_include_directories(gen_hpack_tables PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(gen_hpack_tables - gpr - grpc +target_link_libraries(grpc_c_plugin + ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} + grpc_plugin_support ) -install(TARGETS gen_hpack_tables EXPORT gRPCTargets +install(TARGETS grpc_c_plugin EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(gen_legal_metadata_characters - tools/codegen/core/gen_legal_metadata_characters.c +add_executable(grpc_cpp_plugin + src/compiler/cpp_plugin.cc ) -target_include_directories(gen_legal_metadata_characters +target_include_directories(grpc_cpp_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1590,20 +1590,24 @@ target_include_directories(gen_legal_metadata_characters PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) +target_link_libraries(grpc_cpp_plugin + ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} + grpc_plugin_support +) -install(TARGETS gen_legal_metadata_characters EXPORT gRPCTargets +install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_create_jwt - test/core/security/create_jwt.c +add_executable(grpc_csharp_plugin + src/compiler/csharp_plugin.cc ) -target_include_directories(grpc_create_jwt +target_include_directories(grpc_csharp_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1612,25 +1616,24 @@ target_include_directories(grpc_create_jwt PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_create_jwt - ${_gRPC_SSL_LIBRARIES} - grpc - gpr +target_link_libraries(grpc_csharp_plugin + ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} + grpc_plugin_support ) -install(TARGETS grpc_create_jwt EXPORT gRPCTargets +install(TARGETS grpc_csharp_plugin EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_print_google_default_creds_token - test/core/security/print_google_default_creds_token.c +add_executable(grpc_node_plugin + src/compiler/node_plugin.cc ) -target_include_directories(grpc_print_google_default_creds_token +target_include_directories(grpc_node_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1639,24 +1642,24 @@ target_include_directories(grpc_print_google_default_creds_token PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_print_google_default_creds_token - grpc - gpr +target_link_libraries(grpc_node_plugin + ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} + grpc_plugin_support ) -install(TARGETS grpc_print_google_default_creds_token EXPORT gRPCTargets +install(TARGETS grpc_node_plugin EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_verify_jwt - test/core/security/verify_jwt.c +add_executable(grpc_objective_c_plugin + src/compiler/objective_c_plugin.cc ) -target_include_directories(grpc_verify_jwt +target_include_directories(grpc_objective_c_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1665,24 +1668,24 @@ target_include_directories(grpc_verify_jwt PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_verify_jwt - grpc - gpr +target_link_libraries(grpc_objective_c_plugin + ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} + grpc_plugin_support ) -install(TARGETS grpc_verify_jwt EXPORT gRPCTargets +install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_c_plugin - src/compiler/c_plugin.cc +add_executable(grpc_python_plugin + src/compiler/python_plugin.cc ) -target_include_directories(grpc_c_plugin +target_include_directories(grpc_python_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1691,24 +1694,24 @@ target_include_directories(grpc_c_plugin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_c_plugin +target_link_libraries(grpc_python_plugin ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} grpc_plugin_support ) -install(TARGETS grpc_c_plugin EXPORT gRPCTargets +install(TARGETS grpc_python_plugin EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_cpp_plugin - src/compiler/cpp_plugin.cc +add_executable(grpc_ruby_plugin + src/compiler/ruby_plugin.cc ) -target_include_directories(grpc_cpp_plugin +target_include_directories(grpc_ruby_plugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1717,24 +1720,24 @@ target_include_directories(grpc_cpp_plugin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_cpp_plugin +target_link_libraries(grpc_ruby_plugin ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} grpc_plugin_support ) -install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets +install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_csharp_plugin - src/compiler/csharp_plugin.cc +add_executable(gen_hpack_tables + tools/codegen/core/gen_hpack_tables.c ) -target_include_directories(grpc_csharp_plugin +target_include_directories(gen_hpack_tables PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1743,24 +1746,24 @@ target_include_directories(grpc_csharp_plugin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_csharp_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support +target_link_libraries(gen_hpack_tables + gpr + grpc ) -install(TARGETS grpc_csharp_plugin EXPORT gRPCTargets +install(TARGETS gen_hpack_tables EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_node_plugin - src/compiler/node_plugin.cc +add_executable(gen_legal_metadata_characters + tools/codegen/core/gen_legal_metadata_characters.c ) -target_include_directories(grpc_node_plugin +target_include_directories(gen_legal_metadata_characters PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1769,24 +1772,20 @@ target_include_directories(grpc_node_plugin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_node_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support -) -install(TARGETS grpc_node_plugin EXPORT gRPCTargets +install(TARGETS gen_legal_metadata_characters EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_objective_c_plugin - src/compiler/objective_c_plugin.cc +add_executable(grpc_create_jwt + test/core/security/create_jwt.c ) -target_include_directories(grpc_objective_c_plugin +target_include_directories(grpc_create_jwt PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1795,24 +1794,25 @@ target_include_directories(grpc_objective_c_plugin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_objective_c_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support +target_link_libraries(grpc_create_jwt + ${_gRPC_SSL_LIBRARIES} + grpc + gpr ) -install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets +install(TARGETS grpc_create_jwt EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_python_plugin - src/compiler/python_plugin.cc +add_executable(grpc_print_google_default_creds_token + test/core/security/print_google_default_creds_token.c ) -target_include_directories(grpc_python_plugin +target_include_directories(grpc_print_google_default_creds_token PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1821,24 +1821,24 @@ target_include_directories(grpc_python_plugin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_python_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support +target_link_libraries(grpc_print_google_default_creds_token + grpc + gpr ) -install(TARGETS grpc_python_plugin EXPORT gRPCTargets +install(TARGETS grpc_print_google_default_creds_token EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -add_executable(grpc_ruby_plugin - src/compiler/ruby_plugin.cc +add_executable(grpc_verify_jwt + test/core/security/verify_jwt.c ) -target_include_directories(grpc_ruby_plugin +target_include_directories(grpc_verify_jwt PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${BORINGSSL_ROOT_DIR}/include @@ -1847,13 +1847,13 @@ target_include_directories(grpc_ruby_plugin PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib ) -target_link_libraries(grpc_ruby_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support +target_link_libraries(grpc_verify_jwt + grpc + gpr ) -install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets +install(TARGETS grpc_verify_jwt EXPORT gRPCTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/Makefile b/Makefile index ed56b89f5d438..46e38df6dab79 100644 --- a/Makefile +++ b/Makefile @@ -826,6 +826,31 @@ PC_LIBS_PRIVATE = $(PC_LIBS_GRPCXX) PC_LIB = -lgrpc++ GRPCXX_UNSECURE_PC_FILE := $(PC_TEMPLATE) + + +PC_REQUIRES_GRPC_C = +PC_LIBS_GRPC_C = + +# grpc_c .pc file +PC_NAME = gRPC C +PC_DESCRIPTION = C wrapper for gRPC +PC_CFLAGS = +PC_REQUIRES_PRIVATE = grpc $(PC_REQUIRES_GRPC_C) +PC_LIBS_PRIVATE = $(PC_LIBS_GRPC_C) +PC_LIB = -lgrpc_c +GRPC_C_PC_FILE := $(PC_TEMPLATE) + +# grpc_c_unsecure .pc file +PC_NAME = gRPC C unsecure +PC_DESCRIPTION = C wrapper for gRPC without SSL +PC_CFLAGS = +PC_REQUIRES_PRIVATE = grpc_unsecure $(PC_REQUIRES_GRPC_C) +PC_LIBS_PRIVATE = $(PC_LIBS_GRPC_C) +PC_LIB = -lgrpc_c +GRPC_C_UNSECURE_PC_FILE := $(PC_TEMPLATE) + + + ifeq ($(MAKECMDGOALS),clean) NO_DEPS = true endif @@ -839,7 +864,6 @@ endif .SECONDARY = %.pb.h %.pb.cc -# This is the 'all' target to be executed after handling prerequisites ifeq ($(DEP_MISSING),) all: nanopb_protobuf_dep static shared plugins dep_error: @@ -937,6 +961,60 @@ systemtap_dep_error: stop: @false +alarm_cpp_test: $(BINDIR)/$(CONFIG)/alarm_cpp_test +async_end2end_test: $(BINDIR)/$(CONFIG)/async_end2end_test +auth_property_iterator_test: $(BINDIR)/$(CONFIG)/auth_property_iterator_test +channel_arguments_test: $(BINDIR)/$(CONFIG)/channel_arguments_test +cli_call_test: $(BINDIR)/$(CONFIG)/cli_call_test +client_crash_test: $(BINDIR)/$(CONFIG)/client_crash_test +client_crash_test_server: $(BINDIR)/$(CONFIG)/client_crash_test_server +codegen_test_full: $(BINDIR)/$(CONFIG)/codegen_test_full +codegen_test_minimal: $(BINDIR)/$(CONFIG)/codegen_test_minimal +credentials_test: $(BINDIR)/$(CONFIG)/credentials_test +cxx_byte_buffer_test: $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test +cxx_slice_test: $(BINDIR)/$(CONFIG)/cxx_slice_test +cxx_string_ref_test: $(BINDIR)/$(CONFIG)/cxx_string_ref_test +cxx_time_test: $(BINDIR)/$(CONFIG)/cxx_time_test +end2end_test: $(BINDIR)/$(CONFIG)/end2end_test +generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test +golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test +grpc_c_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_end2end_test +grpc_c_generic_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test +grpc_c_plugin: $(BINDIR)/$(CONFIG)/grpc_c_plugin +grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli +grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin +grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin +grpc_node_plugin: $(BINDIR)/$(CONFIG)/grpc_node_plugin +grpc_objective_c_plugin: $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin +grpc_python_plugin: $(BINDIR)/$(CONFIG)/grpc_python_plugin +grpc_ruby_plugin: $(BINDIR)/$(CONFIG)/grpc_ruby_plugin +grpclb_api_test: $(BINDIR)/$(CONFIG)/grpclb_api_test +grpclb_test: $(BINDIR)/$(CONFIG)/grpclb_test +hybrid_end2end_test: $(BINDIR)/$(CONFIG)/hybrid_end2end_test +interop_client: $(BINDIR)/$(CONFIG)/interop_client +interop_server: $(BINDIR)/$(CONFIG)/interop_server +interop_test: $(BINDIR)/$(CONFIG)/interop_test +json_run_localhost: $(BINDIR)/$(CONFIG)/json_run_localhost +metrics_client: $(BINDIR)/$(CONFIG)/metrics_client +mock_test: $(BINDIR)/$(CONFIG)/mock_test +proto_server_reflection_test: $(BINDIR)/$(CONFIG)/proto_server_reflection_test +qps_interarrival_test: $(BINDIR)/$(CONFIG)/qps_interarrival_test +qps_json_driver: $(BINDIR)/$(CONFIG)/qps_json_driver +qps_openloop_test: $(BINDIR)/$(CONFIG)/qps_openloop_test +qps_worker: $(BINDIR)/$(CONFIG)/qps_worker +reconnect_interop_client: $(BINDIR)/$(CONFIG)/reconnect_interop_client +reconnect_interop_server: $(BINDIR)/$(CONFIG)/reconnect_interop_server +secure_auth_context_test: $(BINDIR)/$(CONFIG)/secure_auth_context_test +secure_sync_unary_ping_pong_test: $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test +server_builder_plugin_test: $(BINDIR)/$(CONFIG)/server_builder_plugin_test +server_crash_test: $(BINDIR)/$(CONFIG)/server_crash_test +server_crash_test_client: $(BINDIR)/$(CONFIG)/server_crash_test_client +shutdown_test: $(BINDIR)/$(CONFIG)/shutdown_test +status_test: $(BINDIR)/$(CONFIG)/status_test +streaming_throughput_test: $(BINDIR)/$(CONFIG)/streaming_throughput_test +stress_test: $(BINDIR)/$(CONFIG)/stress_test +thread_stress_test: $(BINDIR)/$(CONFIG)/thread_stress_test +public_headers_must_be_c89: $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 alarm_test: $(BINDIR)/$(CONFIG)/alarm_test algorithm_test: $(BINDIR)/$(CONFIG)/algorithm_test alloc_test: $(BINDIR)/$(CONFIG)/alloc_test @@ -1055,60 +1133,6 @@ transport_security_test: $(BINDIR)/$(CONFIG)/transport_security_test udp_server_test: $(BINDIR)/$(CONFIG)/udp_server_test uri_fuzzer_test: $(BINDIR)/$(CONFIG)/uri_fuzzer_test uri_parser_test: $(BINDIR)/$(CONFIG)/uri_parser_test -alarm_cpp_test: $(BINDIR)/$(CONFIG)/alarm_cpp_test -async_end2end_test: $(BINDIR)/$(CONFIG)/async_end2end_test -auth_property_iterator_test: $(BINDIR)/$(CONFIG)/auth_property_iterator_test -channel_arguments_test: $(BINDIR)/$(CONFIG)/channel_arguments_test -cli_call_test: $(BINDIR)/$(CONFIG)/cli_call_test -client_crash_test: $(BINDIR)/$(CONFIG)/client_crash_test -client_crash_test_server: $(BINDIR)/$(CONFIG)/client_crash_test_server -codegen_test_full: $(BINDIR)/$(CONFIG)/codegen_test_full -codegen_test_minimal: $(BINDIR)/$(CONFIG)/codegen_test_minimal -credentials_test: $(BINDIR)/$(CONFIG)/credentials_test -cxx_byte_buffer_test: $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test -cxx_slice_test: $(BINDIR)/$(CONFIG)/cxx_slice_test -cxx_string_ref_test: $(BINDIR)/$(CONFIG)/cxx_string_ref_test -cxx_time_test: $(BINDIR)/$(CONFIG)/cxx_time_test -end2end_test: $(BINDIR)/$(CONFIG)/end2end_test -generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test -golden_file_test: $(BINDIR)/$(CONFIG)/golden_file_test -grpc_c_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_end2end_test -grpc_c_generic_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test -grpc_c_plugin: $(BINDIR)/$(CONFIG)/grpc_c_plugin -grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli -grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin -grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin -grpc_node_plugin: $(BINDIR)/$(CONFIG)/grpc_node_plugin -grpc_objective_c_plugin: $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin -grpc_python_plugin: $(BINDIR)/$(CONFIG)/grpc_python_plugin -grpc_ruby_plugin: $(BINDIR)/$(CONFIG)/grpc_ruby_plugin -grpclb_api_test: $(BINDIR)/$(CONFIG)/grpclb_api_test -grpclb_test: $(BINDIR)/$(CONFIG)/grpclb_test -hybrid_end2end_test: $(BINDIR)/$(CONFIG)/hybrid_end2end_test -interop_client: $(BINDIR)/$(CONFIG)/interop_client -interop_server: $(BINDIR)/$(CONFIG)/interop_server -interop_test: $(BINDIR)/$(CONFIG)/interop_test -json_run_localhost: $(BINDIR)/$(CONFIG)/json_run_localhost -metrics_client: $(BINDIR)/$(CONFIG)/metrics_client -mock_test: $(BINDIR)/$(CONFIG)/mock_test -proto_server_reflection_test: $(BINDIR)/$(CONFIG)/proto_server_reflection_test -qps_interarrival_test: $(BINDIR)/$(CONFIG)/qps_interarrival_test -qps_json_driver: $(BINDIR)/$(CONFIG)/qps_json_driver -qps_openloop_test: $(BINDIR)/$(CONFIG)/qps_openloop_test -qps_worker: $(BINDIR)/$(CONFIG)/qps_worker -reconnect_interop_client: $(BINDIR)/$(CONFIG)/reconnect_interop_client -reconnect_interop_server: $(BINDIR)/$(CONFIG)/reconnect_interop_server -secure_auth_context_test: $(BINDIR)/$(CONFIG)/secure_auth_context_test -secure_sync_unary_ping_pong_test: $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test -server_builder_plugin_test: $(BINDIR)/$(CONFIG)/server_builder_plugin_test -server_crash_test: $(BINDIR)/$(CONFIG)/server_crash_test -server_crash_test_client: $(BINDIR)/$(CONFIG)/server_crash_test_client -shutdown_test: $(BINDIR)/$(CONFIG)/shutdown_test -status_test: $(BINDIR)/$(CONFIG)/status_test -streaming_throughput_test: $(BINDIR)/$(CONFIG)/streaming_throughput_test -stress_test: $(BINDIR)/$(CONFIG)/stress_test -thread_stress_test: $(BINDIR)/$(CONFIG)/thread_stress_test -public_headers_must_be_c89: $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 boringssl_aes_test: $(BINDIR)/$(CONFIG)/boringssl_aes_test boringssl_asn1_test: $(BINDIR)/$(CONFIG)/boringssl_asn1_test boringssl_base64_test: $(BINDIR)/$(CONFIG)/boringssl_base64_test @@ -1230,28 +1254,34 @@ $(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure $(BIN $(Q)cp third_party/protobuf/src/.libs/libprotobuf.a $(LIBDIR)/$(CONFIG)/protobuf $(Q)cp third_party/protobuf/src/.libs/libprotoc.a $(LIBDIR)/$(CONFIG)/protobuf -static: static_c static_cxx - -static_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a +static: static_c static_core static_cxx +static_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/libgrpc_c.a +static_core: pc_core pc_core_unsecure cache.mk $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a static_cxx: pc_cxx pc_cxx_unsecure cache.mk $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a -shared: shared_c shared_cxx +shared: shared_c shared_core shared_cxx -shared_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) +shared_c: pc_c pc_c_unsecure cache.mk $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) +shared_core: pc_core pc_core_unsecure cache.mk $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) shared_cxx: pc_cxx pc_cxx_unsecure cache.mk $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) -shared_csharp: shared_c $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION).$(SHARED_EXT) +shared_csharp: shared_core $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_csharp_ext$(SHARED_VERSION).$(SHARED_EXT) grpc_csharp_ext: shared_csharp plugins: $(PROTOC_PLUGINS) -privatelibs: privatelibs_c privatelibs_cxx +privatelibs: privatelibs_c privatelibs_core privatelibs_cxx + +privatelibs_c: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a +privatelibs_core: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a +pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c.pc -privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a -pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc +pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c_unsecure.pc -pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc +pc_core: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc + +pc_core_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc pc_cxx: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc @@ -1264,9 +1294,54 @@ privatelibs_cxx: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$ endif -buildtests: buildtests_c buildtests_cxx +buildtests: buildtests_c buildtests_core buildtests_cxx buildtests_c: privatelibs_c \ + $(BINDIR)/$(CONFIG)/badreq_bad_client_test \ + $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test \ + $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test \ + $(BINDIR)/$(CONFIG)/headers_bad_client_test \ + $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test \ + $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test \ + $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test \ + $(BINDIR)/$(CONFIG)/simple_request_bad_client_test \ + $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test \ + $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test \ + $(BINDIR)/$(CONFIG)/bad_ssl_alpn_server \ + $(BINDIR)/$(CONFIG)/bad_ssl_cert_server \ + $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test \ + $(BINDIR)/$(CONFIG)/bad_ssl_cert_test \ + $(BINDIR)/$(CONFIG)/h2_census_test \ + $(BINDIR)/$(CONFIG)/h2_compress_test \ + $(BINDIR)/$(CONFIG)/h2_fakesec_test \ + $(BINDIR)/$(CONFIG)/h2_fd_test \ + $(BINDIR)/$(CONFIG)/h2_full_test \ + $(BINDIR)/$(CONFIG)/h2_full+pipe_test \ + $(BINDIR)/$(CONFIG)/h2_full+trace_test \ + $(BINDIR)/$(CONFIG)/h2_load_reporting_test \ + $(BINDIR)/$(CONFIG)/h2_oauth2_test \ + $(BINDIR)/$(CONFIG)/h2_proxy_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair+trace_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test \ + $(BINDIR)/$(CONFIG)/h2_ssl_test \ + $(BINDIR)/$(CONFIG)/h2_ssl_cert_test \ + $(BINDIR)/$(CONFIG)/h2_ssl_proxy_test \ + $(BINDIR)/$(CONFIG)/h2_uds_test \ + $(BINDIR)/$(CONFIG)/h2_census_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_compress_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_fd_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_full_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_load_reporting_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_proxy_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_uds_nosec_test \ + +buildtests_core: privatelibs_core \ $(BINDIR)/$(CONFIG)/alarm_test \ $(BINDIR)/$(CONFIG)/algorithm_test \ $(BINDIR)/$(CONFIG)/alloc_test \ @@ -1369,50 +1444,6 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/transport_security_test \ $(BINDIR)/$(CONFIG)/udp_server_test \ $(BINDIR)/$(CONFIG)/uri_parser_test \ - $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 \ - $(BINDIR)/$(CONFIG)/badreq_bad_client_test \ - $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test \ - $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test \ - $(BINDIR)/$(CONFIG)/headers_bad_client_test \ - $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test \ - $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test \ - $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test \ - $(BINDIR)/$(CONFIG)/simple_request_bad_client_test \ - $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test \ - $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test \ - $(BINDIR)/$(CONFIG)/bad_ssl_alpn_server \ - $(BINDIR)/$(CONFIG)/bad_ssl_cert_server \ - $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test \ - $(BINDIR)/$(CONFIG)/bad_ssl_cert_test \ - $(BINDIR)/$(CONFIG)/h2_census_test \ - $(BINDIR)/$(CONFIG)/h2_compress_test \ - $(BINDIR)/$(CONFIG)/h2_fakesec_test \ - $(BINDIR)/$(CONFIG)/h2_fd_test \ - $(BINDIR)/$(CONFIG)/h2_full_test \ - $(BINDIR)/$(CONFIG)/h2_full+pipe_test \ - $(BINDIR)/$(CONFIG)/h2_full+trace_test \ - $(BINDIR)/$(CONFIG)/h2_load_reporting_test \ - $(BINDIR)/$(CONFIG)/h2_oauth2_test \ - $(BINDIR)/$(CONFIG)/h2_proxy_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair+trace_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test \ - $(BINDIR)/$(CONFIG)/h2_ssl_test \ - $(BINDIR)/$(CONFIG)/h2_ssl_cert_test \ - $(BINDIR)/$(CONFIG)/h2_ssl_proxy_test \ - $(BINDIR)/$(CONFIG)/h2_uds_test \ - $(BINDIR)/$(CONFIG)/h2_census_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_compress_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_fd_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_full_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_load_reporting_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_proxy_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_uds_nosec_test \ $(BINDIR)/$(CONFIG)/api_fuzzer_one_entry \ $(BINDIR)/$(CONFIG)/client_fuzzer_one_entry \ $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry \ @@ -1424,7 +1455,6 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/server_fuzzer_one_entry \ $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry \ - ifeq ($(EMBED_OPENSSL),true) buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/alarm_cpp_test \ @@ -1563,61 +1593,158 @@ buildtests_cxx: privatelibs_cxx \ endif -# This is the 'test' target to be executed after handling prerequisites -test: test_c test_cxx +test: test_c test_core test_cxx -flaky_test: flaky_test_c flaky_test_cxx +flaky_test: flaky_test_c flaky_test_core flaky_test_cxx test_c: buildtests_c - $(E) "[RUN] Testing alarm_test" - $(Q) $(BINDIR)/$(CONFIG)/alarm_test || ( echo test alarm_test failed ; exit 1 ) - $(E) "[RUN] Testing algorithm_test" - $(Q) $(BINDIR)/$(CONFIG)/algorithm_test || ( echo test algorithm_test failed ; exit 1 ) - $(E) "[RUN] Testing alloc_test" - $(Q) $(BINDIR)/$(CONFIG)/alloc_test || ( echo test alloc_test failed ; exit 1 ) - $(E) "[RUN] Testing alpn_test" - $(Q) $(BINDIR)/$(CONFIG)/alpn_test || ( echo test alpn_test failed ; exit 1 ) - $(E) "[RUN] Testing bad_server_response_test" - $(Q) $(BINDIR)/$(CONFIG)/bad_server_response_test || ( echo test bad_server_response_test failed ; exit 1 ) - $(E) "[RUN] Testing bin_decoder_test" - $(Q) $(BINDIR)/$(CONFIG)/bin_decoder_test || ( echo test bin_decoder_test failed ; exit 1 ) - $(E) "[RUN] Testing bin_encoder_test" - $(Q) $(BINDIR)/$(CONFIG)/bin_encoder_test || ( echo test bin_encoder_test failed ; exit 1 ) - $(E) "[RUN] Testing census_context_test" - $(Q) $(BINDIR)/$(CONFIG)/census_context_test || ( echo test census_context_test failed ; exit 1 ) - $(E) "[RUN] Testing census_resource_test" - $(Q) $(BINDIR)/$(CONFIG)/census_resource_test || ( echo test census_resource_test failed ; exit 1 ) - $(E) "[RUN] Testing channel_create_test" - $(Q) $(BINDIR)/$(CONFIG)/channel_create_test || ( echo test channel_create_test failed ; exit 1 ) - $(E) "[RUN] Testing chttp2_hpack_encoder_test" - $(Q) $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test || ( echo test chttp2_hpack_encoder_test failed ; exit 1 ) - $(E) "[RUN] Testing chttp2_status_conversion_test" - $(Q) $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test || ( echo test chttp2_status_conversion_test failed ; exit 1 ) - $(E) "[RUN] Testing chttp2_stream_map_test" - $(Q) $(BINDIR)/$(CONFIG)/chttp2_stream_map_test || ( echo test chttp2_stream_map_test failed ; exit 1 ) - $(E) "[RUN] Testing chttp2_varint_test" - $(Q) $(BINDIR)/$(CONFIG)/chttp2_varint_test || ( echo test chttp2_varint_test failed ; exit 1 ) - $(E) "[RUN] Testing compression_test" - $(Q) $(BINDIR)/$(CONFIG)/compression_test || ( echo test compression_test failed ; exit 1 ) - $(E) "[RUN] Testing concurrent_connectivity_test" - $(Q) $(BINDIR)/$(CONFIG)/concurrent_connectivity_test || ( echo test concurrent_connectivity_test failed ; exit 1 ) - $(E) "[RUN] Testing dns_resolver_connectivity_test" - $(Q) $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test || ( echo test dns_resolver_connectivity_test failed ; exit 1 ) - $(E) "[RUN] Testing dns_resolver_test" - $(Q) $(BINDIR)/$(CONFIG)/dns_resolver_test || ( echo test dns_resolver_test failed ; exit 1 ) - $(E) "[RUN] Testing dualstack_socket_test" - $(Q) $(BINDIR)/$(CONFIG)/dualstack_socket_test || ( echo test dualstack_socket_test failed ; exit 1 ) - $(E) "[RUN] Testing endpoint_pair_test" - $(Q) $(BINDIR)/$(CONFIG)/endpoint_pair_test || ( echo test endpoint_pair_test failed ; exit 1 ) - $(E) "[RUN] Testing ev_epoll_linux_test" - $(Q) $(BINDIR)/$(CONFIG)/ev_epoll_linux_test || ( echo test ev_epoll_linux_test failed ; exit 1 ) - $(E) "[RUN] Testing fd_conservation_posix_test" - $(Q) $(BINDIR)/$(CONFIG)/fd_conservation_posix_test || ( echo test fd_conservation_posix_test failed ; exit 1 ) - $(E) "[RUN] Testing fd_posix_test" - $(Q) $(BINDIR)/$(CONFIG)/fd_posix_test || ( echo test fd_posix_test failed ; exit 1 ) - $(E) "[RUN] Testing fling_stream_test" - $(Q) $(BINDIR)/$(CONFIG)/fling_stream_test || ( echo test fling_stream_test failed ; exit 1 ) - $(E) "[RUN] Testing fling_test" + $(E) "[RUN] Testing badreq_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/badreq_bad_client_test || ( echo test badreq_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing connection_prefix_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test || ( echo test connection_prefix_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing head_of_line_blocking_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test || ( echo test head_of_line_blocking_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing headers_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/headers_bad_client_test || ( echo test headers_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing initial_settings_frame_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test || ( echo test initial_settings_frame_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing large_metadata_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test || ( echo test large_metadata_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing server_registered_method_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test || ( echo test server_registered_method_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing simple_request_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/simple_request_bad_client_test || ( echo test simple_request_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing unknown_frame_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test || ( echo test unknown_frame_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing window_overflow_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test || ( echo test window_overflow_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing bad_ssl_alpn_test" + $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test || ( echo test bad_ssl_alpn_test failed ; exit 1 ) + $(E) "[RUN] Testing bad_ssl_cert_test" + $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_cert_test || ( echo test bad_ssl_cert_test failed ; exit 1 ) + +flaky_test_c: buildtests_c + +test_cxx: buildtests_cxx + $(E) "[RUN] Testing alarm_cpp_test" + $(Q) $(BINDIR)/$(CONFIG)/alarm_cpp_test || ( echo test alarm_cpp_test failed ; exit 1 ) + $(E) "[RUN] Testing async_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/async_end2end_test || ( echo test async_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing auth_property_iterator_test" + $(Q) $(BINDIR)/$(CONFIG)/auth_property_iterator_test || ( echo test auth_property_iterator_test failed ; exit 1 ) + $(E) "[RUN] Testing channel_arguments_test" + $(Q) $(BINDIR)/$(CONFIG)/channel_arguments_test || ( echo test channel_arguments_test failed ; exit 1 ) + $(E) "[RUN] Testing cli_call_test" + $(Q) $(BINDIR)/$(CONFIG)/cli_call_test || ( echo test cli_call_test failed ; exit 1 ) + $(E) "[RUN] Testing client_crash_test" + $(Q) $(BINDIR)/$(CONFIG)/client_crash_test || ( echo test client_crash_test failed ; exit 1 ) + $(E) "[RUN] Testing codegen_test_full" + $(Q) $(BINDIR)/$(CONFIG)/codegen_test_full || ( echo test codegen_test_full failed ; exit 1 ) + $(E) "[RUN] Testing codegen_test_minimal" + $(Q) $(BINDIR)/$(CONFIG)/codegen_test_minimal || ( echo test codegen_test_minimal failed ; exit 1 ) + $(E) "[RUN] Testing credentials_test" + $(Q) $(BINDIR)/$(CONFIG)/credentials_test || ( echo test credentials_test failed ; exit 1 ) + $(E) "[RUN] Testing cxx_byte_buffer_test" + $(Q) $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test || ( echo test cxx_byte_buffer_test failed ; exit 1 ) + $(E) "[RUN] Testing cxx_slice_test" + $(Q) $(BINDIR)/$(CONFIG)/cxx_slice_test || ( echo test cxx_slice_test failed ; exit 1 ) + $(E) "[RUN] Testing cxx_string_ref_test" + $(Q) $(BINDIR)/$(CONFIG)/cxx_string_ref_test || ( echo test cxx_string_ref_test failed ; exit 1 ) + $(E) "[RUN] Testing cxx_time_test" + $(Q) $(BINDIR)/$(CONFIG)/cxx_time_test || ( echo test cxx_time_test failed ; exit 1 ) + $(E) "[RUN] Testing end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/end2end_test || ( echo test end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing generic_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/generic_end2end_test || ( echo test generic_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing golden_file_test" + $(Q) $(BINDIR)/$(CONFIG)/golden_file_test || ( echo test golden_file_test failed ; exit 1 ) + $(E) "[RUN] Testing grpc_c_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/grpc_c_end2end_test || ( echo test grpc_c_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing grpc_c_generic_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test || ( echo test grpc_c_generic_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing grpclb_api_test" + $(Q) $(BINDIR)/$(CONFIG)/grpclb_api_test || ( echo test grpclb_api_test failed ; exit 1 ) + $(E) "[RUN] Testing grpclb_test" + $(Q) $(BINDIR)/$(CONFIG)/grpclb_test || ( echo test grpclb_test failed ; exit 1 ) + $(E) "[RUN] Testing hybrid_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/hybrid_end2end_test || ( echo test hybrid_end2end_test failed ; exit 1 ) + $(E) "[RUN] Testing interop_test" + $(Q) $(BINDIR)/$(CONFIG)/interop_test || ( echo test interop_test failed ; exit 1 ) + $(E) "[RUN] Testing mock_test" + $(Q) $(BINDIR)/$(CONFIG)/mock_test || ( echo test mock_test failed ; exit 1 ) + $(E) "[RUN] Testing proto_server_reflection_test" + $(Q) $(BINDIR)/$(CONFIG)/proto_server_reflection_test || ( echo test proto_server_reflection_test failed ; exit 1 ) + $(E) "[RUN] Testing qps_openloop_test" + $(Q) $(BINDIR)/$(CONFIG)/qps_openloop_test || ( echo test qps_openloop_test failed ; exit 1 ) + $(E) "[RUN] Testing secure_auth_context_test" + $(Q) $(BINDIR)/$(CONFIG)/secure_auth_context_test || ( echo test secure_auth_context_test failed ; exit 1 ) + $(E) "[RUN] Testing secure_sync_unary_ping_pong_test" + $(Q) $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test || ( echo test secure_sync_unary_ping_pong_test failed ; exit 1 ) + $(E) "[RUN] Testing server_builder_plugin_test" + $(Q) $(BINDIR)/$(CONFIG)/server_builder_plugin_test || ( echo test server_builder_plugin_test failed ; exit 1 ) + $(E) "[RUN] Testing server_crash_test" + $(Q) $(BINDIR)/$(CONFIG)/server_crash_test || ( echo test server_crash_test failed ; exit 1 ) + $(E) "[RUN] Testing shutdown_test" + $(Q) $(BINDIR)/$(CONFIG)/shutdown_test || ( echo test shutdown_test failed ; exit 1 ) + $(E) "[RUN] Testing status_test" + $(Q) $(BINDIR)/$(CONFIG)/status_test || ( echo test status_test failed ; exit 1 ) + $(E) "[RUN] Testing streaming_throughput_test" + $(Q) $(BINDIR)/$(CONFIG)/streaming_throughput_test || ( echo test streaming_throughput_test failed ; exit 1 ) + $(E) "[RUN] Testing thread_stress_test" + $(Q) $(BINDIR)/$(CONFIG)/thread_stress_test || ( echo test thread_stress_test failed ; exit 1 ) + +flaky_test_cxx: buildtests_cxx + +test_core: buildtests_core + $(E) "[RUN] Testing alarm_test" + $(Q) $(BINDIR)/$(CONFIG)/alarm_test || ( echo test alarm_test failed ; exit 1 ) + $(E) "[RUN] Testing algorithm_test" + $(Q) $(BINDIR)/$(CONFIG)/algorithm_test || ( echo test algorithm_test failed ; exit 1 ) + $(E) "[RUN] Testing alloc_test" + $(Q) $(BINDIR)/$(CONFIG)/alloc_test || ( echo test alloc_test failed ; exit 1 ) + $(E) "[RUN] Testing alpn_test" + $(Q) $(BINDIR)/$(CONFIG)/alpn_test || ( echo test alpn_test failed ; exit 1 ) + $(E) "[RUN] Testing bad_server_response_test" + $(Q) $(BINDIR)/$(CONFIG)/bad_server_response_test || ( echo test bad_server_response_test failed ; exit 1 ) + $(E) "[RUN] Testing bin_decoder_test" + $(Q) $(BINDIR)/$(CONFIG)/bin_decoder_test || ( echo test bin_decoder_test failed ; exit 1 ) + $(E) "[RUN] Testing bin_encoder_test" + $(Q) $(BINDIR)/$(CONFIG)/bin_encoder_test || ( echo test bin_encoder_test failed ; exit 1 ) + $(E) "[RUN] Testing census_context_test" + $(Q) $(BINDIR)/$(CONFIG)/census_context_test || ( echo test census_context_test failed ; exit 1 ) + $(E) "[RUN] Testing census_resource_test" + $(Q) $(BINDIR)/$(CONFIG)/census_resource_test || ( echo test census_resource_test failed ; exit 1 ) + $(E) "[RUN] Testing channel_create_test" + $(Q) $(BINDIR)/$(CONFIG)/channel_create_test || ( echo test channel_create_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_hpack_encoder_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test || ( echo test chttp2_hpack_encoder_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_status_conversion_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test || ( echo test chttp2_status_conversion_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_stream_map_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_stream_map_test || ( echo test chttp2_stream_map_test failed ; exit 1 ) + $(E) "[RUN] Testing chttp2_varint_test" + $(Q) $(BINDIR)/$(CONFIG)/chttp2_varint_test || ( echo test chttp2_varint_test failed ; exit 1 ) + $(E) "[RUN] Testing compression_test" + $(Q) $(BINDIR)/$(CONFIG)/compression_test || ( echo test compression_test failed ; exit 1 ) + $(E) "[RUN] Testing concurrent_connectivity_test" + $(Q) $(BINDIR)/$(CONFIG)/concurrent_connectivity_test || ( echo test concurrent_connectivity_test failed ; exit 1 ) + $(E) "[RUN] Testing dns_resolver_connectivity_test" + $(Q) $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test || ( echo test dns_resolver_connectivity_test failed ; exit 1 ) + $(E) "[RUN] Testing dns_resolver_test" + $(Q) $(BINDIR)/$(CONFIG)/dns_resolver_test || ( echo test dns_resolver_test failed ; exit 1 ) + $(E) "[RUN] Testing dualstack_socket_test" + $(Q) $(BINDIR)/$(CONFIG)/dualstack_socket_test || ( echo test dualstack_socket_test failed ; exit 1 ) + $(E) "[RUN] Testing endpoint_pair_test" + $(Q) $(BINDIR)/$(CONFIG)/endpoint_pair_test || ( echo test endpoint_pair_test failed ; exit 1 ) + $(E) "[RUN] Testing ev_epoll_linux_test" + $(Q) $(BINDIR)/$(CONFIG)/ev_epoll_linux_test || ( echo test ev_epoll_linux_test failed ; exit 1 ) + $(E) "[RUN] Testing fd_conservation_posix_test" + $(Q) $(BINDIR)/$(CONFIG)/fd_conservation_posix_test || ( echo test fd_conservation_posix_test failed ; exit 1 ) + $(E) "[RUN] Testing fd_posix_test" + $(Q) $(BINDIR)/$(CONFIG)/fd_posix_test || ( echo test fd_posix_test failed ; exit 1 ) + $(E) "[RUN] Testing fling_stream_test" + $(Q) $(BINDIR)/$(CONFIG)/fling_stream_test || ( echo test fling_stream_test failed ; exit 1 ) + $(E) "[RUN] Testing fling_test" $(Q) $(BINDIR)/$(CONFIG)/fling_test || ( echo test fling_test failed ; exit 1 ) $(E) "[RUN] Testing goaway_server_test" $(Q) $(BINDIR)/$(CONFIG)/goaway_server_test || ( echo test goaway_server_test failed ; exit 1 ) @@ -1755,123 +1882,23 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/udp_server_test || ( echo test udp_server_test failed ; exit 1 ) $(E) "[RUN] Testing uri_parser_test" $(Q) $(BINDIR)/$(CONFIG)/uri_parser_test || ( echo test uri_parser_test failed ; exit 1 ) - $(E) "[RUN] Testing public_headers_must_be_c89" - $(Q) $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 || ( echo test public_headers_must_be_c89 failed ; exit 1 ) - $(E) "[RUN] Testing badreq_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/badreq_bad_client_test || ( echo test badreq_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing connection_prefix_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test || ( echo test connection_prefix_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing head_of_line_blocking_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test || ( echo test head_of_line_blocking_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing headers_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/headers_bad_client_test || ( echo test headers_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing initial_settings_frame_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test || ( echo test initial_settings_frame_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing large_metadata_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test || ( echo test large_metadata_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing server_registered_method_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test || ( echo test server_registered_method_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing simple_request_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/simple_request_bad_client_test || ( echo test simple_request_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing unknown_frame_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test || ( echo test unknown_frame_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing window_overflow_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test || ( echo test window_overflow_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing bad_ssl_alpn_test" - $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test || ( echo test bad_ssl_alpn_test failed ; exit 1 ) - $(E) "[RUN] Testing bad_ssl_cert_test" - $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_cert_test || ( echo test bad_ssl_cert_test failed ; exit 1 ) - -flaky_test_c: buildtests_c +flaky_test_core: buildtests_core $(E) "[RUN] Testing lb_policies_test" $(Q) $(BINDIR)/$(CONFIG)/lb_policies_test || ( echo test lb_policies_test failed ; exit 1 ) $(E) "[RUN] Testing mlog_test" $(Q) $(BINDIR)/$(CONFIG)/mlog_test || ( echo test mlog_test failed ; exit 1 ) - -test_cxx: buildtests_cxx - $(E) "[RUN] Testing alarm_cpp_test" - $(Q) $(BINDIR)/$(CONFIG)/alarm_cpp_test || ( echo test alarm_cpp_test failed ; exit 1 ) - $(E) "[RUN] Testing async_end2end_test" - $(Q) $(BINDIR)/$(CONFIG)/async_end2end_test || ( echo test async_end2end_test failed ; exit 1 ) - $(E) "[RUN] Testing auth_property_iterator_test" - $(Q) $(BINDIR)/$(CONFIG)/auth_property_iterator_test || ( echo test auth_property_iterator_test failed ; exit 1 ) - $(E) "[RUN] Testing channel_arguments_test" - $(Q) $(BINDIR)/$(CONFIG)/channel_arguments_test || ( echo test channel_arguments_test failed ; exit 1 ) - $(E) "[RUN] Testing cli_call_test" - $(Q) $(BINDIR)/$(CONFIG)/cli_call_test || ( echo test cli_call_test failed ; exit 1 ) - $(E) "[RUN] Testing client_crash_test" - $(Q) $(BINDIR)/$(CONFIG)/client_crash_test || ( echo test client_crash_test failed ; exit 1 ) - $(E) "[RUN] Testing codegen_test_full" - $(Q) $(BINDIR)/$(CONFIG)/codegen_test_full || ( echo test codegen_test_full failed ; exit 1 ) - $(E) "[RUN] Testing codegen_test_minimal" - $(Q) $(BINDIR)/$(CONFIG)/codegen_test_minimal || ( echo test codegen_test_minimal failed ; exit 1 ) - $(E) "[RUN] Testing credentials_test" - $(Q) $(BINDIR)/$(CONFIG)/credentials_test || ( echo test credentials_test failed ; exit 1 ) - $(E) "[RUN] Testing cxx_byte_buffer_test" - $(Q) $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test || ( echo test cxx_byte_buffer_test failed ; exit 1 ) - $(E) "[RUN] Testing cxx_slice_test" - $(Q) $(BINDIR)/$(CONFIG)/cxx_slice_test || ( echo test cxx_slice_test failed ; exit 1 ) - $(E) "[RUN] Testing cxx_string_ref_test" - $(Q) $(BINDIR)/$(CONFIG)/cxx_string_ref_test || ( echo test cxx_string_ref_test failed ; exit 1 ) - $(E) "[RUN] Testing cxx_time_test" - $(Q) $(BINDIR)/$(CONFIG)/cxx_time_test || ( echo test cxx_time_test failed ; exit 1 ) - $(E) "[RUN] Testing end2end_test" - $(Q) $(BINDIR)/$(CONFIG)/end2end_test || ( echo test end2end_test failed ; exit 1 ) - $(E) "[RUN] Testing generic_end2end_test" - $(Q) $(BINDIR)/$(CONFIG)/generic_end2end_test || ( echo test generic_end2end_test failed ; exit 1 ) - $(E) "[RUN] Testing golden_file_test" - $(Q) $(BINDIR)/$(CONFIG)/golden_file_test || ( echo test golden_file_test failed ; exit 1 ) - $(E) "[RUN] Testing grpc_c_end2end_test" - $(Q) $(BINDIR)/$(CONFIG)/grpc_c_end2end_test || ( echo test grpc_c_end2end_test failed ; exit 1 ) - $(E) "[RUN] Testing grpc_c_generic_end2end_test" - $(Q) $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test || ( echo test grpc_c_generic_end2end_test failed ; exit 1 ) - $(E) "[RUN] Testing grpclb_api_test" - $(Q) $(BINDIR)/$(CONFIG)/grpclb_api_test || ( echo test grpclb_api_test failed ; exit 1 ) - $(E) "[RUN] Testing grpclb_test" - $(Q) $(BINDIR)/$(CONFIG)/grpclb_test || ( echo test grpclb_test failed ; exit 1 ) - $(E) "[RUN] Testing hybrid_end2end_test" - $(Q) $(BINDIR)/$(CONFIG)/hybrid_end2end_test || ( echo test hybrid_end2end_test failed ; exit 1 ) - $(E) "[RUN] Testing interop_test" - $(Q) $(BINDIR)/$(CONFIG)/interop_test || ( echo test interop_test failed ; exit 1 ) - $(E) "[RUN] Testing mock_test" - $(Q) $(BINDIR)/$(CONFIG)/mock_test || ( echo test mock_test failed ; exit 1 ) - $(E) "[RUN] Testing proto_server_reflection_test" - $(Q) $(BINDIR)/$(CONFIG)/proto_server_reflection_test || ( echo test proto_server_reflection_test failed ; exit 1 ) - $(E) "[RUN] Testing qps_openloop_test" - $(Q) $(BINDIR)/$(CONFIG)/qps_openloop_test || ( echo test qps_openloop_test failed ; exit 1 ) - $(E) "[RUN] Testing secure_auth_context_test" - $(Q) $(BINDIR)/$(CONFIG)/secure_auth_context_test || ( echo test secure_auth_context_test failed ; exit 1 ) - $(E) "[RUN] Testing secure_sync_unary_ping_pong_test" - $(Q) $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test || ( echo test secure_sync_unary_ping_pong_test failed ; exit 1 ) - $(E) "[RUN] Testing server_builder_plugin_test" - $(Q) $(BINDIR)/$(CONFIG)/server_builder_plugin_test || ( echo test server_builder_plugin_test failed ; exit 1 ) - $(E) "[RUN] Testing server_crash_test" - $(Q) $(BINDIR)/$(CONFIG)/server_crash_test || ( echo test server_crash_test failed ; exit 1 ) - $(E) "[RUN] Testing shutdown_test" - $(Q) $(BINDIR)/$(CONFIG)/shutdown_test || ( echo test shutdown_test failed ; exit 1 ) - $(E) "[RUN] Testing status_test" - $(Q) $(BINDIR)/$(CONFIG)/status_test || ( echo test status_test failed ; exit 1 ) - $(E) "[RUN] Testing streaming_throughput_test" - $(Q) $(BINDIR)/$(CONFIG)/streaming_throughput_test || ( echo test streaming_throughput_test failed ; exit 1 ) - $(E) "[RUN] Testing thread_stress_test" - $(Q) $(BINDIR)/$(CONFIG)/thread_stress_test || ( echo test thread_stress_test failed ; exit 1 ) - - -flaky_test_cxx: buildtests_cxx - - -test_python: static_c +test_python: static_core $(E) "[RUN] Testing python code" $(Q) tools/run_tests/run_tests.py -lpython -c$(CONFIG) -tools: tools_c tools_cxx - +tools: tools_c tools_core tools_cxx -tools_c: privatelibs_c $(BINDIR)/$(CONFIG)/gen_hpack_tables $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters $(BINDIR)/$(CONFIG)/grpc_create_jwt $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token $(BINDIR)/$(CONFIG)/grpc_verify_jwt +tools_c: privatelibs_c +tools_core: privatelibs_core tools_cxx: privatelibs_cxx buildbenchmarks: privatelibs $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark @@ -1880,9 +1907,9 @@ benchmarks: buildbenchmarks strip: strip-static strip-shared -strip-static: strip-static_c strip-static_cxx +strip-static: strip-static_c strip-static_core strip-static_cxx -strip-shared: strip-shared_c strip-shared_cxx +strip-shared: strip-shared_c strip-static_core strip-shared_cxx # TODO(nnoble): the strip target is stripping in-place, instead @@ -1890,13 +1917,17 @@ strip-shared: strip-shared_c strip-shared_cxx # This prevents proper debugging after running make install. strip-static_c: static_c +ifeq ($(CONFIG),opt) + $(E) "[STRIP] Stripping libgrpc_c.a" + $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgrpc_c.a +endif + +strip-static_core: static_core ifeq ($(CONFIG),opt) $(E) "[STRIP] Stripping libgpr.a" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[STRIP] Stripping libgrpc.a" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgrpc.a - $(E) "[STRIP] Stripping libgrpc_c.a" - $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(E) "[STRIP] Stripping libgrpc_cronet.a" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(E) "[STRIP] Stripping libgrpc_unsecure.a" @@ -1915,12 +1946,16 @@ endif strip-shared_c: shared_c ifeq ($(CONFIG),opt) - $(E) "[STRIP] Stripping $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT)" - $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) - $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT)" - $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT)" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) +endif + +strip-shared_core: shared_core +ifeq ($(CONFIG),opt) + $(E) "[STRIP] Stripping $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT)" + $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) + $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT)" + $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT)" $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(E) "[STRIP] Stripping $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT)" @@ -1957,6 +1992,16 @@ $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc: $(Q) mkdir -p $(@D) $(Q) echo "$(GRPC_UNSECURE_PC_FILE)" | tr , '\n' >$@ +$(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c.pc: + $(E) "[MAKE] Generating $@" + $(Q) mkdir -p $(@D) + $(Q) echo "$(GRPC_C_PC_FILE)" | tr , '\n' >$@ + +$(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c_unsecure.pc: + $(E) "[MAKE] Generating $@" + $(Q) mkdir -p $(@D) + $(Q) echo "$(GRPC_C_UNSECURE_PC_FILE)" | tr , '\n' >$@ + $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc: $(E) "[MAKE] Generating $@" $(Q) mkdir -p $(@D) @@ -2350,40 +2395,49 @@ $(OBJDIR)/$(CONFIG)/%.o : %.cc $(Q) mkdir -p `dirname $@` $(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< -install: install_c install_cxx install-plugins install-certs verify-install +install: install_c install_core install_cxx install-plugins install-certs verify-install install_c: install-headers_c install-static_c install-shared_c +install_core: install-headers_core install-static_core install-shared_core + install_cxx: install-headers_cxx install-static_cxx install-shared_cxx -install_csharp: install-shared_csharp install_c +install_csharp: install-shared_csharp install_core install_grpc_csharp_ext: install_csharp -install-headers: install-headers_c install-headers_cxx +install-headers: install-headers_c install-headers_core install-headers_cxx install-headers_c: $(E) "[INSTALL] Installing public C headers" $(Q) $(foreach h, $(PUBLIC_HEADERS_C), $(INSTALL) -d $(prefix)/$(dir $(h)) && ) exit 0 || exit 1 $(Q) $(foreach h, $(PUBLIC_HEADERS_C), $(INSTALL) $(h) $(prefix)/$(h) && ) exit 0 || exit 1 +install-headers_core: + $(E) "[INSTALL] Installing public C core headers" + $(Q) $(foreach h, $(PUBLIC_HEADERS_CORE), $(INSTALL) -d $(prefix)/$(dir $(h)) && ) exit 0 || exit 1 + $(Q) $(foreach h, $(PUBLIC_HEADERS_CORE), $(INSTALL) $(h) $(prefix)/$(h) && ) exit 0 || exit 1 + install-headers_cxx: $(E) "[INSTALL] Installing public C++ headers" $(Q) $(foreach h, $(PUBLIC_HEADERS_CXX), $(INSTALL) -d $(prefix)/$(dir $(h)) && ) exit 0 || exit 1 $(Q) $(foreach h, $(PUBLIC_HEADERS_CXX), $(INSTALL) $(h) $(prefix)/$(h) && ) exit 0 || exit 1 -install-static: install-static_c install-static_cxx +install-static: install-static_c install-static_core install-static_cxx install-static_c: static_c strip-static_c install-pkg-config_c + $(E) "[INSTALL] Installing libgrpc_c.a" + $(Q) $(INSTALL) -d $(prefix)/lib + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(prefix)/lib/libgrpc_c.a + +install-static_core: static_core strip-static_core install-pkg-config_core $(E) "[INSTALL] Installing libgpr.a" $(Q) $(INSTALL) -d $(prefix)/lib $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgpr.a $(prefix)/lib/libgpr.a $(E) "[INSTALL] Installing libgrpc.a" $(Q) $(INSTALL) -d $(prefix)/lib $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc.a $(prefix)/lib/libgrpc.a - $(E) "[INSTALL] Installing libgrpc_c.a" - $(Q) $(INSTALL) -d $(prefix)/lib - $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(prefix)/lib/libgrpc_c.a $(E) "[INSTALL] Installing libgrpc_cronet.a" $(Q) $(INSTALL) -d $(prefix)/lib $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(prefix)/lib/libgrpc_cronet.a @@ -2405,6 +2459,23 @@ install-static_cxx: static_cxx strip-static_cxx install-pkg-config_cxx install-shared_c: shared_c strip-shared_c install-pkg-config_c + $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT)" + $(Q) $(INSTALL) -d $(prefix)/lib + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) +ifeq ($(SYSTEM),MINGW32) + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_c-imp.a $(prefix)/lib/libgrpc_c-imp.a +else ifneq ($(SYSTEM),Darwin) + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc_c.so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc_c.so +endif +ifneq ($(SYSTEM),MINGW32) +ifneq ($(SYSTEM),Darwin) + $(Q) ldconfig || true +endif +endif + + +install-shared_core: shared_core strip-shared_core install-pkg-config_core $(E) "[INSTALL] Installing $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT)" $(Q) $(INSTALL) -d $(prefix)/lib $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/$(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) @@ -2422,15 +2493,6 @@ ifeq ($(SYSTEM),MINGW32) else ifneq ($(SYSTEM),Darwin) $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc.so.1 $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc.so -endif - $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT)" - $(Q) $(INSTALL) -d $(prefix)/lib - $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) -ifeq ($(SYSTEM),MINGW32) - $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/libgrpc_c-imp.a $(prefix)/lib/libgrpc_c-imp.a -else ifneq ($(SYSTEM),Darwin) - $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc_c.so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(prefix)/lib/libgrpc_c.so endif $(E) "[INSTALL] Installing $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT)" $(Q) $(INSTALL) -d $(prefix)/lib @@ -2533,6 +2595,12 @@ endif install-pkg-config_c: pc_c pc_c_unsecure $(E) "[INSTALL] Installing C pkg-config files" $(Q) $(INSTALL) -d $(prefix)/lib/pkgconfig + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c.pc $(prefix)/lib/pkgconfig/grpc_c.pc + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c_unsecure.pc $(prefix)/lib/pkgconfig/grpc_c_unsecure.pc + +install-pkg-config_core: pc_core pc_core_unsecure + $(E) "[INSTALL] Installing C core pkg-config files" + $(Q) $(INSTALL) -d $(prefix)/lib/pkgconfig $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc $(prefix)/lib/pkgconfig/grpc.pc $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc $(prefix)/lib/pkgconfig/grpc_unsecure.pc @@ -2578,364 +2646,261 @@ clean: # Using nanopb for C files right now -LIBGPR_SRC = \ - src/core/lib/profiling/basic_timers.c \ - src/core/lib/profiling/stap_timers.c \ - src/core/lib/support/alloc.c \ - src/core/lib/support/avl.c \ - src/core/lib/support/backoff.c \ - src/core/lib/support/cmdline.c \ - src/core/lib/support/cpu_iphone.c \ - src/core/lib/support/cpu_linux.c \ - src/core/lib/support/cpu_posix.c \ - src/core/lib/support/cpu_windows.c \ - src/core/lib/support/env_linux.c \ - src/core/lib/support/env_posix.c \ - src/core/lib/support/env_windows.c \ - src/core/lib/support/histogram.c \ - src/core/lib/support/host_port.c \ - src/core/lib/support/log.c \ - src/core/lib/support/log_android.c \ - src/core/lib/support/log_linux.c \ - src/core/lib/support/log_posix.c \ - src/core/lib/support/log_windows.c \ - src/core/lib/support/murmur_hash.c \ - src/core/lib/support/slice.c \ - src/core/lib/support/slice_buffer.c \ - src/core/lib/support/stack_lockfree.c \ - src/core/lib/support/string.c \ - src/core/lib/support/string_posix.c \ - src/core/lib/support/string_util_windows.c \ - src/core/lib/support/string_windows.c \ - src/core/lib/support/subprocess_posix.c \ - src/core/lib/support/subprocess_windows.c \ - src/core/lib/support/sync.c \ - src/core/lib/support/sync_posix.c \ - src/core/lib/support/sync_windows.c \ - src/core/lib/support/thd.c \ - src/core/lib/support/thd_posix.c \ - src/core/lib/support/thd_windows.c \ - src/core/lib/support/time.c \ - src/core/lib/support/time_posix.c \ - src/core/lib/support/time_precise.c \ - src/core/lib/support/time_windows.c \ - src/core/lib/support/tls_pthread.c \ - src/core/lib/support/tmpfile_msys.c \ - src/core/lib/support/tmpfile_posix.c \ - src/core/lib/support/tmpfile_windows.c \ - src/core/lib/support/wrap_memcpy.c \ +LIBGRPC_C_SRC = \ + src/c/alloc.c \ + src/c/array.c \ + src/c/bidi_streaming_blocking_call.c \ + src/c/call_ops.c \ + src/c/channel.c \ + src/c/client_context.c \ + src/c/client_streaming_blocking_call.c \ + src/c/completion_queue.c \ + src/c/context.c \ + src/c/init_shutdown.c \ + src/c/message.c \ + src/c/pb_compat.c \ + src/c/server.c \ + src/c/server_context.c \ + src/c/server_incoming_queue.c \ + src/c/server_streaming_blocking_call.c \ + src/c/unary_async_call.c \ + src/c/unary_blocking_call.c \ PUBLIC_HEADERS_C += \ - include/grpc/support/alloc.h \ - include/grpc/support/atm.h \ - include/grpc/support/atm_gcc_atomic.h \ - include/grpc/support/atm_gcc_sync.h \ - include/grpc/support/atm_windows.h \ - include/grpc/support/avl.h \ - include/grpc/support/cmdline.h \ - include/grpc/support/cpu.h \ - include/grpc/support/histogram.h \ - include/grpc/support/host_port.h \ - include/grpc/support/log.h \ - include/grpc/support/log_windows.h \ - include/grpc/support/port_platform.h \ - include/grpc/support/slice.h \ - include/grpc/support/slice_buffer.h \ - include/grpc/support/string_util.h \ - include/grpc/support/subprocess.h \ - include/grpc/support/sync.h \ - include/grpc/support/sync_generic.h \ - include/grpc/support/sync_posix.h \ - include/grpc/support/sync_windows.h \ - include/grpc/support/thd.h \ - include/grpc/support/time.h \ - include/grpc/support/tls.h \ - include/grpc/support/tls_gcc.h \ - include/grpc/support/tls_msvc.h \ - include/grpc/support/tls_pthread.h \ - include/grpc/support/useful.h \ - include/grpc/impl/codegen/alloc.h \ - include/grpc/impl/codegen/atm.h \ - include/grpc/impl/codegen/atm_gcc_atomic.h \ - include/grpc/impl/codegen/atm_gcc_sync.h \ - include/grpc/impl/codegen/atm_windows.h \ - include/grpc/impl/codegen/log.h \ - include/grpc/impl/codegen/port_platform.h \ - include/grpc/impl/codegen/slice.h \ - include/grpc/impl/codegen/slice_buffer.h \ - include/grpc/impl/codegen/sync.h \ - include/grpc/impl/codegen/sync_generic.h \ - include/grpc/impl/codegen/sync_posix.h \ - include/grpc/impl/codegen/sync_windows.h \ - include/grpc/impl/codegen/time.h \ + include/grpc_c/channel.h \ + include/grpc_c/client_context.h \ + include/grpc_c/codegen/bidi_streaming_blocking_call.h \ + include/grpc_c/codegen/client_streaming_blocking_call.h \ + include/grpc_c/codegen/context.h \ + include/grpc_c/codegen/message.h \ + include/grpc_c/codegen/method.h \ + include/grpc_c/codegen/pb_compat.h \ + include/grpc_c/codegen/serialization.h \ + include/grpc_c/codegen/server.h \ + include/grpc_c/codegen/server_streaming_blocking_call.h \ + include/grpc_c/codegen/unary_async_call.h \ + include/grpc_c/codegen/unary_blocking_call.h \ + include/grpc_c/completion_queue.h \ + include/grpc_c/declare_serializer.h \ + include/grpc_c/grpc_c.h \ + include/grpc_c/server.h \ + include/grpc_c/server_context.h \ + include/grpc_c/server_incoming_queue.h \ + include/grpc_c/status.h \ -LIBGPR_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGPR_SRC)))) +LIBGRPC_C_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_SRC)))) -$(LIBDIR)/$(CONFIG)/libgpr.a: $(ZLIB_DEP) $(LIBGPR_OBJS) +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libgrpc_c.a: openssl_dep_error + +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error + +else + + +$(LIBDIR)/$(CONFIG)/libgrpc_c.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_C_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgpr.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBGPR_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_c.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBGRPC_C_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgpr.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_c.a endif ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION).$(SHARED_EXT): $(LIBGPR_OBJS) $(ZLIB_DEP) +$(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_C_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/gpr.$(SHARED_EXT) $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared gpr.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBGPR_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc_c.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc-imp -lgpr-imp else -$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).$(SHARED_EXT): $(LIBGPR_OBJS) $(ZLIB_DEP) +$(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_C_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgpr.$(SHARED_EXT) $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` ifeq ($(SYSTEM),Darwin) - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBGPR_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc -lgpr else - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgpr.so.1 -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBGPR_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) - $(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).so + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_c.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc -lgpr + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).so endif endif +endif + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGPR_OBJS:.o=.dep) +-include $(LIBGRPC_C_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them # Using nanopb for C files right now -LIBGPR_TEST_UTIL_SRC = \ - test/core/util/test_config.c \ +LIBGRPC_C_END2END_CLIENT_LIB_SRC = \ + $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c \ + $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c \ + test/c/end2end/end2end_test_client.c \ PUBLIC_HEADERS_C += \ -LIBGPR_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGPR_TEST_UTIL_SRC)))) +LIBGRPC_C_END2END_CLIENT_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_END2END_CLIENT_LIB_SRC)))) -$(LIBDIR)/$(CONFIG)/libgpr_test_util.a: $(ZLIB_DEP) $(LIBGPR_TEST_UTIL_OBJS) +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a: openssl_dep_error + + +else + + +$(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgpr_test_util.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBGPR_TEST_UTIL_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgpr_test_util.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a endif +endif + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGPR_TEST_UTIL_OBJS:.o=.dep) +-include $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test_client.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c # Using nanopb for C files right now -LIBGRPC_SRC = \ - src/core/lib/surface/init.c \ - src/core/lib/channel/channel_args.c \ - src/core/lib/channel/channel_stack.c \ - src/core/lib/channel/channel_stack_builder.c \ - src/core/lib/channel/compress_filter.c \ - src/core/lib/channel/connected_channel.c \ - src/core/lib/channel/handshaker.c \ - src/core/lib/channel/http_client_filter.c \ - src/core/lib/channel/http_server_filter.c \ - src/core/lib/compression/compression.c \ - src/core/lib/compression/message_compress.c \ - src/core/lib/debug/trace.c \ - src/core/lib/http/format_request.c \ - src/core/lib/http/httpcli.c \ - src/core/lib/http/parser.c \ - src/core/lib/iomgr/closure.c \ - src/core/lib/iomgr/endpoint.c \ - src/core/lib/iomgr/endpoint_pair_posix.c \ - src/core/lib/iomgr/endpoint_pair_windows.c \ - src/core/lib/iomgr/error.c \ - src/core/lib/iomgr/ev_epoll_linux.c \ - src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ - src/core/lib/iomgr/ev_poll_posix.c \ - src/core/lib/iomgr/ev_posix.c \ - src/core/lib/iomgr/exec_ctx.c \ - src/core/lib/iomgr/executor.c \ - src/core/lib/iomgr/iocp_windows.c \ - src/core/lib/iomgr/iomgr.c \ - src/core/lib/iomgr/iomgr_posix.c \ - src/core/lib/iomgr/iomgr_windows.c \ - src/core/lib/iomgr/load_file.c \ - src/core/lib/iomgr/network_status_tracker.c \ - src/core/lib/iomgr/polling_entity.c \ - src/core/lib/iomgr/pollset_set_windows.c \ - src/core/lib/iomgr/pollset_windows.c \ - src/core/lib/iomgr/resolve_address_posix.c \ - src/core/lib/iomgr/resolve_address_windows.c \ - src/core/lib/iomgr/sockaddr_utils.c \ - src/core/lib/iomgr/socket_utils_common_posix.c \ - src/core/lib/iomgr/socket_utils_linux.c \ - src/core/lib/iomgr/socket_utils_posix.c \ - src/core/lib/iomgr/socket_windows.c \ - src/core/lib/iomgr/tcp_client_posix.c \ - src/core/lib/iomgr/tcp_client_windows.c \ - src/core/lib/iomgr/tcp_posix.c \ - src/core/lib/iomgr/tcp_server_posix.c \ - src/core/lib/iomgr/tcp_server_windows.c \ - src/core/lib/iomgr/tcp_windows.c \ - src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ - src/core/lib/iomgr/timer_heap.c \ - src/core/lib/iomgr/udp_server.c \ - src/core/lib/iomgr/unix_sockets_posix.c \ - src/core/lib/iomgr/unix_sockets_posix_noop.c \ - src/core/lib/iomgr/wakeup_fd_eventfd.c \ - src/core/lib/iomgr/wakeup_fd_nospecial.c \ - src/core/lib/iomgr/wakeup_fd_pipe.c \ - src/core/lib/iomgr/wakeup_fd_posix.c \ - src/core/lib/iomgr/workqueue_posix.c \ - src/core/lib/iomgr/workqueue_windows.c \ - src/core/lib/json/json.c \ - src/core/lib/json/json_reader.c \ - src/core/lib/json/json_string.c \ - src/core/lib/json/json_writer.c \ - src/core/lib/surface/alarm.c \ - src/core/lib/surface/api_trace.c \ - src/core/lib/surface/byte_buffer.c \ - src/core/lib/surface/byte_buffer_reader.c \ - src/core/lib/surface/call.c \ - src/core/lib/surface/call_details.c \ - src/core/lib/surface/call_log_batch.c \ - src/core/lib/surface/channel.c \ - src/core/lib/surface/channel_init.c \ - src/core/lib/surface/channel_ping.c \ - src/core/lib/surface/channel_stack_type.c \ - src/core/lib/surface/completion_queue.c \ - src/core/lib/surface/event_string.c \ - src/core/lib/surface/lame_client.c \ - src/core/lib/surface/metadata_array.c \ - src/core/lib/surface/server.c \ - src/core/lib/surface/validate_metadata.c \ - src/core/lib/surface/version.c \ - src/core/lib/transport/byte_stream.c \ - src/core/lib/transport/connectivity_state.c \ - src/core/lib/transport/metadata.c \ - src/core/lib/transport/metadata_batch.c \ - src/core/lib/transport/static_metadata.c \ - src/core/lib/transport/timeout_encoding.c \ - src/core/lib/transport/transport.c \ - src/core/lib/transport/transport_op_string.c \ - src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c \ - src/core/ext/transport/chttp2/transport/bin_decoder.c \ - src/core/ext/transport/chttp2/transport/bin_encoder.c \ - src/core/ext/transport/chttp2/transport/chttp2_plugin.c \ - src/core/ext/transport/chttp2/transport/chttp2_transport.c \ - src/core/ext/transport/chttp2/transport/frame_data.c \ - src/core/ext/transport/chttp2/transport/frame_goaway.c \ - src/core/ext/transport/chttp2/transport/frame_ping.c \ - src/core/ext/transport/chttp2/transport/frame_rst_stream.c \ - src/core/ext/transport/chttp2/transport/frame_settings.c \ - src/core/ext/transport/chttp2/transport/frame_window_update.c \ - src/core/ext/transport/chttp2/transport/hpack_encoder.c \ - src/core/ext/transport/chttp2/transport/hpack_parser.c \ - src/core/ext/transport/chttp2/transport/hpack_table.c \ - src/core/ext/transport/chttp2/transport/huffsyms.c \ - src/core/ext/transport/chttp2/transport/incoming_metadata.c \ - src/core/ext/transport/chttp2/transport/parsing.c \ - src/core/ext/transport/chttp2/transport/status_conversion.c \ - src/core/ext/transport/chttp2/transport/stream_lists.c \ - src/core/ext/transport/chttp2/transport/stream_map.c \ - src/core/ext/transport/chttp2/transport/varint.c \ - src/core/ext/transport/chttp2/transport/writing.c \ - src/core/ext/transport/chttp2/alpn/alpn.c \ - src/core/lib/http/httpcli_security_connector.c \ - src/core/lib/security/context/security_context.c \ - src/core/lib/security/credentials/composite/composite_credentials.c \ - src/core/lib/security/credentials/credentials.c \ - src/core/lib/security/credentials/credentials_metadata.c \ - src/core/lib/security/credentials/fake/fake_credentials.c \ - src/core/lib/security/credentials/google_default/credentials_posix.c \ - src/core/lib/security/credentials/google_default/credentials_windows.c \ - src/core/lib/security/credentials/google_default/google_default_credentials.c \ - src/core/lib/security/credentials/iam/iam_credentials.c \ - src/core/lib/security/credentials/jwt/json_token.c \ - src/core/lib/security/credentials/jwt/jwt_credentials.c \ - src/core/lib/security/credentials/jwt/jwt_verifier.c \ - src/core/lib/security/credentials/oauth2/oauth2_credentials.c \ - src/core/lib/security/credentials/plugin/plugin_credentials.c \ - src/core/lib/security/credentials/ssl/ssl_credentials.c \ - src/core/lib/security/transport/client_auth_filter.c \ - src/core/lib/security/transport/handshake.c \ - src/core/lib/security/transport/secure_endpoint.c \ - src/core/lib/security/transport/security_connector.c \ - src/core/lib/security/transport/server_auth_filter.c \ - src/core/lib/security/transport/tsi_error.c \ - src/core/lib/security/util/b64.c \ - src/core/lib/security/util/json_util.c \ - src/core/lib/surface/init_secure.c \ - src/core/lib/tsi/fake_transport_security.c \ - src/core/lib/tsi/ssl_transport_security.c \ - src/core/lib/tsi/transport_security.c \ - src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \ - src/core/ext/client_config/channel_connectivity.c \ - src/core/ext/client_config/client_channel.c \ - src/core/ext/client_config/client_channel_factory.c \ - src/core/ext/client_config/client_config.c \ - src/core/ext/client_config/client_config_plugin.c \ - src/core/ext/client_config/connector.c \ - src/core/ext/client_config/default_initial_connect_string.c \ - src/core/ext/client_config/initial_connect_string.c \ - src/core/ext/client_config/lb_policy.c \ - src/core/ext/client_config/lb_policy_factory.c \ - src/core/ext/client_config/lb_policy_registry.c \ - src/core/ext/client_config/parse_address.c \ - src/core/ext/client_config/resolver.c \ - src/core/ext/client_config/resolver_factory.c \ - src/core/ext/client_config/resolver_registry.c \ - src/core/ext/client_config/subchannel.c \ - src/core/ext/client_config/subchannel_call_holder.c \ - src/core/ext/client_config/subchannel_index.c \ - src/core/ext/client_config/uri_parser.c \ - src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \ - src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c \ - src/core/ext/transport/chttp2/client/insecure/channel_create.c \ - src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c \ - src/core/ext/lb_policy/grpclb/grpclb.c \ - src/core/ext/lb_policy/grpclb/load_balancer_api.c \ - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \ - third_party/nanopb/pb_common.c \ - third_party/nanopb/pb_decode.c \ - third_party/nanopb/pb_encode.c \ - src/core/ext/lb_policy/pick_first/pick_first.c \ - src/core/ext/lb_policy/round_robin/round_robin.c \ - src/core/ext/resolver/dns/native/dns_resolver.c \ - src/core/ext/resolver/sockaddr/sockaddr_resolver.c \ - src/core/ext/load_reporting/load_reporting.c \ - src/core/ext/load_reporting/load_reporting_filter.c \ - src/core/ext/census/base_resources.c \ - src/core/ext/census/context.c \ - src/core/ext/census/gen/census.pb.c \ - src/core/ext/census/grpc_context.c \ - src/core/ext/census/grpc_filter.c \ - src/core/ext/census/grpc_plugin.c \ - src/core/ext/census/initialize.c \ - src/core/ext/census/mlog.c \ - src/core/ext/census/operation.c \ - src/core/ext/census/placeholders.c \ - src/core/ext/census/resource.c \ - src/core/ext/census/tracing.c \ - src/core/plugin_registry/grpc_plugin_registry.c \ +LIBGRPC++_SRC = \ + src/cpp/client/secure_credentials.cc \ + src/cpp/common/auth_property_iterator.cc \ + src/cpp/common/secure_auth_context.cc \ + src/cpp/common/secure_channel_arguments.cc \ + src/cpp/common/secure_create_auth_context.cc \ + src/cpp/server/secure_server_credentials.cc \ + src/cpp/client/channel.cc \ + src/cpp/client/client_context.cc \ + src/cpp/client/create_channel.cc \ + src/cpp/client/create_channel_internal.cc \ + src/cpp/client/create_channel_posix.cc \ + src/cpp/client/credentials.cc \ + src/cpp/client/generic_stub.cc \ + src/cpp/client/insecure_credentials.cc \ + src/cpp/common/channel_arguments.cc \ + src/cpp/common/completion_queue.cc \ + src/cpp/common/core_codegen.cc \ + src/cpp/common/rpc_method.cc \ + src/cpp/server/async_generic_service.cc \ + src/cpp/server/create_default_thread_pool.cc \ + src/cpp/server/dynamic_thread_pool.cc \ + src/cpp/server/insecure_server_credentials.cc \ + src/cpp/server/server.cc \ + src/cpp/server/server_builder.cc \ + src/cpp/server/server_context.cc \ + src/cpp/server/server_credentials.cc \ + src/cpp/server/server_posix.cc \ + src/cpp/util/byte_buffer.cc \ + src/cpp/util/slice.cc \ + src/cpp/util/status.cc \ + src/cpp/util/string_ref.cc \ + src/cpp/util/time.cc \ + src/cpp/codegen/codegen_init.cc \ -PUBLIC_HEADERS_C += \ - include/grpc/byte_buffer.h \ - include/grpc/byte_buffer_reader.h \ - include/grpc/compression.h \ - include/grpc/grpc.h \ - include/grpc/grpc_posix.h \ - include/grpc/status.h \ +PUBLIC_HEADERS_CXX += \ + include/grpc++/alarm.h \ + include/grpc++/channel.h \ + include/grpc++/client_context.h \ + include/grpc++/completion_queue.h \ + include/grpc++/create_channel.h \ + include/grpc++/create_channel_posix.h \ + include/grpc++/generic/async_generic_service.h \ + include/grpc++/generic/generic_stub.h \ + include/grpc++/grpc++.h \ + include/grpc++/impl/call.h \ + include/grpc++/impl/client_unary_call.h \ + include/grpc++/impl/codegen/core_codegen.h \ + include/grpc++/impl/grpc_library.h \ + include/grpc++/impl/method_handler_impl.h \ + include/grpc++/impl/rpc_method.h \ + include/grpc++/impl/rpc_service_method.h \ + include/grpc++/impl/serialization_traits.h \ + include/grpc++/impl/server_builder_option.h \ + include/grpc++/impl/server_builder_plugin.h \ + include/grpc++/impl/server_initializer.h \ + include/grpc++/impl/service_type.h \ + include/grpc++/impl/sync.h \ + include/grpc++/impl/sync_cxx11.h \ + include/grpc++/impl/sync_no_cxx11.h \ + include/grpc++/impl/thd.h \ + include/grpc++/impl/thd_cxx11.h \ + include/grpc++/impl/thd_no_cxx11.h \ + include/grpc++/security/auth_context.h \ + include/grpc++/security/auth_metadata_processor.h \ + include/grpc++/security/credentials.h \ + include/grpc++/security/server_credentials.h \ + include/grpc++/server.h \ + include/grpc++/server_builder.h \ + include/grpc++/server_context.h \ + include/grpc++/server_posix.h \ + include/grpc++/support/async_stream.h \ + include/grpc++/support/async_unary_call.h \ + include/grpc++/support/byte_buffer.h \ + include/grpc++/support/channel_arguments.h \ + include/grpc++/support/config.h \ + include/grpc++/support/slice.h \ + include/grpc++/support/status.h \ + include/grpc++/support/status_code_enum.h \ + include/grpc++/support/string_ref.h \ + include/grpc++/support/stub_options.h \ + include/grpc++/support/sync_stream.h \ + include/grpc++/support/time.h \ + include/grpc++/impl/codegen/async_stream.h \ + include/grpc++/impl/codegen/async_unary_call.h \ + include/grpc++/impl/codegen/call.h \ + include/grpc++/impl/codegen/call_hook.h \ + include/grpc++/impl/codegen/channel_interface.h \ + include/grpc++/impl/codegen/client_context.h \ + include/grpc++/impl/codegen/client_unary_call.h \ + include/grpc++/impl/codegen/completion_queue.h \ + include/grpc++/impl/codegen/completion_queue_tag.h \ + include/grpc++/impl/codegen/config.h \ + include/grpc++/impl/codegen/core_codegen_interface.h \ + include/grpc++/impl/codegen/create_auth_context.h \ + include/grpc++/impl/codegen/grpc_library.h \ + include/grpc++/impl/codegen/method_handler_impl.h \ + include/grpc++/impl/codegen/rpc_method.h \ + include/grpc++/impl/codegen/rpc_service_method.h \ + include/grpc++/impl/codegen/security/auth_context.h \ + include/grpc++/impl/codegen/serialization_traits.h \ + include/grpc++/impl/codegen/server_context.h \ + include/grpc++/impl/codegen/server_interface.h \ + include/grpc++/impl/codegen/service_type.h \ + include/grpc++/impl/codegen/status.h \ + include/grpc++/impl/codegen/status_code_enum.h \ + include/grpc++/impl/codegen/string_ref.h \ + include/grpc++/impl/codegen/stub_options.h \ + include/grpc++/impl/codegen/sync.h \ + include/grpc++/impl/codegen/sync_cxx11.h \ + include/grpc++/impl/codegen/sync_no_cxx11.h \ + include/grpc++/impl/codegen/sync_stream.h \ + include/grpc++/impl/codegen/time.h \ include/grpc/impl/codegen/byte_buffer.h \ include/grpc/impl/codegen/byte_buffer_reader.h \ include/grpc/impl/codegen/compression_types.h \ @@ -2957,380 +2922,114 @@ PUBLIC_HEADERS_C += \ include/grpc/impl/codegen/sync_posix.h \ include/grpc/impl/codegen/sync_windows.h \ include/grpc/impl/codegen/time.h \ - include/grpc/grpc_security.h \ - include/grpc/grpc_security_constants.h \ - include/grpc/census.h \ -LIBGRPC_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_SRC)))) +LIBGRPC++_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc++.a: openssl_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error else +ifeq ($(NO_PROTOBUF),true) -$(LIBDIR)/$(CONFIG)/libgrpc.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBGRPC_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc.a -endif - - - -ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) -else -$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` -ifeq ($(SYSTEM),Darwin) - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) -else - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) - $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).so -endif -endif - -endif - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(LIBGRPC_OBJS:.o=.dep) -endif -endif - -# Force compilation of proto files before building code that could potentially depend on them - - -# Using nanopb for C files right now -LIBGRPC_C_SRC = \ - src/c/alloc.c \ - src/c/array.c \ - src/c/bidi_streaming_blocking_call.c \ - src/c/call_ops.c \ - src/c/channel.c \ - src/c/client_context.c \ - src/c/client_streaming_blocking_call.c \ - src/c/completion_queue.c \ - src/c/context.c \ - src/c/init_shutdown.c \ - src/c/message.c \ - src/c/pb_compat.c \ - src/c/server.c \ - src/c/server_context.c \ - src/c/server_incoming_queue.c \ - src/c/server_streaming_blocking_call.c \ - src/c/unary_async_call.c \ - src/c/unary_blocking_call.c \ - -PUBLIC_HEADERS_C += \ - include/grpc_c/channel.h \ - include/grpc_c/client_context.h \ - include/grpc_c/codegen/bidi_streaming_blocking_call.h \ - include/grpc_c/codegen/client_streaming_blocking_call.h \ - include/grpc_c/codegen/context.h \ - include/grpc_c/codegen/message.h \ - include/grpc_c/codegen/method.h \ - include/grpc_c/codegen/pb_compat.h \ - include/grpc_c/codegen/serialization.h \ - include/grpc_c/codegen/server.h \ - include/grpc_c/codegen/server_streaming_blocking_call.h \ - include/grpc_c/codegen/unary_async_call.h \ - include/grpc_c/codegen/unary_blocking_call.h \ - include/grpc_c/completion_queue.h \ - include/grpc_c/declare_serializer.h \ - include/grpc_c/grpc_c.h \ - include/grpc_c/server.h \ - include/grpc_c/server_context.h \ - include/grpc_c/server_incoming_queue.h \ - include/grpc_c/status.h \ - -LIBGRPC_C_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libgrpc_c.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc++.a: protobuf_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT): protobuf_dep_error else - -$(LIBDIR)/$(CONFIG)/libgrpc_c.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_C_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) +$(LIBDIR)/$(CONFIG)/libgrpc++.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_c.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBGRPC_C_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBGRPC++_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_c.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++.a endif ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_C_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/gpr.$(SHARED_EXT) $(OPENSSL_DEP) +$(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc_c.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc-imp -lgpr-imp + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc++.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc-imp else -$(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_C_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgpr.$(SHARED_EXT) $(OPENSSL_DEP) +$(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` ifeq ($(SYSTEM),Darwin) - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc -lgpr + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc else - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_c.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_C_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) -lgrpc -lgpr - $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc_c$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_c$(SHARED_VERSION).so -endif -endif - -endif - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(LIBGRPC_C_OBJS:.o=.dep) + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc++.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc + $(Q) ln -sf $(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).so endif endif -# Force compilation of proto files before building code that could potentially depend on them - - -# Using nanopb for C files right now -LIBGRPC_C_END2END_CLIENT_LIB_SRC = \ - $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c \ - $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c \ - test/c/end2end/end2end_test_client.c \ - -PUBLIC_HEADERS_C += \ - -LIBGRPC_C_END2END_CLIENT_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_C_END2END_CLIENT_LIB_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. - -$(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a: openssl_dep_error - - -else - - -$(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a endif - - - endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC_C_END2END_CLIENT_LIB_OBJS:.o=.dep) +-include $(LIBGRPC++_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test_client.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c # Using nanopb for C files right now -LIBGRPC_CRONET_SRC = \ - src/core/lib/surface/init.c \ - src/core/lib/channel/channel_args.c \ - src/core/lib/channel/channel_stack.c \ - src/core/lib/channel/channel_stack_builder.c \ - src/core/lib/channel/compress_filter.c \ - src/core/lib/channel/connected_channel.c \ - src/core/lib/channel/handshaker.c \ - src/core/lib/channel/http_client_filter.c \ - src/core/lib/channel/http_server_filter.c \ - src/core/lib/compression/compression.c \ - src/core/lib/compression/message_compress.c \ - src/core/lib/debug/trace.c \ - src/core/lib/http/format_request.c \ - src/core/lib/http/httpcli.c \ - src/core/lib/http/parser.c \ - src/core/lib/iomgr/closure.c \ - src/core/lib/iomgr/endpoint.c \ - src/core/lib/iomgr/endpoint_pair_posix.c \ - src/core/lib/iomgr/endpoint_pair_windows.c \ - src/core/lib/iomgr/error.c \ - src/core/lib/iomgr/ev_epoll_linux.c \ - src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ - src/core/lib/iomgr/ev_poll_posix.c \ - src/core/lib/iomgr/ev_posix.c \ - src/core/lib/iomgr/exec_ctx.c \ - src/core/lib/iomgr/executor.c \ - src/core/lib/iomgr/iocp_windows.c \ - src/core/lib/iomgr/iomgr.c \ - src/core/lib/iomgr/iomgr_posix.c \ - src/core/lib/iomgr/iomgr_windows.c \ - src/core/lib/iomgr/load_file.c \ - src/core/lib/iomgr/network_status_tracker.c \ - src/core/lib/iomgr/polling_entity.c \ - src/core/lib/iomgr/pollset_set_windows.c \ - src/core/lib/iomgr/pollset_windows.c \ - src/core/lib/iomgr/resolve_address_posix.c \ - src/core/lib/iomgr/resolve_address_windows.c \ - src/core/lib/iomgr/sockaddr_utils.c \ - src/core/lib/iomgr/socket_utils_common_posix.c \ - src/core/lib/iomgr/socket_utils_linux.c \ - src/core/lib/iomgr/socket_utils_posix.c \ - src/core/lib/iomgr/socket_windows.c \ - src/core/lib/iomgr/tcp_client_posix.c \ - src/core/lib/iomgr/tcp_client_windows.c \ - src/core/lib/iomgr/tcp_posix.c \ - src/core/lib/iomgr/tcp_server_posix.c \ - src/core/lib/iomgr/tcp_server_windows.c \ - src/core/lib/iomgr/tcp_windows.c \ - src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ - src/core/lib/iomgr/timer_heap.c \ - src/core/lib/iomgr/udp_server.c \ - src/core/lib/iomgr/unix_sockets_posix.c \ - src/core/lib/iomgr/unix_sockets_posix_noop.c \ - src/core/lib/iomgr/wakeup_fd_eventfd.c \ - src/core/lib/iomgr/wakeup_fd_nospecial.c \ - src/core/lib/iomgr/wakeup_fd_pipe.c \ - src/core/lib/iomgr/wakeup_fd_posix.c \ - src/core/lib/iomgr/workqueue_posix.c \ - src/core/lib/iomgr/workqueue_windows.c \ - src/core/lib/json/json.c \ - src/core/lib/json/json_reader.c \ - src/core/lib/json/json_string.c \ - src/core/lib/json/json_writer.c \ - src/core/lib/surface/alarm.c \ - src/core/lib/surface/api_trace.c \ - src/core/lib/surface/byte_buffer.c \ - src/core/lib/surface/byte_buffer_reader.c \ - src/core/lib/surface/call.c \ - src/core/lib/surface/call_details.c \ - src/core/lib/surface/call_log_batch.c \ - src/core/lib/surface/channel.c \ - src/core/lib/surface/channel_init.c \ - src/core/lib/surface/channel_ping.c \ - src/core/lib/surface/channel_stack_type.c \ - src/core/lib/surface/completion_queue.c \ - src/core/lib/surface/event_string.c \ - src/core/lib/surface/lame_client.c \ - src/core/lib/surface/metadata_array.c \ - src/core/lib/surface/server.c \ - src/core/lib/surface/validate_metadata.c \ - src/core/lib/surface/version.c \ - src/core/lib/transport/byte_stream.c \ - src/core/lib/transport/connectivity_state.c \ - src/core/lib/transport/metadata.c \ - src/core/lib/transport/metadata_batch.c \ - src/core/lib/transport/static_metadata.c \ - src/core/lib/transport/timeout_encoding.c \ - src/core/lib/transport/transport.c \ - src/core/lib/transport/transport_op_string.c \ - src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \ - src/core/ext/transport/cronet/transport/cronet_api_dummy.c \ - src/core/ext/transport/cronet/transport/cronet_transport.c \ - src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \ - src/core/ext/transport/chttp2/transport/bin_decoder.c \ - src/core/ext/transport/chttp2/transport/bin_encoder.c \ - src/core/ext/transport/chttp2/transport/chttp2_plugin.c \ - src/core/ext/transport/chttp2/transport/chttp2_transport.c \ - src/core/ext/transport/chttp2/transport/frame_data.c \ - src/core/ext/transport/chttp2/transport/frame_goaway.c \ - src/core/ext/transport/chttp2/transport/frame_ping.c \ - src/core/ext/transport/chttp2/transport/frame_rst_stream.c \ - src/core/ext/transport/chttp2/transport/frame_settings.c \ - src/core/ext/transport/chttp2/transport/frame_window_update.c \ - src/core/ext/transport/chttp2/transport/hpack_encoder.c \ - src/core/ext/transport/chttp2/transport/hpack_parser.c \ - src/core/ext/transport/chttp2/transport/hpack_table.c \ - src/core/ext/transport/chttp2/transport/huffsyms.c \ - src/core/ext/transport/chttp2/transport/incoming_metadata.c \ - src/core/ext/transport/chttp2/transport/parsing.c \ - src/core/ext/transport/chttp2/transport/status_conversion.c \ - src/core/ext/transport/chttp2/transport/stream_lists.c \ - src/core/ext/transport/chttp2/transport/stream_map.c \ - src/core/ext/transport/chttp2/transport/varint.c \ - src/core/ext/transport/chttp2/transport/writing.c \ - src/core/ext/transport/chttp2/alpn/alpn.c \ - src/core/ext/client_config/channel_connectivity.c \ - src/core/ext/client_config/client_channel.c \ - src/core/ext/client_config/client_channel_factory.c \ - src/core/ext/client_config/client_config.c \ - src/core/ext/client_config/client_config_plugin.c \ - src/core/ext/client_config/connector.c \ - src/core/ext/client_config/default_initial_connect_string.c \ - src/core/ext/client_config/initial_connect_string.c \ - src/core/ext/client_config/lb_policy.c \ - src/core/ext/client_config/lb_policy_factory.c \ - src/core/ext/client_config/lb_policy_registry.c \ - src/core/ext/client_config/parse_address.c \ - src/core/ext/client_config/resolver.c \ - src/core/ext/client_config/resolver_factory.c \ - src/core/ext/client_config/resolver_registry.c \ - src/core/ext/client_config/subchannel.c \ - src/core/ext/client_config/subchannel_call_holder.c \ - src/core/ext/client_config/subchannel_index.c \ - src/core/ext/client_config/uri_parser.c \ - src/core/lib/http/httpcli_security_connector.c \ - src/core/lib/security/context/security_context.c \ - src/core/lib/security/credentials/composite/composite_credentials.c \ - src/core/lib/security/credentials/credentials.c \ - src/core/lib/security/credentials/credentials_metadata.c \ - src/core/lib/security/credentials/fake/fake_credentials.c \ - src/core/lib/security/credentials/google_default/credentials_posix.c \ - src/core/lib/security/credentials/google_default/credentials_windows.c \ - src/core/lib/security/credentials/google_default/google_default_credentials.c \ - src/core/lib/security/credentials/iam/iam_credentials.c \ - src/core/lib/security/credentials/jwt/json_token.c \ - src/core/lib/security/credentials/jwt/jwt_credentials.c \ - src/core/lib/security/credentials/jwt/jwt_verifier.c \ - src/core/lib/security/credentials/oauth2/oauth2_credentials.c \ - src/core/lib/security/credentials/plugin/plugin_credentials.c \ - src/core/lib/security/credentials/ssl/ssl_credentials.c \ - src/core/lib/security/transport/client_auth_filter.c \ - src/core/lib/security/transport/handshake.c \ - src/core/lib/security/transport/secure_endpoint.c \ - src/core/lib/security/transport/security_connector.c \ - src/core/lib/security/transport/server_auth_filter.c \ - src/core/lib/security/transport/tsi_error.c \ - src/core/lib/security/util/b64.c \ - src/core/lib/security/util/json_util.c \ - src/core/lib/surface/init_secure.c \ - src/core/lib/tsi/fake_transport_security.c \ - src/core/lib/tsi/ssl_transport_security.c \ - src/core/lib/tsi/transport_security.c \ - src/core/plugin_registry/grpc_cronet_plugin_registry.c \ +LIBGRPC++_REFLECTION_SRC = \ + src/cpp/ext/proto_server_reflection.cc \ + src/cpp/ext/proto_server_reflection_plugin.cc \ + src/cpp/ext/reflection.grpc.pb.cc \ + src/cpp/ext/reflection.pb.cc \ -PUBLIC_HEADERS_C += \ - include/grpc/byte_buffer.h \ - include/grpc/byte_buffer_reader.h \ - include/grpc/compression.h \ - include/grpc/grpc.h \ - include/grpc/grpc_posix.h \ - include/grpc/status.h \ +PUBLIC_HEADERS_CXX += \ + include/grpc++/ext/proto_server_reflection_plugin.h \ + include/grpc++/ext/reflection.grpc.pb.h \ + include/grpc++/ext/reflection.pb.h \ + include/grpc++/impl/codegen/proto_utils.h \ + include/grpc++/impl/codegen/async_stream.h \ + include/grpc++/impl/codegen/async_unary_call.h \ + include/grpc++/impl/codegen/call.h \ + include/grpc++/impl/codegen/call_hook.h \ + include/grpc++/impl/codegen/channel_interface.h \ + include/grpc++/impl/codegen/client_context.h \ + include/grpc++/impl/codegen/client_unary_call.h \ + include/grpc++/impl/codegen/completion_queue.h \ + include/grpc++/impl/codegen/completion_queue_tag.h \ + include/grpc++/impl/codegen/config.h \ + include/grpc++/impl/codegen/core_codegen_interface.h \ + include/grpc++/impl/codegen/create_auth_context.h \ + include/grpc++/impl/codegen/grpc_library.h \ + include/grpc++/impl/codegen/method_handler_impl.h \ + include/grpc++/impl/codegen/rpc_method.h \ + include/grpc++/impl/codegen/rpc_service_method.h \ + include/grpc++/impl/codegen/security/auth_context.h \ + include/grpc++/impl/codegen/serialization_traits.h \ + include/grpc++/impl/codegen/server_context.h \ + include/grpc++/impl/codegen/server_interface.h \ + include/grpc++/impl/codegen/service_type.h \ + include/grpc++/impl/codegen/status.h \ + include/grpc++/impl/codegen/status_code_enum.h \ + include/grpc++/impl/codegen/string_ref.h \ + include/grpc++/impl/codegen/stub_options.h \ + include/grpc++/impl/codegen/sync.h \ + include/grpc++/impl/codegen/sync_cxx11.h \ + include/grpc++/impl/codegen/sync_no_cxx11.h \ + include/grpc++/impl/codegen/sync_stream.h \ + include/grpc++/impl/codegen/time.h \ include/grpc/impl/codegen/byte_buffer.h \ include/grpc/impl/codegen/byte_buffer_reader.h \ include/grpc/impl/codegen/compression_types.h \ @@ -3352,58 +3051,67 @@ PUBLIC_HEADERS_C += \ include/grpc/impl/codegen/sync_posix.h \ include/grpc/impl/codegen/sync_windows.h \ include/grpc/impl/codegen/time.h \ - include/grpc/grpc_cronet.h \ - include/grpc/grpc_security.h \ - include/grpc/grpc_security_constants.h \ + include/grpc++/impl/codegen/config_protobuf.h \ -LIBGRPC_CRONET_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CRONET_SRC)))) +LIBGRPC++_REFLECTION_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_REFLECTION_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc_cronet.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a: openssl_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error else +ifeq ($(NO_PROTOBUF),true) -$(LIBDIR)/$(CONFIG)/libgrpc_cronet.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_CRONET_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a: protobuf_dep_error + +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): protobuf_dep_error + +else + +$(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_REFLECTION_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(LIBGRPC_CRONET_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBGRPC++_REFLECTION_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a endif ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_CRONET_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) +$(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_REFLECTION_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/grpc++.$(SHARED_EXT) $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc_cronet.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_CRONET_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc++_reflection.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_REFLECTION_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc++-imp else -$(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_CRONET_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) +$(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_REFLECTION_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/libgrpc++.$(SHARED_EXT) $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` ifeq ($(SYSTEM),Darwin) - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_CRONET_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_REFLECTION_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc++ else - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_cronet.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_CRONET_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) - $(Q) ln -sf $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).so + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc++_reflection.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_REFLECTION_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc++ + $(Q) ln -sf $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).so endif endif endif +endif + ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC_CRONET_OBJS:.o=.dep) +-include $(LIBGRPC++_REFLECTION_OBJS:.o=.dep) endif endif @@ -3411,389 +3119,153 @@ endif # Using nanopb for C files right now -LIBGRPC_TEST_UTIL_SRC = \ - test/core/end2end/data/client_certs.c \ - test/core/end2end/data/server1_cert.c \ - test/core/end2end/data/server1_key.c \ - test/core/end2end/data/test_root_cert.c \ - test/core/security/oauth2_utils.c \ - test/core/end2end/cq_verifier.c \ - test/core/end2end/fixtures/proxy.c \ - test/core/iomgr/endpoint_tests.c \ - test/core/util/grpc_profiler.c \ - test/core/util/memory_counters.c \ - test/core/util/mock_endpoint.c \ - test/core/util/parse_hexstring.c \ - test/core/util/passthru_endpoint.c \ - test/core/util/port_posix.c \ - test/core/util/port_server_client.c \ - test/core/util/port_windows.c \ - test/core/util/slice_splitter.c \ - src/core/lib/channel/channel_args.c \ - src/core/lib/channel/channel_stack.c \ - src/core/lib/channel/channel_stack_builder.c \ - src/core/lib/channel/compress_filter.c \ - src/core/lib/channel/connected_channel.c \ - src/core/lib/channel/handshaker.c \ - src/core/lib/channel/http_client_filter.c \ - src/core/lib/channel/http_server_filter.c \ - src/core/lib/compression/compression.c \ - src/core/lib/compression/message_compress.c \ - src/core/lib/debug/trace.c \ - src/core/lib/http/format_request.c \ - src/core/lib/http/httpcli.c \ - src/core/lib/http/parser.c \ - src/core/lib/iomgr/closure.c \ - src/core/lib/iomgr/endpoint.c \ - src/core/lib/iomgr/endpoint_pair_posix.c \ - src/core/lib/iomgr/endpoint_pair_windows.c \ - src/core/lib/iomgr/error.c \ - src/core/lib/iomgr/ev_epoll_linux.c \ - src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ - src/core/lib/iomgr/ev_poll_posix.c \ - src/core/lib/iomgr/ev_posix.c \ - src/core/lib/iomgr/exec_ctx.c \ - src/core/lib/iomgr/executor.c \ - src/core/lib/iomgr/iocp_windows.c \ - src/core/lib/iomgr/iomgr.c \ - src/core/lib/iomgr/iomgr_posix.c \ - src/core/lib/iomgr/iomgr_windows.c \ - src/core/lib/iomgr/load_file.c \ - src/core/lib/iomgr/network_status_tracker.c \ - src/core/lib/iomgr/polling_entity.c \ - src/core/lib/iomgr/pollset_set_windows.c \ - src/core/lib/iomgr/pollset_windows.c \ - src/core/lib/iomgr/resolve_address_posix.c \ - src/core/lib/iomgr/resolve_address_windows.c \ - src/core/lib/iomgr/sockaddr_utils.c \ - src/core/lib/iomgr/socket_utils_common_posix.c \ - src/core/lib/iomgr/socket_utils_linux.c \ - src/core/lib/iomgr/socket_utils_posix.c \ - src/core/lib/iomgr/socket_windows.c \ - src/core/lib/iomgr/tcp_client_posix.c \ - src/core/lib/iomgr/tcp_client_windows.c \ - src/core/lib/iomgr/tcp_posix.c \ - src/core/lib/iomgr/tcp_server_posix.c \ - src/core/lib/iomgr/tcp_server_windows.c \ - src/core/lib/iomgr/tcp_windows.c \ - src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ - src/core/lib/iomgr/timer_heap.c \ - src/core/lib/iomgr/udp_server.c \ - src/core/lib/iomgr/unix_sockets_posix.c \ - src/core/lib/iomgr/unix_sockets_posix_noop.c \ - src/core/lib/iomgr/wakeup_fd_eventfd.c \ - src/core/lib/iomgr/wakeup_fd_nospecial.c \ - src/core/lib/iomgr/wakeup_fd_pipe.c \ - src/core/lib/iomgr/wakeup_fd_posix.c \ - src/core/lib/iomgr/workqueue_posix.c \ - src/core/lib/iomgr/workqueue_windows.c \ - src/core/lib/json/json.c \ - src/core/lib/json/json_reader.c \ - src/core/lib/json/json_string.c \ - src/core/lib/json/json_writer.c \ - src/core/lib/surface/alarm.c \ - src/core/lib/surface/api_trace.c \ - src/core/lib/surface/byte_buffer.c \ - src/core/lib/surface/byte_buffer_reader.c \ - src/core/lib/surface/call.c \ - src/core/lib/surface/call_details.c \ - src/core/lib/surface/call_log_batch.c \ - src/core/lib/surface/channel.c \ - src/core/lib/surface/channel_init.c \ - src/core/lib/surface/channel_ping.c \ - src/core/lib/surface/channel_stack_type.c \ - src/core/lib/surface/completion_queue.c \ - src/core/lib/surface/event_string.c \ - src/core/lib/surface/lame_client.c \ - src/core/lib/surface/metadata_array.c \ - src/core/lib/surface/server.c \ - src/core/lib/surface/validate_metadata.c \ - src/core/lib/surface/version.c \ - src/core/lib/transport/byte_stream.c \ - src/core/lib/transport/connectivity_state.c \ - src/core/lib/transport/metadata.c \ - src/core/lib/transport/metadata_batch.c \ - src/core/lib/transport/static_metadata.c \ - src/core/lib/transport/timeout_encoding.c \ - src/core/lib/transport/transport.c \ - src/core/lib/transport/transport_op_string.c \ +LIBGRPC++_REFLECTION_CODEGEN_SRC = \ + $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc \ -PUBLIC_HEADERS_C += \ - include/grpc/byte_buffer.h \ - include/grpc/byte_buffer_reader.h \ - include/grpc/compression.h \ - include/grpc/grpc.h \ - include/grpc/grpc_posix.h \ - include/grpc/status.h \ - include/grpc/impl/codegen/byte_buffer.h \ - include/grpc/impl/codegen/byte_buffer_reader.h \ - include/grpc/impl/codegen/compression_types.h \ - include/grpc/impl/codegen/connectivity_state.h \ - include/grpc/impl/codegen/grpc_types.h \ - include/grpc/impl/codegen/propagation_bits.h \ - include/grpc/impl/codegen/status.h \ - include/grpc/impl/codegen/alloc.h \ - include/grpc/impl/codegen/atm.h \ - include/grpc/impl/codegen/atm_gcc_atomic.h \ - include/grpc/impl/codegen/atm_gcc_sync.h \ - include/grpc/impl/codegen/atm_windows.h \ - include/grpc/impl/codegen/log.h \ - include/grpc/impl/codegen/port_platform.h \ - include/grpc/impl/codegen/slice.h \ - include/grpc/impl/codegen/slice_buffer.h \ - include/grpc/impl/codegen/sync.h \ - include/grpc/impl/codegen/sync_generic.h \ - include/grpc/impl/codegen/sync_posix.h \ - include/grpc/impl/codegen/sync_windows.h \ - include/grpc/impl/codegen/time.h \ +PUBLIC_HEADERS_CXX += \ -LIBGRPC_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_TEST_UTIL_SRC)))) +LIBGRPC++_REFLECTION_CODEGEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_REFLECTION_CODEGEN_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc_test_util.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: openssl_dep_error else +ifeq ($(NO_PROTOBUF),true) -$(LIBDIR)/$(CONFIG)/libgrpc_test_util.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_TEST_UTIL_OBJS) +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_REFLECTION_CODEGEN_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBGRPC_TEST_UTIL_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBGRPC++_REFLECTION_CODEGEN_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a +endif + + + + +endif + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBGRPC++_REFLECTION_CODEGEN_OBJS:.o=.dep) endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBGRPC++_TEST_CONFIG_SRC = \ + test/cpp/util/test_config.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBGRPC++_TEST_CONFIG_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_CONFIG_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure libraries if you don't have OpenSSL. -endif +$(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a: openssl_dep_error -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(LIBGRPC_TEST_UTIL_OBJS:.o=.dep) -endif -endif -# Force compilation of proto files before building code that could potentially depend on them +else +ifeq ($(NO_PROTOBUF),true) -# Using nanopb for C files right now -LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ - test/core/end2end/cq_verifier.c \ - test/core/end2end/fixtures/proxy.c \ - test/core/iomgr/endpoint_tests.c \ - test/core/util/grpc_profiler.c \ - test/core/util/memory_counters.c \ - test/core/util/mock_endpoint.c \ - test/core/util/parse_hexstring.c \ - test/core/util/passthru_endpoint.c \ - test/core/util/port_posix.c \ - test/core/util/port_server_client.c \ - test/core/util/port_windows.c \ - test/core/util/slice_splitter.c \ +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -PUBLIC_HEADERS_C += \ +$(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a: protobuf_dep_error -LIBGRPC_TEST_UTIL_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_TEST_UTIL_UNSECURE_SRC)))) +else -$(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a: $(ZLIB_DEP) $(LIBGRPC_TEST_UTIL_UNSECURE_OBJS) +$(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_TEST_CONFIG_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBGRPC_TEST_UTIL_UNSECURE_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBGRPC++_TEST_CONFIG_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a endif +endif + +endif + +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC_TEST_UTIL_UNSECURE_OBJS:.o=.dep) +-include $(LIBGRPC++_TEST_CONFIG_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them # Using nanopb for C files right now -LIBGRPC_UNSECURE_SRC = \ - src/core/lib/surface/init.c \ - src/core/lib/surface/init_unsecure.c \ - src/core/lib/channel/channel_args.c \ - src/core/lib/channel/channel_stack.c \ - src/core/lib/channel/channel_stack_builder.c \ - src/core/lib/channel/compress_filter.c \ - src/core/lib/channel/connected_channel.c \ - src/core/lib/channel/handshaker.c \ - src/core/lib/channel/http_client_filter.c \ - src/core/lib/channel/http_server_filter.c \ - src/core/lib/compression/compression.c \ - src/core/lib/compression/message_compress.c \ - src/core/lib/debug/trace.c \ - src/core/lib/http/format_request.c \ - src/core/lib/http/httpcli.c \ - src/core/lib/http/parser.c \ - src/core/lib/iomgr/closure.c \ - src/core/lib/iomgr/endpoint.c \ - src/core/lib/iomgr/endpoint_pair_posix.c \ - src/core/lib/iomgr/endpoint_pair_windows.c \ - src/core/lib/iomgr/error.c \ - src/core/lib/iomgr/ev_epoll_linux.c \ - src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ - src/core/lib/iomgr/ev_poll_posix.c \ - src/core/lib/iomgr/ev_posix.c \ - src/core/lib/iomgr/exec_ctx.c \ - src/core/lib/iomgr/executor.c \ - src/core/lib/iomgr/iocp_windows.c \ - src/core/lib/iomgr/iomgr.c \ - src/core/lib/iomgr/iomgr_posix.c \ - src/core/lib/iomgr/iomgr_windows.c \ - src/core/lib/iomgr/load_file.c \ - src/core/lib/iomgr/network_status_tracker.c \ - src/core/lib/iomgr/polling_entity.c \ - src/core/lib/iomgr/pollset_set_windows.c \ - src/core/lib/iomgr/pollset_windows.c \ - src/core/lib/iomgr/resolve_address_posix.c \ - src/core/lib/iomgr/resolve_address_windows.c \ - src/core/lib/iomgr/sockaddr_utils.c \ - src/core/lib/iomgr/socket_utils_common_posix.c \ - src/core/lib/iomgr/socket_utils_linux.c \ - src/core/lib/iomgr/socket_utils_posix.c \ - src/core/lib/iomgr/socket_windows.c \ - src/core/lib/iomgr/tcp_client_posix.c \ - src/core/lib/iomgr/tcp_client_windows.c \ - src/core/lib/iomgr/tcp_posix.c \ - src/core/lib/iomgr/tcp_server_posix.c \ - src/core/lib/iomgr/tcp_server_windows.c \ - src/core/lib/iomgr/tcp_windows.c \ - src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ - src/core/lib/iomgr/timer_heap.c \ - src/core/lib/iomgr/udp_server.c \ - src/core/lib/iomgr/unix_sockets_posix.c \ - src/core/lib/iomgr/unix_sockets_posix_noop.c \ - src/core/lib/iomgr/wakeup_fd_eventfd.c \ - src/core/lib/iomgr/wakeup_fd_nospecial.c \ - src/core/lib/iomgr/wakeup_fd_pipe.c \ - src/core/lib/iomgr/wakeup_fd_posix.c \ - src/core/lib/iomgr/workqueue_posix.c \ - src/core/lib/iomgr/workqueue_windows.c \ - src/core/lib/json/json.c \ - src/core/lib/json/json_reader.c \ - src/core/lib/json/json_string.c \ - src/core/lib/json/json_writer.c \ - src/core/lib/surface/alarm.c \ - src/core/lib/surface/api_trace.c \ - src/core/lib/surface/byte_buffer.c \ - src/core/lib/surface/byte_buffer_reader.c \ - src/core/lib/surface/call.c \ - src/core/lib/surface/call_details.c \ - src/core/lib/surface/call_log_batch.c \ - src/core/lib/surface/channel.c \ - src/core/lib/surface/channel_init.c \ - src/core/lib/surface/channel_ping.c \ - src/core/lib/surface/channel_stack_type.c \ - src/core/lib/surface/completion_queue.c \ - src/core/lib/surface/event_string.c \ - src/core/lib/surface/lame_client.c \ - src/core/lib/surface/metadata_array.c \ - src/core/lib/surface/server.c \ - src/core/lib/surface/validate_metadata.c \ - src/core/lib/surface/version.c \ - src/core/lib/transport/byte_stream.c \ - src/core/lib/transport/connectivity_state.c \ - src/core/lib/transport/metadata.c \ - src/core/lib/transport/metadata_batch.c \ - src/core/lib/transport/static_metadata.c \ - src/core/lib/transport/timeout_encoding.c \ - src/core/lib/transport/transport.c \ - src/core/lib/transport/transport_op_string.c \ - src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \ - src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c \ - src/core/ext/transport/chttp2/transport/bin_decoder.c \ - src/core/ext/transport/chttp2/transport/bin_encoder.c \ - src/core/ext/transport/chttp2/transport/chttp2_plugin.c \ - src/core/ext/transport/chttp2/transport/chttp2_transport.c \ - src/core/ext/transport/chttp2/transport/frame_data.c \ - src/core/ext/transport/chttp2/transport/frame_goaway.c \ - src/core/ext/transport/chttp2/transport/frame_ping.c \ - src/core/ext/transport/chttp2/transport/frame_rst_stream.c \ - src/core/ext/transport/chttp2/transport/frame_settings.c \ - src/core/ext/transport/chttp2/transport/frame_window_update.c \ - src/core/ext/transport/chttp2/transport/hpack_encoder.c \ - src/core/ext/transport/chttp2/transport/hpack_parser.c \ - src/core/ext/transport/chttp2/transport/hpack_table.c \ - src/core/ext/transport/chttp2/transport/huffsyms.c \ - src/core/ext/transport/chttp2/transport/incoming_metadata.c \ - src/core/ext/transport/chttp2/transport/parsing.c \ - src/core/ext/transport/chttp2/transport/status_conversion.c \ - src/core/ext/transport/chttp2/transport/stream_lists.c \ - src/core/ext/transport/chttp2/transport/stream_map.c \ - src/core/ext/transport/chttp2/transport/varint.c \ - src/core/ext/transport/chttp2/transport/writing.c \ - src/core/ext/transport/chttp2/alpn/alpn.c \ - src/core/ext/transport/chttp2/client/insecure/channel_create.c \ - src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c \ - src/core/ext/client_config/channel_connectivity.c \ - src/core/ext/client_config/client_channel.c \ - src/core/ext/client_config/client_channel_factory.c \ - src/core/ext/client_config/client_config.c \ - src/core/ext/client_config/client_config_plugin.c \ - src/core/ext/client_config/connector.c \ - src/core/ext/client_config/default_initial_connect_string.c \ - src/core/ext/client_config/initial_connect_string.c \ - src/core/ext/client_config/lb_policy.c \ - src/core/ext/client_config/lb_policy_factory.c \ - src/core/ext/client_config/lb_policy_registry.c \ - src/core/ext/client_config/parse_address.c \ - src/core/ext/client_config/resolver.c \ - src/core/ext/client_config/resolver_factory.c \ - src/core/ext/client_config/resolver_registry.c \ - src/core/ext/client_config/subchannel.c \ - src/core/ext/client_config/subchannel_call_holder.c \ - src/core/ext/client_config/subchannel_index.c \ - src/core/ext/client_config/uri_parser.c \ - src/core/ext/resolver/dns/native/dns_resolver.c \ - src/core/ext/resolver/sockaddr/sockaddr_resolver.c \ - src/core/ext/load_reporting/load_reporting.c \ - src/core/ext/load_reporting/load_reporting_filter.c \ - src/core/ext/lb_policy/grpclb/grpclb.c \ - src/core/ext/lb_policy/grpclb/load_balancer_api.c \ - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \ - third_party/nanopb/pb_common.c \ - third_party/nanopb/pb_decode.c \ - third_party/nanopb/pb_encode.c \ - src/core/ext/lb_policy/pick_first/pick_first.c \ - src/core/ext/lb_policy/round_robin/round_robin.c \ - src/core/ext/census/base_resources.c \ - src/core/ext/census/context.c \ - src/core/ext/census/gen/census.pb.c \ - src/core/ext/census/grpc_context.c \ - src/core/ext/census/grpc_filter.c \ - src/core/ext/census/grpc_plugin.c \ - src/core/ext/census/initialize.c \ - src/core/ext/census/mlog.c \ - src/core/ext/census/operation.c \ - src/core/ext/census/placeholders.c \ - src/core/ext/census/resource.c \ - src/core/ext/census/tracing.c \ - src/core/plugin_registry/grpc_unsecure_plugin_registry.c \ +LIBGRPC++_TEST_UTIL_SRC = \ + $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc \ + test/cpp/end2end/test_service_impl.cc \ + test/cpp/util/byte_buffer_proto_helper.cc \ + test/cpp/util/create_test_channel.cc \ + test/cpp/util/string_ref_helper.cc \ + test/cpp/util/subprocess.cc \ + test/cpp/util/test_credentials_provider.cc \ + src/cpp/codegen/codegen_init.cc \ -PUBLIC_HEADERS_C += \ - include/grpc/byte_buffer.h \ - include/grpc/byte_buffer_reader.h \ - include/grpc/compression.h \ - include/grpc/grpc.h \ - include/grpc/grpc_posix.h \ - include/grpc/status.h \ +PUBLIC_HEADERS_CXX += \ + include/grpc++/impl/codegen/async_stream.h \ + include/grpc++/impl/codegen/async_unary_call.h \ + include/grpc++/impl/codegen/call.h \ + include/grpc++/impl/codegen/call_hook.h \ + include/grpc++/impl/codegen/channel_interface.h \ + include/grpc++/impl/codegen/client_context.h \ + include/grpc++/impl/codegen/client_unary_call.h \ + include/grpc++/impl/codegen/completion_queue.h \ + include/grpc++/impl/codegen/completion_queue_tag.h \ + include/grpc++/impl/codegen/config.h \ + include/grpc++/impl/codegen/core_codegen_interface.h \ + include/grpc++/impl/codegen/create_auth_context.h \ + include/grpc++/impl/codegen/grpc_library.h \ + include/grpc++/impl/codegen/method_handler_impl.h \ + include/grpc++/impl/codegen/rpc_method.h \ + include/grpc++/impl/codegen/rpc_service_method.h \ + include/grpc++/impl/codegen/security/auth_context.h \ + include/grpc++/impl/codegen/serialization_traits.h \ + include/grpc++/impl/codegen/server_context.h \ + include/grpc++/impl/codegen/server_interface.h \ + include/grpc++/impl/codegen/service_type.h \ + include/grpc++/impl/codegen/status.h \ + include/grpc++/impl/codegen/status_code_enum.h \ + include/grpc++/impl/codegen/string_ref.h \ + include/grpc++/impl/codegen/stub_options.h \ + include/grpc++/impl/codegen/sync.h \ + include/grpc++/impl/codegen/sync_cxx11.h \ + include/grpc++/impl/codegen/sync_no_cxx11.h \ + include/grpc++/impl/codegen/sync_stream.h \ + include/grpc++/impl/codegen/time.h \ include/grpc/impl/codegen/byte_buffer.h \ include/grpc/impl/codegen/byte_buffer_reader.h \ include/grpc/impl/codegen/compression_types.h \ @@ -3815,139 +3287,65 @@ PUBLIC_HEADERS_C += \ include/grpc/impl/codegen/sync_posix.h \ include/grpc/impl/codegen/sync_windows.h \ include/grpc/impl/codegen/time.h \ - include/grpc/census.h \ - -LIBGRPC_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_UNSECURE_SRC)))) - - -$(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a: $(ZLIB_DEP) $(LIBGRPC_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBGRPC_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a -endif - - - -ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc_unsecure.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) -else -$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` -ifeq ($(SYSTEM),Darwin) - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) -else - $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_unsecure.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) - $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).so -endif -endif - -ifneq ($(NO_DEPS),true) --include $(LIBGRPC_UNSECURE_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - -# Using nanopb for C files right now -LIBRECONNECT_SERVER_SRC = \ - test/core/util/reconnect_server.c \ - -PUBLIC_HEADERS_C += \ + include/grpc++/impl/codegen/proto_utils.h \ + include/grpc++/impl/codegen/config_protobuf.h \ -LIBRECONNECT_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBRECONNECT_SERVER_SRC)))) +LIBGRPC++_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_UTIL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libreconnect_server.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a: openssl_dep_error else +ifeq ($(NO_PROTOBUF),true) -$(LIBDIR)/$(CONFIG)/libreconnect_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBRECONNECT_SERVER_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libreconnect_server.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBRECONNECT_SERVER_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libreconnect_server.a -endif - - - - -endif - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(LIBRECONNECT_SERVER_OBJS:.o=.dep) -endif -endif - -# Force compilation of proto files before building code that could potentially depend on them - - -# Using nanopb for C files right now -LIBTEST_TCP_SERVER_SRC = \ - test/core/util/test_tcp_server.c \ - -PUBLIC_HEADERS_C += \ - -LIBTEST_TCP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBTEST_TCP_SERVER_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libtest_tcp_server.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a: protobuf_dep_error else - -$(LIBDIR)/$(CONFIG)/libtest_tcp_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBTEST_TCP_SERVER_OBJS) +$(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_TEST_UTIL_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBTEST_TCP_SERVER_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBGRPC++_TEST_UTIL_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a endif +endif + endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBTEST_TCP_SERVER_OBJS:.o=.dep) +-include $(LIBGRPC++_TEST_UTIL_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc # Using nanopb for C files right now -LIBGRPC++_SRC = \ - src/cpp/client/secure_credentials.cc \ - src/cpp/common/auth_property_iterator.cc \ - src/cpp/common/secure_auth_context.cc \ - src/cpp/common/secure_channel_arguments.cc \ - src/cpp/common/secure_create_auth_context.cc \ - src/cpp/server/secure_server_credentials.cc \ +LIBGRPC++_UNSECURE_SRC = \ + src/cpp/common/insecure_create_auth_context.cc \ src/cpp/client/channel.cc \ src/cpp/client/client_context.cc \ src/cpp/client/create_channel.cc \ @@ -4076,16 +3474,173 @@ PUBLIC_HEADERS_CXX += \ include/grpc/impl/codegen/sync_windows.h \ include/grpc/impl/codegen/time.h \ -LIBGRPC++_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_SRC)))) +LIBGRPC++_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_UNSECURE_SRC)))) + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a: protobuf_dep_error + +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT): protobuf_dep_error + +else + +$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBGRPC++_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a +endif + + + +ifeq ($(SYSTEM),MINGW32) +$(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_UNSECURE_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/gpr.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/grpc_unsecure.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc++_unsecure.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_UNSECURE_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgpr-imp -lgrpc_unsecure-imp -lgrpc-imp +else +$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_UNSECURE_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/libgpr.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` +ifeq ($(SYSTEM),Darwin) + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_UNSECURE_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgpr -lgrpc_unsecure -lgrpc +else + $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc++_unsecure.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_UNSECURE_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgpr -lgrpc_unsecure -lgrpc + $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).so +endif +endif + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBGRPC++_UNSECURE_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBGRPC_CLI_LIBS_SRC = \ + test/cpp/util/cli_call.cc \ + test/cpp/util/proto_file_parser.cc \ + test/cpp/util/proto_reflection_descriptor_database.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBGRPC_CLI_LIBS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CLI_LIBS_SRC)))) + + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a: openssl_dep_error + + +else + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC_CLI_LIBS_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBGRPC_CLI_LIBS_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a +endif + + + + +endif + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBGRPC_CLI_LIBS_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBGRPC_PLUGIN_SUPPORT_SRC = \ + src/compiler/c_generator.cc \ + src/compiler/cpp_generator.cc \ + src/compiler/csharp_generator.cc \ + src/compiler/node_generator.cc \ + src/compiler/objective_c_generator.cc \ + src/compiler/python_generator.cc \ + src/compiler/ruby_generator.cc \ + +PUBLIC_HEADERS_CXX += \ + include/grpc++/impl/codegen/config_protobuf.h \ + +LIBGRPC_PLUGIN_SUPPORT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_PLUGIN_SUPPORT_SRC)))) + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBGRPC_PLUGIN_SUPPORT_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(LIBGRPC_PLUGIN_SUPPORT_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +endif + + + + +endif + +ifneq ($(NO_DEPS),true) +-include $(LIBGRPC_PLUGIN_SUPPORT_OBJS:.o=.dep) +endif + +# Force compilation of proto files before building code that could potentially depend on them + + +# Using nanopb for C files right now +LIBINTEROP_CLIENT_HELPER_SRC = \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + test/cpp/interop/client_helper.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBINTEROP_CLIENT_HELPER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_CLIENT_HELPER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc++.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libinterop_client_helper.a: openssl_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error else @@ -4093,40 +3648,22 @@ ifeq ($(NO_PROTOBUF),true) # You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libgrpc++.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libinterop_client_helper.a: protobuf_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT): protobuf_dep_error else -$(LIBDIR)/$(CONFIG)/libgrpc++.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) +$(LIBDIR)/$(CONFIG)/libinterop_client_helper.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_CLIENT_HELPER_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBGRPC++_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBINTEROP_CLIENT_HELPER_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a endif -ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) $(OPENSSL_DEP) - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc++.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc-imp -else -$(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) $(OPENSSL_DEP) - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` -ifeq ($(SYSTEM),Darwin) - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc -else - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc++.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc - $(Q) ln -sf $(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc++$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION).so -endif -endif endif @@ -4134,88 +3671,33 @@ endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC++_OBJS:.o=.dep) +-include $(LIBINTEROP_CLIENT_HELPER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc # Using nanopb for C files right now -LIBGRPC++_REFLECTION_SRC = \ - src/cpp/ext/proto_server_reflection.cc \ - src/cpp/ext/proto_server_reflection_plugin.cc \ - src/cpp/ext/reflection.grpc.pb.cc \ - src/cpp/ext/reflection.pb.cc \ +LIBINTEROP_CLIENT_MAIN_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/client.cc \ + test/cpp/interop/interop_client.cc \ PUBLIC_HEADERS_CXX += \ - include/grpc++/ext/proto_server_reflection_plugin.h \ - include/grpc++/ext/reflection.grpc.pb.h \ - include/grpc++/ext/reflection.pb.h \ - include/grpc++/impl/codegen/proto_utils.h \ - include/grpc++/impl/codegen/async_stream.h \ - include/grpc++/impl/codegen/async_unary_call.h \ - include/grpc++/impl/codegen/call.h \ - include/grpc++/impl/codegen/call_hook.h \ - include/grpc++/impl/codegen/channel_interface.h \ - include/grpc++/impl/codegen/client_context.h \ - include/grpc++/impl/codegen/client_unary_call.h \ - include/grpc++/impl/codegen/completion_queue.h \ - include/grpc++/impl/codegen/completion_queue_tag.h \ - include/grpc++/impl/codegen/config.h \ - include/grpc++/impl/codegen/core_codegen_interface.h \ - include/grpc++/impl/codegen/create_auth_context.h \ - include/grpc++/impl/codegen/grpc_library.h \ - include/grpc++/impl/codegen/method_handler_impl.h \ - include/grpc++/impl/codegen/rpc_method.h \ - include/grpc++/impl/codegen/rpc_service_method.h \ - include/grpc++/impl/codegen/security/auth_context.h \ - include/grpc++/impl/codegen/serialization_traits.h \ - include/grpc++/impl/codegen/server_context.h \ - include/grpc++/impl/codegen/server_interface.h \ - include/grpc++/impl/codegen/service_type.h \ - include/grpc++/impl/codegen/status.h \ - include/grpc++/impl/codegen/status_code_enum.h \ - include/grpc++/impl/codegen/string_ref.h \ - include/grpc++/impl/codegen/stub_options.h \ - include/grpc++/impl/codegen/sync.h \ - include/grpc++/impl/codegen/sync_cxx11.h \ - include/grpc++/impl/codegen/sync_no_cxx11.h \ - include/grpc++/impl/codegen/sync_stream.h \ - include/grpc++/impl/codegen/time.h \ - include/grpc/impl/codegen/byte_buffer.h \ - include/grpc/impl/codegen/byte_buffer_reader.h \ - include/grpc/impl/codegen/compression_types.h \ - include/grpc/impl/codegen/connectivity_state.h \ - include/grpc/impl/codegen/grpc_types.h \ - include/grpc/impl/codegen/propagation_bits.h \ - include/grpc/impl/codegen/status.h \ - include/grpc/impl/codegen/alloc.h \ - include/grpc/impl/codegen/atm.h \ - include/grpc/impl/codegen/atm_gcc_atomic.h \ - include/grpc/impl/codegen/atm_gcc_sync.h \ - include/grpc/impl/codegen/atm_windows.h \ - include/grpc/impl/codegen/log.h \ - include/grpc/impl/codegen/port_platform.h \ - include/grpc/impl/codegen/slice.h \ - include/grpc/impl/codegen/slice_buffer.h \ - include/grpc/impl/codegen/sync.h \ - include/grpc/impl/codegen/sync_generic.h \ - include/grpc/impl/codegen/sync_posix.h \ - include/grpc/impl/codegen/sync_windows.h \ - include/grpc/impl/codegen/time.h \ - include/grpc++/impl/codegen/config_protobuf.h \ -LIBGRPC++_REFLECTION_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_REFLECTION_SRC)))) +LIBINTEROP_CLIENT_MAIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_CLIENT_MAIN_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libinterop_client_main.a: openssl_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error else @@ -4223,48 +3705,84 @@ ifeq ($(NO_PROTOBUF),true) # You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libinterop_client_main.a: protobuf_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): protobuf_dep_error else -$(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_REFLECTION_OBJS) +$(LIBDIR)/$(CONFIG)/libinterop_client_main.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_CLIENT_MAIN_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBGRPC++_REFLECTION_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_client_main.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBINTEROP_CLIENT_MAIN_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_client_main.a endif -ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_REFLECTION_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/grpc++.$(SHARED_EXT) $(OPENSSL_DEP) - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc++_reflection.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_REFLECTION_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc++-imp + +endif + +endif + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(LIBINTEROP_CLIENT_MAIN_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + + +# Using nanopb for C files right now +LIBINTEROP_SERVER_HELPER_SRC = \ + test/cpp/interop/server_helper.cc \ + +PUBLIC_HEADERS_CXX += \ + +LIBINTEROP_SERVER_HELPER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_SERVER_HELPER_SRC)))) + + +ifeq ($(NO_SECURE),true) + +# You can't build secure libraries if you don't have OpenSSL. + +$(LIBDIR)/$(CONFIG)/libinterop_server_helper.a: openssl_dep_error + + else -$(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_REFLECTION_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/libgrpc++.$(SHARED_EXT) $(OPENSSL_DEP) - $(E) "[LD] Linking $@" + +ifeq ($(NO_PROTOBUF),true) + +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. + +$(LIBDIR)/$(CONFIG)/libinterop_server_helper.a: protobuf_dep_error + + +else + +$(LIBDIR)/$(CONFIG)/libinterop_server_helper.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_SERVER_HELPER_OBJS) + $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBINTEROP_SERVER_HELPER_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_REFLECTION_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc++ -else - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc++_reflection.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_REFLECTION_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgrpc++ - $(Q) ln -sf $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc++_reflection$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION).so -endif + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a endif + + + endif endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC++_REFLECTION_OBJS:.o=.dep) +-include $(LIBINTEROP_SERVER_HELPER_OBJS:.o=.dep) endif endif @@ -4272,19 +3790,22 @@ endif # Using nanopb for C files right now -LIBGRPC++_REFLECTION_CODEGEN_SRC = \ - $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc \ +LIBINTEROP_SERVER_MAIN_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/interop_server.cc \ PUBLIC_HEADERS_CXX += \ -LIBGRPC++_REFLECTION_CODEGEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_REFLECTION_CODEGEN_SRC)))) +LIBINTEROP_SERVER_MAIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_SERVER_MAIN_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libinterop_server_main.a: openssl_dep_error else @@ -4293,18 +3814,18 @@ ifeq ($(NO_PROTOBUF),true) # You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libinterop_server_main.a: protobuf_dep_error else -$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_REFLECTION_CODEGEN_OBJS) +$(LIBDIR)/$(CONFIG)/libinterop_server_main.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_SERVER_MAIN_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBGRPC++_REFLECTION_CODEGEN_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_server_main.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBINTEROP_SERVER_MAIN_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_server_main.a endif @@ -4316,27 +3837,43 @@ endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC++_REFLECTION_CODEGEN_OBJS:.o=.dep) +-include $(LIBINTEROP_SERVER_MAIN_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc # Using nanopb for C files right now -LIBGRPC++_TEST_CONFIG_SRC = \ - test/cpp/util/test_config.cc \ +LIBQPS_SRC = \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + test/cpp/qps/client_async.cc \ + test/cpp/qps/client_sync.cc \ + test/cpp/qps/driver.cc \ + test/cpp/qps/limit_cores.cc \ + test/cpp/qps/parse_json.cc \ + test/cpp/qps/qps_worker.cc \ + test/cpp/qps/report.cc \ + test/cpp/qps/server_async.cc \ + test/cpp/qps/server_sync.cc \ + test/cpp/qps/usage_timer.cc \ + test/cpp/util/benchmark_config.cc \ PUBLIC_HEADERS_CXX += \ -LIBGRPC++_TEST_CONFIG_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_CONFIG_SRC)))) +LIBQPS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBQPS_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libqps.a: openssl_dep_error else @@ -4345,18 +3882,18 @@ ifeq ($(NO_PROTOBUF),true) # You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libqps.a: protobuf_dep_error else -$(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_TEST_CONFIG_OBJS) +$(LIBDIR)/$(CONFIG)/libqps.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBQPS_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBGRPC++_TEST_CONFIG_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libqps.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBQPS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libqps.a endif @@ -4368,64 +3905,101 @@ endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC++_TEST_CONFIG_OBJS:.o=.dep) +-include $(LIBQPS_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/limit_cores.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/parse_json.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/qps/usage_timer.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc # Using nanopb for C files right now -LIBGRPC++_TEST_UTIL_SRC = \ - $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc \ - test/cpp/end2end/test_service_impl.cc \ - test/cpp/util/byte_buffer_proto_helper.cc \ - test/cpp/util/create_test_channel.cc \ - test/cpp/util/string_ref_helper.cc \ - test/cpp/util/subprocess.cc \ - test/cpp/util/test_credentials_provider.cc \ - src/cpp/codegen/codegen_init.cc \ +LIBGPR_SRC = \ + src/core/lib/profiling/basic_timers.c \ + src/core/lib/profiling/stap_timers.c \ + src/core/lib/support/alloc.c \ + src/core/lib/support/avl.c \ + src/core/lib/support/backoff.c \ + src/core/lib/support/cmdline.c \ + src/core/lib/support/cpu_iphone.c \ + src/core/lib/support/cpu_linux.c \ + src/core/lib/support/cpu_posix.c \ + src/core/lib/support/cpu_windows.c \ + src/core/lib/support/env_linux.c \ + src/core/lib/support/env_posix.c \ + src/core/lib/support/env_windows.c \ + src/core/lib/support/histogram.c \ + src/core/lib/support/host_port.c \ + src/core/lib/support/log.c \ + src/core/lib/support/log_android.c \ + src/core/lib/support/log_linux.c \ + src/core/lib/support/log_posix.c \ + src/core/lib/support/log_windows.c \ + src/core/lib/support/murmur_hash.c \ + src/core/lib/support/slice.c \ + src/core/lib/support/slice_buffer.c \ + src/core/lib/support/stack_lockfree.c \ + src/core/lib/support/string.c \ + src/core/lib/support/string_posix.c \ + src/core/lib/support/string_util_windows.c \ + src/core/lib/support/string_windows.c \ + src/core/lib/support/subprocess_posix.c \ + src/core/lib/support/subprocess_windows.c \ + src/core/lib/support/sync.c \ + src/core/lib/support/sync_posix.c \ + src/core/lib/support/sync_windows.c \ + src/core/lib/support/thd.c \ + src/core/lib/support/thd_posix.c \ + src/core/lib/support/thd_windows.c \ + src/core/lib/support/time.c \ + src/core/lib/support/time_posix.c \ + src/core/lib/support/time_precise.c \ + src/core/lib/support/time_windows.c \ + src/core/lib/support/tls_pthread.c \ + src/core/lib/support/tmpfile_msys.c \ + src/core/lib/support/tmpfile_posix.c \ + src/core/lib/support/tmpfile_windows.c \ + src/core/lib/support/wrap_memcpy.c \ -PUBLIC_HEADERS_CXX += \ - include/grpc++/impl/codegen/async_stream.h \ - include/grpc++/impl/codegen/async_unary_call.h \ - include/grpc++/impl/codegen/call.h \ - include/grpc++/impl/codegen/call_hook.h \ - include/grpc++/impl/codegen/channel_interface.h \ - include/grpc++/impl/codegen/client_context.h \ - include/grpc++/impl/codegen/client_unary_call.h \ - include/grpc++/impl/codegen/completion_queue.h \ - include/grpc++/impl/codegen/completion_queue_tag.h \ - include/grpc++/impl/codegen/config.h \ - include/grpc++/impl/codegen/core_codegen_interface.h \ - include/grpc++/impl/codegen/create_auth_context.h \ - include/grpc++/impl/codegen/grpc_library.h \ - include/grpc++/impl/codegen/method_handler_impl.h \ - include/grpc++/impl/codegen/rpc_method.h \ - include/grpc++/impl/codegen/rpc_service_method.h \ - include/grpc++/impl/codegen/security/auth_context.h \ - include/grpc++/impl/codegen/serialization_traits.h \ - include/grpc++/impl/codegen/server_context.h \ - include/grpc++/impl/codegen/server_interface.h \ - include/grpc++/impl/codegen/service_type.h \ - include/grpc++/impl/codegen/status.h \ - include/grpc++/impl/codegen/status_code_enum.h \ - include/grpc++/impl/codegen/string_ref.h \ - include/grpc++/impl/codegen/stub_options.h \ - include/grpc++/impl/codegen/sync.h \ - include/grpc++/impl/codegen/sync_cxx11.h \ - include/grpc++/impl/codegen/sync_no_cxx11.h \ - include/grpc++/impl/codegen/sync_stream.h \ - include/grpc++/impl/codegen/time.h \ - include/grpc/impl/codegen/byte_buffer.h \ - include/grpc/impl/codegen/byte_buffer_reader.h \ - include/grpc/impl/codegen/compression_types.h \ - include/grpc/impl/codegen/connectivity_state.h \ - include/grpc/impl/codegen/grpc_types.h \ - include/grpc/impl/codegen/propagation_bits.h \ - include/grpc/impl/codegen/status.h \ +PUBLIC_HEADERS_CORE += \ + include/grpc/support/alloc.h \ + include/grpc/support/atm.h \ + include/grpc/support/atm_gcc_atomic.h \ + include/grpc/support/atm_gcc_sync.h \ + include/grpc/support/atm_windows.h \ + include/grpc/support/avl.h \ + include/grpc/support/cmdline.h \ + include/grpc/support/cpu.h \ + include/grpc/support/histogram.h \ + include/grpc/support/host_port.h \ + include/grpc/support/log.h \ + include/grpc/support/log_windows.h \ + include/grpc/support/port_platform.h \ + include/grpc/support/slice.h \ + include/grpc/support/slice_buffer.h \ + include/grpc/support/string_util.h \ + include/grpc/support/subprocess.h \ + include/grpc/support/sync.h \ + include/grpc/support/sync_generic.h \ + include/grpc/support/sync_posix.h \ + include/grpc/support/sync_windows.h \ + include/grpc/support/thd.h \ + include/grpc/support/time.h \ + include/grpc/support/tls.h \ + include/grpc/support/tls_gcc.h \ + include/grpc/support/tls_msvc.h \ + include/grpc/support/tls_pthread.h \ + include/grpc/support/useful.h \ include/grpc/impl/codegen/alloc.h \ include/grpc/impl/codegen/atm.h \ include/grpc/impl/codegen/atm_gcc_atomic.h \ @@ -4440,171 +4014,274 @@ PUBLIC_HEADERS_CXX += \ include/grpc/impl/codegen/sync_posix.h \ include/grpc/impl/codegen/sync_windows.h \ include/grpc/impl/codegen/time.h \ - include/grpc++/impl/codegen/proto_utils.h \ - include/grpc++/impl/codegen/config_protobuf.h \ - -LIBGRPC++_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_UTIL_SRC)))) +LIBGPR_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGPR_SRC)))) -ifeq ($(NO_SECURE),true) -# You can't build secure libraries if you don't have OpenSSL. +$(LIBDIR)/$(CONFIG)/libgpr.a: $(ZLIB_DEP) $(LIBGPR_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgpr.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBGPR_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgpr.a +endif -$(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a: openssl_dep_error +ifeq ($(SYSTEM),MINGW32) +$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION).$(SHARED_EXT): $(LIBGPR_OBJS) $(ZLIB_DEP) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared gpr.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBGPR_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) +else +$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).$(SHARED_EXT): $(LIBGPR_OBJS) $(ZLIB_DEP) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` +ifeq ($(SYSTEM),Darwin) + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBGPR_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) else + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgpr.so.1 -o $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBGPR_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) + $(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)gpr$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION).so +endif +endif -ifeq ($(NO_PROTOBUF),true) +ifneq ($(NO_DEPS),true) +-include $(LIBGPR_OBJS:.o=.dep) +endif -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +# Force compilation of proto files before building code that could potentially depend on them -$(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a: protobuf_dep_error +# Using nanopb for C files right now +LIBGPR_TEST_UTIL_SRC = \ + test/core/util/test_config.c \ + +PUBLIC_HEADERS_CORE += \ -else +LIBGPR_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGPR_TEST_UTIL_SRC)))) -$(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_TEST_UTIL_OBJS) + +$(LIBDIR)/$(CONFIG)/libgpr_test_util.a: $(ZLIB_DEP) $(LIBGPR_TEST_UTIL_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBGRPC++_TEST_UTIL_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgpr_test_util.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBGPR_TEST_UTIL_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgpr_test_util.a endif -endif - -endif - -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC++_TEST_UTIL_OBJS:.o=.dep) -endif +-include $(LIBGPR_TEST_UTIL_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc # Using nanopb for C files right now -LIBGRPC++_UNSECURE_SRC = \ - src/cpp/common/insecure_create_auth_context.cc \ - src/cpp/client/channel.cc \ - src/cpp/client/client_context.cc \ - src/cpp/client/create_channel.cc \ - src/cpp/client/create_channel_internal.cc \ - src/cpp/client/create_channel_posix.cc \ - src/cpp/client/credentials.cc \ - src/cpp/client/generic_stub.cc \ - src/cpp/client/insecure_credentials.cc \ - src/cpp/common/channel_arguments.cc \ - src/cpp/common/completion_queue.cc \ - src/cpp/common/core_codegen.cc \ - src/cpp/common/rpc_method.cc \ - src/cpp/server/async_generic_service.cc \ - src/cpp/server/create_default_thread_pool.cc \ - src/cpp/server/dynamic_thread_pool.cc \ - src/cpp/server/insecure_server_credentials.cc \ - src/cpp/server/server.cc \ - src/cpp/server/server_builder.cc \ - src/cpp/server/server_context.cc \ - src/cpp/server/server_credentials.cc \ - src/cpp/server/server_posix.cc \ - src/cpp/util/byte_buffer.cc \ - src/cpp/util/slice.cc \ - src/cpp/util/status.cc \ - src/cpp/util/string_ref.cc \ - src/cpp/util/time.cc \ - src/cpp/codegen/codegen_init.cc \ +LIBGRPC_SRC = \ + src/core/lib/surface/init.c \ + src/core/lib/channel/channel_args.c \ + src/core/lib/channel/channel_stack.c \ + src/core/lib/channel/channel_stack_builder.c \ + src/core/lib/channel/compress_filter.c \ + src/core/lib/channel/connected_channel.c \ + src/core/lib/channel/handshaker.c \ + src/core/lib/channel/http_client_filter.c \ + src/core/lib/channel/http_server_filter.c \ + src/core/lib/compression/compression.c \ + src/core/lib/compression/message_compress.c \ + src/core/lib/debug/trace.c \ + src/core/lib/http/format_request.c \ + src/core/lib/http/httpcli.c \ + src/core/lib/http/parser.c \ + src/core/lib/iomgr/closure.c \ + src/core/lib/iomgr/endpoint.c \ + src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_windows.c \ + src/core/lib/iomgr/error.c \ + src/core/lib/iomgr/ev_epoll_linux.c \ + src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ + src/core/lib/iomgr/ev_poll_posix.c \ + src/core/lib/iomgr/ev_posix.c \ + src/core/lib/iomgr/exec_ctx.c \ + src/core/lib/iomgr/executor.c \ + src/core/lib/iomgr/iocp_windows.c \ + src/core/lib/iomgr/iomgr.c \ + src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_windows.c \ + src/core/lib/iomgr/load_file.c \ + src/core/lib/iomgr/network_status_tracker.c \ + src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_windows.c \ + src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_windows.c \ + src/core/lib/iomgr/sockaddr_utils.c \ + src/core/lib/iomgr/socket_utils_common_posix.c \ + src/core/lib/iomgr/socket_utils_linux.c \ + src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_windows.c \ + src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_windows.c \ + src/core/lib/iomgr/tcp_posix.c \ + src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_windows.c \ + src/core/lib/iomgr/time_averaged_stats.c \ + src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/udp_server.c \ + src/core/lib/iomgr/unix_sockets_posix.c \ + src/core/lib/iomgr/unix_sockets_posix_noop.c \ + src/core/lib/iomgr/wakeup_fd_eventfd.c \ + src/core/lib/iomgr/wakeup_fd_nospecial.c \ + src/core/lib/iomgr/wakeup_fd_pipe.c \ + src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_posix.c \ + src/core/lib/iomgr/workqueue_windows.c \ + src/core/lib/json/json.c \ + src/core/lib/json/json_reader.c \ + src/core/lib/json/json_string.c \ + src/core/lib/json/json_writer.c \ + src/core/lib/surface/alarm.c \ + src/core/lib/surface/api_trace.c \ + src/core/lib/surface/byte_buffer.c \ + src/core/lib/surface/byte_buffer_reader.c \ + src/core/lib/surface/call.c \ + src/core/lib/surface/call_details.c \ + src/core/lib/surface/call_log_batch.c \ + src/core/lib/surface/channel.c \ + src/core/lib/surface/channel_init.c \ + src/core/lib/surface/channel_ping.c \ + src/core/lib/surface/channel_stack_type.c \ + src/core/lib/surface/completion_queue.c \ + src/core/lib/surface/event_string.c \ + src/core/lib/surface/lame_client.c \ + src/core/lib/surface/metadata_array.c \ + src/core/lib/surface/server.c \ + src/core/lib/surface/validate_metadata.c \ + src/core/lib/surface/version.c \ + src/core/lib/transport/byte_stream.c \ + src/core/lib/transport/connectivity_state.c \ + src/core/lib/transport/metadata.c \ + src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/static_metadata.c \ + src/core/lib/transport/timeout_encoding.c \ + src/core/lib/transport/transport.c \ + src/core/lib/transport/transport_op_string.c \ + src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c \ + src/core/ext/transport/chttp2/transport/bin_decoder.c \ + src/core/ext/transport/chttp2/transport/bin_encoder.c \ + src/core/ext/transport/chttp2/transport/chttp2_plugin.c \ + src/core/ext/transport/chttp2/transport/chttp2_transport.c \ + src/core/ext/transport/chttp2/transport/frame_data.c \ + src/core/ext/transport/chttp2/transport/frame_goaway.c \ + src/core/ext/transport/chttp2/transport/frame_ping.c \ + src/core/ext/transport/chttp2/transport/frame_rst_stream.c \ + src/core/ext/transport/chttp2/transport/frame_settings.c \ + src/core/ext/transport/chttp2/transport/frame_window_update.c \ + src/core/ext/transport/chttp2/transport/hpack_encoder.c \ + src/core/ext/transport/chttp2/transport/hpack_parser.c \ + src/core/ext/transport/chttp2/transport/hpack_table.c \ + src/core/ext/transport/chttp2/transport/huffsyms.c \ + src/core/ext/transport/chttp2/transport/incoming_metadata.c \ + src/core/ext/transport/chttp2/transport/parsing.c \ + src/core/ext/transport/chttp2/transport/status_conversion.c \ + src/core/ext/transport/chttp2/transport/stream_lists.c \ + src/core/ext/transport/chttp2/transport/stream_map.c \ + src/core/ext/transport/chttp2/transport/varint.c \ + src/core/ext/transport/chttp2/transport/writing.c \ + src/core/ext/transport/chttp2/alpn/alpn.c \ + src/core/lib/http/httpcli_security_connector.c \ + src/core/lib/security/context/security_context.c \ + src/core/lib/security/credentials/composite/composite_credentials.c \ + src/core/lib/security/credentials/credentials.c \ + src/core/lib/security/credentials/credentials_metadata.c \ + src/core/lib/security/credentials/fake/fake_credentials.c \ + src/core/lib/security/credentials/google_default/credentials_posix.c \ + src/core/lib/security/credentials/google_default/credentials_windows.c \ + src/core/lib/security/credentials/google_default/google_default_credentials.c \ + src/core/lib/security/credentials/iam/iam_credentials.c \ + src/core/lib/security/credentials/jwt/json_token.c \ + src/core/lib/security/credentials/jwt/jwt_credentials.c \ + src/core/lib/security/credentials/jwt/jwt_verifier.c \ + src/core/lib/security/credentials/oauth2/oauth2_credentials.c \ + src/core/lib/security/credentials/plugin/plugin_credentials.c \ + src/core/lib/security/credentials/ssl/ssl_credentials.c \ + src/core/lib/security/transport/client_auth_filter.c \ + src/core/lib/security/transport/handshake.c \ + src/core/lib/security/transport/secure_endpoint.c \ + src/core/lib/security/transport/security_connector.c \ + src/core/lib/security/transport/server_auth_filter.c \ + src/core/lib/security/transport/tsi_error.c \ + src/core/lib/security/util/b64.c \ + src/core/lib/security/util/json_util.c \ + src/core/lib/surface/init_secure.c \ + src/core/lib/tsi/fake_transport_security.c \ + src/core/lib/tsi/ssl_transport_security.c \ + src/core/lib/tsi/transport_security.c \ + src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \ + src/core/ext/client_config/channel_connectivity.c \ + src/core/ext/client_config/client_channel.c \ + src/core/ext/client_config/client_channel_factory.c \ + src/core/ext/client_config/client_config.c \ + src/core/ext/client_config/client_config_plugin.c \ + src/core/ext/client_config/connector.c \ + src/core/ext/client_config/default_initial_connect_string.c \ + src/core/ext/client_config/initial_connect_string.c \ + src/core/ext/client_config/lb_policy.c \ + src/core/ext/client_config/lb_policy_factory.c \ + src/core/ext/client_config/lb_policy_registry.c \ + src/core/ext/client_config/parse_address.c \ + src/core/ext/client_config/resolver.c \ + src/core/ext/client_config/resolver_factory.c \ + src/core/ext/client_config/resolver_registry.c \ + src/core/ext/client_config/subchannel.c \ + src/core/ext/client_config/subchannel_call_holder.c \ + src/core/ext/client_config/subchannel_index.c \ + src/core/ext/client_config/uri_parser.c \ + src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \ + src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c \ + src/core/ext/transport/chttp2/client/insecure/channel_create.c \ + src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c \ + src/core/ext/lb_policy/grpclb/grpclb.c \ + src/core/ext/lb_policy/grpclb/load_balancer_api.c \ + src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \ + third_party/nanopb/pb_common.c \ + third_party/nanopb/pb_decode.c \ + third_party/nanopb/pb_encode.c \ + src/core/ext/lb_policy/pick_first/pick_first.c \ + src/core/ext/lb_policy/round_robin/round_robin.c \ + src/core/ext/resolver/dns/native/dns_resolver.c \ + src/core/ext/resolver/sockaddr/sockaddr_resolver.c \ + src/core/ext/load_reporting/load_reporting.c \ + src/core/ext/load_reporting/load_reporting_filter.c \ + src/core/ext/census/base_resources.c \ + src/core/ext/census/context.c \ + src/core/ext/census/gen/census.pb.c \ + src/core/ext/census/grpc_context.c \ + src/core/ext/census/grpc_filter.c \ + src/core/ext/census/grpc_plugin.c \ + src/core/ext/census/initialize.c \ + src/core/ext/census/mlog.c \ + src/core/ext/census/operation.c \ + src/core/ext/census/placeholders.c \ + src/core/ext/census/resource.c \ + src/core/ext/census/tracing.c \ + src/core/plugin_registry/grpc_plugin_registry.c \ -PUBLIC_HEADERS_CXX += \ - include/grpc++/alarm.h \ - include/grpc++/channel.h \ - include/grpc++/client_context.h \ - include/grpc++/completion_queue.h \ - include/grpc++/create_channel.h \ - include/grpc++/create_channel_posix.h \ - include/grpc++/generic/async_generic_service.h \ - include/grpc++/generic/generic_stub.h \ - include/grpc++/grpc++.h \ - include/grpc++/impl/call.h \ - include/grpc++/impl/client_unary_call.h \ - include/grpc++/impl/codegen/core_codegen.h \ - include/grpc++/impl/grpc_library.h \ - include/grpc++/impl/method_handler_impl.h \ - include/grpc++/impl/rpc_method.h \ - include/grpc++/impl/rpc_service_method.h \ - include/grpc++/impl/serialization_traits.h \ - include/grpc++/impl/server_builder_option.h \ - include/grpc++/impl/server_builder_plugin.h \ - include/grpc++/impl/server_initializer.h \ - include/grpc++/impl/service_type.h \ - include/grpc++/impl/sync.h \ - include/grpc++/impl/sync_cxx11.h \ - include/grpc++/impl/sync_no_cxx11.h \ - include/grpc++/impl/thd.h \ - include/grpc++/impl/thd_cxx11.h \ - include/grpc++/impl/thd_no_cxx11.h \ - include/grpc++/security/auth_context.h \ - include/grpc++/security/auth_metadata_processor.h \ - include/grpc++/security/credentials.h \ - include/grpc++/security/server_credentials.h \ - include/grpc++/server.h \ - include/grpc++/server_builder.h \ - include/grpc++/server_context.h \ - include/grpc++/server_posix.h \ - include/grpc++/support/async_stream.h \ - include/grpc++/support/async_unary_call.h \ - include/grpc++/support/byte_buffer.h \ - include/grpc++/support/channel_arguments.h \ - include/grpc++/support/config.h \ - include/grpc++/support/slice.h \ - include/grpc++/support/status.h \ - include/grpc++/support/status_code_enum.h \ - include/grpc++/support/string_ref.h \ - include/grpc++/support/stub_options.h \ - include/grpc++/support/sync_stream.h \ - include/grpc++/support/time.h \ - include/grpc++/impl/codegen/async_stream.h \ - include/grpc++/impl/codegen/async_unary_call.h \ - include/grpc++/impl/codegen/call.h \ - include/grpc++/impl/codegen/call_hook.h \ - include/grpc++/impl/codegen/channel_interface.h \ - include/grpc++/impl/codegen/client_context.h \ - include/grpc++/impl/codegen/client_unary_call.h \ - include/grpc++/impl/codegen/completion_queue.h \ - include/grpc++/impl/codegen/completion_queue_tag.h \ - include/grpc++/impl/codegen/config.h \ - include/grpc++/impl/codegen/core_codegen_interface.h \ - include/grpc++/impl/codegen/create_auth_context.h \ - include/grpc++/impl/codegen/grpc_library.h \ - include/grpc++/impl/codegen/method_handler_impl.h \ - include/grpc++/impl/codegen/rpc_method.h \ - include/grpc++/impl/codegen/rpc_service_method.h \ - include/grpc++/impl/codegen/security/auth_context.h \ - include/grpc++/impl/codegen/serialization_traits.h \ - include/grpc++/impl/codegen/server_context.h \ - include/grpc++/impl/codegen/server_interface.h \ - include/grpc++/impl/codegen/service_type.h \ - include/grpc++/impl/codegen/status.h \ - include/grpc++/impl/codegen/status_code_enum.h \ - include/grpc++/impl/codegen/string_ref.h \ - include/grpc++/impl/codegen/stub_options.h \ - include/grpc++/impl/codegen/sync.h \ - include/grpc++/impl/codegen/sync_cxx11.h \ - include/grpc++/impl/codegen/sync_no_cxx11.h \ - include/grpc++/impl/codegen/sync_stream.h \ - include/grpc++/impl/codegen/time.h \ +PUBLIC_HEADERS_CORE += \ + include/grpc/byte_buffer.h \ + include/grpc/byte_buffer_reader.h \ + include/grpc/compression.h \ + include/grpc/grpc.h \ + include/grpc/grpc_posix.h \ + include/grpc/status.h \ include/grpc/impl/codegen/byte_buffer.h \ include/grpc/impl/codegen/byte_buffer_reader.h \ include/grpc/impl/codegen/compression_types.h \ @@ -4626,106 +4303,58 @@ PUBLIC_HEADERS_CXX += \ include/grpc/impl/codegen/sync_posix.h \ include/grpc/impl/codegen/sync_windows.h \ include/grpc/impl/codegen/time.h \ + include/grpc/grpc_security.h \ + include/grpc/grpc_security_constants.h \ + include/grpc/census.h \ -LIBGRPC++_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_UNSECURE_SRC)))) +LIBGRPC_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_SRC)))) -ifeq ($(NO_PROTOBUF),true) +ifeq ($(NO_SECURE),true) -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +# You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc.a: openssl_dep_error -$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT): protobuf_dep_error +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error else -$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) + +$(LIBDIR)/$(CONFIG)/libgrpc.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBGRPC++_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBGRPC_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc.a endif ifeq ($(SYSTEM),MINGW32) -$(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_UNSECURE_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/gpr.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/grpc_unsecure.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/grpc.$(SHARED_EXT) +$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc++_unsecure.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_UNSECURE_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgpr-imp -lgrpc_unsecure-imp -lgrpc-imp + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) else -$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC++_UNSECURE_OBJS) $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBDIR)/$(CONFIG)/libgpr.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc.$(SHARED_EXT) +$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` ifeq ($(SYSTEM),Darwin) - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_UNSECURE_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgpr -lgrpc_unsecure -lgrpc -else - $(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc++_unsecure.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC++_UNSECURE_OBJS) $(LDLIBS) $(ZLIB_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) -lgpr -lgrpc_unsecure -lgrpc - $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).so.1 - $(Q) ln -sf $(SHARED_PREFIX)grpc++_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION).so -endif -endif - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBGRPC++_UNSECURE_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - -# Using nanopb for C files right now -LIBGRPC_CLI_LIBS_SRC = \ - test/cpp/util/cli_call.cc \ - test/cpp/util/proto_file_parser.cc \ - test/cpp/util/proto_reflection_descriptor_database.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBGRPC_CLI_LIBS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CLI_LIBS_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. - -$(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a: openssl_dep_error - - -else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a: protobuf_dep_error - - + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) else - -$(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC_CLI_LIBS_OBJS) - $(E) "[AR] Creating $@" - $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBGRPC_CLI_LIBS_OBJS) -ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) + $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION).so endif - - - - endif endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBGRPC_CLI_LIBS_OBJS:.o=.dep) +-include $(LIBGRPC_OBJS:.o=.dep) endif endif @@ -4733,354 +4362,792 @@ endif # Using nanopb for C files right now -LIBGRPC_PLUGIN_SUPPORT_SRC = \ - src/compiler/c_generator.cc \ - src/compiler/cpp_generator.cc \ - src/compiler/csharp_generator.cc \ - src/compiler/node_generator.cc \ - src/compiler/objective_c_generator.cc \ - src/compiler/python_generator.cc \ - src/compiler/ruby_generator.cc \ +LIBGRPC_CRONET_SRC = \ + src/core/lib/surface/init.c \ + src/core/lib/channel/channel_args.c \ + src/core/lib/channel/channel_stack.c \ + src/core/lib/channel/channel_stack_builder.c \ + src/core/lib/channel/compress_filter.c \ + src/core/lib/channel/connected_channel.c \ + src/core/lib/channel/handshaker.c \ + src/core/lib/channel/http_client_filter.c \ + src/core/lib/channel/http_server_filter.c \ + src/core/lib/compression/compression.c \ + src/core/lib/compression/message_compress.c \ + src/core/lib/debug/trace.c \ + src/core/lib/http/format_request.c \ + src/core/lib/http/httpcli.c \ + src/core/lib/http/parser.c \ + src/core/lib/iomgr/closure.c \ + src/core/lib/iomgr/endpoint.c \ + src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_windows.c \ + src/core/lib/iomgr/error.c \ + src/core/lib/iomgr/ev_epoll_linux.c \ + src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ + src/core/lib/iomgr/ev_poll_posix.c \ + src/core/lib/iomgr/ev_posix.c \ + src/core/lib/iomgr/exec_ctx.c \ + src/core/lib/iomgr/executor.c \ + src/core/lib/iomgr/iocp_windows.c \ + src/core/lib/iomgr/iomgr.c \ + src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_windows.c \ + src/core/lib/iomgr/load_file.c \ + src/core/lib/iomgr/network_status_tracker.c \ + src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_windows.c \ + src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_windows.c \ + src/core/lib/iomgr/sockaddr_utils.c \ + src/core/lib/iomgr/socket_utils_common_posix.c \ + src/core/lib/iomgr/socket_utils_linux.c \ + src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_windows.c \ + src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_windows.c \ + src/core/lib/iomgr/tcp_posix.c \ + src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_windows.c \ + src/core/lib/iomgr/time_averaged_stats.c \ + src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/udp_server.c \ + src/core/lib/iomgr/unix_sockets_posix.c \ + src/core/lib/iomgr/unix_sockets_posix_noop.c \ + src/core/lib/iomgr/wakeup_fd_eventfd.c \ + src/core/lib/iomgr/wakeup_fd_nospecial.c \ + src/core/lib/iomgr/wakeup_fd_pipe.c \ + src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_posix.c \ + src/core/lib/iomgr/workqueue_windows.c \ + src/core/lib/json/json.c \ + src/core/lib/json/json_reader.c \ + src/core/lib/json/json_string.c \ + src/core/lib/json/json_writer.c \ + src/core/lib/surface/alarm.c \ + src/core/lib/surface/api_trace.c \ + src/core/lib/surface/byte_buffer.c \ + src/core/lib/surface/byte_buffer_reader.c \ + src/core/lib/surface/call.c \ + src/core/lib/surface/call_details.c \ + src/core/lib/surface/call_log_batch.c \ + src/core/lib/surface/channel.c \ + src/core/lib/surface/channel_init.c \ + src/core/lib/surface/channel_ping.c \ + src/core/lib/surface/channel_stack_type.c \ + src/core/lib/surface/completion_queue.c \ + src/core/lib/surface/event_string.c \ + src/core/lib/surface/lame_client.c \ + src/core/lib/surface/metadata_array.c \ + src/core/lib/surface/server.c \ + src/core/lib/surface/validate_metadata.c \ + src/core/lib/surface/version.c \ + src/core/lib/transport/byte_stream.c \ + src/core/lib/transport/connectivity_state.c \ + src/core/lib/transport/metadata.c \ + src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/static_metadata.c \ + src/core/lib/transport/timeout_encoding.c \ + src/core/lib/transport/transport.c \ + src/core/lib/transport/transport_op_string.c \ + src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \ + src/core/ext/transport/cronet/transport/cronet_api_dummy.c \ + src/core/ext/transport/cronet/transport/cronet_transport.c \ + src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \ + src/core/ext/transport/chttp2/transport/bin_decoder.c \ + src/core/ext/transport/chttp2/transport/bin_encoder.c \ + src/core/ext/transport/chttp2/transport/chttp2_plugin.c \ + src/core/ext/transport/chttp2/transport/chttp2_transport.c \ + src/core/ext/transport/chttp2/transport/frame_data.c \ + src/core/ext/transport/chttp2/transport/frame_goaway.c \ + src/core/ext/transport/chttp2/transport/frame_ping.c \ + src/core/ext/transport/chttp2/transport/frame_rst_stream.c \ + src/core/ext/transport/chttp2/transport/frame_settings.c \ + src/core/ext/transport/chttp2/transport/frame_window_update.c \ + src/core/ext/transport/chttp2/transport/hpack_encoder.c \ + src/core/ext/transport/chttp2/transport/hpack_parser.c \ + src/core/ext/transport/chttp2/transport/hpack_table.c \ + src/core/ext/transport/chttp2/transport/huffsyms.c \ + src/core/ext/transport/chttp2/transport/incoming_metadata.c \ + src/core/ext/transport/chttp2/transport/parsing.c \ + src/core/ext/transport/chttp2/transport/status_conversion.c \ + src/core/ext/transport/chttp2/transport/stream_lists.c \ + src/core/ext/transport/chttp2/transport/stream_map.c \ + src/core/ext/transport/chttp2/transport/varint.c \ + src/core/ext/transport/chttp2/transport/writing.c \ + src/core/ext/transport/chttp2/alpn/alpn.c \ + src/core/ext/client_config/channel_connectivity.c \ + src/core/ext/client_config/client_channel.c \ + src/core/ext/client_config/client_channel_factory.c \ + src/core/ext/client_config/client_config.c \ + src/core/ext/client_config/client_config_plugin.c \ + src/core/ext/client_config/connector.c \ + src/core/ext/client_config/default_initial_connect_string.c \ + src/core/ext/client_config/initial_connect_string.c \ + src/core/ext/client_config/lb_policy.c \ + src/core/ext/client_config/lb_policy_factory.c \ + src/core/ext/client_config/lb_policy_registry.c \ + src/core/ext/client_config/parse_address.c \ + src/core/ext/client_config/resolver.c \ + src/core/ext/client_config/resolver_factory.c \ + src/core/ext/client_config/resolver_registry.c \ + src/core/ext/client_config/subchannel.c \ + src/core/ext/client_config/subchannel_call_holder.c \ + src/core/ext/client_config/subchannel_index.c \ + src/core/ext/client_config/uri_parser.c \ + src/core/lib/http/httpcli_security_connector.c \ + src/core/lib/security/context/security_context.c \ + src/core/lib/security/credentials/composite/composite_credentials.c \ + src/core/lib/security/credentials/credentials.c \ + src/core/lib/security/credentials/credentials_metadata.c \ + src/core/lib/security/credentials/fake/fake_credentials.c \ + src/core/lib/security/credentials/google_default/credentials_posix.c \ + src/core/lib/security/credentials/google_default/credentials_windows.c \ + src/core/lib/security/credentials/google_default/google_default_credentials.c \ + src/core/lib/security/credentials/iam/iam_credentials.c \ + src/core/lib/security/credentials/jwt/json_token.c \ + src/core/lib/security/credentials/jwt/jwt_credentials.c \ + src/core/lib/security/credentials/jwt/jwt_verifier.c \ + src/core/lib/security/credentials/oauth2/oauth2_credentials.c \ + src/core/lib/security/credentials/plugin/plugin_credentials.c \ + src/core/lib/security/credentials/ssl/ssl_credentials.c \ + src/core/lib/security/transport/client_auth_filter.c \ + src/core/lib/security/transport/handshake.c \ + src/core/lib/security/transport/secure_endpoint.c \ + src/core/lib/security/transport/security_connector.c \ + src/core/lib/security/transport/server_auth_filter.c \ + src/core/lib/security/transport/tsi_error.c \ + src/core/lib/security/util/b64.c \ + src/core/lib/security/util/json_util.c \ + src/core/lib/surface/init_secure.c \ + src/core/lib/tsi/fake_transport_security.c \ + src/core/lib/tsi/ssl_transport_security.c \ + src/core/lib/tsi/transport_security.c \ + src/core/plugin_registry/grpc_cronet_plugin_registry.c \ -PUBLIC_HEADERS_CXX += \ - include/grpc++/impl/codegen/config_protobuf.h \ +PUBLIC_HEADERS_CORE += \ + include/grpc/byte_buffer.h \ + include/grpc/byte_buffer_reader.h \ + include/grpc/compression.h \ + include/grpc/grpc.h \ + include/grpc/grpc_posix.h \ + include/grpc/status.h \ + include/grpc/impl/codegen/byte_buffer.h \ + include/grpc/impl/codegen/byte_buffer_reader.h \ + include/grpc/impl/codegen/compression_types.h \ + include/grpc/impl/codegen/connectivity_state.h \ + include/grpc/impl/codegen/grpc_types.h \ + include/grpc/impl/codegen/propagation_bits.h \ + include/grpc/impl/codegen/status.h \ + include/grpc/impl/codegen/alloc.h \ + include/grpc/impl/codegen/atm.h \ + include/grpc/impl/codegen/atm_gcc_atomic.h \ + include/grpc/impl/codegen/atm_gcc_sync.h \ + include/grpc/impl/codegen/atm_windows.h \ + include/grpc/impl/codegen/log.h \ + include/grpc/impl/codegen/port_platform.h \ + include/grpc/impl/codegen/slice.h \ + include/grpc/impl/codegen/slice_buffer.h \ + include/grpc/impl/codegen/sync.h \ + include/grpc/impl/codegen/sync_generic.h \ + include/grpc/impl/codegen/sync_posix.h \ + include/grpc/impl/codegen/sync_windows.h \ + include/grpc/impl/codegen/time.h \ + include/grpc/grpc_cronet.h \ + include/grpc/grpc_security.h \ + include/grpc/grpc_security_constants.h \ -LIBGRPC_PLUGIN_SUPPORT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_PLUGIN_SUPPORT_SRC)))) +LIBGRPC_CRONET_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CRONET_SRC)))) -ifeq ($(NO_PROTOBUF),true) +ifeq ($(NO_SECURE),true) -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. +# You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a: protobuf_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc_cronet.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT): openssl_dep_error else -$(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a: $(ZLIB_DEP) $(PROTOBUF_DEP) $(LIBGRPC_PLUGIN_SUPPORT_OBJS) + +$(LIBDIR)/$(CONFIG)/libgrpc_cronet.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_CRONET_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(LIBGRPC_PLUGIN_SUPPORT_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a $(LIBGRPC_CRONET_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(OPENSSL_MERGE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -endif - - - - -endif - -ifneq ($(NO_DEPS),true) --include $(LIBGRPC_PLUGIN_SUPPORT_OBJS:.o=.dep) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a endif -# Force compilation of proto files before building code that could potentially depend on them - - -# Using nanopb for C files right now -LIBINTEROP_CLIENT_HELPER_SRC = \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - test/cpp/interop/client_helper.cc \ - -PUBLIC_HEADERS_CXX += \ - -LIBINTEROP_CLIENT_HELPER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_CLIENT_HELPER_SRC)))) - - -ifeq ($(NO_SECURE),true) - -# You can't build secure libraries if you don't have OpenSSL. - -$(LIBDIR)/$(CONFIG)/libinterop_client_helper.a: openssl_dep_error - - -else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libinterop_client_helper.a: protobuf_dep_error +ifeq ($(SYSTEM),MINGW32) +$(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_CRONET_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc_cronet.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_CRONET_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) else - -$(LIBDIR)/$(CONFIG)/libinterop_client_helper.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_CLIENT_HELPER_OBJS) - $(E) "[AR] Creating $@" +$(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_CRONET_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_DEP) + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBINTEROP_CLIENT_HELPER_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_CRONET_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) +else + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_cronet.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_CRONET_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) + $(Q) ln -sf $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc_cronet$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION).so endif - - - - endif endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBINTEROP_CLIENT_HELPER_OBJS:.o=.dep) +-include $(LIBGRPC_CRONET_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc # Using nanopb for C files right now -LIBINTEROP_CLIENT_MAIN_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/client.cc \ - test/cpp/interop/interop_client.cc \ +LIBGRPC_TEST_UTIL_SRC = \ + test/core/end2end/data/client_certs.c \ + test/core/end2end/data/server1_cert.c \ + test/core/end2end/data/server1_key.c \ + test/core/end2end/data/test_root_cert.c \ + test/core/security/oauth2_utils.c \ + test/core/end2end/cq_verifier.c \ + test/core/end2end/fixtures/proxy.c \ + test/core/iomgr/endpoint_tests.c \ + test/core/util/grpc_profiler.c \ + test/core/util/memory_counters.c \ + test/core/util/mock_endpoint.c \ + test/core/util/parse_hexstring.c \ + test/core/util/passthru_endpoint.c \ + test/core/util/port_posix.c \ + test/core/util/port_server_client.c \ + test/core/util/port_windows.c \ + test/core/util/slice_splitter.c \ + src/core/lib/channel/channel_args.c \ + src/core/lib/channel/channel_stack.c \ + src/core/lib/channel/channel_stack_builder.c \ + src/core/lib/channel/compress_filter.c \ + src/core/lib/channel/connected_channel.c \ + src/core/lib/channel/handshaker.c \ + src/core/lib/channel/http_client_filter.c \ + src/core/lib/channel/http_server_filter.c \ + src/core/lib/compression/compression.c \ + src/core/lib/compression/message_compress.c \ + src/core/lib/debug/trace.c \ + src/core/lib/http/format_request.c \ + src/core/lib/http/httpcli.c \ + src/core/lib/http/parser.c \ + src/core/lib/iomgr/closure.c \ + src/core/lib/iomgr/endpoint.c \ + src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_windows.c \ + src/core/lib/iomgr/error.c \ + src/core/lib/iomgr/ev_epoll_linux.c \ + src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ + src/core/lib/iomgr/ev_poll_posix.c \ + src/core/lib/iomgr/ev_posix.c \ + src/core/lib/iomgr/exec_ctx.c \ + src/core/lib/iomgr/executor.c \ + src/core/lib/iomgr/iocp_windows.c \ + src/core/lib/iomgr/iomgr.c \ + src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_windows.c \ + src/core/lib/iomgr/load_file.c \ + src/core/lib/iomgr/network_status_tracker.c \ + src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_windows.c \ + src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_windows.c \ + src/core/lib/iomgr/sockaddr_utils.c \ + src/core/lib/iomgr/socket_utils_common_posix.c \ + src/core/lib/iomgr/socket_utils_linux.c \ + src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_windows.c \ + src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_windows.c \ + src/core/lib/iomgr/tcp_posix.c \ + src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_windows.c \ + src/core/lib/iomgr/time_averaged_stats.c \ + src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/udp_server.c \ + src/core/lib/iomgr/unix_sockets_posix.c \ + src/core/lib/iomgr/unix_sockets_posix_noop.c \ + src/core/lib/iomgr/wakeup_fd_eventfd.c \ + src/core/lib/iomgr/wakeup_fd_nospecial.c \ + src/core/lib/iomgr/wakeup_fd_pipe.c \ + src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_posix.c \ + src/core/lib/iomgr/workqueue_windows.c \ + src/core/lib/json/json.c \ + src/core/lib/json/json_reader.c \ + src/core/lib/json/json_string.c \ + src/core/lib/json/json_writer.c \ + src/core/lib/surface/alarm.c \ + src/core/lib/surface/api_trace.c \ + src/core/lib/surface/byte_buffer.c \ + src/core/lib/surface/byte_buffer_reader.c \ + src/core/lib/surface/call.c \ + src/core/lib/surface/call_details.c \ + src/core/lib/surface/call_log_batch.c \ + src/core/lib/surface/channel.c \ + src/core/lib/surface/channel_init.c \ + src/core/lib/surface/channel_ping.c \ + src/core/lib/surface/channel_stack_type.c \ + src/core/lib/surface/completion_queue.c \ + src/core/lib/surface/event_string.c \ + src/core/lib/surface/lame_client.c \ + src/core/lib/surface/metadata_array.c \ + src/core/lib/surface/server.c \ + src/core/lib/surface/validate_metadata.c \ + src/core/lib/surface/version.c \ + src/core/lib/transport/byte_stream.c \ + src/core/lib/transport/connectivity_state.c \ + src/core/lib/transport/metadata.c \ + src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/static_metadata.c \ + src/core/lib/transport/timeout_encoding.c \ + src/core/lib/transport/transport.c \ + src/core/lib/transport/transport_op_string.c \ -PUBLIC_HEADERS_CXX += \ +PUBLIC_HEADERS_CORE += \ + include/grpc/byte_buffer.h \ + include/grpc/byte_buffer_reader.h \ + include/grpc/compression.h \ + include/grpc/grpc.h \ + include/grpc/grpc_posix.h \ + include/grpc/status.h \ + include/grpc/impl/codegen/byte_buffer.h \ + include/grpc/impl/codegen/byte_buffer_reader.h \ + include/grpc/impl/codegen/compression_types.h \ + include/grpc/impl/codegen/connectivity_state.h \ + include/grpc/impl/codegen/grpc_types.h \ + include/grpc/impl/codegen/propagation_bits.h \ + include/grpc/impl/codegen/status.h \ + include/grpc/impl/codegen/alloc.h \ + include/grpc/impl/codegen/atm.h \ + include/grpc/impl/codegen/atm_gcc_atomic.h \ + include/grpc/impl/codegen/atm_gcc_sync.h \ + include/grpc/impl/codegen/atm_windows.h \ + include/grpc/impl/codegen/log.h \ + include/grpc/impl/codegen/port_platform.h \ + include/grpc/impl/codegen/slice.h \ + include/grpc/impl/codegen/slice_buffer.h \ + include/grpc/impl/codegen/sync.h \ + include/grpc/impl/codegen/sync_generic.h \ + include/grpc/impl/codegen/sync_posix.h \ + include/grpc/impl/codegen/sync_windows.h \ + include/grpc/impl/codegen/time.h \ -LIBINTEROP_CLIENT_MAIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_CLIENT_MAIN_SRC)))) +LIBGRPC_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_TEST_UTIL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libinterop_client_main.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libgrpc_test_util.a: openssl_dep_error else -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libinterop_client_main.a: protobuf_dep_error - - -else -$(LIBDIR)/$(CONFIG)/libinterop_client_main.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_CLIENT_MAIN_OBJS) +$(LIBDIR)/$(CONFIG)/libgrpc_test_util.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_TEST_UTIL_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_client_main.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBINTEROP_CLIENT_MAIN_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBGRPC_TEST_UTIL_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_client_main.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a endif -endif - endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBINTEROP_CLIENT_MAIN_OBJS:.o=.dep) +-include $(LIBGRPC_TEST_UTIL_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc # Using nanopb for C files right now -LIBINTEROP_SERVER_HELPER_SRC = \ - test/cpp/interop/server_helper.cc \ +LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ + test/core/end2end/cq_verifier.c \ + test/core/end2end/fixtures/proxy.c \ + test/core/iomgr/endpoint_tests.c \ + test/core/util/grpc_profiler.c \ + test/core/util/memory_counters.c \ + test/core/util/mock_endpoint.c \ + test/core/util/parse_hexstring.c \ + test/core/util/passthru_endpoint.c \ + test/core/util/port_posix.c \ + test/core/util/port_server_client.c \ + test/core/util/port_windows.c \ + test/core/util/slice_splitter.c \ -PUBLIC_HEADERS_CXX += \ +PUBLIC_HEADERS_CORE += \ -LIBINTEROP_SERVER_HELPER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_SERVER_HELPER_SRC)))) +LIBGRPC_TEST_UTIL_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_TEST_UTIL_UNSECURE_SRC)))) -ifeq ($(NO_SECURE),true) +$(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a: $(ZLIB_DEP) $(LIBGRPC_TEST_UTIL_UNSECURE_OBJS) + $(E) "[AR] Creating $@" + $(Q) mkdir -p `dirname $@` + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBGRPC_TEST_UTIL_UNSECURE_OBJS) +ifeq ($(SYSTEM),Darwin) + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a +endif -# You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libinterop_server_helper.a: openssl_dep_error -else +ifneq ($(NO_DEPS),true) +-include $(LIBGRPC_TEST_UTIL_UNSECURE_OBJS:.o=.dep) +endif -ifeq ($(NO_PROTOBUF),true) +# Force compilation of proto files before building code that could potentially depend on them -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. -$(LIBDIR)/$(CONFIG)/libinterop_server_helper.a: protobuf_dep_error +# Using nanopb for C files right now +LIBGRPC_UNSECURE_SRC = \ + src/core/lib/surface/init.c \ + src/core/lib/surface/init_unsecure.c \ + src/core/lib/channel/channel_args.c \ + src/core/lib/channel/channel_stack.c \ + src/core/lib/channel/channel_stack_builder.c \ + src/core/lib/channel/compress_filter.c \ + src/core/lib/channel/connected_channel.c \ + src/core/lib/channel/handshaker.c \ + src/core/lib/channel/http_client_filter.c \ + src/core/lib/channel/http_server_filter.c \ + src/core/lib/compression/compression.c \ + src/core/lib/compression/message_compress.c \ + src/core/lib/debug/trace.c \ + src/core/lib/http/format_request.c \ + src/core/lib/http/httpcli.c \ + src/core/lib/http/parser.c \ + src/core/lib/iomgr/closure.c \ + src/core/lib/iomgr/endpoint.c \ + src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_windows.c \ + src/core/lib/iomgr/error.c \ + src/core/lib/iomgr/ev_epoll_linux.c \ + src/core/lib/iomgr/ev_poll_and_epoll_posix.c \ + src/core/lib/iomgr/ev_poll_posix.c \ + src/core/lib/iomgr/ev_posix.c \ + src/core/lib/iomgr/exec_ctx.c \ + src/core/lib/iomgr/executor.c \ + src/core/lib/iomgr/iocp_windows.c \ + src/core/lib/iomgr/iomgr.c \ + src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_windows.c \ + src/core/lib/iomgr/load_file.c \ + src/core/lib/iomgr/network_status_tracker.c \ + src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_windows.c \ + src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_windows.c \ + src/core/lib/iomgr/sockaddr_utils.c \ + src/core/lib/iomgr/socket_utils_common_posix.c \ + src/core/lib/iomgr/socket_utils_linux.c \ + src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_windows.c \ + src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_windows.c \ + src/core/lib/iomgr/tcp_posix.c \ + src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_windows.c \ + src/core/lib/iomgr/time_averaged_stats.c \ + src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/udp_server.c \ + src/core/lib/iomgr/unix_sockets_posix.c \ + src/core/lib/iomgr/unix_sockets_posix_noop.c \ + src/core/lib/iomgr/wakeup_fd_eventfd.c \ + src/core/lib/iomgr/wakeup_fd_nospecial.c \ + src/core/lib/iomgr/wakeup_fd_pipe.c \ + src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_posix.c \ + src/core/lib/iomgr/workqueue_windows.c \ + src/core/lib/json/json.c \ + src/core/lib/json/json_reader.c \ + src/core/lib/json/json_string.c \ + src/core/lib/json/json_writer.c \ + src/core/lib/surface/alarm.c \ + src/core/lib/surface/api_trace.c \ + src/core/lib/surface/byte_buffer.c \ + src/core/lib/surface/byte_buffer_reader.c \ + src/core/lib/surface/call.c \ + src/core/lib/surface/call_details.c \ + src/core/lib/surface/call_log_batch.c \ + src/core/lib/surface/channel.c \ + src/core/lib/surface/channel_init.c \ + src/core/lib/surface/channel_ping.c \ + src/core/lib/surface/channel_stack_type.c \ + src/core/lib/surface/completion_queue.c \ + src/core/lib/surface/event_string.c \ + src/core/lib/surface/lame_client.c \ + src/core/lib/surface/metadata_array.c \ + src/core/lib/surface/server.c \ + src/core/lib/surface/validate_metadata.c \ + src/core/lib/surface/version.c \ + src/core/lib/transport/byte_stream.c \ + src/core/lib/transport/connectivity_state.c \ + src/core/lib/transport/metadata.c \ + src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/static_metadata.c \ + src/core/lib/transport/timeout_encoding.c \ + src/core/lib/transport/transport.c \ + src/core/lib/transport/transport_op_string.c \ + src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \ + src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c \ + src/core/ext/transport/chttp2/transport/bin_decoder.c \ + src/core/ext/transport/chttp2/transport/bin_encoder.c \ + src/core/ext/transport/chttp2/transport/chttp2_plugin.c \ + src/core/ext/transport/chttp2/transport/chttp2_transport.c \ + src/core/ext/transport/chttp2/transport/frame_data.c \ + src/core/ext/transport/chttp2/transport/frame_goaway.c \ + src/core/ext/transport/chttp2/transport/frame_ping.c \ + src/core/ext/transport/chttp2/transport/frame_rst_stream.c \ + src/core/ext/transport/chttp2/transport/frame_settings.c \ + src/core/ext/transport/chttp2/transport/frame_window_update.c \ + src/core/ext/transport/chttp2/transport/hpack_encoder.c \ + src/core/ext/transport/chttp2/transport/hpack_parser.c \ + src/core/ext/transport/chttp2/transport/hpack_table.c \ + src/core/ext/transport/chttp2/transport/huffsyms.c \ + src/core/ext/transport/chttp2/transport/incoming_metadata.c \ + src/core/ext/transport/chttp2/transport/parsing.c \ + src/core/ext/transport/chttp2/transport/status_conversion.c \ + src/core/ext/transport/chttp2/transport/stream_lists.c \ + src/core/ext/transport/chttp2/transport/stream_map.c \ + src/core/ext/transport/chttp2/transport/varint.c \ + src/core/ext/transport/chttp2/transport/writing.c \ + src/core/ext/transport/chttp2/alpn/alpn.c \ + src/core/ext/transport/chttp2/client/insecure/channel_create.c \ + src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c \ + src/core/ext/client_config/channel_connectivity.c \ + src/core/ext/client_config/client_channel.c \ + src/core/ext/client_config/client_channel_factory.c \ + src/core/ext/client_config/client_config.c \ + src/core/ext/client_config/client_config_plugin.c \ + src/core/ext/client_config/connector.c \ + src/core/ext/client_config/default_initial_connect_string.c \ + src/core/ext/client_config/initial_connect_string.c \ + src/core/ext/client_config/lb_policy.c \ + src/core/ext/client_config/lb_policy_factory.c \ + src/core/ext/client_config/lb_policy_registry.c \ + src/core/ext/client_config/parse_address.c \ + src/core/ext/client_config/resolver.c \ + src/core/ext/client_config/resolver_factory.c \ + src/core/ext/client_config/resolver_registry.c \ + src/core/ext/client_config/subchannel.c \ + src/core/ext/client_config/subchannel_call_holder.c \ + src/core/ext/client_config/subchannel_index.c \ + src/core/ext/client_config/uri_parser.c \ + src/core/ext/resolver/dns/native/dns_resolver.c \ + src/core/ext/resolver/sockaddr/sockaddr_resolver.c \ + src/core/ext/load_reporting/load_reporting.c \ + src/core/ext/load_reporting/load_reporting_filter.c \ + src/core/ext/lb_policy/grpclb/grpclb.c \ + src/core/ext/lb_policy/grpclb/load_balancer_api.c \ + src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \ + third_party/nanopb/pb_common.c \ + third_party/nanopb/pb_decode.c \ + third_party/nanopb/pb_encode.c \ + src/core/ext/lb_policy/pick_first/pick_first.c \ + src/core/ext/lb_policy/round_robin/round_robin.c \ + src/core/ext/census/base_resources.c \ + src/core/ext/census/context.c \ + src/core/ext/census/gen/census.pb.c \ + src/core/ext/census/grpc_context.c \ + src/core/ext/census/grpc_filter.c \ + src/core/ext/census/grpc_plugin.c \ + src/core/ext/census/initialize.c \ + src/core/ext/census/mlog.c \ + src/core/ext/census/operation.c \ + src/core/ext/census/placeholders.c \ + src/core/ext/census/resource.c \ + src/core/ext/census/tracing.c \ + src/core/plugin_registry/grpc_unsecure_plugin_registry.c \ + +PUBLIC_HEADERS_CORE += \ + include/grpc/byte_buffer.h \ + include/grpc/byte_buffer_reader.h \ + include/grpc/compression.h \ + include/grpc/grpc.h \ + include/grpc/grpc_posix.h \ + include/grpc/status.h \ + include/grpc/impl/codegen/byte_buffer.h \ + include/grpc/impl/codegen/byte_buffer_reader.h \ + include/grpc/impl/codegen/compression_types.h \ + include/grpc/impl/codegen/connectivity_state.h \ + include/grpc/impl/codegen/grpc_types.h \ + include/grpc/impl/codegen/propagation_bits.h \ + include/grpc/impl/codegen/status.h \ + include/grpc/impl/codegen/alloc.h \ + include/grpc/impl/codegen/atm.h \ + include/grpc/impl/codegen/atm_gcc_atomic.h \ + include/grpc/impl/codegen/atm_gcc_sync.h \ + include/grpc/impl/codegen/atm_windows.h \ + include/grpc/impl/codegen/log.h \ + include/grpc/impl/codegen/port_platform.h \ + include/grpc/impl/codegen/slice.h \ + include/grpc/impl/codegen/slice_buffer.h \ + include/grpc/impl/codegen/sync.h \ + include/grpc/impl/codegen/sync_generic.h \ + include/grpc/impl/codegen/sync_posix.h \ + include/grpc/impl/codegen/sync_windows.h \ + include/grpc/impl/codegen/time.h \ + include/grpc/census.h \ +LIBGRPC_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_UNSECURE_SRC)))) -else -$(LIBDIR)/$(CONFIG)/libinterop_server_helper.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_SERVER_HELPER_OBJS) +$(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a: $(ZLIB_DEP) $(LIBGRPC_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBINTEROP_SERVER_HELPER_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBGRPC_UNSECURE_OBJS) $(LIBGPR_OBJS) $(ZLIB_MERGE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a endif - +ifeq ($(SYSTEM),MINGW32) +$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared grpc_unsecure.def -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) +else +$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).$(SHARED_EXT): $(LIBGRPC_UNSECURE_OBJS) $(ZLIB_DEP) $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` +ifeq ($(SYSTEM),Darwin) + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -install_name $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) -dynamiclib -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) +else + $(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,libgrpc_unsecure.so.1 -o $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS) $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) + $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).so.1 + $(Q) ln -sf $(SHARED_PREFIX)grpc_unsecure$(SHARED_VERSION).$(SHARED_EXT) $(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION).so endif - endif -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBINTEROP_SERVER_HELPER_OBJS:.o=.dep) -endif +-include $(LIBGRPC_UNSECURE_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them # Using nanopb for C files right now -LIBINTEROP_SERVER_MAIN_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/interop_server.cc \ +LIBRECONNECT_SERVER_SRC = \ + test/core/util/reconnect_server.c \ -PUBLIC_HEADERS_CXX += \ +PUBLIC_HEADERS_CORE += \ -LIBINTEROP_SERVER_MAIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_SERVER_MAIN_SRC)))) +LIBRECONNECT_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBRECONNECT_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libinterop_server_main.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libreconnect_server.a: openssl_dep_error else -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libinterop_server_main.a: protobuf_dep_error - - -else -$(LIBDIR)/$(CONFIG)/libinterop_server_main.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBINTEROP_SERVER_MAIN_OBJS) +$(LIBDIR)/$(CONFIG)/libreconnect_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBRECONNECT_SERVER_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_server_main.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBINTEROP_SERVER_MAIN_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libreconnect_server.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBRECONNECT_SERVER_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libinterop_server_main.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libreconnect_server.a endif -endif - endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBINTEROP_SERVER_MAIN_OBJS:.o=.dep) +-include $(LIBRECONNECT_SERVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc # Using nanopb for C files right now -LIBQPS_SRC = \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ - test/cpp/qps/client_async.cc \ - test/cpp/qps/client_sync.cc \ - test/cpp/qps/driver.cc \ - test/cpp/qps/limit_cores.cc \ - test/cpp/qps/parse_json.cc \ - test/cpp/qps/qps_worker.cc \ - test/cpp/qps/report.cc \ - test/cpp/qps/server_async.cc \ - test/cpp/qps/server_sync.cc \ - test/cpp/qps/usage_timer.cc \ - test/cpp/util/benchmark_config.cc \ +LIBTEST_TCP_SERVER_SRC = \ + test/core/util/test_tcp_server.c \ -PUBLIC_HEADERS_CXX += \ +PUBLIC_HEADERS_CORE += \ -LIBQPS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBQPS_SRC)))) +LIBTEST_TCP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBTEST_TCP_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure libraries if you don't have OpenSSL. -$(LIBDIR)/$(CONFIG)/libqps.a: openssl_dep_error +$(LIBDIR)/$(CONFIG)/libtest_tcp_server.a: openssl_dep_error else -ifeq ($(NO_PROTOBUF),true) - -# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay. - -$(LIBDIR)/$(CONFIG)/libqps.a: protobuf_dep_error - -else - -$(LIBDIR)/$(CONFIG)/libqps.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBQPS_OBJS) +$(LIBDIR)/$(CONFIG)/libtest_tcp_server.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBTEST_TCP_SERVER_OBJS) $(E) "[AR] Creating $@" $(Q) mkdir -p `dirname $@` - $(Q) rm -f $(LIBDIR)/$(CONFIG)/libqps.a - $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBQPS_OBJS) + $(Q) rm -f $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a + $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBTEST_TCP_SERVER_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libqps.a + $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a endif -endif - endif ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LIBQPS_OBJS:.o=.dep) +-include $(LIBTEST_TCP_SERVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/limit_cores.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/parse_json.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/qps/usage_timer.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc # Using nanopb for C files right now LIBGRPC_CSHARP_EXT_SRC = \ src/csharp/ext/grpc_csharp_ext.c \ -PUBLIC_HEADERS_C += \ LIBGRPC_CSHARP_EXT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CSHARP_EXT_SRC)))) @@ -7215,6430 +7282,6430 @@ endif # All of the test targets, and protoc plugins -ALARM_TEST_SRC = \ - test/core/surface/alarm_test.c \ +ALARM_CPP_TEST_SRC = \ + test/cpp/common/alarm_cpp_test.cc \ -ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC)))) +ALARM_CPP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_CPP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/alarm_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/alarm_cpp_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/alarm_test: $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/alarm_cpp_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/alarm_cpp_test: $(PROTOBUF_DEP) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alarm_test + $(Q) $(LDXX) $(LDFLAGS) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alarm_cpp_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/alarm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_alarm_test: $(ALARM_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/alarm_cpp_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_alarm_cpp_test: $(ALARM_CPP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALARM_TEST_OBJS:.o=.dep) +-include $(ALARM_CPP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ALGORITHM_TEST_SRC = \ - test/core/compression/algorithm_test.c \ +ASYNC_END2END_TEST_SRC = \ + test/cpp/end2end/async_end2end_test.cc \ -ALGORITHM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALGORITHM_TEST_SRC)))) +ASYNC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ASYNC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/algorithm_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/async_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/algorithm_test: $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/async_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/async_end2end_test: $(PROTOBUF_DEP) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/algorithm_test + $(Q) $(LDXX) $(LDFLAGS) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/async_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/compression/algorithm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_algorithm_test: $(ALGORITHM_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/async_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_async_end2end_test: $(ASYNC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALGORITHM_TEST_OBJS:.o=.dep) +-include $(ASYNC_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ALLOC_TEST_SRC = \ - test/core/support/alloc_test.c \ +AUTH_PROPERTY_ITERATOR_TEST_SRC = \ + test/cpp/common/auth_property_iterator_test.cc \ -ALLOC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALLOC_TEST_SRC)))) +AUTH_PROPERTY_ITERATOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(AUTH_PROPERTY_ITERATOR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/alloc_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/alloc_test: $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/auth_property_iterator_test: $(PROTOBUF_DEP) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alloc_test + $(Q) $(LDXX) $(LDFLAGS) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/auth_property_iterator_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/alloc_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_alloc_test: $(ALLOC_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/auth_property_iterator_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_auth_property_iterator_test: $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALLOC_TEST_OBJS:.o=.dep) +-include $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ALPN_TEST_SRC = \ - test/core/transport/chttp2/alpn_test.c \ +CHANNEL_ARGUMENTS_TEST_SRC = \ + test/cpp/common/channel_arguments_test.cc \ -ALPN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC)))) +CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/alpn_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/channel_arguments_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/alpn_test: $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/channel_arguments_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/channel_arguments_test: $(PROTOBUF_DEP) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alpn_test + $(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_arguments_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/alpn_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_alpn_test: $(ALPN_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALPN_TEST_OBJS:.o=.dep) +-include $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -API_FUZZER_SRC = \ - test/core/end2end/fuzzers/api_fuzzer.c \ +CLI_CALL_TEST_SRC = \ + test/cpp/util/cli_call_test.cc \ -API_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_SRC)))) +CLI_CALL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLI_CALL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/api_fuzzer: openssl_dep_error +$(BINDIR)/$(CONFIG)/cli_call_test: openssl_dep_error + +else + + + + +ifeq ($(NO_PROTOBUF),true) -else +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/cli_call_test: protobuf_dep_error +else -$(BINDIR)/$(CONFIG)/api_fuzzer: $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/cli_call_test: $(PROTOBUF_DEP) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/api_fuzzer + $(Q) $(LDXX) $(LDFLAGS) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cli_call_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/api_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_api_fuzzer: $(API_FUZZER_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cli_call_test: $(CLI_CALL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(API_FUZZER_OBJS:.o=.dep) +-include $(CLI_CALL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -BAD_SERVER_RESPONSE_TEST_SRC = \ - test/core/end2end/bad_server_response_test.c \ +CLIENT_CRASH_TEST_SRC = \ + test/cpp/end2end/client_crash_test.cc \ -BAD_SERVER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SERVER_RESPONSE_TEST_SRC)))) +CLIENT_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/bad_server_response_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/client_crash_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/client_crash_test: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_server_response_test + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/bad_server_response_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_client_crash_test: $(CLIENT_CRASH_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) +-include $(CLIENT_CRASH_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -BIN_DECODER_TEST_SRC = \ - test/core/transport/chttp2/bin_decoder_test.c \ +CLIENT_CRASH_TEST_SERVER_SRC = \ + test/cpp/end2end/client_crash_test_server.cc \ -BIN_DECODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_DECODER_TEST_SRC)))) +CLIENT_CRASH_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/bin_decoder_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_crash_test_server: openssl_dep_error else -$(BINDIR)/$(CONFIG)/bin_decoder_test: $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/client_crash_test_server: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/client_crash_test_server: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_decoder_test + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test_server endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_decoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a +endif -deps_bin_decoder_test: $(BIN_DECODER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_client_crash_test_server: $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(BIN_DECODER_TEST_OBJS:.o=.dep) +-include $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -BIN_ENCODER_TEST_SRC = \ - test/core/transport/chttp2/bin_encoder_test.c \ +CODEGEN_TEST_FULL_SRC = \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + test/cpp/codegen/codegen_test_full.cc \ -BIN_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC)))) +CODEGEN_TEST_FULL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_FULL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/bin_encoder_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_full: openssl_dep_error else -$(BINDIR)/$(CONFIG)/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/codegen_test_full: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/codegen_test_full: $(PROTOBUF_DEP) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_encoder_test + $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_full endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a +endif -deps_bin_encoder_test: $(BIN_ENCODER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_codegen_test_full: $(CODEGEN_TEST_FULL_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(BIN_ENCODER_TEST_OBJS:.o=.dep) +-include $(CODEGEN_TEST_FULL_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -CENSUS_CONTEXT_TEST_SRC = \ - test/core/census/context_test.c \ +CODEGEN_TEST_MINIMAL_SRC = \ + $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ + test/cpp/codegen/codegen_test_minimal.cc \ + src/cpp/codegen/codegen_init.cc \ -CENSUS_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_CONTEXT_TEST_SRC)))) +CODEGEN_TEST_MINIMAL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_MINIMAL_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/census_context_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/codegen_test_minimal: openssl_dep_error else -$(BINDIR)/$(CONFIG)/census_context_test: $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/codegen_test_minimal: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/codegen_test_minimal: $(PROTOBUF_DEP) $(CODEGEN_TEST_MINIMAL_OBJS) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_context_test + $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_MINIMAL_OBJS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_minimal endif -$(OBJDIR)/$(CONFIG)/test/core/census/context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_census_context_test: $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: + +$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: + +deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) +-include $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -CENSUS_RESOURCE_TEST_SRC = \ - test/core/census/resource_test.c \ +CREDENTIALS_TEST_SRC = \ + test/cpp/client/credentials_test.cc \ -CENSUS_RESOURCE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_RESOURCE_TEST_SRC)))) +CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CREDENTIALS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/census_resource_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/credentials_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/census_resource_test: $(CENSUS_RESOURCE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/credentials_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/credentials_test: $(PROTOBUF_DEP) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CENSUS_RESOURCE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_resource_test + $(Q) $(LDXX) $(LDFLAGS) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/credentials_test endif -$(OBJDIR)/$(CONFIG)/test/core/census/resource_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_census_resource_test: $(CENSUS_RESOURCE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/client/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_credentials_test: $(CREDENTIALS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CENSUS_RESOURCE_TEST_OBJS:.o=.dep) +-include $(CREDENTIALS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHANNEL_CREATE_TEST_SRC = \ - test/core/surface/channel_create_test.c \ +CXX_BYTE_BUFFER_TEST_SRC = \ + test/cpp/util/byte_buffer_test.cc \ -CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_CREATE_TEST_SRC)))) +CXX_BYTE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_BYTE_BUFFER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/channel_create_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/channel_create_test: $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: $(PROTOBUF_DEP) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/channel_create_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_channel_create_test: $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cxx_byte_buffer_test: $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) +-include $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_HPACK_ENCODER_TEST_SRC = \ - test/core/transport/chttp2/hpack_encoder_test.c \ +CXX_SLICE_TEST_SRC = \ + test/cpp/util/slice_test.cc \ -CHTTP2_HPACK_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_HPACK_ENCODER_TEST_SRC)))) +CXX_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_SLICE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_slice_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_slice_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_slice_test: $(PROTOBUF_DEP) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_slice_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/slice_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cxx_slice_test: $(CXX_SLICE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) +-include $(CXX_SLICE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_STATUS_CONVERSION_TEST_SRC = \ - test/core/transport/chttp2/status_conversion_test.c \ +CXX_STRING_REF_TEST_SRC = \ + test/cpp/util/string_ref_test.cc \ -CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC)))) +CXX_STRING_REF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_STRING_REF_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_string_ref_test: $(PROTOBUF_DEP) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/status_conversion_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a + +deps_cxx_string_ref_test: $(CXX_STRING_REF_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) +-include $(CXX_STRING_REF_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_STREAM_MAP_TEST_SRC = \ - test/core/transport/chttp2/stream_map_test.c \ +CXX_TIME_TEST_SRC = \ + test/cpp/util/time_test.cc \ -CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC)))) +CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_stream_map_test + $(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/stream_map_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) +-include $(CXX_TIME_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHTTP2_VARINT_TEST_SRC = \ - test/core/transport/chttp2/varint_test.c \ +END2END_TEST_SRC = \ + test/cpp/end2end/end2end_test.cc \ -CHTTP2_VARINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_VARINT_TEST_SRC)))) +END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/chttp2_varint_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/end2end_test: $(PROTOBUF_DEP) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_varint_test + $(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/varint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_end2end_test: $(END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) +-include $(END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CLIENT_FUZZER_SRC = \ - test/core/end2end/fuzzers/client_fuzzer.c \ +GENERIC_END2END_TEST_SRC = \ + test/cpp/end2end/generic_end2end_test.cc \ -CLIENT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_SRC)))) +GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GENERIC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_fuzzer: openssl_dep_error +$(BINDIR)/$(CONFIG)/generic_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/client_fuzzer: $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/generic_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/generic_end2end_test: $(PROTOBUF_DEP) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/client_fuzzer + $(Q) $(LDXX) $(LDFLAGS) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/client_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_client_fuzzer: $(CLIENT_FUZZER_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_generic_end2end_test: $(GENERIC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLIENT_FUZZER_OBJS:.o=.dep) +-include $(GENERIC_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -COMPRESSION_TEST_SRC = \ - test/core/compression/compression_test.c \ +GOLDEN_FILE_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ + test/cpp/codegen/golden_file_test.cc \ -COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC)))) +GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/compression_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/golden_file_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/compression_test: $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/golden_file_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test + $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test endif -$(OBJDIR)/$(CONFIG)/test/core/compression/compression_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_compression_test: $(COMPRESSION_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(COMPRESSION_TEST_OBJS:.o=.dep) +-include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc -CONCURRENT_CONNECTIVITY_TEST_SRC = \ - test/core/surface/concurrent_connectivity_test.c \ +GRPC_C_END2END_TEST_SRC = \ + test/c/end2end/end2end_test.cc \ -CONCURRENT_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONCURRENT_CONNECTIVITY_TEST_SRC)))) +GRPC_C_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/concurrent_connectivity_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/concurrent_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_grpc_c_end2end_test: $(GRPC_C_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) +-include $(GRPC_C_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \ - test/core/client_config/resolvers/dns_resolver_connectivity_test.c \ +GRPC_C_GENERIC_END2END_TEST_SRC = \ + test/c/end2end/generic_end2end_test.cc \ + test/c/end2end/id_serialization.cc \ -DNS_RESOLVER_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_CONNECTIVITY_TEST_SRC)))) +GRPC_C_GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_GENERIC_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/c/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/c/end2end/id_serialization.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_grpc_c_generic_end2end_test: $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) +-include $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -DNS_RESOLVER_TEST_SRC = \ - test/core/client_config/resolvers/dns_resolver_test.c \ +GRPC_C_PLUGIN_SRC = \ + src/compiler/c_plugin.cc \ -DNS_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/dns_resolver_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_c_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_c_plugin: $(PROTOBUF_DEP) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_c_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS:.o=.dep) +deps_grpc_c_plugin: $(GRPC_C_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(DNS_RESOLVER_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_C_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -DUALSTACK_SOCKET_TEST_SRC = \ - test/core/end2end/dualstack_socket_test.c \ +GRPC_CLI_SRC = \ + test/cpp/util/grpc_cli.cc \ -DUALSTACK_SOCKET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC)))) +GRPC_CLI_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CLI_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/dualstack_socket_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_cli: openssl_dep_error else -$(BINDIR)/$(CONFIG)/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpc_cli: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dualstack_socket_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/dualstack_socket_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) +-include $(GRPC_CLI_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ENDPOINT_PAIR_TEST_SRC = \ - test/core/iomgr/endpoint_pair_test.c \ +GRPC_CPP_PLUGIN_SRC = \ + src/compiler/cpp_plugin.cc \ -ENDPOINT_PAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ENDPOINT_PAIR_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_CPP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CPP_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/endpoint_pair_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: protobuf_dep_error +else -$(BINDIR)/$(CONFIG)/endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: $(PROTOBUF_DEP) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/endpoint_pair_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/endpoint_pair_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/cpp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) +deps_grpc_cpp_plugin: $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -EV_EPOLL_LINUX_TEST_SRC = \ - test/core/iomgr/ev_epoll_linux_test.c \ +GRPC_CSHARP_PLUGIN_SRC = \ + src/compiler/csharp_plugin.cc \ -EV_EPOLL_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLL_LINUX_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_CSHARP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CSHARP_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: $(PROTOBUF_DEP) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epoll_linux_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/ev_epoll_linux_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/csharp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) +deps_grpc_csharp_plugin: $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -FD_CONSERVATION_POSIX_TEST_SRC = \ - test/core/iomgr/fd_conservation_posix_test.c \ +GRPC_NODE_PLUGIN_SRC = \ + src/compiler/node_plugin.cc \ -FD_CONSERVATION_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_CONSERVATION_POSIX_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_conservation_posix_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_conservation_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) +deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -FD_POSIX_TEST_SRC = \ - test/core/iomgr/fd_posix_test.c \ +GRPC_OBJECTIVE_C_PLUGIN_SRC = \ + src/compiler/objective_c_plugin.cc \ -FD_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_OBJECTIVE_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_OBJECTIVE_C_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fd_posix_test: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: protobuf_dep_error +else -$(BINDIR)/$(CONFIG)/fd_posix_test: $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: $(PROTOBUF_DEP) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_posix_test + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/objective_c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_fd_posix_test: $(FD_POSIX_TEST_OBJS:.o=.dep) +deps_grpc_objective_c_plugin: $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FD_POSIX_TEST_OBJS:.o=.dep) -endif +-include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -FLING_CLIENT_SRC = \ - test/core/fling/client.c \ +GRPC_PYTHON_PLUGIN_SRC = \ + src/compiler/python_plugin.cc \ -FLING_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_PYTHON_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PYTHON_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_client: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_python_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/fling_client: $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_python_plugin: $(PROTOBUF_DEP) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_client + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/fling/client.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/python_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_fling_client: $(FLING_CLIENT_OBJS:.o=.dep) +deps_grpc_python_plugin: $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_CLIENT_OBJS:.o=.dep) -endif +-include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -FLING_SERVER_SRC = \ - test/core/fling/server.c \ +GRPC_RUBY_PLUGIN_SRC = \ + src/compiler/ruby_plugin.cc \ -FLING_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC)))) -ifeq ($(NO_SECURE),true) +GRPC_RUBY_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_RUBY_PLUGIN_SRC)))) -# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_server: openssl_dep_error -else +ifeq ($(NO_PROTOBUF),true) +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: protobuf_dep_error -$(BINDIR)/$(CONFIG)/fling_server: $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" +else + +$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: $(PROTOBUF_DEP) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a + $(E) "[HOSTLD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_server + $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin endif -$(OBJDIR)/$(CONFIG)/test/core/fling/server.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/src/compiler/ruby_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a -deps_fling_server: $(FLING_SERVER_OBJS:.o=.dep) +deps_grpc_ruby_plugin: $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_SERVER_OBJS:.o=.dep) -endif +-include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) endif # Force compilation of proto files before building code that could potentially depend on them -FLING_STREAM_TEST_SRC = \ - test/core/fling/fling_stream_test.c \ +GRPCLB_API_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ + test/cpp/grpclb/grpclb_api_test.cc \ -FLING_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC)))) +GRPCLB_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_API_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_stream_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpclb_api_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_stream_test: $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpclb_api_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpclb_api_test: $(PROTOBUF_DEP) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_stream_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_api_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/fling_stream_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_fling_stream_test: $(FLING_STREAM_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_grpclb_api_test: $(GRPCLB_API_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_STREAM_TEST_OBJS:.o=.dep) +-include $(GRPCLB_API_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -FLING_TEST_SRC = \ - test/core/fling/fling_test.c \ +GRPCLB_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ + test/cpp/grpclb/grpclb_test.cc \ -FLING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC)))) +GRPCLB_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/fling_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpclb_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/fling_test: $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/grpclb_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/grpclb_test: $(PROTOBUF_DEP) $(GRPCLB_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_test + $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_test endif -$(OBJDIR)/$(CONFIG)/test/core/fling/fling_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_fling_test: $(FLING_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a + +$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_test.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a + +deps_grpclb_test: $(GRPCLB_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(FLING_TEST_OBJS:.o=.dep) +-include $(GRPCLB_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -GEN_HPACK_TABLES_SRC = \ - tools/codegen/core/gen_hpack_tables.c \ +HYBRID_END2END_TEST_SRC = \ + test/cpp/end2end/hybrid_end2end_test.cc \ -GEN_HPACK_TABLES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC)))) +HYBRID_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HYBRID_END2END_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gen_hpack_tables: openssl_dep_error +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/hybrid_end2end_test: $(PROTOBUF_DEP) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_hpack_tables + $(Q) $(LDXX) $(LDFLAGS) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/hybrid_end2end_test endif -$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_hpack_tables.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a +endif -deps_gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/hybrid_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_hybrid_end2end_test: $(HYBRID_END2END_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GEN_HPACK_TABLES_OBJS:.o=.dep) +-include $(HYBRID_END2END_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GEN_LEGAL_METADATA_CHARACTERS_SRC = \ - tools/codegen/core/gen_legal_metadata_characters.c \ - -GEN_LEGAL_METADATA_CHARACTERS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_LEGAL_METADATA_CHARACTERS_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/interop_client: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/interop_client: $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_client endif -$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_legal_metadata_characters.o: +endif -deps_gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -GOAWAY_SERVER_TEST_SRC = \ - test/core/end2end/goaway_server_test.c \ - -GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_server: openssl_dep_error else -$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/interop_server: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) -endif -endif # Force compilation of proto files before building code that could potentially depend on them -GPR_AVL_TEST_SRC = \ - test/core/support/avl_test.c \ +INTEROP_TEST_SRC = \ + test/cpp/interop/interop_test.cc \ -GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC)))) +INTEROP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTEROP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_avl_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/interop_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_avl_test: $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/interop_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/interop_test: $(PROTOBUF_DEP) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_avl_test + $(Q) $(LDXX) $(LDFLAGS) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_avl_test: $(GPR_AVL_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_interop_test: $(INTEROP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_AVL_TEST_OBJS:.o=.dep) +-include $(INTEROP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_BACKOFF_TEST_SRC = \ - test/core/support/backoff_test.c \ +JSON_RUN_LOCALHOST_SRC = \ + test/cpp/qps/json_run_localhost.cc \ -GPR_BACKOFF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_BACKOFF_TEST_SRC)))) +JSON_RUN_LOCALHOST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_RUN_LOCALHOST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_backoff_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_run_localhost: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/json_run_localhost: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/json_run_localhost: $(PROTOBUF_DEP) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_backoff_test + $(Q) $(LDXX) $(LDFLAGS) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/json_run_localhost endif -$(OBJDIR)/$(CONFIG)/test/core/support/backoff_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/qps/json_run_localhost.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_json_run_localhost: $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_BACKOFF_TEST_OBJS:.o=.dep) +-include $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_CMDLINE_TEST_SRC = \ - test/core/support/cmdline_test.c \ +METRICS_CLIENT_SRC = \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ + test/cpp/interop/metrics_client.cc \ -GPR_CMDLINE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC)))) +METRICS_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(METRICS_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_cmdline_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/metrics_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/metrics_client: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/metrics_client: $(PROTOBUF_DEP) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cmdline_test + $(Q) $(LDXX) $(LDFLAGS) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/metrics_client endif -$(OBJDIR)/$(CONFIG)/test/core/support/cmdline_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_metrics_client: $(METRICS_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_CMDLINE_TEST_OBJS:.o=.dep) +-include $(METRICS_CLIENT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc -GPR_CPU_TEST_SRC = \ - test/core/support/cpu_test.c \ +MOCK_TEST_SRC = \ + test/cpp/end2end/mock_test.cc \ -GPR_CPU_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CPU_TEST_SRC)))) +MOCK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MOCK_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_cpu_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/mock_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_cpu_test: $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/mock_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/mock_test: $(PROTOBUF_DEP) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cpu_test + $(Q) $(LDXX) $(LDFLAGS) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/mock_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/cpu_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_cpu_test: $(GPR_CPU_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/mock_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_mock_test: $(MOCK_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_CPU_TEST_OBJS:.o=.dep) +-include $(MOCK_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_ENV_TEST_SRC = \ - test/core/support/env_test.c \ +PROTO_SERVER_REFLECTION_TEST_SRC = \ + test/cpp/end2end/proto_server_reflection_test.cc \ + test/cpp/util/proto_reflection_descriptor_database.cc \ -GPR_ENV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_ENV_TEST_SRC)))) +PROTO_SERVER_REFLECTION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PROTO_SERVER_REFLECTION_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_env_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_env_test: $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_env_test + $(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/env_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_env_test: $(GPR_ENV_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_proto_server_reflection_test: $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_ENV_TEST_OBJS:.o=.dep) +-include $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_HISTOGRAM_TEST_SRC = \ - test/core/support/histogram_test.c \ +QPS_INTERARRIVAL_TEST_SRC = \ + test/cpp/qps/qps_interarrival_test.cc \ -GPR_HISTOGRAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC)))) +QPS_INTERARRIVAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_INTERARRIVAL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_histogram_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_interarrival_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_interarrival_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_interarrival_test: $(PROTOBUF_DEP) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_histogram_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_interarrival_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/histogram_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif + +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_interarrival_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) +deps_qps_interarrival_test: $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) +-include $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_HOST_PORT_TEST_SRC = \ - test/core/support/host_port_test.c \ +QPS_JSON_DRIVER_SRC = \ + test/cpp/qps/qps_json_driver.cc \ -GPR_HOST_PORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC)))) +QPS_JSON_DRIVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_JSON_DRIVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_host_port_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_json_driver: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_json_driver: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_json_driver: $(PROTOBUF_DEP) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_host_port_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_json_driver endif -$(OBJDIR)/$(CONFIG)/test/core/support/host_port_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_json_driver.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_qps_json_driver: $(QPS_JSON_DRIVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) +-include $(QPS_JSON_DRIVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_LOG_TEST_SRC = \ - test/core/support/log_test.c \ +QPS_OPENLOOP_TEST_SRC = \ + test/cpp/qps/qps_openloop_test.cc \ -GPR_LOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC)))) +QPS_OPENLOOP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_OPENLOOP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_log_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_openloop_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_log_test: $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_openloop_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_openloop_test: $(PROTOBUF_DEP) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_log_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_openloop_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/log_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_log_test: $(GPR_LOG_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_openloop_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_qps_openloop_test: $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_LOG_TEST_OBJS:.o=.dep) +-include $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_SLICE_BUFFER_TEST_SRC = \ - test/core/support/slice_buffer_test.c \ +QPS_WORKER_SRC = \ + test/cpp/qps/worker.cc \ -GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC)))) +QPS_WORKER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_WORKER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/qps_worker: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_worker: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_worker: $(PROTOBUF_DEP) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test + $(Q) $(LDXX) $(LDFLAGS) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_worker endif -$(OBJDIR)/$(CONFIG)/test/core/support/slice_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/qps/worker.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_qps_worker: $(QPS_WORKER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) +-include $(QPS_WORKER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_SLICE_TEST_SRC = \ - test/core/support/slice_test.c \ +RECONNECT_INTEROP_CLIENT_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/reconnect_interop_client.cc \ -GPR_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC)))) +RECONNECT_INTEROP_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_slice_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/reconnect_interop_client: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/reconnect_interop_client: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_test + $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_client endif -$(OBJDIR)/$(CONFIG)/test/core/support/slice_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_slice_test: $(GPR_SLICE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_reconnect_interop_client: $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SLICE_TEST_OBJS:.o=.dep) +-include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -GPR_STACK_LOCKFREE_TEST_SRC = \ - test/core/support/stack_lockfree_test.c \ +RECONNECT_INTEROP_SERVER_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/reconnect_interop_server.cc \ -GPR_STACK_LOCKFREE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STACK_LOCKFREE_TEST_SRC)))) +RECONNECT_INTEROP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/reconnect_interop_server: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/reconnect_interop_server: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/reconnect_interop_server: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test + $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_server endif -$(OBJDIR)/$(CONFIG)/test/core/support/stack_lockfree_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_reconnect_interop_server: $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) +-include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -GPR_STRING_TEST_SRC = \ - test/core/support/string_test.c \ +SECURE_AUTH_CONTEXT_TEST_SRC = \ + test/cpp/common/secure_auth_context_test.cc \ -GPR_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC)))) +SECURE_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_AUTH_CONTEXT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_string_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_auth_context_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_string_test: $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/secure_auth_context_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/secure_auth_context_test: $(PROTOBUF_DEP) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_string_test + $(Q) $(LDXX) $(LDFLAGS) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_auth_context_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/string_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_string_test: $(GPR_STRING_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/common/secure_auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_secure_auth_context_test: $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_STRING_TEST_OBJS:.o=.dep) +-include $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_SYNC_TEST_SRC = \ - test/core/support/sync_test.c \ +SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ + test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ -GPR_SYNC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC)))) +SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_SYNC_UNARY_PING_PONG_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_sync_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: $(PROTOBUF_DEP) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_sync_test + $(Q) $(LDXX) $(LDFLAGS) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/sync_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_sync_test: $(GPR_SYNC_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/qps/secure_sync_unary_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_secure_sync_unary_ping_pong_test: $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_SYNC_TEST_OBJS:.o=.dep) +-include $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_THD_TEST_SRC = \ - test/core/support/thd_test.c \ +SERVER_BUILDER_PLUGIN_TEST_SRC = \ + test/cpp/end2end/server_builder_plugin_test.cc \ -GPR_THD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC)))) +SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_thd_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_thd_test: $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_thd_test + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/thd_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_thd_test: $(GPR_THD_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_THD_TEST_OBJS:.o=.dep) +-include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_TIME_TEST_SRC = \ - test/core/support/time_test.c \ +SERVER_CRASH_TEST_SRC = \ + test/cpp/end2end/server_crash_test.cc \ -GPR_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC)))) +SERVER_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_time_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_time_test: $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/server_crash_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/server_crash_test: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_time_test + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/time_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_time_test: $(GPR_TIME_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_server_crash_test: $(SERVER_CRASH_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_TIME_TEST_OBJS:.o=.dep) +-include $(SERVER_CRASH_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_TLS_TEST_SRC = \ - test/core/support/tls_test.c \ +SERVER_CRASH_TEST_CLIENT_SRC = \ + test/cpp/end2end/server_crash_test_client.cc \ -GPR_TLS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TLS_TEST_SRC)))) +SERVER_CRASH_TEST_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_tls_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_crash_test_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_tls_test: $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/server_crash_test_client: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/server_crash_test_client: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_tls_test + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test_client endif -$(OBJDIR)/$(CONFIG)/test/core/support/tls_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_tls_test: $(GPR_TLS_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_server_crash_test_client: $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_TLS_TEST_OBJS:.o=.dep) +-include $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GPR_USEFUL_TEST_SRC = \ - test/core/support/useful_test.c \ +SHUTDOWN_TEST_SRC = \ + test/cpp/end2end/shutdown_test.cc \ -GPR_USEFUL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC)))) +SHUTDOWN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SHUTDOWN_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/gpr_useful_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/shutdown_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/shutdown_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/shutdown_test: $(PROTOBUF_DEP) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_useful_test + $(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/useful_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_gpr_useful_test: $(GPR_USEFUL_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/shutdown_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_shutdown_test: $(SHUTDOWN_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GPR_USEFUL_TEST_OBJS:.o=.dep) +-include $(SHUTDOWN_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_AUTH_CONTEXT_TEST_SRC = \ - test/core/security/auth_context_test.c \ +STATUS_TEST_SRC = \ + test/cpp/util/status_test.cc \ -GRPC_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_AUTH_CONTEXT_TEST_SRC)))) +STATUS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_auth_context_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/status_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/status_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/status_test: $(PROTOBUF_DEP) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_auth_context_test + $(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/util/status_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_status_test: $(STATUS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +-include $(STATUS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_B64_TEST_SRC = \ - test/core/security/b64_test.c \ +STREAMING_THROUGHPUT_TEST_SRC = \ + test/cpp/end2end/streaming_throughput_test.cc \ -GRPC_B64_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_B64_TEST_SRC)))) +STREAMING_THROUGHPUT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAMING_THROUGHPUT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_b64_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/streaming_throughput_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_b64_test: $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/streaming_throughput_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/streaming_throughput_test: $(PROTOBUF_DEP) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_b64_test + $(Q) $(LDXX) $(LDFLAGS) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/streaming_throughput_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/b64_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_grpc_b64_test: $(GRPC_B64_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/streaming_throughput_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_streaming_throughput_test: $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_B64_TEST_OBJS:.o=.dep) +-include $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_BYTE_BUFFER_READER_TEST_SRC = \ - test/core/surface/byte_buffer_reader_test.c \ +STRESS_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ + $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ + test/cpp/interop/interop_client.cc \ + test/cpp/interop/stress_interop_client.cc \ + test/cpp/interop/stress_test.cc \ + test/cpp/util/metrics_server.cc \ -GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC)))) +STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/stress_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/stress_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/stress_test: $(PROTOBUF_DEP) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test + $(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/byte_buffer_reader_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + +deps_stress_test: $(STRESS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) +-include $(STRESS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc + $(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -GRPC_CHANNEL_ARGS_TEST_SRC = \ - test/core/channel/channel_args_test.c \ +THREAD_STRESS_TEST_SRC = \ + test/cpp/end2end/thread_stress_test.cc \ -GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC)))) +THREAD_STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(THREAD_STRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_channel_args_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/thread_stress_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/thread_stress_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/thread_stress_test: $(PROTOBUF_DEP) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test + $(Q) $(LDXX) $(LDFLAGS) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_stress_test endif -$(OBJDIR)/$(CONFIG)/test/core/channel/channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +endif -deps_grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/thread_stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_thread_stress_test: $(THREAD_STRESS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +-include $(THREAD_STRESS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CHANNEL_STACK_TEST_SRC = \ - test/core/channel/channel_stack_test.c \ +PUBLIC_HEADERS_MUST_BE_C89_SRC = \ + test/core/surface/public_headers_must_be_c89.c \ -GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC)))) +PUBLIC_HEADERS_MUST_BE_C89_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PUBLIC_HEADERS_MUST_BE_C89_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_test + $(Q) $(LD) $(LDFLAGS) $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 endif -$(OBJDIR)/$(CONFIG)/test/core/channel/channel_stack_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o : test/core/surface/public_headers_must_be_c89.c + $(E) "[C] Compiling $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< -deps_grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) +deps_public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) +-include $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_COMPLETION_QUEUE_TEST_SRC = \ - test/core/surface/completion_queue_test.c \ +ALARM_TEST_SRC = \ + test/core/surface/alarm_test.c \ -GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC)))) +ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/alarm_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/alarm_test: $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_test + $(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alarm_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/completion_queue_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/alarm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) +deps_alarm_test: $(ALARM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) +-include $(ALARM_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CREATE_JWT_SRC = \ - test/core/security/create_jwt.c \ +ALGORITHM_TEST_SRC = \ + test/core/compression/algorithm_test.c \ -GRPC_CREATE_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREATE_JWT_SRC)))) +ALGORITHM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALGORITHM_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_create_jwt: openssl_dep_error +$(BINDIR)/$(CONFIG)/algorithm_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/algorithm_test: $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_create_jwt + $(Q) $(LD) $(LDFLAGS) $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/algorithm_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/create_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/compression/algorithm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS:.o=.dep) +deps_algorithm_test: $(ALGORITHM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CREATE_JWT_OBJS:.o=.dep) +-include $(ALGORITHM_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CREDENTIALS_TEST_SRC = \ - test/core/security/credentials_test.c \ +ALLOC_TEST_SRC = \ + test/core/support/alloc_test.c \ -GRPC_CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC)))) +ALLOC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALLOC_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_credentials_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/alloc_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/alloc_test: $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_credentials_test + $(Q) $(LD) $(LDFLAGS) $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alloc_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/alloc_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) +deps_alloc_test: $(ALLOC_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) +-include $(ALLOC_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_FETCH_OAUTH2_SRC = \ - test/core/security/fetch_oauth2.c \ +ALPN_TEST_SRC = \ + test/core/transport/chttp2/alpn_test.c \ -GRPC_FETCH_OAUTH2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC)))) +ALPN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: openssl_dep_error +$(BINDIR)/$(CONFIG)/alpn_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/alpn_test: $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 + $(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alpn_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/fetch_oauth2.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/alpn_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) +deps_alpn_test: $(ALPN_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) +-include $(ALPN_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \ - test/core/surface/invalid_channel_args_test.c \ +API_FUZZER_SRC = \ + test/core/end2end/fuzzers/api_fuzzer.c \ -GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_INVALID_CHANNEL_ARGS_TEST_SRC)))) +API_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(API_FUZZER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/api_fuzzer: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/api_fuzzer: $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test + $(Q) $(LDXX) $(LDFLAGS) $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/api_fuzzer endif -$(OBJDIR)/$(CONFIG)/test/core/surface/invalid_channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/api_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +deps_api_fuzzer: $(API_FUZZER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) +-include $(API_FUZZER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_JSON_TOKEN_TEST_SRC = \ - test/core/security/json_token_test.c \ +BAD_SERVER_RESPONSE_TEST_SRC = \ + test/core/end2end/bad_server_response_test.c \ -GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC)))) +BAD_SERVER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BAD_SERVER_RESPONSE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_json_token_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/bad_server_response_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_json_token_test + $(Q) $(LD) $(LDFLAGS) $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_server_response_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/json_token_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/bad_server_response_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) +deps_bad_server_response_test: $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) +-include $(BAD_SERVER_RESPONSE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_JWT_VERIFIER_TEST_SRC = \ - test/core/security/jwt_verifier_test.c \ +BIN_DECODER_TEST_SRC = \ + test/core/transport/chttp2/bin_decoder_test.c \ -GRPC_JWT_VERIFIER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JWT_VERIFIER_TEST_SRC)))) +BIN_DECODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_DECODER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/bin_decoder_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/bin_decoder_test: $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test + $(Q) $(LD) $(LDFLAGS) $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_decoder_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/jwt_verifier_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_decoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) +deps_bin_decoder_test: $(BIN_DECODER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) +-include $(BIN_DECODER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \ - test/core/security/print_google_default_creds_token.c \ +BIN_ENCODER_TEST_SRC = \ + test/core/transport/chttp2/bin_encoder_test.c \ -GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC)))) +BIN_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: openssl_dep_error +$(BINDIR)/$(CONFIG)/bin_encoder_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token + $(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_encoder_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/print_google_default_creds_token.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/bin_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) +deps_bin_encoder_test: $(BIN_ENCODER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) +-include $(BIN_ENCODER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_SECURITY_CONNECTOR_TEST_SRC = \ - test/core/security/security_connector_test.c \ +CENSUS_CONTEXT_TEST_SRC = \ + test/core/census/context_test.c \ -GRPC_SECURITY_CONNECTOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_SECURITY_CONNECTOR_TEST_SRC)))) +CENSUS_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_CONTEXT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_security_connector_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/census_context_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/census_context_test: $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_security_connector_test + $(Q) $(LD) $(LDFLAGS) $(CENSUS_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_context_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/security_connector_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/census/context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) +deps_census_context_test: $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) +-include $(CENSUS_CONTEXT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_VERIFY_JWT_SRC = \ - test/core/security/verify_jwt.c \ +CENSUS_RESOURCE_TEST_SRC = \ + test/core/census/resource_test.c \ -GRPC_VERIFY_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_VERIFY_JWT_SRC)))) +CENSUS_RESOURCE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CENSUS_RESOURCE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_verify_jwt: openssl_dep_error +$(BINDIR)/$(CONFIG)/census_resource_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/census_resource_test: $(CENSUS_RESOURCE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_verify_jwt + $(Q) $(LD) $(LDFLAGS) $(CENSUS_RESOURCE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/census_resource_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/verify_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/census/resource_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS:.o=.dep) +deps_census_resource_test: $(CENSUS_RESOURCE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_VERIFY_JWT_OBJS:.o=.dep) +-include $(CENSUS_RESOURCE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HPACK_PARSER_FUZZER_TEST_SRC = \ - test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ +CHANNEL_CREATE_TEST_SRC = \ + test/core/surface/channel_create_test.c \ -HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC)))) +CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_CREATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/channel_create_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/channel_create_test: $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/channel_create_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) +deps_channel_create_test: $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) +-include $(CHANNEL_CREATE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HPACK_PARSER_TEST_SRC = \ - test/core/transport/chttp2/hpack_parser_test.c \ +CHTTP2_HPACK_ENCODER_TEST_SRC = \ + test/core/transport/chttp2/hpack_encoder_test.c \ -HPACK_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC)))) +CHTTP2_HPACK_ENCODER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_HPACK_ENCODER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_encoder_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_parser_test: $(HPACK_PARSER_TEST_OBJS:.o=.dep) +deps_chttp2_hpack_encoder_test: $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_PARSER_TEST_OBJS:.o=.dep) +-include $(CHTTP2_HPACK_ENCODER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HPACK_TABLE_TEST_SRC = \ - test/core/transport/chttp2/hpack_table_test.c \ +CHTTP2_STATUS_CONVERSION_TEST_SRC = \ + test/core/transport/chttp2/status_conversion_test.c \ -HPACK_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC)))) +CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hpack_table_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_table_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_table_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/status_conversion_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hpack_table_test: $(HPACK_TABLE_TEST_OBJS:.o=.dep) +deps_chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HPACK_TABLE_TEST_OBJS:.o=.dep) +-include $(CHTTP2_STATUS_CONVERSION_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTP_PARSER_TEST_SRC = \ - test/core/http/parser_test.c \ +CHTTP2_STREAM_MAP_TEST_SRC = \ + test/core/transport/chttp2/stream_map_test.c \ -HTTP_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_PARSER_TEST_SRC)))) +CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_parser_test: $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_parser_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_stream_map_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/stream_map_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_parser_test: $(HTTP_PARSER_TEST_OBJS:.o=.dep) +deps_chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_PARSER_TEST_OBJS:.o=.dep) +-include $(CHTTP2_STREAM_MAP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTP_REQUEST_FUZZER_TEST_SRC = \ - test/core/http/request_fuzzer.c \ +CHTTP2_VARINT_TEST_SRC = \ + test/core/transport/chttp2/varint_test.c \ -HTTP_REQUEST_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_SRC)))) +CHTTP2_VARINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHTTP2_VARINT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/chttp2_varint_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_varint_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/request_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/varint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) +deps_chttp2_varint_test: $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) +-include $(CHTTP2_VARINT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTP_RESPONSE_FUZZER_TEST_SRC = \ - test/core/http/response_fuzzer.c \ +CLIENT_FUZZER_SRC = \ + test/core/end2end/fuzzers/client_fuzzer.c \ -HTTP_RESPONSE_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_SRC)))) +CLIENT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_FUZZER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/client_fuzzer: openssl_dep_error else -$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/client_fuzzer: $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test + $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/client_fuzzer endif -$(OBJDIR)/$(CONFIG)/test/core/http/response_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/client_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) +deps_client_fuzzer: $(CLIENT_FUZZER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) +-include $(CLIENT_FUZZER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTPCLI_FORMAT_REQUEST_TEST_SRC = \ - test/core/http/format_request_test.c \ +COMPRESSION_TEST_SRC = \ + test/core/compression/compression_test.c \ -HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC)))) +COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpcli_format_request_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/compression_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/compression_test: $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_format_request_test + $(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/format_request_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/compression/compression_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) +deps_compression_test: $(COMPRESSION_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) +-include $(COMPRESSION_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTPCLI_TEST_SRC = \ - test/core/http/httpcli_test.c \ +CONCURRENT_CONNECTIVITY_TEST_SRC = \ + test/core/surface/concurrent_connectivity_test.c \ -HTTPCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC)))) +CONCURRENT_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CONCURRENT_CONNECTIVITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpcli_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpcli_test: $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_test + $(Q) $(LD) $(LDFLAGS) $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/concurrent_connectivity_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/httpcli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/concurrent_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpcli_test: $(HTTPCLI_TEST_OBJS:.o=.dep) +deps_concurrent_connectivity_test: $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPCLI_TEST_OBJS:.o=.dep) +-include $(CONCURRENT_CONNECTIVITY_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -HTTPSCLI_TEST_SRC = \ - test/core/http/httpscli_test.c \ +DNS_RESOLVER_CONNECTIVITY_TEST_SRC = \ + test/core/client_config/resolvers/dns_resolver_connectivity_test.c \ -HTTPSCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPSCLI_TEST_SRC)))) +DNS_RESOLVER_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_CONNECTIVITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/httpscli_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/httpscli_test: $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpscli_test + $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test endif -$(OBJDIR)/$(CONFIG)/test/core/http/httpscli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_httpscli_test: $(HTTPSCLI_TEST_OBJS:.o=.dep) +deps_dns_resolver_connectivity_test: $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HTTPSCLI_TEST_OBJS:.o=.dep) +-include $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INIT_TEST_SRC = \ - test/core/surface/init_test.c \ +DNS_RESOLVER_TEST_SRC = \ + test/core/client_config/resolvers/dns_resolver_test.c \ -INIT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INIT_TEST_SRC)))) +DNS_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DNS_RESOLVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/init_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/dns_resolver_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/init_test: $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/init_test + $(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/init_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/dns_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_init_test: $(INIT_TEST_OBJS:.o=.dep) +deps_dns_resolver_test: $(DNS_RESOLVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INIT_TEST_OBJS:.o=.dep) +-include $(DNS_RESOLVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +DUALSTACK_SOCKET_TEST_SRC = \ + test/core/end2end/dualstack_socket_test.c \ -INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC)))) +DUALSTACK_SOCKET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/dualstack_socket_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test + $(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dualstack_socket_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/dualstack_socket_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) +deps_dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) +-include $(DUALSTACK_SOCKET_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +ENDPOINT_PAIR_TEST_SRC = \ + test/core/iomgr/endpoint_pair_test.c \ -INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC)))) +ENDPOINT_PAIR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ENDPOINT_PAIR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/endpoint_pair_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test + $(Q) $(LD) $(LDFLAGS) $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/endpoint_pair_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/endpoint_pair_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) +deps_endpoint_pair_test: $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) +-include $(ENDPOINT_PAIR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ - test/core/internal_api_canaries/iomgr.c \ +EV_EPOLL_LINUX_TEST_SRC = \ + test/core/iomgr/ev_epoll_linux_test.c \ -INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC)))) +EV_EPOLL_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLL_LINUX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test + $(Q) $(LD) $(LDFLAGS) $(EV_EPOLL_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epoll_linux_test endif -$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/ev_epoll_linux_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) +deps_ev_epoll_linux_test: $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) +-include $(EV_EPOLL_LINUX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -INVALID_CALL_ARGUMENT_TEST_SRC = \ - test/core/end2end/invalid_call_argument_test.c \ +FD_CONSERVATION_POSIX_TEST_SRC = \ + test/core/iomgr/fd_conservation_posix_test.c \ -INVALID_CALL_ARGUMENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INVALID_CALL_ARGUMENT_TEST_SRC)))) +FD_CONSERVATION_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_CONSERVATION_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/invalid_call_argument_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/invalid_call_argument_test + $(Q) $(LD) $(LDFLAGS) $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_conservation_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/invalid_call_argument_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_conservation_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) +deps_fd_conservation_posix_test: $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) +-include $(FD_CONSERVATION_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_FUZZER_TEST_SRC = \ - test/core/json/fuzzer.c \ +FD_POSIX_TEST_SRC = \ + test/core/iomgr/fd_posix_test.c \ -JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC)))) +FD_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fd_posix_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fd_posix_test: $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_posix_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/fd_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS:.o=.dep) +deps_fd_posix_test: $(FD_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_FUZZER_TEST_OBJS:.o=.dep) +-include $(FD_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_REWRITE_SRC = \ - test/core/json/json_rewrite.c \ +FLING_CLIENT_SRC = \ + test/core/fling/client.c \ -JSON_REWRITE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_SRC)))) +FLING_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_rewrite: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_client: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_rewrite: $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_client: $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite + $(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_client endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/client.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_rewrite: $(JSON_REWRITE_OBJS:.o=.dep) +deps_fling_client: $(FLING_CLIENT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_REWRITE_OBJS:.o=.dep) +-include $(FLING_CLIENT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_REWRITE_TEST_SRC = \ - test/core/json/json_rewrite_test.c \ +FLING_SERVER_SRC = \ + test/core/fling/server.c \ -JSON_REWRITE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_TEST_SRC)))) +FLING_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_rewrite_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_server: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_rewrite_test: $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_server: $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite_test + $(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_server endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/server.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_rewrite_test: $(JSON_REWRITE_TEST_OBJS:.o=.dep) +deps_fling_server: $(FLING_SERVER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_REWRITE_TEST_OBJS:.o=.dep) +-include $(FLING_SERVER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_STREAM_ERROR_TEST_SRC = \ - test/core/json/json_stream_error_test.c \ +FLING_STREAM_TEST_SRC = \ + test/core/fling/fling_stream_test.c \ -JSON_STREAM_ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_STREAM_ERROR_TEST_SRC)))) +FLING_STREAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_stream_error_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_stream_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_stream_test: $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_stream_error_test + $(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_stream_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_stream_error_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/fling_stream_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) +deps_fling_stream_test: $(FLING_STREAM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) +-include $(FLING_STREAM_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_TEST_SRC = \ - test/core/json/json_test.c \ +FLING_TEST_SRC = \ + test/core/fling/fling_test.c \ -JSON_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_TEST_SRC)))) +FLING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/fling_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/json_test: $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/fling_test: $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_test + $(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_test endif -$(OBJDIR)/$(CONFIG)/test/core/json/json_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/fling/fling_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_test: $(JSON_TEST_OBJS:.o=.dep) +deps_fling_test: $(FLING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_TEST_OBJS:.o=.dep) +-include $(FLING_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LAME_CLIENT_TEST_SRC = \ - test/core/surface/lame_client_test.c \ +GEN_HPACK_TABLES_SRC = \ + tools/codegen/core/gen_hpack_tables.c \ -LAME_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC)))) +GEN_HPACK_TABLES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/lame_client_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gen_hpack_tables: openssl_dep_error else -$(BINDIR)/$(CONFIG)/lame_client_test: $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lame_client_test + $(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_hpack_tables endif -$(OBJDIR)/$(CONFIG)/test/core/surface/lame_client_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_hpack_tables.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a -deps_lame_client_test: $(LAME_CLIENT_TEST_OBJS:.o=.dep) +deps_gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LAME_CLIENT_TEST_OBJS:.o=.dep) +-include $(GEN_HPACK_TABLES_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LB_POLICIES_TEST_SRC = \ - test/core/client_config/lb_policies_test.c \ +GEN_LEGAL_METADATA_CHARACTERS_SRC = \ + tools/codegen/core/gen_legal_metadata_characters.c \ -LB_POLICIES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LB_POLICIES_TEST_SRC)))) +GEN_LEGAL_METADATA_CHARACTERS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_LEGAL_METADATA_CHARACTERS_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/lb_policies_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: openssl_dep_error else -$(BINDIR)/$(CONFIG)/lb_policies_test: $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lb_policies_test + $(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/lb_policies_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_legal_metadata_characters.o: -deps_lb_policies_test: $(LB_POLICIES_TEST_OBJS:.o=.dep) +deps_gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LB_POLICIES_TEST_OBJS:.o=.dep) +-include $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LOAD_FILE_TEST_SRC = \ - test/core/iomgr/load_file_test.c \ +GOAWAY_SERVER_TEST_SRC = \ + test/core/end2end/goaway_server_test.c \ -LOAD_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOAD_FILE_TEST_SRC)))) +GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/load_file_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/load_file_test: $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/load_file_test + $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/load_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_load_file_test: $(LOAD_FILE_TEST_OBJS:.o=.dep) +deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LOAD_FILE_TEST_OBJS:.o=.dep) +-include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \ - test/core/network_benchmarks/low_level_ping_pong.c \ +GPR_AVL_TEST_SRC = \ + test/core/support/avl_test.c \ -LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC)))) +GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_avl_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_avl_test: $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark + $(Q) $(LD) $(LDFLAGS) $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_avl_test endif -$(OBJDIR)/$(CONFIG)/test/core/network_benchmarks/low_level_ping_pong.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +deps_gpr_avl_test: $(GPR_AVL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +-include $(GPR_AVL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MESSAGE_COMPRESS_TEST_SRC = \ - test/core/compression/message_compress_test.c \ +GPR_BACKOFF_TEST_SRC = \ + test/core/support/backoff_test.c \ -MESSAGE_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC)))) +GPR_BACKOFF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_BACKOFF_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/message_compress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_backoff_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/message_compress_test + $(Q) $(LD) $(LDFLAGS) $(GPR_BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_backoff_test endif -$(OBJDIR)/$(CONFIG)/test/core/compression/message_compress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/backoff_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +deps_gpr_backoff_test: $(GPR_BACKOFF_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +-include $(GPR_BACKOFF_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MLOG_TEST_SRC = \ - test/core/census/mlog_test.c \ +GPR_CMDLINE_TEST_SRC = \ + test/core/support/cmdline_test.c \ -MLOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MLOG_TEST_SRC)))) +GPR_CMDLINE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/mlog_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_cmdline_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test + $(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cmdline_test endif -$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/cmdline_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_mlog_test: $(MLOG_TEST_OBJS:.o=.dep) +deps_gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MLOG_TEST_OBJS:.o=.dep) +-include $(GPR_CMDLINE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MULTIPLE_SERVER_QUEUES_TEST_SRC = \ - test/core/end2end/multiple_server_queues_test.c \ +GPR_CPU_TEST_SRC = \ + test/core/support/cpu_test.c \ -MULTIPLE_SERVER_QUEUES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MULTIPLE_SERVER_QUEUES_TEST_SRC)))) +GPR_CPU_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_CPU_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/multiple_server_queues_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_cpu_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_cpu_test: $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/multiple_server_queues_test + $(Q) $(LD) $(LDFLAGS) $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cpu_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/multiple_server_queues_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/cpu_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +deps_gpr_cpu_test: $(GPR_CPU_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +-include $(GPR_CPU_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -MURMUR_HASH_TEST_SRC = \ - test/core/support/murmur_hash_test.c \ +GPR_ENV_TEST_SRC = \ + test/core/support/env_test.c \ -MURMUR_HASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC)))) +GPR_ENV_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_ENV_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/murmur_hash_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_env_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_env_test: $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/murmur_hash_test + $(Q) $(LD) $(LDFLAGS) $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_env_test endif -$(OBJDIR)/$(CONFIG)/test/core/support/murmur_hash_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/env_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_murmur_hash_test: $(MURMUR_HASH_TEST_OBJS:.o=.dep) +deps_gpr_env_test: $(GPR_ENV_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MURMUR_HASH_TEST_OBJS:.o=.dep) +-include $(GPR_ENV_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -NANOPB_FUZZER_RESPONSE_TEST_SRC = \ - test/core/nanopb/fuzzer_response.c \ +GPR_HISTOGRAM_TEST_SRC = \ + test/core/support/histogram_test.c \ -NANOPB_FUZZER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_SRC)))) +GPR_HISTOGRAM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_histogram_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test + $(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_histogram_test endif -$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_response.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/histogram_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) +deps_gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) +-include $(GPR_HISTOGRAM_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -NANOPB_FUZZER_SERVERLIST_TEST_SRC = \ - test/core/nanopb/fuzzer_serverlist.c \ +GPR_HOST_PORT_TEST_SRC = \ + test/core/support/host_port_test.c \ -NANOPB_FUZZER_SERVERLIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_SRC)))) +GPR_HOST_PORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_host_port_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test + $(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_host_port_test endif -$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_serverlist.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/host_port_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) +deps_gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) +-include $(GPR_HOST_PORT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -NO_SERVER_TEST_SRC = \ - test/core/end2end/no_server_test.c \ +GPR_LOG_TEST_SRC = \ + test/core/support/log_test.c \ -NO_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC)))) +GPR_LOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/no_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_log_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/no_server_test: $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_log_test: $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/no_server_test + $(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_log_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/no_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/log_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_no_server_test: $(NO_SERVER_TEST_OBJS:.o=.dep) +deps_gpr_log_test: $(GPR_LOG_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(NO_SERVER_TEST_OBJS:.o=.dep) +-include $(GPR_LOG_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -RESOLVE_ADDRESS_TEST_SRC = \ - test/core/iomgr/resolve_address_test.c \ +GPR_SLICE_BUFFER_TEST_SRC = \ + test/core/support/slice_buffer_test.c \ -RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC)))) +GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/resolve_address_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_test + $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/slice_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +deps_gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +-include $(GPR_SLICE_BUFFER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SECURE_CHANNEL_CREATE_TEST_SRC = \ - test/core/surface/secure_channel_create_test.c \ +GPR_SLICE_TEST_SRC = \ + test/core/support/slice_test.c \ -SECURE_CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_CHANNEL_CREATE_TEST_SRC)))) +GPR_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_channel_create_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_slice_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_channel_create_test + $(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_slice_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/secure_channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/slice_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +deps_gpr_slice_test: $(GPR_SLICE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +-include $(GPR_SLICE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SECURE_ENDPOINT_TEST_SRC = \ - test/core/security/secure_endpoint_test.c \ +GPR_STACK_LOCKFREE_TEST_SRC = \ + test/core/support/stack_lockfree_test.c \ -SECURE_ENDPOINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC)))) +GPR_STACK_LOCKFREE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STACK_LOCKFREE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_endpoint_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_endpoint_test + $(Q) $(LD) $(LDFLAGS) $(GPR_STACK_LOCKFREE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test endif -$(OBJDIR)/$(CONFIG)/test/core/security/secure_endpoint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/stack_lockfree_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) +deps_gpr_stack_lockfree_test: $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) +-include $(GPR_STACK_LOCKFREE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SEQUENTIAL_CONNECTIVITY_TEST_SRC = \ - test/core/surface/sequential_connectivity_test.c \ +GPR_STRING_TEST_SRC = \ + test/core/support/string_test.c \ -SEQUENTIAL_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SEQUENTIAL_CONNECTIVITY_TEST_SRC)))) +GPR_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sequential_connectivity_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_string_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_string_test: $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sequential_connectivity_test + $(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_string_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/sequential_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/string_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) +deps_gpr_string_test: $(GPR_STRING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) +-include $(GPR_STRING_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_CHTTP2_TEST_SRC = \ - test/core/surface/server_chttp2_test.c \ +GPR_SYNC_TEST_SRC = \ + test/core/support/sync_test.c \ -SERVER_CHTTP2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CHTTP2_TEST_SRC)))) +GPR_SYNC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_chttp2_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_sync_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_chttp2_test + $(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_sync_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/server_chttp2_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/sync_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) +deps_gpr_sync_test: $(GPR_SYNC_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) +-include $(GPR_SYNC_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_FUZZER_SRC = \ - test/core/end2end/fuzzers/server_fuzzer.c \ +GPR_THD_TEST_SRC = \ + test/core/support/thd_test.c \ -SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_SRC)))) +GPR_THD_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_fuzzer: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_thd_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_fuzzer: $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_thd_test: $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/server_fuzzer + $(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_thd_test endif -$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/server_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/thd_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_fuzzer: $(SERVER_FUZZER_OBJS:.o=.dep) +deps_gpr_thd_test: $(GPR_THD_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_FUZZER_OBJS:.o=.dep) +-include $(GPR_THD_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_TEST_SRC = \ - test/core/surface/server_test.c \ +GPR_TIME_TEST_SRC = \ + test/core/support/time_test.c \ -SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_TEST_SRC)))) +GPR_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_time_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/server_test: $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_time_test: $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_test + $(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_time_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/time_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_test: $(SERVER_TEST_OBJS:.o=.dep) +deps_gpr_time_test: $(GPR_TIME_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_TEST_OBJS:.o=.dep) +-include $(GPR_TIME_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SET_INITIAL_CONNECT_STRING_TEST_SRC = \ - test/core/client_config/set_initial_connect_string_test.c \ +GPR_TLS_TEST_SRC = \ + test/core/support/tls_test.c \ -SET_INITIAL_CONNECT_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SET_INITIAL_CONNECT_STRING_TEST_SRC)))) +GPR_TLS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_TLS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_tls_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_tls_test: $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/set_initial_connect_string_test + $(Q) $(LD) $(LDFLAGS) $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_tls_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/set_initial_connect_string_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/tls_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) +deps_gpr_tls_test: $(GPR_TLS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) +-include $(GPR_TLS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SOCKADDR_RESOLVER_TEST_SRC = \ - test/core/client_config/resolvers/sockaddr_resolver_test.c \ +GPR_USEFUL_TEST_SRC = \ + test/core/support/useful_test.c \ -SOCKADDR_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_RESOLVER_TEST_SRC)))) +GPR_USEFUL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/gpr_useful_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_resolver_test + $(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_useful_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/sockaddr_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/support/useful_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) +deps_gpr_useful_test: $(GPR_USEFUL_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) +-include $(GPR_USEFUL_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SOCKADDR_UTILS_TEST_SRC = \ - test/core/iomgr/sockaddr_utils_test.c \ +GRPC_AUTH_CONTEXT_TEST_SRC = \ + test/core/security/auth_context_test.c \ -SOCKADDR_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC)))) +GRPC_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_AUTH_CONTEXT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/sockaddr_utils_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_auth_context_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_utils_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_auth_context_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/sockaddr_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) +deps_grpc_auth_context_test: $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) +-include $(GRPC_AUTH_CONTEXT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SOCKET_UTILS_TEST_SRC = \ - test/core/iomgr/socket_utils_test.c \ +GRPC_B64_TEST_SRC = \ + test/core/security/b64_test.c \ -SOCKET_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKET_UTILS_TEST_SRC)))) +GRPC_B64_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_B64_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/socket_utils_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_b64_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/socket_utils_test: $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_b64_test: $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/socket_utils_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_b64_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/socket_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/b64_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_socket_utils_test: $(SOCKET_UTILS_TEST_OBJS:.o=.dep) +deps_grpc_b64_test: $(GRPC_B64_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SOCKET_UTILS_TEST_OBJS:.o=.dep) +-include $(GRPC_B64_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TCP_CLIENT_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_client_posix_test.c \ +GRPC_BYTE_BUFFER_READER_TEST_SRC = \ + test/core/surface/byte_buffer_reader_test.c \ -TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC)))) +GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_client_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_posix_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_client_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/byte_buffer_reader_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) +deps_grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) +-include $(GRPC_BYTE_BUFFER_READER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TCP_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_posix_test.c \ +GRPC_CHANNEL_ARGS_TEST_SRC = \ + test/core/channel/channel_args_test.c \ -TCP_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC)))) +GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_channel_args_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_posix_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/channel/channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_tcp_posix_test: $(TCP_POSIX_TEST_OBJS:.o=.dep) +deps_grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_POSIX_TEST_OBJS:.o=.dep) +-include $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TCP_SERVER_POSIX_TEST_SRC = \ - test/core/iomgr/tcp_server_posix_test.c \ +GRPC_CHANNEL_STACK_TEST_SRC = \ + test/core/channel/channel_stack_test.c \ -TCP_SERVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC)))) +GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/tcp_server_posix_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_posix_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_server_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/channel/channel_stack_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) +deps_grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) +-include $(GRPC_CHANNEL_STACK_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TIME_AVERAGED_STATS_TEST_SRC = \ - test/core/iomgr/time_averaged_stats_test.c \ +GRPC_COMPLETION_QUEUE_TEST_SRC = \ + test/core/surface/completion_queue_test.c \ -TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC)))) +GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/time_averaged_stats_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/time_averaged_stats_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/time_averaged_stats_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/completion_queue_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) +deps_grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) +-include $(GRPC_COMPLETION_QUEUE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TIMEOUT_ENCODING_TEST_SRC = \ - test/core/transport/timeout_encoding_test.c \ +GRPC_CREATE_JWT_SRC = \ + test/core/security/create_jwt.c \ -TIMEOUT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC)))) +GRPC_CREATE_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREATE_JWT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timeout_encoding_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_create_jwt: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timeout_encoding_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_create_jwt endif -$(OBJDIR)/$(CONFIG)/test/core/transport/timeout_encoding_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/create_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) +deps_grpc_create_jwt: $(GRPC_CREATE_JWT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) +-include $(GRPC_CREATE_JWT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TIMER_HEAP_TEST_SRC = \ - test/core/iomgr/timer_heap_test.c \ +GRPC_CREDENTIALS_TEST_SRC = \ + test/core/security/credentials_test.c \ -TIMER_HEAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_HEAP_TEST_SRC)))) +GRPC_CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timer_heap_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_credentials_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timer_heap_test: $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_heap_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_credentials_test endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_heap_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_timer_heap_test: $(TIMER_HEAP_TEST_OBJS:.o=.dep) +deps_grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMER_HEAP_TEST_OBJS:.o=.dep) +-include $(GRPC_CREDENTIALS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TIMER_LIST_TEST_SRC = \ - test/core/iomgr/timer_list_test.c \ +GRPC_FETCH_OAUTH2_SRC = \ + test/core/security/fetch_oauth2.c \ -TIMER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_LIST_TEST_SRC)))) +GRPC_FETCH_OAUTH2_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/timer_list_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: openssl_dep_error else -$(BINDIR)/$(CONFIG)/timer_list_test: $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_list_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_list_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/fetch_oauth2.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_timer_list_test: $(TIMER_LIST_TEST_OBJS:.o=.dep) +deps_grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TIMER_LIST_TEST_OBJS:.o=.dep) +-include $(GRPC_FETCH_OAUTH2_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \ - test/core/transport/connectivity_state_test.c \ +GRPC_INVALID_CHANNEL_ARGS_TEST_SRC = \ + test/core/surface/invalid_channel_args_test.c \ -TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_CONNECTIVITY_STATE_TEST_SRC)))) +GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_INVALID_CHANNEL_ARGS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_connectivity_state_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_invalid_channel_args_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/connectivity_state_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/invalid_channel_args_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) +deps_grpc_invalid_channel_args_test: $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) +-include $(GRPC_INVALID_CHANNEL_ARGS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TRANSPORT_METADATA_TEST_SRC = \ - test/core/transport/metadata_test.c \ +GRPC_JSON_TOKEN_TEST_SRC = \ + test/core/security/json_token_test.c \ -TRANSPORT_METADATA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC)))) +GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_metadata_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_json_token_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_metadata_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_json_token_test endif -$(OBJDIR)/$(CONFIG)/test/core/transport/metadata_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/json_token_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) +deps_grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) +-include $(GRPC_JSON_TOKEN_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -TRANSPORT_SECURITY_TEST_SRC = \ - test/core/tsi/transport_security_test.c \ +GRPC_JWT_VERIFIER_TEST_SRC = \ + test/core/security/jwt_verifier_test.c \ -TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_SECURITY_TEST_SRC)))) +GRPC_JWT_VERIFIER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_JWT_VERIFIER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/transport_security_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_security_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test endif -$(OBJDIR)/$(CONFIG)/test/core/tsi/transport_security_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/jwt_verifier_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) +deps_grpc_jwt_verifier_test: $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) +-include $(GRPC_JWT_VERIFIER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -UDP_SERVER_TEST_SRC = \ - test/core/iomgr/udp_server_test.c \ +GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC = \ + test/core/security/print_google_default_creds_token.c \ -UDP_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UDP_SERVER_TEST_SRC)))) +GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/udp_server_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: openssl_dep_error else -$(BINDIR)/$(CONFIG)/udp_server_test: $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/udp_server_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token endif -$(OBJDIR)/$(CONFIG)/test/core/iomgr/udp_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/print_google_default_creds_token.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_udp_server_test: $(UDP_SERVER_TEST_OBJS:.o=.dep) +deps_grpc_print_google_default_creds_token: $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(UDP_SERVER_TEST_OBJS:.o=.dep) +-include $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -URI_FUZZER_TEST_SRC = \ - test/core/client_config/uri_fuzzer_test.c \ +GRPC_SECURITY_CONNECTOR_TEST_SRC = \ + test/core/security/security_connector_test.c \ -URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC)))) +GRPC_SECURITY_CONNECTOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_SECURITY_CONNECTOR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/uri_fuzzer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_security_connector_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_security_connector_test endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/security_connector_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS:.o=.dep) +deps_grpc_security_connector_test: $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(URI_FUZZER_TEST_OBJS:.o=.dep) +-include $(GRPC_SECURITY_CONNECTOR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -URI_PARSER_TEST_SRC = \ - test/core/client_config/uri_parser_test.c \ +GRPC_VERIFY_JWT_SRC = \ + test/core/security/verify_jwt.c \ -URI_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_PARSER_TEST_SRC)))) +GRPC_VERIFY_JWT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_VERIFY_JWT_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/uri_parser_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/grpc_verify_jwt: openssl_dep_error else -$(BINDIR)/$(CONFIG)/uri_parser_test: $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_parser_test + $(Q) $(LD) $(LDFLAGS) $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_verify_jwt endif -$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/verify_jwt.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_uri_parser_test: $(URI_PARSER_TEST_OBJS:.o=.dep) +deps_grpc_verify_jwt: $(GRPC_VERIFY_JWT_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(URI_PARSER_TEST_OBJS:.o=.dep) +-include $(GRPC_VERIFY_JWT_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ALARM_CPP_TEST_SRC = \ - test/cpp/common/alarm_cpp_test.cc \ +HPACK_PARSER_FUZZER_TEST_SRC = \ + test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ -ALARM_CPP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_CPP_TEST_SRC)))) +HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/alarm_cpp_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/alarm_cpp_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/alarm_cpp_test: $(PROTOBUF_DEP) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(ALARM_CPP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alarm_cpp_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/alarm_cpp_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_alarm_cpp_test: $(ALARM_CPP_TEST_OBJS:.o=.dep) +deps_hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ALARM_CPP_TEST_OBJS:.o=.dep) +-include $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -ASYNC_END2END_TEST_SRC = \ - test/cpp/end2end/async_end2end_test.cc \ +HPACK_PARSER_TEST_SRC = \ + test/core/transport/chttp2/hpack_parser_test.c \ -ASYNC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ASYNC_END2END_TEST_SRC)))) +HPACK_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/async_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_parser_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/async_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/async_end2end_test: $(PROTOBUF_DEP) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/async_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/async_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_async_end2end_test: $(ASYNC_END2END_TEST_OBJS:.o=.dep) +deps_hpack_parser_test: $(HPACK_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(ASYNC_END2END_TEST_OBJS:.o=.dep) +-include $(HPACK_PARSER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -AUTH_PROPERTY_ITERATOR_TEST_SRC = \ - test/cpp/common/auth_property_iterator_test.cc \ +HPACK_TABLE_TEST_SRC = \ + test/core/transport/chttp2/hpack_table_test.c \ -AUTH_PROPERTY_ITERATOR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(AUTH_PROPERTY_ITERATOR_TEST_SRC)))) +HPACK_TABLE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/hpack_table_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/auth_property_iterator_test: $(PROTOBUF_DEP) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/auth_property_iterator_test - -endif + $(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_table_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/auth_property_iterator_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_table_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_auth_property_iterator_test: $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +deps_hpack_table_test: $(HPACK_TABLE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(AUTH_PROPERTY_ITERATOR_TEST_OBJS:.o=.dep) +-include $(HPACK_TABLE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CHANNEL_ARGUMENTS_TEST_SRC = \ - test/cpp/common/channel_arguments_test.cc \ +HTTP_PARSER_TEST_SRC = \ + test/core/http/parser_test.c \ -CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC)))) +HTTP_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/channel_arguments_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_parser_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/channel_arguments_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/channel_arguments_test: $(PROTOBUF_DEP) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_parser_test: $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_arguments_test - -endif + $(Q) $(LD) $(LDFLAGS) $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_parser_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) +deps_http_parser_test: $(HTTP_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep) +-include $(HTTP_PARSER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CLI_CALL_TEST_SRC = \ - test/cpp/util/cli_call_test.cc \ +HTTP_REQUEST_FUZZER_TEST_SRC = \ + test/core/http/request_fuzzer.c \ -CLI_CALL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLI_CALL_TEST_SRC)))) +HTTP_REQUEST_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_REQUEST_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/cli_call_test: openssl_dep_error - -else - - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cli_call_test: protobuf_dep_error +$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/cli_call_test: $(PROTOBUF_DEP) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + + +$(BINDIR)/$(CONFIG)/http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cli_call_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/request_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cli_call_test: $(CLI_CALL_TEST_OBJS:.o=.dep) +deps_http_request_fuzzer_test: $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLI_CALL_TEST_OBJS:.o=.dep) +-include $(HTTP_REQUEST_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CLIENT_CRASH_TEST_SRC = \ - test/cpp/end2end/client_crash_test.cc \ +HTTP_RESPONSE_FUZZER_TEST_SRC = \ + test/core/http/response_fuzzer.c \ -CLIENT_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SRC)))) +HTTP_RESPONSE_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_RESPONSE_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_crash_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/client_crash_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/client_crash_test: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/response_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_client_crash_test: $(CLIENT_CRASH_TEST_OBJS:.o=.dep) +deps_http_response_fuzzer_test: $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLIENT_CRASH_TEST_OBJS:.o=.dep) +-include $(HTTP_RESPONSE_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CLIENT_CRASH_TEST_SERVER_SRC = \ - test/cpp/end2end/client_crash_test_server.cc \ +HTTPCLI_FORMAT_REQUEST_TEST_SRC = \ + test/core/http/format_request_test.c \ -CLIENT_CRASH_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CRASH_TEST_SERVER_SRC)))) +HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/client_crash_test_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpcli_format_request_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/client_crash_test_server: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/client_crash_test_server: $(PROTOBUF_DEP) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test_server - -endif + $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_format_request_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_crash_test_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/format_request_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_client_crash_test_server: $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +deps_httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CLIENT_CRASH_TEST_SERVER_OBJS:.o=.dep) +-include $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CODEGEN_TEST_FULL_SRC = \ - $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ - test/cpp/codegen/codegen_test_full.cc \ +HTTPCLI_TEST_SRC = \ + test/core/http/httpcli_test.c \ -CODEGEN_TEST_FULL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_FULL_SRC)))) +HTTPCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/codegen_test_full: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpcli_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/codegen_test_full: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/codegen_test_full: $(PROTOBUF_DEP) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/httpcli_test: $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_full - -endif + $(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/http/httpcli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_codegen_test_full: $(CODEGEN_TEST_FULL_OBJS:.o=.dep) +deps_httpcli_test: $(HTTPCLI_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CODEGEN_TEST_FULL_OBJS:.o=.dep) +-include $(HTTPCLI_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_full.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -CODEGEN_TEST_MINIMAL_SRC = \ - $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \ - test/cpp/codegen/codegen_test_minimal.cc \ - src/cpp/codegen/codegen_init.cc \ +HTTPSCLI_TEST_SRC = \ + test/core/http/httpscli_test.c \ -CODEGEN_TEST_MINIMAL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CODEGEN_TEST_MINIMAL_SRC)))) +HTTPSCLI_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTPSCLI_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/codegen_test_minimal: openssl_dep_error +$(BINDIR)/$(CONFIG)/httpscli_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/codegen_test_minimal: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/codegen_test_minimal: $(PROTOBUF_DEP) $(CODEGEN_TEST_MINIMAL_OBJS) +$(BINDIR)/$(CONFIG)/httpscli_test: $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_MINIMAL_OBJS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_minimal - -endif + $(Q) $(LD) $(LDFLAGS) $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpscli_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/control.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/payloads.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/services.o: - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o: - -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: - -$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: +$(OBJDIR)/$(CONFIG)/test/core/http/httpscli_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) +deps_httpscli_test: $(HTTPSCLI_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep) +-include $(HTTPSCLI_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc -CREDENTIALS_TEST_SRC = \ - test/cpp/client/credentials_test.cc \ +INIT_TEST_SRC = \ + test/core/surface/init_test.c \ -CREDENTIALS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CREDENTIALS_TEST_SRC)))) +INIT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INIT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/credentials_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/init_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/credentials_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/credentials_test: $(PROTOBUF_DEP) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/init_test: $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/credentials_test - -endif + $(Q) $(LD) $(LDFLAGS) $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/init_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/client/credentials_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/init_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_credentials_test: $(CREDENTIALS_TEST_OBJS:.o=.dep) +deps_init_test: $(INIT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CREDENTIALS_TEST_OBJS:.o=.dep) +-include $(INIT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_BYTE_BUFFER_TEST_SRC = \ - test/cpp/util/byte_buffer_test.cc \ +INTERNAL_API_CANARY_IOMGR_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -CXX_BYTE_BUFFER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_BYTE_BUFFER_TEST_SRC)))) +INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_byte_buffer_test: $(PROTOBUF_DEP) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test - -endif + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_byte_buffer_test: $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) +deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_BYTE_BUFFER_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_SLICE_TEST_SRC = \ - test/cpp/util/slice_test.cc \ +INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -CXX_SLICE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_SLICE_TEST_SRC)))) +INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_slice_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_slice_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_slice_test: $(PROTOBUF_DEP) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_slice_test - -endif + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/slice_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_slice_test: $(CXX_SLICE_TEST_OBJS:.o=.dep) +deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_SLICE_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_STRING_REF_TEST_SRC = \ - test/cpp/util/string_ref_test.cc \ +INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \ + test/core/internal_api_canaries/iomgr.c \ -CXX_STRING_REF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_STRING_REF_TEST_SRC)))) +INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_string_ref_test: $(PROTOBUF_DEP) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test - -endif + $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a +$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_string_ref_test: $(CXX_STRING_REF_TEST_OBJS:.o=.dep) +deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_STRING_REF_TEST_OBJS:.o=.dep) +-include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -CXX_TIME_TEST_SRC = \ - test/cpp/util/time_test.cc \ +INVALID_CALL_ARGUMENT_TEST_SRC = \ + test/core/end2end/invalid_call_argument_test.c \ -CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC)))) +INVALID_CALL_ARGUMENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INVALID_CALL_ARGUMENT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/invalid_call_argument_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test - -endif + $(Q) $(LD) $(LDFLAGS) $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/invalid_call_argument_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/invalid_call_argument_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep) +deps_invalid_call_argument_test: $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(CXX_TIME_TEST_OBJS:.o=.dep) +-include $(INVALID_CALL_ARGUMENT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -END2END_TEST_SRC = \ - test/cpp/end2end/end2end_test.cc \ +JSON_FUZZER_TEST_SRC = \ + test/core/json/fuzzer.c \ -END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(END2END_TEST_SRC)))) +JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_fuzzer_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/end2end_test: $(PROTOBUF_DEP) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/end2end_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_end2end_test: $(END2END_TEST_OBJS:.o=.dep) +deps_json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(END2END_TEST_OBJS:.o=.dep) +-include $(JSON_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GENERIC_END2END_TEST_SRC = \ - test/cpp/end2end/generic_end2end_test.cc \ +JSON_REWRITE_SRC = \ + test/core/json/json_rewrite.c \ -GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GENERIC_END2END_TEST_SRC)))) +JSON_REWRITE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/generic_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_rewrite: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/generic_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/generic_end2end_test: $(PROTOBUF_DEP) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_rewrite: $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_generic_end2end_test: $(GENERIC_END2END_TEST_OBJS:.o=.dep) +deps_json_rewrite: $(JSON_REWRITE_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GENERIC_END2END_TEST_OBJS:.o=.dep) +-include $(JSON_REWRITE_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GOLDEN_FILE_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc \ - test/cpp/codegen/golden_file_test.cc \ +JSON_REWRITE_TEST_SRC = \ + test/core/json/json_rewrite_test.c \ -GOLDEN_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOLDEN_FILE_TEST_SRC)))) +JSON_REWRITE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_REWRITE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/golden_file_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_rewrite_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/golden_file_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/golden_file_test: $(PROTOBUF_DEP) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_rewrite_test: $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test - -endif + $(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/compiler_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_rewrite_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_golden_file_test: $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +deps_json_rewrite_test: $(JSON_REWRITE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GOLDEN_FILE_TEST_OBJS:.o=.dep) +-include $(JSON_REWRITE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/codegen/golden_file_test.o: $(GENDIR)/src/proto/grpc/testing/compiler_test.pb.cc $(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.cc -GRPC_C_END2END_TEST_SRC = \ - test/c/end2end/end2end_test.cc \ +JSON_STREAM_ERROR_TEST_SRC = \ + test/core/json/json_stream_error_test.c \ -GRPC_C_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_END2END_TEST_SRC)))) +JSON_STREAM_ERROR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_STREAM_ERROR_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_stream_error_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_c_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_stream_error_test endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_stream_error_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_c_end2end_test: $(GRPC_C_END2END_TEST_OBJS:.o=.dep) +deps_json_stream_error_test: $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_END2END_TEST_OBJS:.o=.dep) +-include $(JSON_STREAM_ERROR_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_C_GENERIC_END2END_TEST_SRC = \ - test/c/end2end/generic_end2end_test.cc \ - test/c/end2end/id_serialization.cc \ +JSON_TEST_SRC = \ + test/core/json/json_test.c \ -GRPC_C_GENERIC_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_GENERIC_END2END_TEST_SRC)))) +JSON_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/json_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test: $(PROTOBUF_DEP) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/json_test: $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_C_GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_test endif -$(OBJDIR)/$(CONFIG)/test/c/end2end/generic_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/c/end2end/id_serialization.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/json/json_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_c_generic_end2end_test: $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) +deps_json_test: $(JSON_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_GENERIC_END2END_TEST_OBJS:.o=.dep) +-include $(JSON_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_C_PLUGIN_SRC = \ - src/compiler/c_plugin.cc \ - -GRPC_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_PLUGIN_SRC)))) +LAME_CLIENT_TEST_SRC = \ + test/core/surface/lame_client_test.c \ +LAME_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/lame_client_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_c_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_c_plugin: $(PROTOBUF_DEP) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/lame_client_test: $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_c_plugin + $(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lame_client_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/surface/lame_client_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_c_plugin: $(GRPC_C_PLUGIN_OBJS:.o=.dep) +deps_lame_client_test: $(LAME_CLIENT_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_C_PLUGIN_OBJS:.o=.dep) +-include $(LAME_CLIENT_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CLI_SRC = \ - test/cpp/util/grpc_cli.cc \ +LB_POLICIES_TEST_SRC = \ + test/core/client_config/lb_policies_test.c \ -GRPC_CLI_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CLI_SRC)))) +LB_POLICIES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LB_POLICIES_TEST_SRC)))) ifeq ($(NO_SECURE),true) -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/grpc_cli: openssl_dep_error - -else - - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +# You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpc_cli: protobuf_dep_error +$(BINDIR)/$(CONFIG)/lb_policies_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a + + +$(BINDIR)/$(CONFIG)/lb_policies_test: $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli - -endif + $(Q) $(LD) $(LDFLAGS) $(LB_POLICIES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lb_policies_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/lb_policies_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep) +deps_lb_policies_test: $(LB_POLICIES_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CLI_OBJS:.o=.dep) +-include $(LB_POLICIES_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CPP_PLUGIN_SRC = \ - src/compiler/cpp_plugin.cc \ - -GRPC_CPP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CPP_PLUGIN_SRC)))) +LOAD_FILE_TEST_SRC = \ + test/core/iomgr/load_file_test.c \ +LOAD_FILE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOAD_FILE_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/load_file_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: $(PROTOBUF_DEP) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/load_file_test: $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin + $(Q) $(LD) $(LDFLAGS) $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/load_file_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/cpp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/load_file_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_cpp_plugin: $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) +deps_load_file_test: $(LOAD_FILE_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) +-include $(LOAD_FILE_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CSHARP_PLUGIN_SRC = \ - src/compiler/csharp_plugin.cc \ - -GRPC_CSHARP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CSHARP_PLUGIN_SRC)))) +LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \ + test/core/network_benchmarks/low_level_ping_pong.c \ +LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: $(PROTOBUF_DEP) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin + $(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark endif -$(OBJDIR)/$(CONFIG)/src/compiler/csharp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/network_benchmarks/low_level_ping_pong.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_csharp_plugin: $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) +deps_low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) +-include $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_NODE_PLUGIN_SRC = \ - src/compiler/node_plugin.cc \ - -GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) +MESSAGE_COMPRESS_TEST_SRC = \ + test/core/compression/message_compress_test.c \ +MESSAGE_COMPRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/message_compress_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin + $(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/message_compress_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/compression/message_compress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +deps_message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) +-include $(MESSAGE_COMPRESS_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_OBJECTIVE_C_PLUGIN_SRC = \ - src/compiler/objective_c_plugin.cc \ - -GRPC_OBJECTIVE_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_OBJECTIVE_C_PLUGIN_SRC)))) +MLOG_TEST_SRC = \ + test/core/census/mlog_test.c \ +MLOG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MLOG_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/mlog_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: $(PROTOBUF_DEP) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin + $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/objective_c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_objective_c_plugin: $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) +deps_mlog_test: $(MLOG_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) +-include $(MLOG_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_PYTHON_PLUGIN_SRC = \ - src/compiler/python_plugin.cc \ - -GRPC_PYTHON_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PYTHON_PLUGIN_SRC)))) +MULTIPLE_SERVER_QUEUES_TEST_SRC = \ + test/core/end2end/multiple_server_queues_test.c \ +MULTIPLE_SERVER_QUEUES_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MULTIPLE_SERVER_QUEUES_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/multiple_server_queues_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_python_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_python_plugin: $(PROTOBUF_DEP) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin + $(Q) $(LD) $(LDFLAGS) $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/multiple_server_queues_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/python_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/multiple_server_queues_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_python_plugin: $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) +deps_multiple_server_queues_test: $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) +-include $(MULTIPLE_SERVER_QUEUES_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_RUBY_PLUGIN_SRC = \ - src/compiler/ruby_plugin.cc \ - -GRPC_RUBY_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_RUBY_PLUGIN_SRC)))) +MURMUR_HASH_TEST_SRC = \ + test/core/support/murmur_hash_test.c \ +MURMUR_HASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC)))) +ifeq ($(NO_SECURE),true) +# You can't build secure targets if you don't have OpenSSL. -ifeq ($(NO_PROTOBUF),true) +$(BINDIR)/$(CONFIG)/murmur_hash_test: openssl_dep_error -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. +else -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: protobuf_dep_error -else -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: $(PROTOBUF_DEP) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" +$(BINDIR)/$(CONFIG)/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin + $(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/murmur_hash_test endif -$(OBJDIR)/$(CONFIG)/src/compiler/ruby_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a +$(OBJDIR)/$(CONFIG)/test/core/support/murmur_hash_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpc_ruby_plugin: $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) +deps_murmur_hash_test: $(MURMUR_HASH_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) +-include $(MURMUR_HASH_TEST_OBJS:.o=.dep) +endif endif # Force compilation of proto files before building code that could potentially depend on them -GRPCLB_API_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ - test/cpp/grpclb/grpclb_api_test.cc \ +NANOPB_FUZZER_RESPONSE_TEST_SRC = \ + test/core/nanopb/fuzzer_response.c \ -GRPCLB_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_API_TEST_SRC)))) +NANOPB_FUZZER_RESPONSE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_RESPONSE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpclb_api_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpclb_api_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpclb_api_test: $(PROTOBUF_DEP) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_api_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a - -$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a +$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_response.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpclb_api_test: $(GRPCLB_API_TEST_OBJS:.o=.dep) +deps_nanopb_fuzzer_response_test: $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPCLB_API_TEST_OBJS:.o=.dep) +-include $(NANOPB_FUZZER_RESPONSE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -GRPCLB_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \ - test/cpp/grpclb/grpclb_test.cc \ +NANOPB_FUZZER_SERVERLIST_TEST_SRC = \ + test/core/nanopb/fuzzer_serverlist.c \ -GRPCLB_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_TEST_SRC)))) +NANOPB_FUZZER_SERVERLIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NANOPB_FUZZER_SERVERLIST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/grpclb_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpclb_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpclb_test: $(PROTOBUF_DEP) $(GRPCLB_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a +$(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a - -$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_test.o: $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a +$(OBJDIR)/$(CONFIG)/test/core/nanopb/fuzzer_serverlist.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_grpclb_test: $(GRPCLB_TEST_OBJS:.o=.dep) +deps_nanopb_fuzzer_serverlist_test: $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(GRPCLB_TEST_OBJS:.o=.dep) +-include $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc -HYBRID_END2END_TEST_SRC = \ - test/cpp/end2end/hybrid_end2end_test.cc \ +NO_SERVER_TEST_SRC = \ + test/core/end2end/no_server_test.c \ -HYBRID_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HYBRID_END2END_TEST_SRC)))) +NO_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/no_server_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/hybrid_end2end_test: $(PROTOBUF_DEP) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/no_server_test: $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/hybrid_end2end_test - -endif + $(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/no_server_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/hybrid_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/no_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_hybrid_end2end_test: $(HYBRID_END2END_TEST_OBJS:.o=.dep) +deps_no_server_test: $(NO_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(HYBRID_END2END_TEST_OBJS:.o=.dep) +-include $(NO_SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them +RESOLVE_ADDRESS_TEST_SRC = \ + test/core/iomgr/resolve_address_test.c \ + +RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/interop_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/resolve_address_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/interop_client: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/interop_client: $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_client + $(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_test endif -endif +$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep) +endif +endif # Force compilation of proto files before building code that could potentially depend on them +SECURE_CHANNEL_CREATE_TEST_SRC = \ + test/core/surface/secure_channel_create_test.c \ + +SECURE_CHANNEL_CREATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_CHANNEL_CREATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/interop_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_channel_create_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/interop_server: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server + $(Q) $(LD) $(LDFLAGS) $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_channel_create_test endif -endif +$(OBJDIR)/$(CONFIG)/test/core/surface/secure_channel_create_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +deps_secure_channel_create_test: $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SECURE_CHANNEL_CREATE_TEST_OBJS:.o=.dep) +endif +endif # Force compilation of proto files before building code that could potentially depend on them -INTEROP_TEST_SRC = \ - test/cpp/interop/interop_test.cc \ +SECURE_ENDPOINT_TEST_SRC = \ + test/core/security/secure_endpoint_test.c \ -INTEROP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTEROP_TEST_SRC)))) +SECURE_ENDPOINT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/interop_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/secure_endpoint_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/interop_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/interop_test: $(PROTOBUF_DEP) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_endpoint_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/security/secure_endpoint_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_interop_test: $(INTEROP_TEST_OBJS:.o=.dep) +deps_secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(INTEROP_TEST_OBJS:.o=.dep) +-include $(SECURE_ENDPOINT_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -JSON_RUN_LOCALHOST_SRC = \ - test/cpp/qps/json_run_localhost.cc \ +SEQUENTIAL_CONNECTIVITY_TEST_SRC = \ + test/core/surface/sequential_connectivity_test.c \ -JSON_RUN_LOCALHOST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_RUN_LOCALHOST_SRC)))) +SEQUENTIAL_CONNECTIVITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SEQUENTIAL_CONNECTIVITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/json_run_localhost: openssl_dep_error +$(BINDIR)/$(CONFIG)/sequential_connectivity_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/json_run_localhost: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/json_run_localhost: $(PROTOBUF_DEP) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/json_run_localhost - -endif + $(Q) $(LD) $(LDFLAGS) $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sequential_connectivity_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/json_run_localhost.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/surface/sequential_connectivity_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_json_run_localhost: $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) +deps_sequential_connectivity_test: $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(JSON_RUN_LOCALHOST_OBJS:.o=.dep) +-include $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -METRICS_CLIENT_SRC = \ - $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ - test/cpp/interop/metrics_client.cc \ +SERVER_CHTTP2_TEST_SRC = \ + test/core/surface/server_chttp2_test.c \ -METRICS_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(METRICS_CLIENT_SRC)))) +SERVER_CHTTP2_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CHTTP2_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/metrics_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_chttp2_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/metrics_client: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/metrics_client: $(PROTOBUF_DEP) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/metrics_client - -endif + $(Q) $(LD) $(LDFLAGS) $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_chttp2_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/surface/server_chttp2_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_metrics_client: $(METRICS_CLIENT_OBJS:.o=.dep) +deps_server_chttp2_test: $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(METRICS_CLIENT_OBJS:.o=.dep) +-include $(SERVER_CHTTP2_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/metrics_client.o: $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc -MOCK_TEST_SRC = \ - test/cpp/end2end/mock_test.cc \ +SERVER_FUZZER_SRC = \ + test/core/end2end/fuzzers/server_fuzzer.c \ -MOCK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(MOCK_TEST_SRC)))) +SERVER_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_FUZZER_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/mock_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_fuzzer: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/mock_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/mock_test: $(PROTOBUF_DEP) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_fuzzer: $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/mock_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/server_fuzzer endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/mock_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/end2end/fuzzers/server_fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_mock_test: $(MOCK_TEST_OBJS:.o=.dep) +deps_server_fuzzer: $(SERVER_FUZZER_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(MOCK_TEST_OBJS:.o=.dep) +-include $(SERVER_FUZZER_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -PROTO_SERVER_REFLECTION_TEST_SRC = \ - test/cpp/end2end/proto_server_reflection_test.cc \ - test/cpp/util/proto_reflection_descriptor_database.cc \ +SERVER_TEST_SRC = \ + test/core/surface/server_test.c \ -PROTO_SERVER_REFLECTION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PROTO_SERVER_REFLECTION_TEST_SRC)))) +SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/server_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/server_test: $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o: $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/surface/server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_proto_server_reflection_test: $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) +deps_server_test: $(SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep) +-include $(SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -QPS_INTERARRIVAL_TEST_SRC = \ - test/cpp/qps/qps_interarrival_test.cc \ +SET_INITIAL_CONNECT_STRING_TEST_SRC = \ + test/core/client_config/set_initial_connect_string_test.c \ -QPS_INTERARRIVAL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_INTERARRIVAL_TEST_SRC)))) +SET_INITIAL_CONNECT_STRING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SET_INITIAL_CONNECT_STRING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_interarrival_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/qps_interarrival_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/qps_interarrival_test: $(PROTOBUF_DEP) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_interarrival_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SET_INITIAL_CONNECT_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/set_initial_connect_string_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_interarrival_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/set_initial_connect_string_test.o: $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_qps_interarrival_test: $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) +deps_set_initial_connect_string_test: $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_INTERARRIVAL_TEST_OBJS:.o=.dep) +-include $(SET_INITIAL_CONNECT_STRING_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -QPS_JSON_DRIVER_SRC = \ - test/cpp/qps/qps_json_driver.cc \ +SOCKADDR_RESOLVER_TEST_SRC = \ + test/core/client_config/resolvers/sockaddr_resolver_test.c \ -QPS_JSON_DRIVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_JSON_DRIVER_SRC)))) +SOCKADDR_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_RESOLVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_json_driver: openssl_dep_error +$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/qps_json_driver: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/qps_json_driver: $(PROTOBUF_DEP) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_json_driver - -endif + $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_resolver_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_json_driver.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/resolvers/sockaddr_resolver_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_qps_json_driver: $(QPS_JSON_DRIVER_OBJS:.o=.dep) +deps_sockaddr_resolver_test: $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_JSON_DRIVER_OBJS:.o=.dep) +-include $(SOCKADDR_RESOLVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -QPS_OPENLOOP_TEST_SRC = \ - test/cpp/qps/qps_openloop_test.cc \ +SOCKADDR_UTILS_TEST_SRC = \ + test/core/iomgr/sockaddr_utils_test.c \ -QPS_OPENLOOP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_OPENLOOP_TEST_SRC)))) +SOCKADDR_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_openloop_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/sockaddr_utils_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/qps_openloop_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/qps_openloop_test: $(PROTOBUF_DEP) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_openloop_test - -endif + $(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_utils_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_openloop_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/sockaddr_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_qps_openloop_test: $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) +deps_sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_OPENLOOP_TEST_OBJS:.o=.dep) +-include $(SOCKADDR_UTILS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -QPS_WORKER_SRC = \ - test/cpp/qps/worker.cc \ +SOCKET_UTILS_TEST_SRC = \ + test/core/iomgr/socket_utils_test.c \ -QPS_WORKER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(QPS_WORKER_SRC)))) +SOCKET_UTILS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SOCKET_UTILS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/qps_worker: openssl_dep_error +$(BINDIR)/$(CONFIG)/socket_utils_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/qps_worker: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/qps_worker: $(PROTOBUF_DEP) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/socket_utils_test: $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_worker - -endif + $(Q) $(LD) $(LDFLAGS) $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/socket_utils_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/worker.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/socket_utils_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_qps_worker: $(QPS_WORKER_OBJS:.o=.dep) +deps_socket_utils_test: $(SOCKET_UTILS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(QPS_WORKER_OBJS:.o=.dep) +-include $(SOCKET_UTILS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -RECONNECT_INTEROP_CLIENT_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/reconnect_interop_client.cc \ +TCP_CLIENT_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_client_posix_test.c \ -RECONNECT_INTEROP_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_CLIENT_SRC)))) +TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/reconnect_interop_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_client_posix_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/reconnect_interop_client: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/reconnect_interop_client: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_client - -endif + $(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_posix_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_client_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_reconnect_interop_client: $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) +deps_tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) +-include $(TCP_CLIENT_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -RECONNECT_INTEROP_SERVER_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/reconnect_interop_server.cc \ +TCP_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_posix_test.c \ -RECONNECT_INTEROP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RECONNECT_INTEROP_SERVER_SRC)))) +TCP_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/reconnect_interop_server: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_posix_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/reconnect_interop_server: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/reconnect_interop_server: $(PROTOBUF_DEP) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_server - -endif + $(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_posix_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_reconnect_interop_server: $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) +deps_tcp_posix_test: $(TCP_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) +-include $(TCP_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -SECURE_AUTH_CONTEXT_TEST_SRC = \ - test/cpp/common/secure_auth_context_test.cc \ +TCP_SERVER_POSIX_TEST_SRC = \ + test/core/iomgr/tcp_server_posix_test.c \ -SECURE_AUTH_CONTEXT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_AUTH_CONTEXT_TEST_SRC)))) +TCP_SERVER_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_auth_context_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/tcp_server_posix_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/secure_auth_context_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/secure_auth_context_test: $(PROTOBUF_DEP) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_auth_context_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_posix_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/common/secure_auth_context_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/tcp_server_posix_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_auth_context_test: $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +deps_tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_AUTH_CONTEXT_TEST_OBJS:.o=.dep) +-include $(TCP_SERVER_POSIX_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ - test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ +TIME_AVERAGED_STATS_TEST_SRC = \ + test/core/iomgr/time_averaged_stats_test.c \ -SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_SYNC_UNARY_PING_PONG_TEST_SRC)))) +TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/time_averaged_stats_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: $(PROTOBUF_DEP) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/time_averaged_stats_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/secure_sync_unary_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/time_averaged_stats_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_secure_sync_unary_ping_pong_test: $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) +deps_time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) +-include $(TIME_AVERAGED_STATS_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_BUILDER_PLUGIN_TEST_SRC = \ - test/cpp/end2end/server_builder_plugin_test.cc \ +TIMEOUT_ENCODING_TEST_SRC = \ + test/core/transport/timeout_encoding_test.c \ -SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC)))) +TIMEOUT_ENCODING_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timeout_encoding_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timeout_encoding_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/timeout_encoding_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) +deps_timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep) +-include $(TIMEOUT_ENCODING_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_CRASH_TEST_SRC = \ - test/cpp/end2end/server_crash_test.cc \ +TIMER_HEAP_TEST_SRC = \ + test/core/iomgr/timer_heap_test.c \ -SERVER_CRASH_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_SRC)))) +TIMER_HEAP_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_HEAP_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_crash_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/timer_heap_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/server_crash_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/server_crash_test: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timer_heap_test: $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_heap_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_heap_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_crash_test: $(SERVER_CRASH_TEST_OBJS:.o=.dep) +deps_timer_heap_test: $(TIMER_HEAP_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_CRASH_TEST_OBJS:.o=.dep) +-include $(TIMER_HEAP_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SERVER_CRASH_TEST_CLIENT_SRC = \ - test/cpp/end2end/server_crash_test_client.cc \ +TIMER_LIST_TEST_SRC = \ + test/core/iomgr/timer_list_test.c \ -SERVER_CRASH_TEST_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_CRASH_TEST_CLIENT_SRC)))) +TIMER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TIMER_LIST_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/server_crash_test_client: openssl_dep_error +$(BINDIR)/$(CONFIG)/timer_list_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/server_crash_test_client: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/server_crash_test_client: $(PROTOBUF_DEP) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/timer_list_test: $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test_client - -endif + $(Q) $(LD) $(LDFLAGS) $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_list_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_crash_test_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/timer_list_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_server_crash_test_client: $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) +deps_timer_list_test: $(TIMER_LIST_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SERVER_CRASH_TEST_CLIENT_OBJS:.o=.dep) +-include $(TIMER_LIST_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -SHUTDOWN_TEST_SRC = \ - test/cpp/end2end/shutdown_test.cc \ +TRANSPORT_CONNECTIVITY_STATE_TEST_SRC = \ + test/core/transport/connectivity_state_test.c \ -SHUTDOWN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SHUTDOWN_TEST_SRC)))) +TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_CONNECTIVITY_STATE_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/shutdown_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/shutdown_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/shutdown_test: $(PROTOBUF_DEP) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_connectivity_state_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/shutdown_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/connectivity_state_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_shutdown_test: $(SHUTDOWN_TEST_OBJS:.o=.dep) +deps_transport_connectivity_state_test: $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(SHUTDOWN_TEST_OBJS:.o=.dep) +-include $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -STATUS_TEST_SRC = \ - test/cpp/util/status_test.cc \ +TRANSPORT_METADATA_TEST_SRC = \ + test/core/transport/metadata_test.c \ -STATUS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC)))) +TRANSPORT_METADATA_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/status_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_metadata_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/status_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/status_test: $(PROTOBUF_DEP) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_metadata_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/status_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/transport/metadata_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_status_test: $(STATUS_TEST_OBJS:.o=.dep) +deps_transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(STATUS_TEST_OBJS:.o=.dep) +-include $(TRANSPORT_METADATA_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -STREAMING_THROUGHPUT_TEST_SRC = \ - test/cpp/end2end/streaming_throughput_test.cc \ +TRANSPORT_SECURITY_TEST_SRC = \ + test/core/tsi/transport_security_test.c \ -STREAMING_THROUGHPUT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STREAMING_THROUGHPUT_TEST_SRC)))) +TRANSPORT_SECURITY_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TRANSPORT_SECURITY_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/streaming_throughput_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/transport_security_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/streaming_throughput_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/streaming_throughput_test: $(PROTOBUF_DEP) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/streaming_throughput_test - -endif + $(Q) $(LD) $(LDFLAGS) $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_security_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/streaming_throughput_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/tsi/transport_security_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_streaming_throughput_test: $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) +deps_transport_security_test: $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(STREAMING_THROUGHPUT_TEST_OBJS:.o=.dep) +-include $(TRANSPORT_SECURITY_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -STRESS_TEST_SRC = \ - $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc \ - $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \ - test/cpp/interop/interop_client.cc \ - test/cpp/interop/stress_interop_client.cc \ - test/cpp/interop/stress_test.cc \ - test/cpp/util/metrics_server.cc \ +UDP_SERVER_TEST_SRC = \ + test/core/iomgr/udp_server_test.c \ -STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(STRESS_TEST_SRC)))) +UDP_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(UDP_SERVER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/stress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/udp_server_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/stress_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/stress_test: $(PROTOBUF_DEP) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/udp_server_test: $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test - -endif + $(Q) $(LD) $(LDFLAGS) $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/udp_server_test endif -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/empty.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/messages.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/metrics.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a - -$(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/iomgr/udp_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_stress_test: $(STRESS_TEST_OBJS:.o=.dep) +deps_udp_server_test: $(UDP_SERVER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(STRESS_TEST_OBJS:.o=.dep) +-include $(UDP_SERVER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them - $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc - $(OBJDIR)/$(CONFIG)/test/cpp/util/metrics_server.o: $(GENDIR)/src/proto/grpc/testing/empty.pb.cc $(GENDIR)/src/proto/grpc/testing/empty.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.pb.cc $(GENDIR)/src/proto/grpc/testing/metrics.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc -THREAD_STRESS_TEST_SRC = \ - test/cpp/end2end/thread_stress_test.cc \ +URI_FUZZER_TEST_SRC = \ + test/core/client_config/uri_fuzzer_test.c \ -THREAD_STRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(THREAD_STRESS_TEST_SRC)))) +URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/thread_stress_test: openssl_dep_error +$(BINDIR)/$(CONFIG)/uri_fuzzer_test: openssl_dep_error else - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/thread_stress_test: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/thread_stress_test: $(PROTOBUF_DEP) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_stress_test - -endif + $(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test endif -$(OBJDIR)/$(CONFIG)/test/cpp/end2end/thread_stress_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_thread_stress_test: $(THREAD_STRESS_TEST_OBJS:.o=.dep) +deps_uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(THREAD_STRESS_TEST_OBJS:.o=.dep) +-include $(URI_FUZZER_TEST_OBJS:.o=.dep) endif endif # Force compilation of proto files before building code that could potentially depend on them -PUBLIC_HEADERS_MUST_BE_C89_SRC = \ - test/core/surface/public_headers_must_be_c89.c \ +URI_PARSER_TEST_SRC = \ + test/core/client_config/uri_parser_test.c \ -PUBLIC_HEADERS_MUST_BE_C89_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PUBLIC_HEADERS_MUST_BE_C89_SRC)))) +URI_PARSER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_PARSER_TEST_SRC)))) ifeq ($(NO_SECURE),true) # You can't build secure targets if you don't have OpenSSL. -$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: openssl_dep_error +$(BINDIR)/$(CONFIG)/uri_parser_test: openssl_dep_error else -$(BINDIR)/$(CONFIG)/public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a +$(BINDIR)/$(CONFIG)/uri_parser_test: $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 + $(Q) $(LD) $(LDFLAGS) $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_parser_test endif -$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o: $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a -$(OBJDIR)/$(CONFIG)/test/core/surface/public_headers_must_be_c89.o : test/core/surface/public_headers_must_be_c89.c - $(E) "[C] Compiling $<" - $(Q) mkdir -p `dirname $@` - $(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< +$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_parser_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a -deps_public_headers_must_be_c89: $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) +deps_uri_parser_test: $(URI_PARSER_TEST_OBJS:.o=.dep) ifneq ($(NO_SECURE),true) ifneq ($(NO_DEPS),true) --include $(PUBLIC_HEADERS_MUST_BE_C89_OBJS:.o=.dep) +-include $(URI_PARSER_TEST_OBJS:.o=.dep) endif endif @@ -16427,7 +16494,7 @@ test/cpp/util/test_config.cc: $(OPENSSL_DEP) test/cpp/util/test_credentials_provider.cc: $(OPENSSL_DEP) endif -.PHONY: all all strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx buildtests_c buildtests_cxx test test test_c test_cxx test_c test_cxx install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean +.PHONY: all all strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_core buildtests_cxx buildtests_c buildtests_cxx test test test_c test_core test_cxx test_c test_cxx install install_c install_core install_cxx install-headers install-headers_c install-headers_core install-headers_cxx install-shared install-shared_c install-shared_core install-shared_cxx install-static install-static_c install-static_core install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_core strip-shared_core strip-static_core strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_core dep_cxx bins_dep_c bins_dep_core bins_dep_cxx clean .PHONY: printvars printvars: diff --git a/build.yaml b/build.yaml index e1df3d5011968..84f1e19c18bae 100644 --- a/build.yaml +++ b/build.yaml @@ -788,53 +788,6 @@ filegroups: uses: - grpc++_codegen_proto libs: -- name: gpr - build: all - language: c - filegroups: - - gpr_base - secure: false - vs_project_guid: '{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}' -- name: gpr_test_util - build: private - language: c - headers: - - test/core/util/test_config.h - src: - - test/core/util/test_config.c - deps: - - gpr - secure: false - vs_project_guid: '{EAB0A629-17A9-44DB-B5FF-E91A721FE037}' -- name: grpc - build: all - language: c - src: - - src/core/lib/surface/init.c - baselib: true - deps_linkage: static - dll: true - filegroups: - - grpc_base - - grpc_transport_chttp2_server_secure - - grpc_transport_chttp2_client_secure - - grpc_transport_chttp2_server_insecure - - grpc_transport_chttp2_client_insecure - - grpc_lb_policy_grpclb - - grpc_lb_policy_pick_first - - grpc_lb_policy_round_robin - - grpc_lb_policy_grpclb - - grpc_resolver_dns_native - - grpc_resolver_sockaddr - - grpc_load_reporting - - grpc_secure - - census - generate_plugin_registry: true - secure: true - vs_packages: - - grpc.dependencies.openssl - - grpc.dependencies.zlib - vs_project_guid: '{29D16885-7228-4C31-81ED-5F9187C7F2A9}' - name: grpc_c build: all language: c @@ -920,123 +873,6 @@ libs: - gpr uses: - nanopb -- name: grpc_cronet - build: all - language: c - src: - - src/core/lib/surface/init.c - baselib: true - deps_linkage: static - dll: true - filegroups: - - grpc_base - - grpc_transport_cronet_client_secure - - grpc_transport_chttp2_client_secure - generate_plugin_registry: true - platforms: - - linux - secure: true -- name: grpc_dll - build: private - language: c - src: [] - deps: - - gpr - - grpc - build_system: - - visual_studio - deps_linkage: static - dll_def: grpc.def - vs_config_type: DynamicLibrary - vs_packages: - - grpc.dependencies.openssl - - grpc.dependencies.zlib - vs_project_guid: '{A2F6CBBA-A553-41B3-A7DE-F26DECCC27F0}' - vs_props: - - zlib - - openssl - - winsock - - global -- name: grpc_test_util - build: private - language: c - headers: - - test/core/end2end/data/ssl_test_data.h - - test/core/security/oauth2_utils.h - src: - - test/core/end2end/data/client_certs.c - - test/core/end2end/data/server1_cert.c - - test/core/end2end/data/server1_key.c - - test/core/end2end/data/test_root_cert.c - - test/core/security/oauth2_utils.c - deps: - - gpr_test_util - - gpr - - grpc - filegroups: - - grpc_test_util_base - - grpc_base - vs_project_guid: '{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}' -- name: grpc_test_util_unsecure - build: private - language: c - deps: - - gpr - - gpr_test_util - - grpc_unsecure - filegroups: - - grpc_test_util_base - secure: false - vs_project_guid: '{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}' -- name: grpc_unsecure - build: all - language: c - src: - - src/core/lib/surface/init.c - - src/core/lib/surface/init_unsecure.c - baselib: true - deps_linkage: static - dll: true - filegroups: - - grpc_base - - grpc_transport_chttp2_server_insecure - - grpc_transport_chttp2_client_insecure - - grpc_resolver_dns_native - - grpc_resolver_sockaddr - - grpc_load_reporting - - grpc_lb_policy_grpclb - - grpc_lb_policy_pick_first - - grpc_lb_policy_round_robin - - grpc_lb_policy_grpclb - - census - generate_plugin_registry: true - secure: false - vs_project_guid: '{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}' -- name: reconnect_server - build: private - language: c - headers: - - test/core/util/reconnect_server.h - src: - - test/core/util/reconnect_server.c - deps: - - test_tcp_server - - grpc_test_util - - grpc - - gpr_test_util - - gpr -- name: test_tcp_server - build: private - language: c - headers: - - test/core/util/test_tcp_server.h - src: - - test/core/util/test_tcp_server.c - deps: - - grpc_test_util - - grpc - - gpr_test_util - - gpr - name: grpc++ build: all language: c++ @@ -1282,369 +1118,617 @@ libs: - grpc_test_util - grpc++_test_util - grpc++ -- name: grpc_csharp_ext +- name: gpr build: all - language: csharp + language: core + filegroups: + - gpr_base + secure: false + vs_project_guid: '{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}' +- name: gpr_test_util + build: private + language: core + headers: + - test/core/util/test_config.h src: - - src/csharp/ext/grpc_csharp_ext.c + - test/core/util/test_config.c deps: - - grpc - gpr - LDFLAGS: $(if $(subst Linux,,$(SYSTEM)),,-Wl$(comma)-wrap$(comma)memcpy) + secure: false + vs_project_guid: '{EAB0A629-17A9-44DB-B5FF-E91A721FE037}' +- name: grpc + build: all + language: core + src: + - src/core/lib/surface/init.c + baselib: true deps_linkage: static - dll: only + dll: true + filegroups: + - grpc_base + - grpc_transport_chttp2_server_secure + - grpc_transport_chttp2_client_secure + - grpc_transport_chttp2_server_insecure + - grpc_transport_chttp2_client_insecure + - grpc_lb_policy_grpclb + - grpc_lb_policy_pick_first + - grpc_lb_policy_round_robin + - grpc_lb_policy_grpclb + - grpc_resolver_dns_native + - grpc_resolver_sockaddr + - grpc_load_reporting + - grpc_secure + - census + generate_plugin_registry: true + secure: true + vs_packages: + - grpc.dependencies.openssl + - grpc.dependencies.zlib + vs_project_guid: '{29D16885-7228-4C31-81ED-5F9187C7F2A9}' +- name: grpc_cronet + build: all + language: core + src: + - src/core/lib/surface/init.c + baselib: true + deps_linkage: static + dll: true + filegroups: + - grpc_base + - grpc_transport_cronet_client_secure + - grpc_transport_chttp2_client_secure + generate_plugin_registry: true + platforms: + - linux + secure: true +- name: grpc_dll + build: private + language: core + src: [] + deps: + - gpr + - grpc + build_system: + - visual_studio + deps_linkage: static + dll_def: grpc.def vs_config_type: DynamicLibrary vs_packages: - grpc.dependencies.openssl - grpc.dependencies.zlib - vs_project_guid: '{D64C6D63-4458-4A88-AB38-35678384A7E4}' + vs_project_guid: '{A2F6CBBA-A553-41B3-A7DE-F26DECCC27F0}' vs_props: - zlib - openssl - winsock - global -targets: -- name: alarm_test - build: test - language: c +- name: grpc_test_util + build: private + language: core + headers: + - test/core/end2end/data/ssl_test_data.h + - test/core/security/oauth2_utils.h src: - - test/core/surface/alarm_test.c + - test/core/end2end/data/client_certs.c + - test/core/end2end/data/server1_cert.c + - test/core/end2end/data/server1_key.c + - test/core/end2end/data/test_root_cert.c + - test/core/security/oauth2_utils.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: algorithm_test - build: test - language: c + - grpc + filegroups: + - grpc_test_util_base + - grpc_base + vs_project_guid: '{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}' +- name: grpc_test_util_unsecure + build: private + language: core + deps: + - gpr + - gpr_test_util + - grpc_unsecure + filegroups: + - grpc_test_util_base + secure: false + vs_project_guid: '{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}' +- name: grpc_unsecure + build: all + language: core src: - - test/core/compression/algorithm_test.c + - src/core/lib/surface/init.c + - src/core/lib/surface/init_unsecure.c + baselib: true + deps_linkage: static + dll: true + filegroups: + - grpc_base + - grpc_transport_chttp2_server_insecure + - grpc_transport_chttp2_client_insecure + - grpc_resolver_dns_native + - grpc_resolver_sockaddr + - grpc_load_reporting + - grpc_lb_policy_grpclb + - grpc_lb_policy_pick_first + - grpc_lb_policy_round_robin + - grpc_lb_policy_grpclb + - census + generate_plugin_registry: true + secure: false + vs_project_guid: '{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}' +- name: reconnect_server + build: private + language: core + headers: + - test/core/util/reconnect_server.h + src: + - test/core/util/reconnect_server.c deps: + - test_tcp_server - grpc_test_util - grpc - gpr_test_util - gpr -- name: alloc_test - build: test - language: c +- name: test_tcp_server + build: private + language: core + headers: + - test/core/util/test_tcp_server.h src: - - test/core/support/alloc_test.c + - test/core/util/test_tcp_server.c deps: + - grpc_test_util + - grpc - gpr_test_util - gpr -- name: alpn_test - build: test - language: c +- name: grpc_csharp_ext + build: all + language: csharp src: - - test/core/transport/chttp2/alpn_test.c + - src/csharp/ext/grpc_csharp_ext.c deps: - - grpc_test_util - grpc - - gpr_test_util - gpr -- name: api_fuzzer - build: fuzzer - language: c + LDFLAGS: $(if $(subst Linux,,$(SYSTEM)),,-Wl$(comma)-wrap$(comma)memcpy) + deps_linkage: static + dll: only + vs_config_type: DynamicLibrary + vs_packages: + - grpc.dependencies.openssl + - grpc.dependencies.zlib + vs_project_guid: '{D64C6D63-4458-4A88-AB38-35678384A7E4}' + vs_props: + - zlib + - openssl + - winsock + - global +targets: +- name: alarm_cpp_test + gtest: true + build: test + language: c++ src: - - test/core/end2end/fuzzers/api_fuzzer.c + - test/cpp/common/alarm_cpp_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr - corpus_dirs: - - test/core/end2end/fuzzers/api_fuzzer_corpus - dict: test/core/end2end/fuzzers/api_fuzzer.dictionary - maxlen: 2048 -- name: bad_server_response_test +- name: async_end2end_test + gtest: true build: test - language: c + language: c++ src: - - test/core/end2end/bad_server_response_test.c + - test/cpp/end2end/async_end2end_test.cc deps: - - test_tcp_server + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: bin_decoder_test +- name: auth_property_iterator_test + gtest: true build: test - language: c + language: c++ src: - - test/core/transport/chttp2/bin_decoder_test.c + - test/cpp/common/auth_property_iterator_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc -- name: bin_encoder_test + - gpr_test_util + - gpr +- name: channel_arguments_test + gtest: true build: test - language: c + language: c++ src: - - test/core/transport/chttp2/bin_encoder_test.c + - test/cpp/common/channel_arguments_test.cc deps: - - grpc_test_util + - grpc++ - grpc -- name: census_context_test + - gpr +- name: cli_call_test + gtest: true build: test - language: c + language: c++ src: - - test/core/census/context_test.c + - test/cpp/util/cli_call_test.cc deps: + - grpc_cli_libs + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: census_resource_test +- name: client_crash_test + gtest: true + cpu_cost: 0.1 build: test - language: c + language: c++ src: - - test/core/census/resource_test.c + - test/cpp/end2end/client_crash_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: channel_create_test + platforms: + - mac + - linux + - posix +- name: client_crash_test_server build: test - language: c + run: false + language: c++ src: - - test/core/surface/channel_create_test.c + - test/cpp/end2end/client_crash_test_server.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: chttp2_hpack_encoder_test +- name: codegen_test_full + gtest: true build: test - language: c + language: c++ src: - - test/core/transport/chttp2/hpack_encoder_test.c + - src/proto/grpc/testing/control.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/payloads.proto + - src/proto/grpc/testing/services.proto + - src/proto/grpc/testing/stats.proto + - test/cpp/codegen/codegen_test_full.cc deps: - - grpc_test_util + - grpc++ - grpc - - gpr_test_util - gpr -- name: chttp2_status_conversion_test + filegroups: + - grpc++_codegen_base +- name: codegen_test_minimal + gtest: true build: test - language: c + language: c++ src: - - test/core/transport/chttp2/status_conversion_test.c + - src/proto/grpc/testing/control.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/payloads.proto + - src/proto/grpc/testing/services.proto + - src/proto/grpc/testing/stats.proto + - test/cpp/codegen/codegen_test_minimal.cc + filegroups: + - grpc++_codegen_base + - grpc++_codegen_base_src +- name: credentials_test + gtest: true + build: test + language: c++ + src: + - test/cpp/client/credentials_test.cc deps: - - grpc_test_util + - grpc++ - grpc - - gpr_test_util - gpr -- name: chttp2_stream_map_test +- name: cxx_byte_buffer_test + gtest: true build: test - language: c + language: c++ src: - - test/core/transport/chttp2/stream_map_test.c + - test/cpp/util/byte_buffer_test.cc deps: - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: chttp2_varint_test +- name: cxx_slice_test + gtest: true build: test - language: c + language: c++ src: - - test/core/transport/chttp2/varint_test.c + - test/cpp/util/slice_test.cc deps: - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: client_fuzzer - build: fuzzer - language: c +- name: cxx_string_ref_test + gtest: true + build: test + language: c++ src: - - test/core/end2end/fuzzers/client_fuzzer.c + - test/cpp/util/string_ref_test.cc deps: - - grpc_test_util - - grpc - - gpr_test_util - - gpr - corpus_dirs: - - test/core/end2end/fuzzers/client_fuzzer_corpus - dict: test/core/end2end/fuzzers/hpack.dictionary - maxlen: 2048 -- name: compression_test + - grpc++ +- name: cxx_time_test + gtest: true build: test - language: c + language: c++ src: - - test/core/compression/compression_test.c + - test/cpp/util/time_test.cc deps: - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: concurrent_connectivity_test +- name: end2end_test + gtest: true + cpu_cost: 0.5 build: test - language: c + language: c++ src: - - test/core/surface/concurrent_connectivity_test.c + - test/cpp/end2end/end2end_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: dns_resolver_connectivity_test - cpu_cost: 0.1 +- name: generic_end2end_test + gtest: true build: test - language: c + language: c++ src: - - test/core/client_config/resolvers/dns_resolver_connectivity_test.c + - test/cpp/end2end/generic_end2end_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: dns_resolver_test +- name: golden_file_test + gtest: true build: test - language: c + language: c++ src: - - test/core/client_config/resolvers/dns_resolver_test.c + - src/proto/grpc/testing/compiler_test.proto + - test/cpp/codegen/golden_file_test.cc deps: - - grpc_test_util + - grpc++ - grpc - - gpr_test_util - gpr -- name: dualstack_socket_test - cpu_cost: 0.1 +- name: grpc_c_end2end_test + gtest: true build: test - language: c + language: c++ src: - - test/core/end2end/dualstack_socket_test.c + - test/c/end2end/end2end_test.cc deps: + - grpc_c_end2end_client_lib + - grpc_c + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: endpoint_pair_test + comments: + - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C + server + - '#2': We're using the library grpc_c_end2end_client_lib to process nanopb and + interface with generated code +- name: grpc_c_generic_end2end_test + gtest: true build: test - language: c + language: c++ + headers: + - test/c/end2end/id_serialization.h src: - - test/core/iomgr/endpoint_pair_test.c + - test/c/end2end/generic_end2end_test.cc + - test/c/end2end/id_serialization.cc deps: + - grpc_c + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: ev_epoll_linux_test - build: test - language: c + comments: + - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C + server +- name: grpc_c_plugin + build: protoc + language: c++ src: - - test/core/iomgr/ev_epoll_linux_test.c + - src/compiler/c_plugin.cc deps: - - grpc_test_util - - grpc - - gpr_test_util - - gpr - platforms: - - linux -- name: fd_conservation_posix_test + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{06F2EB11-35DA-483D-AB0A-BC420D97B18C}' +- name: grpc_cli build: test - language: c + run: false + language: c++ src: - - test/core/iomgr/fd_conservation_posix_test.c + - test/cpp/util/grpc_cli.cc deps: + - grpc_cli_libs + - grpc++_test_util - grpc_test_util + - grpc++_reflection + - grpc++ - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: fd_posix_test + - grpc++_test_config +- name: grpc_cpp_plugin + build: protoc + language: c++ + src: + - src/compiler/cpp_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{7E51A25F-AC59-488F-906C-C60FAAE706AA}' +- name: grpc_csharp_plugin + build: protoc + language: c++ + src: + - src/compiler/csharp_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{3C813052-A49A-4662-B90A-1ADBEC7EE453}' +- name: grpc_node_plugin + build: protoc + language: c++ + src: + - src/compiler/node_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application +- name: grpc_objective_c_plugin + build: protoc + language: c++ + src: + - src/compiler/objective_c_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{19564640-CEE6-4921-ABA5-676ED79A36F6}' +- name: grpc_python_plugin + build: protoc + language: c++ + src: + - src/compiler/python_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{DF52D501-A6CF-4E6F-BA38-6EBE2E8DAFB2}' +- name: grpc_ruby_plugin + build: protoc + language: c++ + src: + - src/compiler/ruby_plugin.cc + deps: + - grpc_plugin_support + secure: false + vs_config_type: Application + vs_project_guid: '{069E9D05-B78B-4751-9252-D21EBAE7DE8E}' +- name: grpclb_api_test + gtest: true build: test - language: c + language: c++ src: - - test/core/iomgr/fd_posix_test.c + - src/proto/grpc/lb/v1/load_balancer.proto + - test/cpp/grpclb/grpclb_api_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - - gpr_test_util - - gpr - platforms: - - mac - - linux - - posix -- name: fling_client +- name: grpclb_test + gtest: false build: test - run: false - language: c + language: c++ src: - - test/core/fling/client.c + - src/proto/grpc/lb/v1/load_balancer.proto + - test/cpp/grpclb/grpclb_test.cc deps: - - grpc_test_util - - grpc - - gpr_test_util - gpr -- name: fling_server + - gpr_test_util + - grpc + - grpc++ + - grpc++_test_util + - grpc_test_util +- name: hybrid_end2end_test + gtest: true build: test - run: false - language: c + language: c++ src: - - test/core/fling/server.c + - test/cpp/end2end/hybrid_end2end_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: fling_stream_test - cpu_cost: 1.5 +- name: interop_client build: test - language: c - src: - - test/core/fling/fling_stream_test.c + run: false + language: c++ + src: [] deps: + - interop_client_main + - interop_client_helper + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr + - grpc++_test_config platforms: - mac - linux - posix -- name: fling_test - cpu_cost: 1.5 +- name: interop_server build: test - language: c - src: - - test/core/fling/fling_test.c + run: false + language: c++ + src: [] deps: + - interop_server_main + - interop_server_helper + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr + - grpc++_test_config platforms: - mac - linux - posix -- name: gen_hpack_tables - build: tool - language: c - src: - - tools/codegen/core/gen_hpack_tables.c - deps: - - gpr - - grpc -- name: gen_legal_metadata_characters - build: tool - language: c - src: - - tools/codegen/core/gen_legal_metadata_characters.c - deps: [] -- name: goaway_server_test +- name: interop_test cpu_cost: 0.1 build: test - language: c + language: c++ src: - - test/core/end2end/goaway_server_test.c + - test/cpp/interop/interop_test.cc deps: - grpc_test_util - grpc @@ -1654,546 +1738,645 @@ targets: - mac - linux - posix -- name: gpr_avl_test - build: test - language: c - src: - - test/core/support/avl_test.c - deps: - - gpr_test_util - - gpr -- name: gpr_backoff_test - build: test - language: c - src: - - test/core/support/backoff_test.c - deps: - - gpr_test_util - - gpr -- name: gpr_cmdline_test - build: test - language: c - src: - - test/core/support/cmdline_test.c - deps: - - gpr_test_util - - gpr -- name: gpr_cpu_test +- name: json_run_localhost build: test - language: c + run: false + language: c++ src: - - test/core/support/cpu_test.c + - test/cpp/qps/json_run_localhost.cc deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_env_test + - grpc++_test_config +- name: metrics_client build: test - language: c + run: false + language: c++ + headers: + - test/cpp/util/metrics_server.h src: - - test/core/support/env_test.c + - src/proto/grpc/testing/metrics.proto + - test/cpp/interop/metrics_client.cc deps: - - gpr_test_util + - grpc++ + - grpc - gpr -- name: gpr_histogram_test + - grpc++_test_config +- name: mock_test + gtest: true build: test - language: c + language: c++ src: - - test/core/support/histogram_test.c + - test/cpp/end2end/mock_test.cc deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_host_port_test +- name: proto_server_reflection_test + gtest: true build: test - language: c + language: c++ + headers: + - test/cpp/util/proto_reflection_descriptor_database.h src: - - test/core/support/host_port_test.c + - test/cpp/end2end/proto_server_reflection_test.cc + - test/cpp/util/proto_reflection_descriptor_database.cc deps: + - grpc++_reflection + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_log_test +- name: qps_interarrival_test build: test - language: c + run: false + language: c++ src: - - test/core/support/log_test.c + - test/cpp/qps/qps_interarrival_test.cc deps: + - qps + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_slice_buffer_test + platforms: + - mac + - linux + - posix +- name: qps_json_driver build: test - language: c + run: false + language: c++ src: - - test/core/support/slice_buffer_test.c + - test/cpp/qps/qps_json_driver.cc deps: + - qps + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_slice_test + - grpc++_test_config +- name: qps_openloop_test + cpu_cost: 0.5 build: test - language: c + language: c++ src: - - test/core/support/slice_test.c + - test/cpp/qps/qps_openloop_test.cc deps: + - qps + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_stack_lockfree_test - cpu_cost: 7 + - grpc++_test_config + platforms: + - mac + - linux + - posix +- name: qps_worker build: test - language: c + run: false + language: c++ + headers: + - test/cpp/qps/client.h + - test/cpp/qps/server.h src: - - test/core/support/stack_lockfree_test.c + - test/cpp/qps/worker.cc deps: + - qps + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_string_test + - grpc++_test_config +- name: reconnect_interop_client build: test - language: c + run: false + language: c++ src: - - test/core/support/string_test.c + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/test.proto + - test/cpp/interop/reconnect_interop_client.cc deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_sync_test - cpu_cost: 10 + - grpc++_test_config +- name: reconnect_interop_server build: test - language: c + run: false + language: c++ src: - - test/core/support/sync_test.c + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/test.proto + - test/cpp/interop/reconnect_interop_server.cc deps: + - reconnect_server + - test_tcp_server + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_thd_test - cpu_cost: 10 + - grpc++_test_config +- name: secure_auth_context_test + gtest: true build: test - language: c + language: c++ src: - - test/core/support/thd_test.c + - test/cpp/common/secure_auth_context_test.cc deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_time_test +- name: secure_sync_unary_ping_pong_test build: test - language: c + language: c++ src: - - test/core/support/time_test.c + - test/cpp/qps/secure_sync_unary_ping_pong_test.cc deps: + - qps + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_tls_test + platforms: + - mac + - linux + - posix +- name: server_builder_plugin_test + gtest: true build: test - language: c + language: c++ src: - - test/core/support/tls_test.c + - test/cpp/end2end/server_builder_plugin_test.cc deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: gpr_useful_test +- name: server_crash_test + gtest: true + cpu_cost: 0.1 build: test - language: c + language: c++ src: - - test/core/support/useful_test.c + - test/cpp/end2end/server_crash_test.cc deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc - gpr_test_util - gpr -- name: grpc_auth_context_test + platforms: + - mac + - linux + - posix +- name: server_crash_test_client build: test - language: c + run: false + language: c++ src: - - test/core/security/auth_context_test.c + - test/cpp/end2end/server_crash_test_client.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: grpc_b64_test +- name: shutdown_test + gtest: true build: test - language: c + language: c++ src: - - test/core/security/b64_test.c + - test/cpp/end2end/shutdown_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: grpc_byte_buffer_reader_test +- name: status_test build: test - language: c + language: c++ src: - - test/core/surface/byte_buffer_reader_test.c + - test/cpp/util/status_test.cc deps: - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: grpc_channel_args_test +- name: streaming_throughput_test + gtest: true build: test - language: c + language: c++ src: - - test/core/channel/channel_args_test.c + - test/cpp/end2end/streaming_throughput_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: grpc_channel_stack_test + platforms: + - mac + - linux + - posix +- name: stress_test build: test - language: c + run: false + language: c++ + headers: + - test/cpp/interop/client_helper.h + - test/cpp/interop/interop_client.h + - test/cpp/interop/stress_interop_client.h + - test/cpp/util/metrics_server.h src: - - test/core/channel/channel_stack_test.c + - src/proto/grpc/testing/empty.proto + - src/proto/grpc/testing/messages.proto + - src/proto/grpc/testing/metrics.proto + - src/proto/grpc/testing/test.proto + - test/cpp/interop/interop_client.cc + - test/cpp/interop/stress_interop_client.cc + - test/cpp/interop/stress_test.cc + - test/cpp/util/metrics_server.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: grpc_completion_queue_test + - grpc++_test_config +- name: thread_stress_test + gtest: true + cpu_cost: 100 build: test - language: c + language: c++ src: - - test/core/surface/completion_queue_test.c + - test/cpp/end2end/thread_stress_test.cc deps: + - grpc++_test_util - grpc_test_util + - grpc++ - grpc - gpr_test_util - gpr -- name: grpc_create_jwt - build: tool - language: c +- name: public_headers_must_be_c89 + build: test + language: c89 src: - - test/core/security/create_jwt.c + - test/core/surface/public_headers_must_be_c89.c deps: - grpc - gpr - secure: true -- name: grpc_credentials_test +- name: alarm_test build: test - language: c + language: core src: - - test/core/security/credentials_test.c + - test/core/surface/alarm_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: grpc_fetch_oauth2 +- name: algorithm_test build: test - run: false - language: c + language: core src: - - test/core/security/fetch_oauth2.c + - test/core/compression/algorithm_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: grpc_invalid_channel_args_test +- name: alloc_test build: test - language: c + language: core src: - - test/core/surface/invalid_channel_args_test.c + - test/core/support/alloc_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: grpc_json_token_test +- name: alpn_test build: test - language: c + language: core src: - - test/core/security/json_token_test.c + - test/core/transport/chttp2/alpn_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - linux - - posix - - mac -- name: grpc_jwt_verifier_test - build: test - language: c +- name: api_fuzzer + build: fuzzer + language: core src: - - test/core/security/jwt_verifier_test.c + - test/core/end2end/fuzzers/api_fuzzer.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: grpc_print_google_default_creds_token - build: tool - language: c - src: - - test/core/security/print_google_default_creds_token.c - deps: - - grpc - - gpr -- name: grpc_security_connector_test + corpus_dirs: + - test/core/end2end/fuzzers/api_fuzzer_corpus + dict: test/core/end2end/fuzzers/api_fuzzer.dictionary + maxlen: 2048 +- name: bad_server_response_test build: test - language: c + language: core src: - - test/core/security/security_connector_test.c + - test/core/end2end/bad_server_response_test.c deps: + - test_tcp_server - grpc_test_util - grpc - gpr_test_util - gpr -- name: grpc_verify_jwt - build: tool - language: c - src: - - test/core/security/verify_jwt.c - deps: - - grpc - - gpr -- name: hpack_parser_fuzzer_test - build: fuzzer - language: c +- name: bin_decoder_test + build: test + language: core src: - - test/core/transport/chttp2/hpack_parser_fuzzer_test.c + - test/core/transport/chttp2/bin_decoder_test.c deps: - grpc_test_util - grpc - - gpr_test_util - - gpr - corpus_dirs: - - test/core/transport/chttp2/hpack_parser_corpus - dict: test/core/end2end/fuzzers/hpack.dictionary - maxlen: 512 -- name: hpack_parser_test +- name: bin_encoder_test build: test - language: c + language: core src: - - test/core/transport/chttp2/hpack_parser_test.c + - test/core/transport/chttp2/bin_encoder_test.c deps: - grpc_test_util - grpc - - gpr_test_util - - gpr -- name: hpack_table_test +- name: census_context_test build: test - language: c + language: core src: - - test/core/transport/chttp2/hpack_table_test.c + - test/core/census/context_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: http_parser_test +- name: census_resource_test build: test - language: c + language: core src: - - test/core/http/parser_test.c + - test/core/census/resource_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: http_request_fuzzer_test - build: fuzzer - language: c +- name: channel_create_test + build: test + language: core src: - - test/core/http/request_fuzzer.c + - test/core/surface/channel_create_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - corpus_dirs: - - test/core/http/corpus - maxlen: 2048 -- name: http_response_fuzzer_test - build: fuzzer - language: c +- name: chttp2_hpack_encoder_test + build: test + language: core src: - - test/core/http/response_fuzzer.c + - test/core/transport/chttp2/hpack_encoder_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - corpus_dirs: - - test/core/http/corpus - maxlen: 2048 -- name: httpcli_format_request_test +- name: chttp2_status_conversion_test build: test - language: c + language: core src: - - test/core/http/format_request_test.c + - test/core/transport/chttp2/status_conversion_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: httpcli_test - cpu_cost: 0.5 +- name: chttp2_stream_map_test build: test - language: c + language: core src: - - test/core/http/httpcli_test.c + - test/core/transport/chttp2/stream_map_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: httpscli_test - cpu_cost: 0.5 +- name: chttp2_varint_test build: test - language: c + language: core src: - - test/core/http/httpscli_test.c + - test/core/transport/chttp2/varint_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - linux -- name: init_test - build: test - language: c +- name: client_fuzzer + build: fuzzer + language: core src: - - test/core/surface/init_test.c + - test/core/end2end/fuzzers/client_fuzzer.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: internal_api_canary_iomgr_test + corpus_dirs: + - test/core/end2end/fuzzers/client_fuzzer_corpus + dict: test/core/end2end/fuzzers/hpack.dictionary + maxlen: 2048 +- name: compression_test build: test - run: false - language: c + language: core src: - - test/core/internal_api_canaries/iomgr.c + - test/core/compression/compression_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: internal_api_canary_support_test +- name: concurrent_connectivity_test build: test - run: false - language: c + language: core src: - - test/core/internal_api_canaries/iomgr.c + - test/core/surface/concurrent_connectivity_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: internal_api_canary_transport_test +- name: dns_resolver_connectivity_test + cpu_cost: 0.1 build: test - run: false - language: c + language: core src: - - test/core/internal_api_canaries/iomgr.c + - test/core/client_config/resolvers/dns_resolver_connectivity_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: invalid_call_argument_test - cpu_cost: 0.1 +- name: dns_resolver_test build: test - language: c + language: core src: - - test/core/end2end/invalid_call_argument_test.c + - test/core/client_config/resolvers/dns_resolver_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: json_fuzzer_test - build: fuzzer - language: c +- name: dualstack_socket_test + cpu_cost: 0.1 + build: test + language: core src: - - test/core/json/fuzzer.c + - test/core/end2end/dualstack_socket_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - corpus_dirs: - - test/core/json/corpus - maxlen: 512 -- name: json_rewrite + platforms: + - mac + - linux + - posix +- name: endpoint_pair_test build: test - run: false - language: c + language: core src: - - test/core/json/json_rewrite.c + - test/core/iomgr/endpoint_pair_test.c deps: + - grpc_test_util - grpc + - gpr_test_util - gpr -- name: json_rewrite_test +- name: ev_epoll_linux_test build: test - language: c + language: core src: - - test/core/json/json_rewrite_test.c + - test/core/iomgr/ev_epoll_linux_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: json_stream_error_test + platforms: + - linux +- name: fd_conservation_posix_test build: test - language: c + language: core src: - - test/core/json/json_stream_error_test.c + - test/core/iomgr/fd_conservation_posix_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: json_test + platforms: + - mac + - linux + - posix +- name: fd_posix_test build: test - language: c + language: core src: - - test/core/json/json_test.c + - test/core/iomgr/fd_posix_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: lame_client_test + platforms: + - mac + - linux + - posix +- name: fling_client build: test - language: c + run: false + language: core src: - - test/core/surface/lame_client_test.c + - test/core/fling/client.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: lb_policies_test - cpu_cost: 0.1 - flaky: true +- name: fling_server build: test - language: c + run: false + language: core src: - - test/core/client_config/lb_policies_test.c + - test/core/fling/server.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: load_file_test +- name: fling_stream_test + cpu_cost: 1.5 build: test - language: c + language: core src: - - test/core/iomgr/load_file_test.c + - test/core/fling/fling_stream_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: low_level_ping_pong_benchmark - build: benchmark - language: c + platforms: + - mac + - linux + - posix +- name: fling_test + cpu_cost: 1.5 + build: test + language: core src: - - test/core/network_benchmarks/low_level_ping_pong.c + - test/core/fling/fling_test.c deps: - grpc_test_util - grpc @@ -2203,311 +2386,279 @@ targets: - mac - linux - posix -- name: message_compress_test +- name: gen_hpack_tables + build: tool + language: core + src: + - tools/codegen/core/gen_hpack_tables.c + deps: + - gpr + - grpc +- name: gen_legal_metadata_characters + build: tool + language: core + src: + - tools/codegen/core/gen_legal_metadata_characters.c + deps: [] +- name: goaway_server_test + cpu_cost: 0.1 build: test - language: c + language: core src: - - test/core/compression/message_compress_test.c + - test/core/end2end/goaway_server_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: mlog_test - flaky: true + platforms: + - mac + - linux + - posix +- name: gpr_avl_test build: test - language: c + language: core src: - - test/core/census/mlog_test.c + - test/core/support/avl_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: multiple_server_queues_test +- name: gpr_backoff_test build: test - language: c + language: core src: - - test/core/end2end/multiple_server_queues_test.c + - test/core/support/backoff_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: murmur_hash_test +- name: gpr_cmdline_test build: test - language: c + language: core src: - - test/core/support/murmur_hash_test.c + - test/core/support/cmdline_test.c deps: - gpr_test_util - gpr -- name: nanopb_fuzzer_response_test - build: fuzzer - language: c +- name: gpr_cpu_test + build: test + language: core src: - - test/core/nanopb/fuzzer_response.c + - test/core/support/cpu_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr - corpus_dirs: - - test/core/nanopb/corpus_response - maxlen: 128 -- name: nanopb_fuzzer_serverlist_test - build: fuzzer - language: c +- name: gpr_env_test + build: test + language: core src: - - test/core/nanopb/fuzzer_serverlist.c + - test/core/support/env_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr - corpus_dirs: - - test/core/nanopb/corpus_serverlist - maxlen: 128 -- name: no_server_test - cpu_cost: 0.1 +- name: gpr_histogram_test build: test - language: c + language: core src: - - test/core/end2end/no_server_test.c + - test/core/support/histogram_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: resolve_address_test +- name: gpr_host_port_test build: test - language: c + language: core src: - - test/core/iomgr/resolve_address_test.c + - test/core/support/host_port_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: secure_channel_create_test +- name: gpr_log_test build: test - language: c + language: core src: - - test/core/surface/secure_channel_create_test.c + - test/core/support/log_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: secure_endpoint_test +- name: gpr_slice_buffer_test build: test - language: c + language: core src: - - test/core/security/secure_endpoint_test.c + - test/core/support/slice_buffer_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: sequential_connectivity_test +- name: gpr_slice_test build: test - language: c + language: core src: - - test/core/surface/sequential_connectivity_test.c + - test/core/support/slice_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: server_chttp2_test +- name: gpr_stack_lockfree_test + cpu_cost: 7 build: test - language: c + language: core src: - - test/core/surface/server_chttp2_test.c + - test/core/support/stack_lockfree_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: server_fuzzer - build: fuzzer - language: c +- name: gpr_string_test + build: test + language: core src: - - test/core/end2end/fuzzers/server_fuzzer.c + - test/core/support/string_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr - corpus_dirs: - - test/core/end2end/fuzzers/server_fuzzer_corpus - dict: test/core/end2end/fuzzers/hpack.dictionary - maxlen: 2048 -- name: server_test +- name: gpr_sync_test + cpu_cost: 10 build: test - language: c + language: core src: - - test/core/surface/server_test.c + - test/core/support/sync_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: set_initial_connect_string_test - cpu_cost: 0.1 +- name: gpr_thd_test + cpu_cost: 10 build: test - language: c + language: core src: - - test/core/client_config/set_initial_connect_string_test.c + - test/core/support/thd_test.c deps: - - test_tcp_server - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: sockaddr_resolver_test +- name: gpr_time_test build: test - language: c + language: core src: - - test/core/client_config/resolvers/sockaddr_resolver_test.c + - test/core/support/time_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: sockaddr_utils_test +- name: gpr_tls_test build: test - language: c + language: core src: - - test/core/iomgr/sockaddr_utils_test.c + - test/core/support/tls_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr -- name: socket_utils_test +- name: gpr_useful_test build: test - language: c + language: core src: - - test/core/iomgr/socket_utils_test.c + - test/core/support/useful_test.c deps: - - grpc_test_util - - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: tcp_client_posix_test - cpu_cost: 0.5 +- name: grpc_auth_context_test build: test - language: c + language: core src: - - test/core/iomgr/tcp_client_posix_test.c + - test/core/security/auth_context_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: tcp_posix_test - cpu_cost: 0.2 +- name: grpc_b64_test build: test - language: c + language: core src: - - test/core/iomgr/tcp_posix_test.c + - test/core/security/b64_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: tcp_server_posix_test +- name: grpc_byte_buffer_reader_test build: test - language: c + language: core src: - - test/core/iomgr/tcp_server_posix_test.c + - test/core/surface/byte_buffer_reader_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: time_averaged_stats_test +- name: grpc_channel_args_test build: test - language: c + language: core src: - - test/core/iomgr/time_averaged_stats_test.c + - test/core/channel/channel_args_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: timeout_encoding_test +- name: grpc_channel_stack_test build: test - language: c + language: core src: - - test/core/transport/timeout_encoding_test.c + - test/core/channel/channel_stack_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: timer_heap_test +- name: grpc_completion_queue_test build: test - language: c + language: core src: - - test/core/iomgr/timer_heap_test.c + - test/core/surface/completion_queue_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: timer_list_test +- name: grpc_create_jwt + build: tool + language: core + src: + - test/core/security/create_jwt.c + deps: + - grpc + - gpr + secure: true +- name: grpc_credentials_test build: test - language: c + language: core src: - - test/core/iomgr/timer_list_test.c + - test/core/security/credentials_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: transport_connectivity_state_test +- name: grpc_fetch_oauth2 build: test - language: c + run: false + language: core src: - - test/core/transport/connectivity_state_test.c + - test/core/security/fetch_oauth2.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: transport_metadata_test +- name: grpc_invalid_channel_args_test build: test - language: c + language: core src: - - test/core/transport/metadata_test.c + - test/core/surface/invalid_channel_args_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: transport_security_test +- name: grpc_json_token_test build: test - language: c + language: core src: - - test/core/tsi/transport_security_test.c + - test/core/security/json_token_test.c deps: - grpc_test_util - grpc @@ -2517,117 +2668,130 @@ targets: - linux - posix - mac -- name: udp_server_test +- name: grpc_jwt_verifier_test build: test - language: c + language: core src: - - test/core/iomgr/udp_server_test.c + - test/core/security/jwt_verifier_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: uri_fuzzer_test +- name: grpc_print_google_default_creds_token + build: tool + language: core + src: + - test/core/security/print_google_default_creds_token.c + deps: + - grpc + - gpr +- name: grpc_security_connector_test + build: test + language: core + src: + - test/core/security/security_connector_test.c + deps: + - grpc_test_util + - grpc + - gpr_test_util + - gpr +- name: grpc_verify_jwt + build: tool + language: core + src: + - test/core/security/verify_jwt.c + deps: + - grpc + - gpr +- name: hpack_parser_fuzzer_test build: fuzzer - language: c + language: core src: - - test/core/client_config/uri_fuzzer_test.c + - test/core/transport/chttp2/hpack_parser_fuzzer_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr corpus_dirs: - - test/core/client_config/uri_corpus - maxlen: 128 -- name: uri_parser_test + - test/core/transport/chttp2/hpack_parser_corpus + dict: test/core/end2end/fuzzers/hpack.dictionary + maxlen: 512 +- name: hpack_parser_test build: test - language: c + language: core src: - - test/core/client_config/uri_parser_test.c + - test/core/transport/chttp2/hpack_parser_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr -- name: alarm_cpp_test - gtest: true +- name: hpack_table_test build: test - language: c++ + language: core src: - - test/cpp/common/alarm_cpp_test.cc + - test/core/transport/chttp2/hpack_table_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: async_end2end_test - gtest: true +- name: http_parser_test build: test - language: c++ + language: core src: - - test/cpp/end2end/async_end2end_test.cc + - test/core/http/parser_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: auth_property_iterator_test - gtest: true - build: test - language: c++ +- name: http_request_fuzzer_test + build: fuzzer + language: core src: - - test/cpp/common/auth_property_iterator_test.cc + - test/core/http/request_fuzzer.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: channel_arguments_test - gtest: true - build: test - language: c++ + corpus_dirs: + - test/core/http/corpus + maxlen: 2048 +- name: http_response_fuzzer_test + build: fuzzer + language: core src: - - test/cpp/common/channel_arguments_test.cc + - test/core/http/response_fuzzer.c deps: - - grpc++ + - grpc_test_util - grpc + - gpr_test_util - gpr -- name: cli_call_test - gtest: true + corpus_dirs: + - test/core/http/corpus + maxlen: 2048 +- name: httpcli_format_request_test build: test - language: c++ + language: core src: - - test/cpp/util/cli_call_test.cc + - test/core/http/format_request_test.c deps: - - grpc_cli_libs - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: client_crash_test - gtest: true - cpu_cost: 0.1 +- name: httpcli_test + cpu_cost: 0.5 build: test - language: c++ + language: core src: - - test/cpp/end2end/client_crash_test.cc + - test/core/http/httpcli_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr @@ -2635,546 +2799,404 @@ targets: - mac - linux - posix -- name: client_crash_test_server +- name: httpscli_test + cpu_cost: 0.5 build: test - run: false - language: c++ + language: core src: - - test/cpp/end2end/client_crash_test_server.cc + - test/core/http/httpscli_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: codegen_test_full - gtest: true + platforms: + - linux +- name: init_test build: test - language: c++ + language: core src: - - src/proto/grpc/testing/control.proto - - src/proto/grpc/testing/messages.proto - - src/proto/grpc/testing/payloads.proto - - src/proto/grpc/testing/services.proto - - src/proto/grpc/testing/stats.proto - - test/cpp/codegen/codegen_test_full.cc + - test/core/surface/init_test.c deps: - - grpc++ + - grpc_test_util - grpc + - gpr_test_util - gpr - filegroups: - - grpc++_codegen_base -- name: codegen_test_minimal - gtest: true +- name: internal_api_canary_iomgr_test build: test - language: c++ + run: false + language: core src: - - src/proto/grpc/testing/control.proto - - src/proto/grpc/testing/messages.proto - - src/proto/grpc/testing/payloads.proto - - src/proto/grpc/testing/services.proto - - src/proto/grpc/testing/stats.proto - - test/cpp/codegen/codegen_test_minimal.cc - filegroups: - - grpc++_codegen_base - - grpc++_codegen_base_src -- name: credentials_test - gtest: true + - test/core/internal_api_canaries/iomgr.c + deps: + - grpc_test_util + - grpc + - gpr_test_util + - gpr +- name: internal_api_canary_support_test build: test - language: c++ + run: false + language: core src: - - test/cpp/client/credentials_test.cc + - test/core/internal_api_canaries/iomgr.c deps: - - grpc++ + - grpc_test_util - grpc + - gpr_test_util - gpr -- name: cxx_byte_buffer_test - gtest: true +- name: internal_api_canary_transport_test build: test - language: c++ + run: false + language: core src: - - test/cpp/util/byte_buffer_test.cc + - test/core/internal_api_canaries/iomgr.c deps: - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: cxx_slice_test - gtest: true +- name: invalid_call_argument_test + cpu_cost: 0.1 build: test - language: c++ + language: core src: - - test/cpp/util/slice_test.cc + - test/core/end2end/invalid_call_argument_test.c deps: - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: cxx_string_ref_test - gtest: true +- name: json_fuzzer_test + build: fuzzer + language: core + src: + - test/core/json/fuzzer.c + deps: + - grpc_test_util + - grpc + - gpr_test_util + - gpr + corpus_dirs: + - test/core/json/corpus + maxlen: 512 +- name: json_rewrite build: test - language: c++ + run: false + language: core src: - - test/cpp/util/string_ref_test.cc + - test/core/json/json_rewrite.c deps: - - grpc++ -- name: cxx_time_test - gtest: true + - grpc + - gpr +- name: json_rewrite_test build: test - language: c++ + language: core src: - - test/cpp/util/time_test.cc + - test/core/json/json_rewrite_test.c deps: - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: end2end_test - gtest: true - cpu_cost: 0.5 +- name: json_stream_error_test build: test - language: c++ + language: core src: - - test/cpp/end2end/end2end_test.cc + - test/core/json/json_stream_error_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: generic_end2end_test - gtest: true +- name: json_test build: test - language: c++ + language: core src: - - test/cpp/end2end/generic_end2end_test.cc + - test/core/json/json_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: golden_file_test - gtest: true +- name: lame_client_test build: test - language: c++ + language: core src: - - src/proto/grpc/testing/compiler_test.proto - - test/cpp/codegen/golden_file_test.cc + - test/core/surface/lame_client_test.c deps: - - grpc++ + - grpc_test_util - grpc + - gpr_test_util - gpr -- name: grpc_c_end2end_test - gtest: true +- name: lb_policies_test + cpu_cost: 0.1 + flaky: true build: test - language: c++ + language: core src: - - test/c/end2end/end2end_test.cc + - test/core/client_config/lb_policies_test.c deps: - - grpc_c_end2end_client_lib - - grpc_c - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - comments: - - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C - server - - '#2': We're using the library grpc_c_end2end_client_lib to process nanopb and - interface with generated code -- name: grpc_c_generic_end2end_test - gtest: true +- name: load_file_test build: test - language: c++ - headers: - - test/c/end2end/id_serialization.h + language: core src: - - test/c/end2end/generic_end2end_test.cc - - test/c/end2end/id_serialization.cc + - test/core/iomgr/load_file_test.c deps: - - grpc_c - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - comments: - - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C - server -- name: grpc_c_plugin - build: protoc - language: c++ +- name: low_level_ping_pong_benchmark + build: benchmark + language: core src: - - src/compiler/c_plugin.cc + - test/core/network_benchmarks/low_level_ping_pong.c deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{06F2EB11-35DA-483D-AB0A-BC420D97B18C}' -- name: grpc_cli + - grpc_test_util + - grpc + - gpr_test_util + - gpr + platforms: + - mac + - linux + - posix +- name: message_compress_test build: test - run: false - language: c++ + language: core src: - - test/cpp/util/grpc_cli.cc + - test/core/compression/message_compress_test.c deps: - - grpc_cli_libs - - grpc++_test_util - grpc_test_util - - grpc++_reflection - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config -- name: grpc_cpp_plugin - build: protoc - language: c++ - src: - - src/compiler/cpp_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{7E51A25F-AC59-488F-906C-C60FAAE706AA}' -- name: grpc_csharp_plugin - build: protoc - language: c++ - src: - - src/compiler/csharp_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{3C813052-A49A-4662-B90A-1ADBEC7EE453}' -- name: grpc_node_plugin - build: protoc - language: c++ - src: - - src/compiler/node_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application -- name: grpc_objective_c_plugin - build: protoc - language: c++ - src: - - src/compiler/objective_c_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{19564640-CEE6-4921-ABA5-676ED79A36F6}' -- name: grpc_python_plugin - build: protoc - language: c++ - src: - - src/compiler/python_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{DF52D501-A6CF-4E6F-BA38-6EBE2E8DAFB2}' -- name: grpc_ruby_plugin - build: protoc - language: c++ +- name: mlog_test + flaky: true + build: test + language: core src: - - src/compiler/ruby_plugin.cc + - test/core/census/mlog_test.c deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{069E9D05-B78B-4751-9252-D21EBAE7DE8E}' -- name: grpclb_api_test - gtest: true + - grpc_test_util + - grpc + - gpr_test_util + - gpr +- name: multiple_server_queues_test build: test - language: c++ + language: core src: - - src/proto/grpc/lb/v1/load_balancer.proto - - test/cpp/grpclb/grpclb_api_test.cc + - test/core/end2end/multiple_server_queues_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc -- name: grpclb_test - gtest: false + - gpr_test_util + - gpr +- name: murmur_hash_test build: test - language: c++ + language: core src: - - src/proto/grpc/lb/v1/load_balancer.proto - - test/cpp/grpclb/grpclb_test.cc + - test/core/support/murmur_hash_test.c deps: - - gpr - gpr_test_util - - grpc - - grpc++ - - grpc++_test_util + - gpr +- name: nanopb_fuzzer_response_test + build: fuzzer + language: core + src: + - test/core/nanopb/fuzzer_response.c + deps: - grpc_test_util -- name: hybrid_end2end_test - gtest: true - build: test - language: c++ + - grpc + - gpr_test_util + - gpr + corpus_dirs: + - test/core/nanopb/corpus_response + maxlen: 128 +- name: nanopb_fuzzer_serverlist_test + build: fuzzer + language: core src: - - test/cpp/end2end/hybrid_end2end_test.cc + - test/core/nanopb/fuzzer_serverlist.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: interop_client + corpus_dirs: + - test/core/nanopb/corpus_serverlist + maxlen: 128 +- name: no_server_test + cpu_cost: 0.1 build: test - run: false - language: c++ - src: [] + language: core + src: + - test/core/end2end/no_server_test.c deps: - - interop_client_main - - interop_client_helper - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config - platforms: - - mac - - linux - - posix -- name: interop_server +- name: resolve_address_test build: test - run: false - language: c++ - src: [] + language: core + src: + - test/core/iomgr/resolve_address_test.c deps: - - interop_server_main - - interop_server_helper - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config - platforms: - - mac - - linux - - posix -- name: interop_test - cpu_cost: 0.1 +- name: secure_channel_create_test build: test - language: c++ + language: core src: - - test/cpp/interop/interop_test.cc + - test/core/surface/secure_channel_create_test.c deps: - grpc_test_util - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: json_run_localhost +- name: secure_endpoint_test build: test - run: false - language: c++ + language: core src: - - test/cpp/qps/json_run_localhost.cc + - test/core/security/secure_endpoint_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config -- name: metrics_client +- name: sequential_connectivity_test build: test - run: false - language: c++ - headers: - - test/cpp/util/metrics_server.h + language: core src: - - src/proto/grpc/testing/metrics.proto - - test/cpp/interop/metrics_client.cc + - test/core/surface/sequential_connectivity_test.c deps: - - grpc++ + - grpc_test_util - grpc + - gpr_test_util - gpr - - grpc++_test_config -- name: mock_test - gtest: true +- name: server_chttp2_test build: test - language: c++ + language: core src: - - test/cpp/end2end/mock_test.cc + - test/core/surface/server_chttp2_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: proto_server_reflection_test - gtest: true - build: test - language: c++ - headers: - - test/cpp/util/proto_reflection_descriptor_database.h +- name: server_fuzzer + build: fuzzer + language: core src: - - test/cpp/end2end/proto_server_reflection_test.cc - - test/cpp/util/proto_reflection_descriptor_database.cc + - test/core/end2end/fuzzers/server_fuzzer.c deps: - - grpc++_reflection - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: qps_interarrival_test + corpus_dirs: + - test/core/end2end/fuzzers/server_fuzzer_corpus + dict: test/core/end2end/fuzzers/hpack.dictionary + maxlen: 2048 +- name: server_test build: test - run: false - language: c++ + language: core src: - - test/cpp/qps/qps_interarrival_test.cc + - test/core/surface/server_test.c deps: - - qps - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: qps_json_driver +- name: set_initial_connect_string_test + cpu_cost: 0.1 build: test - run: false - language: c++ + language: core src: - - test/cpp/qps/qps_json_driver.cc + - test/core/client_config/set_initial_connect_string_test.c deps: - - qps - - grpc++_test_util + - test_tcp_server - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config -- name: qps_openloop_test - cpu_cost: 0.5 +- name: sockaddr_resolver_test build: test - language: c++ + language: core src: - - test/cpp/qps/qps_openloop_test.cc + - test/core/client_config/resolvers/sockaddr_resolver_test.c deps: - - qps - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config - platforms: - - mac - - linux - - posix -- name: qps_worker +- name: sockaddr_utils_test build: test - run: false - language: c++ - headers: - - test/cpp/qps/client.h - - test/cpp/qps/server.h + language: core src: - - test/cpp/qps/worker.cc + - test/core/iomgr/sockaddr_utils_test.c deps: - - qps - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config -- name: reconnect_interop_client +- name: socket_utils_test build: test - run: false - language: c++ + language: core src: - - src/proto/grpc/testing/empty.proto - - src/proto/grpc/testing/messages.proto - - src/proto/grpc/testing/test.proto - - test/cpp/interop/reconnect_interop_client.cc + - test/core/iomgr/socket_utils_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config -- name: reconnect_interop_server + platforms: + - mac + - linux + - posix +- name: tcp_client_posix_test + cpu_cost: 0.5 build: test - run: false - language: c++ + language: core src: - - src/proto/grpc/testing/empty.proto - - src/proto/grpc/testing/messages.proto - - src/proto/grpc/testing/test.proto - - test/cpp/interop/reconnect_interop_server.cc + - test/core/iomgr/tcp_client_posix_test.c deps: - - reconnect_server - - test_tcp_server - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config -- name: secure_auth_context_test - gtest: true + platforms: + - mac + - linux + - posix +- name: tcp_posix_test + cpu_cost: 0.2 build: test - language: c++ + language: core src: - - test/cpp/common/secure_auth_context_test.cc + - test/core/iomgr/tcp_posix_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: secure_sync_unary_ping_pong_test + platforms: + - mac + - linux + - posix +- name: tcp_server_posix_test build: test - language: c++ + language: core src: - - test/cpp/qps/secure_sync_unary_ping_pong_test.cc + - test/core/iomgr/tcp_server_posix_test.c deps: - - qps - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr @@ -3182,138 +3204,116 @@ targets: - mac - linux - posix -- name: server_builder_plugin_test - gtest: true +- name: time_averaged_stats_test build: test - language: c++ + language: core src: - - test/cpp/end2end/server_builder_plugin_test.cc + - test/core/iomgr/time_averaged_stats_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: server_crash_test - gtest: true - cpu_cost: 0.1 +- name: timeout_encoding_test build: test - language: c++ + language: core src: - - test/cpp/end2end/server_crash_test.cc + - test/core/transport/timeout_encoding_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - platforms: - - mac - - linux - - posix -- name: server_crash_test_client +- name: timer_heap_test build: test - run: false - language: c++ + language: core src: - - test/cpp/end2end/server_crash_test_client.cc + - test/core/iomgr/timer_heap_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: shutdown_test - gtest: true +- name: timer_list_test build: test - language: c++ + language: core src: - - test/cpp/end2end/shutdown_test.cc + - test/core/iomgr/timer_list_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: status_test +- name: transport_connectivity_state_test build: test - language: c++ + language: core src: - - test/cpp/util/status_test.cc + - test/core/transport/connectivity_state_test.c deps: - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: streaming_throughput_test - gtest: true +- name: transport_metadata_test build: test - language: c++ + language: core src: - - test/cpp/end2end/streaming_throughput_test.cc + - test/core/transport/metadata_test.c + deps: + - grpc_test_util + - grpc + - gpr_test_util + - gpr +- name: transport_security_test + build: test + language: core + src: + - test/core/tsi/transport_security_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr platforms: - - mac - linux - posix -- name: stress_test + - mac +- name: udp_server_test build: test - run: false - language: c++ - headers: - - test/cpp/interop/client_helper.h - - test/cpp/interop/interop_client.h - - test/cpp/interop/stress_interop_client.h - - test/cpp/util/metrics_server.h + language: core src: - - src/proto/grpc/testing/empty.proto - - src/proto/grpc/testing/messages.proto - - src/proto/grpc/testing/metrics.proto - - src/proto/grpc/testing/test.proto - - test/cpp/interop/interop_client.cc - - test/cpp/interop/stress_interop_client.cc - - test/cpp/interop/stress_test.cc - - test/cpp/util/metrics_server.cc + - test/core/iomgr/udp_server_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr - - grpc++_test_config -- name: thread_stress_test - gtest: true - cpu_cost: 100 - build: test - language: c++ + platforms: + - mac + - linux + - posix +- name: uri_fuzzer_test + build: fuzzer + language: core src: - - test/cpp/end2end/thread_stress_test.cc + - test/core/client_config/uri_fuzzer_test.c deps: - - grpc++_test_util - grpc_test_util - - grpc++ - grpc - gpr_test_util - gpr -- name: public_headers_must_be_c89 + corpus_dirs: + - test/core/client_config/uri_corpus + maxlen: 128 +- name: uri_parser_test build: test - language: c89 + language: core src: - - test/core/surface/public_headers_must_be_c89.c + - test/core/client_config/uri_parser_test.c deps: + - grpc_test_util - grpc + - gpr_test_util - gpr vspackages: - linkage: static diff --git a/templates/Makefile.template b/templates/Makefile.template index f23d510bcc282..bbc820737baa4 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -728,6 +728,31 @@ PC_LIB = -lgrpc++ GRPCXX_UNSECURE_PC_FILE := $(PC_TEMPLATE) + + + PC_REQUIRES_GRPC_C = + PC_LIBS_GRPC_C = + + # grpc_c .pc file + PC_NAME = gRPC C + PC_DESCRIPTION = C wrapper for gRPC + PC_CFLAGS = + PC_REQUIRES_PRIVATE = grpc $(PC_REQUIRES_GRPC_C) + PC_LIBS_PRIVATE = $(PC_LIBS_GRPC_C) + PC_LIB = -lgrpc_c + GRPC_C_PC_FILE := $(PC_TEMPLATE) + + # grpc_c_unsecure .pc file + PC_NAME = gRPC C unsecure + PC_DESCRIPTION = C wrapper for gRPC without SSL + PC_CFLAGS = + PC_REQUIRES_PRIVATE = grpc_unsecure $(PC_REQUIRES_GRPC_C) + PC_LIBS_PRIVATE = $(PC_LIBS_GRPC_C) + PC_LIB = -lgrpc_c + GRPC_C_UNSECURE_PC_FILE := $(PC_TEMPLATE) + + + ifeq ($(MAKECMDGOALS),clean) NO_DEPS = true endif @@ -741,7 +766,6 @@ .SECONDARY = %.pb.h %.pb.cc - # This is the 'all' target to be executed after handling prerequisites ifeq ($(DEP_MISSING),) all: nanopb_protobuf_dep static shared plugins\ % for tgt in targets: @@ -878,7 +902,7 @@ $(Q)cp third_party/protobuf/src/.libs/libprotobuf.a $(LIBDIR)/$(CONFIG)/protobuf $(Q)cp third_party/protobuf/src/.libs/libprotoc.a $(LIBDIR)/$(CONFIG)/protobuf - static: static_c static_cxx + static: static_c static_core static_cxx static_c: pc_c pc_c_unsecure cache.mk \ % for lib in libs: @@ -889,6 +913,14 @@ % endif % endfor + static_core: pc_core pc_core_unsecure cache.mk \ + % for lib in libs: + % if 'Makefile' in lib.get('build_system', ['Makefile']): + % if lib.build == 'all' and lib.language == 'core' and not lib.get('external_deps', None): + $(LIBDIR)/$(CONFIG)/lib${lib.name}.a\ + % endif + % endif + % endfor static_cxx: pc_cxx pc_cxx_unsecure cache.mk \ % for lib in libs: @@ -900,7 +932,7 @@ % endfor - shared: shared_c shared_cxx + shared: shared_c shared_core shared_cxx shared_c: pc_c pc_c_unsecure cache.mk\ % for lib in libs: @@ -911,6 +943,15 @@ % endif % endfor + shared_core: pc_core pc_core_unsecure cache.mk\ + % for lib in libs: + % if 'Makefile' in lib.get('build_system', ['Makefile']): + % if lib.build == 'all' and lib.language == 'core' and not lib.get('external_deps', None): + $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)${lib.name}$(SHARED_VERSION).$(SHARED_EXT)\ + % endif + % endif + % endfor + shared_cxx: pc_cxx pc_cxx_unsecure cache.mk\ % for lib in libs: % if 'Makefile' in lib.get('build_system', ['Makefile']): @@ -921,7 +962,7 @@ % endfor - shared_csharp: shared_c \ + shared_csharp: shared_core \ % for lib in libs: % if 'Makefile' in lib.get('build_system', ['Makefile']): % if lib.build == 'all' and lib.language == 'csharp': @@ -934,7 +975,7 @@ plugins: $(PROTOC_PLUGINS) - privatelibs: privatelibs_c privatelibs_cxx + privatelibs: privatelibs_c privatelibs_core privatelibs_cxx privatelibs_c: \ % for lib in libs: @@ -945,9 +986,22 @@ % endif % endfor - pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc + privatelibs_core: \ + % for lib in libs: + % if 'Makefile' in lib.get('build_system', ['Makefile']): + % if lib.build == 'private' and lib.language == 'core' and not lib.get('external_deps', None) and not lib.boringssl: + $(LIBDIR)/$(CONFIG)/lib${lib.name}.a\ + % endif + % endif + % endfor - pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc + pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c.pc + + pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c_unsecure.pc + + pc_core: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc + + pc_core_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc pc_cxx: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc @@ -976,15 +1030,21 @@ endif - buildtests: buildtests_c buildtests_cxx + buildtests: buildtests_c buildtests_core buildtests_cxx buildtests_c: privatelibs_c <%text>\ % for tgt in targets: - % if tgt.build == 'test' and not tgt.language == 'c++' and not tgt.get('external_deps', None): + % if tgt.build == 'test' and tgt.language == 'c' and not tgt.get('external_deps', None): $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ % endif % endfor + buildtests_core: privatelibs_core <%text>\ + % for tgt in targets: + % if tgt.build == 'test' and tgt.language == 'core' and not tgt.get('external_deps', None): + $(BINDIR)/$(CONFIG)/${tgt.name} <%text>\ + % endif + % endfor ifeq ($(EMBED_OPENSSL),true) buildtests_cxx: privatelibs_cxx <%text>\ @@ -1004,29 +1064,26 @@ endif - # This is the 'test' target to be executed after handling prerequisites - test: test_c test_cxx + test: test_c test_core test_cxx - flaky_test: flaky_test_c flaky_test_cxx + flaky_test: flaky_test_c flaky_test_core flaky_test_cxx test_c: buildtests_c % for tgt in targets: - % if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): + % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" $(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 ) % endif % endfor - flaky_test_c: buildtests_c % for tgt in targets: - % if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++' and tgt.get('flaky', False) and not tgt.get('external_deps', None): + % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c' and tgt.get('flaky', False) and not tgt.get('external_deps', None): $(E) "[RUN] Testing ${tgt.name}" $(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 ) % endif % endfor - test_cxx: buildtests_cxx % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): @@ -1035,7 +1092,6 @@ % endif % endfor - flaky_test_cxx: buildtests_cxx % for tgt in targets: % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++' and tgt.get('flaky', False) and not tgt.get('external_deps', None): @@ -1044,26 +1100,47 @@ % endif % endfor + test_core: buildtests_core + % for tgt in targets: + % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'core' and not tgt.get('flaky', False) and not tgt.get('external_deps', None): + $(E) "[RUN] Testing ${tgt.name}" + $(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 ) + % endif + % endfor + + flaky_test_core: buildtests_core + % for tgt in targets: + % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'core' and tgt.get('flaky', False) and not tgt.get('external_deps', None): + $(E) "[RUN] Testing ${tgt.name}" + $(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 ) + % endif + % endfor - test_python: static_c + test_python: static_core $(E) "[RUN] Testing python code" $(Q) tools/run_tests/run_tests.py -lpython -c$(CONFIG) - tools: tools_c tools_cxx + tools: tools_c tools_core tools_cxx tools_c: privatelibs_c\ % for tgt in targets: - % if tgt.build == 'tool' and not tgt.language=='c++': + % if tgt.build == 'tool' and tgt.language == 'c': $(BINDIR)/$(CONFIG)/${tgt.name}\ % endif % endfor + tools_core: privatelibs_core\ + % for tgt in targets: + % if tgt.build == 'tool' and not tgt.language == 'core': + $(BINDIR)/$(CONFIG)/${tgt.name}\ + % endif + % endfor tools_cxx: privatelibs_cxx\ % for tgt in targets: - % if tgt.build == 'tool' and tgt.language=='c++': + % if tgt.build == 'tool' and tgt.language == 'c++': $(BINDIR)/$(CONFIG)/${tgt.name}\ % endif % endfor @@ -1081,9 +1158,9 @@ strip: strip-static strip-shared - strip-static: strip-static_c strip-static_cxx + strip-static: strip-static_c strip-static_core strip-static_cxx - strip-shared: strip-shared_c strip-shared_cxx + strip-shared: strip-shared_c strip-static_core strip-shared_cxx # TODO(nnoble): the strip target is stripping in-place, instead @@ -1106,6 +1183,22 @@ % endfor endif + strip-static_core: static_core + ifeq ($(CONFIG),opt) + % for lib in libs: + % if 'Makefile' in lib.get('build_system', ['Makefile']): + % if lib.language == "core": + % if lib.build == "all": + % if not lib.get('external_deps', None): + $(E) "[STRIP] Stripping lib${lib.name}.a" + $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/lib${lib.name}.a + % endif + % endif + % endif + % endif + % endfor + endif + strip-static_cxx: static_cxx ifeq ($(CONFIG),opt) % for lib in libs: @@ -1136,6 +1229,22 @@ % endfor endif + strip-shared_core: shared_core + ifeq ($(CONFIG),opt) + % for lib in libs: + % if 'Makefile' in lib.get('build_system', ['Makefile']): + % if lib.language == "core": + % if lib.build == "all": + % if not lib.get('external_deps', None): + $(E) "[STRIP] Stripping $(SHARED_PREFIX)${lib.name}$(SHARED_VERSION).$(SHARED_EXT)" + $(Q) $(STRIP) $(LIBDIR)/$(CONFIG)/$(SHARED_PREFIX)${lib.name}$(SHARED_VERSION).$(SHARED_EXT) + % endif + % endif + % endif + % endif + % endfor + endif + strip-shared_cxx: shared_cxx ifeq ($(CONFIG),opt) % for lib in libs: @@ -1178,6 +1287,16 @@ $(Q) mkdir -p $(@D) $(Q) echo "$(GRPC_UNSECURE_PC_FILE)" | tr , '\n' >$@ + $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c.pc: + $(E) "[MAKE] Generating $@" + $(Q) mkdir -p $(@D) + $(Q) echo "$(GRPC_C_PC_FILE)" | tr , '\n' >$@ + + $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c_unsecure.pc: + $(E) "[MAKE] Generating $@" + $(Q) mkdir -p $(@D) + $(Q) echo "$(GRPC_C_UNSECURE_PC_FILE)" | tr , '\n' >$@ + $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc: $(E) "[MAKE] Generating $@" $(Q) mkdir -p $(@D) @@ -1248,29 +1367,36 @@ $(Q) mkdir -p `dirname $@` $(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $< - install: install_c install_cxx install-plugins install-certs verify-install + install: install_c install_core install_cxx install-plugins install-certs verify-install install_c: install-headers_c install-static_c install-shared_c + install_core: install-headers_core install-static_core install-shared_core + install_cxx: install-headers_cxx install-static_cxx install-shared_cxx - install_csharp: install-shared_csharp install_c + install_csharp: install-shared_csharp install_core install_grpc_csharp_ext: install_csharp - install-headers: install-headers_c install-headers_cxx + install-headers: install-headers_c install-headers_core install-headers_cxx install-headers_c: $(E) "[INSTALL] Installing public C headers" $(Q) $(foreach h, $(PUBLIC_HEADERS_C), $(INSTALL) -d $(prefix)/$(dir $(h)) && ) exit 0 || exit 1 $(Q) $(foreach h, $(PUBLIC_HEADERS_C), $(INSTALL) $(h) $(prefix)/$(h) && ) exit 0 || exit 1 + install-headers_core: + $(E) "[INSTALL] Installing public C core headers" + $(Q) $(foreach h, $(PUBLIC_HEADERS_CORE), $(INSTALL) -d $(prefix)/$(dir $(h)) && ) exit 0 || exit 1 + $(Q) $(foreach h, $(PUBLIC_HEADERS_CORE), $(INSTALL) $(h) $(prefix)/$(h) && ) exit 0 || exit 1 + install-headers_cxx: $(E) "[INSTALL] Installing public C++ headers" $(Q) $(foreach h, $(PUBLIC_HEADERS_CXX), $(INSTALL) -d $(prefix)/$(dir $(h)) && ) exit 0 || exit 1 $(Q) $(foreach h, $(PUBLIC_HEADERS_CXX), $(INSTALL) $(h) $(prefix)/$(h) && ) exit 0 || exit 1 - install-static: install-static_c install-static_cxx + install-static: install-static_c install-static_core install-static_cxx install-static_c: static_c strip-static_c install-pkg-config_c % for lib in libs: @@ -1287,6 +1413,21 @@ % endif % endfor + install-static_core: static_core strip-static_core install-pkg-config_core + % for lib in libs: + % if 'Makefile' in lib.get('build_system', ['Makefile']): + % if lib.language == "core": + % if lib.build == "all": + % if not lib.get('external_deps', None): + $(E) "[INSTALL] Installing lib${lib.name}.a" + $(Q) $(INSTALL) -d $(prefix)/lib + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/lib${lib.name}.a $(prefix)/lib/lib${lib.name}.a + % endif + % endif + % endif + % endif + % endfor + install-static_cxx: static_cxx strip-static_cxx install-pkg-config_cxx % for lib in libs: % if 'Makefile' in lib.get('build_system', ['Makefile']): @@ -1330,6 +1471,9 @@ install-shared_c: shared_c strip-shared_c install-pkg-config_c ${install_shared("c")} + install-shared_core: shared_core strip-shared_core install-pkg-config_core + ${install_shared("core")} + install-shared_cxx: shared_cxx strip-shared_cxx install-shared_c install-pkg-config_cxx ${install_shared("c++")} @@ -1352,6 +1496,12 @@ install-pkg-config_c: pc_c pc_c_unsecure $(E) "[INSTALL] Installing C pkg-config files" $(Q) $(INSTALL) -d $(prefix)/lib/pkgconfig + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c.pc $(prefix)/lib/pkgconfig/grpc_c.pc + $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c_unsecure.pc $(prefix)/lib/pkgconfig/grpc_c_unsecure.pc + + install-pkg-config_core: pc_core pc_core_unsecure + $(E) "[INSTALL] Installing C core pkg-config files" + $(Q) $(INSTALL) -d $(prefix)/lib/pkgconfig $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc $(prefix)/lib/pkgconfig/grpc.pc $(Q) $(INSTALL) $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc $(prefix)/lib/pkgconfig/grpc_unsecure.pc @@ -1428,7 +1578,10 @@ % if lib.language == "c++": PUBLIC_HEADERS_CXX += \\ - % else: + % elif lib.language == "core": + PUBLIC_HEADERS_CORE += \\ + + % elif lib.language == "c": PUBLIC_HEADERS_C += \\ % endif @@ -1829,18 +1982,19 @@ .PHONY: all all strip tools \ dep_error openssl_dep_error openssl_dep_message git_update stop \ - buildtests buildtests_c buildtests_cxx \ + buildtests buildtests_c buildtests_core buildtests_cxx \ buildtests_c buildtests_cxx \ - test test test_c test_cxx \ + test test test_c test_core test_cxx \ test_c test_cxx \ - install install_c install_cxx \ - install-headers install-headers_c install-headers_cxx \ - install-shared install-shared_c install-shared_cxx \ - install-static install-static_c install-static_cxx \ + install install_c install_core install_cxx \ + install-headers install-headers_c install-headers_core install-headers_cxx \ + install-shared install-shared_c install-shared_core install-shared_cxx \ + install-static install-static_c install-static_core install-static_cxx \ strip strip-shared strip-static \ strip_c strip-shared_c strip-static_c \ + strip_core strip-shared_core strip-static_core \ strip_cxx strip-shared_cxx strip-static_cxx \ - dep_c dep_cxx bins_dep_c bins_dep_cxx \ + dep_c dep_core dep_cxx bins_dep_c bins_dep_core bins_dep_cxx \ clean .PHONY: printvars diff --git a/templates/test/core/surface/public_headers_must_be_c89.c.template b/templates/test/core/surface/public_headers_must_be_c89.c.template index ea67d6c5c8bb5..e892f5572f7aa 100644 --- a/templates/test/core/surface/public_headers_must_be_c89.c.template +++ b/templates/test/core/surface/public_headers_must_be_c89.c.template @@ -51,7 +51,7 @@ hdrs = set() pfx = 'include/' for lib in libs: - if lib.language != 'c': continue + if lib.language != 'c' and lib.language != 'core': continue if is_lib_exempted(lib): continue for hdr in lib.get('public_headers', []): if is_platform_header(hdr): continue diff --git a/templates/tools/run_tests/sources_and_headers.json.template b/templates/tools/run_tests/sources_and_headers.json.template index 2aa93104e10ec..713ad5d61cec5 100644 --- a/templates/tools/run_tests/sources_and_headers.json.template +++ b/templates/tools/run_tests/sources_and_headers.json.template @@ -7,7 +7,7 @@ def proto_headers(tgt): out = [] fmt_strs = [] - if tgt.language == 'c': + if tgt.language == 'c' or tgt.language == 'core': fmt_strs = ['%s.grpc.pbc.h', '%s.pbc.h'] else: fmt_strs = ['%s.grpc.pb.h', '%s.pb.h'] diff --git a/templates/vsprojects/buildtests_core.sln.template b/templates/vsprojects/buildtests_core.sln.template new file mode 100644 index 0000000000000..d7310eadf7671 --- /dev/null +++ b/templates/vsprojects/buildtests_core.sln.template @@ -0,0 +1,13 @@ +%YAML 1.2 +--- | + <%namespace file="sln_defs.include" import="gen_solution"/>\ + <% + solution_projects = [ + p for p in vsprojects + if p.build in ['test', 'tool'] + and p.language == 'core' + and not p.boringssl + and not p.zlib + ] + %>\ + ${gen_solution(solution_projects, use_dlls='yes')} diff --git a/templates/vsprojects/grpc.sln.template b/templates/vsprojects/grpc.sln.template index ded98383dad0e..81ce7c8d6b97c 100644 --- a/templates/vsprojects/grpc.sln.template +++ b/templates/vsprojects/grpc.sln.template @@ -2,6 +2,6 @@ --- | <%namespace file="sln_defs.include" import="gen_solution"/>\ <% - solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'test', 'fuzzer'] and p.language in ['c', 'c++'] and p.vs_proj_dir == '.' and not (p.build == 'private' and p.language == 'c++')] + solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'test', 'fuzzer'] and p.language in ['c', 'core', 'c++'] and p.vs_proj_dir == '.' and not (p.build == 'private' and p.language == 'c++')] %>\ ${gen_solution(solution_projects, use_dlls='yes')} diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 542415d9085a0..b042e8e9e7c00 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -783,6 +783,7 @@ def __str__(self): _LANGUAGES = { 'c++': CLanguage('cxx', 'c++'), 'c': CLanguage('c', 'c'), + 'core': CLanguage('core', 'c'), 'node': NodeLanguage(), 'php': PhpLanguage(), 'php7': Php7Language(), diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 5a737db3328ea..8eb72191fdf0c 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -6,13 +6,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "alarm_test", + "language": "c++", + "name": "alarm_cpp_test", "src": [ - "test/core/surface/alarm_test.c" + "test/cpp/common/alarm_cpp_test.cc" ], "third_party": false, "type": "target" @@ -22,13 +24,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "algorithm_test", + "language": "c++", + "name": "async_end2end_test", "src": [ - "test/core/compression/algorithm_test.c" + "test/cpp/end2end/async_end2end_test.cc" ], "third_party": false, "type": "target" @@ -36,13 +40,17 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "alloc_test", + "language": "c++", + "name": "auth_property_iterator_test", "src": [ - "test/core/support/alloc_test.c" + "test/cpp/common/auth_property_iterator_test.cc" ], "third_party": false, "type": "target" @@ -50,15 +58,14 @@ { "deps": [ "gpr", - "gpr_test_util", "grpc", - "grpc_test_util" + "grpc++" ], "headers": [], - "language": "c", - "name": "alpn_test", + "language": "c++", + "name": "channel_arguments_test", "src": [ - "test/core/transport/chttp2/alpn_test.c" + "test/cpp/common/channel_arguments_test.cc" ], "third_party": false, "type": "target" @@ -68,13 +75,16 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", + "grpc_cli_libs", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "api_fuzzer", + "language": "c++", + "name": "cli_call_test", "src": [ - "test/core/end2end/fuzzers/api_fuzzer.c" + "test/cpp/util/cli_call_test.cc" ], "third_party": false, "type": "target" @@ -84,58 +94,85 @@ "gpr", "gpr_test_util", "grpc", - "grpc_test_util", - "test_tcp_server" + "grpc++", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "bad_server_response_test", + "language": "c++", + "name": "client_crash_test", "src": [ - "test/core/end2end/bad_server_response_test.c" + "test/cpp/end2end/client_crash_test.cc" ], "third_party": false, "type": "target" }, { "deps": [ + "gpr", + "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "bin_decoder_test", + "language": "c++", + "name": "client_crash_test_server", "src": [ - "test/core/transport/chttp2/bin_decoder_test.c" + "test/cpp/end2end/client_crash_test_server.cc" ], "third_party": false, "type": "target" }, { "deps": [ + "gpr", "grpc", - "grpc_test_util" + "grpc++", + "grpc++_codegen_base" ], - "headers": [], - "language": "c", - "name": "bin_encoder_test", + "headers": [ + "src/proto/grpc/testing/control.grpc.pb.h", + "src/proto/grpc/testing/control.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/payloads.grpc.pb.h", + "src/proto/grpc/testing/payloads.pb.h", + "src/proto/grpc/testing/services.grpc.pb.h", + "src/proto/grpc/testing/services.pb.h", + "src/proto/grpc/testing/stats.grpc.pb.h", + "src/proto/grpc/testing/stats.pb.h" + ], + "language": "c++", + "name": "codegen_test_full", "src": [ - "test/core/transport/chttp2/bin_encoder_test.c" + "test/cpp/codegen/codegen_test_full.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc++_codegen_base", + "grpc++_codegen_base_src" ], - "headers": [], - "language": "c", - "name": "census_context_test", + "headers": [ + "src/proto/grpc/testing/control.grpc.pb.h", + "src/proto/grpc/testing/control.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/payloads.grpc.pb.h", + "src/proto/grpc/testing/payloads.pb.h", + "src/proto/grpc/testing/services.grpc.pb.h", + "src/proto/grpc/testing/services.pb.h", + "src/proto/grpc/testing/stats.grpc.pb.h", + "src/proto/grpc/testing/stats.pb.h" + ], + "language": "c++", + "name": "codegen_test_minimal", "src": [ - "test/core/census/context_test.c" + "test/cpp/codegen/codegen_test_minimal.cc" ], "third_party": false, "type": "target" @@ -143,15 +180,14 @@ { "deps": [ "gpr", - "gpr_test_util", "grpc", - "grpc_test_util" + "grpc++" ], "headers": [], - "language": "c", - "name": "census_resource_test", + "language": "c++", + "name": "credentials_test", "src": [ - "test/core/census/resource_test.c" + "test/cpp/client/credentials_test.cc" ], "third_party": false, "type": "target" @@ -161,13 +197,14 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "channel_create_test", + "language": "c++", + "name": "cxx_byte_buffer_test", "src": [ - "test/core/surface/channel_create_test.c" + "test/cpp/util/byte_buffer_test.cc" ], "third_party": false, "type": "target" @@ -177,29 +214,27 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "chttp2_hpack_encoder_test", + "language": "c++", + "name": "cxx_slice_test", "src": [ - "test/core/transport/chttp2/hpack_encoder_test.c" + "test/cpp/util/slice_test.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc++" ], "headers": [], - "language": "c", - "name": "chttp2_status_conversion_test", + "language": "c++", + "name": "cxx_string_ref_test", "src": [ - "test/core/transport/chttp2/status_conversion_test.c" + "test/cpp/util/string_ref_test.cc" ], "third_party": false, "type": "target" @@ -209,13 +244,14 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "chttp2_stream_map_test", + "language": "c++", + "name": "cxx_time_test", "src": [ - "test/core/transport/chttp2/stream_map_test.c" + "test/cpp/util/time_test.cc" ], "third_party": false, "type": "target" @@ -225,13 +261,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "chttp2_varint_test", + "language": "c++", + "name": "end2end_test", "src": [ - "test/core/transport/chttp2/varint_test.c" + "test/cpp/end2end/end2end_test.cc" ], "third_party": false, "type": "target" @@ -241,13 +279,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "client_fuzzer", + "language": "c++", + "name": "generic_end2end_test", "src": [ - "test/core/end2end/fuzzers/client_fuzzer.c" + "test/cpp/end2end/generic_end2end_test.cc" ], "third_party": false, "type": "target" @@ -255,15 +295,17 @@ { "deps": [ "gpr", - "gpr_test_util", "grpc", - "grpc_test_util" + "grpc++" ], - "headers": [], - "language": "c", - "name": "compression_test", + "headers": [ + "src/proto/grpc/testing/compiler_test.grpc.pb.h", + "src/proto/grpc/testing/compiler_test.pb.h" + ], + "language": "c++", + "name": "golden_file_test", "src": [ - "test/core/compression/compression_test.c" + "test/cpp/codegen/golden_file_test.cc" ], "third_party": false, "type": "target" @@ -273,13 +315,17 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", + "grpc_c", + "grpc_c_end2end_client_lib", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "concurrent_connectivity_test", + "language": "c++", + "name": "grpc_c_end2end_test", "src": [ - "test/core/surface/concurrent_connectivity_test.c" + "test/c/end2end/end2end_test.cc" ], "third_party": false, "type": "target" @@ -289,29 +335,33 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", + "grpc_c", "grpc_test_util" ], - "headers": [], - "language": "c", - "name": "dns_resolver_connectivity_test", + "headers": [ + "test/c/end2end/id_serialization.h" + ], + "language": "c++", + "name": "grpc_c_generic_end2end_test", "src": [ - "test/core/client_config/resolvers/dns_resolver_connectivity_test.c" + "test/c/end2end/generic_end2end_test.cc", + "test/c/end2end/id_serialization.cc", + "test/c/end2end/id_serialization.h" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc_plugin_support" ], "headers": [], - "language": "c", - "name": "dns_resolver_test", + "language": "c++", + "name": "grpc_c_plugin", "src": [ - "test/core/client_config/resolvers/dns_resolver_test.c" + "src/compiler/c_plugin.cc" ], "third_party": false, "type": "target" @@ -321,125 +371,115 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_reflection", + "grpc++_test_config", + "grpc++_test_util", + "grpc_cli_libs", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "dualstack_socket_test", + "language": "c++", + "name": "grpc_cli", "src": [ - "test/core/end2end/dualstack_socket_test.c" + "test/cpp/util/grpc_cli.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc_plugin_support" ], "headers": [], - "language": "c", - "name": "endpoint_pair_test", + "language": "c++", + "name": "grpc_cpp_plugin", "src": [ - "test/core/iomgr/endpoint_pair_test.c" + "src/compiler/cpp_plugin.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc_plugin_support" ], "headers": [], - "language": "c", - "name": "ev_epoll_linux_test", + "language": "c++", + "name": "grpc_csharp_plugin", "src": [ - "test/core/iomgr/ev_epoll_linux_test.c" + "src/compiler/csharp_plugin.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc_plugin_support" ], "headers": [], - "language": "c", - "name": "fd_conservation_posix_test", + "language": "c++", + "name": "grpc_node_plugin", "src": [ - "test/core/iomgr/fd_conservation_posix_test.c" + "src/compiler/node_plugin.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc_plugin_support" ], "headers": [], - "language": "c", - "name": "fd_posix_test", + "language": "c++", + "name": "grpc_objective_c_plugin", "src": [ - "test/core/iomgr/fd_posix_test.c" + "src/compiler/objective_c_plugin.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc_plugin_support" ], "headers": [], - "language": "c", - "name": "fling_client", + "language": "c++", + "name": "grpc_python_plugin", "src": [ - "test/core/fling/client.c" + "src/compiler/python_plugin.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc_plugin_support" ], "headers": [], - "language": "c", - "name": "fling_server", + "language": "c++", + "name": "grpc_ruby_plugin", "src": [ - "test/core/fling/server.c" + "src/compiler/ruby_plugin.cc" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], - "headers": [], - "language": "c", - "name": "fling_stream_test", + "headers": [ + "src/proto/grpc/lb/v1/load_balancer.grpc.pb.h", + "src/proto/grpc/lb/v1/load_balancer.pb.h" + ], + "language": "c++", + "name": "grpclb_api_test", "src": [ - "test/core/fling/fling_stream_test.c" + "test/cpp/grpclb/grpclb_api_test.cc" ], "third_party": false, "type": "target" @@ -449,13 +489,18 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], - "headers": [], - "language": "c", - "name": "fling_test", + "headers": [ + "src/proto/grpc/lb/v1/load_balancer.grpc.pb.h", + "src/proto/grpc/lb/v1/load_balancer.pb.h" + ], + "language": "c++", + "name": "grpclb_test", "src": [ - "test/core/fling/fling_test.c" + "test/cpp/grpclb/grpclb_test.cc" ], "third_party": false, "type": "target" @@ -463,25 +508,37 @@ { "deps": [ "gpr", - "grpc" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "gen_hpack_tables", + "language": "c++", + "name": "hybrid_end2end_test", "src": [ - "tools/codegen/core/gen_hpack_tables.c" + "test/cpp/end2end/hybrid_end2end_test.cc" ], "third_party": false, "type": "target" }, { - "deps": [], - "headers": [], - "language": "c", - "name": "gen_legal_metadata_characters", - "src": [ - "tools/codegen/core/gen_legal_metadata_characters.c" + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util", + "interop_client_helper", + "interop_client_main" ], + "headers": [], + "language": "c++", + "name": "interop_client", + "src": [], "third_party": false, "type": "target" }, @@ -490,27 +547,32 @@ "gpr", "gpr_test_util", "grpc", - "grpc_test_util" + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util", + "interop_server_helper", + "interop_server_main" ], "headers": [], - "language": "c", - "name": "goaway_server_test", - "src": [ - "test/core/end2end/goaway_server_test.c" - ], + "language": "c++", + "name": "interop_server", + "src": [], "third_party": false, "type": "target" }, { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "gpr_avl_test", + "language": "c++", + "name": "interop_test", "src": [ - "test/core/support/avl_test.c" + "test/cpp/interop/interop_test.cc" ], "third_party": false, "type": "target" @@ -518,13 +580,18 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "gpr_backoff_test", + "language": "c++", + "name": "json_run_localhost", "src": [ - "test/core/support/backoff_test.c" + "test/cpp/qps/json_run_localhost.cc" ], "third_party": false, "type": "target" @@ -532,13 +599,20 @@ { "deps": [ "gpr", - "gpr_test_util" + "grpc", + "grpc++", + "grpc++_test_config" ], - "headers": [], - "language": "c", - "name": "gpr_cmdline_test", + "headers": [ + "src/proto/grpc/testing/metrics.grpc.pb.h", + "src/proto/grpc/testing/metrics.pb.h", + "test/cpp/util/metrics_server.h" + ], + "language": "c++", + "name": "metrics_client", "src": [ - "test/core/support/cmdline_test.c" + "test/cpp/interop/metrics_client.cc", + "test/cpp/util/metrics_server.h" ], "third_party": false, "type": "target" @@ -546,13 +620,17 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "gpr_cpu_test", + "language": "c++", + "name": "mock_test", "src": [ - "test/core/support/cpu_test.c" + "test/cpp/end2end/mock_test.cc" ], "third_party": false, "type": "target" @@ -560,13 +638,22 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_reflection", + "grpc++_test_util", + "grpc_test_util" ], - "headers": [], - "language": "c", - "name": "gpr_env_test", + "headers": [ + "test/cpp/util/proto_reflection_descriptor_database.h" + ], + "language": "c++", + "name": "proto_server_reflection_test", "src": [ - "test/core/support/env_test.c" + "test/cpp/end2end/proto_server_reflection_test.cc", + "test/cpp/util/proto_reflection_descriptor_database.cc", + "test/cpp/util/proto_reflection_descriptor_database.h" ], "third_party": false, "type": "target" @@ -574,13 +661,18 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util", + "qps" ], "headers": [], - "language": "c", - "name": "gpr_histogram_test", + "language": "c++", + "name": "qps_interarrival_test", "src": [ - "test/core/support/histogram_test.c" + "test/cpp/qps/qps_interarrival_test.cc" ], "third_party": false, "type": "target" @@ -588,13 +680,19 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util", + "qps" ], "headers": [], - "language": "c", - "name": "gpr_host_port_test", + "language": "c++", + "name": "qps_json_driver", "src": [ - "test/core/support/host_port_test.c" + "test/cpp/qps/qps_json_driver.cc" ], "third_party": false, "type": "target" @@ -602,13 +700,19 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util", + "qps" ], "headers": [], - "language": "c", - "name": "gpr_log_test", + "language": "c++", + "name": "qps_openloop_test", "src": [ - "test/core/support/log_test.c" + "test/cpp/qps/qps_openloop_test.cc" ], "third_party": false, "type": "target" @@ -616,13 +720,24 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util", + "qps" ], - "headers": [], - "language": "c", - "name": "gpr_slice_buffer_test", + "headers": [ + "test/cpp/qps/client.h", + "test/cpp/qps/server.h" + ], + "language": "c++", + "name": "qps_worker", "src": [ - "test/core/support/slice_buffer_test.c" + "test/cpp/qps/client.h", + "test/cpp/qps/server.h", + "test/cpp/qps/worker.cc" ], "third_party": false, "type": "target" @@ -630,27 +745,25 @@ { "deps": [ "gpr", - "gpr_test_util" - ], - "headers": [], - "language": "c", - "name": "gpr_slice_test", - "src": [ - "test/core/support/slice_test.c" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util" ], - "third_party": false, - "type": "target" - }, - { - "deps": [ - "gpr", - "gpr_test_util" + "headers": [ + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h" ], - "headers": [], - "language": "c", - "name": "gpr_stack_lockfree_test", + "language": "c++", + "name": "reconnect_interop_client", "src": [ - "test/core/support/stack_lockfree_test.c" + "test/cpp/interop/reconnect_interop_client.cc" ], "third_party": false, "type": "target" @@ -658,27 +771,27 @@ { "deps": [ "gpr", - "gpr_test_util" - ], - "headers": [], - "language": "c", - "name": "gpr_string_test", - "src": [ - "test/core/support/string_test.c" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", + "grpc_test_util", + "reconnect_server", + "test_tcp_server" ], - "third_party": false, - "type": "target" - }, - { - "deps": [ - "gpr", - "gpr_test_util" + "headers": [ + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h" ], - "headers": [], - "language": "c", - "name": "gpr_sync_test", + "language": "c++", + "name": "reconnect_interop_server", "src": [ - "test/core/support/sync_test.c" + "test/cpp/interop/reconnect_interop_server.cc" ], "third_party": false, "type": "target" @@ -686,13 +799,17 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "gpr_thd_test", + "language": "c++", + "name": "secure_auth_context_test", "src": [ - "test/core/support/thd_test.c" + "test/cpp/common/secure_auth_context_test.cc" ], "third_party": false, "type": "target" @@ -700,13 +817,18 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util", + "qps" ], "headers": [], - "language": "c", - "name": "gpr_time_test", + "language": "c++", + "name": "secure_sync_unary_ping_pong_test", "src": [ - "test/core/support/time_test.c" + "test/cpp/qps/secure_sync_unary_ping_pong_test.cc" ], "third_party": false, "type": "target" @@ -714,13 +836,17 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "gpr_tls_test", + "language": "c++", + "name": "server_builder_plugin_test", "src": [ - "test/core/support/tls_test.c" + "test/cpp/end2end/server_builder_plugin_test.cc" ], "third_party": false, "type": "target" @@ -728,13 +854,17 @@ { "deps": [ "gpr", - "gpr_test_util" + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "gpr_useful_test", + "language": "c++", + "name": "server_crash_test", "src": [ - "test/core/support/useful_test.c" + "test/cpp/end2end/server_crash_test.cc" ], "third_party": false, "type": "target" @@ -744,13 +874,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_auth_context_test", + "language": "c++", + "name": "server_crash_test_client", "src": [ - "test/core/security/auth_context_test.c" + "test/cpp/end2end/server_crash_test_client.cc" ], "third_party": false, "type": "target" @@ -760,13 +892,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_b64_test", + "language": "c++", + "name": "shutdown_test", "src": [ - "test/core/security/b64_test.c" + "test/cpp/end2end/shutdown_test.cc" ], "third_party": false, "type": "target" @@ -776,13 +910,14 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_byte_buffer_reader_test", + "language": "c++", + "name": "status_test", "src": [ - "test/core/surface/byte_buffer_reader_test.c" + "test/cpp/util/status_test.cc" ], "third_party": false, "type": "target" @@ -792,13 +927,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_channel_args_test", + "language": "c++", + "name": "streaming_throughput_test", "src": [ - "test/core/channel/channel_args_test.c" + "test/cpp/end2end/streaming_throughput_test.cc" ], "third_party": false, "type": "target" @@ -808,13 +945,36 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_config", + "grpc++_test_util", "grpc_test_util" ], - "headers": [], - "language": "c", - "name": "grpc_channel_stack_test", + "headers": [ + "src/proto/grpc/testing/empty.grpc.pb.h", + "src/proto/grpc/testing/empty.pb.h", + "src/proto/grpc/testing/messages.grpc.pb.h", + "src/proto/grpc/testing/messages.pb.h", + "src/proto/grpc/testing/metrics.grpc.pb.h", + "src/proto/grpc/testing/metrics.pb.h", + "src/proto/grpc/testing/test.grpc.pb.h", + "src/proto/grpc/testing/test.pb.h", + "test/cpp/interop/client_helper.h", + "test/cpp/interop/interop_client.h", + "test/cpp/interop/stress_interop_client.h", + "test/cpp/util/metrics_server.h" + ], + "language": "c++", + "name": "stress_test", "src": [ - "test/core/channel/channel_stack_test.c" + "test/cpp/interop/client_helper.h", + "test/cpp/interop/interop_client.cc", + "test/cpp/interop/interop_client.h", + "test/cpp/interop/stress_interop_client.cc", + "test/cpp/interop/stress_interop_client.h", + "test/cpp/interop/stress_test.cc", + "test/cpp/util/metrics_server.cc", + "test/cpp/util/metrics_server.h" ], "third_party": false, "type": "target" @@ -824,13 +984,15 @@ "gpr", "gpr_test_util", "grpc", + "grpc++", + "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_completion_queue_test", + "language": "c++", + "name": "thread_stress_test", "src": [ - "test/core/surface/completion_queue_test.c" + "test/cpp/end2end/thread_stress_test.cc" ], "third_party": false, "type": "target" @@ -841,10 +1003,10 @@ "grpc" ], "headers": [], - "language": "c", - "name": "grpc_create_jwt", + "language": "c89", + "name": "public_headers_must_be_c89", "src": [ - "test/core/security/create_jwt.c" + "test/core/surface/public_headers_must_be_c89.c" ], "third_party": false, "type": "target" @@ -857,10 +1019,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_credentials_test", + "language": "core", + "name": "alarm_test", "src": [ - "test/core/security/credentials_test.c" + "test/core/surface/alarm_test.c" ], "third_party": false, "type": "target" @@ -873,10 +1035,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_fetch_oauth2", + "language": "core", + "name": "algorithm_test", "src": [ - "test/core/security/fetch_oauth2.c" + "test/core/compression/algorithm_test.c" ], "third_party": false, "type": "target" @@ -884,15 +1046,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "grpc_invalid_channel_args_test", + "language": "core", + "name": "alloc_test", "src": [ - "test/core/surface/invalid_channel_args_test.c" + "test/core/support/alloc_test.c" ], "third_party": false, "type": "target" @@ -905,10 +1065,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_json_token_test", + "language": "core", + "name": "alpn_test", "src": [ - "test/core/security/json_token_test.c" + "test/core/transport/chttp2/alpn_test.c" ], "third_party": false, "type": "target" @@ -921,10 +1081,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_jwt_verifier_test", + "language": "core", + "name": "api_fuzzer", "src": [ - "test/core/security/jwt_verifier_test.c" + "test/core/end2end/fuzzers/api_fuzzer.c" ], "third_party": false, "type": "target" @@ -932,43 +1092,44 @@ { "deps": [ "gpr", - "grpc" + "gpr_test_util", + "grpc", + "grpc_test_util", + "test_tcp_server" ], "headers": [], - "language": "c", - "name": "grpc_print_google_default_creds_token", + "language": "core", + "name": "bad_server_response_test", "src": [ - "test/core/security/print_google_default_creds_token.c" + "test/core/end2end/bad_server_response_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "gpr_test_util", "grpc", "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_security_connector_test", + "language": "core", + "name": "bin_decoder_test", "src": [ - "test/core/security/security_connector_test.c" + "test/core/transport/chttp2/bin_decoder_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "gpr", - "grpc" + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "grpc_verify_jwt", + "language": "core", + "name": "bin_encoder_test", "src": [ - "test/core/security/verify_jwt.c" + "test/core/transport/chttp2/bin_encoder_test.c" ], "third_party": false, "type": "target" @@ -981,10 +1142,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "hpack_parser_fuzzer_test", + "language": "core", + "name": "census_context_test", "src": [ - "test/core/transport/chttp2/hpack_parser_fuzzer_test.c" + "test/core/census/context_test.c" ], "third_party": false, "type": "target" @@ -997,10 +1158,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "hpack_parser_test", + "language": "core", + "name": "census_resource_test", "src": [ - "test/core/transport/chttp2/hpack_parser_test.c" + "test/core/census/resource_test.c" ], "third_party": false, "type": "target" @@ -1013,10 +1174,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "hpack_table_test", + "language": "core", + "name": "channel_create_test", "src": [ - "test/core/transport/chttp2/hpack_table_test.c" + "test/core/surface/channel_create_test.c" ], "third_party": false, "type": "target" @@ -1029,10 +1190,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "http_parser_test", + "language": "core", + "name": "chttp2_hpack_encoder_test", "src": [ - "test/core/http/parser_test.c" + "test/core/transport/chttp2/hpack_encoder_test.c" ], "third_party": false, "type": "target" @@ -1045,10 +1206,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "http_request_fuzzer_test", + "language": "core", + "name": "chttp2_status_conversion_test", "src": [ - "test/core/http/request_fuzzer.c" + "test/core/transport/chttp2/status_conversion_test.c" ], "third_party": false, "type": "target" @@ -1061,10 +1222,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "http_response_fuzzer_test", + "language": "core", + "name": "chttp2_stream_map_test", "src": [ - "test/core/http/response_fuzzer.c" + "test/core/transport/chttp2/stream_map_test.c" ], "third_party": false, "type": "target" @@ -1077,10 +1238,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "httpcli_format_request_test", + "language": "core", + "name": "chttp2_varint_test", "src": [ - "test/core/http/format_request_test.c" + "test/core/transport/chttp2/varint_test.c" ], "third_party": false, "type": "target" @@ -1093,10 +1254,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "httpcli_test", + "language": "core", + "name": "client_fuzzer", "src": [ - "test/core/http/httpcli_test.c" + "test/core/end2end/fuzzers/client_fuzzer.c" ], "third_party": false, "type": "target" @@ -1109,10 +1270,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "httpscli_test", + "language": "core", + "name": "compression_test", "src": [ - "test/core/http/httpscli_test.c" + "test/core/compression/compression_test.c" ], "third_party": false, "type": "target" @@ -1125,10 +1286,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "init_test", + "language": "core", + "name": "concurrent_connectivity_test", "src": [ - "test/core/surface/init_test.c" + "test/core/surface/concurrent_connectivity_test.c" ], "third_party": false, "type": "target" @@ -1141,10 +1302,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "internal_api_canary_iomgr_test", + "language": "core", + "name": "dns_resolver_connectivity_test", "src": [ - "test/core/internal_api_canaries/iomgr.c" + "test/core/client_config/resolvers/dns_resolver_connectivity_test.c" ], "third_party": false, "type": "target" @@ -1157,10 +1318,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "internal_api_canary_support_test", + "language": "core", + "name": "dns_resolver_test", "src": [ - "test/core/internal_api_canaries/iomgr.c" + "test/core/client_config/resolvers/dns_resolver_test.c" ], "third_party": false, "type": "target" @@ -1173,10 +1334,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "internal_api_canary_transport_test", + "language": "core", + "name": "dualstack_socket_test", "src": [ - "test/core/internal_api_canaries/iomgr.c" + "test/core/end2end/dualstack_socket_test.c" ], "third_party": false, "type": "target" @@ -1189,10 +1350,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "invalid_call_argument_test", + "language": "core", + "name": "endpoint_pair_test", "src": [ - "test/core/end2end/invalid_call_argument_test.c" + "test/core/iomgr/endpoint_pair_test.c" ], "third_party": false, "type": "target" @@ -1205,10 +1366,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "json_fuzzer_test", + "language": "core", + "name": "ev_epoll_linux_test", "src": [ - "test/core/json/fuzzer.c" + "test/core/iomgr/ev_epoll_linux_test.c" ], "third_party": false, "type": "target" @@ -1216,13 +1377,15 @@ { "deps": [ "gpr", - "grpc" + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c", - "name": "json_rewrite", + "language": "core", + "name": "fd_conservation_posix_test", "src": [ - "test/core/json/json_rewrite.c" + "test/core/iomgr/fd_conservation_posix_test.c" ], "third_party": false, "type": "target" @@ -1235,10 +1398,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "json_rewrite_test", + "language": "core", + "name": "fd_posix_test", "src": [ - "test/core/json/json_rewrite_test.c" + "test/core/iomgr/fd_posix_test.c" ], "third_party": false, "type": "target" @@ -1251,10 +1414,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "json_stream_error_test", + "language": "core", + "name": "fling_client", "src": [ - "test/core/json/json_stream_error_test.c" + "test/core/fling/client.c" ], "third_party": false, "type": "target" @@ -1267,10 +1430,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "json_test", + "language": "core", + "name": "fling_server", "src": [ - "test/core/json/json_test.c" + "test/core/fling/server.c" ], "third_party": false, "type": "target" @@ -1283,10 +1446,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "lame_client_test", + "language": "core", + "name": "fling_stream_test", "src": [ - "test/core/surface/lame_client_test.c" + "test/core/fling/fling_stream_test.c" ], "third_party": false, "type": "target" @@ -1299,10 +1462,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "lb_policies_test", + "language": "core", + "name": "fling_test", "src": [ - "test/core/client_config/lb_policies_test.c" + "test/core/fling/fling_test.c" ], "third_party": false, "type": "target" @@ -1310,31 +1473,24 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc" ], "headers": [], - "language": "c", - "name": "load_file_test", + "language": "core", + "name": "gen_hpack_tables", "src": [ - "test/core/iomgr/load_file_test.c" + "tools/codegen/core/gen_hpack_tables.c" ], "third_party": false, "type": "target" }, { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" - ], + "deps": [], "headers": [], - "language": "c", - "name": "low_level_ping_pong_benchmark", + "language": "core", + "name": "gen_legal_metadata_characters", "src": [ - "test/core/network_benchmarks/low_level_ping_pong.c" + "tools/codegen/core/gen_legal_metadata_characters.c" ], "third_party": false, "type": "target" @@ -1347,10 +1503,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "message_compress_test", + "language": "core", + "name": "goaway_server_test", "src": [ - "test/core/compression/message_compress_test.c" + "test/core/end2end/goaway_server_test.c" ], "third_party": false, "type": "target" @@ -1358,15 +1514,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "mlog_test", + "language": "core", + "name": "gpr_avl_test", "src": [ - "test/core/census/mlog_test.c" + "test/core/support/avl_test.c" ], "third_party": false, "type": "target" @@ -1374,15 +1528,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "multiple_server_queues_test", + "language": "core", + "name": "gpr_backoff_test", "src": [ - "test/core/end2end/multiple_server_queues_test.c" + "test/core/support/backoff_test.c" ], "third_party": false, "type": "target" @@ -1393,10 +1545,10 @@ "gpr_test_util" ], "headers": [], - "language": "c", - "name": "murmur_hash_test", + "language": "core", + "name": "gpr_cmdline_test", "src": [ - "test/core/support/murmur_hash_test.c" + "test/core/support/cmdline_test.c" ], "third_party": false, "type": "target" @@ -1404,15 +1556,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "nanopb_fuzzer_response_test", + "language": "core", + "name": "gpr_cpu_test", "src": [ - "test/core/nanopb/fuzzer_response.c" + "test/core/support/cpu_test.c" ], "third_party": false, "type": "target" @@ -1420,15 +1570,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "nanopb_fuzzer_serverlist_test", + "language": "core", + "name": "gpr_env_test", "src": [ - "test/core/nanopb/fuzzer_serverlist.c" + "test/core/support/env_test.c" ], "third_party": false, "type": "target" @@ -1436,15 +1584,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "no_server_test", + "language": "core", + "name": "gpr_histogram_test", "src": [ - "test/core/end2end/no_server_test.c" + "test/core/support/histogram_test.c" ], "third_party": false, "type": "target" @@ -1452,15 +1598,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "resolve_address_test", + "language": "core", + "name": "gpr_host_port_test", "src": [ - "test/core/iomgr/resolve_address_test.c" + "test/core/support/host_port_test.c" ], "third_party": false, "type": "target" @@ -1468,15 +1612,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "secure_channel_create_test", + "language": "core", + "name": "gpr_log_test", "src": [ - "test/core/surface/secure_channel_create_test.c" + "test/core/support/log_test.c" ], "third_party": false, "type": "target" @@ -1484,15 +1626,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "secure_endpoint_test", + "language": "core", + "name": "gpr_slice_buffer_test", "src": [ - "test/core/security/secure_endpoint_test.c" + "test/core/support/slice_buffer_test.c" ], "third_party": false, "type": "target" @@ -1500,15 +1640,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "sequential_connectivity_test", + "language": "core", + "name": "gpr_slice_test", "src": [ - "test/core/surface/sequential_connectivity_test.c" + "test/core/support/slice_test.c" ], "third_party": false, "type": "target" @@ -1516,15 +1654,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "server_chttp2_test", + "language": "core", + "name": "gpr_stack_lockfree_test", "src": [ - "test/core/surface/server_chttp2_test.c" + "test/core/support/stack_lockfree_test.c" ], "third_party": false, "type": "target" @@ -1532,15 +1668,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "server_fuzzer", + "language": "core", + "name": "gpr_string_test", "src": [ - "test/core/end2end/fuzzers/server_fuzzer.c" + "test/core/support/string_test.c" ], "third_party": false, "type": "target" @@ -1548,15 +1682,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "server_test", + "language": "core", + "name": "gpr_sync_test", "src": [ - "test/core/surface/server_test.c" + "test/core/support/sync_test.c" ], "third_party": false, "type": "target" @@ -1564,16 +1696,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util", - "test_tcp_server" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "set_initial_connect_string_test", + "language": "core", + "name": "gpr_thd_test", "src": [ - "test/core/client_config/set_initial_connect_string_test.c" + "test/core/support/thd_test.c" ], "third_party": false, "type": "target" @@ -1581,15 +1710,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "sockaddr_resolver_test", + "language": "core", + "name": "gpr_time_test", "src": [ - "test/core/client_config/resolvers/sockaddr_resolver_test.c" + "test/core/support/time_test.c" ], "third_party": false, "type": "target" @@ -1597,15 +1724,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "sockaddr_utils_test", + "language": "core", + "name": "gpr_tls_test", "src": [ - "test/core/iomgr/sockaddr_utils_test.c" + "test/core/support/tls_test.c" ], "third_party": false, "type": "target" @@ -1613,15 +1738,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "gpr_test_util" ], "headers": [], - "language": "c", - "name": "socket_utils_test", + "language": "core", + "name": "gpr_useful_test", "src": [ - "test/core/iomgr/socket_utils_test.c" + "test/core/support/useful_test.c" ], "third_party": false, "type": "target" @@ -1634,10 +1757,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "tcp_client_posix_test", + "language": "core", + "name": "grpc_auth_context_test", "src": [ - "test/core/iomgr/tcp_client_posix_test.c" + "test/core/security/auth_context_test.c" ], "third_party": false, "type": "target" @@ -1650,10 +1773,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "tcp_posix_test", + "language": "core", + "name": "grpc_b64_test", "src": [ - "test/core/iomgr/tcp_posix_test.c" + "test/core/security/b64_test.c" ], "third_party": false, "type": "target" @@ -1666,10 +1789,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "tcp_server_posix_test", + "language": "core", + "name": "grpc_byte_buffer_reader_test", "src": [ - "test/core/iomgr/tcp_server_posix_test.c" + "test/core/surface/byte_buffer_reader_test.c" ], "third_party": false, "type": "target" @@ -1682,10 +1805,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "time_averaged_stats_test", + "language": "core", + "name": "grpc_channel_args_test", "src": [ - "test/core/iomgr/time_averaged_stats_test.c" + "test/core/channel/channel_args_test.c" ], "third_party": false, "type": "target" @@ -1698,10 +1821,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "timeout_encoding_test", + "language": "core", + "name": "grpc_channel_stack_test", "src": [ - "test/core/transport/timeout_encoding_test.c" + "test/core/channel/channel_stack_test.c" ], "third_party": false, "type": "target" @@ -1714,10 +1837,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "timer_heap_test", + "language": "core", + "name": "grpc_completion_queue_test", "src": [ - "test/core/iomgr/timer_heap_test.c" + "test/core/surface/completion_queue_test.c" ], "third_party": false, "type": "target" @@ -1725,15 +1848,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc" ], "headers": [], - "language": "c", - "name": "timer_list_test", + "language": "core", + "name": "grpc_create_jwt", "src": [ - "test/core/iomgr/timer_list_test.c" + "test/core/security/create_jwt.c" ], "third_party": false, "type": "target" @@ -1746,10 +1867,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "transport_connectivity_state_test", + "language": "core", + "name": "grpc_credentials_test", "src": [ - "test/core/transport/connectivity_state_test.c" + "test/core/security/credentials_test.c" ], "third_party": false, "type": "target" @@ -1762,10 +1883,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "transport_metadata_test", + "language": "core", + "name": "grpc_fetch_oauth2", "src": [ - "test/core/transport/metadata_test.c" + "test/core/security/fetch_oauth2.c" ], "third_party": false, "type": "target" @@ -1778,10 +1899,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "transport_security_test", + "language": "core", + "name": "grpc_invalid_channel_args_test", "src": [ - "test/core/tsi/transport_security_test.c" + "test/core/surface/invalid_channel_args_test.c" ], "third_party": false, "type": "target" @@ -1794,10 +1915,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "udp_server_test", + "language": "core", + "name": "grpc_json_token_test", "src": [ - "test/core/iomgr/udp_server_test.c" + "test/core/security/json_token_test.c" ], "third_party": false, "type": "target" @@ -1810,10 +1931,10 @@ "grpc_test_util" ], "headers": [], - "language": "c", - "name": "uri_fuzzer_test", + "language": "core", + "name": "grpc_jwt_verifier_test", "src": [ - "test/core/client_config/uri_fuzzer_test.c" + "test/core/security/jwt_verifier_test.c" ], "third_party": false, "type": "target" @@ -1821,15 +1942,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util" + "grpc" ], "headers": [], - "language": "c", - "name": "uri_parser_test", + "language": "core", + "name": "grpc_print_google_default_creds_token", "src": [ - "test/core/client_config/uri_parser_test.c" + "test/core/security/print_google_default_creds_token.c" ], "third_party": false, "type": "target" @@ -1839,15 +1958,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "alarm_cpp_test", + "language": "core", + "name": "grpc_security_connector_test", "src": [ - "test/cpp/common/alarm_cpp_test.cc" + "test/core/security/security_connector_test.c" ], "third_party": false, "type": "target" @@ -1855,17 +1972,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc++", - "grpc++_test_util", - "grpc_test_util" + "grpc" ], "headers": [], - "language": "c++", - "name": "async_end2end_test", + "language": "core", + "name": "grpc_verify_jwt", "src": [ - "test/cpp/end2end/async_end2end_test.cc" + "test/core/security/verify_jwt.c" ], "third_party": false, "type": "target" @@ -1875,15 +1988,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "auth_property_iterator_test", + "language": "core", + "name": "hpack_parser_fuzzer_test", "src": [ - "test/cpp/common/auth_property_iterator_test.cc" + "test/core/transport/chttp2/hpack_parser_fuzzer_test.c" ], "third_party": false, "type": "target" @@ -1891,14 +2002,15 @@ { "deps": [ "gpr", + "gpr_test_util", "grpc", - "grpc++" + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "channel_arguments_test", + "language": "core", + "name": "hpack_parser_test", "src": [ - "test/cpp/common/channel_arguments_test.cc" + "test/core/transport/chttp2/hpack_parser_test.c" ], "third_party": false, "type": "target" @@ -1908,16 +2020,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", - "grpc_cli_libs", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "cli_call_test", + "language": "core", + "name": "hpack_table_test", "src": [ - "test/cpp/util/cli_call_test.cc" + "test/core/transport/chttp2/hpack_table_test.c" ], "third_party": false, "type": "target" @@ -1927,15 +2036,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "client_crash_test", + "language": "core", + "name": "http_parser_test", "src": [ - "test/cpp/end2end/client_crash_test.cc" + "test/core/http/parser_test.c" ], "third_party": false, "type": "target" @@ -1945,15 +2052,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "client_crash_test_server", + "language": "core", + "name": "http_request_fuzzer_test", "src": [ - "test/cpp/end2end/client_crash_test_server.cc" + "test/core/http/request_fuzzer.c" ], "third_party": false, "type": "target" @@ -1961,51 +2066,31 @@ { "deps": [ "gpr", + "gpr_test_util", "grpc", - "grpc++", - "grpc++_codegen_base" - ], - "headers": [ - "src/proto/grpc/testing/control.grpc.pb.h", - "src/proto/grpc/testing/control.pb.h", - "src/proto/grpc/testing/messages.grpc.pb.h", - "src/proto/grpc/testing/messages.pb.h", - "src/proto/grpc/testing/payloads.grpc.pb.h", - "src/proto/grpc/testing/payloads.pb.h", - "src/proto/grpc/testing/services.grpc.pb.h", - "src/proto/grpc/testing/services.pb.h", - "src/proto/grpc/testing/stats.grpc.pb.h", - "src/proto/grpc/testing/stats.pb.h" + "grpc_test_util" ], - "language": "c++", - "name": "codegen_test_full", + "headers": [], + "language": "core", + "name": "http_response_fuzzer_test", "src": [ - "test/cpp/codegen/codegen_test_full.cc" + "test/core/http/response_fuzzer.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc++_codegen_base", - "grpc++_codegen_base_src" - ], - "headers": [ - "src/proto/grpc/testing/control.grpc.pb.h", - "src/proto/grpc/testing/control.pb.h", - "src/proto/grpc/testing/messages.grpc.pb.h", - "src/proto/grpc/testing/messages.pb.h", - "src/proto/grpc/testing/payloads.grpc.pb.h", - "src/proto/grpc/testing/payloads.pb.h", - "src/proto/grpc/testing/services.grpc.pb.h", - "src/proto/grpc/testing/services.pb.h", - "src/proto/grpc/testing/stats.grpc.pb.h", - "src/proto/grpc/testing/stats.pb.h" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], - "language": "c++", - "name": "codegen_test_minimal", + "headers": [], + "language": "core", + "name": "httpcli_format_request_test", "src": [ - "test/cpp/codegen/codegen_test_minimal.cc" + "test/core/http/format_request_test.c" ], "third_party": false, "type": "target" @@ -2013,14 +2098,15 @@ { "deps": [ "gpr", + "gpr_test_util", "grpc", - "grpc++" + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "credentials_test", + "language": "core", + "name": "httpcli_test", "src": [ - "test/cpp/client/credentials_test.cc" + "test/core/http/httpcli_test.c" ], "third_party": false, "type": "target" @@ -2030,14 +2116,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "cxx_byte_buffer_test", + "language": "core", + "name": "httpscli_test", "src": [ - "test/cpp/util/byte_buffer_test.cc" + "test/core/http/httpscli_test.c" ], "third_party": false, "type": "target" @@ -2047,27 +2132,29 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "cxx_slice_test", + "language": "core", + "name": "init_test", "src": [ - "test/cpp/util/slice_test.cc" + "test/core/surface/init_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc++" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "cxx_string_ref_test", + "language": "core", + "name": "internal_api_canary_iomgr_test", "src": [ - "test/cpp/util/string_ref_test.cc" + "test/core/internal_api_canaries/iomgr.c" ], "third_party": false, "type": "target" @@ -2077,14 +2164,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "cxx_time_test", + "language": "core", + "name": "internal_api_canary_support_test", "src": [ - "test/cpp/util/time_test.cc" + "test/core/internal_api_canaries/iomgr.c" ], "third_party": false, "type": "target" @@ -2094,15 +2180,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "end2end_test", + "language": "core", + "name": "internal_api_canary_transport_test", "src": [ - "test/cpp/end2end/end2end_test.cc" + "test/core/internal_api_canaries/iomgr.c" ], "third_party": false, "type": "target" @@ -2112,15 +2196,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "generic_end2end_test", + "language": "core", + "name": "invalid_call_argument_test", "src": [ - "test/cpp/end2end/generic_end2end_test.cc" + "test/core/end2end/invalid_call_argument_test.c" ], "third_party": false, "type": "target" @@ -2128,17 +2210,15 @@ { "deps": [ "gpr", + "gpr_test_util", "grpc", - "grpc++" - ], - "headers": [ - "src/proto/grpc/testing/compiler_test.grpc.pb.h", - "src/proto/grpc/testing/compiler_test.pb.h" + "grpc_test_util" ], - "language": "c++", - "name": "golden_file_test", + "headers": [], + "language": "core", + "name": "json_fuzzer_test", "src": [ - "test/cpp/codegen/golden_file_test.cc" + "test/core/json/fuzzer.c" ], "third_party": false, "type": "target" @@ -2146,19 +2226,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc++", - "grpc++_test_util", - "grpc_c", - "grpc_c_end2end_client_lib", - "grpc_test_util" + "grpc" ], "headers": [], - "language": "c++", - "name": "grpc_c_end2end_test", + "language": "core", + "name": "json_rewrite", "src": [ - "test/c/end2end/end2end_test.cc" + "test/core/json/json_rewrite.c" ], "third_party": false, "type": "target" @@ -2168,33 +2242,29 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", - "grpc_c", "grpc_test_util" ], - "headers": [ - "test/c/end2end/id_serialization.h" - ], - "language": "c++", - "name": "grpc_c_generic_end2end_test", + "headers": [], + "language": "core", + "name": "json_rewrite_test", "src": [ - "test/c/end2end/generic_end2end_test.cc", - "test/c/end2end/id_serialization.cc", - "test/c/end2end/id_serialization.h" + "test/core/json/json_rewrite_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_c_plugin", + "language": "core", + "name": "json_stream_error_test", "src": [ - "src/compiler/c_plugin.cc" + "test/core/json/json_stream_error_test.c" ], "third_party": false, "type": "target" @@ -2204,115 +2274,125 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_reflection", - "grpc++_test_config", - "grpc++_test_util", - "grpc_cli_libs", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_cli", + "language": "core", + "name": "json_test", "src": [ - "test/cpp/util/grpc_cli.cc" + "test/core/json/json_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_cpp_plugin", + "language": "core", + "name": "lame_client_test", "src": [ - "src/compiler/cpp_plugin.cc" + "test/core/surface/lame_client_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_csharp_plugin", + "language": "core", + "name": "lb_policies_test", "src": [ - "src/compiler/csharp_plugin.cc" + "test/core/client_config/lb_policies_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_node_plugin", + "language": "core", + "name": "load_file_test", "src": [ - "src/compiler/node_plugin.cc" + "test/core/iomgr/load_file_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_objective_c_plugin", + "language": "core", + "name": "low_level_ping_pong_benchmark", "src": [ - "src/compiler/objective_c_plugin.cc" + "test/core/network_benchmarks/low_level_ping_pong.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_python_plugin", + "language": "core", + "name": "message_compress_test", "src": [ - "src/compiler/python_plugin.cc" + "test/core/compression/message_compress_test.c" ], "third_party": false, "type": "target" }, { "deps": [ - "grpc_plugin_support" + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "grpc_ruby_plugin", + "language": "core", + "name": "mlog_test", "src": [ - "src/compiler/ruby_plugin.cc" + "test/core/census/mlog_test.c" ], "third_party": false, "type": "target" }, { "deps": [ + "gpr", + "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], - "headers": [ - "src/proto/grpc/lb/v1/load_balancer.grpc.pb.h", - "src/proto/grpc/lb/v1/load_balancer.pb.h" - ], - "language": "c++", - "name": "grpclb_api_test", + "headers": [], + "language": "core", + "name": "multiple_server_queues_test", "src": [ - "test/cpp/grpclb/grpclb_api_test.cc" + "test/core/end2end/multiple_server_queues_test.c" ], "third_party": false, "type": "target" @@ -2320,20 +2400,13 @@ { "deps": [ "gpr", - "gpr_test_util", - "grpc", - "grpc++", - "grpc++_test_util", - "grpc_test_util" - ], - "headers": [ - "src/proto/grpc/lb/v1/load_balancer.grpc.pb.h", - "src/proto/grpc/lb/v1/load_balancer.pb.h" + "gpr_test_util" ], - "language": "c++", - "name": "grpclb_test", + "headers": [], + "language": "core", + "name": "murmur_hash_test", "src": [ - "test/cpp/grpclb/grpclb_test.cc" + "test/core/support/murmur_hash_test.c" ], "third_party": false, "type": "target" @@ -2343,15 +2416,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "hybrid_end2end_test", + "language": "core", + "name": "nanopb_fuzzer_response_test", "src": [ - "test/cpp/end2end/hybrid_end2end_test.cc" + "test/core/nanopb/fuzzer_response.c" ], "third_party": false, "type": "target" @@ -2361,17 +2432,14 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", - "grpc_test_util", - "interop_client_helper", - "interop_client_main" + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "interop_client", - "src": [], + "language": "core", + "name": "nanopb_fuzzer_serverlist_test", + "src": [ + "test/core/nanopb/fuzzer_serverlist.c" + ], "third_party": false, "type": "target" }, @@ -2380,17 +2448,14 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", - "grpc_test_util", - "interop_server_helper", - "interop_server_main" + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "interop_server", - "src": [], + "language": "core", + "name": "no_server_test", + "src": [ + "test/core/end2end/no_server_test.c" + ], "third_party": false, "type": "target" }, @@ -2402,10 +2467,10 @@ "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "interop_test", + "language": "core", + "name": "resolve_address_test", "src": [ - "test/cpp/interop/interop_test.cc" + "test/core/iomgr/resolve_address_test.c" ], "third_party": false, "type": "target" @@ -2415,16 +2480,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "json_run_localhost", + "language": "core", + "name": "secure_channel_create_test", "src": [ - "test/cpp/qps/json_run_localhost.cc" + "test/core/surface/secure_channel_create_test.c" ], "third_party": false, "type": "target" @@ -2432,20 +2494,15 @@ { "deps": [ "gpr", + "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config" - ], - "headers": [ - "src/proto/grpc/testing/metrics.grpc.pb.h", - "src/proto/grpc/testing/metrics.pb.h", - "test/cpp/util/metrics_server.h" + "grpc_test_util" ], - "language": "c++", - "name": "metrics_client", + "headers": [], + "language": "core", + "name": "secure_endpoint_test", "src": [ - "test/cpp/interop/metrics_client.cc", - "test/cpp/util/metrics_server.h" + "test/core/security/secure_endpoint_test.c" ], "third_party": false, "type": "target" @@ -2455,15 +2512,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "mock_test", + "language": "core", + "name": "sequential_connectivity_test", "src": [ - "test/cpp/end2end/mock_test.cc" + "test/core/surface/sequential_connectivity_test.c" ], "third_party": false, "type": "target" @@ -2473,20 +2528,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_reflection", - "grpc++_test_util", "grpc_test_util" ], - "headers": [ - "test/cpp/util/proto_reflection_descriptor_database.h" - ], - "language": "c++", - "name": "proto_server_reflection_test", + "headers": [], + "language": "core", + "name": "server_chttp2_test", "src": [ - "test/cpp/end2end/proto_server_reflection_test.cc", - "test/cpp/util/proto_reflection_descriptor_database.cc", - "test/cpp/util/proto_reflection_descriptor_database.h" + "test/core/surface/server_chttp2_test.c" ], "third_party": false, "type": "target" @@ -2496,16 +2544,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", - "grpc_test_util", - "qps" + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "qps_interarrival_test", + "language": "core", + "name": "server_fuzzer", "src": [ - "test/cpp/qps/qps_interarrival_test.cc" + "test/core/end2end/fuzzers/server_fuzzer.c" ], "third_party": false, "type": "target" @@ -2515,17 +2560,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", - "grpc_test_util", - "qps" + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "qps_json_driver", + "language": "core", + "name": "server_test", "src": [ - "test/cpp/qps/qps_json_driver.cc" + "test/core/surface/server_test.c" ], "third_party": false, "type": "target" @@ -2535,17 +2576,14 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", "grpc_test_util", - "qps" + "test_tcp_server" ], "headers": [], - "language": "c++", - "name": "qps_openloop_test", + "language": "core", + "name": "set_initial_connect_string_test", "src": [ - "test/cpp/qps/qps_openloop_test.cc" + "test/core/client_config/set_initial_connect_string_test.c" ], "third_party": false, "type": "target" @@ -2555,22 +2593,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", - "grpc_test_util", - "qps" - ], - "headers": [ - "test/cpp/qps/client.h", - "test/cpp/qps/server.h" + "grpc_test_util" ], - "language": "c++", - "name": "qps_worker", + "headers": [], + "language": "core", + "name": "sockaddr_resolver_test", "src": [ - "test/cpp/qps/client.h", - "test/cpp/qps/server.h", - "test/cpp/qps/worker.cc" + "test/core/client_config/resolvers/sockaddr_resolver_test.c" ], "third_party": false, "type": "target" @@ -2580,23 +2609,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", "grpc_test_util" ], - "headers": [ - "src/proto/grpc/testing/empty.grpc.pb.h", - "src/proto/grpc/testing/empty.pb.h", - "src/proto/grpc/testing/messages.grpc.pb.h", - "src/proto/grpc/testing/messages.pb.h", - "src/proto/grpc/testing/test.grpc.pb.h", - "src/proto/grpc/testing/test.pb.h" - ], - "language": "c++", - "name": "reconnect_interop_client", + "headers": [], + "language": "core", + "name": "sockaddr_utils_test", "src": [ - "test/cpp/interop/reconnect_interop_client.cc" + "test/core/iomgr/sockaddr_utils_test.c" ], "third_party": false, "type": "target" @@ -2606,25 +2625,29 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", - "grpc_test_util", - "reconnect_server", - "test_tcp_server" + "grpc_test_util" ], - "headers": [ - "src/proto/grpc/testing/empty.grpc.pb.h", - "src/proto/grpc/testing/empty.pb.h", - "src/proto/grpc/testing/messages.grpc.pb.h", - "src/proto/grpc/testing/messages.pb.h", - "src/proto/grpc/testing/test.grpc.pb.h", - "src/proto/grpc/testing/test.pb.h" + "headers": [], + "language": "core", + "name": "socket_utils_test", + "src": [ + "test/core/iomgr/socket_utils_test.c" ], - "language": "c++", - "name": "reconnect_interop_server", + "third_party": false, + "type": "target" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "core", + "name": "tcp_client_posix_test", "src": [ - "test/cpp/interop/reconnect_interop_server.cc" + "test/core/iomgr/tcp_client_posix_test.c" ], "third_party": false, "type": "target" @@ -2634,15 +2657,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "secure_auth_context_test", + "language": "core", + "name": "tcp_posix_test", "src": [ - "test/cpp/common/secure_auth_context_test.cc" + "test/core/iomgr/tcp_posix_test.c" ], "third_party": false, "type": "target" @@ -2652,16 +2673,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", - "grpc_test_util", - "qps" + "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "secure_sync_unary_ping_pong_test", + "language": "core", + "name": "tcp_server_posix_test", "src": [ - "test/cpp/qps/secure_sync_unary_ping_pong_test.cc" + "test/core/iomgr/tcp_server_posix_test.c" ], "third_party": false, "type": "target" @@ -2671,15 +2689,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "server_builder_plugin_test", + "language": "core", + "name": "time_averaged_stats_test", "src": [ - "test/cpp/end2end/server_builder_plugin_test.cc" + "test/core/iomgr/time_averaged_stats_test.c" ], "third_party": false, "type": "target" @@ -2689,15 +2705,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "server_crash_test", + "language": "core", + "name": "timeout_encoding_test", "src": [ - "test/cpp/end2end/server_crash_test.cc" + "test/core/transport/timeout_encoding_test.c" ], "third_party": false, "type": "target" @@ -2707,15 +2721,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "server_crash_test_client", + "language": "core", + "name": "timer_heap_test", "src": [ - "test/cpp/end2end/server_crash_test_client.cc" + "test/core/iomgr/timer_heap_test.c" ], "third_party": false, "type": "target" @@ -2725,15 +2737,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "shutdown_test", + "language": "core", + "name": "timer_list_test", "src": [ - "test/cpp/end2end/shutdown_test.cc" + "test/core/iomgr/timer_list_test.c" ], "third_party": false, "type": "target" @@ -2743,14 +2753,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "status_test", + "language": "core", + "name": "transport_connectivity_state_test", "src": [ - "test/cpp/util/status_test.cc" + "test/core/transport/connectivity_state_test.c" ], "third_party": false, "type": "target" @@ -2760,15 +2769,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "streaming_throughput_test", + "language": "core", + "name": "transport_metadata_test", "src": [ - "test/cpp/end2end/streaming_throughput_test.cc" + "test/core/transport/metadata_test.c" ], "third_party": false, "type": "target" @@ -2778,36 +2785,29 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_config", - "grpc++_test_util", "grpc_test_util" ], - "headers": [ - "src/proto/grpc/testing/empty.grpc.pb.h", - "src/proto/grpc/testing/empty.pb.h", - "src/proto/grpc/testing/messages.grpc.pb.h", - "src/proto/grpc/testing/messages.pb.h", - "src/proto/grpc/testing/metrics.grpc.pb.h", - "src/proto/grpc/testing/metrics.pb.h", - "src/proto/grpc/testing/test.grpc.pb.h", - "src/proto/grpc/testing/test.pb.h", - "test/cpp/interop/client_helper.h", - "test/cpp/interop/interop_client.h", - "test/cpp/interop/stress_interop_client.h", - "test/cpp/util/metrics_server.h" + "headers": [], + "language": "core", + "name": "transport_security_test", + "src": [ + "test/core/tsi/transport_security_test.c" ], - "language": "c++", - "name": "stress_test", + "third_party": false, + "type": "target" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "core", + "name": "udp_server_test", "src": [ - "test/cpp/interop/client_helper.h", - "test/cpp/interop/interop_client.cc", - "test/cpp/interop/interop_client.h", - "test/cpp/interop/stress_interop_client.cc", - "test/cpp/interop/stress_interop_client.h", - "test/cpp/interop/stress_test.cc", - "test/cpp/util/metrics_server.cc", - "test/cpp/util/metrics_server.h" + "test/core/iomgr/udp_server_test.c" ], "third_party": false, "type": "target" @@ -2817,15 +2817,13 @@ "gpr", "gpr_test_util", "grpc", - "grpc++", - "grpc++_test_util", "grpc_test_util" ], "headers": [], - "language": "c++", - "name": "thread_stress_test", + "language": "core", + "name": "uri_fuzzer_test", "src": [ - "test/cpp/end2end/thread_stress_test.cc" + "test/core/client_config/uri_fuzzer_test.c" ], "third_party": false, "type": "target" @@ -2833,13 +2831,15 @@ { "deps": [ "gpr", - "grpc" + "gpr_test_util", + "grpc", + "grpc_test_util" ], "headers": [], - "language": "c89", - "name": "public_headers_must_be_c89", + "language": "core", + "name": "uri_parser_test", "src": [ - "test/core/surface/public_headers_must_be_c89.c" + "test/core/client_config/uri_parser_test.c" ], "third_party": false, "type": "target" @@ -4075,7 +4075,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "src": [ "test/core/end2end/fuzzers/api_fuzzer.c", @@ -4092,7 +4092,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "src": [ "test/core/end2end/fuzzers/client_fuzzer.c", @@ -4109,7 +4109,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "src": [ "test/core/transport/chttp2/hpack_parser_fuzzer_test.c", @@ -4126,7 +4126,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "http_request_fuzzer_test_one_entry", "src": [ "test/core/http/request_fuzzer.c", @@ -4143,7 +4143,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "http_response_fuzzer_test_one_entry", "src": [ "test/core/http/response_fuzzer.c", @@ -4160,7 +4160,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "src": [ "test/core/json/fuzzer.c", @@ -4177,7 +4177,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "src": [ "test/core/nanopb/fuzzer_response.c", @@ -4194,7 +4194,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "src": [ "test/core/nanopb/fuzzer_serverlist.c", @@ -4211,7 +4211,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "src": [ "test/core/end2end/fuzzers/server_fuzzer.c", @@ -4228,7 +4228,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "src": [ "test/core/client_config/uri_fuzzer_test.c", @@ -4237,60 +4237,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "gpr_base" - ], - "headers": [], - "language": "c", - "name": "gpr", - "src": [], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "gpr" - ], - "headers": [ - "test/core/util/test_config.h" - ], - "language": "c", - "name": "gpr_test_util", - "src": [ - "test/core/util/test_config.c", - "test/core/util/test_config.h" - ], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "census", - "gpr", - "grpc_base", - "grpc_lb_policy_grpclb", - "grpc_lb_policy_grpclb", - "grpc_lb_policy_pick_first", - "grpc_lb_policy_round_robin", - "grpc_load_reporting", - "grpc_resolver_dns_native", - "grpc_resolver_sockaddr", - "grpc_secure", - "grpc_transport_chttp2_client_insecure", - "grpc_transport_chttp2_client_secure", - "grpc_transport_chttp2_server_insecure", - "grpc_transport_chttp2_server_secure" - ], - "headers": [], - "language": "c", - "name": "grpc", - "src": [ - "src/core/lib/surface/init.c" - ], - "third_party": false, - "type": "lib" - }, { "deps": [ "gpr", @@ -4328,208 +4274,69 @@ "src/c/init_shutdown.h", "src/c/message.h", "src/c/server.h", - "src/c/server_context.h", - "src/c/server_incoming_queue.h", - "src/c/server_streaming_blocking_call.h", - "src/c/unary_async_call.h", - "src/c/unary_blocking_call.h" - ], - "language": "c", - "name": "grpc_c", - "src": [ - "include/grpc_c/channel.h", - "include/grpc_c/client_context.h", - "include/grpc_c/codegen/bidi_streaming_blocking_call.h", - "include/grpc_c/codegen/client_streaming_blocking_call.h", - "include/grpc_c/codegen/context.h", - "include/grpc_c/codegen/message.h", - "include/grpc_c/codegen/method.h", - "include/grpc_c/codegen/pb_compat.h", - "include/grpc_c/codegen/serialization.h", - "include/grpc_c/codegen/server.h", - "include/grpc_c/codegen/server_streaming_blocking_call.h", - "include/grpc_c/codegen/unary_async_call.h", - "include/grpc_c/codegen/unary_blocking_call.h", - "include/grpc_c/completion_queue.h", - "include/grpc_c/declare_serializer.h", - "include/grpc_c/grpc_c.h", - "include/grpc_c/server.h", - "include/grpc_c/server_context.h", - "include/grpc_c/server_incoming_queue.h", - "include/grpc_c/status.h", - "src/c/alloc.c", - "src/c/alloc.h", - "src/c/array.c", - "src/c/array.h", - "src/c/bidi_streaming_blocking_call.c", - "src/c/bidi_streaming_blocking_call.h", - "src/c/call_ops.c", - "src/c/call_ops.h", - "src/c/channel.c", - "src/c/client_context.c", - "src/c/client_context.h", - "src/c/client_streaming_blocking_call.c", - "src/c/client_streaming_blocking_call.h", - "src/c/completion_queue.c", - "src/c/completion_queue.h", - "src/c/context.c", - "src/c/context.h", - "src/c/init_shutdown.c", - "src/c/init_shutdown.h", - "src/c/message.c", - "src/c/message.h", - "src/c/pb_compat.c", - "src/c/server.c", - "src/c/server.h", - "src/c/server_context.c", - "src/c/server_context.h", - "src/c/server_incoming_queue.c", - "src/c/server_incoming_queue.h", - "src/c/server_streaming_blocking_call.c", - "src/c/server_streaming_blocking_call.h", - "src/c/unary_async_call.c", - "src/c/unary_async_call.h", - "src/c/unary_blocking_call.c", - "src/c/unary_blocking_call.h" - ], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_c", - "grpc_test_util", - "nanopb" - ], - "headers": [ - "src/proto/grpc/testing/echo.grpc.pbc.h", - "src/proto/grpc/testing/echo.pbc.h", - "src/proto/grpc/testing/echo_messages.grpc.pbc.h", - "src/proto/grpc/testing/echo_messages.pbc.h", - "test/c/end2end/end2end_test_client.h" - ], - "language": "c", - "name": "grpc_c_end2end_client_lib", - "src": [ - "test/c/end2end/end2end_test_client.c", - "test/c/end2end/end2end_test_client.h" - ], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "gpr", - "grpc_base", - "grpc_transport_chttp2_client_secure", - "grpc_transport_cronet_client_secure" - ], - "headers": [], - "language": "c", - "name": "grpc_cronet", - "src": [ - "src/core/lib/surface/init.c" - ], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "gpr", - "grpc" - ], - "headers": [], - "language": "c", - "name": "grpc_dll", - "src": [], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_base", - "grpc_test_util_base" - ], - "headers": [ - "test/core/end2end/data/ssl_test_data.h", - "test/core/security/oauth2_utils.h" - ], - "language": "c", - "name": "grpc_test_util", - "src": [ - "test/core/end2end/data/client_certs.c", - "test/core/end2end/data/server1_cert.c", - "test/core/end2end/data/server1_key.c", - "test/core/end2end/data/ssl_test_data.h", - "test/core/end2end/data/test_root_cert.c", - "test/core/security/oauth2_utils.c", - "test/core/security/oauth2_utils.h" - ], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util_base", - "grpc_unsecure" - ], - "headers": [], - "language": "c", - "name": "grpc_test_util_unsecure", - "src": [], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "census", - "gpr", - "grpc_base", - "grpc_lb_policy_grpclb", - "grpc_lb_policy_grpclb", - "grpc_lb_policy_pick_first", - "grpc_lb_policy_round_robin", - "grpc_load_reporting", - "grpc_resolver_dns_native", - "grpc_resolver_sockaddr", - "grpc_transport_chttp2_client_insecure", - "grpc_transport_chttp2_server_insecure" - ], - "headers": [], - "language": "c", - "name": "grpc_unsecure", - "src": [ - "src/core/lib/surface/init.c", - "src/core/lib/surface/init_unsecure.c" - ], - "third_party": false, - "type": "lib" - }, - { - "deps": [ - "gpr", - "gpr_test_util", - "grpc", - "grpc_test_util", - "test_tcp_server" - ], - "headers": [ - "test/core/util/reconnect_server.h" + "src/c/server_context.h", + "src/c/server_incoming_queue.h", + "src/c/server_streaming_blocking_call.h", + "src/c/unary_async_call.h", + "src/c/unary_blocking_call.h" ], "language": "c", - "name": "reconnect_server", + "name": "grpc_c", "src": [ - "test/core/util/reconnect_server.c", - "test/core/util/reconnect_server.h" + "include/grpc_c/channel.h", + "include/grpc_c/client_context.h", + "include/grpc_c/codegen/bidi_streaming_blocking_call.h", + "include/grpc_c/codegen/client_streaming_blocking_call.h", + "include/grpc_c/codegen/context.h", + "include/grpc_c/codegen/message.h", + "include/grpc_c/codegen/method.h", + "include/grpc_c/codegen/pb_compat.h", + "include/grpc_c/codegen/serialization.h", + "include/grpc_c/codegen/server.h", + "include/grpc_c/codegen/server_streaming_blocking_call.h", + "include/grpc_c/codegen/unary_async_call.h", + "include/grpc_c/codegen/unary_blocking_call.h", + "include/grpc_c/completion_queue.h", + "include/grpc_c/declare_serializer.h", + "include/grpc_c/grpc_c.h", + "include/grpc_c/server.h", + "include/grpc_c/server_context.h", + "include/grpc_c/server_incoming_queue.h", + "include/grpc_c/status.h", + "src/c/alloc.c", + "src/c/alloc.h", + "src/c/array.c", + "src/c/array.h", + "src/c/bidi_streaming_blocking_call.c", + "src/c/bidi_streaming_blocking_call.h", + "src/c/call_ops.c", + "src/c/call_ops.h", + "src/c/channel.c", + "src/c/client_context.c", + "src/c/client_context.h", + "src/c/client_streaming_blocking_call.c", + "src/c/client_streaming_blocking_call.h", + "src/c/completion_queue.c", + "src/c/completion_queue.h", + "src/c/context.c", + "src/c/context.h", + "src/c/init_shutdown.c", + "src/c/init_shutdown.h", + "src/c/message.c", + "src/c/message.h", + "src/c/pb_compat.c", + "src/c/server.c", + "src/c/server.h", + "src/c/server_context.c", + "src/c/server_context.h", + "src/c/server_incoming_queue.c", + "src/c/server_incoming_queue.h", + "src/c/server_streaming_blocking_call.c", + "src/c/server_streaming_blocking_call.h", + "src/c/unary_async_call.c", + "src/c/unary_async_call.h", + "src/c/unary_blocking_call.c", + "src/c/unary_blocking_call.h" ], "third_party": false, "type": "lib" @@ -4539,16 +4346,22 @@ "gpr", "gpr_test_util", "grpc", - "grpc_test_util" + "grpc_c", + "grpc_test_util", + "nanopb" ], "headers": [ - "test/core/util/test_tcp_server.h" + "src/proto/grpc/testing/echo.grpc.pbc.h", + "src/proto/grpc/testing/echo.pbc.h", + "src/proto/grpc/testing/echo_messages.grpc.pbc.h", + "src/proto/grpc/testing/echo_messages.pbc.h", + "test/c/end2end/end2end_test_client.h" ], "language": "c", - "name": "test_tcp_server", + "name": "grpc_c_end2end_client_lib", "src": [ - "test/core/util/test_tcp_server.c", - "test/core/util/test_tcp_server.h" + "test/c/end2end/end2end_test_client.c", + "test/c/end2end/end2end_test_client.h" ], "third_party": false, "type": "lib" @@ -4925,6 +4738,193 @@ "third_party": false, "type": "lib" }, + { + "deps": [ + "gpr_base" + ], + "headers": [], + "language": "core", + "name": "gpr", + "src": [], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "gpr" + ], + "headers": [ + "test/core/util/test_config.h" + ], + "language": "core", + "name": "gpr_test_util", + "src": [ + "test/core/util/test_config.c", + "test/core/util/test_config.h" + ], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "census", + "gpr", + "grpc_base", + "grpc_lb_policy_grpclb", + "grpc_lb_policy_grpclb", + "grpc_lb_policy_pick_first", + "grpc_lb_policy_round_robin", + "grpc_load_reporting", + "grpc_resolver_dns_native", + "grpc_resolver_sockaddr", + "grpc_secure", + "grpc_transport_chttp2_client_insecure", + "grpc_transport_chttp2_client_secure", + "grpc_transport_chttp2_server_insecure", + "grpc_transport_chttp2_server_secure" + ], + "headers": [], + "language": "core", + "name": "grpc", + "src": [ + "src/core/lib/surface/init.c" + ], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "gpr", + "grpc_base", + "grpc_transport_chttp2_client_secure", + "grpc_transport_cronet_client_secure" + ], + "headers": [], + "language": "core", + "name": "grpc_cronet", + "src": [ + "src/core/lib/surface/init.c" + ], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "gpr", + "grpc" + ], + "headers": [], + "language": "core", + "name": "grpc_dll", + "src": [], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_base", + "grpc_test_util_base" + ], + "headers": [ + "test/core/end2end/data/ssl_test_data.h", + "test/core/security/oauth2_utils.h" + ], + "language": "core", + "name": "grpc_test_util", + "src": [ + "test/core/end2end/data/client_certs.c", + "test/core/end2end/data/server1_cert.c", + "test/core/end2end/data/server1_key.c", + "test/core/end2end/data/ssl_test_data.h", + "test/core/end2end/data/test_root_cert.c", + "test/core/security/oauth2_utils.c", + "test/core/security/oauth2_utils.h" + ], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util_base", + "grpc_unsecure" + ], + "headers": [], + "language": "core", + "name": "grpc_test_util_unsecure", + "src": [], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "census", + "gpr", + "grpc_base", + "grpc_lb_policy_grpclb", + "grpc_lb_policy_grpclb", + "grpc_lb_policy_pick_first", + "grpc_lb_policy_round_robin", + "grpc_load_reporting", + "grpc_resolver_dns_native", + "grpc_resolver_sockaddr", + "grpc_transport_chttp2_client_insecure", + "grpc_transport_chttp2_server_insecure" + ], + "headers": [], + "language": "core", + "name": "grpc_unsecure", + "src": [ + "src/core/lib/surface/init.c", + "src/core/lib/surface/init_unsecure.c" + ], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util", + "test_tcp_server" + ], + "headers": [ + "test/core/util/reconnect_server.h" + ], + "language": "core", + "name": "reconnect_server", + "src": [ + "test/core/util/reconnect_server.c", + "test/core/util/reconnect_server.h" + ], + "third_party": false, + "type": "lib" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [ + "test/core/util/test_tcp_server.h" + ], + "language": "core", + "name": "test_tcp_server", + "src": [ + "test/core/util/test_tcp_server.c", + "test/core/util/test_tcp_server.h" + ], + "third_party": false, + "type": "lib" + }, { "deps": [ "gpr", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 9c8c1e07a81fd..d138247c587f3 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -12,9 +12,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "alarm_test", + "gtest": true, + "language": "c++", + "name": "alarm_cpp_test", "platforms": [ "linux", "mac", @@ -33,9 +33,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "algorithm_test", + "gtest": true, + "language": "c++", + "name": "async_end2end_test", "platforms": [ "linux", "mac", @@ -54,9 +54,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "alloc_test", + "gtest": true, + "language": "c++", + "name": "auth_property_iterator_test", "platforms": [ "linux", "mac", @@ -75,9 +75,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "alpn_test", + "gtest": true, + "language": "c++", + "name": "channel_arguments_test", "platforms": [ "linux", "mac", @@ -96,9 +96,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "bad_server_response_test", + "gtest": true, + "language": "c++", + "name": "cli_call_test", "platforms": [ "linux", "mac", @@ -106,6 +106,25 @@ "windows" ] }, + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "cpu_cost": 0.1, + "exclude_configs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "client_crash_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, { "args": [], "ci_platforms": [ @@ -117,9 +136,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "bin_decoder_test", + "gtest": true, + "language": "c++", + "name": "codegen_test_full", "platforms": [ "linux", "mac", @@ -138,9 +157,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "bin_encoder_test", + "gtest": true, + "language": "c++", + "name": "codegen_test_minimal", "platforms": [ "linux", "mac", @@ -159,9 +178,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "census_context_test", + "gtest": true, + "language": "c++", + "name": "credentials_test", "platforms": [ "linux", "mac", @@ -180,9 +199,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "census_resource_test", + "gtest": true, + "language": "c++", + "name": "cxx_byte_buffer_test", "platforms": [ "linux", "mac", @@ -201,9 +220,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "channel_create_test", + "gtest": true, + "language": "c++", + "name": "cxx_slice_test", "platforms": [ "linux", "mac", @@ -222,9 +241,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "chttp2_hpack_encoder_test", + "gtest": true, + "language": "c++", + "name": "cxx_string_ref_test", "platforms": [ "linux", "mac", @@ -243,9 +262,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "chttp2_status_conversion_test", + "gtest": true, + "language": "c++", + "name": "cxx_time_test", "platforms": [ "linux", "mac", @@ -261,12 +280,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "chttp2_stream_map_test", + "gtest": true, + "language": "c++", + "name": "end2end_test", "platforms": [ "linux", "mac", @@ -285,9 +304,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "chttp2_varint_test", + "gtest": true, + "language": "c++", + "name": "generic_end2end_test", "platforms": [ "linux", "mac", @@ -306,9 +325,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "compression_test", + "gtest": true, + "language": "c++", + "name": "golden_file_test", "platforms": [ "linux", "mac", @@ -327,9 +346,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "concurrent_connectivity_test", + "gtest": true, + "language": "c++", + "name": "grpc_c_end2end_test", "platforms": [ "linux", "mac", @@ -345,12 +364,12 @@ "posix", "windows" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "dns_resolver_connectivity_test", + "gtest": true, + "language": "c++", + "name": "grpc_c_generic_end2end_test", "platforms": [ "linux", "mac", @@ -369,9 +388,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "dns_resolver_test", + "gtest": true, + "language": "c++", + "name": "grpclb_api_test", "platforms": [ "linux", "mac", @@ -384,18 +403,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "dualstack_socket_test", + "language": "c++", + "name": "grpclb_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -409,9 +430,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "endpoint_pair_test", + "gtest": true, + "language": "c++", + "name": "hybrid_end2end_test", "platforms": [ "linux", "mac", @@ -422,16 +443,20 @@ { "args": [], "ci_platforms": [ - "linux" + "linux", + "mac", + "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "ev_epoll_linux_test", + "language": "c++", + "name": "interop_test", "platforms": [ - "linux" + "linux", + "mac", + "posix" ] }, { @@ -439,18 +464,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "fd_conservation_posix_test", + "gtest": true, + "language": "c++", + "name": "mock_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -458,18 +485,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "fd_posix_test", + "gtest": true, + "language": "c++", + "name": "proto_server_reflection_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -479,12 +508,12 @@ "mac", "posix" ], - "cpu_cost": 1.5, + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "fling_stream_test", + "language": "c++", + "name": "qps_openloop_test", "platforms": [ "linux", "mac", @@ -496,18 +525,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], - "cpu_cost": 1.5, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "fling_test", + "gtest": true, + "language": "c++", + "name": "secure_auth_context_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -517,12 +548,12 @@ "mac", "posix" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "goaway_server_test", + "language": "c++", + "name": "secure_sync_unary_ping_pong_test", "platforms": [ "linux", "mac", @@ -540,9 +571,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "gpr_avl_test", + "gtest": true, + "language": "c++", + "name": "server_builder_plugin_test", "platforms": [ "linux", "mac", @@ -555,20 +586,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "gpr_backoff_test", + "gtest": true, + "language": "c++", + "name": "server_crash_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -582,9 +611,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "gpr_cmdline_test", + "gtest": true, + "language": "c++", + "name": "shutdown_test", "platforms": [ "linux", "mac", @@ -604,8 +633,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_cpu_test", + "language": "c++", + "name": "status_test", "platforms": [ "linux", "mac", @@ -618,20 +647,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "gpr_env_test", + "gtest": true, + "language": "c++", + "name": "streaming_throughput_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -642,12 +669,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 100, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "gpr_histogram_test", + "gtest": true, + "language": "c++", + "name": "thread_stress_test", "platforms": [ "linux", "mac", @@ -667,8 +694,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_host_port_test", + "language": "c89", + "name": "public_headers_must_be_c89", "platforms": [ "linux", "mac", @@ -688,8 +715,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_log_test", + "language": "core", + "name": "alarm_test", "platforms": [ "linux", "mac", @@ -709,8 +736,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_slice_buffer_test", + "language": "core", + "name": "algorithm_test", "platforms": [ "linux", "mac", @@ -730,8 +757,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_slice_test", + "language": "core", + "name": "alloc_test", "platforms": [ "linux", "mac", @@ -747,12 +774,12 @@ "posix", "windows" ], - "cpu_cost": 7, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_stack_lockfree_test", + "language": "core", + "name": "alpn_test", "platforms": [ "linux", "mac", @@ -772,8 +799,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_string_test", + "language": "core", + "name": "bad_server_response_test", "platforms": [ "linux", "mac", @@ -789,12 +816,12 @@ "posix", "windows" ], - "cpu_cost": 10, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_sync_test", + "language": "core", + "name": "bin_decoder_test", "platforms": [ "linux", "mac", @@ -810,12 +837,12 @@ "posix", "windows" ], - "cpu_cost": 10, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_thd_test", + "language": "core", + "name": "bin_encoder_test", "platforms": [ "linux", "mac", @@ -835,8 +862,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_time_test", + "language": "core", + "name": "census_context_test", "platforms": [ "linux", "mac", @@ -856,8 +883,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_tls_test", + "language": "core", + "name": "census_resource_test", "platforms": [ "linux", "mac", @@ -877,8 +904,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "gpr_useful_test", + "language": "core", + "name": "channel_create_test", "platforms": [ "linux", "mac", @@ -898,8 +925,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_auth_context_test", + "language": "core", + "name": "chttp2_hpack_encoder_test", "platforms": [ "linux", "mac", @@ -919,8 +946,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_b64_test", + "language": "core", + "name": "chttp2_status_conversion_test", "platforms": [ "linux", "mac", @@ -940,8 +967,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_byte_buffer_reader_test", + "language": "core", + "name": "chttp2_stream_map_test", "platforms": [ "linux", "mac", @@ -961,8 +988,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_channel_args_test", + "language": "core", + "name": "chttp2_varint_test", "platforms": [ "linux", "mac", @@ -982,8 +1009,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_channel_stack_test", + "language": "core", + "name": "compression_test", "platforms": [ "linux", "mac", @@ -1003,8 +1030,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_completion_queue_test", + "language": "core", + "name": "concurrent_connectivity_test", "platforms": [ "linux", "mac", @@ -1020,12 +1047,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_credentials_test", + "language": "core", + "name": "dns_resolver_connectivity_test", "platforms": [ "linux", "mac", @@ -1045,8 +1072,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_invalid_channel_args_test", + "language": "core", + "name": "dns_resolver_test", "platforms": [ "linux", "mac", @@ -1061,12 +1088,12 @@ "mac", "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_json_token_test", + "language": "core", + "name": "dualstack_socket_test", "platforms": [ "linux", "mac", @@ -1085,8 +1112,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_jwt_verifier_test", + "language": "core", + "name": "endpoint_pair_test", "platforms": [ "linux", "mac", @@ -1097,22 +1124,16 @@ { "args": [], "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" + "linux" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "grpc_security_connector_test", + "language": "core", + "name": "ev_epoll_linux_test", "platforms": [ - "linux", - "mac", - "posix", - "windows" + "linux" ] }, { @@ -1120,20 +1141,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "hpack_parser_test", + "language": "core", + "name": "fd_conservation_posix_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -1141,20 +1160,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "hpack_table_test", + "language": "core", + "name": "fd_posix_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -1162,20 +1179,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 1.5, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "http_parser_test", + "language": "core", + "name": "fling_stream_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -1183,20 +1198,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 1.5, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "httpcli_format_request_test", + "language": "core", + "name": "fling_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -1206,33 +1219,18 @@ "mac", "posix" ], - "cpu_cost": 0.5, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "httpcli_test", + "language": "core", + "name": "goaway_server_test", "platforms": [ "linux", "mac", "posix" ] }, - { - "args": [], - "ci_platforms": [ - "linux" - ], - "cpu_cost": 0.5, - "exclude_configs": [], - "flaky": false, - "gtest": false, - "language": "c", - "name": "httpscli_test", - "platforms": [ - "linux" - ] - }, { "args": [], "ci_platforms": [ @@ -1245,8 +1243,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "init_test", + "language": "core", + "name": "gpr_avl_test", "platforms": [ "linux", "mac", @@ -1262,12 +1260,12 @@ "posix", "windows" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "invalid_call_argument_test", + "language": "core", + "name": "gpr_backoff_test", "platforms": [ "linux", "mac", @@ -1287,8 +1285,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "json_rewrite_test", + "language": "core", + "name": "gpr_cmdline_test", "platforms": [ "linux", "mac", @@ -1308,8 +1306,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "json_stream_error_test", + "language": "core", + "name": "gpr_cpu_test", "platforms": [ "linux", "mac", @@ -1329,8 +1327,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "json_test", + "language": "core", + "name": "gpr_env_test", "platforms": [ "linux", "mac", @@ -1350,8 +1348,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "lame_client_test", + "language": "core", + "name": "gpr_histogram_test", "platforms": [ "linux", "mac", @@ -1367,12 +1365,12 @@ "posix", "windows" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], - "flaky": true, + "flaky": false, "gtest": false, - "language": "c", - "name": "lb_policies_test", + "language": "core", + "name": "gpr_host_port_test", "platforms": [ "linux", "mac", @@ -1392,8 +1390,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "load_file_test", + "language": "core", + "name": "gpr_log_test", "platforms": [ "linux", "mac", @@ -1413,8 +1411,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "message_compress_test", + "language": "core", + "name": "gpr_slice_buffer_test", "platforms": [ "linux", "mac", @@ -1432,10 +1430,10 @@ ], "cpu_cost": 1.0, "exclude_configs": [], - "flaky": true, + "flaky": false, "gtest": false, - "language": "c", - "name": "mlog_test", + "language": "core", + "name": "gpr_slice_test", "platforms": [ "linux", "mac", @@ -1451,12 +1449,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 7, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "multiple_server_queues_test", + "language": "core", + "name": "gpr_stack_lockfree_test", "platforms": [ "linux", "mac", @@ -1476,8 +1474,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "murmur_hash_test", + "language": "core", + "name": "gpr_string_test", "platforms": [ "linux", "mac", @@ -1493,12 +1491,12 @@ "posix", "windows" ], - "cpu_cost": 0.1, + "cpu_cost": 10, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "no_server_test", + "language": "core", + "name": "gpr_sync_test", "platforms": [ "linux", "mac", @@ -1514,12 +1512,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 10, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "resolve_address_test", + "language": "core", + "name": "gpr_thd_test", "platforms": [ "linux", "mac", @@ -1539,8 +1537,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "secure_channel_create_test", + "language": "core", + "name": "gpr_time_test", "platforms": [ "linux", "mac", @@ -1560,8 +1558,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "secure_endpoint_test", + "language": "core", + "name": "gpr_tls_test", "platforms": [ "linux", "mac", @@ -1581,8 +1579,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "sequential_connectivity_test", + "language": "core", + "name": "gpr_useful_test", "platforms": [ "linux", "mac", @@ -1602,8 +1600,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "server_chttp2_test", + "language": "core", + "name": "grpc_auth_context_test", "platforms": [ "linux", "mac", @@ -1623,8 +1621,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "server_test", + "language": "core", + "name": "grpc_b64_test", "platforms": [ "linux", "mac", @@ -1640,12 +1638,12 @@ "posix", "windows" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "set_initial_connect_string_test", + "language": "core", + "name": "grpc_byte_buffer_reader_test", "platforms": [ "linux", "mac", @@ -1665,8 +1663,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "sockaddr_resolver_test", + "language": "core", + "name": "grpc_channel_args_test", "platforms": [ "linux", "mac", @@ -1686,8 +1684,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "sockaddr_utils_test", + "language": "core", + "name": "grpc_channel_stack_test", "platforms": [ "linux", "mac", @@ -1700,18 +1698,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "socket_utils_test", + "language": "core", + "name": "grpc_completion_queue_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -1719,18 +1719,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], - "cpu_cost": 0.5, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "tcp_client_posix_test", + "language": "core", + "name": "grpc_credentials_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -1738,18 +1740,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], - "cpu_cost": 0.2, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "tcp_posix_test", + "language": "core", + "name": "grpc_invalid_channel_args_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -1763,8 +1767,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "tcp_server_posix_test", + "language": "core", + "name": "grpc_json_token_test", "platforms": [ "linux", "mac", @@ -1782,9 +1786,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": false, - "language": "c", - "name": "time_averaged_stats_test", + "gtest": false, + "language": "core", + "name": "grpc_jwt_verifier_test", "platforms": [ "linux", "mac", @@ -1804,8 +1808,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "timeout_encoding_test", + "language": "core", + "name": "grpc_security_connector_test", "platforms": [ "linux", "mac", @@ -1825,8 +1829,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "timer_heap_test", + "language": "core", + "name": "hpack_parser_test", "platforms": [ "linux", "mac", @@ -1846,8 +1850,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "timer_list_test", + "language": "core", + "name": "hpack_table_test", "platforms": [ "linux", "mac", @@ -1867,8 +1871,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "transport_connectivity_state_test", + "language": "core", + "name": "http_parser_test", "platforms": [ "linux", "mac", @@ -1888,8 +1892,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "transport_metadata_test", + "language": "core", + "name": "httpcli_format_request_test", "platforms": [ "linux", "mac", @@ -1904,12 +1908,12 @@ "mac", "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "transport_security_test", + "language": "core", + "name": "httpcli_test", "platforms": [ "linux", "mac", @@ -1919,20 +1923,16 @@ { "args": [], "ci_platforms": [ - "linux", - "mac", - "posix" + "linux" ], - "cpu_cost": 1.0, + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "udp_server_test", + "language": "core", + "name": "httpscli_test", "platforms": [ - "linux", - "mac", - "posix" + "linux" ] }, { @@ -1947,8 +1947,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", - "name": "uri_parser_test", + "language": "core", + "name": "init_test", "platforms": [ "linux", "mac", @@ -1964,12 +1964,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "alarm_cpp_test", + "gtest": false, + "language": "core", + "name": "invalid_call_argument_test", "platforms": [ "linux", "mac", @@ -1988,9 +1988,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "async_end2end_test", + "gtest": false, + "language": "core", + "name": "json_rewrite_test", "platforms": [ "linux", "mac", @@ -2009,9 +2009,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "auth_property_iterator_test", + "gtest": false, + "language": "core", + "name": "json_stream_error_test", "platforms": [ "linux", "mac", @@ -2030,9 +2030,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "channel_arguments_test", + "gtest": false, + "language": "core", + "name": "json_test", "platforms": [ "linux", "mac", @@ -2051,9 +2051,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "cli_call_test", + "gtest": false, + "language": "core", + "name": "lame_client_test", "platforms": [ "linux", "mac", @@ -2066,18 +2066,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], "cpu_cost": 0.1, "exclude_configs": [], - "flaky": false, - "gtest": true, - "language": "c++", - "name": "client_crash_test", + "flaky": true, + "gtest": false, + "language": "core", + "name": "lb_policies_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -2091,9 +2093,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "codegen_test_full", + "gtest": false, + "language": "core", + "name": "load_file_test", "platforms": [ "linux", "mac", @@ -2112,9 +2114,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "codegen_test_minimal", + "gtest": false, + "language": "core", + "name": "message_compress_test", "platforms": [ "linux", "mac", @@ -2132,10 +2134,10 @@ ], "cpu_cost": 1.0, "exclude_configs": [], - "flaky": false, - "gtest": true, - "language": "c++", - "name": "credentials_test", + "flaky": true, + "gtest": false, + "language": "core", + "name": "mlog_test", "platforms": [ "linux", "mac", @@ -2154,9 +2156,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "cxx_byte_buffer_test", + "gtest": false, + "language": "core", + "name": "multiple_server_queues_test", "platforms": [ "linux", "mac", @@ -2175,9 +2177,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "cxx_slice_test", + "gtest": false, + "language": "core", + "name": "murmur_hash_test", "platforms": [ "linux", "mac", @@ -2193,12 +2195,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "cxx_string_ref_test", + "gtest": false, + "language": "core", + "name": "no_server_test", "platforms": [ "linux", "mac", @@ -2217,9 +2219,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "cxx_time_test", + "gtest": false, + "language": "core", + "name": "resolve_address_test", "platforms": [ "linux", "mac", @@ -2235,12 +2237,12 @@ "posix", "windows" ], - "cpu_cost": 0.5, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "end2end_test", + "gtest": false, + "language": "core", + "name": "secure_channel_create_test", "platforms": [ "linux", "mac", @@ -2259,9 +2261,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "generic_end2end_test", + "gtest": false, + "language": "core", + "name": "secure_endpoint_test", "platforms": [ "linux", "mac", @@ -2280,9 +2282,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "golden_file_test", + "gtest": false, + "language": "core", + "name": "sequential_connectivity_test", "platforms": [ "linux", "mac", @@ -2301,9 +2303,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "grpc_c_end2end_test", + "gtest": false, + "language": "core", + "name": "server_chttp2_test", "platforms": [ "linux", "mac", @@ -2322,9 +2324,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "grpc_c_generic_end2end_test", + "gtest": false, + "language": "core", + "name": "server_test", "platforms": [ "linux", "mac", @@ -2340,12 +2342,12 @@ "posix", "windows" ], - "cpu_cost": 1.0, + "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "grpclb_api_test", + "gtest": false, + "language": "core", + "name": "set_initial_connect_string_test", "platforms": [ "linux", "mac", @@ -2365,8 +2367,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c++", - "name": "grpclb_test", + "language": "core", + "name": "sockaddr_resolver_test", "platforms": [ "linux", "mac", @@ -2385,9 +2387,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "hybrid_end2end_test", + "gtest": false, + "language": "core", + "name": "sockaddr_utils_test", "platforms": [ "linux", "mac", @@ -2402,12 +2404,12 @@ "mac", "posix" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c++", - "name": "interop_test", + "language": "core", + "name": "socket_utils_test", "platforms": [ "linux", "mac", @@ -2419,20 +2421,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 0.5, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "mock_test", + "gtest": false, + "language": "core", + "name": "tcp_client_posix_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -2440,20 +2440,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], - "cpu_cost": 1.0, + "cpu_cost": 0.2, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "proto_server_reflection_test", + "gtest": false, + "language": "core", + "name": "tcp_posix_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -2463,12 +2461,12 @@ "mac", "posix" ], - "cpu_cost": 0.5, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c++", - "name": "qps_openloop_test", + "language": "core", + "name": "tcp_server_posix_test", "platforms": [ "linux", "mac", @@ -2486,9 +2484,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "secure_auth_context_test", + "gtest": false, + "language": "core", + "name": "time_averaged_stats_test", "platforms": [ "linux", "mac", @@ -2501,18 +2499,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c++", - "name": "secure_sync_unary_ping_pong_test", + "language": "core", + "name": "timeout_encoding_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -2526,9 +2526,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "server_builder_plugin_test", + "gtest": false, + "language": "core", + "name": "timer_heap_test", "platforms": [ "linux", "mac", @@ -2541,18 +2541,20 @@ "ci_platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ], - "cpu_cost": 0.1, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "server_crash_test", + "gtest": false, + "language": "core", + "name": "timer_list_test", "platforms": [ "linux", "mac", - "posix" + "posix", + "windows" ] }, { @@ -2566,9 +2568,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "shutdown_test", + "gtest": false, + "language": "core", + "name": "transport_connectivity_state_test", "platforms": [ "linux", "mac", @@ -2588,8 +2590,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c++", - "name": "status_test", + "language": "core", + "name": "transport_metadata_test", "platforms": [ "linux", "mac", @@ -2607,9 +2609,9 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "streaming_throughput_test", + "gtest": false, + "language": "core", + "name": "transport_security_test", "platforms": [ "linux", "mac", @@ -2621,20 +2623,18 @@ "ci_platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ], - "cpu_cost": 100, + "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "gtest": true, - "language": "c++", - "name": "thread_stress_test", + "gtest": false, + "language": "core", + "name": "udp_server_test", "platforms": [ "linux", "mac", - "posix", - "windows" + "posix" ] }, { @@ -2649,8 +2649,8 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c89", - "name": "public_headers_must_be_c89", + "language": "core", + "name": "uri_parser_test", "platforms": [ "linux", "mac", diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index c28f3ba39c359..c98ad0cc0b732 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -3,931 +3,18 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alarm_test", "vcxproj\test\alarm_test\alarm_test.vcxproj", "{AFD362D7-0E2A-E700-1F27-9D90F76166DF}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "algorithm_test", "vcxproj\test\algorithm_test\algorithm_test.vcxproj", "{216FDCB2-9D93-0D86-F0F1-12E16312A191}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alloc_test", "vcxproj\test\alloc_test\alloc_test.vcxproj", "{DD37D527-9DFF-1F53-B97F-50CF80AE0650}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alpn_test", "vcxproj\test\alpn_test\alpn_test.vcxproj", "{5BAAE7EA-A972-DD80-F190-29B9E3110BB3}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_client_test", "vcxproj\test/bad_client\bad_client_test\bad_client_test.vcxproj", "{BA67B418-B699-E41A-9CC4-0279C49481A5}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_server_response_test", "vcxproj\test\bad_server_response_test\bad_server_response_test.vcxproj", "{2B73DA77-EF66-362C-24AD-317E3B8B28C1}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {E3110C46-A148-FF65-08FD-3324829BE7FE} = {E3110C46-A148-FF65-08FD-3324829BE7FE} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "badreq_bad_client_test", "vcxproj\test\badreq_bad_client_test\badreq_bad_client_test.vcxproj", "{8A811C28-E04E-A444-E4C1-7588DF5B90AE}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bin_decoder_test", "vcxproj\test\bin_decoder_test\bin_decoder_test.vcxproj", "{6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bin_encoder_test", "vcxproj\test\bin_encoder_test\bin_encoder_test.vcxproj", "{D5C70922-D68E-0E9D-9988-995E0F9A79AE}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "census_context_test", "vcxproj\test\census_context_test\census_context_test.vcxproj", "{5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "census_resource_test", "vcxproj\test\census_resource_test\census_resource_test.vcxproj", "{18CF99B5-3C61-EC3D-9509-3C95334C3B88}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "channel_create_test", "vcxproj\test\channel_create_test\channel_create_test.vcxproj", "{AFC88484-3A2E-32BC-25B2-23DF741D4F3D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_hpack_encoder_test", "vcxproj\test\chttp2_hpack_encoder_test\chttp2_hpack_encoder_test.vcxproj", "{19F92966-3B0E-4FF8-CD7C-435D353E079E}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_status_conversion_test", "vcxproj\test\chttp2_status_conversion_test\chttp2_status_conversion_test.vcxproj", "{ABAD3D2C-078C-7850-B413-3352A07C6176}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_stream_map_test", "vcxproj\test\chttp2_stream_map_test\chttp2_stream_map_test.vcxproj", "{12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_varint_test", "vcxproj\test\chttp2_varint_test\chttp2_varint_test.vcxproj", "{6B29F634-1277-74B8-47F6-78756190BA7B}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compression_test", "vcxproj\test\compression_test\compression_test.vcxproj", "{5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "concurrent_connectivity_test", "vcxproj\test\concurrent_connectivity_test\concurrent_connectivity_test.vcxproj", "{391B366C-D916-45AA-3FE5-67363A46193B}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connection_prefix_bad_client_test", "vcxproj\test\connection_prefix_bad_client_test\connection_prefix_bad_client_test.vcxproj", "{AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns_resolver_connectivity_test", "vcxproj\test\dns_resolver_connectivity_test\dns_resolver_connectivity_test.vcxproj", "{F7B6FE68-E847-D7CA-4062-E737E542BCC3}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns_resolver_test", "vcxproj\test\dns_resolver_test\dns_resolver_test.vcxproj", "{D06E10DC-272A-5203-7066-2698A247DF26}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_nosec_tests", "vcxproj\test/end2end/tests\end2end_nosec_tests\end2end_nosec_tests.vcxproj", "{47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_tests", "vcxproj\test/end2end/tests\end2end_tests\end2end_tests.vcxproj", "{1F1F9084-2A93-B80E-364F-5754894AFAB4}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "endpoint_pair_test", "vcxproj\test\endpoint_pair_test\endpoint_pair_test.vcxproj", "{37166D50-3AAA-1156-19F6-5901DFA55172}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fling_client", "vcxproj\test\fling_client\fling_client.vcxproj", "{0647D598-9611-F659-EA36-DF995C9F736B}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fling_server", "vcxproj\test\fling_server\fling_server.vcxproj", "{5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_hpack_tables", "vcxproj\.\gen_hpack_tables\gen_hpack_tables.vcxproj", "{FCDEA4C7-7F26-05DB-D08F-A08F499026E6}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_legal_metadata_characters", "vcxproj\.\gen_legal_metadata_characters\gen_legal_metadata_characters.vcxproj", "{A635DE99-B131-CA00-2D3B-8691D60B76C2}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr", "vcxproj\.\gpr\gpr.vcxproj", "{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_avl_test", "vcxproj\test\gpr_avl_test\gpr_avl_test.vcxproj", "{144D8CFF-2737-A18A-DCFD-01603533D63F}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_backoff_test", "vcxproj\test\gpr_backoff_test\gpr_backoff_test.vcxproj", "{889F570D-E046-BD52-9E4C-B4CD13DFE2DB}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_cmdline_test", "vcxproj\test\gpr_cmdline_test\gpr_cmdline_test.vcxproj", "{10668A5D-65CD-F530-22D0-747B395B4C26}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_cpu_test", "vcxproj\test\gpr_cpu_test\gpr_cpu_test.vcxproj", "{0CB6DF66-4346-CCD0-C94B-318321C46501}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_env_test", "vcxproj\test\gpr_env_test\gpr_env_test.vcxproj", "{07149650-E8AF-B3D8-9D5B-BC34DC909DB8}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_histogram_test", "vcxproj\test\gpr_histogram_test\gpr_histogram_test.vcxproj", "{EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_host_port_test", "vcxproj\test\gpr_host_port_test\gpr_host_port_test.vcxproj", "{64728265-92F9-103E-6720-8935385458DF}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_log_test", "vcxproj\test\gpr_log_test\gpr_log_test.vcxproj", "{38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_slice_buffer_test", "vcxproj\test\gpr_slice_buffer_test\gpr_slice_buffer_test.vcxproj", "{E679773D-DE89-AEBB-9787-59019989B825}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_slice_test", "vcxproj\test\gpr_slice_test\gpr_slice_test.vcxproj", "{7F2D1623-AF04-DD98-BCE6-61ADB9A52366}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_stack_lockfree_test", "vcxproj\test\gpr_stack_lockfree_test\gpr_stack_lockfree_test.vcxproj", "{AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_string_test", "vcxproj\test\gpr_string_test\gpr_string_test.vcxproj", "{B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_sync_test", "vcxproj\test\gpr_sync_test\gpr_sync_test.vcxproj", "{98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_test_util", "vcxproj\.\gpr_test_util\gpr_test_util.vcxproj", "{EAB0A629-17A9-44DB-B5FF-E91A721FE037}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_thd_test", "vcxproj\test\gpr_thd_test\gpr_thd_test.vcxproj", "{459B2FAC-5FC8-1F47-8053-66D46EA39A49}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_time_test", "vcxproj\test\gpr_time_test\gpr_time_test.vcxproj", "{9779680E-3218-1528-E922-605871A20C3F}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_tls_test", "vcxproj\test\gpr_tls_test\gpr_tls_test.vcxproj", "{F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_useful_test", "vcxproj\test\gpr_useful_test\gpr_useful_test.vcxproj", "{40B790A8-BB01-9F12-5309-C0BEA97C75BC}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc.vcxproj", "{29D16885-7228-4C31-81ED-5F9187C7F2A9}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_auth_context_test", "vcxproj\test\grpc_auth_context_test\grpc_auth_context_test.vcxproj", "{C65A4336-92D6-D6A0-EB86-E3AA425222D0}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_b64_test", "vcxproj\test\grpc_b64_test\grpc_b64_test.vcxproj", "{A19FD81D-DF19-B8A4-4A8A-6967217FEC85}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_byte_buffer_reader_test", "vcxproj\test\grpc_byte_buffer_reader_test\grpc_byte_buffer_reader_test.vcxproj", "{82124768-C986-6C10-8BCC-B255B7C84722}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_channel_args_test", "vcxproj\test\grpc_channel_args_test\grpc_channel_args_test.vcxproj", "{58FB566F-DCD5-3ECE-233E-C1FD13CA2185}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_channel_stack_test", "vcxproj\test\grpc_channel_stack_test\grpc_channel_stack_test.vcxproj", "{E3CEAFE1-8CE9-61F6-A720-E26662246B1F}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_completion_queue_test", "vcxproj\test\grpc_completion_queue_test\grpc_completion_queue_test.vcxproj", "{16CDF507-EB91-D76C-F0A7-A914ABFD8C17}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_create_jwt", "vcxproj\.\grpc_create_jwt\grpc_create_jwt.vcxproj", "{77971F8D-F583-3E77-0E3C-6C1FB6B1749C}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_credentials_test", "vcxproj\test\grpc_credentials_test\grpc_credentials_test.vcxproj", "{8305CC95-25CD-E15F-EA1A-11626FCF5AF9}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_fetch_oauth2", "vcxproj\test\grpc_fetch_oauth2\grpc_fetch_oauth2.vcxproj", "{43722E98-54EC-5058-3DAC-327F45964971}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_invalid_channel_args_test", "vcxproj\test\grpc_invalid_channel_args_test\grpc_invalid_channel_args_test.vcxproj", "{B50FD4F7-5628-9BEC-81B9-EB79A0A45577}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_jwt_verifier_test", "vcxproj\test\grpc_jwt_verifier_test\grpc_jwt_verifier_test.vcxproj", "{60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_print_google_default_creds_token", "vcxproj\.\grpc_print_google_default_creds_token\grpc_print_google_default_creds_token.vcxproj", "{C002965C-8457-CCE5-B1BA-E748FF9A11B6}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_security_connector_test", "vcxproj\test\grpc_security_connector_test\grpc_security_connector_test.vcxproj", "{74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util", "vcxproj\.\grpc_test_util\grpc_test_util.vcxproj", "{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util_unsecure", "vcxproj\.\grpc_test_util_unsecure\grpc_test_util_unsecure.vcxproj", "{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\grpc_unsecure\grpc_unsecure.vcxproj", "{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_verify_jwt", "vcxproj\.\grpc_verify_jwt\grpc_verify_jwt.vcxproj", "{02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_nosec_test", "vcxproj\test/end2end/fixtures\h2_census_nosec_test\h2_census_nosec_test.vcxproj", "{A8039D43-910E-4248-2A22-74366E8C4DCD}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_test", "vcxproj\test/end2end/fixtures\h2_census_test\h2_census_test.vcxproj", "{9E4180B0-81ED-7305-333F-653CE9AB819B}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_nosec_test", "vcxproj\test/end2end/fixtures\h2_compress_nosec_test\h2_compress_nosec_test.vcxproj", "{42826C1F-DCF0-918E-D247-0376DC1EFD50}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_test", "vcxproj\test/end2end/fixtures\h2_compress_test\h2_compress_test.vcxproj", "{C7E516E9-B80F-4BC1-A617-095FC6E14BC9}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_fakesec_test", "vcxproj\test/end2end/fixtures\h2_fakesec_test\h2_fakesec_test.vcxproj", "{0E980562-3AA0-91B1-C590-85C9A899BE44}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_full+trace_nosec_test\h2_full+trace_nosec_test.vcxproj", "{DFD51943-4906-8051-7D66-6A7D50E0D87E}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_test", "vcxproj\test/end2end/fixtures\h2_full+trace_test\h2_full+trace_test.vcxproj", "{16C713C6-062E-F71F-A44C-52DC35494B27}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_nosec_test", "vcxproj\test/end2end/fixtures\h2_full_nosec_test\h2_full_nosec_test.vcxproj", "{345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_test", "vcxproj\test/end2end/fixtures\h2_full_test\h2_full_test.vcxproj", "{EEBEFA75-C625-C823-FE96-9AD64887B57D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_nosec_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_nosec_test\h2_load_reporting_nosec_test.vcxproj", "{4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_test\h2_load_reporting_test.vcxproj", "{F0A06723-2E3E-FE97-34B7-A2BA26D98B83}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_oauth2_test", "vcxproj\test/end2end/fixtures\h2_oauth2_test\h2_oauth2_test.vcxproj", "{0F761FF3-342A-C429-711F-F76181BAA52D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_nosec_test", "vcxproj\test/end2end/fixtures\h2_proxy_nosec_test\h2_proxy_nosec_test.vcxproj", "{6EC72045-98CB-8A8D-9788-BC94209E23C8}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_test", "vcxproj\test/end2end/fixtures\h2_proxy_test\h2_proxy_test.vcxproj", "{5753B14F-0C69-2E56-6264-5541B2DCDF67}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_nosec_test\h2_sockpair+trace_nosec_test.vcxproj", "{962380E0-1C06-8917-8F7F-1A02E0E93BE7}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_test\h2_sockpair+trace_test.vcxproj", "{82878169-5A89-FD1E-31A6-E9F07BB92418}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_nosec_test\h2_sockpair_1byte_nosec_test.vcxproj", "{485E6713-487D-F274-BDE7-5D29300C93FE}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_test\h2_sockpair_1byte_test.vcxproj", "{03A65361-E139-5344-1868-8E8FC269C6E6}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_nosec_test\h2_sockpair_nosec_test.vcxproj", "{B3F26242-A43D-4F77-A84C-0F478741A061}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_test", "vcxproj\test/end2end/fixtures\h2_sockpair_test\h2_sockpair_test.vcxproj", "{67458AF8-A122-7740-F195-C2E74A106FAB}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_cert_test", "vcxproj\test/end2end/fixtures\h2_ssl_cert_test\h2_ssl_cert_test.vcxproj", "{B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_proxy_test", "vcxproj\test/end2end/fixtures\h2_ssl_proxy_test\h2_ssl_proxy_test.vcxproj", "{A9092608-E45E-AC96-6533-A6E7DD98211D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_test", "vcxproj\test/end2end/fixtures\h2_ssl_test\h2_ssl_test.vcxproj", "{EA78D290-4098-FF04-C647-013F6B81E4E7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_client_test", "vcxproj\test/bad_client\bad_client_test\bad_client_test.vcxproj", "{BA67B418-B699-E41A-9CC4-0279C49481A5}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "head_of_line_blocking_bad_client_test", "vcxproj\test\head_of_line_blocking_bad_client_test\head_of_line_blocking_bad_client_test.vcxproj", "{23DF0572-DBF1-08DA-8EAD-8508354C90A4}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "badreq_bad_client_test", "vcxproj\test\badreq_bad_client_test\badreq_bad_client_test.vcxproj", "{8A811C28-E04E-A444-E4C1-7588DF5B90AE}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection @@ -939,7 +26,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "head_of_line_blocking_bad_c {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "headers_bad_client_test", "vcxproj\test\headers_bad_client_test\headers_bad_client_test.vcxproj", "{7819A11E-607E-F0C0-FC47-C704CF7D818C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connection_prefix_bad_client_test", "vcxproj\test\connection_prefix_bad_client_test\connection_prefix_bad_client_test.vcxproj", "{AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection @@ -951,20 +38,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "headers_bad_client_test", " {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hpack_parser_test", "vcxproj\test\hpack_parser_test\hpack_parser_test.vcxproj", "{4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_nosec_tests", "vcxproj\test/end2end/tests\end2end_nosec_tests\end2end_nosec_tests.vcxproj", "{47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hpack_table_test", "vcxproj\test\hpack_table_test\hpack_table_test.vcxproj", "{FF2CEE6D-850F-E22C-53A0-8C5912B14B20}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_tests", "vcxproj\test/end2end/tests\end2end_tests\end2end_tests.vcxproj", "{1F1F9084-2A93-B80E-364F-5754894AFAB4}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} @@ -973,437 +60,393 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hpack_table_test", "vcxproj {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_parser_test", "vcxproj\test\http_parser_test\http_parser_test.vcxproj", "{49D7E690-BDA1-5236-1ABF-3D81C1559DF7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr", "vcxproj\.\gpr\gpr.vcxproj", "{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}" ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + lib = "True" EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "httpcli_format_request_test", "vcxproj\test\httpcli_format_request_test\httpcli_format_request_test.vcxproj", "{A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_test_util", "vcxproj\.\gpr_test_util\gpr_test_util.vcxproj", "{EAB0A629-17A9-44DB-B5FF-E91A721FE037}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "init_test", "vcxproj\test\init_test\init_test.vcxproj", "{117CA7AD-C42B-9217-6C95-42A801777BC5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc.vcxproj", "{29D16885-7228-4C31-81ED-5F9187C7F2A9}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "initial_settings_frame_bad_client_test", "vcxproj\test\initial_settings_frame_bad_client_test\initial_settings_frame_bad_client_test.vcxproj", "{6756895E-05BF-8CC7-58F2-868DF0C0300C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util", "vcxproj\.\grpc_test_util\grpc_test_util.vcxproj", "{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_iomgr_test", "vcxproj\test\internal_api_canary_iomgr_test\internal_api_canary_iomgr_test.vcxproj", "{28AE726B-1BFB-202B-48D2-41AF9D09B9EA}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_support_test", "vcxproj\test\internal_api_canary_support_test\internal_api_canary_support_test.vcxproj", "{D53575C6-713C-E6E3-FD74-E65F20916498}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util_unsecure", "vcxproj\.\grpc_test_util_unsecure\grpc_test_util_unsecure.vcxproj", "{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_transport_test", "vcxproj\test\internal_api_canary_transport_test\internal_api_canary_transport_test.vcxproj", "{ED24E700-964E-B426-6A6A-1944E2EF7BCB}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid_call_argument_test", "vcxproj\test\invalid_call_argument_test\invalid_call_argument_test.vcxproj", "{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite", "vcxproj\test\json_rewrite\json_rewrite.vcxproj", "{57B36FF6-25B1-2475-D07A-2E9097E2C792}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\grpc_unsecure\grpc_unsecure.vcxproj", "{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}" ProjectSection(myProperties) = preProject - lib = "False" + lib = "True" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite_test", "vcxproj\test\json_rewrite_test\json_rewrite_test.vcxproj", "{DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_nosec_test", "vcxproj\test/end2end/fixtures\h2_census_nosec_test\h2_census_nosec_test.vcxproj", "{A8039D43-910E-4248-2A22-74366E8C4DCD}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_stream_error_test", "vcxproj\test\json_stream_error_test\json_stream_error_test.vcxproj", "{8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_test", "vcxproj\test/end2end/fixtures\h2_census_test\h2_census_test.vcxproj", "{9E4180B0-81ED-7305-333F-653CE9AB819B}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_test", "vcxproj\test\json_test\json_test.vcxproj", "{05230AC7-4529-E6CF-0506-A063B5FF6642}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_nosec_test", "vcxproj\test/end2end/fixtures\h2_compress_nosec_test\h2_compress_nosec_test.vcxproj", "{42826C1F-DCF0-918E-D247-0376DC1EFD50}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lame_client_test", "vcxproj\test\lame_client_test\lame_client_test.vcxproj", "{6E60B394-E17D-658A-6648-A2E6E183226F}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_test", "vcxproj\test/end2end/fixtures\h2_compress_test\h2_compress_test.vcxproj", "{C7E516E9-B80F-4BC1-A617-095FC6E14BC9}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "large_metadata_bad_client_test", "vcxproj\test\large_metadata_bad_client_test\large_metadata_bad_client_test.vcxproj", "{B706A9EC-7982-0DBC-495D-07B165F6CF56}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lb_policies_test", "vcxproj\test\lb_policies_test\lb_policies_test.vcxproj", "{62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_fakesec_test", "vcxproj\test/end2end/fixtures\h2_fakesec_test\h2_fakesec_test.vcxproj", "{0E980562-3AA0-91B1-C590-85C9A899BE44}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "load_file_test", "vcxproj\test\load_file_test\load_file_test.vcxproj", "{DC76C089-0D55-DF19-7CCA-49DAE5D29E49}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_full+trace_nosec_test\h2_full+trace_nosec_test.vcxproj", "{DFD51943-4906-8051-7D66-6A7D50E0D87E}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "message_compress_test", "vcxproj\test\message_compress_test\message_compress_test.vcxproj", "{07170557-CCB0-D23C-8018-C2909D115DF9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_test", "vcxproj\test/end2end/fixtures\h2_full+trace_test\h2_full+trace_test.vcxproj", "{16C713C6-062E-F71F-A44C-52DC35494B27}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mlog_test", "vcxproj\test\mlog_test\mlog_test.vcxproj", "{9345E329-80F3-DED4-FDC3-BF63FCEA2C03}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_nosec_test", "vcxproj\test/end2end/fixtures\h2_full_nosec_test\h2_full_nosec_test.vcxproj", "{345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multiple_server_queues_test", "vcxproj\test\multiple_server_queues_test\multiple_server_queues_test.vcxproj", "{88AF688E-E43C-5E20-6966-CF559F597D82}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_test", "vcxproj\test/end2end/fixtures\h2_full_test\h2_full_test.vcxproj", "{EEBEFA75-C625-C823-FE96-9AD64887B57D}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "murmur_hash_test", "vcxproj\test\murmur_hash_test\murmur_hash_test.vcxproj", "{0B136077-8522-3C25-7704-1C386C9FDCD5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_nosec_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_nosec_test\h2_load_reporting_nosec_test.vcxproj", "{4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "no_server_test", "vcxproj\test\no_server_test\no_server_test.vcxproj", "{A66AC548-E2B9-74CD-293C-43526EE51DCE}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_test\h2_load_reporting_test.vcxproj", "{F0A06723-2E3E-FE97-34B7-A2BA26D98B83}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolve_address_test", "vcxproj\test\resolve_address_test\resolve_address_test.vcxproj", "{8279AF6C-9584-67F3-1547-B204864FCCA7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_oauth2_test", "vcxproj\test/end2end/fixtures\h2_oauth2_test\h2_oauth2_test.vcxproj", "{0F761FF3-342A-C429-711F-F76181BAA52D}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "secure_channel_create_test", "vcxproj\test\secure_channel_create_test\secure_channel_create_test.vcxproj", "{62B25398-7173-928E-689E-53860B0ACFC4}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_nosec_test", "vcxproj\test/end2end/fixtures\h2_proxy_nosec_test\h2_proxy_nosec_test.vcxproj", "{6EC72045-98CB-8A8D-9788-BC94209E23C8}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "secure_endpoint_test", "vcxproj\test\secure_endpoint_test\secure_endpoint_test.vcxproj", "{A7747106-A6BC-62D4-2A21-04A4F0CC2683}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_test", "vcxproj\test/end2end/fixtures\h2_proxy_test\h2_proxy_test.vcxproj", "{5753B14F-0C69-2E56-6264-5541B2DCDF67}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sequential_connectivity_test", "vcxproj\test\sequential_connectivity_test\sequential_connectivity_test.vcxproj", "{F164F666-C866-D607-E1DF-E7BF3CF98255}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_nosec_test\h2_sockpair+trace_nosec_test.vcxproj", "{962380E0-1C06-8917-8F7F-1A02E0E93BE7}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_chttp2_test", "vcxproj\test\server_chttp2_test\server_chttp2_test.vcxproj", "{BF9F909B-8266-6AAC-A81B-05F8210AA8CA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_test\h2_sockpair+trace_test.vcxproj", "{82878169-5A89-FD1E-31A6-E9F07BB92418}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_registered_method_bad_client_test", "vcxproj\test\server_registered_method_bad_client_test\server_registered_method_bad_client_test.vcxproj", "{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_nosec_test\h2_sockpair_1byte_nosec_test.vcxproj", "{485E6713-487D-F274-BDE7-5D29300C93FE}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_test", "vcxproj\test\server_test\server_test.vcxproj", "{E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "set_initial_connect_string_test", "vcxproj\test\set_initial_connect_string_test\set_initial_connect_string_test.vcxproj", "{4A48E5A5-2E69-ED6D-063C-C297180A54D0}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_test\h2_sockpair_1byte_test.vcxproj", "{03A65361-E139-5344-1868-8E8FC269C6E6}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {E3110C46-A148-FF65-08FD-3324829BE7FE} = {E3110C46-A148-FF65-08FD-3324829BE7FE} + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_request_bad_client_test", "vcxproj\test\simple_request_bad_client_test\simple_request_bad_client_test.vcxproj", "{63422647-93FA-46BB-4827-95473D9D503C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_nosec_test\h2_sockpair_nosec_test.vcxproj", "{B3F26242-A43D-4F77-A84C-0F478741A061}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sockaddr_resolver_test", "vcxproj\test\sockaddr_resolver_test\sockaddr_resolver_test.vcxproj", "{9889A80C-F1D7-99C9-FE7E-657724BEDC62}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_test", "vcxproj\test/end2end/fixtures\h2_sockpair_test\h2_sockpair_test.vcxproj", "{67458AF8-A122-7740-F195-C2E74A106FAB}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sockaddr_utils_test", "vcxproj\test\sockaddr_utils_test\sockaddr_utils_test.vcxproj", "{529771F0-10B0-9B1A-1E7E-8A8E01870348}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_cert_test", "vcxproj\test/end2end/fixtures\h2_ssl_cert_test\h2_ssl_cert_test.vcxproj", "{B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_tcp_server", "vcxproj\.\test_tcp_server\test_tcp_server.vcxproj", "{E3110C46-A148-FF65-08FD-3324829BE7FE}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_proxy_test", "vcxproj\test/end2end/fixtures\h2_ssl_proxy_test\h2_ssl_proxy_test.vcxproj", "{A9092608-E45E-AC96-6533-A6E7DD98211D}" ProjectSection(myProperties) = preProject - lib = "True" + lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "time_averaged_stats_test", "vcxproj\test\time_averaged_stats_test\time_averaged_stats_test.vcxproj", "{D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_test", "vcxproj\test/end2end/fixtures\h2_ssl_test\h2_ssl_test.vcxproj", "{EA78D290-4098-FF04-C647-013F6B81E4E7}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timeout_encoding_test", "vcxproj\test\timeout_encoding_test\timeout_encoding_test.vcxproj", "{EA073C36-A527-F749-AD4A-243A38B9BFF5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "head_of_line_blocking_bad_client_test", "vcxproj\test\head_of_line_blocking_bad_client_test\head_of_line_blocking_bad_client_test.vcxproj", "{23DF0572-DBF1-08DA-8EAD-8508354C90A4}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer_heap_test", "vcxproj\test\timer_heap_test\timer_heap_test.vcxproj", "{A2110C60-E75A-F76E-205E-1836F86C4D53}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "headers_bad_client_test", "vcxproj\test\headers_bad_client_test\headers_bad_client_test.vcxproj", "{7819A11E-607E-F0C0-FC47-C704CF7D818C}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer_list_test", "vcxproj\test\timer_list_test\timer_list_test.vcxproj", "{C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "initial_settings_frame_bad_client_test", "vcxproj\test\initial_settings_frame_bad_client_test\initial_settings_frame_bad_client_test.vcxproj", "{6756895E-05BF-8CC7-58F2-868DF0C0300C}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "transport_connectivity_state_test", "vcxproj\test\transport_connectivity_state_test\transport_connectivity_state_test.vcxproj", "{659121F6-1639-AC6B-053E-9D17A8B94D56}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "large_metadata_bad_client_test", "vcxproj\test\large_metadata_bad_client_test\large_metadata_bad_client_test.vcxproj", "{B706A9EC-7982-0DBC-495D-07B165F6CF56}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "transport_metadata_test", "vcxproj\test\transport_metadata_test\transport_metadata_test.vcxproj", "{89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_registered_method_bad_client_test", "vcxproj\test\server_registered_method_bad_client_test\server_registered_method_bad_client_test.vcxproj", "{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unknown_frame_bad_client_test", "vcxproj\test\unknown_frame_bad_client_test\unknown_frame_bad_client_test.vcxproj", "{9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_request_bad_client_test", "vcxproj\test\simple_request_bad_client_test\simple_request_bad_client_test.vcxproj", "{63422647-93FA-46BB-4827-95473D9D503C}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection @@ -1415,13 +458,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unknown_frame_bad_client_te {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uri_parser_test", "vcxproj\test\uri_parser_test\uri_parser_test.vcxproj", "{E35C24A0-8725-E773-FE78-CC0C67071EF7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unknown_frame_bad_client_test", "vcxproj\test\unknown_frame_bad_client_test\unknown_frame_bad_client_test.vcxproj", "{9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}" ProjectSection(myProperties) = preProject lib = "False" EndProjectSection ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection @@ -1450,70 +494,6 @@ Global Release-DLL|x64 = Release-DLL|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|Win32.ActiveCfg = Debug|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|x64.ActiveCfg = Debug|x64 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|Win32.ActiveCfg = Release|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|x64.ActiveCfg = Release|x64 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|Win32.Build.0 = Debug|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|x64.Build.0 = Debug|x64 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|Win32.Build.0 = Release|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|x64.Build.0 = Release|x64 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|x64.Build.0 = Debug|x64 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|Win32.Build.0 = Release|Win32 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|x64.ActiveCfg = Release|x64 - {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|x64.Build.0 = Release|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|Win32.ActiveCfg = Debug|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|x64.ActiveCfg = Debug|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|Win32.ActiveCfg = Release|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|x64.ActiveCfg = Release|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|Win32.Build.0 = Debug|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|x64.Build.0 = Debug|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|Win32.Build.0 = Release|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|x64.Build.0 = Release|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|x64.Build.0 = Debug|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|Win32.Build.0 = Release|Win32 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|x64.ActiveCfg = Release|x64 - {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|x64.Build.0 = Release|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|Win32.ActiveCfg = Debug|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|x64.ActiveCfg = Debug|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|Win32.ActiveCfg = Release|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|x64.ActiveCfg = Release|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|Win32.Build.0 = Debug|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|x64.Build.0 = Debug|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|Win32.Build.0 = Release|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|x64.Build.0 = Release|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|x64.Build.0 = Debug|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|Win32.Build.0 = Release|Win32 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|x64.ActiveCfg = Release|x64 - {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|x64.Build.0 = Release|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|Win32.ActiveCfg = Debug|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|x64.ActiveCfg = Debug|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|Win32.ActiveCfg = Release|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|x64.ActiveCfg = Release|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|Win32.Build.0 = Debug|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|x64.Build.0 = Debug|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|Win32.Build.0 = Release|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|x64.Build.0 = Release|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|x64.Build.0 = Debug|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|Win32.Build.0 = Release|Win32 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|x64.ActiveCfg = Release|x64 - {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|x64.Build.0 = Release|x64 {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|Win32.ActiveCfg = Debug|Win32 {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|x64.ActiveCfg = Debug|x64 {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|Win32.ActiveCfg = Release|Win32 @@ -1530,22 +510,6 @@ Global {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|Win32.Build.0 = Release|Win32 {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|x64.ActiveCfg = Release|x64 {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|x64.Build.0 = Release|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|x64.ActiveCfg = Debug|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|Win32.ActiveCfg = Release|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|x64.ActiveCfg = Release|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|Win32.Build.0 = Debug|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|x64.Build.0 = Debug|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|Win32.Build.0 = Release|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|x64.Build.0 = Release|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|x64.Build.0 = Debug|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|Win32.Build.0 = Release|Win32 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|x64.ActiveCfg = Release|x64 - {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|x64.Build.0 = Release|x64 {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|Win32.ActiveCfg = Debug|Win32 {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|x64.ActiveCfg = Debug|x64 {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|Win32.ActiveCfg = Release|Win32 @@ -1562,182 +526,6 @@ Global {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|Win32.Build.0 = Release|Win32 {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|x64.ActiveCfg = Release|x64 {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|x64.Build.0 = Release|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|Win32.ActiveCfg = Debug|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|x64.ActiveCfg = Debug|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|Win32.ActiveCfg = Release|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|x64.ActiveCfg = Release|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|Win32.Build.0 = Debug|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|x64.Build.0 = Debug|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|Win32.Build.0 = Release|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|x64.Build.0 = Release|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|x64.Build.0 = Debug|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|Win32.Build.0 = Release|Win32 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|x64.ActiveCfg = Release|x64 - {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|x64.Build.0 = Release|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|Win32.ActiveCfg = Debug|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|x64.ActiveCfg = Debug|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|Win32.ActiveCfg = Release|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|x64.ActiveCfg = Release|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|Win32.Build.0 = Debug|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|x64.Build.0 = Debug|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|Win32.Build.0 = Release|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|x64.Build.0 = Release|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|x64.Build.0 = Debug|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|Win32.Build.0 = Release|Win32 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|x64.ActiveCfg = Release|x64 - {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|x64.Build.0 = Release|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|Win32.ActiveCfg = Debug|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|x64.ActiveCfg = Debug|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|Win32.ActiveCfg = Release|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|x64.ActiveCfg = Release|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|Win32.Build.0 = Debug|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|x64.Build.0 = Debug|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|Win32.Build.0 = Release|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|x64.Build.0 = Release|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|x64.Build.0 = Debug|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|Win32.Build.0 = Release|Win32 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|x64.ActiveCfg = Release|x64 - {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|x64.Build.0 = Release|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|Win32.ActiveCfg = Debug|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|x64.ActiveCfg = Debug|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|Win32.ActiveCfg = Release|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|x64.ActiveCfg = Release|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|Win32.Build.0 = Debug|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|x64.Build.0 = Debug|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|Win32.Build.0 = Release|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|x64.Build.0 = Release|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|x64.Build.0 = Debug|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|Win32.Build.0 = Release|Win32 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|x64.ActiveCfg = Release|x64 - {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|x64.Build.0 = Release|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|Win32.ActiveCfg = Debug|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|x64.ActiveCfg = Debug|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|Win32.ActiveCfg = Release|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|x64.ActiveCfg = Release|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|Win32.Build.0 = Debug|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|x64.Build.0 = Debug|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|Win32.Build.0 = Release|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|x64.Build.0 = Release|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|x64.Build.0 = Debug|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|Win32.Build.0 = Release|Win32 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|x64.ActiveCfg = Release|x64 - {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|x64.Build.0 = Release|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|Win32.ActiveCfg = Debug|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|x64.ActiveCfg = Debug|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|Win32.ActiveCfg = Release|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|x64.ActiveCfg = Release|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|Win32.Build.0 = Debug|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|x64.Build.0 = Debug|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|Win32.Build.0 = Release|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|x64.Build.0 = Release|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|x64.Build.0 = Debug|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|Win32.Build.0 = Release|Win32 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|x64.ActiveCfg = Release|x64 - {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|x64.Build.0 = Release|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|Win32.ActiveCfg = Debug|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|x64.ActiveCfg = Debug|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|Win32.ActiveCfg = Release|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|x64.ActiveCfg = Release|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|Win32.Build.0 = Debug|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|x64.Build.0 = Debug|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|Win32.Build.0 = Release|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|x64.Build.0 = Release|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|x64.Build.0 = Debug|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|Win32.Build.0 = Release|Win32 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|x64.ActiveCfg = Release|x64 - {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|x64.Build.0 = Release|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|Win32.ActiveCfg = Debug|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|x64.ActiveCfg = Debug|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|Win32.ActiveCfg = Release|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|x64.ActiveCfg = Release|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|Win32.Build.0 = Debug|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|x64.Build.0 = Debug|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|Win32.Build.0 = Release|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|x64.Build.0 = Release|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|x64.Build.0 = Debug|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|Win32.Build.0 = Release|Win32 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|x64.ActiveCfg = Release|x64 - {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|x64.Build.0 = Release|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|Win32.ActiveCfg = Debug|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|x64.ActiveCfg = Debug|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|Win32.ActiveCfg = Release|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|x64.ActiveCfg = Release|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|Win32.Build.0 = Debug|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|x64.Build.0 = Debug|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|Win32.Build.0 = Release|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|x64.Build.0 = Release|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|x64.Build.0 = Debug|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|Win32.Build.0 = Release|Win32 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|x64.ActiveCfg = Release|x64 - {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|x64.Build.0 = Release|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|Win32.ActiveCfg = Debug|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|x64.ActiveCfg = Debug|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|Win32.ActiveCfg = Release|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|x64.ActiveCfg = Release|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|Win32.Build.0 = Debug|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|x64.Build.0 = Debug|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|Win32.Build.0 = Release|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|x64.Build.0 = Release|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|x64.Build.0 = Debug|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|Win32.Build.0 = Release|Win32 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|x64.ActiveCfg = Release|x64 - {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|x64.Build.0 = Release|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|Win32.ActiveCfg = Debug|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|x64.ActiveCfg = Debug|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release|Win32.ActiveCfg = Release|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release|x64.ActiveCfg = Release|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|Win32.Build.0 = Debug|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|x64.Build.0 = Debug|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release|Win32.Build.0 = Release|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release|x64.Build.0 = Release|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|x64.Build.0 = Debug|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|Win32.Build.0 = Release|Win32 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|x64.ActiveCfg = Release|x64 - {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|x64.Build.0 = Release|x64 {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|Win32.ActiveCfg = Debug|Win32 {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|x64.ActiveCfg = Debug|x64 {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|Win32.ActiveCfg = Release|Win32 @@ -1754,38 +542,6 @@ Global {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|Win32.Build.0 = Release|Win32 {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.ActiveCfg = Release|x64 {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.Build.0 = Release|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|Win32.ActiveCfg = Debug|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|x64.ActiveCfg = Debug|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|Win32.ActiveCfg = Release|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|x64.ActiveCfg = Release|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|Win32.Build.0 = Debug|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|x64.Build.0 = Debug|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|Win32.Build.0 = Release|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|x64.Build.0 = Release|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|x64.Build.0 = Debug|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|Win32.Build.0 = Release|Win32 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|x64.ActiveCfg = Release|x64 - {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|x64.Build.0 = Release|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|Win32.ActiveCfg = Debug|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|x64.ActiveCfg = Debug|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release|Win32.ActiveCfg = Release|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release|x64.ActiveCfg = Release|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|Win32.Build.0 = Debug|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|x64.Build.0 = Debug|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release|Win32.Build.0 = Release|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release|x64.Build.0 = Release|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|x64.Build.0 = Debug|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|Win32.Build.0 = Release|Win32 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|x64.ActiveCfg = Release|x64 - {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|x64.Build.0 = Release|x64 {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|Win32.ActiveCfg = Debug|Win32 {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|x64.ActiveCfg = Debug|x64 {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|Win32.ActiveCfg = Release|Win32 @@ -1818,86 +574,6 @@ Global {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|Win32.Build.0 = Release|Win32 {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|x64.ActiveCfg = Release|x64 {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|x64.Build.0 = Release|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|Win32.ActiveCfg = Debug|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|x64.ActiveCfg = Debug|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|Win32.ActiveCfg = Release|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|x64.ActiveCfg = Release|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|Win32.Build.0 = Debug|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|x64.Build.0 = Debug|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|Win32.Build.0 = Release|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|x64.Build.0 = Release|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|x64.Build.0 = Debug|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|Win32.Build.0 = Release|Win32 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|x64.ActiveCfg = Release|x64 - {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|x64.Build.0 = Release|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|Win32.ActiveCfg = Debug|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|x64.ActiveCfg = Debug|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release|Win32.ActiveCfg = Release|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release|x64.ActiveCfg = Release|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|Win32.Build.0 = Debug|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|x64.Build.0 = Debug|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release|Win32.Build.0 = Release|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release|x64.Build.0 = Release|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|x64.Build.0 = Debug|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|Win32.Build.0 = Release|Win32 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|x64.ActiveCfg = Release|x64 - {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|x64.Build.0 = Release|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|Win32.ActiveCfg = Debug|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|x64.ActiveCfg = Debug|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|Win32.ActiveCfg = Release|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|x64.ActiveCfg = Release|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|Win32.Build.0 = Debug|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|x64.Build.0 = Debug|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|Win32.Build.0 = Release|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|x64.Build.0 = Release|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|x64.Build.0 = Debug|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|Win32.Build.0 = Release|Win32 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|x64.ActiveCfg = Release|x64 - {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|x64.Build.0 = Release|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|Win32.ActiveCfg = Debug|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|x64.ActiveCfg = Debug|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|Win32.ActiveCfg = Release|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|x64.ActiveCfg = Release|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|Win32.Build.0 = Debug|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|x64.Build.0 = Debug|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|Win32.Build.0 = Release|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|x64.Build.0 = Release|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|x64.Build.0 = Debug|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|Win32.Build.0 = Release|Win32 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|x64.ActiveCfg = Release|x64 - {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|x64.Build.0 = Release|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|Win32.ActiveCfg = Debug|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|x64.ActiveCfg = Debug|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|Win32.ActiveCfg = Release|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|x64.ActiveCfg = Release|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|Win32.Build.0 = Debug|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|x64.Build.0 = Debug|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|Win32.Build.0 = Release|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|x64.Build.0 = Release|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|x64.Build.0 = Debug|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|Win32.Build.0 = Release|Win32 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|x64.ActiveCfg = Release|x64 - {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|x64.Build.0 = Release|x64 {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|Win32.ActiveCfg = Debug|Win32 {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|x64.ActiveCfg = Debug|x64 {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|Win32.ActiveCfg = Release|Win32 @@ -1914,214 +590,6 @@ Global {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|Win32.Build.0 = Release|Win32 {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.ActiveCfg = Release|x64 {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.Build.0 = Release|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|Win32.ActiveCfg = Debug|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|x64.ActiveCfg = Debug|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|Win32.ActiveCfg = Release|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|x64.ActiveCfg = Release|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|Win32.Build.0 = Debug|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|x64.Build.0 = Debug|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|Win32.Build.0 = Release|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|x64.Build.0 = Release|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|x64.Build.0 = Debug|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|Win32.Build.0 = Release|Win32 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|x64.ActiveCfg = Release|x64 - {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|x64.Build.0 = Release|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|Win32.ActiveCfg = Debug|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|x64.ActiveCfg = Debug|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|Win32.ActiveCfg = Release|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|x64.ActiveCfg = Release|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|Win32.Build.0 = Debug|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|x64.Build.0 = Debug|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|Win32.Build.0 = Release|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|x64.Build.0 = Release|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|x64.Build.0 = Debug|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|Win32.Build.0 = Release|Win32 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|x64.ActiveCfg = Release|x64 - {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|x64.Build.0 = Release|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|Win32.ActiveCfg = Debug|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|x64.ActiveCfg = Debug|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|Win32.ActiveCfg = Release|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|x64.ActiveCfg = Release|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|Win32.Build.0 = Debug|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|x64.Build.0 = Debug|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|Win32.Build.0 = Release|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|x64.Build.0 = Release|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|x64.Build.0 = Debug|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|Win32.Build.0 = Release|Win32 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|x64.ActiveCfg = Release|x64 - {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|x64.Build.0 = Release|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|Win32.ActiveCfg = Debug|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|x64.ActiveCfg = Debug|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|Win32.ActiveCfg = Release|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|x64.ActiveCfg = Release|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|Win32.Build.0 = Debug|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|x64.Build.0 = Debug|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|Win32.Build.0 = Release|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|x64.Build.0 = Release|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|x64.Build.0 = Debug|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|Win32.Build.0 = Release|Win32 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|x64.ActiveCfg = Release|x64 - {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|x64.Build.0 = Release|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|Win32.ActiveCfg = Debug|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|x64.ActiveCfg = Debug|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|Win32.ActiveCfg = Release|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|x64.ActiveCfg = Release|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|Win32.Build.0 = Debug|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|x64.Build.0 = Debug|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|Win32.Build.0 = Release|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|x64.Build.0 = Release|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|x64.Build.0 = Debug|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|Win32.Build.0 = Release|Win32 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|x64.ActiveCfg = Release|x64 - {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|x64.Build.0 = Release|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|Win32.ActiveCfg = Debug|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|x64.ActiveCfg = Debug|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|Win32.ActiveCfg = Release|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|x64.ActiveCfg = Release|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|Win32.Build.0 = Debug|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|x64.Build.0 = Debug|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|Win32.Build.0 = Release|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|x64.Build.0 = Release|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|x64.Build.0 = Debug|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|Win32.Build.0 = Release|Win32 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|x64.ActiveCfg = Release|x64 - {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|x64.Build.0 = Release|x64 - {64728265-92F9-103E-6720-8935385458DF}.Debug|Win32.ActiveCfg = Debug|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Debug|x64.ActiveCfg = Debug|x64 - {64728265-92F9-103E-6720-8935385458DF}.Release|Win32.ActiveCfg = Release|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Release|x64.ActiveCfg = Release|x64 - {64728265-92F9-103E-6720-8935385458DF}.Debug|Win32.Build.0 = Debug|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Debug|x64.Build.0 = Debug|x64 - {64728265-92F9-103E-6720-8935385458DF}.Release|Win32.Build.0 = Release|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Release|x64.Build.0 = Release|x64 - {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|x64.Build.0 = Debug|x64 - {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|Win32.Build.0 = Release|Win32 - {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|x64.ActiveCfg = Release|x64 - {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|x64.Build.0 = Release|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|Win32.ActiveCfg = Debug|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|x64.ActiveCfg = Debug|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|Win32.ActiveCfg = Release|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|x64.ActiveCfg = Release|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|Win32.Build.0 = Debug|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|x64.Build.0 = Debug|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|Win32.Build.0 = Release|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|x64.Build.0 = Release|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|x64.Build.0 = Debug|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|Win32.Build.0 = Release|Win32 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|x64.ActiveCfg = Release|x64 - {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|x64.Build.0 = Release|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug|Win32.ActiveCfg = Debug|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug|x64.ActiveCfg = Debug|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Release|Win32.ActiveCfg = Release|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Release|x64.ActiveCfg = Release|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug|Win32.Build.0 = Debug|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug|x64.Build.0 = Debug|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Release|Win32.Build.0 = Release|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Release|x64.Build.0 = Release|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|x64.Build.0 = Debug|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|Win32.Build.0 = Release|Win32 - {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|x64.ActiveCfg = Release|x64 - {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|x64.Build.0 = Release|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|Win32.ActiveCfg = Debug|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|x64.ActiveCfg = Debug|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|Win32.ActiveCfg = Release|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|x64.ActiveCfg = Release|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|Win32.Build.0 = Debug|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|x64.Build.0 = Debug|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|Win32.Build.0 = Release|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|x64.Build.0 = Release|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|x64.Build.0 = Debug|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|Win32.Build.0 = Release|Win32 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|x64.ActiveCfg = Release|x64 - {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|x64.Build.0 = Release|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|Win32.ActiveCfg = Debug|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|x64.ActiveCfg = Debug|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|Win32.ActiveCfg = Release|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|x64.ActiveCfg = Release|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|Win32.Build.0 = Debug|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|x64.Build.0 = Debug|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|Win32.Build.0 = Release|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|x64.Build.0 = Release|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|x64.Build.0 = Debug|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|Win32.Build.0 = Release|Win32 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|x64.ActiveCfg = Release|x64 - {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|x64.Build.0 = Release|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|Win32.ActiveCfg = Debug|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|x64.ActiveCfg = Debug|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|Win32.ActiveCfg = Release|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|x64.ActiveCfg = Release|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|Win32.Build.0 = Debug|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|x64.Build.0 = Debug|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|Win32.Build.0 = Release|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|x64.Build.0 = Release|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|x64.Build.0 = Debug|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|Win32.Build.0 = Release|Win32 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|x64.ActiveCfg = Release|x64 - {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|x64.Build.0 = Release|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|Win32.ActiveCfg = Debug|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|x64.ActiveCfg = Debug|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|Win32.ActiveCfg = Release|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|x64.ActiveCfg = Release|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|Win32.Build.0 = Debug|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|x64.Build.0 = Debug|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|Win32.Build.0 = Release|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|x64.Build.0 = Release|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|x64.Build.0 = Debug|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|Win32.Build.0 = Release|Win32 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|x64.ActiveCfg = Release|x64 - {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|x64.Build.0 = Release|x64 {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|Win32.ActiveCfg = Debug|Win32 {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|x64.ActiveCfg = Debug|x64 {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|Win32.ActiveCfg = Release|Win32 @@ -2138,70 +606,6 @@ Global {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|Win32.Build.0 = Release|Win32 {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.ActiveCfg = Release|x64 {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.Build.0 = Release|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|Win32.ActiveCfg = Debug|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|x64.ActiveCfg = Debug|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|Win32.ActiveCfg = Release|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|x64.ActiveCfg = Release|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|Win32.Build.0 = Debug|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|x64.Build.0 = Debug|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|Win32.Build.0 = Release|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|x64.Build.0 = Release|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|x64.Build.0 = Debug|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|Win32.Build.0 = Release|Win32 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|x64.ActiveCfg = Release|x64 - {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|x64.Build.0 = Release|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Debug|Win32.ActiveCfg = Debug|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Debug|x64.ActiveCfg = Debug|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Release|Win32.ActiveCfg = Release|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Release|x64.ActiveCfg = Release|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Debug|Win32.Build.0 = Debug|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Debug|x64.Build.0 = Debug|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Release|Win32.Build.0 = Release|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Release|x64.Build.0 = Release|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|x64.Build.0 = Debug|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|Win32.Build.0 = Release|Win32 - {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|x64.ActiveCfg = Release|x64 - {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|x64.Build.0 = Release|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|Win32.ActiveCfg = Debug|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|x64.ActiveCfg = Debug|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|Win32.ActiveCfg = Release|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|x64.ActiveCfg = Release|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|Win32.Build.0 = Debug|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|x64.Build.0 = Debug|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|Win32.Build.0 = Release|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|x64.Build.0 = Release|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|x64.Build.0 = Debug|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|Win32.Build.0 = Release|Win32 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|x64.ActiveCfg = Release|x64 - {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|x64.Build.0 = Release|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|Win32.ActiveCfg = Debug|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|x64.ActiveCfg = Debug|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|Win32.ActiveCfg = Release|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|x64.ActiveCfg = Release|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|Win32.Build.0 = Debug|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|x64.Build.0 = Debug|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|Win32.Build.0 = Release|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|x64.Build.0 = Release|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|x64.Build.0 = Debug|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|Win32.Build.0 = Release|Win32 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|x64.ActiveCfg = Release|x64 - {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|x64.Build.0 = Release|x64 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|Win32.ActiveCfg = Debug|Win32 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|x64.ActiveCfg = Debug|x64 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|Win32.ActiveCfg = Release|Win32 @@ -2218,214 +622,6 @@ Global {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|Win32.ActiveCfg = Debug|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|x64.ActiveCfg = Debug|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|Win32.ActiveCfg = Release|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|x64.ActiveCfg = Release|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|Win32.Build.0 = Debug|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|x64.Build.0 = Debug|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|Win32.Build.0 = Release|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|x64.Build.0 = Release|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|x64.Build.0 = Debug|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|Win32.Build.0 = Release|Win32 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|x64.ActiveCfg = Release|x64 - {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|x64.Build.0 = Release|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|Win32.ActiveCfg = Debug|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|x64.ActiveCfg = Debug|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|Win32.ActiveCfg = Release|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|x64.ActiveCfg = Release|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|Win32.Build.0 = Debug|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|x64.Build.0 = Debug|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|Win32.Build.0 = Release|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|x64.Build.0 = Release|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|x64.Build.0 = Debug|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|Win32.Build.0 = Release|Win32 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|x64.ActiveCfg = Release|x64 - {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|x64.Build.0 = Release|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|Win32.ActiveCfg = Debug|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|x64.ActiveCfg = Debug|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release|Win32.ActiveCfg = Release|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release|x64.ActiveCfg = Release|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|Win32.Build.0 = Debug|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|x64.Build.0 = Debug|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release|Win32.Build.0 = Release|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release|x64.Build.0 = Release|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|x64.Build.0 = Debug|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|Win32.Build.0 = Release|Win32 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.ActiveCfg = Release|x64 - {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.Build.0 = Release|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|Win32.ActiveCfg = Debug|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|x64.ActiveCfg = Debug|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|Win32.ActiveCfg = Release|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|x64.ActiveCfg = Release|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|Win32.Build.0 = Debug|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|x64.Build.0 = Debug|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|Win32.Build.0 = Release|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|x64.Build.0 = Release|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|x64.Build.0 = Debug|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|Win32.Build.0 = Release|Win32 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|x64.ActiveCfg = Release|x64 - {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|x64.Build.0 = Release|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|Win32.ActiveCfg = Debug|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|x64.ActiveCfg = Debug|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|Win32.ActiveCfg = Release|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|x64.ActiveCfg = Release|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|Win32.Build.0 = Debug|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|x64.Build.0 = Debug|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|Win32.Build.0 = Release|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|x64.Build.0 = Release|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|x64.Build.0 = Debug|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|Win32.Build.0 = Release|Win32 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|x64.ActiveCfg = Release|x64 - {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|x64.Build.0 = Release|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|Win32.ActiveCfg = Debug|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|x64.ActiveCfg = Debug|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|Win32.ActiveCfg = Release|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|x64.ActiveCfg = Release|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|Win32.Build.0 = Debug|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|x64.Build.0 = Debug|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|Win32.Build.0 = Release|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|x64.Build.0 = Release|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|x64.Build.0 = Debug|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|Win32.Build.0 = Release|Win32 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|x64.ActiveCfg = Release|x64 - {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|x64.Build.0 = Release|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|Win32.ActiveCfg = Debug|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|x64.ActiveCfg = Debug|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|Win32.ActiveCfg = Release|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|x64.ActiveCfg = Release|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|Win32.Build.0 = Debug|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|x64.Build.0 = Debug|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|Win32.Build.0 = Release|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|x64.Build.0 = Release|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|x64.Build.0 = Debug|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|Win32.Build.0 = Release|Win32 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|x64.ActiveCfg = Release|x64 - {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|x64.Build.0 = Release|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|Win32.ActiveCfg = Debug|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|x64.ActiveCfg = Debug|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|Win32.ActiveCfg = Release|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|x64.ActiveCfg = Release|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|Win32.Build.0 = Debug|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|x64.Build.0 = Debug|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|Win32.Build.0 = Release|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|x64.Build.0 = Release|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|x64.Build.0 = Debug|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|Win32.Build.0 = Release|Win32 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|x64.ActiveCfg = Release|x64 - {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|x64.Build.0 = Release|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug|Win32.ActiveCfg = Debug|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug|x64.ActiveCfg = Debug|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Release|Win32.ActiveCfg = Release|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Release|x64.ActiveCfg = Release|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug|Win32.Build.0 = Debug|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug|x64.Build.0 = Debug|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Release|Win32.Build.0 = Release|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Release|x64.Build.0 = Release|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|x64.Build.0 = Debug|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|Win32.Build.0 = Release|Win32 - {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|x64.ActiveCfg = Release|x64 - {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|x64.Build.0 = Release|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|Win32.ActiveCfg = Debug|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|x64.ActiveCfg = Debug|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|Win32.ActiveCfg = Release|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|x64.ActiveCfg = Release|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|Win32.Build.0 = Debug|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|x64.Build.0 = Debug|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|Win32.Build.0 = Release|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|x64.Build.0 = Release|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|x64.Build.0 = Debug|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|Win32.Build.0 = Release|Win32 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|x64.ActiveCfg = Release|x64 - {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|x64.Build.0 = Release|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|Win32.ActiveCfg = Debug|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|x64.ActiveCfg = Debug|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|Win32.ActiveCfg = Release|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|x64.ActiveCfg = Release|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|Win32.Build.0 = Debug|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|x64.Build.0 = Debug|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|Win32.Build.0 = Release|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|x64.Build.0 = Release|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|x64.Build.0 = Debug|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|Win32.Build.0 = Release|Win32 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|x64.ActiveCfg = Release|x64 - {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|x64.Build.0 = Release|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|Win32.ActiveCfg = Debug|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|x64.ActiveCfg = Debug|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|Win32.ActiveCfg = Release|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|x64.ActiveCfg = Release|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|Win32.Build.0 = Debug|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|x64.Build.0 = Debug|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|Win32.Build.0 = Release|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|x64.Build.0 = Release|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|x64.Build.0 = Debug|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|Win32.Build.0 = Release|Win32 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|x64.ActiveCfg = Release|x64 - {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|x64.Build.0 = Release|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|Win32.ActiveCfg = Debug|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|x64.ActiveCfg = Debug|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|Win32.ActiveCfg = Release|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|x64.ActiveCfg = Release|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|Win32.Build.0 = Debug|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|x64.Build.0 = Debug|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|Win32.Build.0 = Release|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|x64.Build.0 = Release|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|x64.Build.0 = Debug|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|Win32.Build.0 = Release|Win32 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|x64.ActiveCfg = Release|x64 - {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|x64.Build.0 = Release|x64 {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|Win32.ActiveCfg = Debug|Win32 {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|x64.ActiveCfg = Debug|x64 {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|Win32.ActiveCfg = Release|Win32 @@ -2474,22 +670,6 @@ Global {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|Win32.ActiveCfg = Debug|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|x64.ActiveCfg = Debug|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|Win32.ActiveCfg = Release|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|x64.ActiveCfg = Release|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|Win32.Build.0 = Debug|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|x64.Build.0 = Debug|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|Win32.Build.0 = Release|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|x64.Build.0 = Release|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|x64.Build.0 = Debug|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|Win32.Build.0 = Release|Win32 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|x64.ActiveCfg = Release|x64 - {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|x64.Build.0 = Release|x64 {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|Win32.ActiveCfg = Debug|Win32 {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|x64.ActiveCfg = Debug|x64 {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|Win32.ActiveCfg = Release|Win32 @@ -2890,86 +1070,6 @@ Global {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|Win32.Build.0 = Release|Win32 {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|x64.ActiveCfg = Release|x64 {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|x64.Build.0 = Release|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|Win32.ActiveCfg = Debug|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|x64.ActiveCfg = Debug|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|Win32.ActiveCfg = Release|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|x64.ActiveCfg = Release|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|Win32.Build.0 = Debug|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|x64.Build.0 = Debug|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|Win32.Build.0 = Release|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|x64.Build.0 = Release|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|x64.Build.0 = Debug|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|Win32.Build.0 = Release|Win32 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|x64.ActiveCfg = Release|x64 - {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|x64.Build.0 = Release|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|Win32.ActiveCfg = Debug|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|x64.ActiveCfg = Debug|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|Win32.ActiveCfg = Release|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|x64.ActiveCfg = Release|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|Win32.Build.0 = Debug|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|x64.Build.0 = Debug|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|Win32.Build.0 = Release|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|x64.Build.0 = Release|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|x64.Build.0 = Debug|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|Win32.Build.0 = Release|Win32 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|x64.ActiveCfg = Release|x64 - {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|x64.Build.0 = Release|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|Win32.ActiveCfg = Debug|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|x64.ActiveCfg = Debug|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|Win32.ActiveCfg = Release|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|x64.ActiveCfg = Release|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|Win32.Build.0 = Debug|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|x64.Build.0 = Debug|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|Win32.Build.0 = Release|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|x64.Build.0 = Release|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|x64.Build.0 = Debug|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|Win32.Build.0 = Release|Win32 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|x64.ActiveCfg = Release|x64 - {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|x64.Build.0 = Release|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|Win32.ActiveCfg = Debug|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|x64.ActiveCfg = Debug|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|Win32.ActiveCfg = Release|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|x64.ActiveCfg = Release|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|Win32.Build.0 = Debug|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|x64.Build.0 = Debug|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|Win32.Build.0 = Release|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|x64.Build.0 = Release|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|x64.Build.0 = Debug|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|Win32.Build.0 = Release|Win32 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|x64.ActiveCfg = Release|x64 - {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|x64.Build.0 = Release|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|Win32.ActiveCfg = Debug|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|x64.ActiveCfg = Debug|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|Win32.ActiveCfg = Release|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|x64.ActiveCfg = Release|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|Win32.Build.0 = Debug|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|x64.Build.0 = Debug|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|Win32.Build.0 = Release|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|x64.Build.0 = Release|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|x64.Build.0 = Debug|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.Build.0 = Release|Win32 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.ActiveCfg = Release|x64 - {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.Build.0 = Release|x64 {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|Win32.ActiveCfg = Debug|Win32 {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|x64.ActiveCfg = Debug|x64 {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|Win32.ActiveCfg = Release|Win32 @@ -2986,150 +1086,6 @@ Global {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|Win32.Build.0 = Release|Win32 {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.ActiveCfg = Release|x64 {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.Build.0 = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.ActiveCfg = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.ActiveCfg = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.ActiveCfg = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.ActiveCfg = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.Build.0 = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.Build.0 = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.Build.0 = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.Build.0 = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.Build.0 = Debug|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.Build.0 = Release|Win32 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.ActiveCfg = Release|x64 - {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.Build.0 = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.ActiveCfg = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.ActiveCfg = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.ActiveCfg = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.ActiveCfg = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.Build.0 = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.Build.0 = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.Build.0 = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.Build.0 = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.Build.0 = Debug|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.Build.0 = Release|Win32 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.ActiveCfg = Release|x64 - {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.Build.0 = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.ActiveCfg = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.ActiveCfg = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.ActiveCfg = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.ActiveCfg = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.Build.0 = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.Build.0 = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.Build.0 = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.Build.0 = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.Build.0 = Debug|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.Build.0 = Release|Win32 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.ActiveCfg = Release|x64 - {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.Build.0 = Release|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|x64.ActiveCfg = Debug|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|Win32.ActiveCfg = Release|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|x64.ActiveCfg = Release|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|Win32.Build.0 = Debug|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|x64.Build.0 = Debug|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|Win32.Build.0 = Release|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|x64.Build.0 = Release|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|x64.Build.0 = Debug|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|Win32.Build.0 = Release|Win32 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|x64.ActiveCfg = Release|x64 - {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|x64.Build.0 = Release|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|Win32.ActiveCfg = Debug|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|x64.ActiveCfg = Debug|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|Win32.ActiveCfg = Release|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|x64.ActiveCfg = Release|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|Win32.Build.0 = Debug|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|x64.Build.0 = Debug|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|Win32.Build.0 = Release|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|x64.Build.0 = Release|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|x64.Build.0 = Debug|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|Win32.Build.0 = Release|Win32 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|x64.ActiveCfg = Release|x64 - {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|x64.Build.0 = Release|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|Win32.ActiveCfg = Debug|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|x64.ActiveCfg = Debug|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|Win32.ActiveCfg = Release|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|x64.ActiveCfg = Release|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|Win32.Build.0 = Debug|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|x64.Build.0 = Debug|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|Win32.Build.0 = Release|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|x64.Build.0 = Release|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|x64.Build.0 = Debug|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|Win32.Build.0 = Release|Win32 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|x64.ActiveCfg = Release|x64 - {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|x64.Build.0 = Release|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|Win32.ActiveCfg = Debug|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|x64.ActiveCfg = Debug|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|Win32.ActiveCfg = Release|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|x64.ActiveCfg = Release|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|Win32.Build.0 = Debug|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|x64.Build.0 = Debug|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|Win32.Build.0 = Release|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|x64.Build.0 = Release|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|x64.Build.0 = Debug|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|Win32.Build.0 = Release|Win32 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|x64.ActiveCfg = Release|x64 - {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|x64.Build.0 = Release|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|Win32.ActiveCfg = Debug|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|x64.ActiveCfg = Debug|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|Win32.ActiveCfg = Release|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|x64.ActiveCfg = Release|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|Win32.Build.0 = Debug|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|x64.Build.0 = Debug|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|Win32.Build.0 = Release|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|x64.Build.0 = Release|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|x64.Build.0 = Debug|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|Win32.Build.0 = Release|Win32 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|x64.ActiveCfg = Release|x64 - {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|x64.Build.0 = Release|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|Win32.ActiveCfg = Debug|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|x64.ActiveCfg = Debug|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|Win32.ActiveCfg = Release|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|x64.ActiveCfg = Release|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|Win32.Build.0 = Debug|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|x64.Build.0 = Debug|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|Win32.Build.0 = Release|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|x64.Build.0 = Release|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|x64.Build.0 = Debug|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|Win32.Build.0 = Release|Win32 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|x64.ActiveCfg = Release|x64 - {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|x64.Build.0 = Release|x64 {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|Win32.ActiveCfg = Debug|Win32 {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|x64.ActiveCfg = Debug|x64 {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|Win32.ActiveCfg = Release|Win32 @@ -3146,198 +1102,6 @@ Global {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|Win32.Build.0 = Release|Win32 {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.ActiveCfg = Release|x64 {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.Build.0 = Release|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|Win32.ActiveCfg = Debug|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|x64.ActiveCfg = Debug|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|Win32.ActiveCfg = Release|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|x64.ActiveCfg = Release|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|Win32.Build.0 = Debug|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|x64.Build.0 = Debug|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|Win32.Build.0 = Release|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|x64.Build.0 = Release|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|x64.Build.0 = Debug|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|Win32.Build.0 = Release|Win32 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|x64.ActiveCfg = Release|x64 - {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|x64.Build.0 = Release|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|Win32.ActiveCfg = Debug|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|x64.ActiveCfg = Debug|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|Win32.ActiveCfg = Release|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|x64.ActiveCfg = Release|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|Win32.Build.0 = Debug|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|x64.Build.0 = Debug|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|Win32.Build.0 = Release|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|x64.Build.0 = Release|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|x64.Build.0 = Debug|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|Win32.Build.0 = Release|Win32 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|x64.ActiveCfg = Release|x64 - {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|x64.Build.0 = Release|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|Win32.ActiveCfg = Debug|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|x64.ActiveCfg = Debug|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|Win32.ActiveCfg = Release|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|x64.ActiveCfg = Release|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|Win32.Build.0 = Debug|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|x64.Build.0 = Debug|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|Win32.Build.0 = Release|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|x64.Build.0 = Release|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|x64.Build.0 = Debug|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|Win32.Build.0 = Release|Win32 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|x64.ActiveCfg = Release|x64 - {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|x64.Build.0 = Release|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|Win32.ActiveCfg = Debug|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|x64.ActiveCfg = Debug|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|Win32.ActiveCfg = Release|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|x64.ActiveCfg = Release|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|Win32.Build.0 = Debug|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|x64.Build.0 = Debug|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|Win32.Build.0 = Release|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|x64.Build.0 = Release|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|x64.Build.0 = Debug|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|Win32.Build.0 = Release|Win32 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|x64.ActiveCfg = Release|x64 - {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|x64.Build.0 = Release|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|Win32.ActiveCfg = Debug|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|x64.ActiveCfg = Debug|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|Win32.ActiveCfg = Release|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|x64.ActiveCfg = Release|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|Win32.Build.0 = Debug|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|x64.Build.0 = Debug|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|Win32.Build.0 = Release|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|x64.Build.0 = Release|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|x64.Build.0 = Debug|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|Win32.Build.0 = Release|Win32 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|x64.ActiveCfg = Release|x64 - {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|x64.Build.0 = Release|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|Win32.ActiveCfg = Debug|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|x64.ActiveCfg = Debug|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|Win32.ActiveCfg = Release|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|x64.ActiveCfg = Release|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|Win32.Build.0 = Debug|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|x64.Build.0 = Debug|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|Win32.Build.0 = Release|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|x64.Build.0 = Release|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|x64.Build.0 = Debug|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|Win32.Build.0 = Release|Win32 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|x64.ActiveCfg = Release|x64 - {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|x64.Build.0 = Release|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|Win32.ActiveCfg = Debug|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|x64.ActiveCfg = Debug|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|Win32.ActiveCfg = Release|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|x64.ActiveCfg = Release|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|Win32.Build.0 = Debug|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|x64.Build.0 = Debug|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|Win32.Build.0 = Release|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|x64.Build.0 = Release|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|x64.Build.0 = Debug|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|Win32.Build.0 = Release|Win32 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|x64.ActiveCfg = Release|x64 - {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|x64.Build.0 = Release|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|Win32.ActiveCfg = Debug|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|x64.ActiveCfg = Debug|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|Win32.ActiveCfg = Release|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|x64.ActiveCfg = Release|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|Win32.Build.0 = Debug|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|x64.Build.0 = Debug|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|Win32.Build.0 = Release|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|x64.Build.0 = Release|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|x64.Build.0 = Debug|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|Win32.Build.0 = Release|Win32 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|x64.ActiveCfg = Release|x64 - {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|x64.Build.0 = Release|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|Win32.ActiveCfg = Debug|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|x64.ActiveCfg = Debug|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release|Win32.ActiveCfg = Release|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release|x64.ActiveCfg = Release|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|Win32.Build.0 = Debug|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|x64.Build.0 = Debug|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release|Win32.Build.0 = Release|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release|x64.Build.0 = Release|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|x64.Build.0 = Debug|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|Win32.Build.0 = Release|Win32 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|x64.ActiveCfg = Release|x64 - {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|x64.Build.0 = Release|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|Win32.ActiveCfg = Debug|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|x64.ActiveCfg = Debug|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|Win32.ActiveCfg = Release|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|x64.ActiveCfg = Release|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|Win32.Build.0 = Debug|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|x64.Build.0 = Debug|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|Win32.Build.0 = Release|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|x64.Build.0 = Release|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|x64.Build.0 = Debug|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|Win32.Build.0 = Release|Win32 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|x64.ActiveCfg = Release|x64 - {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|x64.Build.0 = Release|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|Win32.ActiveCfg = Debug|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|x64.ActiveCfg = Debug|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|Win32.ActiveCfg = Release|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|x64.ActiveCfg = Release|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|Win32.Build.0 = Debug|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|x64.Build.0 = Debug|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|Win32.Build.0 = Release|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|x64.Build.0 = Release|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|x64.Build.0 = Debug|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|Win32.Build.0 = Release|Win32 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|x64.ActiveCfg = Release|x64 - {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|x64.Build.0 = Release|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|Win32.ActiveCfg = Debug|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|x64.ActiveCfg = Debug|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|Win32.ActiveCfg = Release|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|x64.ActiveCfg = Release|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|Win32.Build.0 = Debug|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|x64.Build.0 = Debug|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|Win32.Build.0 = Release|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|x64.Build.0 = Release|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|x64.Build.0 = Debug|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|Win32.Build.0 = Release|Win32 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|x64.ActiveCfg = Release|x64 - {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|x64.Build.0 = Release|x64 {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|Win32.ActiveCfg = Debug|Win32 {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|x64.ActiveCfg = Debug|x64 {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|Win32.ActiveCfg = Release|Win32 @@ -3354,38 +1118,6 @@ Global {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|Win32.Build.0 = Release|Win32 {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|x64.ActiveCfg = Release|x64 {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|x64.Build.0 = Release|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|Win32.ActiveCfg = Debug|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|x64.ActiveCfg = Debug|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|Win32.ActiveCfg = Release|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|x64.ActiveCfg = Release|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|Win32.Build.0 = Debug|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|x64.Build.0 = Debug|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|Win32.Build.0 = Release|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|x64.Build.0 = Release|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|x64.Build.0 = Debug|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|Win32.Build.0 = Release|Win32 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|x64.ActiveCfg = Release|x64 - {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|x64.Build.0 = Release|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|Win32.ActiveCfg = Debug|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|x64.ActiveCfg = Debug|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|Win32.ActiveCfg = Release|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|x64.ActiveCfg = Release|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|Win32.Build.0 = Debug|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|x64.Build.0 = Debug|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|Win32.Build.0 = Release|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|x64.Build.0 = Release|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|x64.Build.0 = Debug|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|Win32.Build.0 = Release|Win32 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|x64.ActiveCfg = Release|x64 - {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|x64.Build.0 = Release|x64 {63422647-93FA-46BB-4827-95473D9D503C}.Debug|Win32.ActiveCfg = Debug|Win32 {63422647-93FA-46BB-4827-95473D9D503C}.Debug|x64.ActiveCfg = Debug|x64 {63422647-93FA-46BB-4827-95473D9D503C}.Release|Win32.ActiveCfg = Release|Win32 @@ -3402,150 +1134,6 @@ Global {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|Win32.Build.0 = Release|Win32 {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|x64.ActiveCfg = Release|x64 {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|x64.Build.0 = Release|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|Win32.ActiveCfg = Debug|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|x64.ActiveCfg = Debug|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|Win32.ActiveCfg = Release|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|x64.ActiveCfg = Release|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|Win32.Build.0 = Debug|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|x64.Build.0 = Debug|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|Win32.Build.0 = Release|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|x64.Build.0 = Release|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|x64.Build.0 = Debug|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|Win32.Build.0 = Release|Win32 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|x64.ActiveCfg = Release|x64 - {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|x64.Build.0 = Release|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|Win32.ActiveCfg = Debug|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|x64.ActiveCfg = Debug|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|Win32.ActiveCfg = Release|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|x64.ActiveCfg = Release|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|Win32.Build.0 = Debug|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|x64.Build.0 = Debug|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|Win32.Build.0 = Release|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|x64.Build.0 = Release|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|x64.Build.0 = Debug|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|Win32.Build.0 = Release|Win32 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|x64.ActiveCfg = Release|x64 - {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|x64.Build.0 = Release|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|Win32.ActiveCfg = Debug|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|x64.ActiveCfg = Debug|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|Win32.ActiveCfg = Release|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|x64.ActiveCfg = Release|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|Win32.Build.0 = Debug|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|x64.Build.0 = Debug|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|Win32.Build.0 = Release|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|x64.Build.0 = Release|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|x64.Build.0 = Debug|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|Win32.Build.0 = Release|Win32 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|x64.ActiveCfg = Release|x64 - {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|x64.Build.0 = Release|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|Win32.ActiveCfg = Debug|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|x64.ActiveCfg = Debug|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|Win32.ActiveCfg = Release|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|x64.ActiveCfg = Release|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|Win32.Build.0 = Debug|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|x64.Build.0 = Debug|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|Win32.Build.0 = Release|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|x64.Build.0 = Release|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|x64.Build.0 = Debug|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|Win32.Build.0 = Release|Win32 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|x64.ActiveCfg = Release|x64 - {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|x64.Build.0 = Release|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|Win32.ActiveCfg = Debug|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|x64.ActiveCfg = Debug|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|Win32.ActiveCfg = Release|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|x64.ActiveCfg = Release|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|Win32.Build.0 = Debug|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|x64.Build.0 = Debug|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|Win32.Build.0 = Release|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|x64.Build.0 = Release|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|x64.Build.0 = Debug|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|Win32.Build.0 = Release|Win32 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|x64.ActiveCfg = Release|x64 - {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|x64.Build.0 = Release|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|Win32.ActiveCfg = Debug|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|x64.ActiveCfg = Debug|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|Win32.ActiveCfg = Release|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|x64.ActiveCfg = Release|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|Win32.Build.0 = Debug|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|x64.Build.0 = Debug|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|Win32.Build.0 = Release|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|x64.Build.0 = Release|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|x64.Build.0 = Debug|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|Win32.Build.0 = Release|Win32 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|x64.ActiveCfg = Release|x64 - {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|x64.Build.0 = Release|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|x64.ActiveCfg = Debug|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|Win32.ActiveCfg = Release|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|x64.ActiveCfg = Release|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|Win32.Build.0 = Debug|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|x64.Build.0 = Debug|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|Win32.Build.0 = Release|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|x64.Build.0 = Release|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|x64.Build.0 = Debug|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|Win32.Build.0 = Release|Win32 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|x64.ActiveCfg = Release|x64 - {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|x64.Build.0 = Release|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|Win32.ActiveCfg = Debug|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|x64.ActiveCfg = Debug|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|Win32.ActiveCfg = Release|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|x64.ActiveCfg = Release|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|Win32.Build.0 = Debug|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|x64.Build.0 = Debug|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|Win32.Build.0 = Release|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|x64.Build.0 = Release|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|x64.Build.0 = Debug|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|Win32.Build.0 = Release|Win32 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|x64.ActiveCfg = Release|x64 - {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|x64.Build.0 = Release|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|Win32.ActiveCfg = Debug|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|x64.ActiveCfg = Debug|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|Win32.ActiveCfg = Release|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|x64.ActiveCfg = Release|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|Win32.Build.0 = Debug|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|x64.Build.0 = Debug|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|Win32.Build.0 = Release|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|x64.Build.0 = Release|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|x64.Build.0 = Debug|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|Win32.Build.0 = Release|Win32 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|x64.ActiveCfg = Release|x64 - {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|x64.Build.0 = Release|x64 {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|Win32.ActiveCfg = Debug|Win32 {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|x64.ActiveCfg = Debug|x64 {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|Win32.ActiveCfg = Release|Win32 @@ -3562,22 +1150,6 @@ Global {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|Win32.Build.0 = Release|Win32 {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|x64.ActiveCfg = Release|x64 {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|x64.Build.0 = Release|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|Win32.ActiveCfg = Debug|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|x64.ActiveCfg = Debug|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|Win32.ActiveCfg = Release|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|x64.ActiveCfg = Release|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|Win32.Build.0 = Debug|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|x64.Build.0 = Debug|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|Win32.Build.0 = Release|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|x64.Build.0 = Release|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|x64.Build.0 = Debug|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|Win32.Build.0 = Release|Win32 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|x64.ActiveCfg = Release|x64 - {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|x64.Build.0 = Release|x64 {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|Win32.ActiveCfg = Debug|Win32 {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|x64.ActiveCfg = Debug|x64 {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/buildtests_core.sln b/vsprojects/buildtests_core.sln new file mode 100644 index 0000000000000..378dd9edaaf69 --- /dev/null +++ b/vsprojects/buildtests_core.sln @@ -0,0 +1,2546 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alarm_test", "vcxproj\test\alarm_test\alarm_test.vcxproj", "{AFD362D7-0E2A-E700-1F27-9D90F76166DF}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "algorithm_test", "vcxproj\test\algorithm_test\algorithm_test.vcxproj", "{216FDCB2-9D93-0D86-F0F1-12E16312A191}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alloc_test", "vcxproj\test\alloc_test\alloc_test.vcxproj", "{DD37D527-9DFF-1F53-B97F-50CF80AE0650}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alpn_test", "vcxproj\test\alpn_test\alpn_test.vcxproj", "{5BAAE7EA-A972-DD80-F190-29B9E3110BB3}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_server_response_test", "vcxproj\test\bad_server_response_test\bad_server_response_test.vcxproj", "{2B73DA77-EF66-362C-24AD-317E3B8B28C1}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {E3110C46-A148-FF65-08FD-3324829BE7FE} = {E3110C46-A148-FF65-08FD-3324829BE7FE} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bin_decoder_test", "vcxproj\test\bin_decoder_test\bin_decoder_test.vcxproj", "{6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bin_encoder_test", "vcxproj\test\bin_encoder_test\bin_encoder_test.vcxproj", "{D5C70922-D68E-0E9D-9988-995E0F9A79AE}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "census_context_test", "vcxproj\test\census_context_test\census_context_test.vcxproj", "{5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "census_resource_test", "vcxproj\test\census_resource_test\census_resource_test.vcxproj", "{18CF99B5-3C61-EC3D-9509-3C95334C3B88}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "channel_create_test", "vcxproj\test\channel_create_test\channel_create_test.vcxproj", "{AFC88484-3A2E-32BC-25B2-23DF741D4F3D}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_hpack_encoder_test", "vcxproj\test\chttp2_hpack_encoder_test\chttp2_hpack_encoder_test.vcxproj", "{19F92966-3B0E-4FF8-CD7C-435D353E079E}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_status_conversion_test", "vcxproj\test\chttp2_status_conversion_test\chttp2_status_conversion_test.vcxproj", "{ABAD3D2C-078C-7850-B413-3352A07C6176}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_stream_map_test", "vcxproj\test\chttp2_stream_map_test\chttp2_stream_map_test.vcxproj", "{12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chttp2_varint_test", "vcxproj\test\chttp2_varint_test\chttp2_varint_test.vcxproj", "{6B29F634-1277-74B8-47F6-78756190BA7B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compression_test", "vcxproj\test\compression_test\compression_test.vcxproj", "{5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "concurrent_connectivity_test", "vcxproj\test\concurrent_connectivity_test\concurrent_connectivity_test.vcxproj", "{391B366C-D916-45AA-3FE5-67363A46193B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns_resolver_connectivity_test", "vcxproj\test\dns_resolver_connectivity_test\dns_resolver_connectivity_test.vcxproj", "{F7B6FE68-E847-D7CA-4062-E737E542BCC3}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns_resolver_test", "vcxproj\test\dns_resolver_test\dns_resolver_test.vcxproj", "{D06E10DC-272A-5203-7066-2698A247DF26}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "endpoint_pair_test", "vcxproj\test\endpoint_pair_test\endpoint_pair_test.vcxproj", "{37166D50-3AAA-1156-19F6-5901DFA55172}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fling_client", "vcxproj\test\fling_client\fling_client.vcxproj", "{0647D598-9611-F659-EA36-DF995C9F736B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fling_server", "vcxproj\test\fling_server\fling_server.vcxproj", "{5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_hpack_tables", "vcxproj\.\gen_hpack_tables\gen_hpack_tables.vcxproj", "{FCDEA4C7-7F26-05DB-D08F-A08F499026E6}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_legal_metadata_characters", "vcxproj\.\gen_legal_metadata_characters\gen_legal_metadata_characters.vcxproj", "{A635DE99-B131-CA00-2D3B-8691D60B76C2}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr", "vcxproj\.\gpr\gpr.vcxproj", "{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_avl_test", "vcxproj\test\gpr_avl_test\gpr_avl_test.vcxproj", "{144D8CFF-2737-A18A-DCFD-01603533D63F}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_backoff_test", "vcxproj\test\gpr_backoff_test\gpr_backoff_test.vcxproj", "{889F570D-E046-BD52-9E4C-B4CD13DFE2DB}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_cmdline_test", "vcxproj\test\gpr_cmdline_test\gpr_cmdline_test.vcxproj", "{10668A5D-65CD-F530-22D0-747B395B4C26}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_cpu_test", "vcxproj\test\gpr_cpu_test\gpr_cpu_test.vcxproj", "{0CB6DF66-4346-CCD0-C94B-318321C46501}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_env_test", "vcxproj\test\gpr_env_test\gpr_env_test.vcxproj", "{07149650-E8AF-B3D8-9D5B-BC34DC909DB8}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_histogram_test", "vcxproj\test\gpr_histogram_test\gpr_histogram_test.vcxproj", "{EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_host_port_test", "vcxproj\test\gpr_host_port_test\gpr_host_port_test.vcxproj", "{64728265-92F9-103E-6720-8935385458DF}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_log_test", "vcxproj\test\gpr_log_test\gpr_log_test.vcxproj", "{38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_slice_buffer_test", "vcxproj\test\gpr_slice_buffer_test\gpr_slice_buffer_test.vcxproj", "{E679773D-DE89-AEBB-9787-59019989B825}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_slice_test", "vcxproj\test\gpr_slice_test\gpr_slice_test.vcxproj", "{7F2D1623-AF04-DD98-BCE6-61ADB9A52366}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_stack_lockfree_test", "vcxproj\test\gpr_stack_lockfree_test\gpr_stack_lockfree_test.vcxproj", "{AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_string_test", "vcxproj\test\gpr_string_test\gpr_string_test.vcxproj", "{B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_sync_test", "vcxproj\test\gpr_sync_test\gpr_sync_test.vcxproj", "{98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_test_util", "vcxproj\.\gpr_test_util\gpr_test_util.vcxproj", "{EAB0A629-17A9-44DB-B5FF-E91A721FE037}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_thd_test", "vcxproj\test\gpr_thd_test\gpr_thd_test.vcxproj", "{459B2FAC-5FC8-1F47-8053-66D46EA39A49}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_time_test", "vcxproj\test\gpr_time_test\gpr_time_test.vcxproj", "{9779680E-3218-1528-E922-605871A20C3F}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_tls_test", "vcxproj\test\gpr_tls_test\gpr_tls_test.vcxproj", "{F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_useful_test", "vcxproj\test\gpr_useful_test\gpr_useful_test.vcxproj", "{40B790A8-BB01-9F12-5309-C0BEA97C75BC}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc.vcxproj", "{29D16885-7228-4C31-81ED-5F9187C7F2A9}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_auth_context_test", "vcxproj\test\grpc_auth_context_test\grpc_auth_context_test.vcxproj", "{C65A4336-92D6-D6A0-EB86-E3AA425222D0}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_b64_test", "vcxproj\test\grpc_b64_test\grpc_b64_test.vcxproj", "{A19FD81D-DF19-B8A4-4A8A-6967217FEC85}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_byte_buffer_reader_test", "vcxproj\test\grpc_byte_buffer_reader_test\grpc_byte_buffer_reader_test.vcxproj", "{82124768-C986-6C10-8BCC-B255B7C84722}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_channel_args_test", "vcxproj\test\grpc_channel_args_test\grpc_channel_args_test.vcxproj", "{58FB566F-DCD5-3ECE-233E-C1FD13CA2185}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_channel_stack_test", "vcxproj\test\grpc_channel_stack_test\grpc_channel_stack_test.vcxproj", "{E3CEAFE1-8CE9-61F6-A720-E26662246B1F}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_completion_queue_test", "vcxproj\test\grpc_completion_queue_test\grpc_completion_queue_test.vcxproj", "{16CDF507-EB91-D76C-F0A7-A914ABFD8C17}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_create_jwt", "vcxproj\.\grpc_create_jwt\grpc_create_jwt.vcxproj", "{77971F8D-F583-3E77-0E3C-6C1FB6B1749C}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_credentials_test", "vcxproj\test\grpc_credentials_test\grpc_credentials_test.vcxproj", "{8305CC95-25CD-E15F-EA1A-11626FCF5AF9}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_fetch_oauth2", "vcxproj\test\grpc_fetch_oauth2\grpc_fetch_oauth2.vcxproj", "{43722E98-54EC-5058-3DAC-327F45964971}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_invalid_channel_args_test", "vcxproj\test\grpc_invalid_channel_args_test\grpc_invalid_channel_args_test.vcxproj", "{B50FD4F7-5628-9BEC-81B9-EB79A0A45577}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_jwt_verifier_test", "vcxproj\test\grpc_jwt_verifier_test\grpc_jwt_verifier_test.vcxproj", "{60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_print_google_default_creds_token", "vcxproj\.\grpc_print_google_default_creds_token\grpc_print_google_default_creds_token.vcxproj", "{C002965C-8457-CCE5-B1BA-E748FF9A11B6}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_security_connector_test", "vcxproj\test\grpc_security_connector_test\grpc_security_connector_test.vcxproj", "{74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util", "vcxproj\.\grpc_test_util\grpc_test_util.vcxproj", "{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_verify_jwt", "vcxproj\.\grpc_verify_jwt\grpc_verify_jwt.vcxproj", "{02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hpack_parser_test", "vcxproj\test\hpack_parser_test\hpack_parser_test.vcxproj", "{4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hpack_table_test", "vcxproj\test\hpack_table_test\hpack_table_test.vcxproj", "{FF2CEE6D-850F-E22C-53A0-8C5912B14B20}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "http_parser_test", "vcxproj\test\http_parser_test\http_parser_test.vcxproj", "{49D7E690-BDA1-5236-1ABF-3D81C1559DF7}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "httpcli_format_request_test", "vcxproj\test\httpcli_format_request_test\httpcli_format_request_test.vcxproj", "{A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "init_test", "vcxproj\test\init_test\init_test.vcxproj", "{117CA7AD-C42B-9217-6C95-42A801777BC5}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_iomgr_test", "vcxproj\test\internal_api_canary_iomgr_test\internal_api_canary_iomgr_test.vcxproj", "{28AE726B-1BFB-202B-48D2-41AF9D09B9EA}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_support_test", "vcxproj\test\internal_api_canary_support_test\internal_api_canary_support_test.vcxproj", "{D53575C6-713C-E6E3-FD74-E65F20916498}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_transport_test", "vcxproj\test\internal_api_canary_transport_test\internal_api_canary_transport_test.vcxproj", "{ED24E700-964E-B426-6A6A-1944E2EF7BCB}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid_call_argument_test", "vcxproj\test\invalid_call_argument_test\invalid_call_argument_test.vcxproj", "{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite", "vcxproj\test\json_rewrite\json_rewrite.vcxproj", "{57B36FF6-25B1-2475-D07A-2E9097E2C792}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_rewrite_test", "vcxproj\test\json_rewrite_test\json_rewrite_test.vcxproj", "{DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_stream_error_test", "vcxproj\test\json_stream_error_test\json_stream_error_test.vcxproj", "{8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "json_test", "vcxproj\test\json_test\json_test.vcxproj", "{05230AC7-4529-E6CF-0506-A063B5FF6642}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lame_client_test", "vcxproj\test\lame_client_test\lame_client_test.vcxproj", "{6E60B394-E17D-658A-6648-A2E6E183226F}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lb_policies_test", "vcxproj\test\lb_policies_test\lb_policies_test.vcxproj", "{62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "load_file_test", "vcxproj\test\load_file_test\load_file_test.vcxproj", "{DC76C089-0D55-DF19-7CCA-49DAE5D29E49}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "message_compress_test", "vcxproj\test\message_compress_test\message_compress_test.vcxproj", "{07170557-CCB0-D23C-8018-C2909D115DF9}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mlog_test", "vcxproj\test\mlog_test\mlog_test.vcxproj", "{9345E329-80F3-DED4-FDC3-BF63FCEA2C03}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multiple_server_queues_test", "vcxproj\test\multiple_server_queues_test\multiple_server_queues_test.vcxproj", "{88AF688E-E43C-5E20-6966-CF559F597D82}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "murmur_hash_test", "vcxproj\test\murmur_hash_test\murmur_hash_test.vcxproj", "{0B136077-8522-3C25-7704-1C386C9FDCD5}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "no_server_test", "vcxproj\test\no_server_test\no_server_test.vcxproj", "{A66AC548-E2B9-74CD-293C-43526EE51DCE}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolve_address_test", "vcxproj\test\resolve_address_test\resolve_address_test.vcxproj", "{8279AF6C-9584-67F3-1547-B204864FCCA7}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "secure_channel_create_test", "vcxproj\test\secure_channel_create_test\secure_channel_create_test.vcxproj", "{62B25398-7173-928E-689E-53860B0ACFC4}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "secure_endpoint_test", "vcxproj\test\secure_endpoint_test\secure_endpoint_test.vcxproj", "{A7747106-A6BC-62D4-2A21-04A4F0CC2683}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sequential_connectivity_test", "vcxproj\test\sequential_connectivity_test\sequential_connectivity_test.vcxproj", "{F164F666-C866-D607-E1DF-E7BF3CF98255}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_chttp2_test", "vcxproj\test\server_chttp2_test\server_chttp2_test.vcxproj", "{BF9F909B-8266-6AAC-A81B-05F8210AA8CA}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_test", "vcxproj\test\server_test\server_test.vcxproj", "{E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "set_initial_connect_string_test", "vcxproj\test\set_initial_connect_string_test\set_initial_connect_string_test.vcxproj", "{4A48E5A5-2E69-ED6D-063C-C297180A54D0}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {E3110C46-A148-FF65-08FD-3324829BE7FE} = {E3110C46-A148-FF65-08FD-3324829BE7FE} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sockaddr_resolver_test", "vcxproj\test\sockaddr_resolver_test\sockaddr_resolver_test.vcxproj", "{9889A80C-F1D7-99C9-FE7E-657724BEDC62}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sockaddr_utils_test", "vcxproj\test\sockaddr_utils_test\sockaddr_utils_test.vcxproj", "{529771F0-10B0-9B1A-1E7E-8A8E01870348}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_tcp_server", "vcxproj\.\test_tcp_server\test_tcp_server.vcxproj", "{E3110C46-A148-FF65-08FD-3324829BE7FE}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "time_averaged_stats_test", "vcxproj\test\time_averaged_stats_test\time_averaged_stats_test.vcxproj", "{D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timeout_encoding_test", "vcxproj\test\timeout_encoding_test\timeout_encoding_test.vcxproj", "{EA073C36-A527-F749-AD4A-243A38B9BFF5}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer_heap_test", "vcxproj\test\timer_heap_test\timer_heap_test.vcxproj", "{A2110C60-E75A-F76E-205E-1836F86C4D53}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer_list_test", "vcxproj\test\timer_list_test\timer_list_test.vcxproj", "{C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "transport_connectivity_state_test", "vcxproj\test\transport_connectivity_state_test\transport_connectivity_state_test.vcxproj", "{659121F6-1639-AC6B-053E-9D17A8B94D56}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "transport_metadata_test", "vcxproj\test\transport_metadata_test\transport_metadata_test.vcxproj", "{89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uri_parser_test", "vcxproj\test\uri_parser_test\uri_parser_test.vcxproj", "{E35C24A0-8725-E773-FE78-CC0C67071EF7}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Debug-DLL|Win32 = Debug-DLL|Win32 + Debug-DLL|x64 = Debug-DLL|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release-DLL|Win32 = Release-DLL|Win32 + Release-DLL|x64 = Release-DLL|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|x64.ActiveCfg = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|Win32.ActiveCfg = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|x64.ActiveCfg = Release|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|Win32.Build.0 = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|x64.Build.0 = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|Win32.Build.0 = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|x64.Build.0 = Release|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|x64.Build.0 = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|Win32.Build.0 = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|x64.ActiveCfg = Release|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|x64.Build.0 = Release|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|Win32.ActiveCfg = Debug|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|x64.ActiveCfg = Debug|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|Win32.ActiveCfg = Release|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|x64.ActiveCfg = Release|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|Win32.Build.0 = Debug|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|x64.Build.0 = Debug|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|Win32.Build.0 = Release|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|x64.Build.0 = Release|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug-DLL|x64.Build.0 = Debug|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|Win32.Build.0 = Release|Win32 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|x64.ActiveCfg = Release|x64 + {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release-DLL|x64.Build.0 = Release|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|Win32.ActiveCfg = Debug|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|x64.ActiveCfg = Debug|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|Win32.ActiveCfg = Release|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|x64.ActiveCfg = Release|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|Win32.Build.0 = Debug|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug|x64.Build.0 = Debug|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|Win32.Build.0 = Release|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release|x64.Build.0 = Release|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Debug-DLL|x64.Build.0 = Debug|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|Win32.Build.0 = Release|Win32 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|x64.ActiveCfg = Release|x64 + {DD37D527-9DFF-1F53-B97F-50CF80AE0650}.Release-DLL|x64.Build.0 = Release|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|Win32.ActiveCfg = Debug|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|x64.ActiveCfg = Debug|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|Win32.ActiveCfg = Release|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|x64.ActiveCfg = Release|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|Win32.Build.0 = Debug|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug|x64.Build.0 = Debug|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|Win32.Build.0 = Release|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release|x64.Build.0 = Release|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Debug-DLL|x64.Build.0 = Debug|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|Win32.Build.0 = Release|Win32 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|x64.ActiveCfg = Release|x64 + {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|x64.Build.0 = Release|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|Win32.ActiveCfg = Debug|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|x64.ActiveCfg = Debug|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|Win32.ActiveCfg = Release|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|x64.ActiveCfg = Release|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|Win32.Build.0 = Debug|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|x64.Build.0 = Debug|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|Win32.Build.0 = Release|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|x64.Build.0 = Release|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug-DLL|x64.Build.0 = Debug|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|Win32.Build.0 = Release|Win32 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|x64.ActiveCfg = Release|x64 + {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|x64.Build.0 = Release|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|Win32.ActiveCfg = Debug|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|x64.ActiveCfg = Debug|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|Win32.ActiveCfg = Release|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|x64.ActiveCfg = Release|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|Win32.Build.0 = Debug|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|x64.Build.0 = Debug|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|Win32.Build.0 = Release|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|x64.Build.0 = Release|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug-DLL|x64.Build.0 = Debug|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|Win32.Build.0 = Release|Win32 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|x64.ActiveCfg = Release|x64 + {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release-DLL|x64.Build.0 = Release|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|Win32.ActiveCfg = Debug|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|x64.ActiveCfg = Debug|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|Win32.ActiveCfg = Release|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|x64.ActiveCfg = Release|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|Win32.Build.0 = Debug|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug|x64.Build.0 = Debug|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|Win32.Build.0 = Release|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release|x64.Build.0 = Release|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Debug-DLL|x64.Build.0 = Debug|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|Win32.Build.0 = Release|Win32 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|x64.ActiveCfg = Release|x64 + {D5C70922-D68E-0E9D-9988-995E0F9A79AE}.Release-DLL|x64.Build.0 = Release|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|Win32.ActiveCfg = Debug|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|x64.ActiveCfg = Debug|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|Win32.ActiveCfg = Release|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|x64.ActiveCfg = Release|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|Win32.Build.0 = Debug|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug|x64.Build.0 = Debug|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|Win32.Build.0 = Release|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release|x64.Build.0 = Release|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Debug-DLL|x64.Build.0 = Debug|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|Win32.Build.0 = Release|Win32 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|x64.ActiveCfg = Release|x64 + {5C1CFC2D-AF3C-D7CB-BA74-D267E91CBC73}.Release-DLL|x64.Build.0 = Release|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|Win32.ActiveCfg = Debug|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|x64.ActiveCfg = Debug|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|Win32.ActiveCfg = Release|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|x64.ActiveCfg = Release|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|Win32.Build.0 = Debug|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug|x64.Build.0 = Debug|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|Win32.Build.0 = Release|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release|x64.Build.0 = Release|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Debug-DLL|x64.Build.0 = Debug|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|Win32.Build.0 = Release|Win32 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|x64.ActiveCfg = Release|x64 + {18CF99B5-3C61-EC3D-9509-3C95334C3B88}.Release-DLL|x64.Build.0 = Release|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|Win32.ActiveCfg = Debug|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|x64.ActiveCfg = Debug|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|Win32.ActiveCfg = Release|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|x64.ActiveCfg = Release|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|Win32.Build.0 = Debug|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug|x64.Build.0 = Debug|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|Win32.Build.0 = Release|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release|x64.Build.0 = Release|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Debug-DLL|x64.Build.0 = Debug|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|Win32.Build.0 = Release|Win32 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|x64.ActiveCfg = Release|x64 + {AFC88484-3A2E-32BC-25B2-23DF741D4F3D}.Release-DLL|x64.Build.0 = Release|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|Win32.ActiveCfg = Debug|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|x64.ActiveCfg = Debug|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|Win32.ActiveCfg = Release|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|x64.ActiveCfg = Release|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|Win32.Build.0 = Debug|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug|x64.Build.0 = Debug|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|Win32.Build.0 = Release|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release|x64.Build.0 = Release|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Debug-DLL|x64.Build.0 = Debug|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|Win32.Build.0 = Release|Win32 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|x64.ActiveCfg = Release|x64 + {19F92966-3B0E-4FF8-CD7C-435D353E079E}.Release-DLL|x64.Build.0 = Release|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|Win32.ActiveCfg = Debug|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|x64.ActiveCfg = Debug|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|Win32.ActiveCfg = Release|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|x64.ActiveCfg = Release|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|Win32.Build.0 = Debug|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug|x64.Build.0 = Debug|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|Win32.Build.0 = Release|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release|x64.Build.0 = Release|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Debug-DLL|x64.Build.0 = Debug|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|Win32.Build.0 = Release|Win32 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|x64.ActiveCfg = Release|x64 + {ABAD3D2C-078C-7850-B413-3352A07C6176}.Release-DLL|x64.Build.0 = Release|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|Win32.ActiveCfg = Debug|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|x64.ActiveCfg = Debug|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|Win32.ActiveCfg = Release|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|x64.ActiveCfg = Release|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|Win32.Build.0 = Debug|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug|x64.Build.0 = Debug|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|Win32.Build.0 = Release|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release|x64.Build.0 = Release|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Debug-DLL|x64.Build.0 = Debug|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|Win32.Build.0 = Release|Win32 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|x64.ActiveCfg = Release|x64 + {12F9C5F8-1BDA-305F-5A0B-B0F9CC7AA7A4}.Release-DLL|x64.Build.0 = Release|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|Win32.ActiveCfg = Debug|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|x64.ActiveCfg = Debug|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|Win32.ActiveCfg = Release|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|x64.ActiveCfg = Release|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|Win32.Build.0 = Debug|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug|x64.Build.0 = Debug|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|Win32.Build.0 = Release|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release|x64.Build.0 = Release|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Debug-DLL|x64.Build.0 = Debug|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|Win32.Build.0 = Release|Win32 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|x64.ActiveCfg = Release|x64 + {6B29F634-1277-74B8-47F6-78756190BA7B}.Release-DLL|x64.Build.0 = Release|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|x64.ActiveCfg = Debug|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|Win32.ActiveCfg = Release|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|x64.ActiveCfg = Release|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|Win32.Build.0 = Debug|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug|x64.Build.0 = Debug|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|Win32.Build.0 = Release|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release|x64.Build.0 = Release|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Debug-DLL|x64.Build.0 = Debug|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|Win32.Build.0 = Release|Win32 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|x64.ActiveCfg = Release|x64 + {5AFE7D17-A4A7-D68E-4491-CBC852F9D2A0}.Release-DLL|x64.Build.0 = Release|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|Win32.ActiveCfg = Debug|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|x64.ActiveCfg = Debug|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release|Win32.ActiveCfg = Release|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release|x64.ActiveCfg = Release|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|Win32.Build.0 = Debug|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug|x64.Build.0 = Debug|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release|Win32.Build.0 = Release|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release|x64.Build.0 = Release|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Debug-DLL|x64.Build.0 = Debug|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|Win32.Build.0 = Release|Win32 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|x64.ActiveCfg = Release|x64 + {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|x64.Build.0 = Release|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|Win32.ActiveCfg = Debug|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|x64.ActiveCfg = Debug|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|Win32.ActiveCfg = Release|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|x64.ActiveCfg = Release|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|Win32.Build.0 = Debug|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|x64.Build.0 = Debug|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|Win32.Build.0 = Release|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|x64.Build.0 = Release|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug-DLL|x64.Build.0 = Debug|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|Win32.Build.0 = Release|Win32 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|x64.ActiveCfg = Release|x64 + {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release-DLL|x64.Build.0 = Release|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|Win32.ActiveCfg = Debug|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|x64.ActiveCfg = Debug|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release|Win32.ActiveCfg = Release|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release|x64.ActiveCfg = Release|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|Win32.Build.0 = Debug|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug|x64.Build.0 = Debug|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release|Win32.Build.0 = Release|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release|x64.Build.0 = Release|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Debug-DLL|x64.Build.0 = Debug|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|Win32.Build.0 = Release|Win32 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|x64.ActiveCfg = Release|x64 + {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|x64.Build.0 = Release|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|Win32.ActiveCfg = Debug|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|x64.ActiveCfg = Debug|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|Win32.ActiveCfg = Release|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|x64.ActiveCfg = Release|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|Win32.Build.0 = Debug|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|x64.Build.0 = Debug|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|Win32.Build.0 = Release|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|x64.Build.0 = Release|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug-DLL|x64.Build.0 = Debug|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|Win32.Build.0 = Release|Win32 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|x64.ActiveCfg = Release|x64 + {37166D50-3AAA-1156-19F6-5901DFA55172}.Release-DLL|x64.Build.0 = Release|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|Win32.ActiveCfg = Debug|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|x64.ActiveCfg = Debug|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release|Win32.ActiveCfg = Release|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release|x64.ActiveCfg = Release|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|Win32.Build.0 = Debug|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug|x64.Build.0 = Debug|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release|Win32.Build.0 = Release|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release|x64.Build.0 = Release|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Debug-DLL|x64.Build.0 = Debug|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|Win32.Build.0 = Release|Win32 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|x64.ActiveCfg = Release|x64 + {0647D598-9611-F659-EA36-DF995C9F736B}.Release-DLL|x64.Build.0 = Release|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|Win32.ActiveCfg = Debug|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|x64.ActiveCfg = Debug|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|Win32.ActiveCfg = Release|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|x64.ActiveCfg = Release|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|Win32.Build.0 = Debug|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug|x64.Build.0 = Debug|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|Win32.Build.0 = Release|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release|x64.Build.0 = Release|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Debug-DLL|x64.Build.0 = Debug|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|Win32.Build.0 = Release|Win32 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|x64.ActiveCfg = Release|x64 + {5D0E4E74-275C-61D1-0D82-46CD2AA0C0B9}.Release-DLL|x64.Build.0 = Release|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|x64.ActiveCfg = Debug|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|Win32.ActiveCfg = Release|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|x64.ActiveCfg = Release|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|Win32.Build.0 = Debug|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug|x64.Build.0 = Debug|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|Win32.Build.0 = Release|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release|x64.Build.0 = Release|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Debug-DLL|x64.Build.0 = Debug|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|Win32.Build.0 = Release|Win32 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|x64.ActiveCfg = Release|x64 + {FCDEA4C7-7F26-05DB-D08F-A08F499026E6}.Release-DLL|x64.Build.0 = Release|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|Win32.ActiveCfg = Debug|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|x64.ActiveCfg = Debug|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|Win32.ActiveCfg = Release|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|x64.ActiveCfg = Release|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|Win32.Build.0 = Debug|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug|x64.Build.0 = Debug|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|Win32.Build.0 = Release|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release|x64.Build.0 = Release|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Debug-DLL|x64.Build.0 = Debug|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|Win32.Build.0 = Release|Win32 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|x64.ActiveCfg = Release|x64 + {A635DE99-B131-CA00-2D3B-8691D60B76C2}.Release-DLL|x64.Build.0 = Release|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|Win32.ActiveCfg = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|x64.ActiveCfg = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|Win32.ActiveCfg = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|x64.ActiveCfg = Release|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|Win32.Build.0 = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|x64.Build.0 = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|Win32.Build.0 = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|x64.Build.0 = Release|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|x64.Build.0 = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|Win32.Build.0 = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.ActiveCfg = Release|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.Build.0 = Release|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|Win32.ActiveCfg = Debug|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|x64.ActiveCfg = Debug|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|Win32.ActiveCfg = Release|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|x64.ActiveCfg = Release|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|Win32.Build.0 = Debug|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug|x64.Build.0 = Debug|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|Win32.Build.0 = Release|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release|x64.Build.0 = Release|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Debug-DLL|x64.Build.0 = Debug|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|Win32.Build.0 = Release|Win32 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|x64.ActiveCfg = Release|x64 + {144D8CFF-2737-A18A-DCFD-01603533D63F}.Release-DLL|x64.Build.0 = Release|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|Win32.ActiveCfg = Debug|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|x64.ActiveCfg = Debug|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|Win32.ActiveCfg = Release|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|x64.ActiveCfg = Release|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|Win32.Build.0 = Debug|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug|x64.Build.0 = Debug|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|Win32.Build.0 = Release|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release|x64.Build.0 = Release|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Debug-DLL|x64.Build.0 = Debug|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|Win32.Build.0 = Release|Win32 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|x64.ActiveCfg = Release|x64 + {889F570D-E046-BD52-9E4C-B4CD13DFE2DB}.Release-DLL|x64.Build.0 = Release|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|Win32.ActiveCfg = Debug|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|x64.ActiveCfg = Debug|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|Win32.ActiveCfg = Release|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|x64.ActiveCfg = Release|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|Win32.Build.0 = Debug|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug|x64.Build.0 = Debug|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|Win32.Build.0 = Release|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release|x64.Build.0 = Release|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Debug-DLL|x64.Build.0 = Debug|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|Win32.Build.0 = Release|Win32 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|x64.ActiveCfg = Release|x64 + {10668A5D-65CD-F530-22D0-747B395B4C26}.Release-DLL|x64.Build.0 = Release|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|Win32.ActiveCfg = Debug|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|x64.ActiveCfg = Debug|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|Win32.ActiveCfg = Release|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|x64.ActiveCfg = Release|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|Win32.Build.0 = Debug|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug|x64.Build.0 = Debug|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|Win32.Build.0 = Release|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release|x64.Build.0 = Release|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Debug-DLL|x64.Build.0 = Debug|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|Win32.Build.0 = Release|Win32 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|x64.ActiveCfg = Release|x64 + {0CB6DF66-4346-CCD0-C94B-318321C46501}.Release-DLL|x64.Build.0 = Release|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|Win32.ActiveCfg = Debug|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|x64.ActiveCfg = Debug|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|Win32.ActiveCfg = Release|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|x64.ActiveCfg = Release|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|Win32.Build.0 = Debug|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug|x64.Build.0 = Debug|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|Win32.Build.0 = Release|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release|x64.Build.0 = Release|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Debug-DLL|x64.Build.0 = Debug|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|Win32.Build.0 = Release|Win32 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|x64.ActiveCfg = Release|x64 + {07149650-E8AF-B3D8-9D5B-BC34DC909DB8}.Release-DLL|x64.Build.0 = Release|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|Win32.ActiveCfg = Debug|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|x64.ActiveCfg = Debug|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|Win32.ActiveCfg = Release|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|x64.ActiveCfg = Release|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|Win32.Build.0 = Debug|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug|x64.Build.0 = Debug|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|Win32.Build.0 = Release|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release|x64.Build.0 = Release|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Debug-DLL|x64.Build.0 = Debug|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|Win32.Build.0 = Release|Win32 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|x64.ActiveCfg = Release|x64 + {EEBDE4C3-0130-5BD1-E85F-527B3E68FE11}.Release-DLL|x64.Build.0 = Release|x64 + {64728265-92F9-103E-6720-8935385458DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Debug|x64.ActiveCfg = Debug|x64 + {64728265-92F9-103E-6720-8935385458DF}.Release|Win32.ActiveCfg = Release|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Release|x64.ActiveCfg = Release|x64 + {64728265-92F9-103E-6720-8935385458DF}.Debug|Win32.Build.0 = Debug|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Debug|x64.Build.0 = Debug|x64 + {64728265-92F9-103E-6720-8935385458DF}.Release|Win32.Build.0 = Release|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Release|x64.Build.0 = Release|x64 + {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {64728265-92F9-103E-6720-8935385458DF}.Debug-DLL|x64.Build.0 = Debug|x64 + {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|Win32.Build.0 = Release|Win32 + {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|x64.ActiveCfg = Release|x64 + {64728265-92F9-103E-6720-8935385458DF}.Release-DLL|x64.Build.0 = Release|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|Win32.ActiveCfg = Debug|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|x64.ActiveCfg = Debug|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|Win32.ActiveCfg = Release|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|x64.ActiveCfg = Release|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|Win32.Build.0 = Debug|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug|x64.Build.0 = Debug|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|Win32.Build.0 = Release|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release|x64.Build.0 = Release|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Debug-DLL|x64.Build.0 = Debug|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|Win32.Build.0 = Release|Win32 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|x64.ActiveCfg = Release|x64 + {38797EE3-62CC-3CBF-18D5-009ED6DD0BEC}.Release-DLL|x64.Build.0 = Release|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug|Win32.ActiveCfg = Debug|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug|x64.ActiveCfg = Debug|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Release|Win32.ActiveCfg = Release|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Release|x64.ActiveCfg = Release|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug|Win32.Build.0 = Debug|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug|x64.Build.0 = Debug|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Release|Win32.Build.0 = Release|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Release|x64.Build.0 = Release|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Debug-DLL|x64.Build.0 = Debug|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|Win32.Build.0 = Release|Win32 + {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|x64.ActiveCfg = Release|x64 + {E679773D-DE89-AEBB-9787-59019989B825}.Release-DLL|x64.Build.0 = Release|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|Win32.ActiveCfg = Debug|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|x64.ActiveCfg = Debug|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|Win32.ActiveCfg = Release|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|x64.ActiveCfg = Release|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|Win32.Build.0 = Debug|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug|x64.Build.0 = Debug|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|Win32.Build.0 = Release|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release|x64.Build.0 = Release|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Debug-DLL|x64.Build.0 = Debug|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|Win32.Build.0 = Release|Win32 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|x64.ActiveCfg = Release|x64 + {7F2D1623-AF04-DD98-BCE6-61ADB9A52366}.Release-DLL|x64.Build.0 = Release|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|Win32.ActiveCfg = Debug|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|x64.ActiveCfg = Debug|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|Win32.ActiveCfg = Release|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|x64.ActiveCfg = Release|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|Win32.Build.0 = Debug|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug|x64.Build.0 = Debug|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|Win32.Build.0 = Release|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release|x64.Build.0 = Release|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Debug-DLL|x64.Build.0 = Debug|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|Win32.Build.0 = Release|Win32 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|x64.ActiveCfg = Release|x64 + {AD06B5CD-8D5C-A365-C46B-3CF32237A4F7}.Release-DLL|x64.Build.0 = Release|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|Win32.ActiveCfg = Debug|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|x64.ActiveCfg = Debug|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|Win32.ActiveCfg = Release|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|x64.ActiveCfg = Release|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|Win32.Build.0 = Debug|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug|x64.Build.0 = Debug|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|Win32.Build.0 = Release|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release|x64.Build.0 = Release|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Debug-DLL|x64.Build.0 = Debug|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|Win32.Build.0 = Release|Win32 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|x64.ActiveCfg = Release|x64 + {B453457D-8FBC-9C9F-A55E-C06FCE13B1F2}.Release-DLL|x64.Build.0 = Release|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|Win32.ActiveCfg = Debug|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|x64.ActiveCfg = Debug|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|Win32.ActiveCfg = Release|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|x64.ActiveCfg = Release|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|Win32.Build.0 = Debug|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug|x64.Build.0 = Debug|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|Win32.Build.0 = Release|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release|x64.Build.0 = Release|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Debug-DLL|x64.Build.0 = Debug|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|Win32.Build.0 = Release|Win32 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|x64.ActiveCfg = Release|x64 + {98B2F932-5D6D-9FF0-516F-43FD7E0E4F1A}.Release-DLL|x64.Build.0 = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|Win32.ActiveCfg = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|x64.ActiveCfg = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|Win32.ActiveCfg = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|x64.ActiveCfg = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|Win32.Build.0 = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|x64.Build.0 = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|Win32.Build.0 = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|x64.Build.0 = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|x64.Build.0 = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|Win32.Build.0 = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.ActiveCfg = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.Build.0 = Release|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|Win32.ActiveCfg = Debug|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|x64.ActiveCfg = Debug|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|Win32.ActiveCfg = Release|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|x64.ActiveCfg = Release|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|Win32.Build.0 = Debug|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug|x64.Build.0 = Debug|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|Win32.Build.0 = Release|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release|x64.Build.0 = Release|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Debug-DLL|x64.Build.0 = Debug|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|Win32.Build.0 = Release|Win32 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|x64.ActiveCfg = Release|x64 + {459B2FAC-5FC8-1F47-8053-66D46EA39A49}.Release-DLL|x64.Build.0 = Release|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Debug|Win32.ActiveCfg = Debug|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Debug|x64.ActiveCfg = Debug|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Release|Win32.ActiveCfg = Release|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Release|x64.ActiveCfg = Release|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Debug|Win32.Build.0 = Debug|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Debug|x64.Build.0 = Debug|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Release|Win32.Build.0 = Release|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Release|x64.Build.0 = Release|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Debug-DLL|x64.Build.0 = Debug|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|Win32.Build.0 = Release|Win32 + {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|x64.ActiveCfg = Release|x64 + {9779680E-3218-1528-E922-605871A20C3F}.Release-DLL|x64.Build.0 = Release|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|Win32.ActiveCfg = Debug|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|x64.ActiveCfg = Debug|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|Win32.ActiveCfg = Release|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|x64.ActiveCfg = Release|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|Win32.Build.0 = Debug|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug|x64.Build.0 = Debug|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|Win32.Build.0 = Release|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release|x64.Build.0 = Release|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Debug-DLL|x64.Build.0 = Debug|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|Win32.Build.0 = Release|Win32 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|x64.ActiveCfg = Release|x64 + {F5B6D7FF-A762-CBC3-8CDC-83890EAEB2FE}.Release-DLL|x64.Build.0 = Release|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|Win32.ActiveCfg = Debug|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|x64.ActiveCfg = Debug|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|Win32.ActiveCfg = Release|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|x64.ActiveCfg = Release|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|Win32.Build.0 = Debug|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug|x64.Build.0 = Debug|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|Win32.Build.0 = Release|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release|x64.Build.0 = Release|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Debug-DLL|x64.Build.0 = Debug|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|Win32.Build.0 = Release|Win32 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|x64.ActiveCfg = Release|x64 + {40B790A8-BB01-9F12-5309-C0BEA97C75BC}.Release-DLL|x64.Build.0 = Release|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|Win32.ActiveCfg = Debug|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|x64.ActiveCfg = Debug|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|Win32.ActiveCfg = Release|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|x64.ActiveCfg = Release|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|Win32.Build.0 = Debug|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|x64.Build.0 = Debug|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|Win32.Build.0 = Release|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|x64.Build.0 = Release|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.Build.0 = Release-DLL|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|Win32.ActiveCfg = Debug|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|x64.ActiveCfg = Debug|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|Win32.ActiveCfg = Release|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|x64.ActiveCfg = Release|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|Win32.Build.0 = Debug|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|x64.Build.0 = Debug|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|Win32.Build.0 = Release|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|x64.Build.0 = Release|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug-DLL|x64.Build.0 = Debug|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|Win32.Build.0 = Release|Win32 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|x64.ActiveCfg = Release|x64 + {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release-DLL|x64.Build.0 = Release|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|Win32.ActiveCfg = Debug|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|x64.ActiveCfg = Debug|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|Win32.ActiveCfg = Release|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|x64.ActiveCfg = Release|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|Win32.Build.0 = Debug|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug|x64.Build.0 = Debug|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|Win32.Build.0 = Release|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release|x64.Build.0 = Release|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Debug-DLL|x64.Build.0 = Debug|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|Win32.Build.0 = Release|Win32 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|x64.ActiveCfg = Release|x64 + {A19FD81D-DF19-B8A4-4A8A-6967217FEC85}.Release-DLL|x64.Build.0 = Release|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|Win32.ActiveCfg = Debug|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|x64.ActiveCfg = Debug|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release|Win32.ActiveCfg = Release|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release|x64.ActiveCfg = Release|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|Win32.Build.0 = Debug|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug|x64.Build.0 = Debug|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release|Win32.Build.0 = Release|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release|x64.Build.0 = Release|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Debug-DLL|x64.Build.0 = Debug|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|Win32.Build.0 = Release|Win32 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.ActiveCfg = Release|x64 + {82124768-C986-6C10-8BCC-B255B7C84722}.Release-DLL|x64.Build.0 = Release|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|Win32.ActiveCfg = Debug|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|x64.ActiveCfg = Debug|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|Win32.ActiveCfg = Release|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|x64.ActiveCfg = Release|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|Win32.Build.0 = Debug|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug|x64.Build.0 = Debug|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|Win32.Build.0 = Release|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release|x64.Build.0 = Release|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Debug-DLL|x64.Build.0 = Debug|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|Win32.Build.0 = Release|Win32 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|x64.ActiveCfg = Release|x64 + {58FB566F-DCD5-3ECE-233E-C1FD13CA2185}.Release-DLL|x64.Build.0 = Release|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|Win32.ActiveCfg = Debug|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|x64.ActiveCfg = Debug|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|Win32.ActiveCfg = Release|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|x64.ActiveCfg = Release|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|Win32.Build.0 = Debug|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug|x64.Build.0 = Debug|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|Win32.Build.0 = Release|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release|x64.Build.0 = Release|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Debug-DLL|x64.Build.0 = Debug|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|Win32.Build.0 = Release|Win32 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|x64.ActiveCfg = Release|x64 + {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|x64.Build.0 = Release|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|Win32.ActiveCfg = Debug|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|x64.ActiveCfg = Debug|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|Win32.ActiveCfg = Release|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|x64.ActiveCfg = Release|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|Win32.Build.0 = Debug|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|x64.Build.0 = Debug|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|Win32.Build.0 = Release|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|x64.Build.0 = Release|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug-DLL|x64.Build.0 = Debug|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|Win32.Build.0 = Release|Win32 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|x64.ActiveCfg = Release|x64 + {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release-DLL|x64.Build.0 = Release|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|Win32.ActiveCfg = Debug|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|x64.ActiveCfg = Debug|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|Win32.ActiveCfg = Release|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|x64.ActiveCfg = Release|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|Win32.Build.0 = Debug|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug|x64.Build.0 = Debug|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|Win32.Build.0 = Release|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release|x64.Build.0 = Release|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Debug-DLL|x64.Build.0 = Debug|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|Win32.Build.0 = Release|Win32 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|x64.ActiveCfg = Release|x64 + {77971F8D-F583-3E77-0E3C-6C1FB6B1749C}.Release-DLL|x64.Build.0 = Release|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|Win32.ActiveCfg = Debug|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|x64.ActiveCfg = Debug|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|Win32.ActiveCfg = Release|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|x64.ActiveCfg = Release|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|Win32.Build.0 = Debug|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug|x64.Build.0 = Debug|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|Win32.Build.0 = Release|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release|x64.Build.0 = Release|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Debug-DLL|x64.Build.0 = Debug|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|Win32.Build.0 = Release|Win32 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|x64.ActiveCfg = Release|x64 + {8305CC95-25CD-E15F-EA1A-11626FCF5AF9}.Release-DLL|x64.Build.0 = Release|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug|Win32.ActiveCfg = Debug|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug|x64.ActiveCfg = Debug|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Release|Win32.ActiveCfg = Release|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Release|x64.ActiveCfg = Release|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug|Win32.Build.0 = Debug|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug|x64.Build.0 = Debug|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Release|Win32.Build.0 = Release|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Release|x64.Build.0 = Release|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Debug-DLL|x64.Build.0 = Debug|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|Win32.Build.0 = Release|Win32 + {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|x64.ActiveCfg = Release|x64 + {43722E98-54EC-5058-3DAC-327F45964971}.Release-DLL|x64.Build.0 = Release|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|Win32.ActiveCfg = Debug|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|x64.ActiveCfg = Debug|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|Win32.ActiveCfg = Release|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|x64.ActiveCfg = Release|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|Win32.Build.0 = Debug|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug|x64.Build.0 = Debug|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|Win32.Build.0 = Release|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release|x64.Build.0 = Release|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Debug-DLL|x64.Build.0 = Debug|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|Win32.Build.0 = Release|Win32 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|x64.ActiveCfg = Release|x64 + {B50FD4F7-5628-9BEC-81B9-EB79A0A45577}.Release-DLL|x64.Build.0 = Release|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|Win32.ActiveCfg = Debug|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|x64.ActiveCfg = Debug|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|Win32.ActiveCfg = Release|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|x64.ActiveCfg = Release|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|Win32.Build.0 = Debug|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug|x64.Build.0 = Debug|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|Win32.Build.0 = Release|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release|x64.Build.0 = Release|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Debug-DLL|x64.Build.0 = Debug|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|Win32.Build.0 = Release|Win32 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|x64.ActiveCfg = Release|x64 + {60B5E7EE-7D9E-1F27-BD9F-2F5D44BC6751}.Release-DLL|x64.Build.0 = Release|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|Win32.ActiveCfg = Debug|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|x64.ActiveCfg = Debug|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|Win32.ActiveCfg = Release|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|x64.ActiveCfg = Release|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|Win32.Build.0 = Debug|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug|x64.Build.0 = Debug|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|Win32.Build.0 = Release|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release|x64.Build.0 = Release|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Debug-DLL|x64.Build.0 = Debug|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|Win32.Build.0 = Release|Win32 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|x64.ActiveCfg = Release|x64 + {C002965C-8457-CCE5-B1BA-E748FF9A11B6}.Release-DLL|x64.Build.0 = Release|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|Win32.ActiveCfg = Debug|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|x64.ActiveCfg = Debug|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|Win32.ActiveCfg = Release|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|x64.ActiveCfg = Release|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|Win32.Build.0 = Debug|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug|x64.Build.0 = Debug|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|Win32.Build.0 = Release|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release|x64.Build.0 = Release|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Debug-DLL|x64.Build.0 = Debug|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|Win32.Build.0 = Release|Win32 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|x64.ActiveCfg = Release|x64 + {74DCFC52-3C79-66BC-3DB0-B6A90D81BB68}.Release-DLL|x64.Build.0 = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|Win32.ActiveCfg = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|x64.ActiveCfg = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|Win32.ActiveCfg = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|x64.ActiveCfg = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|Win32.Build.0 = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|x64.Build.0 = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|Win32.Build.0 = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|x64.Build.0 = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|x64.Build.0 = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|Win32.Build.0 = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.ActiveCfg = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.Build.0 = Release|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|Win32.ActiveCfg = Debug|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|x64.ActiveCfg = Debug|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|Win32.ActiveCfg = Release|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|x64.ActiveCfg = Release|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|Win32.Build.0 = Debug|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|x64.Build.0 = Debug|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|Win32.Build.0 = Release|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|x64.Build.0 = Release|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug-DLL|x64.Build.0 = Debug|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|Win32.Build.0 = Release|Win32 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|x64.ActiveCfg = Release|x64 + {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|x64.Build.0 = Release|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|Win32.ActiveCfg = Debug|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|x64.ActiveCfg = Debug|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|Win32.ActiveCfg = Release|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|x64.ActiveCfg = Release|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|Win32.Build.0 = Debug|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|x64.Build.0 = Debug|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|Win32.Build.0 = Release|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|x64.Build.0 = Release|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug-DLL|x64.Build.0 = Debug|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|Win32.Build.0 = Release|Win32 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|x64.ActiveCfg = Release|x64 + {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release-DLL|x64.Build.0 = Release|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|Win32.ActiveCfg = Debug|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|x64.ActiveCfg = Debug|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|Win32.ActiveCfg = Release|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|x64.ActiveCfg = Release|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|Win32.Build.0 = Debug|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug|x64.Build.0 = Debug|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|Win32.Build.0 = Release|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release|x64.Build.0 = Release|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Debug-DLL|x64.Build.0 = Debug|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|Win32.Build.0 = Release|Win32 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|x64.ActiveCfg = Release|x64 + {FF2CEE6D-850F-E22C-53A0-8C5912B14B20}.Release-DLL|x64.Build.0 = Release|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|Win32.ActiveCfg = Debug|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|x64.ActiveCfg = Debug|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|Win32.ActiveCfg = Release|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|x64.ActiveCfg = Release|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|Win32.Build.0 = Debug|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug|x64.Build.0 = Debug|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|Win32.Build.0 = Release|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release|x64.Build.0 = Release|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Debug-DLL|x64.Build.0 = Debug|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|Win32.Build.0 = Release|Win32 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|x64.ActiveCfg = Release|x64 + {49D7E690-BDA1-5236-1ABF-3D81C1559DF7}.Release-DLL|x64.Build.0 = Release|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|Win32.ActiveCfg = Debug|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|x64.ActiveCfg = Debug|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|Win32.ActiveCfg = Release|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|x64.ActiveCfg = Release|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|Win32.Build.0 = Debug|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug|x64.Build.0 = Debug|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|Win32.Build.0 = Release|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release|x64.Build.0 = Release|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Debug-DLL|x64.Build.0 = Debug|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|Win32.Build.0 = Release|Win32 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|x64.ActiveCfg = Release|x64 + {A43C3292-CAE7-1B8C-A5FD-52D9E3DCFD82}.Release-DLL|x64.Build.0 = Release|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|Win32.ActiveCfg = Debug|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|x64.ActiveCfg = Debug|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|Win32.ActiveCfg = Release|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|x64.ActiveCfg = Release|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|Win32.Build.0 = Debug|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug|x64.Build.0 = Debug|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|Win32.Build.0 = Release|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release|x64.Build.0 = Release|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Debug-DLL|x64.Build.0 = Debug|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.Build.0 = Release|Win32 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.ActiveCfg = Release|x64 + {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.Build.0 = Release|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.ActiveCfg = Debug|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.ActiveCfg = Release|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.ActiveCfg = Release|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.Build.0 = Debug|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.Build.0 = Debug|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.Build.0 = Release|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.Build.0 = Release|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.Build.0 = Debug|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.Build.0 = Release|Win32 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.ActiveCfg = Release|x64 + {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.Build.0 = Release|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.ActiveCfg = Debug|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.ActiveCfg = Debug|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.ActiveCfg = Release|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.ActiveCfg = Release|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.Build.0 = Debug|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.Build.0 = Debug|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.Build.0 = Release|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.Build.0 = Release|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.Build.0 = Debug|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.Build.0 = Release|Win32 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.ActiveCfg = Release|x64 + {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.Build.0 = Release|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.ActiveCfg = Debug|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.ActiveCfg = Debug|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.ActiveCfg = Release|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.ActiveCfg = Release|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.Build.0 = Debug|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.Build.0 = Debug|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.Build.0 = Release|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.Build.0 = Release|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.Build.0 = Debug|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.Build.0 = Release|Win32 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.ActiveCfg = Release|x64 + {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.Build.0 = Release|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|Win32.ActiveCfg = Debug|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|x64.ActiveCfg = Debug|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|Win32.ActiveCfg = Release|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|x64.ActiveCfg = Release|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|Win32.Build.0 = Debug|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|x64.Build.0 = Debug|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|Win32.Build.0 = Release|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|x64.Build.0 = Release|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug-DLL|x64.Build.0 = Debug|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|Win32.Build.0 = Release|Win32 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|x64.ActiveCfg = Release|x64 + {C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release-DLL|x64.Build.0 = Release|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|Win32.ActiveCfg = Debug|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|x64.ActiveCfg = Debug|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|Win32.ActiveCfg = Release|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|x64.ActiveCfg = Release|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|Win32.Build.0 = Debug|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug|x64.Build.0 = Debug|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|Win32.Build.0 = Release|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release|x64.Build.0 = Release|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Debug-DLL|x64.Build.0 = Debug|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|Win32.Build.0 = Release|Win32 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|x64.ActiveCfg = Release|x64 + {57B36FF6-25B1-2475-D07A-2E9097E2C792}.Release-DLL|x64.Build.0 = Release|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|x64.ActiveCfg = Debug|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|Win32.ActiveCfg = Release|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|x64.ActiveCfg = Release|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|Win32.Build.0 = Debug|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug|x64.Build.0 = Debug|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|Win32.Build.0 = Release|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release|x64.Build.0 = Release|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Debug-DLL|x64.Build.0 = Debug|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|Win32.Build.0 = Release|Win32 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|x64.ActiveCfg = Release|x64 + {DD4C2B4E-9C47-6AA4-8E16-7B69AF8FA1D2}.Release-DLL|x64.Build.0 = Release|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|x64.ActiveCfg = Debug|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|Win32.ActiveCfg = Release|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|x64.ActiveCfg = Release|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|Win32.Build.0 = Debug|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug|x64.Build.0 = Debug|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|Win32.Build.0 = Release|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release|x64.Build.0 = Release|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Debug-DLL|x64.Build.0 = Debug|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|Win32.Build.0 = Release|Win32 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|x64.ActiveCfg = Release|x64 + {8EABFC7E-4CE6-CDE1-CE31-298D809B8A9B}.Release-DLL|x64.Build.0 = Release|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|Win32.ActiveCfg = Debug|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|x64.ActiveCfg = Debug|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|Win32.ActiveCfg = Release|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|x64.ActiveCfg = Release|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|Win32.Build.0 = Debug|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug|x64.Build.0 = Debug|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|Win32.Build.0 = Release|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release|x64.Build.0 = Release|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Debug-DLL|x64.Build.0 = Debug|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|Win32.Build.0 = Release|Win32 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|x64.ActiveCfg = Release|x64 + {05230AC7-4529-E6CF-0506-A063B5FF6642}.Release-DLL|x64.Build.0 = Release|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|Win32.ActiveCfg = Debug|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|x64.ActiveCfg = Debug|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|Win32.ActiveCfg = Release|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|x64.ActiveCfg = Release|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|Win32.Build.0 = Debug|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug|x64.Build.0 = Debug|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|Win32.Build.0 = Release|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release|x64.Build.0 = Release|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Debug-DLL|x64.Build.0 = Debug|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|Win32.Build.0 = Release|Win32 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|x64.ActiveCfg = Release|x64 + {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|x64.Build.0 = Release|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|x64.ActiveCfg = Debug|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|Win32.ActiveCfg = Release|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|x64.ActiveCfg = Release|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|Win32.Build.0 = Debug|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|x64.Build.0 = Debug|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|Win32.Build.0 = Release|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|x64.Build.0 = Release|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug-DLL|x64.Build.0 = Debug|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|Win32.Build.0 = Release|Win32 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|x64.ActiveCfg = Release|x64 + {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release-DLL|x64.Build.0 = Release|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|Win32.ActiveCfg = Debug|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|x64.ActiveCfg = Debug|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|Win32.ActiveCfg = Release|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|x64.ActiveCfg = Release|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|Win32.Build.0 = Debug|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug|x64.Build.0 = Debug|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|Win32.Build.0 = Release|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release|x64.Build.0 = Release|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Debug-DLL|x64.Build.0 = Debug|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|Win32.Build.0 = Release|Win32 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|x64.ActiveCfg = Release|x64 + {DC76C089-0D55-DF19-7CCA-49DAE5D29E49}.Release-DLL|x64.Build.0 = Release|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|Win32.ActiveCfg = Debug|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|x64.ActiveCfg = Debug|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|Win32.ActiveCfg = Release|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|x64.ActiveCfg = Release|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|Win32.Build.0 = Debug|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug|x64.Build.0 = Debug|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|Win32.Build.0 = Release|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release|x64.Build.0 = Release|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Debug-DLL|x64.Build.0 = Debug|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|Win32.Build.0 = Release|Win32 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|x64.ActiveCfg = Release|x64 + {07170557-CCB0-D23C-8018-C2909D115DF9}.Release-DLL|x64.Build.0 = Release|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|Win32.ActiveCfg = Debug|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|x64.ActiveCfg = Debug|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|Win32.ActiveCfg = Release|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|x64.ActiveCfg = Release|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|Win32.Build.0 = Debug|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug|x64.Build.0 = Debug|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|Win32.Build.0 = Release|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release|x64.Build.0 = Release|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Debug-DLL|x64.Build.0 = Debug|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|Win32.Build.0 = Release|Win32 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|x64.ActiveCfg = Release|x64 + {9345E329-80F3-DED4-FDC3-BF63FCEA2C03}.Release-DLL|x64.Build.0 = Release|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|Win32.ActiveCfg = Debug|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|x64.ActiveCfg = Debug|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|Win32.ActiveCfg = Release|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|x64.ActiveCfg = Release|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|Win32.Build.0 = Debug|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug|x64.Build.0 = Debug|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|Win32.Build.0 = Release|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release|x64.Build.0 = Release|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Debug-DLL|x64.Build.0 = Debug|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|Win32.Build.0 = Release|Win32 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|x64.ActiveCfg = Release|x64 + {88AF688E-E43C-5E20-6966-CF559F597D82}.Release-DLL|x64.Build.0 = Release|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|Win32.ActiveCfg = Debug|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|x64.ActiveCfg = Debug|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|Win32.ActiveCfg = Release|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|x64.ActiveCfg = Release|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|Win32.Build.0 = Debug|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug|x64.Build.0 = Debug|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|Win32.Build.0 = Release|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release|x64.Build.0 = Release|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Debug-DLL|x64.Build.0 = Debug|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|Win32.Build.0 = Release|Win32 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|x64.ActiveCfg = Release|x64 + {0B136077-8522-3C25-7704-1C386C9FDCD5}.Release-DLL|x64.Build.0 = Release|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|Win32.ActiveCfg = Debug|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|x64.ActiveCfg = Debug|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|Win32.ActiveCfg = Release|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|x64.ActiveCfg = Release|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|Win32.Build.0 = Debug|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug|x64.Build.0 = Debug|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|Win32.Build.0 = Release|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release|x64.Build.0 = Release|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Debug-DLL|x64.Build.0 = Debug|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|Win32.Build.0 = Release|Win32 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|x64.ActiveCfg = Release|x64 + {A66AC548-E2B9-74CD-293C-43526EE51DCE}.Release-DLL|x64.Build.0 = Release|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|Win32.ActiveCfg = Debug|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|x64.ActiveCfg = Debug|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|Win32.ActiveCfg = Release|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|x64.ActiveCfg = Release|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|Win32.Build.0 = Debug|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug|x64.Build.0 = Debug|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|Win32.Build.0 = Release|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release|x64.Build.0 = Release|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Debug-DLL|x64.Build.0 = Debug|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|Win32.Build.0 = Release|Win32 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|x64.ActiveCfg = Release|x64 + {8279AF6C-9584-67F3-1547-B204864FCCA7}.Release-DLL|x64.Build.0 = Release|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|Win32.ActiveCfg = Debug|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|x64.ActiveCfg = Debug|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release|Win32.ActiveCfg = Release|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release|x64.ActiveCfg = Release|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|Win32.Build.0 = Debug|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug|x64.Build.0 = Debug|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release|Win32.Build.0 = Release|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release|x64.Build.0 = Release|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Debug-DLL|x64.Build.0 = Debug|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|Win32.Build.0 = Release|Win32 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|x64.ActiveCfg = Release|x64 + {62B25398-7173-928E-689E-53860B0ACFC4}.Release-DLL|x64.Build.0 = Release|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|x64.ActiveCfg = Debug|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|Win32.ActiveCfg = Release|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|x64.ActiveCfg = Release|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|Win32.Build.0 = Debug|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug|x64.Build.0 = Debug|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|Win32.Build.0 = Release|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release|x64.Build.0 = Release|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Debug-DLL|x64.Build.0 = Debug|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|Win32.Build.0 = Release|Win32 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|x64.ActiveCfg = Release|x64 + {A7747106-A6BC-62D4-2A21-04A4F0CC2683}.Release-DLL|x64.Build.0 = Release|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|Win32.ActiveCfg = Debug|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|x64.ActiveCfg = Debug|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|Win32.ActiveCfg = Release|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|x64.ActiveCfg = Release|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|Win32.Build.0 = Debug|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug|x64.Build.0 = Debug|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|Win32.Build.0 = Release|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release|x64.Build.0 = Release|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Debug-DLL|x64.Build.0 = Debug|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|Win32.Build.0 = Release|Win32 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|x64.ActiveCfg = Release|x64 + {F164F666-C866-D607-E1DF-E7BF3CF98255}.Release-DLL|x64.Build.0 = Release|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|Win32.ActiveCfg = Debug|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|x64.ActiveCfg = Debug|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|Win32.ActiveCfg = Release|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|x64.ActiveCfg = Release|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|Win32.Build.0 = Debug|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug|x64.Build.0 = Debug|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|Win32.Build.0 = Release|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release|x64.Build.0 = Release|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Debug-DLL|x64.Build.0 = Debug|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|Win32.Build.0 = Release|Win32 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|x64.ActiveCfg = Release|x64 + {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|x64.Build.0 = Release|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|Win32.ActiveCfg = Debug|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|x64.ActiveCfg = Debug|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|Win32.ActiveCfg = Release|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|x64.ActiveCfg = Release|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|Win32.Build.0 = Debug|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|x64.Build.0 = Debug|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|Win32.Build.0 = Release|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|x64.Build.0 = Release|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug-DLL|x64.Build.0 = Debug|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|Win32.Build.0 = Release|Win32 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|x64.ActiveCfg = Release|x64 + {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release-DLL|x64.Build.0 = Release|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|Win32.ActiveCfg = Debug|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|x64.ActiveCfg = Debug|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|Win32.ActiveCfg = Release|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|x64.ActiveCfg = Release|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|Win32.Build.0 = Debug|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug|x64.Build.0 = Debug|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|Win32.Build.0 = Release|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release|x64.Build.0 = Release|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Debug-DLL|x64.Build.0 = Debug|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|Win32.Build.0 = Release|Win32 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|x64.ActiveCfg = Release|x64 + {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|x64.Build.0 = Release|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|Win32.ActiveCfg = Debug|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|x64.ActiveCfg = Debug|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|Win32.ActiveCfg = Release|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|x64.ActiveCfg = Release|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|Win32.Build.0 = Debug|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|x64.Build.0 = Debug|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|Win32.Build.0 = Release|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|x64.Build.0 = Release|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug-DLL|x64.Build.0 = Debug|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|Win32.Build.0 = Release|Win32 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|x64.ActiveCfg = Release|x64 + {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release-DLL|x64.Build.0 = Release|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|Win32.ActiveCfg = Debug|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|x64.ActiveCfg = Debug|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|Win32.ActiveCfg = Release|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|x64.ActiveCfg = Release|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|Win32.Build.0 = Debug|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug|x64.Build.0 = Debug|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|Win32.Build.0 = Release|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release|x64.Build.0 = Release|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Debug-DLL|x64.Build.0 = Debug|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|Win32.Build.0 = Release|Win32 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|x64.ActiveCfg = Release|x64 + {529771F0-10B0-9B1A-1E7E-8A8E01870348}.Release-DLL|x64.Build.0 = Release|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|Win32.ActiveCfg = Debug|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|x64.ActiveCfg = Debug|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|Win32.ActiveCfg = Release|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|x64.ActiveCfg = Release|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|Win32.Build.0 = Debug|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug|x64.Build.0 = Debug|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|Win32.Build.0 = Release|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release|x64.Build.0 = Release|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Debug-DLL|x64.Build.0 = Debug|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|Win32.Build.0 = Release|Win32 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|x64.ActiveCfg = Release|x64 + {E3110C46-A148-FF65-08FD-3324829BE7FE}.Release-DLL|x64.Build.0 = Release|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|Win32.ActiveCfg = Debug|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|x64.ActiveCfg = Debug|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|Win32.ActiveCfg = Release|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|x64.ActiveCfg = Release|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|Win32.Build.0 = Debug|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug|x64.Build.0 = Debug|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|Win32.Build.0 = Release|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release|x64.Build.0 = Release|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Debug-DLL|x64.Build.0 = Debug|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|Win32.Build.0 = Release|Win32 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|x64.ActiveCfg = Release|x64 + {D1EB2A9B-8508-62D7-8FC4-11A11B1CBFD3}.Release-DLL|x64.Build.0 = Release|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|Win32.ActiveCfg = Debug|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|x64.ActiveCfg = Debug|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|Win32.ActiveCfg = Release|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|x64.ActiveCfg = Release|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|Win32.Build.0 = Debug|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug|x64.Build.0 = Debug|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|Win32.Build.0 = Release|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release|x64.Build.0 = Release|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Debug-DLL|x64.Build.0 = Debug|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|Win32.Build.0 = Release|Win32 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|x64.ActiveCfg = Release|x64 + {EA073C36-A527-F749-AD4A-243A38B9BFF5}.Release-DLL|x64.Build.0 = Release|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|Win32.ActiveCfg = Debug|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|x64.ActiveCfg = Debug|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|Win32.ActiveCfg = Release|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|x64.ActiveCfg = Release|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|Win32.Build.0 = Debug|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug|x64.Build.0 = Debug|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|Win32.Build.0 = Release|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release|x64.Build.0 = Release|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Debug-DLL|x64.Build.0 = Debug|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|Win32.Build.0 = Release|Win32 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|x64.ActiveCfg = Release|x64 + {A2110C60-E75A-F76E-205E-1836F86C4D53}.Release-DLL|x64.Build.0 = Release|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|Win32.ActiveCfg = Debug|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|x64.ActiveCfg = Debug|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|Win32.ActiveCfg = Release|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|x64.ActiveCfg = Release|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|Win32.Build.0 = Debug|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug|x64.Build.0 = Debug|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|Win32.Build.0 = Release|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release|x64.Build.0 = Release|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Debug-DLL|x64.Build.0 = Debug|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|Win32.Build.0 = Release|Win32 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|x64.ActiveCfg = Release|x64 + {C43EA45B-1E72-C58D-8CE3-A879D1B1E2DB}.Release-DLL|x64.Build.0 = Release|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|Win32.ActiveCfg = Debug|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|x64.ActiveCfg = Debug|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|Win32.ActiveCfg = Release|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|x64.ActiveCfg = Release|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|Win32.Build.0 = Debug|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug|x64.Build.0 = Debug|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|Win32.Build.0 = Release|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release|x64.Build.0 = Release|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Debug-DLL|x64.Build.0 = Debug|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|Win32.Build.0 = Release|Win32 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|x64.ActiveCfg = Release|x64 + {659121F6-1639-AC6B-053E-9D17A8B94D56}.Release-DLL|x64.Build.0 = Release|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|Win32.ActiveCfg = Debug|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|x64.ActiveCfg = Debug|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|Win32.ActiveCfg = Release|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|x64.ActiveCfg = Release|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|Win32.Build.0 = Debug|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug|x64.Build.0 = Debug|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|Win32.Build.0 = Release|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release|x64.Build.0 = Release|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Debug-DLL|x64.Build.0 = Debug|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|Win32.Build.0 = Release|Win32 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|x64.ActiveCfg = Release|x64 + {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|x64.Build.0 = Release|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|Win32.ActiveCfg = Debug|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|x64.ActiveCfg = Debug|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|Win32.ActiveCfg = Release|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|x64.ActiveCfg = Release|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|Win32.Build.0 = Debug|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|x64.Build.0 = Debug|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|Win32.Build.0 = Release|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|x64.Build.0 = Release|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug-DLL|x64.Build.0 = Debug|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|Win32.Build.0 = Release|Win32 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|x64.ActiveCfg = Release|x64 + {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal + From f0c14980944c587c547597c743dc5e824ab085bd Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 16:06:30 -0700 Subject: [PATCH 188/202] [wip] run_tests script aware of core --- tools/run_tests/run_tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index b042e8e9e7c00..e9f11ee3088fa 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -360,7 +360,7 @@ def pre_build_steps(self): return [] def make_targets(self): - return ['static_c', 'shared_c'] + return ['static_core', 'shared_core'] def make_options(self): return [] @@ -396,7 +396,7 @@ def pre_build_steps(self): return [] def make_targets(self): - return ['static_c', 'shared_c'] + return ['static_core', 'shared_core'] def make_options(self): return [] @@ -783,7 +783,7 @@ def __str__(self): _LANGUAGES = { 'c++': CLanguage('cxx', 'c++'), 'c': CLanguage('c', 'c'), - 'core': CLanguage('core', 'c'), + 'core': CLanguage('core', 'core'), 'node': NodeLanguage(), 'php': PhpLanguage(), 'php7': Php7Language(), From edfe6b7d6c3780cbc6664838d14d5d2bfe19331c Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 16:39:24 -0700 Subject: [PATCH 189/202] migrated all tests from c to core --- Makefile | 174 +- src/boringssl/gen_build_yaml.py | 4 +- src/zlib/gen_build_yaml.py | 2 +- test/core/bad_client/gen_build_yaml.py | 4 +- test/core/bad_ssl/gen_build_yaml.py | 6 +- test/core/end2end/gen_build_yaml.py | 12 +- tools/buildgen/plugins/expand_filegroups.py | 2 +- tools/buildgen/plugins/make_fuzzer_tests.py | 2 +- tools/run_tests/sources_and_headers.json | 168 +- tools/run_tests/tests.json | 9022 +++++++++---------- vsprojects/buildtests_c.sln | 1151 --- vsprojects/buildtests_core.sln | 1056 +++ 12 files changed, 5754 insertions(+), 5849 deletions(-) diff --git a/Makefile b/Makefile index 46e38df6dab79..d8ac64cfd0af5 100644 --- a/Makefile +++ b/Makefile @@ -1273,8 +1273,8 @@ plugins: $(PROTOC_PLUGINS) privatelibs: privatelibs_c privatelibs_core privatelibs_cxx -privatelibs_c: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a -privatelibs_core: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a +privatelibs_c: $(LIBDIR)/$(CONFIG)/libgrpc_c_end2end_client_lib.a +privatelibs_core: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c.pc pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_c_unsecure.pc @@ -1297,49 +1297,6 @@ endif buildtests: buildtests_c buildtests_core buildtests_cxx buildtests_c: privatelibs_c \ - $(BINDIR)/$(CONFIG)/badreq_bad_client_test \ - $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test \ - $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test \ - $(BINDIR)/$(CONFIG)/headers_bad_client_test \ - $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test \ - $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test \ - $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test \ - $(BINDIR)/$(CONFIG)/simple_request_bad_client_test \ - $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test \ - $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test \ - $(BINDIR)/$(CONFIG)/bad_ssl_alpn_server \ - $(BINDIR)/$(CONFIG)/bad_ssl_cert_server \ - $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test \ - $(BINDIR)/$(CONFIG)/bad_ssl_cert_test \ - $(BINDIR)/$(CONFIG)/h2_census_test \ - $(BINDIR)/$(CONFIG)/h2_compress_test \ - $(BINDIR)/$(CONFIG)/h2_fakesec_test \ - $(BINDIR)/$(CONFIG)/h2_fd_test \ - $(BINDIR)/$(CONFIG)/h2_full_test \ - $(BINDIR)/$(CONFIG)/h2_full+pipe_test \ - $(BINDIR)/$(CONFIG)/h2_full+trace_test \ - $(BINDIR)/$(CONFIG)/h2_load_reporting_test \ - $(BINDIR)/$(CONFIG)/h2_oauth2_test \ - $(BINDIR)/$(CONFIG)/h2_proxy_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair+trace_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test \ - $(BINDIR)/$(CONFIG)/h2_ssl_test \ - $(BINDIR)/$(CONFIG)/h2_ssl_cert_test \ - $(BINDIR)/$(CONFIG)/h2_ssl_proxy_test \ - $(BINDIR)/$(CONFIG)/h2_uds_test \ - $(BINDIR)/$(CONFIG)/h2_census_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_compress_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_fd_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_full_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_load_reporting_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_proxy_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test \ - $(BINDIR)/$(CONFIG)/h2_uds_nosec_test \ buildtests_core: privatelibs_core \ $(BINDIR)/$(CONFIG)/alarm_test \ @@ -1444,6 +1401,49 @@ buildtests_core: privatelibs_core \ $(BINDIR)/$(CONFIG)/transport_security_test \ $(BINDIR)/$(CONFIG)/udp_server_test \ $(BINDIR)/$(CONFIG)/uri_parser_test \ + $(BINDIR)/$(CONFIG)/badreq_bad_client_test \ + $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test \ + $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test \ + $(BINDIR)/$(CONFIG)/headers_bad_client_test \ + $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test \ + $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test \ + $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test \ + $(BINDIR)/$(CONFIG)/simple_request_bad_client_test \ + $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test \ + $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test \ + $(BINDIR)/$(CONFIG)/bad_ssl_alpn_server \ + $(BINDIR)/$(CONFIG)/bad_ssl_cert_server \ + $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test \ + $(BINDIR)/$(CONFIG)/bad_ssl_cert_test \ + $(BINDIR)/$(CONFIG)/h2_census_test \ + $(BINDIR)/$(CONFIG)/h2_compress_test \ + $(BINDIR)/$(CONFIG)/h2_fakesec_test \ + $(BINDIR)/$(CONFIG)/h2_fd_test \ + $(BINDIR)/$(CONFIG)/h2_full_test \ + $(BINDIR)/$(CONFIG)/h2_full+pipe_test \ + $(BINDIR)/$(CONFIG)/h2_full+trace_test \ + $(BINDIR)/$(CONFIG)/h2_load_reporting_test \ + $(BINDIR)/$(CONFIG)/h2_oauth2_test \ + $(BINDIR)/$(CONFIG)/h2_proxy_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair+trace_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test \ + $(BINDIR)/$(CONFIG)/h2_ssl_test \ + $(BINDIR)/$(CONFIG)/h2_ssl_cert_test \ + $(BINDIR)/$(CONFIG)/h2_ssl_proxy_test \ + $(BINDIR)/$(CONFIG)/h2_uds_test \ + $(BINDIR)/$(CONFIG)/h2_census_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_compress_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_fd_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_full_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_load_reporting_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_proxy_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test \ + $(BINDIR)/$(CONFIG)/h2_uds_nosec_test \ $(BINDIR)/$(CONFIG)/api_fuzzer_one_entry \ $(BINDIR)/$(CONFIG)/client_fuzzer_one_entry \ $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry \ @@ -1598,30 +1598,6 @@ test: test_c test_core test_cxx flaky_test: flaky_test_c flaky_test_core flaky_test_cxx test_c: buildtests_c - $(E) "[RUN] Testing badreq_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/badreq_bad_client_test || ( echo test badreq_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing connection_prefix_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test || ( echo test connection_prefix_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing head_of_line_blocking_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test || ( echo test head_of_line_blocking_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing headers_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/headers_bad_client_test || ( echo test headers_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing initial_settings_frame_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test || ( echo test initial_settings_frame_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing large_metadata_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test || ( echo test large_metadata_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing server_registered_method_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test || ( echo test server_registered_method_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing simple_request_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/simple_request_bad_client_test || ( echo test simple_request_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing unknown_frame_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test || ( echo test unknown_frame_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing window_overflow_bad_client_test" - $(Q) $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test || ( echo test window_overflow_bad_client_test failed ; exit 1 ) - $(E) "[RUN] Testing bad_ssl_alpn_test" - $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test || ( echo test bad_ssl_alpn_test failed ; exit 1 ) - $(E) "[RUN] Testing bad_ssl_cert_test" - $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_cert_test || ( echo test bad_ssl_cert_test failed ; exit 1 ) flaky_test_c: buildtests_c @@ -1882,6 +1858,30 @@ test_core: buildtests_core $(Q) $(BINDIR)/$(CONFIG)/udp_server_test || ( echo test udp_server_test failed ; exit 1 ) $(E) "[RUN] Testing uri_parser_test" $(Q) $(BINDIR)/$(CONFIG)/uri_parser_test || ( echo test uri_parser_test failed ; exit 1 ) + $(E) "[RUN] Testing badreq_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/badreq_bad_client_test || ( echo test badreq_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing connection_prefix_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test || ( echo test connection_prefix_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing head_of_line_blocking_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test || ( echo test head_of_line_blocking_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing headers_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/headers_bad_client_test || ( echo test headers_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing initial_settings_frame_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test || ( echo test initial_settings_frame_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing large_metadata_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test || ( echo test large_metadata_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing server_registered_method_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test || ( echo test server_registered_method_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing simple_request_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/simple_request_bad_client_test || ( echo test simple_request_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing unknown_frame_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test || ( echo test unknown_frame_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing window_overflow_bad_client_test" + $(Q) $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test || ( echo test window_overflow_bad_client_test failed ; exit 1 ) + $(E) "[RUN] Testing bad_ssl_alpn_test" + $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_alpn_test || ( echo test bad_ssl_alpn_test failed ; exit 1 ) + $(E) "[RUN] Testing bad_ssl_cert_test" + $(Q) $(BINDIR)/$(CONFIG)/bad_ssl_cert_test || ( echo test bad_ssl_cert_test failed ; exit 1 ) flaky_test_core: buildtests_core $(E) "[RUN] Testing lb_policies_test" @@ -5503,7 +5503,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl/ssl/t1_lib.c \ third_party/boringssl/ssl/tls_record.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC)))) @@ -5945,7 +5945,7 @@ endif LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC = \ third_party/boringssl/crypto/constant_time_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC)))) @@ -6139,7 +6139,7 @@ endif LIBBORINGSSL_DSA_TEST_LIB_SRC = \ third_party/boringssl/crypto/dsa/dsa_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_DSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DSA_TEST_LIB_SRC)))) @@ -6210,7 +6210,7 @@ endif LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC = \ third_party/boringssl/crypto/ec/example_mul.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC)))) @@ -6445,7 +6445,7 @@ endif LIBBORINGSSL_HKDF_TEST_LIB_SRC = \ third_party/boringssl/crypto/hkdf/hkdf_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_HKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HKDF_TEST_LIB_SRC)))) @@ -6516,7 +6516,7 @@ endif LIBBORINGSSL_LHASH_TEST_LIB_SRC = \ third_party/boringssl/crypto/lhash/lhash_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_LHASH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_LHASH_TEST_LIB_SRC)))) @@ -6546,7 +6546,7 @@ endif LIBBORINGSSL_GCM_TEST_LIB_SRC = \ third_party/boringssl/crypto/modes/gcm_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC)))) @@ -6699,7 +6699,7 @@ endif LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC = \ third_party/boringssl/crypto/refcount_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC)))) @@ -6770,7 +6770,7 @@ endif LIBBORINGSSL_THREAD_TEST_LIB_SRC = \ third_party/boringssl/crypto/thread_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_THREAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_THREAD_TEST_LIB_SRC)))) @@ -6800,7 +6800,7 @@ endif LIBBORINGSSL_PKCS7_TEST_LIB_SRC = \ third_party/boringssl/crypto/x509/pkcs7_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_PKCS7_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS7_TEST_LIB_SRC)))) @@ -6871,7 +6871,7 @@ endif LIBBORINGSSL_TAB_TEST_LIB_SRC = \ third_party/boringssl/crypto/x509v3/tab_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_TAB_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TAB_TEST_LIB_SRC)))) @@ -6901,7 +6901,7 @@ endif LIBBORINGSSL_V3NAME_TEST_LIB_SRC = \ third_party/boringssl/crypto/x509v3/v3name_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_V3NAME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_V3NAME_TEST_LIB_SRC)))) @@ -6931,7 +6931,7 @@ endif LIBBORINGSSL_PQUEUE_TEST_LIB_SRC = \ third_party/boringssl/ssl/pqueue/pqueue_test.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PQUEUE_TEST_LIB_SRC)))) @@ -7016,7 +7016,7 @@ LIBZ_SRC = \ third_party/zlib/uncompr.c \ third_party/zlib/zutil.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBZ_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBZ_SRC)))) @@ -7045,7 +7045,7 @@ endif LIBBAD_CLIENT_TEST_SRC = \ test/core/bad_client/bad_client.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_CLIENT_TEST_SRC)))) @@ -7087,7 +7087,7 @@ endif LIBBAD_SSL_TEST_SERVER_SRC = \ test/core/bad_ssl/server_common.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBBAD_SSL_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_SSL_TEST_SERVER_SRC)))) @@ -7171,7 +7171,7 @@ LIBEND2END_TESTS_SRC = \ test/core/end2end/tests/streaming_error_response.c \ test/core/end2end/tests/trailing_metadata.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBEND2END_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_TESTS_SRC)))) @@ -7254,7 +7254,7 @@ LIBEND2END_NOSEC_TESTS_SRC = \ test/core/end2end/tests/streaming_error_response.c \ test/core/end2end/tests/trailing_metadata.c \ -PUBLIC_HEADERS_C += \ +PUBLIC_HEADERS_CORE += \ LIBEND2END_NOSEC_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_NOSEC_TESTS_SRC)))) diff --git a/src/boringssl/gen_build_yaml.py b/src/boringssl/gen_build_yaml.py index 20f6413adfc91..7992448605e34 100755 --- a/src/boringssl/gen_build_yaml.py +++ b/src/boringssl/gen_build_yaml.py @@ -73,7 +73,7 @@ def WriteFiles(self, files, asm_outputs): { 'name': 'boringssl', 'build': 'private', - 'language': 'c', + 'language': 'core', 'secure': 'no', 'src': sorted( map_dir(f) @@ -103,7 +103,7 @@ def WriteFiles(self, files, asm_outputs): 'name': 'boringssl_%s_lib' % os.path.splitext(os.path.basename(test))[0], 'build': 'private', 'secure': 'no', - 'language': 'c' if os.path.splitext(test)[1] == '.c' else 'c++', + 'language': 'core' if os.path.splitext(test)[1] == '.c' else 'c++', 'src': [map_dir(test)], 'vs_proj_dir': 'test/boringssl', 'boringssl': True, diff --git a/src/zlib/gen_build_yaml.py b/src/zlib/gen_build_yaml.py index 0692edb753b48..24f7adabf1909 100755 --- a/src/zlib/gen_build_yaml.py +++ b/src/zlib/gen_build_yaml.py @@ -56,7 +56,7 @@ def cmvar(name): 'zlib': True, 'defaults': 'zlib', 'build': 'private', - 'language': 'c', + 'language': 'core', 'secure': 'no', 'src': sorted(cmvar('ZLIB_SRCS')), 'headers': sorted(cmvar('ZLIB_PUBLIC_HDRS') + cmvar('ZLIB_PRIVATE_HDRS')), diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py index fb86525b1a16f..4bd08909167d7 100755 --- a/test/core/bad_client/gen_build_yaml.py +++ b/test/core/bad_client/gen_build_yaml.py @@ -59,7 +59,7 @@ def main(): { 'name': 'bad_client_test', 'build': 'private', - 'language': 'c', + 'language': 'core', 'src': [ 'test/core/bad_client/bad_client.c' ], @@ -79,7 +79,7 @@ def main(): 'name': '%s_bad_client_test' % t, 'cpu_cost': BAD_CLIENT_TESTS[t].cpu_cost, 'build': 'test', - 'language': 'c', + 'language': 'core', 'secure': 'no', 'src': ['test/core/bad_client/tests/%s.c' % t], 'vs_proj_dir': 'test', diff --git a/test/core/bad_ssl/gen_build_yaml.py b/test/core/bad_ssl/gen_build_yaml.py index 69f921989cded..01e8362af101a 100755 --- a/test/core/bad_ssl/gen_build_yaml.py +++ b/test/core/bad_ssl/gen_build_yaml.py @@ -51,7 +51,7 @@ def main(): { 'name': 'bad_ssl_test_server', 'build': 'private', - 'language': 'c', + 'language': 'core', 'src': ['test/core/bad_ssl/server_common.c'], 'headers': ['test/core/bad_ssl/server_common.h'], 'vs_proj_dir': 'test', @@ -68,7 +68,7 @@ def main(): { 'name': 'bad_ssl_%s_server' % t, 'build': 'test', - 'language': 'c', + 'language': 'core', 'run': False, 'src': ['test/core/bad_ssl/servers/%s.c' % t], 'vs_proj_dir': 'test/bad_ssl', @@ -86,7 +86,7 @@ def main(): 'name': 'bad_ssl_%s_test' % t, 'cpu_cost': BAD_CLIENT_TESTS[t].cpu_cost, 'build': 'test', - 'language': 'c', + 'language': 'core', 'src': ['test/core/bad_ssl/bad_ssl_test.c'], 'vs_proj_dir': 'test', 'platforms': ['linux', 'posix', 'mac'], diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py index e59b7dc9fb2f0..d581924455c04 100755 --- a/test/core/end2end/gen_build_yaml.py +++ b/test/core/end2end/gen_build_yaml.py @@ -175,7 +175,7 @@ def main(): { 'name': 'end2end_tests', 'build': 'private', - 'language': 'c', + 'language': 'core', 'secure': True, 'src': ['test/core/end2end/end2end_tests.c'] + [ 'test/core/end2end/tests/%s.c' % t @@ -189,7 +189,7 @@ def main(): { 'name': 'end2end_nosec_tests', 'build': 'private', - 'language': 'c', + 'language': 'core', 'secure': False, 'src': ['test/core/end2end/end2end_nosec_tests.c'] + [ 'test/core/end2end/tests/%s.c' % t @@ -205,7 +205,7 @@ def main(): { 'name': '%s_test' % f, 'build': 'test', - 'language': 'c', + 'language': 'core', 'run': False, 'src': ['test/core/end2end/fixtures/%s.c' % f], 'platforms': END2END_FIXTURES[f].platforms, @@ -222,7 +222,7 @@ def main(): { 'name': '%s_nosec_test' % f, 'build': 'test', - 'language': 'c', + 'language': 'core', 'secure': 'no', 'src': ['test/core/end2end/fixtures/%s.c' % f], 'run': False, @@ -248,7 +248,7 @@ def main(): if END2END_FIXTURES[f].ci_mac else without( END2END_FIXTURES[f].platforms, 'mac')), 'flaky': False, - 'language': 'c', + 'language': 'core', 'cpu_cost': END2END_TESTS[t].cpu_cost, } for f in sorted(END2END_FIXTURES.keys()) @@ -263,7 +263,7 @@ def main(): if END2END_FIXTURES[f].ci_mac else without( END2END_FIXTURES[f].platforms, 'mac')), 'flaky': False, - 'language': 'c', + 'language': 'core', 'cpu_cost': END2END_TESTS[t].cpu_cost, } for f in sorted(END2END_FIXTURES.keys()) diff --git a/tools/buildgen/plugins/expand_filegroups.py b/tools/buildgen/plugins/expand_filegroups.py index 477e69c869638..f367610fc7d47 100755 --- a/tools/buildgen/plugins/expand_filegroups.py +++ b/tools/buildgen/plugins/expand_filegroups.py @@ -54,7 +54,7 @@ def uniquify(lst): FILEGROUP_DEFAULTS = { - 'language': 'c', + 'language': 'core', 'boringssl': False, 'zlib': False, } diff --git a/tools/buildgen/plugins/make_fuzzer_tests.py b/tools/buildgen/plugins/make_fuzzer_tests.py index 1d215e9fe0f2d..f7bc825ef9851 100644 --- a/tools/buildgen/plugins/make_fuzzer_tests.py +++ b/tools/buildgen/plugins/make_fuzzer_tests.py @@ -54,6 +54,6 @@ def mako_plugin(dictionary): 'platforms': ['linux'], 'ci_platforms': ['linux'], 'flaky': False, - 'language': 'c', + 'language': 'core', 'cpu_cost': 0.1, }) diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 8eb72191fdf0c..01b3e30a1e6af 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -3347,7 +3347,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "badreq_bad_client_test", "src": [ "test/core/bad_client/tests/badreq.c" @@ -3364,7 +3364,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "connection_prefix_bad_client_test", "src": [ "test/core/bad_client/tests/connection_prefix.c" @@ -3381,7 +3381,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "head_of_line_blocking_bad_client_test", "src": [ "test/core/bad_client/tests/head_of_line_blocking.c" @@ -3398,7 +3398,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "headers_bad_client_test", "src": [ "test/core/bad_client/tests/headers.c" @@ -3415,7 +3415,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "initial_settings_frame_bad_client_test", "src": [ "test/core/bad_client/tests/initial_settings_frame.c" @@ -3432,7 +3432,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "large_metadata_bad_client_test", "src": [ "test/core/bad_client/tests/large_metadata.c" @@ -3449,7 +3449,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "server_registered_method_bad_client_test", "src": [ "test/core/bad_client/tests/server_registered_method.c" @@ -3466,7 +3466,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "simple_request_bad_client_test", "src": [ "test/core/bad_client/tests/simple_request.c" @@ -3483,7 +3483,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "unknown_frame_bad_client_test", "src": [ "test/core/bad_client/tests/unknown_frame.c" @@ -3500,7 +3500,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "window_overflow_bad_client_test", "src": [ "test/core/bad_client/tests/window_overflow.c" @@ -3517,7 +3517,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "bad_ssl_alpn_server", "src": [ "test/core/bad_ssl/servers/alpn.c" @@ -3534,7 +3534,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "bad_ssl_cert_server", "src": [ "test/core/bad_ssl/servers/cert.c" @@ -3550,7 +3550,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "bad_ssl_alpn_test", "src": [ "test/core/bad_ssl/bad_ssl_test.c" @@ -3566,7 +3566,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "bad_ssl_cert_test", "src": [ "test/core/bad_ssl/bad_ssl_test.c" @@ -3583,7 +3583,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_census_test", "src": [ "test/core/end2end/fixtures/h2_census.c" @@ -3600,7 +3600,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_compress_test", "src": [ "test/core/end2end/fixtures/h2_compress.c" @@ -3617,7 +3617,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_fakesec_test", "src": [ "test/core/end2end/fixtures/h2_fakesec.c" @@ -3634,7 +3634,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_fd_test", "src": [ "test/core/end2end/fixtures/h2_fd.c" @@ -3651,7 +3651,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_full_test", "src": [ "test/core/end2end/fixtures/h2_full.c" @@ -3668,7 +3668,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "src": [ "test/core/end2end/fixtures/h2_full+pipe.c" @@ -3685,7 +3685,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_full+trace_test", "src": [ "test/core/end2end/fixtures/h2_full+trace.c" @@ -3702,7 +3702,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "src": [ "test/core/end2end/fixtures/h2_load_reporting.c" @@ -3719,7 +3719,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_oauth2_test", "src": [ "test/core/end2end/fixtures/h2_oauth2.c" @@ -3736,7 +3736,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_proxy_test", "src": [ "test/core/end2end/fixtures/h2_proxy.c" @@ -3753,7 +3753,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_sockpair_test", "src": [ "test/core/end2end/fixtures/h2_sockpair.c" @@ -3770,7 +3770,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "src": [ "test/core/end2end/fixtures/h2_sockpair+trace.c" @@ -3787,7 +3787,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "src": [ "test/core/end2end/fixtures/h2_sockpair_1byte.c" @@ -3804,7 +3804,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_ssl_test", "src": [ "test/core/end2end/fixtures/h2_ssl.c" @@ -3821,7 +3821,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "src": [ "test/core/end2end/fixtures/h2_ssl_cert.c" @@ -3838,7 +3838,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "src": [ "test/core/end2end/fixtures/h2_ssl_proxy.c" @@ -3855,7 +3855,7 @@ "grpc_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_uds_test", "src": [ "test/core/end2end/fixtures/h2_uds.c" @@ -3872,7 +3872,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "src": [ "test/core/end2end/fixtures/h2_census.c" @@ -3889,7 +3889,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "src": [ "test/core/end2end/fixtures/h2_compress.c" @@ -3906,7 +3906,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "src": [ "test/core/end2end/fixtures/h2_fd.c" @@ -3923,7 +3923,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "src": [ "test/core/end2end/fixtures/h2_full.c" @@ -3940,7 +3940,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "src": [ "test/core/end2end/fixtures/h2_full+pipe.c" @@ -3957,7 +3957,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "src": [ "test/core/end2end/fixtures/h2_full+trace.c" @@ -3974,7 +3974,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "src": [ "test/core/end2end/fixtures/h2_load_reporting.c" @@ -3991,7 +3991,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "src": [ "test/core/end2end/fixtures/h2_proxy.c" @@ -4008,7 +4008,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "src": [ "test/core/end2end/fixtures/h2_sockpair.c" @@ -4025,7 +4025,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "src": [ "test/core/end2end/fixtures/h2_sockpair+trace.c" @@ -4042,7 +4042,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "src": [ "test/core/end2end/fixtures/h2_sockpair_1byte.c" @@ -4059,7 +4059,7 @@ "grpc_unsecure" ], "headers": [], - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "src": [ "test/core/end2end/fixtures/h2_uds.c" @@ -5050,7 +5050,7 @@ "third_party/boringssl/ssl/test/scoped_types.h", "third_party/boringssl/ssl/test/test_config.h" ], - "language": "c", + "language": "core", "name": "boringssl", "src": [ "src/boringssl/err_data.c" @@ -5181,7 +5181,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_constant_time_test_lib", "src": [], "third_party": true, @@ -5241,7 +5241,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_dsa_test_lib", "src": [], "third_party": true, @@ -5265,7 +5265,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_example_mul_lib", "src": [], "third_party": true, @@ -5337,7 +5337,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_hkdf_test_lib", "src": [], "third_party": true, @@ -5361,7 +5361,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_lhash_test_lib", "src": [], "third_party": true, @@ -5373,7 +5373,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_gcm_test_lib", "src": [], "third_party": true, @@ -5421,7 +5421,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_refcount_test_lib", "src": [], "third_party": true, @@ -5445,7 +5445,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_thread_test_lib", "src": [], "third_party": true, @@ -5457,7 +5457,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_pkcs7_test_lib", "src": [], "third_party": true, @@ -5481,7 +5481,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_tab_test_lib", "src": [], "third_party": true, @@ -5493,7 +5493,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_v3name_test_lib", "src": [], "third_party": true, @@ -5505,7 +5505,7 @@ "boringssl_test_util" ], "headers": [], - "language": "c", + "language": "core", "name": "boringssl_pqueue_test_lib", "src": [], "third_party": true, @@ -5538,7 +5538,7 @@ "third_party/zlib/zlib.h", "third_party/zlib/zutil.h" ], - "language": "c", + "language": "core", "name": "z", "src": [], "third_party": true, @@ -5554,7 +5554,7 @@ "headers": [ "test/core/bad_client/bad_client.h" ], - "language": "c", + "language": "core", "name": "bad_client_test", "src": [ "test/core/bad_client/bad_client.c", @@ -5573,7 +5573,7 @@ "headers": [ "test/core/bad_ssl/server_common.h" ], - "language": "c", + "language": "core", "name": "bad_ssl_test_server", "src": [ "test/core/bad_ssl/server_common.c", @@ -5593,7 +5593,7 @@ "test/core/end2end/end2end_tests.h", "test/core/end2end/tests/cancel_test_helpers.h" ], - "language": "c", + "language": "core", "name": "end2end_tests", "src": [ "test/core/end2end/end2end_tests.c", @@ -5656,7 +5656,7 @@ "test/core/end2end/end2end_tests.h", "test/core/end2end/tests/cancel_test_helpers.h" ], - "language": "c", + "language": "core", "name": "end2end_nosec_tests", "src": [ "test/core/end2end/end2end_nosec_tests.c", @@ -5725,7 +5725,7 @@ "src/core/ext/census/resource.h", "src/core/ext/census/rpc_metric_id.h" ], - "language": "c", + "language": "core", "name": "census", "src": [ "include/grpc/census.h", @@ -5799,7 +5799,7 @@ "src/core/lib/support/time_precise.h", "src/core/lib/support/tmpfile.h" ], - "language": "c", + "language": "core", "name": "gpr_base", "src": [ "include/grpc/support/alloc.h", @@ -5908,7 +5908,7 @@ "include/grpc/impl/codegen/sync_windows.h", "include/grpc/impl/codegen/time.h" ], - "language": "c", + "language": "core", "name": "gpr_codegen", "src": [ "include/grpc/impl/codegen/alloc.h", @@ -6022,7 +6022,7 @@ "src/core/lib/transport/transport.h", "src/core/lib/transport/transport_impl.h" ], - "language": "c", + "language": "core", "name": "grpc_base", "src": [ "include/grpc/byte_buffer.h", @@ -6227,7 +6227,7 @@ "src/core/ext/client_config/subchannel_index.h", "src/core/ext/client_config/uri_parser.h" ], - "language": "c", + "language": "core", "name": "grpc_client_config", "src": [ "src/core/ext/client_config/channel_connectivity.c", @@ -6282,7 +6282,7 @@ "include/grpc/impl/codegen/propagation_bits.h", "include/grpc/impl/codegen/status.h" ], - "language": "c", + "language": "core", "name": "grpc_codegen", "src": [ "include/grpc/impl/codegen/byte_buffer.h", @@ -6308,7 +6308,7 @@ "src/core/ext/lb_policy/grpclb/load_balancer_api.h", "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h" ], - "language": "c", + "language": "core", "name": "grpc_lb_policy_grpclb", "src": [ "src/core/ext/lb_policy/grpclb/grpclb.c", @@ -6328,7 +6328,7 @@ "grpc_client_config" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_lb_policy_pick_first", "src": [ "src/core/ext/lb_policy/pick_first/pick_first.c" @@ -6343,7 +6343,7 @@ "grpc_client_config" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_lb_policy_round_robin", "src": [ "src/core/ext/lb_policy/round_robin/round_robin.c" @@ -6360,7 +6360,7 @@ "src/core/ext/load_reporting/load_reporting.h", "src/core/ext/load_reporting/load_reporting_filter.h" ], - "language": "c", + "language": "core", "name": "grpc_load_reporting", "src": [ "src/core/ext/load_reporting/load_reporting.c", @@ -6378,7 +6378,7 @@ "grpc_client_config" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_resolver_dns_native", "src": [ "src/core/ext/resolver/dns/native/dns_resolver.c" @@ -6393,7 +6393,7 @@ "grpc_client_config" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_resolver_sockaddr", "src": [ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c" @@ -6431,7 +6431,7 @@ "src/core/lib/security/util/b64.h", "src/core/lib/security/util/json_util.h" ], - "language": "c", + "language": "core", "name": "grpc_secure", "src": [ "include/grpc/grpc_security.h", @@ -6502,7 +6502,7 @@ "test/core/util/port_server_client.h", "test/core/util/slice_splitter.h" ], - "language": "c", + "language": "core", "name": "grpc_test_util_base", "src": [ "test/core/end2end/cq_verifier.c", @@ -6560,7 +6560,7 @@ "src/core/ext/transport/chttp2/transport/stream_map.h", "src/core/ext/transport/chttp2/transport/varint.h" ], - "language": "c", + "language": "core", "name": "grpc_transport_chttp2", "src": [ "src/core/ext/transport/chttp2/transport/bin_decoder.c", @@ -6615,7 +6615,7 @@ "headers": [ "src/core/ext/transport/chttp2/alpn/alpn.h" ], - "language": "c", + "language": "core", "name": "grpc_transport_chttp2_alpn", "src": [ "src/core/ext/transport/chttp2/alpn/alpn.c", @@ -6632,7 +6632,7 @@ "grpc_transport_chttp2" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_transport_chttp2_client_insecure", "src": [ "src/core/ext/transport/chttp2/client/insecure/channel_create.c", @@ -6650,7 +6650,7 @@ "grpc_transport_chttp2" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_transport_chttp2_client_secure", "src": [ "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c" @@ -6665,7 +6665,7 @@ "grpc_transport_chttp2" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_transport_chttp2_server_insecure", "src": [ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c", @@ -6682,7 +6682,7 @@ "grpc_transport_chttp2" ], "headers": [], - "language": "c", + "language": "core", "name": "grpc_transport_chttp2_server_secure", "src": [ "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c" @@ -6701,7 +6701,7 @@ "include/grpc/grpc_security_constants.h", "third_party/objective_c/Cronet/cronet_c_for_grpc.h" ], - "language": "c", + "language": "core", "name": "grpc_transport_cronet_client_secure", "src": [ "include/grpc/grpc_cronet.h", @@ -6722,7 +6722,7 @@ "third_party/nanopb/pb_decode.h", "third_party/nanopb/pb_encode.h" ], - "language": "c", + "language": "core", "name": "nanopb", "src": [], "third_party": false, @@ -6739,7 +6739,7 @@ "src/core/lib/tsi/transport_security.h", "src/core/lib/tsi/transport_security_interface.h" ], - "language": "c", + "language": "core", "name": "tsi", "src": [ "src/core/lib/tsi/fake_transport_security.c", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index d138247c587f3..80c3cdf649f6a 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -2670,7 +2670,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "badreq_bad_client_test", "platforms": [ "linux", @@ -2691,7 +2691,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "connection_prefix_bad_client_test", "platforms": [ "linux", @@ -2712,7 +2712,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "head_of_line_blocking_bad_client_test", "platforms": [ "linux", @@ -2733,7 +2733,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "headers_bad_client_test", "platforms": [ "linux", @@ -2754,7 +2754,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "initial_settings_frame_bad_client_test", "platforms": [ "linux", @@ -2775,7 +2775,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "large_metadata_bad_client_test", "platforms": [ "linux", @@ -2796,7 +2796,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "server_registered_method_bad_client_test", "platforms": [ "linux", @@ -2817,7 +2817,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "simple_request_bad_client_test", "platforms": [ "linux", @@ -2838,7 +2838,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "unknown_frame_bad_client_test", "platforms": [ "linux", @@ -2859,7 +2859,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "window_overflow_bad_client_test", "platforms": [ "linux", @@ -2879,7 +2879,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "bad_ssl_alpn_test", "platforms": [ "linux", @@ -2898,7 +2898,7 @@ "exclude_configs": [], "flaky": false, "gtest": false, - "language": "c", + "language": "core", "name": "bad_ssl_cert_test", "platforms": [ "linux", @@ -4465,7 +4465,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4487,7 +4487,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4509,7 +4509,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4531,7 +4531,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4553,7 +4553,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4575,7 +4575,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4597,7 +4597,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4619,7 +4619,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4641,7 +4641,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4663,7 +4663,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4685,7 +4685,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4707,7 +4707,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4729,7 +4729,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4751,7 +4751,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4773,7 +4773,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4795,7 +4795,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4817,7 +4817,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4839,7 +4839,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4861,7 +4861,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4883,7 +4883,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4905,7 +4905,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4927,7 +4927,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4949,7 +4949,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4971,7 +4971,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -4993,7 +4993,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5015,7 +5015,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5037,7 +5037,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5059,7 +5059,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5081,7 +5081,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5103,7 +5103,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5125,7 +5125,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5147,7 +5147,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5169,7 +5169,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5191,7 +5191,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5213,7 +5213,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5235,7 +5235,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5257,7 +5257,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5279,7 +5279,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5301,7 +5301,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5323,7 +5323,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5345,7 +5345,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5367,7 +5367,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_test", "platforms": [ "windows", @@ -5389,7 +5389,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5411,7 +5411,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5433,7 +5433,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5455,7 +5455,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5477,7 +5477,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5499,7 +5499,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5521,7 +5521,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5543,7 +5543,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5565,7 +5565,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5587,7 +5587,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5609,7 +5609,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5631,7 +5631,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5653,7 +5653,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5675,7 +5675,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5697,7 +5697,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5719,7 +5719,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5741,7 +5741,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5763,7 +5763,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5785,7 +5785,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5807,7 +5807,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5829,7 +5829,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5851,7 +5851,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5873,7 +5873,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5895,7 +5895,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5917,7 +5917,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5939,7 +5939,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5961,7 +5961,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -5983,7 +5983,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6005,7 +6005,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6027,7 +6027,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6049,7 +6049,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6071,7 +6071,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6093,7 +6093,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6115,7 +6115,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6137,7 +6137,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6159,7 +6159,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6181,7 +6181,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6203,7 +6203,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6225,7 +6225,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6247,7 +6247,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6269,7 +6269,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6291,7 +6291,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_test", "platforms": [ "windows", @@ -6312,7 +6312,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6333,7 +6333,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6354,7 +6354,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6375,7 +6375,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6396,7 +6396,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6417,7 +6417,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6438,7 +6438,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6459,7 +6459,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6480,7 +6480,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6501,7 +6501,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6522,7 +6522,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6543,7 +6543,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6564,7 +6564,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6585,7 +6585,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6606,7 +6606,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6627,7 +6627,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6648,7 +6648,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6669,7 +6669,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6690,7 +6690,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6711,7 +6711,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6732,7 +6732,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6753,7 +6753,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6774,7 +6774,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6795,7 +6795,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6816,7 +6816,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6837,7 +6837,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6858,7 +6858,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6879,7 +6879,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6900,7 +6900,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6921,7 +6921,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6942,7 +6942,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6963,7 +6963,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -6984,7 +6984,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7005,7 +7005,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7026,7 +7026,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7047,7 +7047,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7068,7 +7068,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7089,7 +7089,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7110,7 +7110,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7131,7 +7131,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7152,7 +7152,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7173,7 +7173,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fakesec_test", "platforms": [ "windows", @@ -7194,7 +7194,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7214,7 +7214,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7234,7 +7234,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7254,7 +7254,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7274,7 +7274,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7294,7 +7294,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7314,7 +7314,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7334,7 +7334,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7354,7 +7354,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7374,7 +7374,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7394,7 +7394,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7414,7 +7414,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7434,7 +7434,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7454,7 +7454,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7474,7 +7474,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7494,7 +7494,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7514,7 +7514,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7534,7 +7534,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7554,7 +7554,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7574,7 +7574,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7594,7 +7594,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7614,7 +7614,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7634,7 +7634,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7654,7 +7654,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7674,7 +7674,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7694,7 +7694,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7714,7 +7714,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7734,7 +7734,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7754,7 +7754,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7774,7 +7774,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7794,7 +7794,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7814,7 +7814,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7834,7 +7834,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7854,7 +7854,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7874,7 +7874,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7894,7 +7894,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7914,7 +7914,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_test", "platforms": [ "linux", @@ -7935,7 +7935,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -7957,7 +7957,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -7979,7 +7979,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8001,7 +8001,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8023,7 +8023,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8045,7 +8045,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8067,7 +8067,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8089,7 +8089,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8111,7 +8111,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8133,7 +8133,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8155,7 +8155,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8177,7 +8177,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8199,7 +8199,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8221,7 +8221,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8243,7 +8243,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8265,7 +8265,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8287,7 +8287,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8309,7 +8309,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8331,7 +8331,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8353,7 +8353,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8375,7 +8375,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8397,7 +8397,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8419,7 +8419,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8441,7 +8441,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8463,7 +8463,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8485,7 +8485,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8507,7 +8507,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8529,7 +8529,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8551,7 +8551,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8573,7 +8573,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8595,7 +8595,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8617,7 +8617,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8639,7 +8639,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8661,7 +8661,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8683,7 +8683,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8705,7 +8705,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8727,7 +8727,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8749,7 +8749,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8771,7 +8771,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8793,7 +8793,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8815,7 +8815,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8837,7 +8837,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_test", "platforms": [ "windows", @@ -8856,7 +8856,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8872,7 +8872,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8888,7 +8888,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8904,7 +8904,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8920,7 +8920,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8936,7 +8936,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8952,7 +8952,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8968,7 +8968,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -8984,7 +8984,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9000,7 +9000,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9016,7 +9016,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9032,7 +9032,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9048,7 +9048,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9064,7 +9064,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9080,7 +9080,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9096,7 +9096,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9112,7 +9112,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9128,7 +9128,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9144,7 +9144,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9160,7 +9160,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9176,7 +9176,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9192,7 +9192,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9208,7 +9208,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9224,7 +9224,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9240,7 +9240,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9256,7 +9256,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9272,7 +9272,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9288,7 +9288,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9304,7 +9304,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9320,7 +9320,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9336,7 +9336,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9352,7 +9352,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9368,7 +9368,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9384,7 +9384,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9400,7 +9400,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9416,7 +9416,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9432,7 +9432,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9448,7 +9448,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9464,7 +9464,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9480,7 +9480,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9496,7 +9496,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9512,7 +9512,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_test", "platforms": [ "linux" @@ -9531,7 +9531,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9553,7 +9553,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9575,7 +9575,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9597,7 +9597,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9619,7 +9619,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9641,7 +9641,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9663,7 +9663,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9685,7 +9685,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9707,7 +9707,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9729,7 +9729,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9751,7 +9751,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9773,7 +9773,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9795,7 +9795,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9817,7 +9817,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9839,7 +9839,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9861,7 +9861,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9883,7 +9883,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9905,7 +9905,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9927,7 +9927,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9949,7 +9949,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9971,7 +9971,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -9993,7 +9993,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10015,7 +10015,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10037,7 +10037,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10059,7 +10059,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10081,7 +10081,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10103,7 +10103,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10125,7 +10125,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10147,7 +10147,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10169,7 +10169,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10191,7 +10191,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10213,7 +10213,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10235,7 +10235,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10257,7 +10257,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10279,7 +10279,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10301,7 +10301,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10323,7 +10323,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10345,7 +10345,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10367,7 +10367,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10389,7 +10389,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10411,7 +10411,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_test", "platforms": [ "windows", @@ -10433,7 +10433,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10455,7 +10455,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10477,7 +10477,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10499,7 +10499,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10521,7 +10521,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10543,7 +10543,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10565,7 +10565,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10587,7 +10587,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10609,7 +10609,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10631,7 +10631,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10653,7 +10653,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10675,7 +10675,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10697,7 +10697,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10719,7 +10719,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10741,7 +10741,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10763,7 +10763,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10785,7 +10785,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10807,7 +10807,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10829,7 +10829,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10851,7 +10851,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10873,7 +10873,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10895,7 +10895,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10917,7 +10917,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10939,7 +10939,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10961,7 +10961,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -10983,7 +10983,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11005,7 +11005,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11027,7 +11027,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11049,7 +11049,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11071,7 +11071,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11093,7 +11093,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11115,7 +11115,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11137,7 +11137,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11159,7 +11159,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11181,7 +11181,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11203,7 +11203,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11225,7 +11225,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11247,7 +11247,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11269,7 +11269,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11291,7 +11291,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11313,7 +11313,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11335,7 +11335,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_test", "platforms": [ "windows", @@ -11356,7 +11356,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11377,7 +11377,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11398,7 +11398,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11419,7 +11419,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11440,7 +11440,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11461,7 +11461,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11482,7 +11482,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11503,7 +11503,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11524,7 +11524,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11545,7 +11545,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11566,7 +11566,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11587,7 +11587,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11608,7 +11608,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11629,7 +11629,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11650,7 +11650,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11671,7 +11671,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11692,7 +11692,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11713,7 +11713,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11734,7 +11734,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11755,7 +11755,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11776,7 +11776,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11797,7 +11797,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11818,7 +11818,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11839,7 +11839,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11860,7 +11860,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11881,7 +11881,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11902,7 +11902,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11923,7 +11923,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11944,7 +11944,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11965,7 +11965,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -11986,7 +11986,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12007,7 +12007,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12028,7 +12028,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12049,7 +12049,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12070,7 +12070,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12091,7 +12091,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12112,7 +12112,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12133,7 +12133,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12154,7 +12154,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12175,7 +12175,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12196,7 +12196,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12217,7 +12217,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_oauth2_test", "platforms": [ "windows", @@ -12238,7 +12238,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12259,7 +12259,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12280,7 +12280,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12301,7 +12301,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12322,7 +12322,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12343,7 +12343,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12364,7 +12364,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12385,7 +12385,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12406,7 +12406,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12427,7 +12427,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12448,7 +12448,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12469,7 +12469,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12490,7 +12490,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12511,7 +12511,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12532,7 +12532,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12553,7 +12553,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12574,7 +12574,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12595,7 +12595,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12616,7 +12616,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12637,7 +12637,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12658,7 +12658,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12679,7 +12679,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12700,7 +12700,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12721,7 +12721,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12742,7 +12742,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12763,7 +12763,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12784,7 +12784,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12805,7 +12805,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12826,7 +12826,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12847,7 +12847,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12868,7 +12868,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12889,7 +12889,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12910,7 +12910,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12931,7 +12931,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12952,7 +12952,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12973,7 +12973,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_test", "platforms": [ "windows", @@ -12994,7 +12994,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13015,7 +13015,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13036,7 +13036,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13057,7 +13057,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13078,7 +13078,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13099,7 +13099,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13120,7 +13120,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13141,7 +13141,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13162,7 +13162,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13183,7 +13183,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13204,7 +13204,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13225,7 +13225,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13246,7 +13246,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13267,7 +13267,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13288,7 +13288,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13309,7 +13309,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13330,7 +13330,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13351,7 +13351,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13372,7 +13372,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13393,7 +13393,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13414,7 +13414,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13435,7 +13435,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13456,7 +13456,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13477,7 +13477,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13498,7 +13498,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13519,7 +13519,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13540,7 +13540,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13561,7 +13561,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13582,7 +13582,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13603,7 +13603,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13624,7 +13624,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13645,7 +13645,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13666,7 +13666,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13687,7 +13687,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13708,7 +13708,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13729,7 +13729,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13750,7 +13750,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_test", "platforms": [ "windows", @@ -13771,7 +13771,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13792,7 +13792,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13813,7 +13813,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13834,7 +13834,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13855,7 +13855,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13876,7 +13876,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13897,7 +13897,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13918,7 +13918,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13939,7 +13939,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13960,7 +13960,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -13981,7 +13981,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14002,7 +14002,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14023,7 +14023,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14044,7 +14044,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14065,7 +14065,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14086,7 +14086,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14107,7 +14107,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14128,7 +14128,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14149,7 +14149,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14170,7 +14170,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14191,7 +14191,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14212,7 +14212,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14233,7 +14233,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14254,7 +14254,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14275,7 +14275,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14296,7 +14296,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14317,7 +14317,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14338,7 +14338,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14359,7 +14359,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14380,7 +14380,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14401,7 +14401,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14422,7 +14422,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14443,7 +14443,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14464,7 +14464,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14485,7 +14485,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14506,7 +14506,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_test", "platforms": [ "windows", @@ -14527,7 +14527,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14548,7 +14548,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14569,7 +14569,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14590,7 +14590,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14611,7 +14611,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14632,7 +14632,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14653,7 +14653,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14674,7 +14674,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14695,7 +14695,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14716,7 +14716,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14737,7 +14737,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14758,7 +14758,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14779,7 +14779,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14800,7 +14800,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14821,7 +14821,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14842,7 +14842,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14863,7 +14863,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14884,7 +14884,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14905,7 +14905,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14926,7 +14926,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14947,7 +14947,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14968,7 +14968,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -14989,7 +14989,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15010,7 +15010,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15031,7 +15031,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15052,7 +15052,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15073,7 +15073,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15094,7 +15094,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15115,7 +15115,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15136,7 +15136,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15157,7 +15157,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15178,7 +15178,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15199,7 +15199,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15220,7 +15220,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15241,7 +15241,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15262,7 +15262,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15283,7 +15283,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_test", "platforms": [ "windows", @@ -15305,7 +15305,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15327,7 +15327,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15349,7 +15349,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15371,7 +15371,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15393,7 +15393,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15415,7 +15415,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15437,7 +15437,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15459,7 +15459,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15481,7 +15481,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15503,7 +15503,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15525,7 +15525,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15547,7 +15547,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15569,7 +15569,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15591,7 +15591,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15613,7 +15613,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15635,7 +15635,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15657,7 +15657,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15679,7 +15679,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15701,7 +15701,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15723,7 +15723,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15745,7 +15745,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15767,7 +15767,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15789,7 +15789,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15811,7 +15811,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15833,7 +15833,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15855,7 +15855,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15877,7 +15877,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15899,7 +15899,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15921,7 +15921,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15943,7 +15943,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15965,7 +15965,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -15987,7 +15987,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16009,7 +16009,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16031,7 +16031,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16053,7 +16053,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16075,7 +16075,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16097,7 +16097,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16119,7 +16119,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16141,7 +16141,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16163,7 +16163,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16185,7 +16185,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16207,7 +16207,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_test", "platforms": [ "windows", @@ -16229,7 +16229,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16251,7 +16251,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16273,7 +16273,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16295,7 +16295,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16317,7 +16317,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16339,7 +16339,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16361,7 +16361,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16383,7 +16383,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16405,7 +16405,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16427,7 +16427,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16449,7 +16449,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16471,7 +16471,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16493,7 +16493,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16515,7 +16515,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16537,7 +16537,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16559,7 +16559,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16581,7 +16581,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16603,7 +16603,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16625,7 +16625,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16647,7 +16647,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16669,7 +16669,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16691,7 +16691,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16713,7 +16713,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16735,7 +16735,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16757,7 +16757,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16779,7 +16779,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16801,7 +16801,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16823,7 +16823,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16845,7 +16845,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16867,7 +16867,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16889,7 +16889,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16911,7 +16911,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16933,7 +16933,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16955,7 +16955,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16977,7 +16977,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -16999,7 +16999,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -17021,7 +17021,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -17043,7 +17043,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -17065,7 +17065,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -17087,7 +17087,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -17109,7 +17109,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -17131,7 +17131,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_cert_test", "platforms": [ "windows", @@ -17152,7 +17152,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17173,7 +17173,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17194,7 +17194,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17215,7 +17215,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17236,7 +17236,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17257,7 +17257,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17278,7 +17278,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17299,7 +17299,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17320,7 +17320,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17341,7 +17341,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17362,7 +17362,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17383,7 +17383,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17404,7 +17404,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17425,7 +17425,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17446,7 +17446,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17467,7 +17467,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17488,7 +17488,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17509,7 +17509,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17530,7 +17530,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17551,7 +17551,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17572,7 +17572,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17593,7 +17593,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17614,7 +17614,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17635,7 +17635,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17656,7 +17656,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17677,7 +17677,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17698,7 +17698,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17719,7 +17719,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17740,7 +17740,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17761,7 +17761,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17782,7 +17782,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17803,7 +17803,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17824,7 +17824,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17845,7 +17845,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17866,7 +17866,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17887,7 +17887,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_ssl_proxy_test", "platforms": [ "windows", @@ -17908,7 +17908,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -17928,7 +17928,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -17948,7 +17948,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -17968,7 +17968,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -17988,7 +17988,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18008,7 +18008,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18028,7 +18028,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18048,7 +18048,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18068,7 +18068,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18088,7 +18088,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18108,7 +18108,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18128,7 +18128,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18148,7 +18148,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18168,7 +18168,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18188,7 +18188,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18208,7 +18208,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18228,7 +18228,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18248,7 +18248,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18268,7 +18268,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18288,7 +18288,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18308,7 +18308,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18328,7 +18328,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18348,7 +18348,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18368,7 +18368,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18388,7 +18388,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18408,7 +18408,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18428,7 +18428,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18448,7 +18448,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18468,7 +18468,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18488,7 +18488,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18508,7 +18508,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18528,7 +18528,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18548,7 +18548,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18568,7 +18568,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18588,7 +18588,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18608,7 +18608,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18628,7 +18628,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18648,7 +18648,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18668,7 +18668,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18688,7 +18688,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18708,7 +18708,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_test", "platforms": [ "linux", @@ -18729,7 +18729,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18751,7 +18751,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18773,7 +18773,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18795,7 +18795,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18817,7 +18817,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18839,7 +18839,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18861,7 +18861,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18883,7 +18883,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18905,7 +18905,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18927,7 +18927,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18949,7 +18949,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18971,7 +18971,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -18993,7 +18993,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19015,7 +19015,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19037,7 +19037,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19059,7 +19059,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19081,7 +19081,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19103,7 +19103,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19125,7 +19125,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19147,7 +19147,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19169,7 +19169,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19191,7 +19191,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19213,7 +19213,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19235,7 +19235,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19257,7 +19257,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19279,7 +19279,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19301,7 +19301,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19323,7 +19323,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19345,7 +19345,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19367,7 +19367,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19389,7 +19389,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19411,7 +19411,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19433,7 +19433,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19455,7 +19455,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19477,7 +19477,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19499,7 +19499,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19521,7 +19521,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19543,7 +19543,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19565,7 +19565,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19587,7 +19587,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19609,7 +19609,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_census_nosec_test", "platforms": [ "windows", @@ -19631,7 +19631,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19653,7 +19653,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19675,7 +19675,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19697,7 +19697,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19719,7 +19719,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19741,7 +19741,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19763,7 +19763,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19785,7 +19785,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19807,7 +19807,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19829,7 +19829,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19851,7 +19851,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19873,7 +19873,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19895,7 +19895,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19917,7 +19917,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19939,7 +19939,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19961,7 +19961,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -19983,7 +19983,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20005,7 +20005,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20027,7 +20027,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20049,7 +20049,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20071,7 +20071,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20093,7 +20093,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20115,7 +20115,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20137,7 +20137,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20159,7 +20159,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20181,7 +20181,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20203,7 +20203,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20225,7 +20225,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20247,7 +20247,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20269,7 +20269,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20291,7 +20291,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20313,7 +20313,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20335,7 +20335,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20357,7 +20357,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20379,7 +20379,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20401,7 +20401,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20423,7 +20423,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20445,7 +20445,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20467,7 +20467,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20489,7 +20489,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20511,7 +20511,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_compress_nosec_test", "platforms": [ "windows", @@ -20532,7 +20532,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20552,7 +20552,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20572,7 +20572,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20592,7 +20592,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20612,7 +20612,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20632,7 +20632,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20652,7 +20652,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20672,7 +20672,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20692,7 +20692,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20712,7 +20712,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20732,7 +20732,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20752,7 +20752,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20772,7 +20772,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20792,7 +20792,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20812,7 +20812,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20832,7 +20832,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20852,7 +20852,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20872,7 +20872,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20892,7 +20892,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20912,7 +20912,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20932,7 +20932,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20952,7 +20952,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20972,7 +20972,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -20992,7 +20992,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21012,7 +21012,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21032,7 +21032,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21052,7 +21052,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21072,7 +21072,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21092,7 +21092,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21112,7 +21112,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21132,7 +21132,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21152,7 +21152,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21172,7 +21172,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21192,7 +21192,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21212,7 +21212,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21232,7 +21232,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_fd_nosec_test", "platforms": [ "linux", @@ -21253,7 +21253,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21275,7 +21275,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21297,7 +21297,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21319,7 +21319,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21341,7 +21341,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21363,7 +21363,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21385,7 +21385,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21407,7 +21407,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21429,7 +21429,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21451,7 +21451,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21473,7 +21473,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21495,7 +21495,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21517,7 +21517,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21539,7 +21539,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21561,7 +21561,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21583,7 +21583,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21605,7 +21605,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21627,7 +21627,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21649,7 +21649,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21671,7 +21671,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21693,7 +21693,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21715,7 +21715,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21737,7 +21737,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21759,7 +21759,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21781,7 +21781,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21803,7 +21803,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21825,7 +21825,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21847,7 +21847,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21869,7 +21869,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21891,7 +21891,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21913,7 +21913,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21935,7 +21935,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21957,7 +21957,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -21979,7 +21979,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22001,7 +22001,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22023,7 +22023,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22045,7 +22045,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22067,7 +22067,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22089,7 +22089,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22111,7 +22111,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22133,7 +22133,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full_nosec_test", "platforms": [ "windows", @@ -22152,7 +22152,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22168,7 +22168,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22184,7 +22184,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22200,7 +22200,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22216,7 +22216,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22232,7 +22232,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22248,7 +22248,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22264,7 +22264,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22280,7 +22280,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22296,7 +22296,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22312,7 +22312,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22328,7 +22328,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22344,7 +22344,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22360,7 +22360,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22376,7 +22376,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22392,7 +22392,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22408,7 +22408,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22424,7 +22424,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22440,7 +22440,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22456,7 +22456,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22472,7 +22472,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22488,7 +22488,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22504,7 +22504,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22520,7 +22520,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22536,7 +22536,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22552,7 +22552,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22568,7 +22568,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22584,7 +22584,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22600,7 +22600,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22616,7 +22616,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22632,7 +22632,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22648,7 +22648,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22664,7 +22664,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22680,7 +22680,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22696,7 +22696,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22712,7 +22712,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22728,7 +22728,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22744,7 +22744,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22760,7 +22760,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22776,7 +22776,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22792,7 +22792,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+pipe_nosec_test", "platforms": [ "linux" @@ -22811,7 +22811,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22833,7 +22833,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22855,7 +22855,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22877,7 +22877,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22899,7 +22899,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22921,7 +22921,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22943,7 +22943,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22965,7 +22965,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -22987,7 +22987,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23009,7 +23009,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23031,7 +23031,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23053,7 +23053,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23075,7 +23075,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23097,7 +23097,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23119,7 +23119,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23141,7 +23141,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23163,7 +23163,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23185,7 +23185,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23207,7 +23207,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23229,7 +23229,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23251,7 +23251,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23273,7 +23273,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23295,7 +23295,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23317,7 +23317,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23339,7 +23339,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23361,7 +23361,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23383,7 +23383,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23405,7 +23405,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23427,7 +23427,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23449,7 +23449,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23471,7 +23471,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23493,7 +23493,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23515,7 +23515,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23537,7 +23537,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23559,7 +23559,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23581,7 +23581,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23603,7 +23603,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23625,7 +23625,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23647,7 +23647,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23669,7 +23669,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_full+trace_nosec_test", "platforms": [ "windows", @@ -23691,7 +23691,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23713,7 +23713,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23735,7 +23735,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23757,7 +23757,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23779,7 +23779,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23801,7 +23801,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23823,7 +23823,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23845,7 +23845,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23867,7 +23867,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23889,7 +23889,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23911,7 +23911,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23933,7 +23933,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23955,7 +23955,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23977,7 +23977,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -23999,7 +23999,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24021,7 +24021,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24043,7 +24043,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24065,7 +24065,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24087,7 +24087,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24109,7 +24109,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24131,7 +24131,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24153,7 +24153,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24175,7 +24175,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24197,7 +24197,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24219,7 +24219,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24241,7 +24241,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24263,7 +24263,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24285,7 +24285,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24307,7 +24307,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24329,7 +24329,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24351,7 +24351,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24373,7 +24373,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24395,7 +24395,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24417,7 +24417,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24439,7 +24439,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24461,7 +24461,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24483,7 +24483,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24505,7 +24505,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24527,7 +24527,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24549,7 +24549,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24571,7 +24571,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_load_reporting_nosec_test", "platforms": [ "windows", @@ -24592,7 +24592,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24613,7 +24613,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24634,7 +24634,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24655,7 +24655,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24676,7 +24676,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24697,7 +24697,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24718,7 +24718,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24739,7 +24739,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24760,7 +24760,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24781,7 +24781,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24802,7 +24802,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24823,7 +24823,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24844,7 +24844,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24865,7 +24865,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24886,7 +24886,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24907,7 +24907,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24928,7 +24928,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24949,7 +24949,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24970,7 +24970,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -24991,7 +24991,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25012,7 +25012,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25033,7 +25033,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25054,7 +25054,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25075,7 +25075,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25096,7 +25096,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25117,7 +25117,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25138,7 +25138,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25159,7 +25159,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25180,7 +25180,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25201,7 +25201,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25222,7 +25222,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25243,7 +25243,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25264,7 +25264,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25285,7 +25285,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25306,7 +25306,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_proxy_nosec_test", "platforms": [ "windows", @@ -25327,7 +25327,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25348,7 +25348,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25369,7 +25369,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25390,7 +25390,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25411,7 +25411,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25432,7 +25432,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25453,7 +25453,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25474,7 +25474,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25495,7 +25495,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25516,7 +25516,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25537,7 +25537,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25558,7 +25558,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25579,7 +25579,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25600,7 +25600,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25621,7 +25621,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25642,7 +25642,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25663,7 +25663,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25684,7 +25684,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25705,7 +25705,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25726,7 +25726,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25747,7 +25747,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25768,7 +25768,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25789,7 +25789,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25810,7 +25810,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25831,7 +25831,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25852,7 +25852,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25873,7 +25873,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25894,7 +25894,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25915,7 +25915,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25936,7 +25936,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25957,7 +25957,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25978,7 +25978,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -25999,7 +25999,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -26020,7 +26020,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -26041,7 +26041,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -26062,7 +26062,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_nosec_test", "platforms": [ "windows", @@ -26083,7 +26083,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26104,7 +26104,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26125,7 +26125,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26146,7 +26146,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26167,7 +26167,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26188,7 +26188,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26209,7 +26209,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26230,7 +26230,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26251,7 +26251,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26272,7 +26272,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26293,7 +26293,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26314,7 +26314,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26335,7 +26335,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26356,7 +26356,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26377,7 +26377,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26398,7 +26398,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26419,7 +26419,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26440,7 +26440,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26461,7 +26461,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26482,7 +26482,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26503,7 +26503,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26524,7 +26524,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26545,7 +26545,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26566,7 +26566,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26587,7 +26587,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26608,7 +26608,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26629,7 +26629,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26650,7 +26650,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26671,7 +26671,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26692,7 +26692,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26713,7 +26713,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26734,7 +26734,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26755,7 +26755,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26776,7 +26776,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26797,7 +26797,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair+trace_nosec_test", "platforms": [ "windows", @@ -26820,7 +26820,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -26843,7 +26843,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -26866,7 +26866,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -26889,7 +26889,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -26912,7 +26912,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -26935,7 +26935,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -26958,7 +26958,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -26981,7 +26981,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27004,7 +27004,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27027,7 +27027,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27050,7 +27050,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27073,7 +27073,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27096,7 +27096,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27119,7 +27119,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27142,7 +27142,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27165,7 +27165,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27188,7 +27188,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27211,7 +27211,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27234,7 +27234,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27257,7 +27257,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27280,7 +27280,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27303,7 +27303,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27326,7 +27326,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27349,7 +27349,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27372,7 +27372,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27395,7 +27395,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27418,7 +27418,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27441,7 +27441,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27464,7 +27464,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27487,7 +27487,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27510,7 +27510,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27533,7 +27533,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27556,7 +27556,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27579,7 +27579,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27602,7 +27602,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27625,7 +27625,7 @@ "msan" ], "flaky": false, - "language": "c", + "language": "core", "name": "h2_sockpair_1byte_nosec_test", "platforms": [ "windows", @@ -27646,7 +27646,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27666,7 +27666,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27686,7 +27686,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27706,7 +27706,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27726,7 +27726,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27746,7 +27746,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27766,7 +27766,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27786,7 +27786,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27806,7 +27806,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27826,7 +27826,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27846,7 +27846,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27866,7 +27866,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27886,7 +27886,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27906,7 +27906,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27926,7 +27926,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27946,7 +27946,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27966,7 +27966,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -27986,7 +27986,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28006,7 +28006,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28026,7 +28026,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28046,7 +28046,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28066,7 +28066,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28086,7 +28086,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28106,7 +28106,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28126,7 +28126,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28146,7 +28146,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28166,7 +28166,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28186,7 +28186,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28206,7 +28206,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28226,7 +28226,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28246,7 +28246,7 @@ "cpu_cost": 0.1, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28266,7 +28266,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28286,7 +28286,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28306,7 +28306,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28326,7 +28326,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28346,7 +28346,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28366,7 +28366,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28386,7 +28386,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28406,7 +28406,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28426,7 +28426,7 @@ "cpu_cost": 1.0, "exclude_configs": [], "flaky": false, - "language": "c", + "language": "core", "name": "h2_uds_nosec_test", "platforms": [ "linux", @@ -28878,7 +28878,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -28897,7 +28897,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -28916,7 +28916,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -28935,7 +28935,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -28954,7 +28954,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -28973,7 +28973,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -28992,7 +28992,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29011,7 +29011,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29030,7 +29030,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29049,7 +29049,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29068,7 +29068,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29087,7 +29087,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29106,7 +29106,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29125,7 +29125,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29144,7 +29144,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29163,7 +29163,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29182,7 +29182,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29201,7 +29201,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29220,7 +29220,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29239,7 +29239,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29258,7 +29258,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29277,7 +29277,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29296,7 +29296,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29315,7 +29315,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29334,7 +29334,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29353,7 +29353,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29372,7 +29372,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29391,7 +29391,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29410,7 +29410,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29429,7 +29429,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29448,7 +29448,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29467,7 +29467,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29486,7 +29486,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29505,7 +29505,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29524,7 +29524,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29543,7 +29543,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29562,7 +29562,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29581,7 +29581,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29600,7 +29600,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29619,7 +29619,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29638,7 +29638,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29657,7 +29657,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29676,7 +29676,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29695,7 +29695,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29714,7 +29714,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29733,7 +29733,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29752,7 +29752,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29771,7 +29771,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29790,7 +29790,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29809,7 +29809,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29828,7 +29828,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29847,7 +29847,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29866,7 +29866,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29885,7 +29885,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29904,7 +29904,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29923,7 +29923,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29942,7 +29942,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29961,7 +29961,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29980,7 +29980,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -29999,7 +29999,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30018,7 +30018,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30037,7 +30037,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30056,7 +30056,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30075,7 +30075,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30094,7 +30094,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30113,7 +30113,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30132,7 +30132,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30151,7 +30151,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30170,7 +30170,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30189,7 +30189,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30208,7 +30208,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30227,7 +30227,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30246,7 +30246,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30265,7 +30265,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30284,7 +30284,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30303,7 +30303,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30322,7 +30322,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30341,7 +30341,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30360,7 +30360,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30379,7 +30379,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30398,7 +30398,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30417,7 +30417,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30436,7 +30436,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30455,7 +30455,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30474,7 +30474,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30493,7 +30493,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30512,7 +30512,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30531,7 +30531,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30550,7 +30550,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30569,7 +30569,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30588,7 +30588,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30607,7 +30607,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30626,7 +30626,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30645,7 +30645,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30664,7 +30664,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30683,7 +30683,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30702,7 +30702,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30721,7 +30721,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30740,7 +30740,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30759,7 +30759,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30778,7 +30778,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30797,7 +30797,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30816,7 +30816,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30835,7 +30835,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30854,7 +30854,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30873,7 +30873,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30892,7 +30892,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30911,7 +30911,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30930,7 +30930,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30949,7 +30949,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30968,7 +30968,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -30987,7 +30987,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31006,7 +31006,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31025,7 +31025,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31044,7 +31044,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31063,7 +31063,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31082,7 +31082,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31101,7 +31101,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31120,7 +31120,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31139,7 +31139,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31158,7 +31158,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31177,7 +31177,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31196,7 +31196,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31215,7 +31215,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31234,7 +31234,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31253,7 +31253,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31272,7 +31272,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31291,7 +31291,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31310,7 +31310,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31329,7 +31329,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31348,7 +31348,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31367,7 +31367,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31386,7 +31386,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31405,7 +31405,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31424,7 +31424,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31443,7 +31443,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31462,7 +31462,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31481,7 +31481,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31500,7 +31500,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31519,7 +31519,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31538,7 +31538,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31557,7 +31557,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31576,7 +31576,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31595,7 +31595,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31614,7 +31614,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31633,7 +31633,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31652,7 +31652,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31671,7 +31671,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31690,7 +31690,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31709,7 +31709,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31728,7 +31728,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31747,7 +31747,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31766,7 +31766,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31785,7 +31785,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31804,7 +31804,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31823,7 +31823,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31842,7 +31842,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31861,7 +31861,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31880,7 +31880,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31899,7 +31899,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31918,7 +31918,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31937,7 +31937,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31956,7 +31956,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31975,7 +31975,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -31994,7 +31994,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32013,7 +32013,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32032,7 +32032,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32051,7 +32051,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32070,7 +32070,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32089,7 +32089,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32108,7 +32108,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32127,7 +32127,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32146,7 +32146,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32165,7 +32165,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32184,7 +32184,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32203,7 +32203,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32222,7 +32222,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32241,7 +32241,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32260,7 +32260,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32279,7 +32279,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32298,7 +32298,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32317,7 +32317,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32336,7 +32336,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32355,7 +32355,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32374,7 +32374,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32393,7 +32393,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32412,7 +32412,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32431,7 +32431,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32450,7 +32450,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32469,7 +32469,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32488,7 +32488,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32507,7 +32507,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32526,7 +32526,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32545,7 +32545,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32564,7 +32564,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32583,7 +32583,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32602,7 +32602,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32621,7 +32621,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32640,7 +32640,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32659,7 +32659,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32678,7 +32678,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32697,7 +32697,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32716,7 +32716,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32735,7 +32735,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32754,7 +32754,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32773,7 +32773,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32792,7 +32792,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32811,7 +32811,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32830,7 +32830,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32849,7 +32849,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32868,7 +32868,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32887,7 +32887,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32906,7 +32906,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32925,7 +32925,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32944,7 +32944,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32963,7 +32963,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -32982,7 +32982,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33001,7 +33001,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33020,7 +33020,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33039,7 +33039,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33058,7 +33058,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33077,7 +33077,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33096,7 +33096,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33115,7 +33115,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33134,7 +33134,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33153,7 +33153,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33172,7 +33172,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33191,7 +33191,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33210,7 +33210,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33229,7 +33229,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33248,7 +33248,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33267,7 +33267,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33286,7 +33286,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33305,7 +33305,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33324,7 +33324,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33343,7 +33343,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33362,7 +33362,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33381,7 +33381,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33400,7 +33400,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33419,7 +33419,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33438,7 +33438,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33457,7 +33457,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33476,7 +33476,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33495,7 +33495,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33514,7 +33514,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33533,7 +33533,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33552,7 +33552,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33571,7 +33571,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33590,7 +33590,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33609,7 +33609,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33628,7 +33628,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33647,7 +33647,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33666,7 +33666,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33685,7 +33685,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33704,7 +33704,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33723,7 +33723,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33742,7 +33742,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33761,7 +33761,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33780,7 +33780,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33799,7 +33799,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33818,7 +33818,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33837,7 +33837,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33856,7 +33856,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33875,7 +33875,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33894,7 +33894,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33913,7 +33913,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33932,7 +33932,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33951,7 +33951,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33970,7 +33970,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -33989,7 +33989,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34008,7 +34008,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34027,7 +34027,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34046,7 +34046,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34065,7 +34065,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34084,7 +34084,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34103,7 +34103,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34122,7 +34122,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34141,7 +34141,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34160,7 +34160,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34179,7 +34179,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34198,7 +34198,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34217,7 +34217,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34236,7 +34236,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34255,7 +34255,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34274,7 +34274,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34293,7 +34293,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34312,7 +34312,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34331,7 +34331,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34350,7 +34350,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34369,7 +34369,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34388,7 +34388,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34407,7 +34407,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34426,7 +34426,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34445,7 +34445,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34464,7 +34464,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34483,7 +34483,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34502,7 +34502,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34521,7 +34521,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34540,7 +34540,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34559,7 +34559,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34578,7 +34578,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34597,7 +34597,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34616,7 +34616,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34635,7 +34635,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34654,7 +34654,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34673,7 +34673,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34692,7 +34692,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34711,7 +34711,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34730,7 +34730,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34749,7 +34749,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34768,7 +34768,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34787,7 +34787,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34806,7 +34806,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34825,7 +34825,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34844,7 +34844,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34863,7 +34863,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34882,7 +34882,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34901,7 +34901,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34920,7 +34920,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34939,7 +34939,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34958,7 +34958,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34977,7 +34977,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -34996,7 +34996,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35015,7 +35015,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35034,7 +35034,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35053,7 +35053,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35072,7 +35072,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35091,7 +35091,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35110,7 +35110,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35129,7 +35129,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35148,7 +35148,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35167,7 +35167,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35186,7 +35186,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35205,7 +35205,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35224,7 +35224,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35243,7 +35243,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35262,7 +35262,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35281,7 +35281,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35300,7 +35300,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35319,7 +35319,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35338,7 +35338,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35357,7 +35357,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35376,7 +35376,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35395,7 +35395,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35414,7 +35414,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35433,7 +35433,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35452,7 +35452,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35471,7 +35471,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35490,7 +35490,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35509,7 +35509,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35528,7 +35528,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35547,7 +35547,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35566,7 +35566,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35585,7 +35585,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35604,7 +35604,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35623,7 +35623,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35642,7 +35642,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35661,7 +35661,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35680,7 +35680,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35699,7 +35699,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35718,7 +35718,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35737,7 +35737,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35756,7 +35756,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35775,7 +35775,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35794,7 +35794,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35813,7 +35813,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35832,7 +35832,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35851,7 +35851,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35870,7 +35870,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35889,7 +35889,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35908,7 +35908,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35927,7 +35927,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35946,7 +35946,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35965,7 +35965,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -35984,7 +35984,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36003,7 +36003,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36022,7 +36022,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36041,7 +36041,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36060,7 +36060,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36079,7 +36079,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36098,7 +36098,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36117,7 +36117,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36136,7 +36136,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36155,7 +36155,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36174,7 +36174,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36193,7 +36193,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36212,7 +36212,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36231,7 +36231,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36250,7 +36250,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36269,7 +36269,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36288,7 +36288,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36307,7 +36307,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36326,7 +36326,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36345,7 +36345,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36364,7 +36364,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36383,7 +36383,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36402,7 +36402,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36421,7 +36421,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36440,7 +36440,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36459,7 +36459,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36478,7 +36478,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36497,7 +36497,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36516,7 +36516,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36535,7 +36535,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36554,7 +36554,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36573,7 +36573,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36592,7 +36592,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36611,7 +36611,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36630,7 +36630,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36649,7 +36649,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36668,7 +36668,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36687,7 +36687,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36706,7 +36706,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36725,7 +36725,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36744,7 +36744,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36763,7 +36763,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36782,7 +36782,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36801,7 +36801,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36820,7 +36820,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36839,7 +36839,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36858,7 +36858,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36877,7 +36877,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36896,7 +36896,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36915,7 +36915,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36934,7 +36934,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36953,7 +36953,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36972,7 +36972,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -36991,7 +36991,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37010,7 +37010,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37029,7 +37029,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37048,7 +37048,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37067,7 +37067,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37086,7 +37086,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37105,7 +37105,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37124,7 +37124,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37143,7 +37143,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37162,7 +37162,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37181,7 +37181,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37200,7 +37200,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37219,7 +37219,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37238,7 +37238,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37257,7 +37257,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37276,7 +37276,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37295,7 +37295,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37314,7 +37314,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37333,7 +37333,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37352,7 +37352,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37371,7 +37371,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37390,7 +37390,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37409,7 +37409,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37428,7 +37428,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37447,7 +37447,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37466,7 +37466,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37485,7 +37485,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37504,7 +37504,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37523,7 +37523,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37542,7 +37542,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37561,7 +37561,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37580,7 +37580,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37599,7 +37599,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37618,7 +37618,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37637,7 +37637,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37656,7 +37656,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37675,7 +37675,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37694,7 +37694,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37713,7 +37713,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37732,7 +37732,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37751,7 +37751,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37770,7 +37770,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37789,7 +37789,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37808,7 +37808,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37827,7 +37827,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37846,7 +37846,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37865,7 +37865,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37884,7 +37884,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37903,7 +37903,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37922,7 +37922,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37941,7 +37941,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37960,7 +37960,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37979,7 +37979,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -37998,7 +37998,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38017,7 +38017,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38036,7 +38036,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38055,7 +38055,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38074,7 +38074,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38093,7 +38093,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38112,7 +38112,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38131,7 +38131,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38150,7 +38150,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38169,7 +38169,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38188,7 +38188,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38207,7 +38207,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38226,7 +38226,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38245,7 +38245,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38264,7 +38264,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38283,7 +38283,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38302,7 +38302,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38321,7 +38321,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38340,7 +38340,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38359,7 +38359,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38378,7 +38378,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38397,7 +38397,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38416,7 +38416,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38435,7 +38435,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38454,7 +38454,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38473,7 +38473,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38492,7 +38492,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38511,7 +38511,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38530,7 +38530,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38549,7 +38549,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38568,7 +38568,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38587,7 +38587,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38606,7 +38606,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38625,7 +38625,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38644,7 +38644,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38663,7 +38663,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38682,7 +38682,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38701,7 +38701,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38720,7 +38720,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38739,7 +38739,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38758,7 +38758,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38777,7 +38777,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38796,7 +38796,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38815,7 +38815,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38834,7 +38834,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38853,7 +38853,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38872,7 +38872,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38891,7 +38891,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38910,7 +38910,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38929,7 +38929,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38948,7 +38948,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38967,7 +38967,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -38986,7 +38986,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39005,7 +39005,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39024,7 +39024,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39043,7 +39043,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39062,7 +39062,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39081,7 +39081,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39100,7 +39100,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39119,7 +39119,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39138,7 +39138,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39157,7 +39157,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39176,7 +39176,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39195,7 +39195,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39214,7 +39214,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39233,7 +39233,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39252,7 +39252,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39271,7 +39271,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39290,7 +39290,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39309,7 +39309,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39328,7 +39328,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39347,7 +39347,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39366,7 +39366,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39385,7 +39385,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39404,7 +39404,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39423,7 +39423,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39442,7 +39442,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39461,7 +39461,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39480,7 +39480,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39499,7 +39499,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39518,7 +39518,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39537,7 +39537,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39556,7 +39556,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39575,7 +39575,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39594,7 +39594,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39613,7 +39613,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39632,7 +39632,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39651,7 +39651,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39670,7 +39670,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39689,7 +39689,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39708,7 +39708,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39727,7 +39727,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39746,7 +39746,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39765,7 +39765,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39784,7 +39784,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39803,7 +39803,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39822,7 +39822,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39841,7 +39841,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39860,7 +39860,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39879,7 +39879,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39898,7 +39898,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39917,7 +39917,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39936,7 +39936,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39955,7 +39955,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39974,7 +39974,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -39993,7 +39993,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40012,7 +40012,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40031,7 +40031,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40050,7 +40050,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40069,7 +40069,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40088,7 +40088,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40107,7 +40107,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40126,7 +40126,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40145,7 +40145,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40164,7 +40164,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40183,7 +40183,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40202,7 +40202,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40221,7 +40221,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40240,7 +40240,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40259,7 +40259,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40278,7 +40278,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40297,7 +40297,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40316,7 +40316,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40335,7 +40335,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40354,7 +40354,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40373,7 +40373,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40392,7 +40392,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40411,7 +40411,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40430,7 +40430,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40449,7 +40449,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40468,7 +40468,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40487,7 +40487,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40506,7 +40506,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40525,7 +40525,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40544,7 +40544,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40563,7 +40563,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40582,7 +40582,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40601,7 +40601,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40620,7 +40620,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40639,7 +40639,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40658,7 +40658,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40677,7 +40677,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40696,7 +40696,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40715,7 +40715,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40734,7 +40734,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40753,7 +40753,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40772,7 +40772,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40791,7 +40791,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40810,7 +40810,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40829,7 +40829,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40848,7 +40848,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40867,7 +40867,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40886,7 +40886,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40905,7 +40905,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40924,7 +40924,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40943,7 +40943,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40962,7 +40962,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -40981,7 +40981,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41000,7 +41000,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41019,7 +41019,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41038,7 +41038,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41057,7 +41057,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41076,7 +41076,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41095,7 +41095,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41114,7 +41114,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41133,7 +41133,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41152,7 +41152,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41171,7 +41171,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41190,7 +41190,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41209,7 +41209,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41228,7 +41228,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41247,7 +41247,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41266,7 +41266,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41285,7 +41285,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41304,7 +41304,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41323,7 +41323,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41342,7 +41342,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41361,7 +41361,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41380,7 +41380,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41399,7 +41399,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41418,7 +41418,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41437,7 +41437,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41456,7 +41456,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41475,7 +41475,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41494,7 +41494,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41513,7 +41513,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41532,7 +41532,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41551,7 +41551,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41570,7 +41570,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41589,7 +41589,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41608,7 +41608,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41627,7 +41627,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41646,7 +41646,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41665,7 +41665,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41684,7 +41684,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41703,7 +41703,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41722,7 +41722,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41741,7 +41741,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41760,7 +41760,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41779,7 +41779,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41798,7 +41798,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41817,7 +41817,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41836,7 +41836,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41855,7 +41855,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41874,7 +41874,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41893,7 +41893,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41912,7 +41912,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41931,7 +41931,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41950,7 +41950,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41969,7 +41969,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -41988,7 +41988,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42007,7 +42007,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42026,7 +42026,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42045,7 +42045,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42064,7 +42064,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42083,7 +42083,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42102,7 +42102,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42121,7 +42121,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42140,7 +42140,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42159,7 +42159,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42178,7 +42178,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42197,7 +42197,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42216,7 +42216,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42235,7 +42235,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42254,7 +42254,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42273,7 +42273,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42292,7 +42292,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42311,7 +42311,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42330,7 +42330,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42349,7 +42349,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42368,7 +42368,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42387,7 +42387,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42406,7 +42406,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42425,7 +42425,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42444,7 +42444,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42463,7 +42463,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42482,7 +42482,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42501,7 +42501,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42520,7 +42520,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42539,7 +42539,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42558,7 +42558,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42577,7 +42577,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42596,7 +42596,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42615,7 +42615,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42634,7 +42634,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42653,7 +42653,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42672,7 +42672,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42691,7 +42691,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42710,7 +42710,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42729,7 +42729,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42748,7 +42748,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42767,7 +42767,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42786,7 +42786,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42805,7 +42805,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42824,7 +42824,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42843,7 +42843,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42862,7 +42862,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42881,7 +42881,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42900,7 +42900,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42919,7 +42919,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42938,7 +42938,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42957,7 +42957,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42976,7 +42976,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -42995,7 +42995,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43014,7 +43014,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43033,7 +43033,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43052,7 +43052,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43071,7 +43071,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43090,7 +43090,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43109,7 +43109,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43128,7 +43128,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43147,7 +43147,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43166,7 +43166,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43185,7 +43185,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43204,7 +43204,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43223,7 +43223,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43242,7 +43242,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43261,7 +43261,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43280,7 +43280,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43299,7 +43299,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43318,7 +43318,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43337,7 +43337,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43356,7 +43356,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43375,7 +43375,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43394,7 +43394,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43413,7 +43413,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43432,7 +43432,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43451,7 +43451,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43470,7 +43470,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43489,7 +43489,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43508,7 +43508,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43527,7 +43527,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43546,7 +43546,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43565,7 +43565,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43584,7 +43584,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43603,7 +43603,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43622,7 +43622,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43641,7 +43641,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43660,7 +43660,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43679,7 +43679,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43698,7 +43698,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43717,7 +43717,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43736,7 +43736,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43755,7 +43755,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43774,7 +43774,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43793,7 +43793,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43812,7 +43812,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43831,7 +43831,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43850,7 +43850,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43869,7 +43869,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43888,7 +43888,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43907,7 +43907,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43926,7 +43926,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43945,7 +43945,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43964,7 +43964,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -43983,7 +43983,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44002,7 +44002,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44021,7 +44021,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44040,7 +44040,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44059,7 +44059,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44078,7 +44078,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44097,7 +44097,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44116,7 +44116,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44135,7 +44135,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44154,7 +44154,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44173,7 +44173,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44192,7 +44192,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44211,7 +44211,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44230,7 +44230,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44249,7 +44249,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44268,7 +44268,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44287,7 +44287,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44306,7 +44306,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44325,7 +44325,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44344,7 +44344,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44363,7 +44363,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44382,7 +44382,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44401,7 +44401,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44420,7 +44420,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44439,7 +44439,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44458,7 +44458,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44477,7 +44477,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44496,7 +44496,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44515,7 +44515,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44534,7 +44534,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44553,7 +44553,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44572,7 +44572,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44591,7 +44591,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44610,7 +44610,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44629,7 +44629,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44648,7 +44648,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44667,7 +44667,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44686,7 +44686,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44705,7 +44705,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44724,7 +44724,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44743,7 +44743,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44762,7 +44762,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44781,7 +44781,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44800,7 +44800,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44819,7 +44819,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44838,7 +44838,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44857,7 +44857,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44876,7 +44876,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44895,7 +44895,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44914,7 +44914,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44933,7 +44933,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44952,7 +44952,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44971,7 +44971,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -44990,7 +44990,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45009,7 +45009,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45028,7 +45028,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45047,7 +45047,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45066,7 +45066,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45085,7 +45085,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45104,7 +45104,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45123,7 +45123,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45142,7 +45142,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45161,7 +45161,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45180,7 +45180,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45199,7 +45199,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45218,7 +45218,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45237,7 +45237,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45256,7 +45256,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45275,7 +45275,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45294,7 +45294,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45313,7 +45313,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45332,7 +45332,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45351,7 +45351,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45370,7 +45370,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45389,7 +45389,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45408,7 +45408,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45427,7 +45427,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45446,7 +45446,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45465,7 +45465,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45484,7 +45484,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45503,7 +45503,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45522,7 +45522,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45541,7 +45541,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45560,7 +45560,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45579,7 +45579,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45598,7 +45598,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45617,7 +45617,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45636,7 +45636,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45655,7 +45655,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45674,7 +45674,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45693,7 +45693,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45712,7 +45712,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45731,7 +45731,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45750,7 +45750,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45769,7 +45769,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45788,7 +45788,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45807,7 +45807,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45826,7 +45826,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45845,7 +45845,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45864,7 +45864,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45883,7 +45883,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45902,7 +45902,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45921,7 +45921,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45940,7 +45940,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45959,7 +45959,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45978,7 +45978,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -45997,7 +45997,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46016,7 +46016,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46035,7 +46035,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46054,7 +46054,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46073,7 +46073,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46092,7 +46092,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46111,7 +46111,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46130,7 +46130,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46149,7 +46149,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46168,7 +46168,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46187,7 +46187,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46206,7 +46206,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46225,7 +46225,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46244,7 +46244,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46263,7 +46263,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46282,7 +46282,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46301,7 +46301,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46320,7 +46320,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46339,7 +46339,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46358,7 +46358,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46377,7 +46377,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46396,7 +46396,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46415,7 +46415,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46434,7 +46434,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46453,7 +46453,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46472,7 +46472,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46491,7 +46491,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46510,7 +46510,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46529,7 +46529,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46548,7 +46548,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46567,7 +46567,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46586,7 +46586,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46605,7 +46605,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46624,7 +46624,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46643,7 +46643,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46662,7 +46662,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46681,7 +46681,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46700,7 +46700,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46719,7 +46719,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46738,7 +46738,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46757,7 +46757,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46776,7 +46776,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46795,7 +46795,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46814,7 +46814,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46833,7 +46833,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46852,7 +46852,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46871,7 +46871,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46890,7 +46890,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46909,7 +46909,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46928,7 +46928,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46947,7 +46947,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46966,7 +46966,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -46985,7 +46985,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47004,7 +47004,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47023,7 +47023,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47042,7 +47042,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47061,7 +47061,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47080,7 +47080,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47099,7 +47099,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47118,7 +47118,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47137,7 +47137,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47156,7 +47156,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47175,7 +47175,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47194,7 +47194,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47213,7 +47213,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47232,7 +47232,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47251,7 +47251,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47270,7 +47270,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47289,7 +47289,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47308,7 +47308,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47327,7 +47327,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47346,7 +47346,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47365,7 +47365,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47384,7 +47384,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47403,7 +47403,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47422,7 +47422,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47441,7 +47441,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47460,7 +47460,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47479,7 +47479,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47498,7 +47498,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47517,7 +47517,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47536,7 +47536,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47555,7 +47555,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47574,7 +47574,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47593,7 +47593,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47612,7 +47612,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47631,7 +47631,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47650,7 +47650,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47669,7 +47669,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47688,7 +47688,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47707,7 +47707,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47726,7 +47726,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47745,7 +47745,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47764,7 +47764,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47783,7 +47783,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47802,7 +47802,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47821,7 +47821,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47840,7 +47840,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47859,7 +47859,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47878,7 +47878,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47897,7 +47897,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47916,7 +47916,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47935,7 +47935,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47954,7 +47954,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47973,7 +47973,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -47992,7 +47992,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48011,7 +48011,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48030,7 +48030,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48049,7 +48049,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48068,7 +48068,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48087,7 +48087,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48106,7 +48106,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48125,7 +48125,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48144,7 +48144,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48163,7 +48163,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48182,7 +48182,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48201,7 +48201,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48220,7 +48220,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48239,7 +48239,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48258,7 +48258,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48277,7 +48277,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48296,7 +48296,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48315,7 +48315,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48334,7 +48334,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48353,7 +48353,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48372,7 +48372,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48391,7 +48391,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48410,7 +48410,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48429,7 +48429,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48448,7 +48448,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48467,7 +48467,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48486,7 +48486,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48505,7 +48505,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48524,7 +48524,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48543,7 +48543,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48562,7 +48562,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48581,7 +48581,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48600,7 +48600,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48619,7 +48619,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48638,7 +48638,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48657,7 +48657,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48676,7 +48676,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48695,7 +48695,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48714,7 +48714,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48733,7 +48733,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48752,7 +48752,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48771,7 +48771,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48790,7 +48790,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48809,7 +48809,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48828,7 +48828,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48847,7 +48847,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48866,7 +48866,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48885,7 +48885,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48904,7 +48904,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48923,7 +48923,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48942,7 +48942,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48961,7 +48961,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48980,7 +48980,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -48999,7 +48999,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49018,7 +49018,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49037,7 +49037,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49056,7 +49056,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49075,7 +49075,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49094,7 +49094,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49113,7 +49113,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49132,7 +49132,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49151,7 +49151,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49170,7 +49170,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49189,7 +49189,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49208,7 +49208,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49227,7 +49227,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49246,7 +49246,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49265,7 +49265,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49284,7 +49284,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49303,7 +49303,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49322,7 +49322,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49341,7 +49341,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49360,7 +49360,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49379,7 +49379,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49398,7 +49398,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49417,7 +49417,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49436,7 +49436,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49455,7 +49455,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49474,7 +49474,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49493,7 +49493,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49512,7 +49512,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49531,7 +49531,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49550,7 +49550,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49569,7 +49569,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49588,7 +49588,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49607,7 +49607,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49626,7 +49626,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49645,7 +49645,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49664,7 +49664,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49683,7 +49683,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49702,7 +49702,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49721,7 +49721,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49740,7 +49740,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49759,7 +49759,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49778,7 +49778,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49797,7 +49797,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49816,7 +49816,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49835,7 +49835,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49854,7 +49854,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49873,7 +49873,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49892,7 +49892,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49911,7 +49911,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49930,7 +49930,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49949,7 +49949,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49968,7 +49968,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -49987,7 +49987,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50006,7 +50006,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50025,7 +50025,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50044,7 +50044,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50063,7 +50063,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50082,7 +50082,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50101,7 +50101,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50120,7 +50120,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50139,7 +50139,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50158,7 +50158,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50177,7 +50177,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50196,7 +50196,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50215,7 +50215,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50234,7 +50234,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50253,7 +50253,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50272,7 +50272,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50291,7 +50291,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50310,7 +50310,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50329,7 +50329,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50348,7 +50348,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50367,7 +50367,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50386,7 +50386,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50405,7 +50405,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50424,7 +50424,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50443,7 +50443,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50462,7 +50462,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50481,7 +50481,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50500,7 +50500,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50519,7 +50519,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50538,7 +50538,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50557,7 +50557,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50576,7 +50576,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50595,7 +50595,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50614,7 +50614,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50633,7 +50633,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50652,7 +50652,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50671,7 +50671,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50690,7 +50690,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50709,7 +50709,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50728,7 +50728,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50747,7 +50747,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50766,7 +50766,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50785,7 +50785,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50804,7 +50804,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50823,7 +50823,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50842,7 +50842,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50861,7 +50861,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50880,7 +50880,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50899,7 +50899,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50918,7 +50918,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50937,7 +50937,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50956,7 +50956,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50975,7 +50975,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -50994,7 +50994,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51013,7 +51013,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51032,7 +51032,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51051,7 +51051,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51070,7 +51070,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51089,7 +51089,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51108,7 +51108,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51127,7 +51127,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51146,7 +51146,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51165,7 +51165,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51184,7 +51184,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51203,7 +51203,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51222,7 +51222,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51241,7 +51241,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51260,7 +51260,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51279,7 +51279,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51298,7 +51298,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51317,7 +51317,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51336,7 +51336,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51355,7 +51355,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51374,7 +51374,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51393,7 +51393,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51412,7 +51412,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51431,7 +51431,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51450,7 +51450,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51469,7 +51469,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51488,7 +51488,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51507,7 +51507,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51526,7 +51526,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51545,7 +51545,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51564,7 +51564,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51583,7 +51583,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51602,7 +51602,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51621,7 +51621,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51640,7 +51640,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51659,7 +51659,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51678,7 +51678,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51697,7 +51697,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51716,7 +51716,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51735,7 +51735,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51754,7 +51754,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51773,7 +51773,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51792,7 +51792,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51811,7 +51811,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51830,7 +51830,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51849,7 +51849,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51868,7 +51868,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51887,7 +51887,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51906,7 +51906,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51925,7 +51925,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51944,7 +51944,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51963,7 +51963,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -51982,7 +51982,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52001,7 +52001,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52020,7 +52020,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52039,7 +52039,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52058,7 +52058,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52077,7 +52077,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52096,7 +52096,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52115,7 +52115,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52134,7 +52134,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52153,7 +52153,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52172,7 +52172,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52191,7 +52191,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52210,7 +52210,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52229,7 +52229,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52248,7 +52248,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52267,7 +52267,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52286,7 +52286,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52305,7 +52305,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52324,7 +52324,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52343,7 +52343,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52362,7 +52362,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52381,7 +52381,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52400,7 +52400,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52419,7 +52419,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52438,7 +52438,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52457,7 +52457,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52476,7 +52476,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52495,7 +52495,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52514,7 +52514,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52533,7 +52533,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52552,7 +52552,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52571,7 +52571,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52590,7 +52590,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52609,7 +52609,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52628,7 +52628,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52647,7 +52647,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52666,7 +52666,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52685,7 +52685,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52704,7 +52704,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52723,7 +52723,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52742,7 +52742,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52761,7 +52761,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52780,7 +52780,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52799,7 +52799,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52818,7 +52818,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52837,7 +52837,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52856,7 +52856,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52875,7 +52875,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52894,7 +52894,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52913,7 +52913,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52932,7 +52932,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52951,7 +52951,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52970,7 +52970,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -52989,7 +52989,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53008,7 +53008,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53027,7 +53027,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53046,7 +53046,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53065,7 +53065,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53084,7 +53084,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53103,7 +53103,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53122,7 +53122,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53141,7 +53141,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53160,7 +53160,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53179,7 +53179,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53198,7 +53198,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53217,7 +53217,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53236,7 +53236,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53255,7 +53255,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53274,7 +53274,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53293,7 +53293,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53312,7 +53312,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53331,7 +53331,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53350,7 +53350,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53369,7 +53369,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53388,7 +53388,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53407,7 +53407,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53426,7 +53426,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53445,7 +53445,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53464,7 +53464,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53483,7 +53483,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53502,7 +53502,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53521,7 +53521,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53540,7 +53540,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53559,7 +53559,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53578,7 +53578,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53597,7 +53597,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53616,7 +53616,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53635,7 +53635,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53654,7 +53654,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53673,7 +53673,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53692,7 +53692,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53711,7 +53711,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53730,7 +53730,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53749,7 +53749,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53768,7 +53768,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53787,7 +53787,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53806,7 +53806,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53825,7 +53825,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53844,7 +53844,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53863,7 +53863,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53882,7 +53882,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53901,7 +53901,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53920,7 +53920,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53939,7 +53939,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53958,7 +53958,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53977,7 +53977,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -53996,7 +53996,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54015,7 +54015,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54034,7 +54034,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54053,7 +54053,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54072,7 +54072,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54091,7 +54091,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54110,7 +54110,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54129,7 +54129,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54148,7 +54148,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54167,7 +54167,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54186,7 +54186,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54205,7 +54205,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54224,7 +54224,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54243,7 +54243,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54262,7 +54262,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54281,7 +54281,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54300,7 +54300,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54319,7 +54319,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54338,7 +54338,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54357,7 +54357,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54376,7 +54376,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54395,7 +54395,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54414,7 +54414,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54433,7 +54433,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54452,7 +54452,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54471,7 +54471,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54490,7 +54490,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54509,7 +54509,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54528,7 +54528,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54547,7 +54547,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54566,7 +54566,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54585,7 +54585,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54604,7 +54604,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54623,7 +54623,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54642,7 +54642,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54661,7 +54661,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54680,7 +54680,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54699,7 +54699,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54718,7 +54718,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54737,7 +54737,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54756,7 +54756,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54775,7 +54775,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54794,7 +54794,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54813,7 +54813,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54832,7 +54832,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "api_fuzzer_one_entry", "platforms": [ "linux" @@ -54851,7 +54851,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -54870,7 +54870,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -54889,7 +54889,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -54908,7 +54908,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -54927,7 +54927,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -54946,7 +54946,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -54965,7 +54965,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -54984,7 +54984,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55003,7 +55003,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55022,7 +55022,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55041,7 +55041,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55060,7 +55060,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55079,7 +55079,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55098,7 +55098,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55117,7 +55117,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55136,7 +55136,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55155,7 +55155,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55174,7 +55174,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55193,7 +55193,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55212,7 +55212,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55231,7 +55231,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55250,7 +55250,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55269,7 +55269,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55288,7 +55288,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55307,7 +55307,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55326,7 +55326,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55345,7 +55345,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55364,7 +55364,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55383,7 +55383,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55402,7 +55402,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55421,7 +55421,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55440,7 +55440,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55459,7 +55459,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55478,7 +55478,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55497,7 +55497,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55516,7 +55516,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55535,7 +55535,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55554,7 +55554,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55573,7 +55573,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55592,7 +55592,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55611,7 +55611,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55630,7 +55630,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55649,7 +55649,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55668,7 +55668,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55687,7 +55687,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55706,7 +55706,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55725,7 +55725,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55744,7 +55744,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55763,7 +55763,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55782,7 +55782,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55801,7 +55801,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55820,7 +55820,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55839,7 +55839,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55858,7 +55858,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55877,7 +55877,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55896,7 +55896,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55915,7 +55915,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55934,7 +55934,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55953,7 +55953,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55972,7 +55972,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -55991,7 +55991,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56010,7 +56010,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56029,7 +56029,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56048,7 +56048,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56067,7 +56067,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56086,7 +56086,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56105,7 +56105,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56124,7 +56124,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56143,7 +56143,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56162,7 +56162,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56181,7 +56181,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56200,7 +56200,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56219,7 +56219,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56238,7 +56238,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56257,7 +56257,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56276,7 +56276,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56295,7 +56295,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56314,7 +56314,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56333,7 +56333,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56352,7 +56352,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56371,7 +56371,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56390,7 +56390,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56409,7 +56409,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56428,7 +56428,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56447,7 +56447,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56466,7 +56466,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56485,7 +56485,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56504,7 +56504,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56523,7 +56523,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56542,7 +56542,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56561,7 +56561,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56580,7 +56580,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56599,7 +56599,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56618,7 +56618,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56637,7 +56637,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56656,7 +56656,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56675,7 +56675,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56694,7 +56694,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56713,7 +56713,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56732,7 +56732,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56751,7 +56751,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56770,7 +56770,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56789,7 +56789,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56808,7 +56808,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56827,7 +56827,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56846,7 +56846,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56865,7 +56865,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56884,7 +56884,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56903,7 +56903,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56922,7 +56922,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56941,7 +56941,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56960,7 +56960,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56979,7 +56979,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -56998,7 +56998,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57017,7 +57017,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57036,7 +57036,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57055,7 +57055,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57074,7 +57074,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57093,7 +57093,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57112,7 +57112,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57131,7 +57131,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57150,7 +57150,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57169,7 +57169,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57188,7 +57188,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57207,7 +57207,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57226,7 +57226,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57245,7 +57245,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57264,7 +57264,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57283,7 +57283,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57302,7 +57302,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57321,7 +57321,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57340,7 +57340,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57359,7 +57359,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57378,7 +57378,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57397,7 +57397,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57416,7 +57416,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57435,7 +57435,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57454,7 +57454,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57473,7 +57473,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57492,7 +57492,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57511,7 +57511,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57530,7 +57530,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57549,7 +57549,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57568,7 +57568,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57587,7 +57587,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57606,7 +57606,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57625,7 +57625,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57644,7 +57644,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57663,7 +57663,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57682,7 +57682,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57701,7 +57701,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57720,7 +57720,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57739,7 +57739,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57758,7 +57758,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57777,7 +57777,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57796,7 +57796,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57815,7 +57815,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57834,7 +57834,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57853,7 +57853,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57872,7 +57872,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57891,7 +57891,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57910,7 +57910,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57929,7 +57929,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57948,7 +57948,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57967,7 +57967,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -57986,7 +57986,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58005,7 +58005,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58024,7 +58024,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58043,7 +58043,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58062,7 +58062,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58081,7 +58081,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58100,7 +58100,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58119,7 +58119,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58138,7 +58138,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58157,7 +58157,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58176,7 +58176,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58195,7 +58195,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58214,7 +58214,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58233,7 +58233,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58252,7 +58252,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58271,7 +58271,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58290,7 +58290,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58309,7 +58309,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58328,7 +58328,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58347,7 +58347,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58366,7 +58366,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58385,7 +58385,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58404,7 +58404,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58423,7 +58423,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58442,7 +58442,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58461,7 +58461,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58480,7 +58480,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58499,7 +58499,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58518,7 +58518,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58537,7 +58537,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58556,7 +58556,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58575,7 +58575,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58594,7 +58594,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58613,7 +58613,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58632,7 +58632,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58651,7 +58651,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58670,7 +58670,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58689,7 +58689,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58708,7 +58708,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58727,7 +58727,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58746,7 +58746,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58765,7 +58765,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58784,7 +58784,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58803,7 +58803,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58822,7 +58822,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58841,7 +58841,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58860,7 +58860,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58879,7 +58879,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58898,7 +58898,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58917,7 +58917,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58936,7 +58936,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58955,7 +58955,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58974,7 +58974,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -58993,7 +58993,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59012,7 +59012,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59031,7 +59031,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59050,7 +59050,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59069,7 +59069,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59088,7 +59088,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59107,7 +59107,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59126,7 +59126,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59145,7 +59145,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59164,7 +59164,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59183,7 +59183,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59202,7 +59202,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59221,7 +59221,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59240,7 +59240,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59259,7 +59259,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59278,7 +59278,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59297,7 +59297,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59316,7 +59316,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59335,7 +59335,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59354,7 +59354,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59373,7 +59373,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59392,7 +59392,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59411,7 +59411,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59430,7 +59430,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59449,7 +59449,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59468,7 +59468,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59487,7 +59487,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59506,7 +59506,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59525,7 +59525,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59544,7 +59544,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59563,7 +59563,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59582,7 +59582,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59601,7 +59601,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59620,7 +59620,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59639,7 +59639,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59658,7 +59658,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59677,7 +59677,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59696,7 +59696,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59715,7 +59715,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59734,7 +59734,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59753,7 +59753,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59772,7 +59772,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59791,7 +59791,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59810,7 +59810,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59829,7 +59829,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59848,7 +59848,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59867,7 +59867,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59886,7 +59886,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59905,7 +59905,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59924,7 +59924,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59943,7 +59943,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59962,7 +59962,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -59981,7 +59981,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60000,7 +60000,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60019,7 +60019,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60038,7 +60038,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60057,7 +60057,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60076,7 +60076,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60095,7 +60095,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60114,7 +60114,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60133,7 +60133,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60152,7 +60152,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60171,7 +60171,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60190,7 +60190,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60209,7 +60209,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60228,7 +60228,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60247,7 +60247,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60266,7 +60266,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60285,7 +60285,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60304,7 +60304,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60323,7 +60323,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60342,7 +60342,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60361,7 +60361,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60380,7 +60380,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60399,7 +60399,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60418,7 +60418,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60437,7 +60437,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60456,7 +60456,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60475,7 +60475,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60494,7 +60494,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60513,7 +60513,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60532,7 +60532,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60551,7 +60551,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60570,7 +60570,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60589,7 +60589,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60608,7 +60608,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60627,7 +60627,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60646,7 +60646,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60665,7 +60665,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60684,7 +60684,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60703,7 +60703,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60722,7 +60722,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60741,7 +60741,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60760,7 +60760,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60779,7 +60779,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60798,7 +60798,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60817,7 +60817,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60836,7 +60836,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60855,7 +60855,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60874,7 +60874,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60893,7 +60893,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60912,7 +60912,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60931,7 +60931,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60950,7 +60950,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60969,7 +60969,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -60988,7 +60988,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61007,7 +61007,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61026,7 +61026,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61045,7 +61045,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61064,7 +61064,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61083,7 +61083,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61102,7 +61102,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61121,7 +61121,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61140,7 +61140,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61159,7 +61159,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61178,7 +61178,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61197,7 +61197,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61216,7 +61216,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61235,7 +61235,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61254,7 +61254,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61273,7 +61273,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61292,7 +61292,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61311,7 +61311,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61330,7 +61330,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61349,7 +61349,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61368,7 +61368,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61387,7 +61387,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61406,7 +61406,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61425,7 +61425,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61444,7 +61444,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61463,7 +61463,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61482,7 +61482,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61501,7 +61501,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61520,7 +61520,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61539,7 +61539,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61558,7 +61558,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61577,7 +61577,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61596,7 +61596,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61615,7 +61615,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61634,7 +61634,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61653,7 +61653,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61672,7 +61672,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61691,7 +61691,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61710,7 +61710,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61729,7 +61729,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61748,7 +61748,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61767,7 +61767,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61786,7 +61786,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61805,7 +61805,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61824,7 +61824,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61843,7 +61843,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61862,7 +61862,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61881,7 +61881,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61900,7 +61900,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61919,7 +61919,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61938,7 +61938,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61957,7 +61957,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61976,7 +61976,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -61995,7 +61995,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62014,7 +62014,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62033,7 +62033,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62052,7 +62052,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62071,7 +62071,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62090,7 +62090,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62109,7 +62109,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62128,7 +62128,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62147,7 +62147,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62166,7 +62166,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62185,7 +62185,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62204,7 +62204,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62223,7 +62223,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62242,7 +62242,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62261,7 +62261,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62280,7 +62280,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62299,7 +62299,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62318,7 +62318,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62337,7 +62337,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62356,7 +62356,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62375,7 +62375,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62394,7 +62394,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62413,7 +62413,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62432,7 +62432,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62451,7 +62451,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62470,7 +62470,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62489,7 +62489,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62508,7 +62508,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62527,7 +62527,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62546,7 +62546,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62565,7 +62565,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62584,7 +62584,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62603,7 +62603,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62622,7 +62622,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62641,7 +62641,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62660,7 +62660,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62679,7 +62679,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62698,7 +62698,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62717,7 +62717,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62736,7 +62736,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62755,7 +62755,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62774,7 +62774,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62793,7 +62793,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62812,7 +62812,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62831,7 +62831,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62850,7 +62850,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62869,7 +62869,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62888,7 +62888,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62907,7 +62907,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62926,7 +62926,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62945,7 +62945,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62964,7 +62964,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -62983,7 +62983,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63002,7 +63002,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63021,7 +63021,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63040,7 +63040,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63059,7 +63059,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63078,7 +63078,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63097,7 +63097,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63116,7 +63116,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63135,7 +63135,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63154,7 +63154,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63173,7 +63173,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63192,7 +63192,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63211,7 +63211,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63230,7 +63230,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63249,7 +63249,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63268,7 +63268,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63287,7 +63287,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63306,7 +63306,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63325,7 +63325,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63344,7 +63344,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63363,7 +63363,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63382,7 +63382,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63401,7 +63401,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63420,7 +63420,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63439,7 +63439,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63458,7 +63458,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63477,7 +63477,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63496,7 +63496,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63515,7 +63515,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63534,7 +63534,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63553,7 +63553,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63572,7 +63572,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63591,7 +63591,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63610,7 +63610,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63629,7 +63629,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63648,7 +63648,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63667,7 +63667,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63686,7 +63686,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63705,7 +63705,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63724,7 +63724,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63743,7 +63743,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63762,7 +63762,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63781,7 +63781,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63800,7 +63800,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63819,7 +63819,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63838,7 +63838,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63857,7 +63857,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63876,7 +63876,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63895,7 +63895,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63914,7 +63914,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63933,7 +63933,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63952,7 +63952,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63971,7 +63971,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -63990,7 +63990,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -64009,7 +64009,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -64028,7 +64028,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -64047,7 +64047,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -64066,7 +64066,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "client_fuzzer_one_entry", "platforms": [ "linux" @@ -64085,7 +64085,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64104,7 +64104,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64123,7 +64123,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64142,7 +64142,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64161,7 +64161,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64180,7 +64180,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64199,7 +64199,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64218,7 +64218,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64237,7 +64237,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64256,7 +64256,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64275,7 +64275,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64294,7 +64294,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64313,7 +64313,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64332,7 +64332,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64351,7 +64351,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64370,7 +64370,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64389,7 +64389,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64408,7 +64408,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64427,7 +64427,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64446,7 +64446,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64465,7 +64465,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64484,7 +64484,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64503,7 +64503,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64522,7 +64522,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64541,7 +64541,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64560,7 +64560,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64579,7 +64579,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64598,7 +64598,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64617,7 +64617,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64636,7 +64636,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64655,7 +64655,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64674,7 +64674,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64693,7 +64693,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64712,7 +64712,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64731,7 +64731,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64750,7 +64750,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64769,7 +64769,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64788,7 +64788,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64807,7 +64807,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64826,7 +64826,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64845,7 +64845,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64864,7 +64864,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64883,7 +64883,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64902,7 +64902,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64921,7 +64921,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64940,7 +64940,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64959,7 +64959,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64978,7 +64978,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -64997,7 +64997,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65016,7 +65016,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65035,7 +65035,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65054,7 +65054,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65073,7 +65073,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65092,7 +65092,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65111,7 +65111,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65130,7 +65130,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65149,7 +65149,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65168,7 +65168,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65187,7 +65187,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65206,7 +65206,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65225,7 +65225,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65244,7 +65244,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65263,7 +65263,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65282,7 +65282,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65301,7 +65301,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65320,7 +65320,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65339,7 +65339,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65358,7 +65358,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65377,7 +65377,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65396,7 +65396,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65415,7 +65415,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65434,7 +65434,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65453,7 +65453,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65472,7 +65472,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65491,7 +65491,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65510,7 +65510,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65529,7 +65529,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65548,7 +65548,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65567,7 +65567,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65586,7 +65586,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65605,7 +65605,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65624,7 +65624,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65643,7 +65643,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65662,7 +65662,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65681,7 +65681,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65700,7 +65700,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65719,7 +65719,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65738,7 +65738,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65757,7 +65757,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65776,7 +65776,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65795,7 +65795,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65814,7 +65814,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65833,7 +65833,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65852,7 +65852,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65871,7 +65871,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65890,7 +65890,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65909,7 +65909,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65928,7 +65928,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65947,7 +65947,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65966,7 +65966,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -65985,7 +65985,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66004,7 +66004,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66023,7 +66023,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66042,7 +66042,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66061,7 +66061,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66080,7 +66080,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66099,7 +66099,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66118,7 +66118,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66137,7 +66137,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66156,7 +66156,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66175,7 +66175,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66194,7 +66194,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66213,7 +66213,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66232,7 +66232,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66251,7 +66251,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66270,7 +66270,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66289,7 +66289,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66308,7 +66308,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66327,7 +66327,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66346,7 +66346,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66365,7 +66365,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66384,7 +66384,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66403,7 +66403,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66422,7 +66422,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66441,7 +66441,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66460,7 +66460,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66479,7 +66479,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66498,7 +66498,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66517,7 +66517,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66536,7 +66536,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66555,7 +66555,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66574,7 +66574,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66593,7 +66593,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66612,7 +66612,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66631,7 +66631,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66650,7 +66650,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66669,7 +66669,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66688,7 +66688,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66707,7 +66707,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66726,7 +66726,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66745,7 +66745,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66764,7 +66764,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66783,7 +66783,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66802,7 +66802,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66821,7 +66821,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66840,7 +66840,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66859,7 +66859,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66878,7 +66878,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66897,7 +66897,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66916,7 +66916,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66935,7 +66935,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66954,7 +66954,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66973,7 +66973,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -66992,7 +66992,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67011,7 +67011,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67030,7 +67030,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67049,7 +67049,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67068,7 +67068,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67087,7 +67087,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67106,7 +67106,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67125,7 +67125,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67144,7 +67144,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67163,7 +67163,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67182,7 +67182,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67201,7 +67201,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67220,7 +67220,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67239,7 +67239,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67258,7 +67258,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67277,7 +67277,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67296,7 +67296,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67315,7 +67315,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67334,7 +67334,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67353,7 +67353,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67372,7 +67372,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67391,7 +67391,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67410,7 +67410,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67429,7 +67429,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67448,7 +67448,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67467,7 +67467,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67486,7 +67486,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67505,7 +67505,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67524,7 +67524,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67543,7 +67543,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67562,7 +67562,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67581,7 +67581,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67600,7 +67600,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67619,7 +67619,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67638,7 +67638,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67657,7 +67657,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67676,7 +67676,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67695,7 +67695,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67714,7 +67714,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67733,7 +67733,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67752,7 +67752,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67771,7 +67771,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67790,7 +67790,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67809,7 +67809,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67828,7 +67828,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67847,7 +67847,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67866,7 +67866,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67885,7 +67885,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67904,7 +67904,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67923,7 +67923,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67942,7 +67942,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67961,7 +67961,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67980,7 +67980,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -67999,7 +67999,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68018,7 +68018,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68037,7 +68037,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68056,7 +68056,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68075,7 +68075,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68094,7 +68094,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68113,7 +68113,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68132,7 +68132,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68151,7 +68151,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68170,7 +68170,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68189,7 +68189,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68208,7 +68208,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68227,7 +68227,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68246,7 +68246,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68265,7 +68265,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68284,7 +68284,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68303,7 +68303,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68322,7 +68322,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68341,7 +68341,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68360,7 +68360,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68379,7 +68379,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68398,7 +68398,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68417,7 +68417,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68436,7 +68436,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68455,7 +68455,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68474,7 +68474,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68493,7 +68493,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68512,7 +68512,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68531,7 +68531,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68550,7 +68550,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68569,7 +68569,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68588,7 +68588,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68607,7 +68607,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68626,7 +68626,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68645,7 +68645,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68664,7 +68664,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68683,7 +68683,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68702,7 +68702,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68721,7 +68721,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68740,7 +68740,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68759,7 +68759,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68778,7 +68778,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68797,7 +68797,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68816,7 +68816,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68835,7 +68835,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68854,7 +68854,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68873,7 +68873,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68892,7 +68892,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68911,7 +68911,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68930,7 +68930,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68949,7 +68949,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68968,7 +68968,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -68987,7 +68987,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69006,7 +69006,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69025,7 +69025,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69044,7 +69044,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69063,7 +69063,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69082,7 +69082,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69101,7 +69101,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69120,7 +69120,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69139,7 +69139,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69158,7 +69158,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69177,7 +69177,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69196,7 +69196,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69215,7 +69215,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69234,7 +69234,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69253,7 +69253,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69272,7 +69272,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69291,7 +69291,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69310,7 +69310,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69329,7 +69329,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69348,7 +69348,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69367,7 +69367,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69386,7 +69386,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69405,7 +69405,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69424,7 +69424,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69443,7 +69443,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69462,7 +69462,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69481,7 +69481,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69500,7 +69500,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69519,7 +69519,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69538,7 +69538,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69557,7 +69557,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69576,7 +69576,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69595,7 +69595,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69614,7 +69614,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69633,7 +69633,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69652,7 +69652,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69671,7 +69671,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69690,7 +69690,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69709,7 +69709,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69728,7 +69728,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69747,7 +69747,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69766,7 +69766,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69785,7 +69785,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69804,7 +69804,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69823,7 +69823,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69842,7 +69842,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69861,7 +69861,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69880,7 +69880,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69899,7 +69899,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69918,7 +69918,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69937,7 +69937,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69956,7 +69956,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69975,7 +69975,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -69994,7 +69994,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70013,7 +70013,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70032,7 +70032,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70051,7 +70051,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70070,7 +70070,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70089,7 +70089,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70108,7 +70108,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70127,7 +70127,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70146,7 +70146,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70165,7 +70165,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70184,7 +70184,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70203,7 +70203,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70222,7 +70222,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70241,7 +70241,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70260,7 +70260,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70279,7 +70279,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70298,7 +70298,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "hpack_parser_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70317,7 +70317,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70336,7 +70336,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70355,7 +70355,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70374,7 +70374,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70393,7 +70393,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70412,7 +70412,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70431,7 +70431,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70450,7 +70450,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70469,7 +70469,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70488,7 +70488,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70507,7 +70507,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70526,7 +70526,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70545,7 +70545,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70564,7 +70564,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70583,7 +70583,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70602,7 +70602,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70621,7 +70621,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70640,7 +70640,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70659,7 +70659,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70678,7 +70678,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70697,7 +70697,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70716,7 +70716,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70735,7 +70735,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70754,7 +70754,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70773,7 +70773,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70792,7 +70792,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70811,7 +70811,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70830,7 +70830,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70849,7 +70849,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70868,7 +70868,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70887,7 +70887,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70906,7 +70906,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70925,7 +70925,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70944,7 +70944,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70963,7 +70963,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -70982,7 +70982,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71001,7 +71001,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71020,7 +71020,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71039,7 +71039,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71058,7 +71058,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71077,7 +71077,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71096,7 +71096,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71115,7 +71115,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71134,7 +71134,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71153,7 +71153,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71172,7 +71172,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71191,7 +71191,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71210,7 +71210,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71229,7 +71229,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71248,7 +71248,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71267,7 +71267,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71286,7 +71286,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71305,7 +71305,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71324,7 +71324,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71343,7 +71343,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71362,7 +71362,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71381,7 +71381,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71400,7 +71400,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71419,7 +71419,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71438,7 +71438,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71457,7 +71457,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71476,7 +71476,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71495,7 +71495,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71514,7 +71514,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71533,7 +71533,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71552,7 +71552,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71571,7 +71571,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71590,7 +71590,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71609,7 +71609,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71628,7 +71628,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71647,7 +71647,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71666,7 +71666,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71685,7 +71685,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71704,7 +71704,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71723,7 +71723,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71742,7 +71742,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71761,7 +71761,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71780,7 +71780,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71799,7 +71799,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71818,7 +71818,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71837,7 +71837,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71856,7 +71856,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71875,7 +71875,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71894,7 +71894,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71913,7 +71913,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71932,7 +71932,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71951,7 +71951,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71970,7 +71970,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -71989,7 +71989,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72008,7 +72008,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72027,7 +72027,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72046,7 +72046,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72065,7 +72065,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72084,7 +72084,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72103,7 +72103,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72122,7 +72122,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72141,7 +72141,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72160,7 +72160,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72179,7 +72179,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72198,7 +72198,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72217,7 +72217,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72236,7 +72236,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72255,7 +72255,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72274,7 +72274,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72293,7 +72293,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72312,7 +72312,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72331,7 +72331,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72350,7 +72350,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72369,7 +72369,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72388,7 +72388,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72407,7 +72407,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72426,7 +72426,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72445,7 +72445,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72464,7 +72464,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72483,7 +72483,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72502,7 +72502,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72521,7 +72521,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72540,7 +72540,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72559,7 +72559,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72578,7 +72578,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72597,7 +72597,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72616,7 +72616,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72635,7 +72635,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72654,7 +72654,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72673,7 +72673,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72692,7 +72692,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72711,7 +72711,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72730,7 +72730,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72749,7 +72749,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72768,7 +72768,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72787,7 +72787,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72806,7 +72806,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72825,7 +72825,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72844,7 +72844,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72863,7 +72863,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72882,7 +72882,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72901,7 +72901,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72920,7 +72920,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72939,7 +72939,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72958,7 +72958,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72977,7 +72977,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -72996,7 +72996,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73015,7 +73015,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73034,7 +73034,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73053,7 +73053,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73072,7 +73072,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73091,7 +73091,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73110,7 +73110,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73129,7 +73129,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73148,7 +73148,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73167,7 +73167,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73186,7 +73186,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73205,7 +73205,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73224,7 +73224,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73243,7 +73243,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73262,7 +73262,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73281,7 +73281,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73300,7 +73300,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73319,7 +73319,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73338,7 +73338,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73357,7 +73357,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73376,7 +73376,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73395,7 +73395,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73414,7 +73414,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73433,7 +73433,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73452,7 +73452,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73471,7 +73471,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73490,7 +73490,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73509,7 +73509,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73528,7 +73528,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73547,7 +73547,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73566,7 +73566,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73585,7 +73585,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73604,7 +73604,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73623,7 +73623,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73642,7 +73642,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73661,7 +73661,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73680,7 +73680,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73699,7 +73699,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73718,7 +73718,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73737,7 +73737,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73756,7 +73756,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73775,7 +73775,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73794,7 +73794,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73813,7 +73813,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73832,7 +73832,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73851,7 +73851,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73870,7 +73870,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73889,7 +73889,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73908,7 +73908,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73927,7 +73927,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73946,7 +73946,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73965,7 +73965,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -73984,7 +73984,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74003,7 +74003,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74022,7 +74022,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74041,7 +74041,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74060,7 +74060,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74079,7 +74079,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74098,7 +74098,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74117,7 +74117,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74136,7 +74136,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74155,7 +74155,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74174,7 +74174,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74193,7 +74193,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74212,7 +74212,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74231,7 +74231,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74250,7 +74250,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74269,7 +74269,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74288,7 +74288,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74307,7 +74307,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74326,7 +74326,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74345,7 +74345,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74364,7 +74364,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74383,7 +74383,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74402,7 +74402,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74421,7 +74421,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74440,7 +74440,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74459,7 +74459,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74478,7 +74478,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74497,7 +74497,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74516,7 +74516,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74535,7 +74535,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74554,7 +74554,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74573,7 +74573,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74592,7 +74592,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74611,7 +74611,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74630,7 +74630,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74649,7 +74649,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74668,7 +74668,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74687,7 +74687,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74706,7 +74706,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74725,7 +74725,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74744,7 +74744,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74763,7 +74763,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74782,7 +74782,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74801,7 +74801,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74820,7 +74820,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74839,7 +74839,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74858,7 +74858,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74877,7 +74877,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74896,7 +74896,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74915,7 +74915,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74934,7 +74934,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74953,7 +74953,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74972,7 +74972,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -74991,7 +74991,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75010,7 +75010,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75029,7 +75029,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75048,7 +75048,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75067,7 +75067,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75086,7 +75086,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75105,7 +75105,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75124,7 +75124,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75143,7 +75143,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75162,7 +75162,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75181,7 +75181,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75200,7 +75200,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75219,7 +75219,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75238,7 +75238,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75257,7 +75257,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75276,7 +75276,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75295,7 +75295,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75314,7 +75314,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75333,7 +75333,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75352,7 +75352,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75371,7 +75371,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75390,7 +75390,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75409,7 +75409,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75428,7 +75428,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75447,7 +75447,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75466,7 +75466,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75485,7 +75485,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75504,7 +75504,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75523,7 +75523,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75542,7 +75542,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75561,7 +75561,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75580,7 +75580,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75599,7 +75599,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75618,7 +75618,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75637,7 +75637,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75656,7 +75656,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75675,7 +75675,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75694,7 +75694,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75713,7 +75713,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75732,7 +75732,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75751,7 +75751,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75770,7 +75770,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75789,7 +75789,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75808,7 +75808,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75827,7 +75827,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75846,7 +75846,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75865,7 +75865,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75884,7 +75884,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75903,7 +75903,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75922,7 +75922,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75941,7 +75941,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75960,7 +75960,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75979,7 +75979,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -75998,7 +75998,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76017,7 +76017,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76036,7 +76036,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76055,7 +76055,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76074,7 +76074,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76093,7 +76093,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76112,7 +76112,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76131,7 +76131,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76150,7 +76150,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76169,7 +76169,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76188,7 +76188,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76207,7 +76207,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76226,7 +76226,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76245,7 +76245,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76264,7 +76264,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76283,7 +76283,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76302,7 +76302,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76321,7 +76321,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76340,7 +76340,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76359,7 +76359,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76378,7 +76378,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76397,7 +76397,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76416,7 +76416,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76435,7 +76435,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76454,7 +76454,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76473,7 +76473,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76492,7 +76492,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76511,7 +76511,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76530,7 +76530,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76549,7 +76549,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76568,7 +76568,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76587,7 +76587,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76606,7 +76606,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76625,7 +76625,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76644,7 +76644,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76663,7 +76663,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76682,7 +76682,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76701,7 +76701,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76720,7 +76720,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76739,7 +76739,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76758,7 +76758,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76777,7 +76777,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76796,7 +76796,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76815,7 +76815,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76834,7 +76834,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76853,7 +76853,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76872,7 +76872,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76891,7 +76891,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76910,7 +76910,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "json_fuzzer_test_one_entry", "platforms": [ "linux" @@ -76929,7 +76929,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -76948,7 +76948,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -76967,7 +76967,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -76986,7 +76986,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77005,7 +77005,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77024,7 +77024,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77043,7 +77043,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77062,7 +77062,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77081,7 +77081,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77100,7 +77100,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77119,7 +77119,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77138,7 +77138,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77157,7 +77157,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77176,7 +77176,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77195,7 +77195,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77214,7 +77214,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77233,7 +77233,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77252,7 +77252,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77271,7 +77271,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77290,7 +77290,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77309,7 +77309,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77328,7 +77328,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77347,7 +77347,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77366,7 +77366,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77385,7 +77385,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77404,7 +77404,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77423,7 +77423,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77442,7 +77442,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77461,7 +77461,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77480,7 +77480,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77499,7 +77499,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77518,7 +77518,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77537,7 +77537,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77556,7 +77556,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77575,7 +77575,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77594,7 +77594,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77613,7 +77613,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77632,7 +77632,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77651,7 +77651,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77670,7 +77670,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77689,7 +77689,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77708,7 +77708,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77727,7 +77727,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77746,7 +77746,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77765,7 +77765,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77784,7 +77784,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77803,7 +77803,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77822,7 +77822,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77841,7 +77841,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77860,7 +77860,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77879,7 +77879,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77898,7 +77898,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77917,7 +77917,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77936,7 +77936,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77955,7 +77955,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77974,7 +77974,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -77993,7 +77993,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -78012,7 +78012,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -78031,7 +78031,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -78050,7 +78050,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -78069,7 +78069,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -78088,7 +78088,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -78107,7 +78107,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_response_test_one_entry", "platforms": [ "linux" @@ -78126,7 +78126,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78145,7 +78145,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78164,7 +78164,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78183,7 +78183,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78202,7 +78202,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78221,7 +78221,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78240,7 +78240,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78259,7 +78259,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78278,7 +78278,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78297,7 +78297,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78316,7 +78316,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78335,7 +78335,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78354,7 +78354,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78373,7 +78373,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78392,7 +78392,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78411,7 +78411,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78430,7 +78430,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78449,7 +78449,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78468,7 +78468,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78487,7 +78487,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78506,7 +78506,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78525,7 +78525,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78544,7 +78544,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78563,7 +78563,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78582,7 +78582,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78601,7 +78601,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78620,7 +78620,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78639,7 +78639,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78658,7 +78658,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78677,7 +78677,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78696,7 +78696,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78715,7 +78715,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78734,7 +78734,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78753,7 +78753,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78772,7 +78772,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78791,7 +78791,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78810,7 +78810,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78829,7 +78829,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78848,7 +78848,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78867,7 +78867,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78886,7 +78886,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78905,7 +78905,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78924,7 +78924,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78943,7 +78943,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78962,7 +78962,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -78981,7 +78981,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79000,7 +79000,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79019,7 +79019,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79038,7 +79038,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79057,7 +79057,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79076,7 +79076,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79095,7 +79095,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79114,7 +79114,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79133,7 +79133,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79152,7 +79152,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79171,7 +79171,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79190,7 +79190,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79209,7 +79209,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79228,7 +79228,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79247,7 +79247,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79266,7 +79266,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79285,7 +79285,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79304,7 +79304,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79323,7 +79323,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79342,7 +79342,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79361,7 +79361,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79380,7 +79380,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79399,7 +79399,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79418,7 +79418,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79437,7 +79437,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79456,7 +79456,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79475,7 +79475,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79494,7 +79494,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79513,7 +79513,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79532,7 +79532,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79551,7 +79551,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79570,7 +79570,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79589,7 +79589,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79608,7 +79608,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79627,7 +79627,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79646,7 +79646,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79665,7 +79665,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79684,7 +79684,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79703,7 +79703,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79722,7 +79722,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79741,7 +79741,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79760,7 +79760,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79779,7 +79779,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79798,7 +79798,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79817,7 +79817,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79836,7 +79836,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79855,7 +79855,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79874,7 +79874,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79893,7 +79893,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79912,7 +79912,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79931,7 +79931,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79950,7 +79950,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79969,7 +79969,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -79988,7 +79988,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80007,7 +80007,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80026,7 +80026,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80045,7 +80045,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80064,7 +80064,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80083,7 +80083,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80102,7 +80102,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80121,7 +80121,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80140,7 +80140,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80159,7 +80159,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80178,7 +80178,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80197,7 +80197,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80216,7 +80216,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80235,7 +80235,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80254,7 +80254,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80273,7 +80273,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80292,7 +80292,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80311,7 +80311,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80330,7 +80330,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80349,7 +80349,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80368,7 +80368,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80387,7 +80387,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80406,7 +80406,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80425,7 +80425,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80444,7 +80444,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80463,7 +80463,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80482,7 +80482,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80501,7 +80501,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80520,7 +80520,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80539,7 +80539,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80558,7 +80558,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80577,7 +80577,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80596,7 +80596,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80615,7 +80615,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80634,7 +80634,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80653,7 +80653,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80672,7 +80672,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80691,7 +80691,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80710,7 +80710,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80729,7 +80729,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80748,7 +80748,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80767,7 +80767,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80786,7 +80786,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80805,7 +80805,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80824,7 +80824,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80843,7 +80843,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80862,7 +80862,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80881,7 +80881,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80900,7 +80900,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80919,7 +80919,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80938,7 +80938,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80957,7 +80957,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80976,7 +80976,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -80995,7 +80995,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81014,7 +81014,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81033,7 +81033,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81052,7 +81052,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81071,7 +81071,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81090,7 +81090,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81109,7 +81109,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81128,7 +81128,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81147,7 +81147,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81166,7 +81166,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81185,7 +81185,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81204,7 +81204,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81223,7 +81223,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81242,7 +81242,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81261,7 +81261,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81280,7 +81280,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81299,7 +81299,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81318,7 +81318,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81337,7 +81337,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81356,7 +81356,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81375,7 +81375,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81394,7 +81394,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81413,7 +81413,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81432,7 +81432,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81451,7 +81451,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81470,7 +81470,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81489,7 +81489,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81508,7 +81508,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81527,7 +81527,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81546,7 +81546,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81565,7 +81565,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81584,7 +81584,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81603,7 +81603,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81622,7 +81622,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81641,7 +81641,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81660,7 +81660,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81679,7 +81679,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81698,7 +81698,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81717,7 +81717,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81736,7 +81736,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81755,7 +81755,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81774,7 +81774,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81793,7 +81793,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81812,7 +81812,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81831,7 +81831,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81850,7 +81850,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81869,7 +81869,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81888,7 +81888,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81907,7 +81907,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81926,7 +81926,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81945,7 +81945,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81964,7 +81964,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -81983,7 +81983,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82002,7 +82002,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82021,7 +82021,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82040,7 +82040,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82059,7 +82059,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82078,7 +82078,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82097,7 +82097,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82116,7 +82116,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82135,7 +82135,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82154,7 +82154,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82173,7 +82173,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82192,7 +82192,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82211,7 +82211,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82230,7 +82230,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82249,7 +82249,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82268,7 +82268,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82287,7 +82287,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82306,7 +82306,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82325,7 +82325,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82344,7 +82344,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82363,7 +82363,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82382,7 +82382,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82401,7 +82401,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82420,7 +82420,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82439,7 +82439,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82458,7 +82458,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82477,7 +82477,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82496,7 +82496,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82515,7 +82515,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82534,7 +82534,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82553,7 +82553,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82572,7 +82572,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82591,7 +82591,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82610,7 +82610,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82629,7 +82629,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82648,7 +82648,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82667,7 +82667,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82686,7 +82686,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82705,7 +82705,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82724,7 +82724,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82743,7 +82743,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82762,7 +82762,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82781,7 +82781,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82800,7 +82800,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82819,7 +82819,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82838,7 +82838,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82857,7 +82857,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82876,7 +82876,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82895,7 +82895,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82914,7 +82914,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82933,7 +82933,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82952,7 +82952,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82971,7 +82971,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -82990,7 +82990,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83009,7 +83009,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83028,7 +83028,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83047,7 +83047,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83066,7 +83066,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83085,7 +83085,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83104,7 +83104,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83123,7 +83123,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83142,7 +83142,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83161,7 +83161,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83180,7 +83180,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83199,7 +83199,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83218,7 +83218,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83237,7 +83237,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83256,7 +83256,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83275,7 +83275,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "nanopb_fuzzer_serverlist_test_one_entry", "platforms": [ "linux" @@ -83294,7 +83294,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83313,7 +83313,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83332,7 +83332,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83351,7 +83351,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83370,7 +83370,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83389,7 +83389,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83408,7 +83408,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83427,7 +83427,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83446,7 +83446,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83465,7 +83465,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83484,7 +83484,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83503,7 +83503,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83522,7 +83522,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83541,7 +83541,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83560,7 +83560,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83579,7 +83579,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83598,7 +83598,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83617,7 +83617,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83636,7 +83636,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83655,7 +83655,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83674,7 +83674,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83693,7 +83693,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83712,7 +83712,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83731,7 +83731,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83750,7 +83750,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83769,7 +83769,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83788,7 +83788,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83807,7 +83807,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83826,7 +83826,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83845,7 +83845,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83864,7 +83864,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83883,7 +83883,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83902,7 +83902,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83921,7 +83921,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83940,7 +83940,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83959,7 +83959,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83978,7 +83978,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -83997,7 +83997,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84016,7 +84016,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84035,7 +84035,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84054,7 +84054,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84073,7 +84073,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84092,7 +84092,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84111,7 +84111,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84130,7 +84130,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84149,7 +84149,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84168,7 +84168,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84187,7 +84187,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84206,7 +84206,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84225,7 +84225,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84244,7 +84244,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84263,7 +84263,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84282,7 +84282,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84301,7 +84301,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84320,7 +84320,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84339,7 +84339,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84358,7 +84358,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84377,7 +84377,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84396,7 +84396,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84415,7 +84415,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84434,7 +84434,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84453,7 +84453,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84472,7 +84472,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84491,7 +84491,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84510,7 +84510,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84529,7 +84529,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84548,7 +84548,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84567,7 +84567,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84586,7 +84586,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84605,7 +84605,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84624,7 +84624,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84643,7 +84643,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84662,7 +84662,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84681,7 +84681,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84700,7 +84700,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84719,7 +84719,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84738,7 +84738,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84757,7 +84757,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84776,7 +84776,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84795,7 +84795,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84814,7 +84814,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84833,7 +84833,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84852,7 +84852,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84871,7 +84871,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84890,7 +84890,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84909,7 +84909,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84928,7 +84928,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84947,7 +84947,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84966,7 +84966,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -84985,7 +84985,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85004,7 +85004,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85023,7 +85023,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85042,7 +85042,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85061,7 +85061,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85080,7 +85080,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85099,7 +85099,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85118,7 +85118,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85137,7 +85137,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85156,7 +85156,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85175,7 +85175,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85194,7 +85194,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85213,7 +85213,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85232,7 +85232,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85251,7 +85251,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85270,7 +85270,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85289,7 +85289,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85308,7 +85308,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85327,7 +85327,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85346,7 +85346,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85365,7 +85365,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85384,7 +85384,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85403,7 +85403,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85422,7 +85422,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85441,7 +85441,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85460,7 +85460,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85479,7 +85479,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85498,7 +85498,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85517,7 +85517,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85536,7 +85536,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85555,7 +85555,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85574,7 +85574,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85593,7 +85593,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85612,7 +85612,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85631,7 +85631,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85650,7 +85650,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85669,7 +85669,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85688,7 +85688,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85707,7 +85707,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85726,7 +85726,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85745,7 +85745,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85764,7 +85764,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85783,7 +85783,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85802,7 +85802,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85821,7 +85821,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85840,7 +85840,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85859,7 +85859,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85878,7 +85878,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85897,7 +85897,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85916,7 +85916,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85935,7 +85935,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85954,7 +85954,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85973,7 +85973,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -85992,7 +85992,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86011,7 +86011,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86030,7 +86030,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86049,7 +86049,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86068,7 +86068,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86087,7 +86087,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86106,7 +86106,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86125,7 +86125,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86144,7 +86144,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86163,7 +86163,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86182,7 +86182,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86201,7 +86201,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86220,7 +86220,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86239,7 +86239,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86258,7 +86258,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86277,7 +86277,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86296,7 +86296,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86315,7 +86315,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86334,7 +86334,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86353,7 +86353,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86372,7 +86372,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86391,7 +86391,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86410,7 +86410,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86429,7 +86429,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86448,7 +86448,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86467,7 +86467,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86486,7 +86486,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86505,7 +86505,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86524,7 +86524,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86543,7 +86543,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86562,7 +86562,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86581,7 +86581,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86600,7 +86600,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86619,7 +86619,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86638,7 +86638,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86657,7 +86657,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86676,7 +86676,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86695,7 +86695,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86714,7 +86714,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86733,7 +86733,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86752,7 +86752,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86771,7 +86771,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86790,7 +86790,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86809,7 +86809,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86828,7 +86828,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86847,7 +86847,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86866,7 +86866,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86885,7 +86885,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86904,7 +86904,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86923,7 +86923,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86942,7 +86942,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86961,7 +86961,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86980,7 +86980,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -86999,7 +86999,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87018,7 +87018,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87037,7 +87037,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87056,7 +87056,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87075,7 +87075,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87094,7 +87094,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87113,7 +87113,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87132,7 +87132,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87151,7 +87151,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87170,7 +87170,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87189,7 +87189,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87208,7 +87208,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87227,7 +87227,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87246,7 +87246,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87265,7 +87265,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87284,7 +87284,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87303,7 +87303,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87322,7 +87322,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87341,7 +87341,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87360,7 +87360,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87379,7 +87379,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87398,7 +87398,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87417,7 +87417,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87436,7 +87436,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87455,7 +87455,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87474,7 +87474,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87493,7 +87493,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87512,7 +87512,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87531,7 +87531,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87550,7 +87550,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87569,7 +87569,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87588,7 +87588,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87607,7 +87607,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87626,7 +87626,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87645,7 +87645,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87664,7 +87664,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87683,7 +87683,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87702,7 +87702,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87721,7 +87721,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87740,7 +87740,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87759,7 +87759,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87778,7 +87778,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87797,7 +87797,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87816,7 +87816,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87835,7 +87835,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87854,7 +87854,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87873,7 +87873,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87892,7 +87892,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87911,7 +87911,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87930,7 +87930,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87949,7 +87949,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87968,7 +87968,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -87987,7 +87987,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88006,7 +88006,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88025,7 +88025,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88044,7 +88044,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88063,7 +88063,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88082,7 +88082,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88101,7 +88101,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88120,7 +88120,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88139,7 +88139,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88158,7 +88158,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88177,7 +88177,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88196,7 +88196,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88215,7 +88215,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88234,7 +88234,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88253,7 +88253,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88272,7 +88272,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88291,7 +88291,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88310,7 +88310,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88329,7 +88329,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88348,7 +88348,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88367,7 +88367,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88386,7 +88386,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88405,7 +88405,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88424,7 +88424,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88443,7 +88443,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88462,7 +88462,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88481,7 +88481,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88500,7 +88500,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88519,7 +88519,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88538,7 +88538,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88557,7 +88557,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88576,7 +88576,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88595,7 +88595,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88614,7 +88614,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88633,7 +88633,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88652,7 +88652,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88671,7 +88671,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88690,7 +88690,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88709,7 +88709,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88728,7 +88728,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88747,7 +88747,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88766,7 +88766,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88785,7 +88785,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88804,7 +88804,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88823,7 +88823,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88842,7 +88842,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88861,7 +88861,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88880,7 +88880,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88899,7 +88899,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88918,7 +88918,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88937,7 +88937,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88956,7 +88956,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88975,7 +88975,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -88994,7 +88994,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89013,7 +89013,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89032,7 +89032,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89051,7 +89051,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89070,7 +89070,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89089,7 +89089,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89108,7 +89108,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89127,7 +89127,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89146,7 +89146,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89165,7 +89165,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89184,7 +89184,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89203,7 +89203,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89222,7 +89222,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89241,7 +89241,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89260,7 +89260,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89279,7 +89279,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89298,7 +89298,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89317,7 +89317,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89336,7 +89336,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89355,7 +89355,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89374,7 +89374,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89393,7 +89393,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89412,7 +89412,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89431,7 +89431,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89450,7 +89450,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89469,7 +89469,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89488,7 +89488,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89507,7 +89507,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89526,7 +89526,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89545,7 +89545,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89564,7 +89564,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89583,7 +89583,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89602,7 +89602,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89621,7 +89621,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89640,7 +89640,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89659,7 +89659,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89678,7 +89678,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89697,7 +89697,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89716,7 +89716,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89735,7 +89735,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89754,7 +89754,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89773,7 +89773,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89792,7 +89792,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89811,7 +89811,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89830,7 +89830,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89849,7 +89849,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89868,7 +89868,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89887,7 +89887,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89906,7 +89906,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89925,7 +89925,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89944,7 +89944,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89963,7 +89963,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -89982,7 +89982,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90001,7 +90001,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90020,7 +90020,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90039,7 +90039,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90058,7 +90058,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90077,7 +90077,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90096,7 +90096,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90115,7 +90115,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90134,7 +90134,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90153,7 +90153,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90172,7 +90172,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90191,7 +90191,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90210,7 +90210,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90229,7 +90229,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90248,7 +90248,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90267,7 +90267,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90286,7 +90286,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90305,7 +90305,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90324,7 +90324,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90343,7 +90343,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90362,7 +90362,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90381,7 +90381,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90400,7 +90400,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90419,7 +90419,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90438,7 +90438,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90457,7 +90457,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90476,7 +90476,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90495,7 +90495,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90514,7 +90514,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90533,7 +90533,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90552,7 +90552,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90571,7 +90571,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90590,7 +90590,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90609,7 +90609,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90628,7 +90628,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90647,7 +90647,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90666,7 +90666,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90685,7 +90685,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90704,7 +90704,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90723,7 +90723,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90742,7 +90742,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90761,7 +90761,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90780,7 +90780,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90799,7 +90799,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90818,7 +90818,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90837,7 +90837,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90856,7 +90856,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90875,7 +90875,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90894,7 +90894,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90913,7 +90913,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90932,7 +90932,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90951,7 +90951,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90970,7 +90970,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -90989,7 +90989,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91008,7 +91008,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91027,7 +91027,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91046,7 +91046,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91065,7 +91065,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91084,7 +91084,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91103,7 +91103,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91122,7 +91122,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91141,7 +91141,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91160,7 +91160,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91179,7 +91179,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91198,7 +91198,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91217,7 +91217,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91236,7 +91236,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91255,7 +91255,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91274,7 +91274,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91293,7 +91293,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91312,7 +91312,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91331,7 +91331,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91350,7 +91350,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91369,7 +91369,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91388,7 +91388,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91407,7 +91407,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91426,7 +91426,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91445,7 +91445,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "server_fuzzer_one_entry", "platforms": [ "linux" @@ -91464,7 +91464,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91483,7 +91483,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91502,7 +91502,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91521,7 +91521,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91540,7 +91540,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91559,7 +91559,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91578,7 +91578,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91597,7 +91597,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91616,7 +91616,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91635,7 +91635,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91654,7 +91654,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91673,7 +91673,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91692,7 +91692,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91711,7 +91711,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91730,7 +91730,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91749,7 +91749,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91768,7 +91768,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91787,7 +91787,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91806,7 +91806,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91825,7 +91825,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91844,7 +91844,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91863,7 +91863,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91882,7 +91882,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91901,7 +91901,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91920,7 +91920,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91939,7 +91939,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91958,7 +91958,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91977,7 +91977,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -91996,7 +91996,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92015,7 +92015,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92034,7 +92034,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92053,7 +92053,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92072,7 +92072,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92091,7 +92091,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92110,7 +92110,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92129,7 +92129,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92148,7 +92148,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92167,7 +92167,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92186,7 +92186,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92205,7 +92205,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92224,7 +92224,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92243,7 +92243,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92262,7 +92262,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92281,7 +92281,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92300,7 +92300,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92319,7 +92319,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92338,7 +92338,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92357,7 +92357,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92376,7 +92376,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92395,7 +92395,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92414,7 +92414,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92433,7 +92433,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92452,7 +92452,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92471,7 +92471,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92490,7 +92490,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92509,7 +92509,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92528,7 +92528,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92547,7 +92547,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92566,7 +92566,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92585,7 +92585,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92604,7 +92604,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92623,7 +92623,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" @@ -92642,7 +92642,7 @@ "tsan" ], "flaky": false, - "language": "c", + "language": "core", "name": "uri_fuzzer_test_one_entry", "platforms": [ "linux" diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index c98ad0cc0b732..fdb63e2d65979 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -3,485 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_client_test", "vcxproj\test/bad_client\bad_client_test\bad_client_test.vcxproj", "{BA67B418-B699-E41A-9CC4-0279C49481A5}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "badreq_bad_client_test", "vcxproj\test\badreq_bad_client_test\badreq_bad_client_test.vcxproj", "{8A811C28-E04E-A444-E4C1-7588DF5B90AE}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connection_prefix_bad_client_test", "vcxproj\test\connection_prefix_bad_client_test\connection_prefix_bad_client_test.vcxproj", "{AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_nosec_tests", "vcxproj\test/end2end/tests\end2end_nosec_tests\end2end_nosec_tests.vcxproj", "{47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_tests", "vcxproj\test/end2end/tests\end2end_tests\end2end_tests.vcxproj", "{1F1F9084-2A93-B80E-364F-5754894AFAB4}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr", "vcxproj\.\gpr\gpr.vcxproj", "{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_test_util", "vcxproj\.\gpr_test_util\gpr_test_util.vcxproj", "{EAB0A629-17A9-44DB-B5FF-E91A721FE037}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc.vcxproj", "{29D16885-7228-4C31-81ED-5F9187C7F2A9}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util", "vcxproj\.\grpc_test_util\grpc_test_util.vcxproj", "{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util_unsecure", "vcxproj\.\grpc_test_util_unsecure\grpc_test_util_unsecure.vcxproj", "{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\grpc_unsecure\grpc_unsecure.vcxproj", "{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_nosec_test", "vcxproj\test/end2end/fixtures\h2_census_nosec_test\h2_census_nosec_test.vcxproj", "{A8039D43-910E-4248-2A22-74366E8C4DCD}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_test", "vcxproj\test/end2end/fixtures\h2_census_test\h2_census_test.vcxproj", "{9E4180B0-81ED-7305-333F-653CE9AB819B}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_nosec_test", "vcxproj\test/end2end/fixtures\h2_compress_nosec_test\h2_compress_nosec_test.vcxproj", "{42826C1F-DCF0-918E-D247-0376DC1EFD50}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_test", "vcxproj\test/end2end/fixtures\h2_compress_test\h2_compress_test.vcxproj", "{C7E516E9-B80F-4BC1-A617-095FC6E14BC9}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_fakesec_test", "vcxproj\test/end2end/fixtures\h2_fakesec_test\h2_fakesec_test.vcxproj", "{0E980562-3AA0-91B1-C590-85C9A899BE44}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_full+trace_nosec_test\h2_full+trace_nosec_test.vcxproj", "{DFD51943-4906-8051-7D66-6A7D50E0D87E}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_test", "vcxproj\test/end2end/fixtures\h2_full+trace_test\h2_full+trace_test.vcxproj", "{16C713C6-062E-F71F-A44C-52DC35494B27}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_nosec_test", "vcxproj\test/end2end/fixtures\h2_full_nosec_test\h2_full_nosec_test.vcxproj", "{345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_test", "vcxproj\test/end2end/fixtures\h2_full_test\h2_full_test.vcxproj", "{EEBEFA75-C625-C823-FE96-9AD64887B57D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_nosec_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_nosec_test\h2_load_reporting_nosec_test.vcxproj", "{4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_test\h2_load_reporting_test.vcxproj", "{F0A06723-2E3E-FE97-34B7-A2BA26D98B83}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_oauth2_test", "vcxproj\test/end2end/fixtures\h2_oauth2_test\h2_oauth2_test.vcxproj", "{0F761FF3-342A-C429-711F-F76181BAA52D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_nosec_test", "vcxproj\test/end2end/fixtures\h2_proxy_nosec_test\h2_proxy_nosec_test.vcxproj", "{6EC72045-98CB-8A8D-9788-BC94209E23C8}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_test", "vcxproj\test/end2end/fixtures\h2_proxy_test\h2_proxy_test.vcxproj", "{5753B14F-0C69-2E56-6264-5541B2DCDF67}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_nosec_test\h2_sockpair+trace_nosec_test.vcxproj", "{962380E0-1C06-8917-8F7F-1A02E0E93BE7}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_test\h2_sockpair+trace_test.vcxproj", "{82878169-5A89-FD1E-31A6-E9F07BB92418}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_nosec_test\h2_sockpair_1byte_nosec_test.vcxproj", "{485E6713-487D-F274-BDE7-5D29300C93FE}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_test\h2_sockpair_1byte_test.vcxproj", "{03A65361-E139-5344-1868-8E8FC269C6E6}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_nosec_test\h2_sockpair_nosec_test.vcxproj", "{B3F26242-A43D-4F77-A84C-0F478741A061}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_test", "vcxproj\test/end2end/fixtures\h2_sockpair_test\h2_sockpair_test.vcxproj", "{67458AF8-A122-7740-F195-C2E74A106FAB}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_cert_test", "vcxproj\test/end2end/fixtures\h2_ssl_cert_test\h2_ssl_cert_test.vcxproj", "{B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_proxy_test", "vcxproj\test/end2end/fixtures\h2_ssl_proxy_test\h2_ssl_proxy_test.vcxproj", "{A9092608-E45E-AC96-6533-A6E7DD98211D}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_test", "vcxproj\test/end2end/fixtures\h2_ssl_test\h2_ssl_test.vcxproj", "{EA78D290-4098-FF04-C647-013F6B81E4E7}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "head_of_line_blocking_bad_client_test", "vcxproj\test\head_of_line_blocking_bad_client_test\head_of_line_blocking_bad_client_test.vcxproj", "{23DF0572-DBF1-08DA-8EAD-8508354C90A4}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "headers_bad_client_test", "vcxproj\test\headers_bad_client_test\headers_bad_client_test.vcxproj", "{7819A11E-607E-F0C0-FC47-C704CF7D818C}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "initial_settings_frame_bad_client_test", "vcxproj\test\initial_settings_frame_bad_client_test\initial_settings_frame_bad_client_test.vcxproj", "{6756895E-05BF-8CC7-58F2-868DF0C0300C}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "large_metadata_bad_client_test", "vcxproj\test\large_metadata_bad_client_test\large_metadata_bad_client_test.vcxproj", "{B706A9EC-7982-0DBC-495D-07B165F6CF56}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_registered_method_bad_client_test", "vcxproj\test\server_registered_method_bad_client_test\server_registered_method_bad_client_test.vcxproj", "{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_request_bad_client_test", "vcxproj\test\simple_request_bad_client_test\simple_request_bad_client_test.vcxproj", "{63422647-93FA-46BB-4827-95473D9D503C}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unknown_frame_bad_client_test", "vcxproj\test\unknown_frame_bad_client_test\unknown_frame_bad_client_test.vcxproj", "{9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "window_overflow_bad_client_test", "vcxproj\test\window_overflow_bad_client_test\window_overflow_bad_client_test.vcxproj", "{658D7F7F-9628-6545-743C-D949301DC5DC}" - ProjectSection(myProperties) = preProject - lib = "False" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - EndProjectSection -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -494,678 +15,6 @@ Global Release-DLL|x64 = Release-DLL|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|Win32.ActiveCfg = Debug|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|x64.ActiveCfg = Debug|x64 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|Win32.ActiveCfg = Release|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|x64.ActiveCfg = Release|x64 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|Win32.Build.0 = Debug|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|x64.Build.0 = Debug|x64 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|Win32.Build.0 = Release|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|x64.Build.0 = Release|x64 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|x64.Build.0 = Debug|x64 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|Win32.Build.0 = Release|Win32 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|x64.ActiveCfg = Release|x64 - {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|x64.Build.0 = Release|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|Win32.ActiveCfg = Debug|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|x64.ActiveCfg = Debug|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|Win32.ActiveCfg = Release|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|x64.ActiveCfg = Release|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|Win32.Build.0 = Debug|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|x64.Build.0 = Debug|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|Win32.Build.0 = Release|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|x64.Build.0 = Release|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|x64.Build.0 = Debug|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|Win32.Build.0 = Release|Win32 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|x64.ActiveCfg = Release|x64 - {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|x64.Build.0 = Release|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|Win32.ActiveCfg = Debug|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|x64.ActiveCfg = Debug|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|Win32.ActiveCfg = Release|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|x64.ActiveCfg = Release|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|Win32.Build.0 = Debug|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|x64.Build.0 = Debug|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|Win32.Build.0 = Release|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|x64.Build.0 = Release|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|x64.Build.0 = Debug|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|Win32.Build.0 = Release|Win32 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.ActiveCfg = Release|x64 - {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.Build.0 = Release|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|Win32.ActiveCfg = Debug|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|x64.ActiveCfg = Debug|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|Win32.ActiveCfg = Release|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|x64.ActiveCfg = Release|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|Win32.Build.0 = Debug|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|x64.Build.0 = Debug|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|Win32.Build.0 = Release|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|x64.Build.0 = Release|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|x64.Build.0 = Debug|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|Win32.Build.0 = Release|Win32 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|x64.ActiveCfg = Release|x64 - {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|x64.Build.0 = Release|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|Win32.ActiveCfg = Debug|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|x64.ActiveCfg = Debug|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|Win32.ActiveCfg = Release|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|x64.ActiveCfg = Release|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|Win32.Build.0 = Debug|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|x64.Build.0 = Debug|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|Win32.Build.0 = Release|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|x64.Build.0 = Release|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|x64.Build.0 = Debug|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|Win32.Build.0 = Release|Win32 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|x64.ActiveCfg = Release|x64 - {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|x64.Build.0 = Release|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|Win32.ActiveCfg = Debug|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|x64.ActiveCfg = Debug|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|Win32.ActiveCfg = Release|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|x64.ActiveCfg = Release|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|Win32.Build.0 = Debug|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|x64.Build.0 = Debug|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|Win32.Build.0 = Release|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|x64.Build.0 = Release|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|x64.Build.0 = Debug|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|Win32.Build.0 = Release|Win32 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.ActiveCfg = Release|x64 - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.Build.0 = Release|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|Win32.ActiveCfg = Debug|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|x64.ActiveCfg = Debug|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|Win32.ActiveCfg = Release|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|x64.ActiveCfg = Release|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|Win32.Build.0 = Debug|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|x64.Build.0 = Debug|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|Win32.Build.0 = Release|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|x64.Build.0 = Release|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|x64.Build.0 = Debug|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|Win32.Build.0 = Release|Win32 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.ActiveCfg = Release|x64 - {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.Build.0 = Release|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|Win32.ActiveCfg = Debug|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|x64.ActiveCfg = Debug|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|Win32.ActiveCfg = Release|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|x64.ActiveCfg = Release|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|Win32.Build.0 = Debug|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|x64.Build.0 = Debug|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|Win32.Build.0 = Release|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|x64.Build.0 = Release|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 - {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|Win32.ActiveCfg = Debug|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|x64.ActiveCfg = Debug|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|Win32.ActiveCfg = Release|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|x64.ActiveCfg = Release|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|Win32.Build.0 = Debug|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|x64.Build.0 = Debug|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|Win32.Build.0 = Release|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|x64.Build.0 = Release|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|x64.Build.0 = Debug|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|Win32.Build.0 = Release|Win32 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.ActiveCfg = Release|x64 - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.Build.0 = Release|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|x64.ActiveCfg = Debug|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|Win32.ActiveCfg = Release|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|x64.ActiveCfg = Release|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|Win32.Build.0 = Debug|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|x64.Build.0 = Debug|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|Win32.Build.0 = Release|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|x64.Build.0 = Release|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|x64.Build.0 = Debug|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|Win32.Build.0 = Release|Win32 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|x64.ActiveCfg = Release|x64 - {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|x64.Build.0 = Release|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|x64.ActiveCfg = Debug|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|Win32.ActiveCfg = Release|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|x64.ActiveCfg = Release|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|Win32.Build.0 = Debug|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|x64.Build.0 = Debug|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|Win32.Build.0 = Release|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|x64.Build.0 = Release|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 - {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|Win32.ActiveCfg = Debug|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|x64.ActiveCfg = Debug|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|Win32.ActiveCfg = Release|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|x64.ActiveCfg = Release|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|Win32.Build.0 = Debug|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|x64.Build.0 = Debug|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|Win32.Build.0 = Release|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|x64.Build.0 = Release|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|x64.Build.0 = Debug|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|Win32.Build.0 = Release|Win32 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|x64.ActiveCfg = Release|x64 - {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|x64.Build.0 = Release|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|x64.ActiveCfg = Debug|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|Win32.ActiveCfg = Release|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|x64.ActiveCfg = Release|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|Win32.Build.0 = Debug|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|x64.Build.0 = Debug|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|Win32.Build.0 = Release|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|x64.Build.0 = Release|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|x64.Build.0 = Debug|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|Win32.Build.0 = Release|Win32 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|x64.ActiveCfg = Release|x64 - {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|x64.Build.0 = Release|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|Win32.ActiveCfg = Debug|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|x64.ActiveCfg = Debug|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|Win32.ActiveCfg = Release|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|x64.ActiveCfg = Release|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|Win32.Build.0 = Debug|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|x64.Build.0 = Debug|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|Win32.Build.0 = Release|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|x64.Build.0 = Release|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|x64.Build.0 = Debug|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|Win32.Build.0 = Release|Win32 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|x64.ActiveCfg = Release|x64 - {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|x64.Build.0 = Release|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|Win32.ActiveCfg = Debug|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|x64.ActiveCfg = Debug|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|Win32.ActiveCfg = Release|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|x64.ActiveCfg = Release|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|Win32.Build.0 = Debug|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|x64.Build.0 = Debug|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|Win32.Build.0 = Release|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|x64.Build.0 = Release|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|x64.Build.0 = Debug|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|Win32.Build.0 = Release|Win32 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|x64.ActiveCfg = Release|x64 - {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|x64.Build.0 = Release|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|Win32.ActiveCfg = Debug|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|x64.ActiveCfg = Debug|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|Win32.ActiveCfg = Release|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|x64.ActiveCfg = Release|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|Win32.Build.0 = Debug|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|x64.Build.0 = Debug|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|Win32.Build.0 = Release|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|x64.Build.0 = Release|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|x64.Build.0 = Debug|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|Win32.Build.0 = Release|Win32 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|x64.ActiveCfg = Release|x64 - {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|x64.Build.0 = Release|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|Win32.ActiveCfg = Debug|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|x64.ActiveCfg = Debug|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|Win32.ActiveCfg = Release|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|x64.ActiveCfg = Release|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|Win32.Build.0 = Debug|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|x64.Build.0 = Debug|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|Win32.Build.0 = Release|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|x64.Build.0 = Release|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|x64.Build.0 = Debug|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|Win32.Build.0 = Release|Win32 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|x64.ActiveCfg = Release|x64 - {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|x64.Build.0 = Release|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|Win32.ActiveCfg = Debug|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|x64.ActiveCfg = Debug|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|Win32.ActiveCfg = Release|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|x64.ActiveCfg = Release|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|Win32.Build.0 = Debug|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|x64.Build.0 = Debug|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|Win32.Build.0 = Release|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|x64.Build.0 = Release|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|x64.Build.0 = Debug|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|Win32.Build.0 = Release|Win32 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|x64.ActiveCfg = Release|x64 - {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|x64.Build.0 = Release|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|Win32.ActiveCfg = Debug|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|x64.ActiveCfg = Debug|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|Win32.ActiveCfg = Release|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|x64.ActiveCfg = Release|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|Win32.Build.0 = Debug|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|x64.Build.0 = Debug|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|Win32.Build.0 = Release|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|x64.Build.0 = Release|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|x64.Build.0 = Debug|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|Win32.Build.0 = Release|Win32 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|x64.ActiveCfg = Release|x64 - {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|x64.Build.0 = Release|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|Win32.ActiveCfg = Debug|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|x64.ActiveCfg = Debug|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|Win32.ActiveCfg = Release|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|x64.ActiveCfg = Release|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|Win32.Build.0 = Debug|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|x64.Build.0 = Debug|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|Win32.Build.0 = Release|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|x64.Build.0 = Release|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|x64.Build.0 = Debug|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|Win32.Build.0 = Release|Win32 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|x64.ActiveCfg = Release|x64 - {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|x64.Build.0 = Release|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|Win32.ActiveCfg = Debug|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|x64.ActiveCfg = Debug|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|Win32.ActiveCfg = Release|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|x64.ActiveCfg = Release|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|Win32.Build.0 = Debug|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|x64.Build.0 = Debug|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|Win32.Build.0 = Release|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|x64.Build.0 = Release|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|x64.Build.0 = Debug|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|Win32.Build.0 = Release|Win32 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|x64.ActiveCfg = Release|x64 - {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|x64.Build.0 = Release|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|Win32.ActiveCfg = Debug|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|x64.ActiveCfg = Debug|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|Win32.ActiveCfg = Release|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|x64.ActiveCfg = Release|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|Win32.Build.0 = Debug|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|x64.Build.0 = Debug|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|Win32.Build.0 = Release|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|x64.Build.0 = Release|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|x64.Build.0 = Debug|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|Win32.Build.0 = Release|Win32 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|x64.ActiveCfg = Release|x64 - {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|x64.Build.0 = Release|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|Win32.ActiveCfg = Debug|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|x64.ActiveCfg = Debug|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|Win32.ActiveCfg = Release|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|x64.ActiveCfg = Release|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|Win32.Build.0 = Debug|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|x64.Build.0 = Debug|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|Win32.Build.0 = Release|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|x64.Build.0 = Release|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|x64.Build.0 = Debug|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|Win32.Build.0 = Release|Win32 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|x64.ActiveCfg = Release|x64 - {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|x64.Build.0 = Release|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|Win32.ActiveCfg = Debug|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|x64.ActiveCfg = Debug|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|Win32.ActiveCfg = Release|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|x64.ActiveCfg = Release|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|Win32.Build.0 = Debug|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|x64.Build.0 = Debug|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|Win32.Build.0 = Release|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|x64.Build.0 = Release|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|x64.Build.0 = Debug|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|Win32.Build.0 = Release|Win32 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|x64.ActiveCfg = Release|x64 - {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|x64.Build.0 = Release|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|Win32.ActiveCfg = Debug|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|x64.ActiveCfg = Debug|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|Win32.ActiveCfg = Release|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|x64.ActiveCfg = Release|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|Win32.Build.0 = Debug|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|x64.Build.0 = Debug|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|Win32.Build.0 = Release|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|x64.Build.0 = Release|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|x64.Build.0 = Debug|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|Win32.Build.0 = Release|Win32 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|x64.ActiveCfg = Release|x64 - {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|x64.Build.0 = Release|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|Win32.ActiveCfg = Debug|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|x64.ActiveCfg = Debug|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|Win32.ActiveCfg = Release|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|x64.ActiveCfg = Release|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|Win32.Build.0 = Debug|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|x64.Build.0 = Debug|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|Win32.Build.0 = Release|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|x64.Build.0 = Release|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|x64.Build.0 = Debug|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|Win32.Build.0 = Release|Win32 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|x64.ActiveCfg = Release|x64 - {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|x64.Build.0 = Release|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|Win32.ActiveCfg = Debug|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|x64.ActiveCfg = Debug|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|Win32.ActiveCfg = Release|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|x64.ActiveCfg = Release|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|Win32.Build.0 = Debug|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|x64.Build.0 = Debug|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|Win32.Build.0 = Release|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|x64.Build.0 = Release|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|x64.Build.0 = Debug|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|Win32.Build.0 = Release|Win32 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|x64.ActiveCfg = Release|x64 - {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|x64.Build.0 = Release|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|Win32.ActiveCfg = Debug|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|x64.ActiveCfg = Debug|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|Win32.ActiveCfg = Release|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|x64.ActiveCfg = Release|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|Win32.Build.0 = Debug|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|x64.Build.0 = Debug|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|Win32.Build.0 = Release|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|x64.Build.0 = Release|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|x64.Build.0 = Debug|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|Win32.Build.0 = Release|Win32 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|x64.ActiveCfg = Release|x64 - {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|x64.Build.0 = Release|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|Win32.ActiveCfg = Debug|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|x64.ActiveCfg = Debug|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|Win32.ActiveCfg = Release|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|x64.ActiveCfg = Release|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|Win32.Build.0 = Debug|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|x64.Build.0 = Debug|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|Win32.Build.0 = Release|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|x64.Build.0 = Release|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|x64.Build.0 = Debug|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|Win32.Build.0 = Release|Win32 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|x64.ActiveCfg = Release|x64 - {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|x64.Build.0 = Release|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|Win32.ActiveCfg = Debug|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|x64.ActiveCfg = Debug|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|Win32.ActiveCfg = Release|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|x64.ActiveCfg = Release|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|Win32.Build.0 = Debug|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|x64.Build.0 = Debug|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|Win32.Build.0 = Release|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|x64.Build.0 = Release|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|x64.Build.0 = Debug|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|Win32.Build.0 = Release|Win32 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|x64.ActiveCfg = Release|x64 - {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|x64.Build.0 = Release|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|Win32.ActiveCfg = Debug|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|x64.ActiveCfg = Debug|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|Win32.ActiveCfg = Release|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|x64.ActiveCfg = Release|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|Win32.Build.0 = Debug|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|x64.Build.0 = Debug|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|Win32.Build.0 = Release|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|x64.Build.0 = Release|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|x64.Build.0 = Debug|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|Win32.Build.0 = Release|Win32 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|x64.ActiveCfg = Release|x64 - {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|x64.Build.0 = Release|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|Win32.ActiveCfg = Debug|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|x64.ActiveCfg = Debug|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|Win32.ActiveCfg = Release|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|x64.ActiveCfg = Release|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|Win32.Build.0 = Debug|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|x64.Build.0 = Debug|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|Win32.Build.0 = Release|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|x64.Build.0 = Release|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|x64.Build.0 = Debug|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|Win32.Build.0 = Release|Win32 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|x64.ActiveCfg = Release|x64 - {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|x64.Build.0 = Release|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|Win32.ActiveCfg = Debug|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|x64.ActiveCfg = Debug|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|Win32.ActiveCfg = Release|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|x64.ActiveCfg = Release|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|Win32.Build.0 = Debug|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|x64.Build.0 = Debug|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|Win32.Build.0 = Release|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|x64.Build.0 = Release|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|x64.Build.0 = Debug|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|Win32.Build.0 = Release|Win32 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|x64.ActiveCfg = Release|x64 - {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|x64.Build.0 = Release|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|x64.ActiveCfg = Debug|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|Win32.ActiveCfg = Release|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|x64.ActiveCfg = Release|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|Win32.Build.0 = Debug|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|x64.Build.0 = Debug|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|Win32.Build.0 = Release|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|x64.Build.0 = Release|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|x64.Build.0 = Debug|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|Win32.Build.0 = Release|Win32 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|x64.ActiveCfg = Release|x64 - {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|x64.Build.0 = Release|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|Win32.ActiveCfg = Debug|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|x64.ActiveCfg = Debug|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|Win32.ActiveCfg = Release|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|x64.ActiveCfg = Release|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|Win32.Build.0 = Debug|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|x64.Build.0 = Debug|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|Win32.Build.0 = Release|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|x64.Build.0 = Release|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|x64.Build.0 = Debug|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|Win32.Build.0 = Release|Win32 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|x64.ActiveCfg = Release|x64 - {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|x64.Build.0 = Release|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|Win32.ActiveCfg = Debug|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|x64.ActiveCfg = Debug|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|Win32.ActiveCfg = Release|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|x64.ActiveCfg = Release|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|Win32.Build.0 = Debug|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|x64.Build.0 = Debug|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|Win32.Build.0 = Release|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|x64.Build.0 = Release|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|x64.Build.0 = Debug|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|Win32.Build.0 = Release|Win32 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|x64.ActiveCfg = Release|x64 - {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|x64.Build.0 = Release|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|Win32.ActiveCfg = Debug|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|x64.ActiveCfg = Debug|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|Win32.ActiveCfg = Release|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|x64.ActiveCfg = Release|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|Win32.Build.0 = Debug|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|x64.Build.0 = Debug|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|Win32.Build.0 = Release|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|x64.Build.0 = Release|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|x64.Build.0 = Debug|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|Win32.Build.0 = Release|Win32 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.ActiveCfg = Release|x64 - {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.Build.0 = Release|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|Win32.ActiveCfg = Debug|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|x64.ActiveCfg = Debug|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|Win32.ActiveCfg = Release|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|x64.ActiveCfg = Release|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|Win32.Build.0 = Debug|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|x64.Build.0 = Debug|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|Win32.Build.0 = Release|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|x64.Build.0 = Release|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|x64.Build.0 = Debug|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|Win32.Build.0 = Release|Win32 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.ActiveCfg = Release|x64 - {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.Build.0 = Release|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|Win32.ActiveCfg = Debug|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|x64.ActiveCfg = Debug|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|Win32.ActiveCfg = Release|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|x64.ActiveCfg = Release|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|Win32.Build.0 = Debug|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|x64.Build.0 = Debug|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|Win32.Build.0 = Release|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|x64.Build.0 = Release|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|x64.Build.0 = Debug|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|Win32.Build.0 = Release|Win32 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|x64.ActiveCfg = Release|x64 - {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|x64.Build.0 = Release|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug|Win32.ActiveCfg = Debug|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug|x64.ActiveCfg = Debug|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Release|Win32.ActiveCfg = Release|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Release|x64.ActiveCfg = Release|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug|Win32.Build.0 = Debug|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug|x64.Build.0 = Debug|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Release|Win32.Build.0 = Release|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Release|x64.Build.0 = Release|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|x64.Build.0 = Debug|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|Win32.Build.0 = Release|Win32 - {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|x64.ActiveCfg = Release|x64 - {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|x64.Build.0 = Release|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|x64.ActiveCfg = Debug|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|Win32.ActiveCfg = Release|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|x64.ActiveCfg = Release|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|Win32.Build.0 = Debug|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|x64.Build.0 = Debug|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|Win32.Build.0 = Release|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|x64.Build.0 = Release|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|x64.Build.0 = Debug|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|Win32.Build.0 = Release|Win32 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|x64.ActiveCfg = Release|x64 - {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|x64.Build.0 = Release|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|Win32.ActiveCfg = Debug|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|x64.ActiveCfg = Debug|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|Win32.ActiveCfg = Release|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|x64.ActiveCfg = Release|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|Win32.Build.0 = Debug|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|x64.Build.0 = Debug|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|Win32.Build.0 = Release|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|x64.Build.0 = Release|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|x64.Build.0 = Debug|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|Win32.Build.0 = Release|Win32 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|x64.ActiveCfg = Release|x64 - {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/vsprojects/buildtests_core.sln b/vsprojects/buildtests_core.sln index 378dd9edaaf69..c28f3ba39c359 100644 --- a/vsprojects/buildtests_core.sln +++ b/vsprojects/buildtests_core.sln @@ -45,6 +45,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alpn_test", "vcxproj\test\a {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_client_test", "vcxproj\test/bad_client\bad_client_test\bad_client_test.vcxproj", "{BA67B418-B699-E41A-9CC4-0279C49481A5}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_server_response_test", "vcxproj\test\bad_server_response_test\bad_server_response_test.vcxproj", "{2B73DA77-EF66-362C-24AD-317E3B8B28C1}" ProjectSection(myProperties) = preProject lib = "False" @@ -57,6 +68,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bad_server_response_test", {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "badreq_bad_client_test", "vcxproj\test\badreq_bad_client_test\badreq_bad_client_test.vcxproj", "{8A811C28-E04E-A444-E4C1-7588DF5B90AE}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bin_decoder_test", "vcxproj\test\bin_decoder_test\bin_decoder_test.vcxproj", "{6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}" ProjectSection(myProperties) = preProject lib = "False" @@ -174,6 +197,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "concurrent_connectivity_tes {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "connection_prefix_bad_client_test", "vcxproj\test\connection_prefix_bad_client_test\connection_prefix_bad_client_test.vcxproj", "{AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns_resolver_connectivity_test", "vcxproj\test\dns_resolver_connectivity_test\dns_resolver_connectivity_test.vcxproj", "{F7B6FE68-E847-D7CA-4062-E737E542BCC3}" ProjectSection(myProperties) = preProject lib = "False" @@ -196,6 +231,28 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dns_resolver_test", "vcxpro {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_nosec_tests", "vcxproj\test/end2end/tests\end2end_nosec_tests\end2end_nosec_tests.vcxproj", "{47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_tests", "vcxproj\test/end2end/tests\end2end_tests\end2end_tests.vcxproj", "{1F1F9084-2A93-B80E-364F-5754894AFAB4}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "endpoint_pair_test", "vcxproj\test\endpoint_pair_test\endpoint_pair_test.vcxproj", "{37166D50-3AAA-1156-19F6-5901DFA55172}" ProjectSection(myProperties) = preProject lib = "False" @@ -566,6 +623,25 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util", "vcxproj\. {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util_unsecure", "vcxproj\.\grpc_test_util_unsecure\grpc_test_util_unsecure.vcxproj", "{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\grpc_unsecure\grpc_unsecure.vcxproj", "{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_verify_jwt", "vcxproj\.\grpc_verify_jwt\grpc_verify_jwt.vcxproj", "{02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}" ProjectSection(myProperties) = preProject lib = "False" @@ -575,6 +651,306 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_verify_jwt", "vcxproj\ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_nosec_test", "vcxproj\test/end2end/fixtures\h2_census_nosec_test\h2_census_nosec_test.vcxproj", "{A8039D43-910E-4248-2A22-74366E8C4DCD}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_census_test", "vcxproj\test/end2end/fixtures\h2_census_test\h2_census_test.vcxproj", "{9E4180B0-81ED-7305-333F-653CE9AB819B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_nosec_test", "vcxproj\test/end2end/fixtures\h2_compress_nosec_test\h2_compress_nosec_test.vcxproj", "{42826C1F-DCF0-918E-D247-0376DC1EFD50}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_test", "vcxproj\test/end2end/fixtures\h2_compress_test\h2_compress_test.vcxproj", "{C7E516E9-B80F-4BC1-A617-095FC6E14BC9}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_fakesec_test", "vcxproj\test/end2end/fixtures\h2_fakesec_test\h2_fakesec_test.vcxproj", "{0E980562-3AA0-91B1-C590-85C9A899BE44}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_full+trace_nosec_test\h2_full+trace_nosec_test.vcxproj", "{DFD51943-4906-8051-7D66-6A7D50E0D87E}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full+trace_test", "vcxproj\test/end2end/fixtures\h2_full+trace_test\h2_full+trace_test.vcxproj", "{16C713C6-062E-F71F-A44C-52DC35494B27}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_nosec_test", "vcxproj\test/end2end/fixtures\h2_full_nosec_test\h2_full_nosec_test.vcxproj", "{345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_test", "vcxproj\test/end2end/fixtures\h2_full_test\h2_full_test.vcxproj", "{EEBEFA75-C625-C823-FE96-9AD64887B57D}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_nosec_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_nosec_test\h2_load_reporting_nosec_test.vcxproj", "{4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_load_reporting_test", "vcxproj\test/end2end/fixtures\h2_load_reporting_test\h2_load_reporting_test.vcxproj", "{F0A06723-2E3E-FE97-34B7-A2BA26D98B83}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_oauth2_test", "vcxproj\test/end2end/fixtures\h2_oauth2_test\h2_oauth2_test.vcxproj", "{0F761FF3-342A-C429-711F-F76181BAA52D}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_nosec_test", "vcxproj\test/end2end/fixtures\h2_proxy_nosec_test\h2_proxy_nosec_test.vcxproj", "{6EC72045-98CB-8A8D-9788-BC94209E23C8}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_test", "vcxproj\test/end2end/fixtures\h2_proxy_test\h2_proxy_test.vcxproj", "{5753B14F-0C69-2E56-6264-5541B2DCDF67}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_nosec_test\h2_sockpair+trace_nosec_test.vcxproj", "{962380E0-1C06-8917-8F7F-1A02E0E93BE7}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_test", "vcxproj\test/end2end/fixtures\h2_sockpair+trace_test\h2_sockpair+trace_test.vcxproj", "{82878169-5A89-FD1E-31A6-E9F07BB92418}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_nosec_test\h2_sockpair_1byte_nosec_test.vcxproj", "{485E6713-487D-F274-BDE7-5D29300C93FE}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_test", "vcxproj\test/end2end/fixtures\h2_sockpair_1byte_test\h2_sockpair_1byte_test.vcxproj", "{03A65361-E139-5344-1868-8E8FC269C6E6}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_nosec_test", "vcxproj\test/end2end/fixtures\h2_sockpair_nosec_test\h2_sockpair_nosec_test.vcxproj", "{B3F26242-A43D-4F77-A84C-0F478741A061}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} = {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_test", "vcxproj\test/end2end/fixtures\h2_sockpair_test\h2_sockpair_test.vcxproj", "{67458AF8-A122-7740-F195-C2E74A106FAB}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_cert_test", "vcxproj\test/end2end/fixtures\h2_ssl_cert_test\h2_ssl_cert_test.vcxproj", "{B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_proxy_test", "vcxproj\test/end2end/fixtures\h2_ssl_proxy_test\h2_ssl_proxy_test.vcxproj", "{A9092608-E45E-AC96-6533-A6E7DD98211D}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_test", "vcxproj\test/end2end/fixtures\h2_ssl_test\h2_ssl_test.vcxproj", "{EA78D290-4098-FF04-C647-013F6B81E4E7}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {1F1F9084-2A93-B80E-364F-5754894AFAB4} = {1F1F9084-2A93-B80E-364F-5754894AFAB4} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "head_of_line_blocking_bad_client_test", "vcxproj\test\head_of_line_blocking_bad_client_test\head_of_line_blocking_bad_client_test.vcxproj", "{23DF0572-DBF1-08DA-8EAD-8508354C90A4}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "headers_bad_client_test", "vcxproj\test\headers_bad_client_test\headers_bad_client_test.vcxproj", "{7819A11E-607E-F0C0-FC47-C704CF7D818C}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hpack_parser_test", "vcxproj\test\hpack_parser_test\hpack_parser_test.vcxproj", "{4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}" ProjectSection(myProperties) = preProject lib = "False" @@ -630,6 +1006,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "init_test", "vcxproj\test\i {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "initial_settings_frame_bad_client_test", "vcxproj\test\initial_settings_frame_bad_client_test\initial_settings_frame_bad_client_test.vcxproj", "{6756895E-05BF-8CC7-58F2-868DF0C0300C}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_iomgr_test", "vcxproj\test\internal_api_canary_iomgr_test\internal_api_canary_iomgr_test.vcxproj", "{28AE726B-1BFB-202B-48D2-41AF9D09B9EA}" ProjectSection(myProperties) = preProject lib = "False" @@ -727,6 +1115,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lame_client_test", "vcxproj {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "large_metadata_bad_client_test", "vcxproj\test\large_metadata_bad_client_test\large_metadata_bad_client_test.vcxproj", "{B706A9EC-7982-0DBC-495D-07B165F6CF56}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lb_policies_test", "vcxproj\test\lb_policies_test\lb_policies_test.vcxproj", "{62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}" ProjectSection(myProperties) = preProject lib = "False" @@ -857,6 +1257,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_chttp2_test", "vcxpr {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_registered_method_bad_client_test", "vcxproj\test\server_registered_method_bad_client_test\server_registered_method_bad_client_test.vcxproj", "{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_test", "vcxproj\test\server_test\server_test.vcxproj", "{E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}" ProjectSection(myProperties) = preProject lib = "False" @@ -880,6 +1292,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "set_initial_connect_string_ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_request_bad_client_test", "vcxproj\test\simple_request_bad_client_test\simple_request_bad_client_test.vcxproj", "{63422647-93FA-46BB-4827-95473D9D503C}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sockaddr_resolver_test", "vcxproj\test\sockaddr_resolver_test\sockaddr_resolver_test.vcxproj", "{9889A80C-F1D7-99C9-FE7E-657724BEDC62}" ProjectSection(myProperties) = preProject lib = "False" @@ -979,6 +1403,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "transport_metadata_test", " {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unknown_frame_bad_client_test", "vcxproj\test\unknown_frame_bad_client_test\unknown_frame_bad_client_test.vcxproj", "{9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uri_parser_test", "vcxproj\test\uri_parser_test\uri_parser_test.vcxproj", "{E35C24A0-8725-E773-FE78-CC0C67071EF7}" ProjectSection(myProperties) = preProject lib = "False" @@ -990,6 +1426,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uri_parser_test", "vcxproj\ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "window_overflow_bad_client_test", "vcxproj\test\window_overflow_bad_client_test\window_overflow_bad_client_test.vcxproj", "{658D7F7F-9628-6545-743C-D949301DC5DC}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5} + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -1066,6 +1514,22 @@ Global {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|Win32.Build.0 = Release|Win32 {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|x64.ActiveCfg = Release|x64 {5BAAE7EA-A972-DD80-F190-29B9E3110BB3}.Release-DLL|x64.Build.0 = Release|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|Win32.ActiveCfg = Debug|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|x64.ActiveCfg = Debug|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|Win32.ActiveCfg = Release|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|x64.ActiveCfg = Release|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|Win32.Build.0 = Debug|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug|x64.Build.0 = Debug|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|Win32.Build.0 = Release|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release|x64.Build.0 = Release|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Debug-DLL|x64.Build.0 = Debug|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|Win32.Build.0 = Release|Win32 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|x64.ActiveCfg = Release|x64 + {BA67B418-B699-E41A-9CC4-0279C49481A5}.Release-DLL|x64.Build.0 = Release|x64 {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|Win32.ActiveCfg = Debug|Win32 {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Debug|x64.ActiveCfg = Debug|x64 {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release|Win32.ActiveCfg = Release|Win32 @@ -1082,6 +1546,22 @@ Global {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|Win32.Build.0 = Release|Win32 {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|x64.ActiveCfg = Release|x64 {2B73DA77-EF66-362C-24AD-317E3B8B28C1}.Release-DLL|x64.Build.0 = Release|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|Win32.ActiveCfg = Debug|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|x64.ActiveCfg = Debug|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|Win32.ActiveCfg = Release|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|x64.ActiveCfg = Release|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|Win32.Build.0 = Debug|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug|x64.Build.0 = Debug|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|Win32.Build.0 = Release|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release|x64.Build.0 = Release|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Debug-DLL|x64.Build.0 = Debug|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|Win32.Build.0 = Release|Win32 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|x64.ActiveCfg = Release|x64 + {8A811C28-E04E-A444-E4C1-7588DF5B90AE}.Release-DLL|x64.Build.0 = Release|x64 {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|Win32.ActiveCfg = Debug|Win32 {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Debug|x64.ActiveCfg = Debug|x64 {6BFAC6BA-3B9D-E8F5-BE35-91E8EFB9E25B}.Release|Win32.ActiveCfg = Release|Win32 @@ -1258,6 +1738,22 @@ Global {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|Win32.Build.0 = Release|Win32 {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|x64.ActiveCfg = Release|x64 {391B366C-D916-45AA-3FE5-67363A46193B}.Release-DLL|x64.Build.0 = Release|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|Win32.ActiveCfg = Debug|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|x64.ActiveCfg = Debug|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|Win32.ActiveCfg = Release|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|x64.ActiveCfg = Release|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|Win32.Build.0 = Debug|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug|x64.Build.0 = Debug|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|Win32.Build.0 = Release|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release|x64.Build.0 = Release|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Debug-DLL|x64.Build.0 = Debug|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|Win32.Build.0 = Release|Win32 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.ActiveCfg = Release|x64 + {AF9D0EB2-2A53-B815-3A63-E82C7F91DB29}.Release-DLL|x64.Build.0 = Release|x64 {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|Win32.ActiveCfg = Debug|Win32 {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Debug|x64.ActiveCfg = Debug|x64 {F7B6FE68-E847-D7CA-4062-E737E542BCC3}.Release|Win32.ActiveCfg = Release|Win32 @@ -1290,6 +1786,38 @@ Global {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|Win32.Build.0 = Release|Win32 {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|x64.ActiveCfg = Release|x64 {D06E10DC-272A-5203-7066-2698A247DF26}.Release-DLL|x64.Build.0 = Release|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|x64.ActiveCfg = Debug|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|Win32.ActiveCfg = Release|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|x64.ActiveCfg = Release|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|Win32.Build.0 = Debug|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug|x64.Build.0 = Debug|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|Win32.Build.0 = Release|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release|x64.Build.0 = Release|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Debug-DLL|x64.Build.0 = Debug|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|Win32.Build.0 = Release|Win32 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|x64.ActiveCfg = Release|x64 + {47C2CB41-4E9F-58B6-F606-F6FAED5D00ED}.Release-DLL|x64.Build.0 = Release|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|Win32.ActiveCfg = Debug|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|x64.ActiveCfg = Debug|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|Win32.ActiveCfg = Release|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|x64.ActiveCfg = Release|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|Win32.Build.0 = Debug|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug|x64.Build.0 = Debug|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|Win32.Build.0 = Release|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release|x64.Build.0 = Release|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Debug-DLL|x64.Build.0 = Debug|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|Win32.Build.0 = Release|Win32 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|x64.ActiveCfg = Release|x64 + {1F1F9084-2A93-B80E-364F-5754894AFAB4}.Release-DLL|x64.Build.0 = Release|x64 {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|Win32.ActiveCfg = Debug|Win32 {37166D50-3AAA-1156-19F6-5901DFA55172}.Debug|x64.ActiveCfg = Debug|x64 {37166D50-3AAA-1156-19F6-5901DFA55172}.Release|Win32.ActiveCfg = Release|Win32 @@ -1914,6 +2442,38 @@ Global {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|Win32.Build.0 = Release|Win32 {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.ActiveCfg = Release|x64 {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.Build.0 = Release|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|Win32.ActiveCfg = Debug|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|x64.ActiveCfg = Debug|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|Win32.ActiveCfg = Release|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|x64.ActiveCfg = Release|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|Win32.Build.0 = Debug|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug|x64.Build.0 = Debug|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|Win32.Build.0 = Release|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release|x64.Build.0 = Release|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Debug-DLL|x64.Build.0 = Debug|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|Win32.Build.0 = Release|Win32 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|x64.ActiveCfg = Release|x64 + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}.Release-DLL|x64.Build.0 = Release|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|Win32.ActiveCfg = Debug|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|x64.ActiveCfg = Debug|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|Win32.ActiveCfg = Release|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|x64.ActiveCfg = Release|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|Win32.Build.0 = Debug|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug|x64.Build.0 = Debug|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|Win32.Build.0 = Release|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|x64.Build.0 = Release|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64 {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|Win32.ActiveCfg = Debug|Win32 {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Debug|x64.ActiveCfg = Debug|x64 {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release|Win32.ActiveCfg = Release|Win32 @@ -1930,6 +2490,406 @@ Global {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|Win32.Build.0 = Release|Win32 {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|x64.ActiveCfg = Release|x64 {02FAC25F-5FF6-34A0-00AE-B82BFBA851A9}.Release-DLL|x64.Build.0 = Release|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|Win32.ActiveCfg = Debug|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|x64.ActiveCfg = Debug|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|Win32.ActiveCfg = Release|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|x64.ActiveCfg = Release|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|Win32.Build.0 = Debug|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug|x64.Build.0 = Debug|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|Win32.Build.0 = Release|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release|x64.Build.0 = Release|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Debug-DLL|x64.Build.0 = Debug|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|Win32.Build.0 = Release|Win32 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|x64.ActiveCfg = Release|x64 + {A8039D43-910E-4248-2A22-74366E8C4DCD}.Release-DLL|x64.Build.0 = Release|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|x64.ActiveCfg = Debug|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|Win32.ActiveCfg = Release|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|x64.ActiveCfg = Release|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|Win32.Build.0 = Debug|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug|x64.Build.0 = Debug|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|Win32.Build.0 = Release|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release|x64.Build.0 = Release|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Debug-DLL|x64.Build.0 = Debug|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|Win32.Build.0 = Release|Win32 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|x64.ActiveCfg = Release|x64 + {9E4180B0-81ED-7305-333F-653CE9AB819B}.Release-DLL|x64.Build.0 = Release|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|Win32.ActiveCfg = Debug|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|x64.ActiveCfg = Debug|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|Win32.ActiveCfg = Release|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|x64.ActiveCfg = Release|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|Win32.Build.0 = Debug|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug|x64.Build.0 = Debug|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|Win32.Build.0 = Release|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release|x64.Build.0 = Release|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Debug-DLL|x64.Build.0 = Debug|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|Win32.Build.0 = Release|Win32 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|x64.ActiveCfg = Release|x64 + {42826C1F-DCF0-918E-D247-0376DC1EFD50}.Release-DLL|x64.Build.0 = Release|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|Win32.ActiveCfg = Debug|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|x64.ActiveCfg = Debug|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|Win32.ActiveCfg = Release|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|x64.ActiveCfg = Release|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|Win32.Build.0 = Debug|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug|x64.Build.0 = Debug|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|Win32.Build.0 = Release|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release|x64.Build.0 = Release|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Debug-DLL|x64.Build.0 = Debug|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|Win32.Build.0 = Release|Win32 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|x64.ActiveCfg = Release|x64 + {C7E516E9-B80F-4BC1-A617-095FC6E14BC9}.Release-DLL|x64.Build.0 = Release|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|Win32.ActiveCfg = Debug|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|x64.ActiveCfg = Debug|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|Win32.ActiveCfg = Release|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|x64.ActiveCfg = Release|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|Win32.Build.0 = Debug|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug|x64.Build.0 = Debug|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|Win32.Build.0 = Release|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release|x64.Build.0 = Release|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Debug-DLL|x64.Build.0 = Debug|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|Win32.Build.0 = Release|Win32 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|x64.ActiveCfg = Release|x64 + {0E980562-3AA0-91B1-C590-85C9A899BE44}.Release-DLL|x64.Build.0 = Release|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|Win32.ActiveCfg = Debug|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|x64.ActiveCfg = Debug|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|Win32.ActiveCfg = Release|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|x64.ActiveCfg = Release|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|Win32.Build.0 = Debug|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug|x64.Build.0 = Debug|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|Win32.Build.0 = Release|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release|x64.Build.0 = Release|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Debug-DLL|x64.Build.0 = Debug|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|Win32.Build.0 = Release|Win32 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|x64.ActiveCfg = Release|x64 + {DFD51943-4906-8051-7D66-6A7D50E0D87E}.Release-DLL|x64.Build.0 = Release|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|Win32.ActiveCfg = Debug|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|x64.ActiveCfg = Debug|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|Win32.ActiveCfg = Release|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|x64.ActiveCfg = Release|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|Win32.Build.0 = Debug|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug|x64.Build.0 = Debug|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|Win32.Build.0 = Release|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release|x64.Build.0 = Release|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Debug-DLL|x64.Build.0 = Debug|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|Win32.Build.0 = Release|Win32 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|x64.ActiveCfg = Release|x64 + {16C713C6-062E-F71F-A44C-52DC35494B27}.Release-DLL|x64.Build.0 = Release|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|Win32.ActiveCfg = Debug|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|x64.ActiveCfg = Debug|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|Win32.ActiveCfg = Release|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|x64.ActiveCfg = Release|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|Win32.Build.0 = Debug|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug|x64.Build.0 = Debug|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|Win32.Build.0 = Release|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release|x64.Build.0 = Release|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Debug-DLL|x64.Build.0 = Debug|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|Win32.Build.0 = Release|Win32 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|x64.ActiveCfg = Release|x64 + {345EA50E-BCD4-DAC7-E1C8-DDA6291B75E2}.Release-DLL|x64.Build.0 = Release|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|Win32.ActiveCfg = Debug|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|x64.ActiveCfg = Debug|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|Win32.ActiveCfg = Release|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|x64.ActiveCfg = Release|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|Win32.Build.0 = Debug|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug|x64.Build.0 = Debug|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|Win32.Build.0 = Release|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release|x64.Build.0 = Release|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Debug-DLL|x64.Build.0 = Debug|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|Win32.Build.0 = Release|Win32 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|x64.ActiveCfg = Release|x64 + {EEBEFA75-C625-C823-FE96-9AD64887B57D}.Release-DLL|x64.Build.0 = Release|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|Win32.ActiveCfg = Debug|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|x64.ActiveCfg = Debug|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|Win32.ActiveCfg = Release|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|x64.ActiveCfg = Release|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|Win32.Build.0 = Debug|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug|x64.Build.0 = Debug|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|Win32.Build.0 = Release|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release|x64.Build.0 = Release|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Debug-DLL|x64.Build.0 = Debug|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|Win32.Build.0 = Release|Win32 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|x64.ActiveCfg = Release|x64 + {4B9EBBAE-D838-EC09-0B10-2D4520FBC0FF}.Release-DLL|x64.Build.0 = Release|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|Win32.ActiveCfg = Debug|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|x64.ActiveCfg = Debug|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|Win32.ActiveCfg = Release|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|x64.ActiveCfg = Release|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|Win32.Build.0 = Debug|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug|x64.Build.0 = Debug|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|Win32.Build.0 = Release|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release|x64.Build.0 = Release|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Debug-DLL|x64.Build.0 = Debug|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|Win32.Build.0 = Release|Win32 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|x64.ActiveCfg = Release|x64 + {F0A06723-2E3E-FE97-34B7-A2BA26D98B83}.Release-DLL|x64.Build.0 = Release|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|Win32.ActiveCfg = Debug|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|x64.ActiveCfg = Debug|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|Win32.ActiveCfg = Release|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|x64.ActiveCfg = Release|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|Win32.Build.0 = Debug|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug|x64.Build.0 = Debug|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|Win32.Build.0 = Release|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release|x64.Build.0 = Release|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Debug-DLL|x64.Build.0 = Debug|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|Win32.Build.0 = Release|Win32 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|x64.ActiveCfg = Release|x64 + {0F761FF3-342A-C429-711F-F76181BAA52D}.Release-DLL|x64.Build.0 = Release|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|Win32.ActiveCfg = Debug|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|x64.ActiveCfg = Debug|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|Win32.ActiveCfg = Release|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|x64.ActiveCfg = Release|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|Win32.Build.0 = Debug|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug|x64.Build.0 = Debug|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|Win32.Build.0 = Release|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release|x64.Build.0 = Release|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Debug-DLL|x64.Build.0 = Debug|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|Win32.Build.0 = Release|Win32 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|x64.ActiveCfg = Release|x64 + {6EC72045-98CB-8A8D-9788-BC94209E23C8}.Release-DLL|x64.Build.0 = Release|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|Win32.ActiveCfg = Debug|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|x64.ActiveCfg = Debug|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|Win32.ActiveCfg = Release|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|x64.ActiveCfg = Release|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|Win32.Build.0 = Debug|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug|x64.Build.0 = Debug|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|Win32.Build.0 = Release|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release|x64.Build.0 = Release|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Debug-DLL|x64.Build.0 = Debug|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|Win32.Build.0 = Release|Win32 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|x64.ActiveCfg = Release|x64 + {5753B14F-0C69-2E56-6264-5541B2DCDF67}.Release-DLL|x64.Build.0 = Release|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|Win32.ActiveCfg = Debug|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|x64.ActiveCfg = Debug|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|Win32.ActiveCfg = Release|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|x64.ActiveCfg = Release|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|Win32.Build.0 = Debug|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug|x64.Build.0 = Debug|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|Win32.Build.0 = Release|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release|x64.Build.0 = Release|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Debug-DLL|x64.Build.0 = Debug|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|Win32.Build.0 = Release|Win32 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|x64.ActiveCfg = Release|x64 + {962380E0-1C06-8917-8F7F-1A02E0E93BE7}.Release-DLL|x64.Build.0 = Release|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|Win32.ActiveCfg = Debug|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|x64.ActiveCfg = Debug|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|Win32.ActiveCfg = Release|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|x64.ActiveCfg = Release|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|Win32.Build.0 = Debug|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug|x64.Build.0 = Debug|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|Win32.Build.0 = Release|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release|x64.Build.0 = Release|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Debug-DLL|x64.Build.0 = Debug|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|Win32.Build.0 = Release|Win32 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|x64.ActiveCfg = Release|x64 + {82878169-5A89-FD1E-31A6-E9F07BB92418}.Release-DLL|x64.Build.0 = Release|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|Win32.ActiveCfg = Debug|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|x64.ActiveCfg = Debug|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|Win32.ActiveCfg = Release|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|x64.ActiveCfg = Release|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|Win32.Build.0 = Debug|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug|x64.Build.0 = Debug|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|Win32.Build.0 = Release|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release|x64.Build.0 = Release|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Debug-DLL|x64.Build.0 = Debug|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|Win32.Build.0 = Release|Win32 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|x64.ActiveCfg = Release|x64 + {485E6713-487D-F274-BDE7-5D29300C93FE}.Release-DLL|x64.Build.0 = Release|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|x64.ActiveCfg = Debug|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|Win32.ActiveCfg = Release|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|x64.ActiveCfg = Release|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|Win32.Build.0 = Debug|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug|x64.Build.0 = Debug|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|Win32.Build.0 = Release|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release|x64.Build.0 = Release|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Debug-DLL|x64.Build.0 = Debug|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|Win32.Build.0 = Release|Win32 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|x64.ActiveCfg = Release|x64 + {03A65361-E139-5344-1868-8E8FC269C6E6}.Release-DLL|x64.Build.0 = Release|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|Win32.ActiveCfg = Debug|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|x64.ActiveCfg = Debug|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|Win32.ActiveCfg = Release|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|x64.ActiveCfg = Release|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|Win32.Build.0 = Debug|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug|x64.Build.0 = Debug|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|Win32.Build.0 = Release|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release|x64.Build.0 = Release|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Debug-DLL|x64.Build.0 = Debug|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|Win32.Build.0 = Release|Win32 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|x64.ActiveCfg = Release|x64 + {B3F26242-A43D-4F77-A84C-0F478741A061}.Release-DLL|x64.Build.0 = Release|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|Win32.ActiveCfg = Debug|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|x64.ActiveCfg = Debug|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|Win32.ActiveCfg = Release|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|x64.ActiveCfg = Release|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|Win32.Build.0 = Debug|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug|x64.Build.0 = Debug|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|Win32.Build.0 = Release|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release|x64.Build.0 = Release|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Debug-DLL|x64.Build.0 = Debug|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|Win32.Build.0 = Release|Win32 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|x64.ActiveCfg = Release|x64 + {67458AF8-A122-7740-F195-C2E74A106FAB}.Release-DLL|x64.Build.0 = Release|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|Win32.ActiveCfg = Debug|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|x64.ActiveCfg = Debug|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|Win32.ActiveCfg = Release|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|x64.ActiveCfg = Release|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|Win32.Build.0 = Debug|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug|x64.Build.0 = Debug|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|Win32.Build.0 = Release|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release|x64.Build.0 = Release|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Debug-DLL|x64.Build.0 = Debug|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|Win32.Build.0 = Release|Win32 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|x64.ActiveCfg = Release|x64 + {B3B7D225-3C04-72F9-4C2C-1C3F3136FE58}.Release-DLL|x64.Build.0 = Release|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|Win32.ActiveCfg = Debug|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|x64.ActiveCfg = Debug|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|Win32.ActiveCfg = Release|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|x64.ActiveCfg = Release|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|Win32.Build.0 = Debug|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug|x64.Build.0 = Debug|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|Win32.Build.0 = Release|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release|x64.Build.0 = Release|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Debug-DLL|x64.Build.0 = Debug|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|Win32.Build.0 = Release|Win32 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|x64.ActiveCfg = Release|x64 + {A9092608-E45E-AC96-6533-A6E7DD98211D}.Release-DLL|x64.Build.0 = Release|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|Win32.ActiveCfg = Debug|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|x64.ActiveCfg = Debug|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|Win32.ActiveCfg = Release|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|x64.ActiveCfg = Release|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|Win32.Build.0 = Debug|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug|x64.Build.0 = Debug|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|Win32.Build.0 = Release|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release|x64.Build.0 = Release|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Debug-DLL|x64.Build.0 = Debug|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|Win32.Build.0 = Release|Win32 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|x64.ActiveCfg = Release|x64 + {EA78D290-4098-FF04-C647-013F6B81E4E7}.Release-DLL|x64.Build.0 = Release|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|Win32.ActiveCfg = Debug|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|x64.ActiveCfg = Debug|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|Win32.ActiveCfg = Release|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|x64.ActiveCfg = Release|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|Win32.Build.0 = Debug|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug|x64.Build.0 = Debug|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|Win32.Build.0 = Release|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release|x64.Build.0 = Release|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Debug-DLL|x64.Build.0 = Debug|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|Win32.Build.0 = Release|Win32 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|x64.ActiveCfg = Release|x64 + {23DF0572-DBF1-08DA-8EAD-8508354C90A4}.Release-DLL|x64.Build.0 = Release|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|Win32.ActiveCfg = Debug|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|x64.ActiveCfg = Debug|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|Win32.ActiveCfg = Release|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|x64.ActiveCfg = Release|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|Win32.Build.0 = Debug|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug|x64.Build.0 = Debug|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|Win32.Build.0 = Release|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release|x64.Build.0 = Release|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Debug-DLL|x64.Build.0 = Debug|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|Win32.Build.0 = Release|Win32 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|x64.ActiveCfg = Release|x64 + {7819A11E-607E-F0C0-FC47-C704CF7D818C}.Release-DLL|x64.Build.0 = Release|x64 {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|Win32.ActiveCfg = Debug|Win32 {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Debug|x64.ActiveCfg = Debug|x64 {4CAEC7C3-5354-D474-FB3D-ABED6AD2E1DA}.Release|Win32.ActiveCfg = Release|Win32 @@ -2010,6 +2970,22 @@ Global {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.Build.0 = Release|Win32 {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.ActiveCfg = Release|x64 {117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.Build.0 = Release|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|Win32.ActiveCfg = Debug|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|x64.ActiveCfg = Debug|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|Win32.ActiveCfg = Release|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|x64.ActiveCfg = Release|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|Win32.Build.0 = Debug|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug|x64.Build.0 = Debug|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|Win32.Build.0 = Release|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release|x64.Build.0 = Release|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Debug-DLL|x64.Build.0 = Debug|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|Win32.Build.0 = Release|Win32 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.ActiveCfg = Release|x64 + {6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.Build.0 = Release|x64 {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.ActiveCfg = Debug|Win32 {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.ActiveCfg = Debug|x64 {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.ActiveCfg = Release|Win32 @@ -2154,6 +3130,22 @@ Global {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|Win32.Build.0 = Release|Win32 {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|x64.ActiveCfg = Release|x64 {6E60B394-E17D-658A-6648-A2E6E183226F}.Release-DLL|x64.Build.0 = Release|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|Win32.ActiveCfg = Debug|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|x64.ActiveCfg = Debug|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|Win32.ActiveCfg = Release|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|x64.ActiveCfg = Release|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|Win32.Build.0 = Debug|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|x64.Build.0 = Debug|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|Win32.Build.0 = Release|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|x64.Build.0 = Release|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|x64.Build.0 = Debug|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|Win32.Build.0 = Release|Win32 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.ActiveCfg = Release|x64 + {B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.Build.0 = Release|x64 {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|Win32.ActiveCfg = Debug|Win32 {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Debug|x64.ActiveCfg = Debug|x64 {62D58A08-3B5E-D6A8-ABBB-77995AA0A8C6}.Release|Win32.ActiveCfg = Release|Win32 @@ -2346,6 +3338,22 @@ Global {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|Win32.Build.0 = Release|Win32 {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|x64.ActiveCfg = Release|x64 {BF9F909B-8266-6AAC-A81B-05F8210AA8CA}.Release-DLL|x64.Build.0 = Release|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|x64.ActiveCfg = Debug|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|Win32.ActiveCfg = Release|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|x64.ActiveCfg = Release|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|Win32.Build.0 = Debug|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|x64.Build.0 = Debug|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|Win32.Build.0 = Release|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|x64.Build.0 = Release|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug-DLL|x64.Build.0 = Debug|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|Win32.Build.0 = Release|Win32 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|x64.ActiveCfg = Release|x64 + {B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release-DLL|x64.Build.0 = Release|x64 {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|Win32.ActiveCfg = Debug|Win32 {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Debug|x64.ActiveCfg = Debug|x64 {E765AC67-E4E5-C350-59A1-C6CA2BD9F64B}.Release|Win32.ActiveCfg = Release|Win32 @@ -2378,6 +3386,22 @@ Global {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|Win32.Build.0 = Release|Win32 {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|x64.ActiveCfg = Release|x64 {4A48E5A5-2E69-ED6D-063C-C297180A54D0}.Release-DLL|x64.Build.0 = Release|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug|Win32.ActiveCfg = Debug|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug|x64.ActiveCfg = Debug|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Release|Win32.ActiveCfg = Release|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Release|x64.ActiveCfg = Release|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug|Win32.Build.0 = Debug|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug|x64.Build.0 = Debug|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Release|Win32.Build.0 = Release|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Release|x64.Build.0 = Release|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Debug-DLL|x64.Build.0 = Debug|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|Win32.Build.0 = Release|Win32 + {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|x64.ActiveCfg = Release|x64 + {63422647-93FA-46BB-4827-95473D9D503C}.Release-DLL|x64.Build.0 = Release|x64 {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|Win32.ActiveCfg = Debug|Win32 {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Debug|x64.ActiveCfg = Debug|x64 {9889A80C-F1D7-99C9-FE7E-657724BEDC62}.Release|Win32.ActiveCfg = Release|Win32 @@ -2522,6 +3546,22 @@ Global {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|Win32.Build.0 = Release|Win32 {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|x64.ActiveCfg = Release|x64 {89A119C5-0F62-33B8-5D08-1FAA29DA7DEB}.Release-DLL|x64.Build.0 = Release|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|x64.ActiveCfg = Debug|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|Win32.ActiveCfg = Release|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|x64.ActiveCfg = Release|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|Win32.Build.0 = Debug|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug|x64.Build.0 = Debug|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|Win32.Build.0 = Release|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release|x64.Build.0 = Release|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Debug-DLL|x64.Build.0 = Debug|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|Win32.Build.0 = Release|Win32 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|x64.ActiveCfg = Release|x64 + {9E0A2239-20D5-DB2D-CA0D-69F24E3416E7}.Release-DLL|x64.Build.0 = Release|x64 {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|Win32.ActiveCfg = Debug|Win32 {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Debug|x64.ActiveCfg = Debug|x64 {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release|Win32.ActiveCfg = Release|Win32 @@ -2538,6 +3578,22 @@ Global {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|Win32.Build.0 = Release|Win32 {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|x64.ActiveCfg = Release|x64 {E35C24A0-8725-E773-FE78-CC0C67071EF7}.Release-DLL|x64.Build.0 = Release|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|Win32.ActiveCfg = Debug|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|x64.ActiveCfg = Debug|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|Win32.ActiveCfg = Release|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|x64.ActiveCfg = Release|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|Win32.Build.0 = Debug|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug|x64.Build.0 = Debug|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|Win32.Build.0 = Release|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release|x64.Build.0 = Release|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Debug-DLL|x64.Build.0 = Debug|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|Win32.Build.0 = Release|Win32 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|x64.ActiveCfg = Release|x64 + {658D7F7F-9628-6545-743C-D949301DC5DC}.Release-DLL|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 5c72cdc4c12340ca859b22ea94bdbd12fcd484b4 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Mon, 15 Aug 2016 17:32:43 -0700 Subject: [PATCH 190/202] [wip] first C server test but crashing --- Makefile | 45 ++++ build.yaml | 16 ++ examples/c/helloworld/greeter_async_server.c | 3 +- test/c/end2end/id_serialization.cc | 7 +- test/c/end2end/id_serialization.h | 6 +- test/c/end2end/server_end2end_test.c | 179 ++++++++++++++ test/c/end2end/server_end2end_test.h | 37 +++ tools/run_tests/sources_and_headers.json | 24 ++ tools/run_tests/tests.json | 21 ++ vsprojects/buildtests_c.sln | 148 ++++++++++++ .../grpc_c_server_end2end_test.vcxproj | 221 ++++++++++++++++++ ...grpc_c_server_end2end_test.vcxproj.filters | 44 ++++ 12 files changed, 743 insertions(+), 8 deletions(-) create mode 100644 test/c/end2end/server_end2end_test.c create mode 100644 test/c/end2end/server_end2end_test.h create mode 100644 vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj create mode 100644 vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj.filters diff --git a/Makefile b/Makefile index d8ac64cfd0af5..ff2c9f10d3282 100644 --- a/Makefile +++ b/Makefile @@ -961,6 +961,7 @@ systemtap_dep_error: stop: @false +grpc_c_server_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_server_end2end_test alarm_cpp_test: $(BINDIR)/$(CONFIG)/alarm_cpp_test async_end2end_test: $(BINDIR)/$(CONFIG)/async_end2end_test auth_property_iterator_test: $(BINDIR)/$(CONFIG)/auth_property_iterator_test @@ -1297,6 +1298,7 @@ endif buildtests: buildtests_c buildtests_core buildtests_cxx buildtests_c: privatelibs_c \ + $(BINDIR)/$(CONFIG)/grpc_c_server_end2end_test \ buildtests_core: privatelibs_core \ $(BINDIR)/$(CONFIG)/alarm_test \ @@ -1598,6 +1600,8 @@ test: test_c test_core test_cxx flaky_test: flaky_test_c flaky_test_core flaky_test_cxx test_c: buildtests_c + $(E) "[RUN] Testing grpc_c_server_end2end_test" + $(Q) $(BINDIR)/$(CONFIG)/grpc_c_server_end2end_test || ( echo test grpc_c_server_end2end_test failed ; exit 1 ) flaky_test_c: buildtests_c @@ -7282,6 +7286,47 @@ endif # All of the test targets, and protoc plugins +GRPC_C_SERVER_END2END_TEST_SRC = \ + $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c \ + $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c \ + test/c/end2end/server_end2end_test.c \ + +GRPC_C_SERVER_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_C_SERVER_END2END_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/grpc_c_server_end2end_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/grpc_c_server_end2end_test: $(GRPC_C_SERVER_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(GRPC_C_SERVER_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_c_server_end2end_test + +endif + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/echo_messages.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/echo.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +$(OBJDIR)/$(CONFIG)/test/c/end2end/server_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_c.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_grpc_c_server_end2end_test: $(GRPC_C_SERVER_END2END_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(GRPC_C_SERVER_END2END_TEST_OBJS:.o=.dep) +endif +endif + +# Force compilation of proto files before building code that could potentially depend on them + $(OBJDIR)/$(CONFIG)/test/c/end2end/server_end2end_test.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pbc.c $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.pbc.c $(GENDIR)/src/proto/grpc/testing/echo.grpc.pbc.c + + ALARM_CPP_TEST_SRC = \ test/cpp/common/alarm_cpp_test.cc \ diff --git a/build.yaml b/build.yaml index 84f1e19c18bae..68fd12a0d3507 100644 --- a/build.yaml +++ b/build.yaml @@ -1304,6 +1304,22 @@ libs: - winsock - global targets: +- name: grpc_c_server_end2end_test + gtest: false + build: test + language: c + headers: + - test/c/end2end/server_end2end_test.h + src: + - src/proto/grpc/testing/echo_messages.proto + - src/proto/grpc/testing/echo.proto + - test/c/end2end/server_end2end_test.c + deps: + - grpc_c + - grpc_test_util + - grpc + - gpr_test_util + - gpr - name: alarm_cpp_test gtest: true build: test diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index 6ea0a0bfe425b..33441b8b0466c 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -117,7 +117,8 @@ int main(int argc, char **argv) { assert(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); if (!ok) { async_server_data *data_new = (async_server_data *)tag; - data_new->reply.message.arg = strdup(""); + char *bad_reply = calloc(1, 1); + data_new->reply.message.arg = bad_reply; helloworld_Greeter_SayHello_ServerFinish(writer, &data_new->reply, GRPC_STATUS_DATA_LOSS, data_new); diff --git a/test/c/end2end/id_serialization.cc b/test/c/end2end/id_serialization.cc index 30caf2d3e9ce4..1e6d99cb037eb 100644 --- a/test/c/end2end/id_serialization.cc +++ b/test/c/end2end/id_serialization.cc @@ -32,19 +32,18 @@ */ #include -#include #include "test/c/end2end/id_serialization.h" /** * Serialization interface that does not transform data. Base implementation of GRPC_serialization_impl. */ -grpc_message GRPC_id_serialize(const grpc_message input) { +GRPC_message GRPC_id_serialize(const GRPC_message input) { void *tmp = malloc(input.length); memcpy(tmp, input.data, input.length); - return (grpc_message) { tmp, input.length }; + return (GRPC_message) { tmp, input.length }; } -void GRPC_id_deserialize(const grpc_message input, void *output) { +void GRPC_id_deserialize(const GRPC_message input, void *output) { memcpy(output, input.data, input.length); } diff --git a/test/c/end2end/id_serialization.h b/test/c/end2end/id_serialization.h index e3dc892c2cd30..623eb498bb071 100644 --- a/test/c/end2end/id_serialization.h +++ b/test/c/end2end/id_serialization.h @@ -36,11 +36,11 @@ #define GRPC_C_MOCK_SERIALIZATION_H #include -#include "src/c/message.h" +#include /* Serialization functions that doesn't do anything except duplicating the buffer */ -grpc_message GRPC_id_serialize(const grpc_message input); -void GRPC_id_deserialize(const grpc_message input, void *output); +GRPC_message GRPC_id_serialize(const GRPC_message input); +void GRPC_id_deserialize(const GRPC_message input, void *output); #endif // GRPC_C_MOCK_SERIALIZATION_H diff --git a/test/c/end2end/server_end2end_test.c b/test/c/end2end/server_end2end_test.c new file mode 100644 index 0000000000000..910cac02d2eae --- /dev/null +++ b/test/c/end2end/server_end2end_test.c @@ -0,0 +1,179 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +/** + * This tests both the C client and the server. + */ + +#include "test/c/end2end/server_end2end_test.h" +#include "src/proto/grpc/testing/echo.grpc.pbc.h" +#include +#include +#include +#include +#include + +/** + * Nanopb callbacks for string encoding/decoding. + */ + +static bool write_string_from_arg(pb_ostream_t *stream, const pb_field_t *field, + void *const *arg) { + const char *str = *arg; + if (!pb_encode_tag_for_field(stream, field)) return false; + + return pb_encode_string(stream, (uint8_t *)str, strlen(str)); +} + +/** + * This callback function reads a string from Nanopb stream and copies it into + * the callback args. + * Users need to free the string after use. + */ +static bool read_string_store_in_arg(pb_istream_t *stream, + const pb_field_t *field, void **arg) { + size_t len = stream->bytes_left; + char *str = malloc(len + 1); + if (!pb_read(stream, (uint8_t *) str, len)) return false; + str[len] = '\0'; + *arg = str; + return true; +} + +static void *client_thread(void *param) { + GRPC_channel *channel = GRPC_channel_create("0.0.0.0:50051"); + grpc_testing_EchoRequest request = {.message = {.arg = "gRPC-C", .funcs.encode = write_string_from_arg}}; + grpc_testing_EchoResponse response = {.message = {.funcs.decode = read_string_store_in_arg}}; + + GRPC_client_context *context = GRPC_client_context_create(channel); + GRPC_status status = grpc_testing_EchoTestService_Echo(context, request, &response); + GPR_ASSERT(status.ok); + GPR_ASSERT(status.code == GRPC_STATUS_OK); + GPR_ASSERT(response.message.arg != NULL); + GPR_ASSERT(strcmp(response.message.arg, "gRPC-C") == 0); + free(response.message.arg); + GRPC_client_context_destroy(&context); + + return NULL; +} + +typedef struct async_server_data { + GRPC_server_context *context; + grpc_testing_EchoRequest request; + grpc_testing_EchoResponse reply; +} async_server_data; + +int main(int argc, char **argv) { + GRPC_server *server = GRPC_build_server((GRPC_build_server_options){}); + GRPC_incoming_notification_queue *incoming = + GRPC_server_new_incoming_queue(server); + GRPC_server_listen_host(server, "0.0.0.0:50051"); + GRPC_registered_service *service = grpc_testing_EchoTestService_Register(server); + GRPC_server_start(server); + + // Start client + pthread_t tid; + pthread_create(&tid, NULL, client_thread, NULL); + + // Run server + { + async_server_data *data = calloc(sizeof(async_server_data), 1); + data->context = GRPC_server_context_create(server); + data->request.message.funcs.decode = read_string_store_in_arg; + data->reply.message.funcs.encode = write_string_from_arg; + + data->request.message.arg = NULL; + data->reply.message.arg = NULL; + + // Listen for this method + GRPC_server_async_response_writer *writer = + grpc_testing_EchoTestService_Echo_ServerRequest( + service, data->context, &data->request, + incoming, // incoming queue + incoming->cq, // processing queue - we can reuse the + // same underlying completion queue, or + // specify a different one here + data // tag for the completion queues + ); + + // Wait for incoming call + void *tag; + bool ok; + GRPC_completion_queue_operation_status queue_status = + GRPC_completion_queue_next(incoming->cq, &tag, &ok); + + GPR_ASSERT(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); + if (!ok) { + async_server_data *data_new = (async_server_data *) tag; + char *bad_reply = calloc(4, 1); + data_new->reply.message.arg = bad_reply; + + grpc_testing_EchoTestService_Echo_ServerFinish(writer, &data_new->reply, + GRPC_STATUS_DATA_LOSS, data_new); + } else { + // Process the request + async_server_data *data_new = (async_server_data *) tag; + char *input_str = data_new->request.message.arg; + size_t output_len = strlen(input_str); + char *output_str = malloc(output_len + 1); + sprintf(output_str, "%s", input_str); + data_new->reply.message.arg = output_str; + + grpc_testing_EchoTestService_Echo_ServerFinish(writer, &data_new->reply, + GRPC_STATUS_OK, data_new); + } + + // Wait for request termination + queue_status = GRPC_completion_queue_next(incoming->cq, &tag, &ok); + + GPR_ASSERT(queue_status == GRPC_COMPLETION_QUEUE_GOT_EVENT); + GPR_ASSERT(ok); + + // Clean up + { + async_server_data *data_new = (async_server_data *)tag; + free(data_new->request.message.arg); + free(data_new->reply.message.arg); + GRPC_server_context_destroy(&data_new->context); + free(data_new); + } + } + GRPC_server_shutdown(server); + GRPC_server_destroy(server); + + // Wait for client to return + pthread_join(tid, NULL); + + return 0; +} + diff --git a/test/c/end2end/server_end2end_test.h b/test/c/end2end/server_end2end_test.h new file mode 100644 index 0000000000000..7f3b3ad63bf6e --- /dev/null +++ b/test/c/end2end/server_end2end_test.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_C_SERVER_END2END_TEST_H +#define GRPC_C_SERVER_END2END_TEST_H + +#endif // GRPC_C_SERVER_END2END_TEST_H diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 01b3e30a1e6af..7832a47961695 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -1,6 +1,30 @@ [ + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_c", + "grpc_test_util" + ], + "headers": [ + "src/proto/grpc/testing/echo.grpc.pbc.h", + "src/proto/grpc/testing/echo.pbc.h", + "src/proto/grpc/testing/echo_messages.grpc.pbc.h", + "src/proto/grpc/testing/echo_messages.pbc.h", + "test/c/end2end/server_end2end_test.h" + ], + "language": "c", + "name": "grpc_c_server_end2end_test", + "src": [ + "test/c/end2end/server_end2end_test.c", + "test/c/end2end/server_end2end_test.h" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 80c3cdf649f6a..4525a8f62b808 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -1,6 +1,27 @@ [ + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "gtest": false, + "language": "c", + "name": "grpc_c_server_end2end_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index fdb63e2d65979..009c0b1b9a7d5 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -3,6 +3,58 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.21005.1 MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr", "vcxproj\.\gpr\gpr.vcxproj", "{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gpr_test_util", "vcxproj\.\gpr_test_util\gpr_test_util.vcxproj", "{EAB0A629-17A9-44DB-B5FF-E91A721FE037}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc.vcxproj", "{29D16885-7228-4C31-81ED-5F9187C7F2A9}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c", "vcxproj\.\grpc_c\grpc_c.vcxproj", "{8AC0CB05-6E3C-4A40-B45E-FDA77644F432}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_c_server_end2end_test", "vcxproj\test\grpc_c_server_end2end_test\grpc_c_server_end2end_test.vcxproj", "{16C2143B-0A13-AE30-7D09-05AD48928A8B}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} = {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_test_util", "vcxproj\.\grpc_test_util\grpc_test_util.vcxproj", "{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}" + ProjectSection(myProperties) = preProject + lib = "True" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -15,6 +67,102 @@ Global Release-DLL|x64 = Release-DLL|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|Win32.ActiveCfg = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|x64.ActiveCfg = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|Win32.ActiveCfg = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|x64.ActiveCfg = Release|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|Win32.Build.0 = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug|x64.Build.0 = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|Win32.Build.0 = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release|x64.Build.0 = Release|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Debug-DLL|x64.Build.0 = Debug|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|Win32.Build.0 = Release|Win32 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.ActiveCfg = Release|x64 + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}.Release-DLL|x64.Build.0 = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|Win32.ActiveCfg = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|x64.ActiveCfg = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|Win32.ActiveCfg = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|x64.ActiveCfg = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|Win32.Build.0 = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug|x64.Build.0 = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|Win32.Build.0 = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release|x64.Build.0 = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Debug-DLL|x64.Build.0 = Debug|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|Win32.Build.0 = Release|Win32 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.ActiveCfg = Release|x64 + {EAB0A629-17A9-44DB-B5FF-E91A721FE037}.Release-DLL|x64.Build.0 = Release|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|Win32.ActiveCfg = Debug|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|x64.ActiveCfg = Debug|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|Win32.ActiveCfg = Release|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|x64.ActiveCfg = Release|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|Win32.Build.0 = Debug|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug|x64.Build.0 = Debug|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|Win32.Build.0 = Release|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release|x64.Build.0 = Release|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 + {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.Build.0 = Release-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|Win32.ActiveCfg = Debug|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|x64.ActiveCfg = Debug|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|Win32.ActiveCfg = Release|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|x64.ActiveCfg = Release|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|Win32.Build.0 = Debug|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug|x64.Build.0 = Debug|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|Win32.Build.0 = Release|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release|x64.Build.0 = Release|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432}.Release-DLL|x64.Build.0 = Release-DLL|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug|Win32.ActiveCfg = Debug|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug|x64.ActiveCfg = Debug|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release|Win32.ActiveCfg = Release|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release|x64.ActiveCfg = Release|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug|Win32.Build.0 = Debug|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug|x64.Build.0 = Debug|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release|Win32.Build.0 = Release|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release|x64.Build.0 = Release|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Debug-DLL|x64.Build.0 = Debug|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release-DLL|Win32.Build.0 = Release|Win32 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release-DLL|x64.ActiveCfg = Release|x64 + {16C2143B-0A13-AE30-7D09-05AD48928A8B}.Release-DLL|x64.Build.0 = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|Win32.ActiveCfg = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|x64.ActiveCfg = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|Win32.ActiveCfg = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|x64.ActiveCfg = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|Win32.Build.0 = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug|x64.Build.0 = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|Win32.Build.0 = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release|x64.Build.0 = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Debug-DLL|x64.Build.0 = Debug|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|Win32.Build.0 = Release|Win32 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.ActiveCfg = Release|x64 + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}.Release-DLL|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj b/vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj new file mode 100644 index 0000000000000..bf90b34facf39 --- /dev/null +++ b/vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj @@ -0,0 +1,221 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {16C2143B-0A13-AE30-7D09-05AD48928A8B} + true + $(SolutionDir)IntDir\$(MSBuildProjectName)\ + + + + v100 + + + v110 + + + v120 + + + v140 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + grpc_c_server_end2end_test + static + Debug + static + Debug + + + grpc_c_server_end2end_test + static + Release + static + Release + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + false + + + Console + true + false + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + NotUsing + Level3 + MaxSpeed + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + true + true + MultiThreaded + true + None + false + + + Console + true + false + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {8AC0CB05-6E3C-4A40-B45E-FDA77644F432} + + + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + + + {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + + + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + diff --git a/vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj.filters b/vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj.filters new file mode 100644 index 0000000000000..be5852cf9f351 --- /dev/null +++ b/vsprojects/vcxproj/test/grpc_c_server_end2end_test/grpc_c_server_end2end_test.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + src\proto\grpc\testing + + + src\proto\grpc\testing + + + test\c\end2end + + + + + test\c\end2end + + + + + + {ccb8a77f-faae-dd98-f8e4-440e8574a5b2} + + + {603f4a65-ef2f-b555-914c-57c83ee65a1e} + + + {cd82adbc-37c2-95a8-c9f6-5eebefe3df94} + + + {a624be5d-7a6f-2587-7d32-f120a7986aa8} + + + {499adac1-80ef-ea7e-4801-afa678a16d58} + + + {732fac10-0230-bb50-1f77-35b41dbb6b0f} + + + {01fd2172-e60f-2ceb-3f0d-70f8da8401cb} + + + + From 13d7a836bfd34dd775657f9ba88a9bc800a0f6b9 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 16 Aug 2016 15:50:46 -0700 Subject: [PATCH 191/202] comment --- include/grpc_c/status.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/grpc_c/status.h b/include/grpc_c/status.h index f3c6227a55318..411c5e170743a 100644 --- a/include/grpc_c/status.h +++ b/include/grpc_c/status.h @@ -54,6 +54,7 @@ typedef struct GRPC_status { /** * Detailed status string from the server. + * This pointer is managed by client context. */ char *details; From 6afc935b9a0829db1e95de89ffd8f31be6aaeead Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 11:07:11 -0700 Subject: [PATCH 192/202] fix array bug, naming, and resource leaks --- src/c/array.c | 6 +++--- src/c/server.c | 21 ++++++++++++++++----- src/c/server.h | 2 +- src/compiler/c_generator.cc | 11 ++++++----- test/c/end2end/generic_end2end_test.cc | 1 + test/c/end2end/server_end2end_test.c | 1 + 6 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/c/array.c b/src/c/array.c index 35dfd31dd1505..d50e8bccd1dd6 100644 --- a/src/c/array.c +++ b/src/c/array.c @@ -39,7 +39,7 @@ void GRPC_array_init_impl(GRPC_array_state *state, void *data_ptr, void **data = data_ptr; state->capacity = 4; state->size = 0; - *data = gpr_malloc(elem_size * 4); + *data = gpr_malloc(4 * elem_size); } void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, @@ -48,7 +48,7 @@ void GRPC_array_pop_back_impl(GRPC_array_state *state, void *data_ptr, void **data = data_ptr; state->size--; while (state->size * 2 + 1 <= state->capacity) { - *data = gpr_realloc(*data, state->capacity / 2); + *data = gpr_realloc(*data, state->capacity / 2 * elem_size); state->capacity /= 2; } } @@ -58,7 +58,7 @@ void GRPC_array_ensure_capacity(GRPC_array_state *state, void *data_ptr, if (target_size <= state->capacity) return; void **data = data_ptr; while (state->capacity < target_size) { - *data = realloc(*data, state->capacity * 2); + *data = gpr_realloc(*data, state->capacity * 2 * elem_size); state->capacity *= 2; } } diff --git a/src/c/server.c b/src/c/server.c index 703ec153abd4a..5e306e1c72e8e 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "src/c/alloc.h" #include "src/c/init_shutdown.h" #include "src/c/server_context.h" @@ -48,7 +49,7 @@ GRPC_server *GRPC_build_server(GRPC_build_server_options options) { grpc_server *core_server = grpc_server_create(NULL, NULL); GRPC_server *server = GRPC_ALLOC_STRUCT( GRPC_server, {.core_server = core_server, - .internal_queue = grpc_completion_queue_create(NULL)}); + .event_queue = grpc_completion_queue_create(NULL)}); GRPC_array_init(server->registered_queues); GRPC_array_init(server->registered_services); return server; @@ -69,14 +70,16 @@ void GRPC_server_start(GRPC_server *server) { } void GRPC_server_shutdown(GRPC_server *server) { - grpc_server_shutdown_and_notify(server->core_server, server->internal_queue, + grpc_server_shutdown_and_notify(server->core_server, server->event_queue, NULL); // Wait for server to shutdown for (;;) { grpc_event ev = grpc_completion_queue_next( - server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + server->event_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); if (ev.type == GRPC_OP_COMPLETE) break; } + // Shutdown internal server queue + grpc_completion_queue_shutdown(server->event_queue); // Shutdown all registered queues size_t i; for (i = 0; i < server->registered_queues.state.size; i++) { @@ -88,21 +91,29 @@ void GRPC_server_shutdown(GRPC_server *server) { } for (;;) { grpc_event ev = grpc_completion_queue_next( - server->internal_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + server->event_queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); if (ev.type == GRPC_QUEUE_SHUTDOWN) break; } } void GRPC_server_destroy(GRPC_server *server) { size_t i; + // release queues for (i = 0; i < server->registered_queues.state.size; i++) { GRPC_incoming_notification_queue_destroy(server->registered_queues.data[i]); } GRPC_array_deinit(server->registered_queues); - grpc_completion_queue_destroy(server->internal_queue); + // release registered methods + for (i = 0; i < server->registered_services.state.size; i++) { + GRPC_array_deinit(server->registered_services.data[i].registered_methods); + } + GRPC_array_deinit(server->registered_services); + + grpc_completion_queue_destroy(server->event_queue); grpc_server_destroy(server->core_server); + gpr_free(server); } GRPC_registered_service *GRPC_server_add_service( diff --git a/src/c/server.h b/src/c/server.h index 9215ad4fba688..f077cb314b1d0 100644 --- a/src/c/server.h +++ b/src/c/server.h @@ -64,7 +64,7 @@ struct GRPC_server { GRPC_array(GRPC_registered_service) registered_services; // used to monitor server events - grpc_completion_queue *internal_queue; + grpc_completion_queue *event_queue; // async diff --git a/src/compiler/c_generator.cc b/src/compiler/c_generator.cc index d369db38bddfe..b49f3fbf0b9d4 100644 --- a/src/compiler/c_generator.cc +++ b/src/compiler/c_generator.cc @@ -495,11 +495,12 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, printer->Print(*vars, "enum {\n"); for (int i = 0; i < service->method_count(); i++) { + auto inner_vars = *vars; auto method = service->method(i); - (*vars)["Method"] = method->name(); - (*vars)["Index"] = std::to_string(static_cast(i)); + inner_vars["Method"] = method->name(); + inner_vars["Index"] = std::to_string(static_cast(i)); printer->Print( - *vars, + inner_vars, " GRPC_METHOD_INDEX_$CPrefix$$Service$_$Method$ = $Index$,\n"); } @@ -507,7 +508,7 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, std::to_string(static_cast(service->method_count())); printer->Print( *vars, - " GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$ = $MethodCount$\n" + " GRPC_METHOD_COUNT_$CPrefix$$Service$ = $MethodCount$\n" "};\n" "\n"); @@ -516,7 +517,7 @@ void PrintSourceServiceDeclaration(Printer *printer, const Service *service, "*$CPrefix$$Service$_Register(GRPC_server *server) {\n" " return GRPC_server_add_service(server, " "GRPC_service_$CPrefix$$Service$, " - "GRPC_METHOD_COUNT_$CPrefix$$Service$_$Method$);\n" + "GRPC_METHOD_COUNT_$CPrefix$$Service$);\n" "}\n" "\n"); } diff --git a/test/c/end2end/generic_end2end_test.cc b/test/c/end2end/generic_end2end_test.cc index 592124366ca4d..89fbe1eac91ee 100644 --- a/test/c/end2end/generic_end2end_test.cc +++ b/test/c/end2end/generic_end2end_test.cc @@ -74,6 +74,7 @@ extern "C" { * This test calls the codegen layer directly instead of exercising generated code. * As of early July 2016, this C API does not support creating servers, so we pull in a server implementation for C++ * and put this test under the C++ build. + * TODO(yifeit): Rewrite this in C after we have support for all types of API in server */ using grpc::testing::kTlsCredentialsType; diff --git a/test/c/end2end/server_end2end_test.c b/test/c/end2end/server_end2end_test.c index 910cac02d2eae..d89eefad515c7 100644 --- a/test/c/end2end/server_end2end_test.c +++ b/test/c/end2end/server_end2end_test.c @@ -83,6 +83,7 @@ static void *client_thread(void *param) { GPR_ASSERT(strcmp(response.message.arg, "gRPC-C") == 0); free(response.message.arg); GRPC_client_context_destroy(&context); + GRPC_channel_destroy(&channel); return NULL; } From 8f8ee5975179b90e98e8ea83b861ab9d52f61816 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 11:12:57 -0700 Subject: [PATCH 193/202] fix one more memleak --- src/c/client_context.c | 6 ++---- src/c/context.c | 8 ++++++++ src/c/context.h | 2 ++ src/c/server_context.c | 5 +---- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/c/client_context.c b/src/c/client_context.c index aa58fc7a4c164..7207c3756a2cb 100644 --- a/src/c/client_context.c +++ b/src/c/client_context.c @@ -48,13 +48,11 @@ GRPC_client_context *GRPC_client_context_create(grpc_channel *chan) { } void GRPC_client_context_destroy(GRPC_client_context **context) { + GRPC_context_destroy(GRPC_client_context_to_base(*context)); if ((*context)->status.details) { gpr_free((*context)->status.details); } - if ((*context)->call) { - grpc_call_destroy((*context)->call); - (*context)->call = NULL; - } + gpr_free(*context); *context = NULL; } diff --git a/src/c/context.c b/src/c/context.c index 5deb7dae36ea3..43ebc38fb5013 100644 --- a/src/c/context.c +++ b/src/c/context.c @@ -37,3 +37,11 @@ void GRPC_context_set_serialization_impl( GRPC_context *context, grpc_serialization_impl serialization_impl) { context->serialization_impl = serialization_impl; } + +void GRPC_context_destroy(GRPC_context *context) { + if (context->call) { + grpc_call_destroy(context->call); + context->call = NULL; + } + grpc_metadata_array_destroy(&context->recv_metadata_array); +} diff --git a/src/c/context.h b/src/c/context.h index c4ff59cc7e9ec..3fb87aed57255 100644 --- a/src/c/context.h +++ b/src/c/context.h @@ -64,4 +64,6 @@ struct GRPC_context { GRPC_C_CONTEXT_BASE_MEMBERS }; +void GRPC_context_destroy(GRPC_context *context); + #endif // GRPC_C_INTERNAL_CONTEXT_H diff --git a/src/c/server_context.c b/src/c/server_context.c index 86e7d40e9d1ff..7494bf182ed9b 100644 --- a/src/c/server_context.c +++ b/src/c/server_context.c @@ -54,10 +54,7 @@ GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context) { } void GRPC_server_context_destroy(GRPC_server_context **context) { - if ((*context)->call) { - grpc_call_destroy((*context)->call); - (*context)->call = NULL; - } + GRPC_context_destroy(GRPC_server_context_to_base(*context)); gpr_free(*context); *context = NULL; } From 6062cd04ffdee25f7b98e720913787bc09487a28 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 14:50:39 -0700 Subject: [PATCH 194/202] commenting --- include/grpc_c/channel.h | 1 + include/grpc_c/client_context.h | 1 + include/grpc_c/completion_queue.h | 48 ++++++++++++++++++++------ include/grpc_c/server.h | 27 +++++++++++++++ include/grpc_c/server_context.h | 2 -- include/grpc_c/server_incoming_queue.h | 1 + src/c/server_context.h | 2 ++ 7 files changed, 69 insertions(+), 13 deletions(-) diff --git a/include/grpc_c/channel.h b/include/grpc_c/channel.h index 56c97a54a2de2..5657b4669c88d 100644 --- a/include/grpc_c/channel.h +++ b/include/grpc_c/channel.h @@ -37,6 +37,7 @@ #include GRPC_channel *GRPC_channel_create(const char *const target); + void GRPC_channel_destroy(GRPC_channel **channel); #endif /* GRPC_C_CHANNEL_H */ diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index 2d06006edc285..929afe091969b 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -38,6 +38,7 @@ #include GRPC_client_context *GRPC_client_context_create(GRPC_channel *chan); + void GRPC_client_context_destroy(GRPC_client_context **context); /** diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 3ad2913eaddf7..4293a1c161eee 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -39,30 +39,56 @@ typedef struct gpr_timespec GRPC_timespec; -/** Tri-state return for GRPC_commit_ops_and_wait */ +/** Tri-state return for GRPC_completion_queue_next */ typedef enum GRPC_completion_queue_next_status { - GRPC_COMPLETION_QUEUE_SHUTDOWN, /* The completion queue has been shutdown. */ - GRPC_COMPLETION_QUEUE_GOT_EVENT, /* Got a new event; \a tag will be filled in - with its */ - /* associated value; \a ok indicating its success. */ - GRPC_COMPLETION_QUEUE_TIMEOUT /* deadline was reached. */ + /** + * The completion queue has been shutdown. + * It is guaranteed no more events will be posted. + * The listening thread may exit. + */ + GRPC_COMPLETION_QUEUE_SHUTDOWN, + + /* Got a new event; \a tag will be filled in with its */ + /* associated value; \a ok indicating its success. */ + GRPC_COMPLETION_QUEUE_GOT_EVENT, + + /* Deadline was reached. */ + GRPC_COMPLETION_QUEUE_TIMEOUT } GRPC_completion_queue_operation_status; -/** Creates a completion queue. You can listen for new events about calls on the - * queue. */ +/** + * Creates a completion queue. You can listen for new events on it. + */ GRPC_completion_queue *GRPC_completion_queue_create(); +/** + * Shuts down the completion queue. Call GRPC_completion_queue_shutdown_wait + * to drain all pending events before destroying this queue. + */ void GRPC_completion_queue_shutdown(GRPC_completion_queue *cq); -/** Destroys the completion queue and frees resources. The queue must be fully - * shutdown before this call. */ +/** + * Destroys the completion queue and frees resources. The queue must be fully + * shutdown before this call. + */ void GRPC_completion_queue_destroy(GRPC_completion_queue *cq); -/** Swallows events and blocks until it sees the shutdown event */ +/** + * Swallows events and blocks until it sees the shutdown event. + */ void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq); +/** + * Wait for a new event on this completion queue. The event may represent completion of a + * read or write operation, or an incoming call (applicable to server) etc. + * \a ok indicates if the operation is successful. + */ GRPC_completion_queue_operation_status GRPC_completion_queue_next( GRPC_completion_queue *cq, void **tag, bool *ok); + +/** + * Same as GRPC_completion_queue_next, but lets you specify an execution deadline. + */ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline( GRPC_completion_queue *cq, GRPC_timespec deadline, void **tag, bool *ok); diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h index f3e58c2aaa9a7..bbae727cbe148 100644 --- a/include/grpc_c/server.h +++ b/include/grpc_c/server.h @@ -37,14 +37,41 @@ #include typedef struct GRPC_build_server_options { + int max_message_size; } GRPC_build_server_options; +/** + * Creates a server instance. + */ GRPC_server *GRPC_build_server(GRPC_build_server_options options); + +/** + * Gets a new completion queue from the server used to monitor incoming requests. + * There is no need to manually free this queue. + */ GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue( GRPC_server *server); + +/** + * Instructs the server to listening on an address:port combination. + */ void GRPC_server_listen_host(GRPC_server *server, const char *host); + +/** + * Start listening for requests. The server cannot be modified beyond this point. + */ void GRPC_server_start(GRPC_server *server); + +/** + * A blocking call. Shuts down the server. + * After it returns, no new calls or connections will be admitted. + * Existing calls will be allowed to complete. + */ void GRPC_server_shutdown(GRPC_server *server); + +/** + * Frees the server and associated resources. + */ void GRPC_server_destroy(GRPC_server *server); #endif /* GRPC_C_SERVER_H */ diff --git a/include/grpc_c/server_context.h b/include/grpc_c/server_context.h index 040f6e0e51700..11c87ae00dde5 100644 --- a/include/grpc_c/server_context.h +++ b/include/grpc_c/server_context.h @@ -40,6 +40,4 @@ GRPC_server_context *GRPC_server_context_create(GRPC_server *server); void GRPC_server_context_destroy(GRPC_server_context **context); -GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context); - #endif /* GRPC_C_SERVER_CONTEXT_H */ diff --git a/include/grpc_c/server_incoming_queue.h b/include/grpc_c/server_incoming_queue.h index d14789a6ac760..8c3fdeac41711 100644 --- a/include/grpc_c/server_incoming_queue.h +++ b/include/grpc_c/server_incoming_queue.h @@ -37,6 +37,7 @@ #include struct GRPC_incoming_notification_queue { + /** Call GRPC_completion_queue_next on cq to consume incoming RPC calls */ GRPC_completion_queue *cq; }; diff --git a/src/c/server_context.h b/src/c/server_context.h index 0f51c78c85251..7a445e168eea3 100644 --- a/src/c/server_context.h +++ b/src/c/server_context.h @@ -53,4 +53,6 @@ struct GRPC_server_context { grpc_status_code server_return_status; }; +GRPC_context *GRPC_server_context_to_base(GRPC_server_context *server_context); + #endif // GRPC_C_INTERNAL_SERVER_CONTEXT_H From b39540dc66798a483e79f2c90c4a87c0586c14ec Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 14:52:17 -0700 Subject: [PATCH 195/202] formatting --- include/grpc_c/completion_queue.h | 8 +++++--- include/grpc_c/server.h | 6 ++++-- src/c/server.c | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/include/grpc_c/completion_queue.h b/include/grpc_c/completion_queue.h index 4293a1c161eee..96b350155c2ad 100644 --- a/include/grpc_c/completion_queue.h +++ b/include/grpc_c/completion_queue.h @@ -79,15 +79,17 @@ void GRPC_completion_queue_destroy(GRPC_completion_queue *cq); void GRPC_completion_queue_shutdown_wait(GRPC_completion_queue *cq); /** - * Wait for a new event on this completion queue. The event may represent completion of a - * read or write operation, or an incoming call (applicable to server) etc. + * Wait for a new event on this completion queue. The event may represent + * completion of a read or write operation, or an incoming call (applicable to + * server) etc. * \a ok indicates if the operation is successful. */ GRPC_completion_queue_operation_status GRPC_completion_queue_next( GRPC_completion_queue *cq, void **tag, bool *ok); /** - * Same as GRPC_completion_queue_next, but lets you specify an execution deadline. + * Same as GRPC_completion_queue_next, but lets you specify an execution + * deadline. */ GRPC_completion_queue_operation_status GRPC_completion_queue_next_deadline( GRPC_completion_queue *cq, GRPC_timespec deadline, void **tag, bool *ok); diff --git a/include/grpc_c/server.h b/include/grpc_c/server.h index bbae727cbe148..3ae9982c31f4c 100644 --- a/include/grpc_c/server.h +++ b/include/grpc_c/server.h @@ -46,7 +46,8 @@ typedef struct GRPC_build_server_options { GRPC_server *GRPC_build_server(GRPC_build_server_options options); /** - * Gets a new completion queue from the server used to monitor incoming requests. + * Gets a new completion queue from the server used to monitor incoming + * requests. * There is no need to manually free this queue. */ GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue( @@ -58,7 +59,8 @@ GRPC_incoming_notification_queue *GRPC_server_new_incoming_queue( void GRPC_server_listen_host(GRPC_server *server, const char *host); /** - * Start listening for requests. The server cannot be modified beyond this point. + * Start listening for requests. The server cannot be modified beyond this + * point. */ void GRPC_server_start(GRPC_server *server); diff --git a/src/c/server.c b/src/c/server.c index 5e306e1c72e8e..eb7e21f997d59 100644 --- a/src/c/server.c +++ b/src/c/server.c @@ -32,10 +32,10 @@ */ #include "src/c/server.h" +#include #include #include #include -#include #include "src/c/alloc.h" #include "src/c/init_shutdown.h" #include "src/c/server_context.h" From 6421ff4eacdcfaef2f2b9fe40be4352eaa2f4a5e Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 15:24:07 -0700 Subject: [PATCH 196/202] try reduce merge conflict --- build.yaml | 262 ++++++++++++++++++++++++++--------------------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/build.yaml b/build.yaml index 68fd12a0d3507..1ed1359eb46bc 100644 --- a/build.yaml +++ b/build.yaml @@ -790,7 +790,7 @@ filegroups: libs: - name: grpc_c build: all - language: c + language: foobar public_headers: - include/grpc_c/channel.h - include/grpc_c/client_context.h @@ -858,7 +858,7 @@ libs: vs_project_guid: '{8AC0CB05-6E3C-4A40-B45E-FDA77644F432}' - name: grpc_c_end2end_client_lib build: private - language: c + language: foobar headers: - test/c/end2end/end2end_test_client.h src: @@ -1120,14 +1120,14 @@ libs: - grpc++ - name: gpr build: all - language: core + language: c filegroups: - gpr_base secure: false vs_project_guid: '{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}' - name: gpr_test_util build: private - language: core + language: c headers: - test/core/util/test_config.h src: @@ -1138,7 +1138,7 @@ libs: vs_project_guid: '{EAB0A629-17A9-44DB-B5FF-E91A721FE037}' - name: grpc build: all - language: core + language: c src: - src/core/lib/surface/init.c baselib: true @@ -1167,7 +1167,7 @@ libs: vs_project_guid: '{29D16885-7228-4C31-81ED-5F9187C7F2A9}' - name: grpc_cronet build: all - language: core + language: c src: - src/core/lib/surface/init.c baselib: true @@ -1183,7 +1183,7 @@ libs: secure: true - name: grpc_dll build: private - language: core + language: c src: [] deps: - gpr @@ -1204,7 +1204,7 @@ libs: - global - name: grpc_test_util build: private - language: core + language: c headers: - test/core/end2end/data/ssl_test_data.h - test/core/security/oauth2_utils.h @@ -1224,7 +1224,7 @@ libs: vs_project_guid: '{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}' - name: grpc_test_util_unsecure build: private - language: core + language: c deps: - gpr - gpr_test_util @@ -1235,7 +1235,7 @@ libs: vs_project_guid: '{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}' - name: grpc_unsecure build: all - language: core + language: c src: - src/core/lib/surface/init.c - src/core/lib/surface/init_unsecure.c @@ -1259,7 +1259,7 @@ libs: vs_project_guid: '{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}' - name: reconnect_server build: private - language: core + language: c headers: - test/core/util/reconnect_server.h src: @@ -1272,7 +1272,7 @@ libs: - gpr - name: test_tcp_server build: private - language: core + language: c headers: - test/core/util/test_tcp_server.h src: @@ -1307,7 +1307,7 @@ targets: - name: grpc_c_server_end2end_test gtest: false build: test - language: c + language: foobar headers: - test/c/end2end/server_end2end_test.h src: @@ -2083,7 +2083,7 @@ targets: - gpr - name: alarm_test build: test - language: core + language: c src: - test/core/surface/alarm_test.c deps: @@ -2093,7 +2093,7 @@ targets: - gpr - name: algorithm_test build: test - language: core + language: c src: - test/core/compression/algorithm_test.c deps: @@ -2103,7 +2103,7 @@ targets: - gpr - name: alloc_test build: test - language: core + language: c src: - test/core/support/alloc_test.c deps: @@ -2111,7 +2111,7 @@ targets: - gpr - name: alpn_test build: test - language: core + language: c src: - test/core/transport/chttp2/alpn_test.c deps: @@ -2121,7 +2121,7 @@ targets: - gpr - name: api_fuzzer build: fuzzer - language: core + language: c src: - test/core/end2end/fuzzers/api_fuzzer.c deps: @@ -2135,7 +2135,7 @@ targets: maxlen: 2048 - name: bad_server_response_test build: test - language: core + language: c src: - test/core/end2end/bad_server_response_test.c deps: @@ -2146,7 +2146,7 @@ targets: - gpr - name: bin_decoder_test build: test - language: core + language: c src: - test/core/transport/chttp2/bin_decoder_test.c deps: @@ -2154,7 +2154,7 @@ targets: - grpc - name: bin_encoder_test build: test - language: core + language: c src: - test/core/transport/chttp2/bin_encoder_test.c deps: @@ -2162,7 +2162,7 @@ targets: - grpc - name: census_context_test build: test - language: core + language: c src: - test/core/census/context_test.c deps: @@ -2172,7 +2172,7 @@ targets: - gpr - name: census_resource_test build: test - language: core + language: c src: - test/core/census/resource_test.c deps: @@ -2182,7 +2182,7 @@ targets: - gpr - name: channel_create_test build: test - language: core + language: c src: - test/core/surface/channel_create_test.c deps: @@ -2192,7 +2192,7 @@ targets: - gpr - name: chttp2_hpack_encoder_test build: test - language: core + language: c src: - test/core/transport/chttp2/hpack_encoder_test.c deps: @@ -2202,7 +2202,7 @@ targets: - gpr - name: chttp2_status_conversion_test build: test - language: core + language: c src: - test/core/transport/chttp2/status_conversion_test.c deps: @@ -2212,7 +2212,7 @@ targets: - gpr - name: chttp2_stream_map_test build: test - language: core + language: c src: - test/core/transport/chttp2/stream_map_test.c deps: @@ -2222,7 +2222,7 @@ targets: - gpr - name: chttp2_varint_test build: test - language: core + language: c src: - test/core/transport/chttp2/varint_test.c deps: @@ -2232,7 +2232,7 @@ targets: - gpr - name: client_fuzzer build: fuzzer - language: core + language: c src: - test/core/end2end/fuzzers/client_fuzzer.c deps: @@ -2246,7 +2246,7 @@ targets: maxlen: 2048 - name: compression_test build: test - language: core + language: c src: - test/core/compression/compression_test.c deps: @@ -2256,7 +2256,7 @@ targets: - gpr - name: concurrent_connectivity_test build: test - language: core + language: c src: - test/core/surface/concurrent_connectivity_test.c deps: @@ -2267,7 +2267,7 @@ targets: - name: dns_resolver_connectivity_test cpu_cost: 0.1 build: test - language: core + language: c src: - test/core/client_config/resolvers/dns_resolver_connectivity_test.c deps: @@ -2277,7 +2277,7 @@ targets: - gpr - name: dns_resolver_test build: test - language: core + language: c src: - test/core/client_config/resolvers/dns_resolver_test.c deps: @@ -2288,7 +2288,7 @@ targets: - name: dualstack_socket_test cpu_cost: 0.1 build: test - language: core + language: c src: - test/core/end2end/dualstack_socket_test.c deps: @@ -2302,7 +2302,7 @@ targets: - posix - name: endpoint_pair_test build: test - language: core + language: c src: - test/core/iomgr/endpoint_pair_test.c deps: @@ -2312,7 +2312,7 @@ targets: - gpr - name: ev_epoll_linux_test build: test - language: core + language: c src: - test/core/iomgr/ev_epoll_linux_test.c deps: @@ -2324,7 +2324,7 @@ targets: - linux - name: fd_conservation_posix_test build: test - language: core + language: c src: - test/core/iomgr/fd_conservation_posix_test.c deps: @@ -2338,7 +2338,7 @@ targets: - posix - name: fd_posix_test build: test - language: core + language: c src: - test/core/iomgr/fd_posix_test.c deps: @@ -2353,7 +2353,7 @@ targets: - name: fling_client build: test run: false - language: core + language: c src: - test/core/fling/client.c deps: @@ -2364,7 +2364,7 @@ targets: - name: fling_server build: test run: false - language: core + language: c src: - test/core/fling/server.c deps: @@ -2375,7 +2375,7 @@ targets: - name: fling_stream_test cpu_cost: 1.5 build: test - language: core + language: c src: - test/core/fling/fling_stream_test.c deps: @@ -2390,7 +2390,7 @@ targets: - name: fling_test cpu_cost: 1.5 build: test - language: core + language: c src: - test/core/fling/fling_test.c deps: @@ -2404,7 +2404,7 @@ targets: - posix - name: gen_hpack_tables build: tool - language: core + language: c src: - tools/codegen/core/gen_hpack_tables.c deps: @@ -2412,14 +2412,14 @@ targets: - grpc - name: gen_legal_metadata_characters build: tool - language: core + language: c src: - tools/codegen/core/gen_legal_metadata_characters.c deps: [] - name: goaway_server_test cpu_cost: 0.1 build: test - language: core + language: c src: - test/core/end2end/goaway_server_test.c deps: @@ -2433,7 +2433,7 @@ targets: - posix - name: gpr_avl_test build: test - language: core + language: c src: - test/core/support/avl_test.c deps: @@ -2441,7 +2441,7 @@ targets: - gpr - name: gpr_backoff_test build: test - language: core + language: c src: - test/core/support/backoff_test.c deps: @@ -2449,7 +2449,7 @@ targets: - gpr - name: gpr_cmdline_test build: test - language: core + language: c src: - test/core/support/cmdline_test.c deps: @@ -2457,7 +2457,7 @@ targets: - gpr - name: gpr_cpu_test build: test - language: core + language: c src: - test/core/support/cpu_test.c deps: @@ -2465,7 +2465,7 @@ targets: - gpr - name: gpr_env_test build: test - language: core + language: c src: - test/core/support/env_test.c deps: @@ -2473,7 +2473,7 @@ targets: - gpr - name: gpr_histogram_test build: test - language: core + language: c src: - test/core/support/histogram_test.c deps: @@ -2481,7 +2481,7 @@ targets: - gpr - name: gpr_host_port_test build: test - language: core + language: c src: - test/core/support/host_port_test.c deps: @@ -2489,7 +2489,7 @@ targets: - gpr - name: gpr_log_test build: test - language: core + language: c src: - test/core/support/log_test.c deps: @@ -2497,7 +2497,7 @@ targets: - gpr - name: gpr_slice_buffer_test build: test - language: core + language: c src: - test/core/support/slice_buffer_test.c deps: @@ -2505,7 +2505,7 @@ targets: - gpr - name: gpr_slice_test build: test - language: core + language: c src: - test/core/support/slice_test.c deps: @@ -2514,7 +2514,7 @@ targets: - name: gpr_stack_lockfree_test cpu_cost: 7 build: test - language: core + language: c src: - test/core/support/stack_lockfree_test.c deps: @@ -2522,7 +2522,7 @@ targets: - gpr - name: gpr_string_test build: test - language: core + language: c src: - test/core/support/string_test.c deps: @@ -2531,7 +2531,7 @@ targets: - name: gpr_sync_test cpu_cost: 10 build: test - language: core + language: c src: - test/core/support/sync_test.c deps: @@ -2540,7 +2540,7 @@ targets: - name: gpr_thd_test cpu_cost: 10 build: test - language: core + language: c src: - test/core/support/thd_test.c deps: @@ -2548,7 +2548,7 @@ targets: - gpr - name: gpr_time_test build: test - language: core + language: c src: - test/core/support/time_test.c deps: @@ -2556,7 +2556,7 @@ targets: - gpr - name: gpr_tls_test build: test - language: core + language: c src: - test/core/support/tls_test.c deps: @@ -2564,7 +2564,7 @@ targets: - gpr - name: gpr_useful_test build: test - language: core + language: c src: - test/core/support/useful_test.c deps: @@ -2572,7 +2572,7 @@ targets: - gpr - name: grpc_auth_context_test build: test - language: core + language: c src: - test/core/security/auth_context_test.c deps: @@ -2582,7 +2582,7 @@ targets: - gpr - name: grpc_b64_test build: test - language: core + language: c src: - test/core/security/b64_test.c deps: @@ -2592,7 +2592,7 @@ targets: - gpr - name: grpc_byte_buffer_reader_test build: test - language: core + language: c src: - test/core/surface/byte_buffer_reader_test.c deps: @@ -2602,7 +2602,7 @@ targets: - gpr - name: grpc_channel_args_test build: test - language: core + language: c src: - test/core/channel/channel_args_test.c deps: @@ -2612,7 +2612,7 @@ targets: - gpr - name: grpc_channel_stack_test build: test - language: core + language: c src: - test/core/channel/channel_stack_test.c deps: @@ -2622,7 +2622,7 @@ targets: - gpr - name: grpc_completion_queue_test build: test - language: core + language: c src: - test/core/surface/completion_queue_test.c deps: @@ -2632,7 +2632,7 @@ targets: - gpr - name: grpc_create_jwt build: tool - language: core + language: c src: - test/core/security/create_jwt.c deps: @@ -2641,7 +2641,7 @@ targets: secure: true - name: grpc_credentials_test build: test - language: core + language: c src: - test/core/security/credentials_test.c deps: @@ -2652,7 +2652,7 @@ targets: - name: grpc_fetch_oauth2 build: test run: false - language: core + language: c src: - test/core/security/fetch_oauth2.c deps: @@ -2662,7 +2662,7 @@ targets: - gpr - name: grpc_invalid_channel_args_test build: test - language: core + language: c src: - test/core/surface/invalid_channel_args_test.c deps: @@ -2672,7 +2672,7 @@ targets: - gpr - name: grpc_json_token_test build: test - language: core + language: c src: - test/core/security/json_token_test.c deps: @@ -2686,7 +2686,7 @@ targets: - mac - name: grpc_jwt_verifier_test build: test - language: core + language: c src: - test/core/security/jwt_verifier_test.c deps: @@ -2696,7 +2696,7 @@ targets: - gpr - name: grpc_print_google_default_creds_token build: tool - language: core + language: c src: - test/core/security/print_google_default_creds_token.c deps: @@ -2704,7 +2704,7 @@ targets: - gpr - name: grpc_security_connector_test build: test - language: core + language: c src: - test/core/security/security_connector_test.c deps: @@ -2714,7 +2714,7 @@ targets: - gpr - name: grpc_verify_jwt build: tool - language: core + language: c src: - test/core/security/verify_jwt.c deps: @@ -2722,7 +2722,7 @@ targets: - gpr - name: hpack_parser_fuzzer_test build: fuzzer - language: core + language: c src: - test/core/transport/chttp2/hpack_parser_fuzzer_test.c deps: @@ -2736,7 +2736,7 @@ targets: maxlen: 512 - name: hpack_parser_test build: test - language: core + language: c src: - test/core/transport/chttp2/hpack_parser_test.c deps: @@ -2746,7 +2746,7 @@ targets: - gpr - name: hpack_table_test build: test - language: core + language: c src: - test/core/transport/chttp2/hpack_table_test.c deps: @@ -2756,7 +2756,7 @@ targets: - gpr - name: http_parser_test build: test - language: core + language: c src: - test/core/http/parser_test.c deps: @@ -2766,7 +2766,7 @@ targets: - gpr - name: http_request_fuzzer_test build: fuzzer - language: core + language: c src: - test/core/http/request_fuzzer.c deps: @@ -2779,7 +2779,7 @@ targets: maxlen: 2048 - name: http_response_fuzzer_test build: fuzzer - language: core + language: c src: - test/core/http/response_fuzzer.c deps: @@ -2792,7 +2792,7 @@ targets: maxlen: 2048 - name: httpcli_format_request_test build: test - language: core + language: c src: - test/core/http/format_request_test.c deps: @@ -2803,7 +2803,7 @@ targets: - name: httpcli_test cpu_cost: 0.5 build: test - language: core + language: c src: - test/core/http/httpcli_test.c deps: @@ -2818,7 +2818,7 @@ targets: - name: httpscli_test cpu_cost: 0.5 build: test - language: core + language: c src: - test/core/http/httpscli_test.c deps: @@ -2830,7 +2830,7 @@ targets: - linux - name: init_test build: test - language: core + language: c src: - test/core/surface/init_test.c deps: @@ -2841,7 +2841,7 @@ targets: - name: internal_api_canary_iomgr_test build: test run: false - language: core + language: c src: - test/core/internal_api_canaries/iomgr.c deps: @@ -2852,7 +2852,7 @@ targets: - name: internal_api_canary_support_test build: test run: false - language: core + language: c src: - test/core/internal_api_canaries/iomgr.c deps: @@ -2863,7 +2863,7 @@ targets: - name: internal_api_canary_transport_test build: test run: false - language: core + language: c src: - test/core/internal_api_canaries/iomgr.c deps: @@ -2874,7 +2874,7 @@ targets: - name: invalid_call_argument_test cpu_cost: 0.1 build: test - language: core + language: c src: - test/core/end2end/invalid_call_argument_test.c deps: @@ -2884,7 +2884,7 @@ targets: - gpr - name: json_fuzzer_test build: fuzzer - language: core + language: c src: - test/core/json/fuzzer.c deps: @@ -2898,7 +2898,7 @@ targets: - name: json_rewrite build: test run: false - language: core + language: c src: - test/core/json/json_rewrite.c deps: @@ -2906,7 +2906,7 @@ targets: - gpr - name: json_rewrite_test build: test - language: core + language: c src: - test/core/json/json_rewrite_test.c deps: @@ -2916,7 +2916,7 @@ targets: - gpr - name: json_stream_error_test build: test - language: core + language: c src: - test/core/json/json_stream_error_test.c deps: @@ -2926,7 +2926,7 @@ targets: - gpr - name: json_test build: test - language: core + language: c src: - test/core/json/json_test.c deps: @@ -2936,7 +2936,7 @@ targets: - gpr - name: lame_client_test build: test - language: core + language: c src: - test/core/surface/lame_client_test.c deps: @@ -2948,7 +2948,7 @@ targets: cpu_cost: 0.1 flaky: true build: test - language: core + language: c src: - test/core/client_config/lb_policies_test.c deps: @@ -2958,7 +2958,7 @@ targets: - gpr - name: load_file_test build: test - language: core + language: c src: - test/core/iomgr/load_file_test.c deps: @@ -2968,7 +2968,7 @@ targets: - gpr - name: low_level_ping_pong_benchmark build: benchmark - language: core + language: c src: - test/core/network_benchmarks/low_level_ping_pong.c deps: @@ -2982,7 +2982,7 @@ targets: - posix - name: message_compress_test build: test - language: core + language: c src: - test/core/compression/message_compress_test.c deps: @@ -2993,7 +2993,7 @@ targets: - name: mlog_test flaky: true build: test - language: core + language: c src: - test/core/census/mlog_test.c deps: @@ -3003,7 +3003,7 @@ targets: - gpr - name: multiple_server_queues_test build: test - language: core + language: c src: - test/core/end2end/multiple_server_queues_test.c deps: @@ -3013,7 +3013,7 @@ targets: - gpr - name: murmur_hash_test build: test - language: core + language: c src: - test/core/support/murmur_hash_test.c deps: @@ -3021,7 +3021,7 @@ targets: - gpr - name: nanopb_fuzzer_response_test build: fuzzer - language: core + language: c src: - test/core/nanopb/fuzzer_response.c deps: @@ -3034,7 +3034,7 @@ targets: maxlen: 128 - name: nanopb_fuzzer_serverlist_test build: fuzzer - language: core + language: c src: - test/core/nanopb/fuzzer_serverlist.c deps: @@ -3048,7 +3048,7 @@ targets: - name: no_server_test cpu_cost: 0.1 build: test - language: core + language: c src: - test/core/end2end/no_server_test.c deps: @@ -3058,7 +3058,7 @@ targets: - gpr - name: resolve_address_test build: test - language: core + language: c src: - test/core/iomgr/resolve_address_test.c deps: @@ -3068,7 +3068,7 @@ targets: - gpr - name: secure_channel_create_test build: test - language: core + language: c src: - test/core/surface/secure_channel_create_test.c deps: @@ -3078,7 +3078,7 @@ targets: - gpr - name: secure_endpoint_test build: test - language: core + language: c src: - test/core/security/secure_endpoint_test.c deps: @@ -3088,7 +3088,7 @@ targets: - gpr - name: sequential_connectivity_test build: test - language: core + language: c src: - test/core/surface/sequential_connectivity_test.c deps: @@ -3098,7 +3098,7 @@ targets: - gpr - name: server_chttp2_test build: test - language: core + language: c src: - test/core/surface/server_chttp2_test.c deps: @@ -3108,7 +3108,7 @@ targets: - gpr - name: server_fuzzer build: fuzzer - language: core + language: c src: - test/core/end2end/fuzzers/server_fuzzer.c deps: @@ -3122,7 +3122,7 @@ targets: maxlen: 2048 - name: server_test build: test - language: core + language: c src: - test/core/surface/server_test.c deps: @@ -3133,7 +3133,7 @@ targets: - name: set_initial_connect_string_test cpu_cost: 0.1 build: test - language: core + language: c src: - test/core/client_config/set_initial_connect_string_test.c deps: @@ -3144,7 +3144,7 @@ targets: - gpr - name: sockaddr_resolver_test build: test - language: core + language: c src: - test/core/client_config/resolvers/sockaddr_resolver_test.c deps: @@ -3154,7 +3154,7 @@ targets: - gpr - name: sockaddr_utils_test build: test - language: core + language: c src: - test/core/iomgr/sockaddr_utils_test.c deps: @@ -3164,7 +3164,7 @@ targets: - gpr - name: socket_utils_test build: test - language: core + language: c src: - test/core/iomgr/socket_utils_test.c deps: @@ -3179,7 +3179,7 @@ targets: - name: tcp_client_posix_test cpu_cost: 0.5 build: test - language: core + language: c src: - test/core/iomgr/tcp_client_posix_test.c deps: @@ -3194,7 +3194,7 @@ targets: - name: tcp_posix_test cpu_cost: 0.2 build: test - language: core + language: c src: - test/core/iomgr/tcp_posix_test.c deps: @@ -3208,7 +3208,7 @@ targets: - posix - name: tcp_server_posix_test build: test - language: core + language: c src: - test/core/iomgr/tcp_server_posix_test.c deps: @@ -3222,7 +3222,7 @@ targets: - posix - name: time_averaged_stats_test build: test - language: core + language: c src: - test/core/iomgr/time_averaged_stats_test.c deps: @@ -3232,7 +3232,7 @@ targets: - gpr - name: timeout_encoding_test build: test - language: core + language: c src: - test/core/transport/timeout_encoding_test.c deps: @@ -3242,7 +3242,7 @@ targets: - gpr - name: timer_heap_test build: test - language: core + language: c src: - test/core/iomgr/timer_heap_test.c deps: @@ -3252,7 +3252,7 @@ targets: - gpr - name: timer_list_test build: test - language: core + language: c src: - test/core/iomgr/timer_list_test.c deps: @@ -3262,7 +3262,7 @@ targets: - gpr - name: transport_connectivity_state_test build: test - language: core + language: c src: - test/core/transport/connectivity_state_test.c deps: @@ -3272,7 +3272,7 @@ targets: - gpr - name: transport_metadata_test build: test - language: core + language: c src: - test/core/transport/metadata_test.c deps: @@ -3282,7 +3282,7 @@ targets: - gpr - name: transport_security_test build: test - language: core + language: c src: - test/core/tsi/transport_security_test.c deps: @@ -3296,7 +3296,7 @@ targets: - mac - name: udp_server_test build: test - language: core + language: c src: - test/core/iomgr/udp_server_test.c deps: @@ -3310,7 +3310,7 @@ targets: - posix - name: uri_fuzzer_test build: fuzzer - language: core + language: c src: - test/core/client_config/uri_fuzzer_test.c deps: @@ -3323,7 +3323,7 @@ targets: maxlen: 128 - name: uri_parser_test build: test - language: core + language: c src: - test/core/client_config/uri_parser_test.c deps: From a545fef08f0aafcaea2a7c6144ac45a0c6676b75 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 15:49:21 -0700 Subject: [PATCH 197/202] fix test --- test/c/end2end/server_end2end_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/c/end2end/server_end2end_test.c b/test/c/end2end/server_end2end_test.c index d89eefad515c7..e5687d8f6cf35 100644 --- a/test/c/end2end/server_end2end_test.c +++ b/test/c/end2end/server_end2end_test.c @@ -95,7 +95,7 @@ typedef struct async_server_data { } async_server_data; int main(int argc, char **argv) { - GRPC_server *server = GRPC_build_server((GRPC_build_server_options){}); + GRPC_server *server = GRPC_build_server((GRPC_build_server_options){ .max_message_size = 0 }); GRPC_incoming_notification_queue *incoming = GRPC_server_new_incoming_queue(server); GRPC_server_listen_host(server, "0.0.0.0:50051"); From 3b33bfc0d9fa61fbdefdd18f3395e830b72faad1 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 18:24:14 -0700 Subject: [PATCH 198/202] managed port for c test --- test/c/end2end/server_end2end_test.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/test/c/end2end/server_end2end_test.c b/test/c/end2end/server_end2end_test.c index e5687d8f6cf35..faac22abe16f4 100644 --- a/test/c/end2end/server_end2end_test.c +++ b/test/c/end2end/server_end2end_test.c @@ -36,6 +36,7 @@ */ #include "test/c/end2end/server_end2end_test.h" +#include "test/core/util/port.h" #include "src/proto/grpc/testing/echo.grpc.pbc.h" #include #include @@ -71,7 +72,8 @@ static bool read_string_store_in_arg(pb_istream_t *stream, } static void *client_thread(void *param) { - GRPC_channel *channel = GRPC_channel_create("0.0.0.0:50051"); + char *host = param; + GRPC_channel *channel = GRPC_channel_create(host); grpc_testing_EchoRequest request = {.message = {.arg = "gRPC-C", .funcs.encode = write_string_from_arg}}; grpc_testing_EchoResponse response = {.message = {.funcs.decode = read_string_store_in_arg}}; @@ -98,13 +100,16 @@ int main(int argc, char **argv) { GRPC_server *server = GRPC_build_server((GRPC_build_server_options){ .max_message_size = 0 }); GRPC_incoming_notification_queue *incoming = GRPC_server_new_incoming_queue(server); - GRPC_server_listen_host(server, "0.0.0.0:50051"); + int port = grpc_pick_unused_port_or_die(); + char *host = malloc(100); + sprintf(host, "0.0.0.0:%d", port); + GRPC_server_listen_host(server, host); GRPC_registered_service *service = grpc_testing_EchoTestService_Register(server); GRPC_server_start(server); // Start client pthread_t tid; - pthread_create(&tid, NULL, client_thread, NULL); + pthread_create(&tid, NULL, client_thread, host); // Run server { From 4c3d5c1e2a0ea72a3c2f570adf43e0aeda2d3fb0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 18:29:12 -0700 Subject: [PATCH 199/202] make a clean merge of build.yaml --- BUILD | 72 ------ CMakeLists.txt | 156 ------------ Makefile | 234 +----------------- build.yaml | 72 +----- tools/run_tests/sources_and_headers.json | 91 +------ vsprojects/buildtests_core.sln | 100 +------- .../grpc_cpp_plugin.vcxproj.filters | 17 -- .../grpc_csharp_plugin.vcxproj.filters | 17 -- .../grpc_node_plugin.vcxproj.filters | 17 -- .../grpc_objective_c_plugin.vcxproj.filters | 17 -- .../grpc_python_plugin.vcxproj.filters | 17 -- .../grpc_ruby_plugin.vcxproj.filters | 17 -- .../vcxproj/test/grpc_cli/grpc_cli.vcxproj | 9 - .../vcxproj/test/mlog_test/mlog_test.vcxproj | 15 +- 14 files changed, 19 insertions(+), 832 deletions(-) diff --git a/BUILD b/BUILD index e7d4bca254a24..52fbab40e6ce4 100644 --- a/BUILD +++ b/BUILD @@ -2297,30 +2297,6 @@ cc_binary( ) -cc_binary( - name = "grpc_cpp_plugin", - srcs = [ - "src/compiler/cpp_plugin.cc", - ], - deps = [ - "//external:protobuf_compiler", - ":grpc_plugin_support", - ], -) - - -cc_binary( - name = "grpc_csharp_plugin", - srcs = [ - "src/compiler/csharp_plugin.cc", - ], - deps = [ - "//external:protobuf_compiler", - ":grpc_plugin_support", - ], -) - - cc_binary( name = "grpc_csharp_plugin", srcs = [ @@ -2345,18 +2321,6 @@ cc_binary( ) -cc_binary( - name = "grpc_node_plugin", - srcs = [ - "src/compiler/node_plugin.cc", - ], - deps = [ - "//external:protobuf_compiler", - ":grpc_plugin_support", - ], -) - - cc_binary( name = "grpc_objective_c_plugin", srcs = [ @@ -2369,30 +2333,6 @@ cc_binary( ) -cc_binary( - name = "grpc_objective_c_plugin", - srcs = [ - "src/compiler/objective_c_plugin.cc", - ], - deps = [ - "//external:protobuf_compiler", - ":grpc_plugin_support", - ], -) - - -cc_binary( - name = "grpc_python_plugin", - srcs = [ - "src/compiler/python_plugin.cc", - ], - deps = [ - "//external:protobuf_compiler", - ":grpc_plugin_support", - ], -) - - cc_binary( name = "grpc_python_plugin", srcs = [ @@ -2417,18 +2357,6 @@ cc_binary( ) -cc_binary( - name = "grpc_ruby_plugin", - srcs = [ - "src/compiler/ruby_plugin.cc", - ], - deps = [ - "//external:protobuf_compiler", - ":grpc_plugin_support", - ], -) - - diff --git a/CMakeLists.txt b/CMakeLists.txt index 16d1ab0c19775..547bcbdb028f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1605,58 +1605,6 @@ install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets ) -add_executable(grpc_cpp_plugin - src/compiler/cpp_plugin.cc -) - -target_include_directories(grpc_cpp_plugin - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_cpp_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support -) - - -install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - -add_executable(grpc_csharp_plugin - src/compiler/csharp_plugin.cc -) - -target_include_directories(grpc_csharp_plugin - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_csharp_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support -) - - -install(TARGETS grpc_csharp_plugin EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - add_executable(grpc_csharp_plugin src/compiler/csharp_plugin.cc ) @@ -1709,32 +1657,6 @@ install(TARGETS grpc_node_plugin EXPORT gRPCTargets ) -add_executable(grpc_node_plugin - src/compiler/node_plugin.cc -) - -target_include_directories(grpc_node_plugin - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_node_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support -) - - -install(TARGETS grpc_node_plugin EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - add_executable(grpc_objective_c_plugin src/compiler/objective_c_plugin.cc ) @@ -1761,58 +1683,6 @@ install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets ) -add_executable(grpc_objective_c_plugin - src/compiler/objective_c_plugin.cc -) - -target_include_directories(grpc_objective_c_plugin - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_objective_c_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support -) - - -install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - -add_executable(grpc_python_plugin - src/compiler/python_plugin.cc -) - -target_include_directories(grpc_python_plugin - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_python_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support -) - - -install(TARGETS grpc_python_plugin EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - add_executable(grpc_python_plugin src/compiler/python_plugin.cc ) @@ -1865,32 +1735,6 @@ install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets ) -add_executable(grpc_ruby_plugin - src/compiler/ruby_plugin.cc -) - -target_include_directories(grpc_ruby_plugin - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${BORINGSSL_ROOT_DIR}/include - PRIVATE ${PROTOBUF_ROOT_DIR}/src - PRIVATE ${ZLIB_ROOT_DIR} - PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib -) - -target_link_libraries(grpc_ruby_plugin - ${_gRPC_PROTOBUF_PROTOC_LIBRARIES} - grpc_plugin_support -) - - -install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -) - - add_executable(gen_hpack_tables tools/codegen/core/gen_hpack_tables.c ) diff --git a/Makefile b/Makefile index 8ad38f82b54f9..8810f3dc65ea2 100644 --- a/Makefile +++ b/Makefile @@ -761,7 +761,7 @@ PC_LIBS_GRPCXX = CPPFLAGS := -Ithird_party/googletest/include $(CPPFLAGS) -PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_c_plugin $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin +PROTOC_PLUGINS_ALL = $(BINDIR)/$(CONFIG)/grpc_c_plugin $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(BINDIR)/$(CONFIG)/grpc_node_plugin $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(BINDIR)/$(CONFIG)/grpc_python_plugin $(BINDIR)/$(CONFIG)/grpc_ruby_plugin PROTOC_PLUGINS_DIR = $(BINDIR)/$(CONFIG) ifeq ($(HAS_SYSTEM_PROTOBUF),true) @@ -985,16 +985,10 @@ grpc_c_generic_end2end_test: $(BINDIR)/$(CONFIG)/grpc_c_generic_end2end_test grpc_c_plugin: $(BINDIR)/$(CONFIG)/grpc_c_plugin grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin -grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin -grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin grpc_csharp_plugin: $(BINDIR)/$(CONFIG)/grpc_csharp_plugin grpc_node_plugin: $(BINDIR)/$(CONFIG)/grpc_node_plugin -grpc_node_plugin: $(BINDIR)/$(CONFIG)/grpc_node_plugin -grpc_objective_c_plugin: $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin grpc_objective_c_plugin: $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin grpc_python_plugin: $(BINDIR)/$(CONFIG)/grpc_python_plugin -grpc_python_plugin: $(BINDIR)/$(CONFIG)/grpc_python_plugin -grpc_ruby_plugin: $(BINDIR)/$(CONFIG)/grpc_ruby_plugin grpc_ruby_plugin: $(BINDIR)/$(CONFIG)/grpc_ruby_plugin grpc_tool_test: $(BINDIR)/$(CONFIG)/grpc_tool_test grpclb_api_test: $(BINDIR)/$(CONFIG)/grpclb_api_test @@ -2601,26 +2595,14 @@ else $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(prefix)/bin/grpc_cpp_plugin $(Q) $(INSTALL) -d $(prefix)/bin - $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_cpp_plugin $(prefix)/bin/grpc_cpp_plugin - $(Q) $(INSTALL) -d $(prefix)/bin - $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(prefix)/bin/grpc_csharp_plugin - $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_csharp_plugin $(prefix)/bin/grpc_csharp_plugin $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_node_plugin $(prefix)/bin/grpc_node_plugin $(Q) $(INSTALL) -d $(prefix)/bin - $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_node_plugin $(prefix)/bin/grpc_node_plugin - $(Q) $(INSTALL) -d $(prefix)/bin - $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(prefix)/bin/grpc_objective_c_plugin - $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin $(prefix)/bin/grpc_objective_c_plugin $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_python_plugin $(prefix)/bin/grpc_python_plugin $(Q) $(INSTALL) -d $(prefix)/bin - $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_python_plugin $(prefix)/bin/grpc_python_plugin - $(Q) $(INSTALL) -d $(prefix)/bin - $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_ruby_plugin $(prefix)/bin/grpc_ruby_plugin - $(Q) $(INSTALL) -d $(prefix)/bin $(Q) $(INSTALL) $(BINDIR)/$(CONFIG)/grpc_ruby_plugin $(prefix)/bin/grpc_ruby_plugin endif @@ -8412,16 +8394,16 @@ $(BINDIR)/$(CONFIG)/grpc_cli: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli + $(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o: $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep) @@ -8467,72 +8449,6 @@ endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_CPP_PLUGIN_SRC = \ - src/compiler/cpp_plugin.cc \ - -GRPC_CPP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CPP_PLUGIN_SRC)))) - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_cpp_plugin: $(PROTOBUF_DEP) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin - -endif - -$(OBJDIR)/$(CONFIG)/src/compiler/cpp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - -deps_grpc_cpp_plugin: $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) - -ifneq ($(NO_DEPS),true) --include $(GRPC_CPP_PLUGIN_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - -GRPC_CSHARP_PLUGIN_SRC = \ - src/compiler/csharp_plugin.cc \ - -GRPC_CSHARP_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CSHARP_PLUGIN_SRC)))) - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_csharp_plugin: $(PROTOBUF_DEP) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin - -endif - -$(OBJDIR)/$(CONFIG)/src/compiler/csharp_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - -deps_grpc_csharp_plugin: $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) - -ifneq ($(NO_DEPS),true) --include $(GRPC_CSHARP_PLUGIN_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - GRPC_CSHARP_PLUGIN_SRC = \ src/compiler/csharp_plugin.cc \ @@ -8599,72 +8515,6 @@ endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_NODE_PLUGIN_SRC = \ - src/compiler/node_plugin.cc \ - -GRPC_NODE_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_NODE_PLUGIN_SRC)))) - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_node_plugin: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_node_plugin: $(PROTOBUF_DEP) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin - -endif - -$(OBJDIR)/$(CONFIG)/src/compiler/node_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - -deps_grpc_node_plugin: $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) - -ifneq ($(NO_DEPS),true) --include $(GRPC_NODE_PLUGIN_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - -GRPC_OBJECTIVE_C_PLUGIN_SRC = \ - src/compiler/objective_c_plugin.cc \ - -GRPC_OBJECTIVE_C_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_OBJECTIVE_C_PLUGIN_SRC)))) - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_objective_c_plugin: $(PROTOBUF_DEP) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin - -endif - -$(OBJDIR)/$(CONFIG)/src/compiler/objective_c_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - -deps_grpc_objective_c_plugin: $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) - -ifneq ($(NO_DEPS),true) --include $(GRPC_OBJECTIVE_C_PLUGIN_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - GRPC_OBJECTIVE_C_PLUGIN_SRC = \ src/compiler/objective_c_plugin.cc \ @@ -8731,72 +8581,6 @@ endif # Force compilation of proto files before building code that could potentially depend on them -GRPC_PYTHON_PLUGIN_SRC = \ - src/compiler/python_plugin.cc \ - -GRPC_PYTHON_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_PYTHON_PLUGIN_SRC)))) - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_python_plugin: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_python_plugin: $(PROTOBUF_DEP) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin - -endif - -$(OBJDIR)/$(CONFIG)/src/compiler/python_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - -deps_grpc_python_plugin: $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) - -ifneq ($(NO_DEPS),true) --include $(GRPC_PYTHON_PLUGIN_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - -GRPC_RUBY_PLUGIN_SRC = \ - src/compiler/ruby_plugin.cc \ - -GRPC_RUBY_PLUGIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_RUBY_PLUGIN_SRC)))) - - - -ifeq ($(NO_PROTOBUF),true) - -# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. - -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: protobuf_dep_error - -else - -$(BINDIR)/$(CONFIG)/grpc_ruby_plugin: $(PROTOBUF_DEP) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - $(E) "[HOSTLD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin - -endif - -$(OBJDIR)/$(CONFIG)/src/compiler/ruby_plugin.o: $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a - -deps_grpc_ruby_plugin: $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) - -ifneq ($(NO_DEPS),true) --include $(GRPC_RUBY_PLUGIN_OBJS:.o=.dep) -endif - -# Force compilation of proto files before building code that could potentially depend on them - - GRPC_RUBY_PLUGIN_SRC = \ src/compiler/ruby_plugin.cc \ @@ -9081,10 +8865,10 @@ $(BINDIR)/$(CONFIG)/interop_server: protobuf_dep_error else -$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/interop_server: $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server + $(Q) $(LDXX) $(LDFLAGS) $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server endif @@ -13136,14 +12920,14 @@ else -$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(BINDIR)/$(CONFIG)/mlog_test: $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test + $(Q) $(LD) $(LDFLAGS) $(MLOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mlog_test endif -$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a +$(OBJDIR)/$(CONFIG)/test/core/census/mlog_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a deps_mlog_test: $(MLOG_TEST_OBJS:.o=.dep) diff --git a/build.yaml b/build.yaml index 5bc66c8a784ff..ad4039766e901 100644 --- a/build.yaml +++ b/build.yaml @@ -1175,7 +1175,6 @@ libs: - grpc_lb_policy_grpclb - grpc_lb_policy_pick_first - grpc_lb_policy_round_robin - - grpc_lb_policy_grpclb - grpc_resolver_dns_native - grpc_resolver_sockaddr - grpc_load_reporting @@ -1274,7 +1273,6 @@ libs: - grpc_lb_policy_grpclb - grpc_lb_policy_pick_first - grpc_lb_policy_round_robin - - grpc_lb_policy_grpclb - census generate_plugin_registry: true secure: false @@ -1590,7 +1588,7 @@ targets: comments: - '#1': This is a gRPC-C test but temporarily written in C++ for the lack of a C server - - '#2': We're using the library grpc_c_end2end_client_lib to process nanopb and + - '#2': We are using the library grpc_c_end2end_client_lib to process nanopb and interface with generated code - name: grpc_c_generic_end2end_test gtest: true @@ -1630,12 +1628,9 @@ targets: - test/cpp/util/grpc_cli.cc deps: - grpc_cli_libs - - grpc++_test_util - - grpc_test_util - grpc++_reflection - grpc++ - grpc - - gpr_test_util - gpr - grpc++_test_config - name: grpc_cpp_plugin @@ -1648,26 +1643,6 @@ targets: secure: false vs_config_type: Application vs_project_guid: '{7E51A25F-AC59-488F-906C-C60FAAE706AA}' -- name: grpc_cpp_plugin - build: protoc - language: c++ - src: - - src/compiler/cpp_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{7E51A25F-AC59-488F-906C-C60FAAE706AA}' -- name: grpc_csharp_plugin - build: protoc - language: c++ - src: - - src/compiler/csharp_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{3C813052-A49A-4662-B90A-1ADBEC7EE453}' - name: grpc_csharp_plugin build: protoc language: c++ @@ -1687,25 +1662,6 @@ targets: - grpc_plugin_support secure: false vs_config_type: Application -- name: grpc_node_plugin - build: protoc - language: c++ - src: - - src/compiler/node_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application -- name: grpc_objective_c_plugin - build: protoc - language: c++ - src: - - src/compiler/objective_c_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{19564640-CEE6-4921-ABA5-676ED79A36F6}' - name: grpc_objective_c_plugin build: protoc language: c++ @@ -1726,26 +1682,6 @@ targets: secure: false vs_config_type: Application vs_project_guid: '{DF52D501-A6CF-4E6F-BA38-6EBE2E8DAFB2}' -- name: grpc_python_plugin - build: protoc - language: c++ - src: - - src/compiler/python_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{DF52D501-A6CF-4E6F-BA38-6EBE2E8DAFB2}' -- name: grpc_ruby_plugin - build: protoc - language: c++ - src: - - src/compiler/ruby_plugin.cc - deps: - - grpc_plugin_support - secure: false - vs_config_type: Application - vs_project_guid: '{069E9D05-B78B-4751-9252-D21EBAE7DE8E}' - name: grpc_ruby_plugin build: protoc language: c++ @@ -1844,6 +1780,7 @@ targets: deps: - interop_server_main - interop_server_helper + - interop_server_lib - grpc++_test_util - grpc_test_util - grpc++ @@ -3114,12 +3051,9 @@ targets: - test/core/census/mlog_test.c deps: - grpc_test_util - - grpc_cli_libs - - grpc++_reflection - - grpc++ - grpc + - gpr_test_util - gpr - - grpc++_test_config - name: multiple_server_queues_test build: test language: core diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 1732bd03df3bb..e4f08b3319929 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -411,14 +411,11 @@ { "deps": [ "gpr", - "gpr_test_util", "grpc", "grpc++", "grpc++_reflection", "grpc++_test_config", - "grpc++_test_util", - "grpc_cli_libs", - "grpc_test_util" + "grpc_cli_libs" ], "headers": [], "language": "c++", @@ -442,19 +439,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "grpc_plugin_support" - ], - "headers": [], - "language": "c++", - "name": "grpc_cpp_plugin", - "src": [ - "src/compiler/cpp_plugin.cc" - ], - "third_party": false, - "type": "target" - }, { "deps": [ "grpc_plugin_support" @@ -468,32 +452,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "grpc_plugin_support" - ], - "headers": [], - "language": "c++", - "name": "grpc_csharp_plugin", - "src": [ - "src/compiler/csharp_plugin.cc" - ], - "third_party": false, - "type": "target" - }, - { - "deps": [ - "grpc_plugin_support" - ], - "headers": [], - "language": "c++", - "name": "grpc_node_plugin", - "src": [ - "src/compiler/node_plugin.cc" - ], - "third_party": false, - "type": "target" - }, { "deps": [ "grpc_plugin_support" @@ -520,32 +478,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "grpc_plugin_support" - ], - "headers": [], - "language": "c++", - "name": "grpc_objective_c_plugin", - "src": [ - "src/compiler/objective_c_plugin.cc" - ], - "third_party": false, - "type": "target" - }, - { - "deps": [ - "grpc_plugin_support" - ], - "headers": [], - "language": "c++", - "name": "grpc_python_plugin", - "src": [ - "src/compiler/python_plugin.cc" - ], - "third_party": false, - "type": "target" - }, { "deps": [ "grpc_plugin_support" @@ -572,19 +504,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "grpc_plugin_support" - ], - "headers": [], - "language": "c++", - "name": "grpc_ruby_plugin", - "src": [ - "src/compiler/ruby_plugin.cc" - ], - "third_party": false, - "type": "target" - }, { "deps": [ "gpr", @@ -701,6 +620,7 @@ "grpc++_test_util", "grpc_test_util", "interop_server_helper", + "interop_server_lib", "interop_server_main" ], "headers": [], @@ -2517,11 +2437,8 @@ { "deps": [ "gpr", + "gpr_test_util", "grpc", - "grpc++", - "grpc++_reflection", - "grpc++_test_config", - "grpc_cli_libs", "grpc_test_util" ], "headers": [], @@ -4945,7 +4862,6 @@ "gpr", "grpc_base", "grpc_lb_policy_grpclb", - "grpc_lb_policy_grpclb", "grpc_lb_policy_pick_first", "grpc_lb_policy_round_robin", "grpc_load_reporting", @@ -5041,7 +4957,6 @@ "gpr", "grpc_base", "grpc_lb_policy_grpclb", - "grpc_lb_policy_grpclb", "grpc_lb_policy_pick_first", "grpc_lb_policy_round_robin", "grpc_load_reporting", diff --git a/vsprojects/buildtests_core.sln b/vsprojects/buildtests_core.sln index 1cdf1cf113ce7..c28f3ba39c359 100644 --- a/vsprojects/buildtests_core.sln +++ b/vsprojects/buildtests_core.sln @@ -474,27 +474,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc", "vcxproj\.\grpc\grpc {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++", "vcxproj\.\grpc++\grpc++.vcxproj", "{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++_reflection", "vcxproj\.\grpc++_reflection\grpc++_reflection.vcxproj", "{5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} = {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++_test_config", "vcxproj\.\grpc++_test_config\grpc++_test_config.vcxproj", "{3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_auth_context_test", "vcxproj\test\grpc_auth_context_test\grpc_auth_context_test.vcxproj", "{C65A4336-92D6-D6A0-EB86-E3AA425222D0}" ProjectSection(myProperties) = preProject lib = "False" @@ -550,16 +529,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_channel_stack_test", " {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_cli_libs", "vcxproj\.\grpc_cli_libs\grpc_cli_libs.vcxproj", "{86E35862-43E8-F59E-F906-AFE0348AD3D2}" - ProjectSection(myProperties) = preProject - lib = "True" - EndProjectSection - ProjectSection(ProjectDependencies) = postProject - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB} = {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB} - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} = {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290} = {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_completion_queue_test", "vcxproj\test\grpc_completion_queue_test\grpc_completion_queue_test.vcxproj", "{16CDF507-EB91-D76C-F0A7-A914ABFD8C17}" ProjectSection(myProperties) = preProject lib = "False" @@ -1197,12 +1166,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mlog_test", "vcxproj\test\m EndProjectSection ProjectSection(ProjectDependencies) = postProject {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {86E35862-43E8-F59E-F906-AFE0348AD3D2} = {86E35862-43E8-F59E-F906-AFE0348AD3D2} - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB} = {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB} - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} = {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037} {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290} = {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multiple_server_queues_test", "vcxproj\test\multiple_server_queues_test\multiple_server_queues_test.vcxproj", "{88AF688E-E43C-5E20-6966-CF559F597D82}" @@ -2252,54 +2218,6 @@ Global {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 {29D16885-7228-4C31-81ED-5F9187C7F2A9}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|Win32.ActiveCfg = Debug|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|x64.ActiveCfg = Debug|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.ActiveCfg = Release|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.ActiveCfg = Release|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|Win32.Build.0 = Debug|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|x64.Build.0 = Debug|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.Build.0 = Release|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.Build.0 = Release|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release-DLL|x64.Build.0 = Release-DLL|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug|Win32.ActiveCfg = Debug|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug|x64.ActiveCfg = Debug|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release|Win32.ActiveCfg = Release|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release|x64.ActiveCfg = Release|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug|Win32.Build.0 = Debug|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug|x64.Build.0 = Debug|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release|Win32.Build.0 = Release|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release|x64.Build.0 = Release|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Debug-DLL|x64.Build.0 = Debug|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release-DLL|Win32.Build.0 = Release|Win32 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release-DLL|x64.ActiveCfg = Release|x64 - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}.Release-DLL|x64.Build.0 = Release|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug|Win32.ActiveCfg = Debug|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug|x64.ActiveCfg = Debug|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release|Win32.ActiveCfg = Release|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release|x64.ActiveCfg = Release|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug|Win32.Build.0 = Debug|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug|x64.Build.0 = Debug|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release|Win32.Build.0 = Release|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release|x64.Build.0 = Release|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Debug-DLL|x64.Build.0 = Debug|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release-DLL|Win32.Build.0 = Release|Win32 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release-DLL|x64.ActiveCfg = Release|x64 - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290}.Release-DLL|x64.Build.0 = Release|x64 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|Win32.ActiveCfg = Debug|Win32 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Debug|x64.ActiveCfg = Debug|x64 {C65A4336-92D6-D6A0-EB86-E3AA425222D0}.Release|Win32.ActiveCfg = Release|Win32 @@ -2380,22 +2298,6 @@ Global {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|Win32.Build.0 = Release|Win32 {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|x64.ActiveCfg = Release|x64 {E3CEAFE1-8CE9-61F6-A720-E26662246B1F}.Release-DLL|x64.Build.0 = Release|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug|Win32.ActiveCfg = Debug|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug|x64.ActiveCfg = Debug|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release|Win32.ActiveCfg = Release|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release|x64.ActiveCfg = Release|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug|Win32.Build.0 = Debug|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug|x64.Build.0 = Debug|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release|Win32.Build.0 = Release|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release|x64.Build.0 = Release|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug-DLL|Win32.Build.0 = Debug|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug-DLL|x64.ActiveCfg = Debug|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Debug-DLL|x64.Build.0 = Debug|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release-DLL|Win32.ActiveCfg = Release|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release-DLL|Win32.Build.0 = Release|Win32 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release-DLL|x64.ActiveCfg = Release|x64 - {86E35862-43E8-F59E-F906-AFE0348AD3D2}.Release-DLL|x64.Build.0 = Release|x64 {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|Win32.ActiveCfg = Debug|Win32 {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Debug|x64.ActiveCfg = Debug|x64 {16CDF507-EB91-D76C-F0A7-A914ABFD8C17}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/grpc_cpp_plugin/grpc_cpp_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_cpp_plugin/grpc_cpp_plugin.vcxproj.filters index fe0d0d7a4449b..421c3083b318b 100644 --- a/vsprojects/vcxproj/grpc_cpp_plugin/grpc_cpp_plugin.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_cpp_plugin/grpc_cpp_plugin.vcxproj.filters @@ -15,21 +15,4 @@ - - - - - src\compiler - - - - - - {c620a9d0-7631-34ba-6712-774533631d63} - - - {2d2427da-b1a4-572b-239a-73695aa080ae} - - - diff --git a/vsprojects/vcxproj/grpc_csharp_plugin/grpc_csharp_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_csharp_plugin/grpc_csharp_plugin.vcxproj.filters index 4d6edd7d3dc68..a1af77ce3a5aa 100644 --- a/vsprojects/vcxproj/grpc_csharp_plugin/grpc_csharp_plugin.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_csharp_plugin/grpc_csharp_plugin.vcxproj.filters @@ -15,21 +15,4 @@ - - - - - src\compiler - - - - - - {4e6e6a05-415d-c3ba-abec-bba094134e98} - - - {83905892-f40c-567f-84b0-1dbbf060dd61} - - - diff --git a/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters index 60f813f374958..28b197f6f3918 100644 --- a/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_node_plugin/grpc_node_plugin.vcxproj.filters @@ -15,21 +15,4 @@ - - - - - src\compiler - - - - - - {089d5d6b-d438-dc98-b30f-bd608e3bbb78} - - - {1cc34440-c001-7578-c4d3-78f5d98fb602} - - - diff --git a/vsprojects/vcxproj/grpc_objective_c_plugin/grpc_objective_c_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_objective_c_plugin/grpc_objective_c_plugin.vcxproj.filters index b4b6979c00aa5..3a572015f0f52 100644 --- a/vsprojects/vcxproj/grpc_objective_c_plugin/grpc_objective_c_plugin.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_objective_c_plugin/grpc_objective_c_plugin.vcxproj.filters @@ -15,21 +15,4 @@ - - - - - src\compiler - - - - - - {f550bd5f-fe2a-43e3-61ad-758f91a46b52} - - - {d6122ed8-ce4a-ea3c-831c-54e81d65a3bc} - - - diff --git a/vsprojects/vcxproj/grpc_python_plugin/grpc_python_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_python_plugin/grpc_python_plugin.vcxproj.filters index 288e0e1aa179e..e9d60aceed8e1 100644 --- a/vsprojects/vcxproj/grpc_python_plugin/grpc_python_plugin.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_python_plugin/grpc_python_plugin.vcxproj.filters @@ -15,21 +15,4 @@ - - - - - src\compiler - - - - - - {493af5ff-4d2b-df8c-1cf2-28c895efe1a3} - - - {2517f73e-aa8f-108a-2a6d-b68ab23f7838} - - - diff --git a/vsprojects/vcxproj/grpc_ruby_plugin/grpc_ruby_plugin.vcxproj.filters b/vsprojects/vcxproj/grpc_ruby_plugin/grpc_ruby_plugin.vcxproj.filters index 22043cc3f845b..5eca183507263 100644 --- a/vsprojects/vcxproj/grpc_ruby_plugin/grpc_ruby_plugin.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_ruby_plugin/grpc_ruby_plugin.vcxproj.filters @@ -15,21 +15,4 @@ - - - - - src\compiler - - - - - - {22d1d570-a13c-2038-f50a-342e02640d48} - - - {789b3751-7b9d-eb74-cd7b-035456cf6ad6} - - - diff --git a/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj b/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj index 9c8cdc54c2506..78a0a63b5d71a 100644 --- a/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj +++ b/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj @@ -167,12 +167,6 @@ {86E35862-43E8-F59E-F906-AFE0348AD3D2} - - {0BE77741-552A-929B-A497-4EF7ECE17A64} - - - {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB} @@ -182,9 +176,6 @@ {29D16885-7228-4C31-81ED-5F9187C7F2A9} - - {EAB0A629-17A9-44DB-B5FF-E91A721FE037} - {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} diff --git a/vsprojects/vcxproj/test/mlog_test/mlog_test.vcxproj b/vsprojects/vcxproj/test/mlog_test/mlog_test.vcxproj index 868b8a9d08022..44b9a971f83d5 100644 --- a/vsprojects/vcxproj/test/mlog_test/mlog_test.vcxproj +++ b/vsprojects/vcxproj/test/mlog_test/mlog_test.vcxproj @@ -165,24 +165,15 @@ {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} - - {86E35862-43E8-F59E-F906-AFE0348AD3D2} - - - {5F575402-3F89-5D1A-6910-9DB8BF5D2BAB} - - - {C187A093-A0FE-489D-A40A-6E33DE0F9FEB} - {29D16885-7228-4C31-81ED-5F9187C7F2A9} + + {EAB0A629-17A9-44DB-B5FF-E91A721FE037} + {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} - - {3F7D093D-11F9-C4BC-BEB7-18EB28E3F290} - From c83fa8a7378768059b5cd1712fb827e0e01d8c79 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Wed, 17 Aug 2016 18:42:15 -0700 Subject: [PATCH 200/202] fix visual studio compilation --- src/c/call_ops.c | 6 +++--- src/c/init_shutdown.c | 2 +- src/c/unary_async_call.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 3983cc4f8fced..9de947e733153 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -324,11 +324,11 @@ void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, GRPC_context *context, const grpc_message request, void *response) { size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT] = {}; + grpc_op ops[GRPC_MAX_OP_COUNT] = {{0}}; size_t num_ops = GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); if (num_ops > 0 && call != NULL) { - GPR_ASSERT(GRPC_CALL_OK == - grpc_call_start_batch(call, ops, nops, set, NULL)); + grpc_call_error error = grpc_call_start_batch(call, ops, nops, set, NULL); + GPR_ASSERT(GRPC_CALL_OK == error); } } diff --git a/src/c/init_shutdown.c b/src/c/init_shutdown.c index bcc29d1f7f1a7..ac01f1ec761b9 100644 --- a/src/c/init_shutdown.c +++ b/src/c/init_shutdown.c @@ -36,7 +36,7 @@ #include #include -static void perform_grpc_init() { +static void perform_grpc_init(void) { grpc_init(); /* register grpc_shutdown to be called */ GPR_ASSERT(atexit(grpc_shutdown) == 0); diff --git a/src/c/unary_async_call.c b/src/c/unary_async_call.c index a622ecf388b34..32172abb5a52c 100644 --- a/src/c/unary_async_call.c +++ b/src/c/unary_async_call.c @@ -50,7 +50,7 @@ static void free_client_reader(void *arg) { GRPC_client_async_response_reader *GRPC_unary_async_call( GRPC_completion_queue *cq, const GRPC_method rpc_method, - const GRPC_message request, GRPC_client_context *context) { + const GRPC_message request, GRPC_client_context *const context) { grpc_call *call = grpc_channel_create_call( context->channel, NULL, GRPC_PROPAGATE_DEFAULTS, cq, rpc_method.name, "", context->deadline, NULL); From ec94dce0f3f03df22ee035c190607d520436e6a8 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 18 Aug 2016 17:00:51 -0700 Subject: [PATCH 201/202] fix warning on osx --- src/c/call_ops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 9de947e733153..8721fcf24eee3 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -31,10 +31,11 @@ * */ +#include #include "src/c/call_ops.h" #include #include -#include +#include #include "src/c/client_context.h" #include "src/c/server_context.h" @@ -324,7 +325,8 @@ void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, GRPC_context *context, const grpc_message request, void *response) { size_t nops; - grpc_op ops[GRPC_MAX_OP_COUNT] = {{0}}; + grpc_op ops[GRPC_MAX_OP_COUNT]; + memset(ops, 0, sizeof(ops)); size_t num_ops = GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); if (num_ops > 0 && call != NULL) { From bc1bb4fc19ceef2db9048ac3da0e01e89e38bd1e Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Thu, 18 Aug 2016 17:42:23 -0700 Subject: [PATCH 202/202] some final touchups before I leave... --- examples/c/helloworld/greeter_async_client.c | 3 ++- examples/c/helloworld/greeter_async_client2.c | 3 ++- examples/c/helloworld/greeter_async_server.c | 2 +- examples/c/helloworld/greeter_client.c | 3 ++- include/grpc_c/client_context.h | 6 ++++++ src/c/call_ops.c | 13 +++++++------ 6 files changed, 20 insertions(+), 10 deletions(-) diff --git a/examples/c/helloworld/greeter_async_client.c b/examples/c/helloworld/greeter_async_client.c index 0022096532aaa..0c179db47f42d 100644 --- a/examples/c/helloworld/greeter_async_client.c +++ b/examples/c/helloworld/greeter_async_client.c @@ -39,6 +39,7 @@ #include #include +#include #include #include "helloworld.grpc.pbc.h" @@ -58,7 +59,7 @@ static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); - if (!pb_read(stream, str, len)) return false; + if (!pb_read(stream, (uint8_t *) str, len)) return false; str[len] = '\0'; printf("Server replied %s\n", str); free(str); diff --git a/examples/c/helloworld/greeter_async_client2.c b/examples/c/helloworld/greeter_async_client2.c index 6406f0e3f6732..bc7b5f6a526b5 100644 --- a/examples/c/helloworld/greeter_async_client2.c +++ b/examples/c/helloworld/greeter_async_client2.c @@ -41,6 +41,7 @@ #include #include +#include #include #include "helloworld.grpc.pbc.h" @@ -68,7 +69,7 @@ static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); - if (!pb_read(stream, str, len)) return false; + if (!pb_read(stream, (uint8_t *) str, len)) return false; str[len] = '\0'; printf("Server replied %s\n", str); free(str); diff --git a/examples/c/helloworld/greeter_async_server.c b/examples/c/helloworld/greeter_async_server.c index 33441b8b0466c..71f82afee182d 100644 --- a/examples/c/helloworld/greeter_async_server.c +++ b/examples/c/helloworld/greeter_async_server.c @@ -67,7 +67,7 @@ static bool read_string_store_in_arg(pb_istream_t *stream, const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); - if (!pb_read(stream, str, len)) return false; + if (!pb_read(stream, (uint8_t *) str, len)) return false; str[len] = '\0'; *arg = str; return true; diff --git a/examples/c/helloworld/greeter_client.c b/examples/c/helloworld/greeter_client.c index b55217f2eb68d..6c13db3f59017 100644 --- a/examples/c/helloworld/greeter_client.c +++ b/examples/c/helloworld/greeter_client.c @@ -34,6 +34,7 @@ #include #include +#include #include #include "helloworld.grpc.pbc.h" @@ -53,7 +54,7 @@ static bool read_string(pb_istream_t *stream, const pb_field_t *field, void **arg) { size_t len = stream->bytes_left; char *str = malloc(len + 1); - if (!pb_read(stream, str, len)) return false; + if (!pb_read(stream, (uint8_t *) str, len)) return false; str[len] = '\0'; printf("Server replied %s\n", str); free(str); diff --git a/include/grpc_c/client_context.h b/include/grpc_c/client_context.h index 929afe091969b..3a4f2228bbd24 100644 --- a/include/grpc_c/client_context.h +++ b/include/grpc_c/client_context.h @@ -37,8 +37,14 @@ #include #include +/** + * Creates a client context for making a call over the specified channel. + */ GRPC_client_context *GRPC_client_context_create(GRPC_channel *chan); +/** + * Destroys the client context and sets it to NULL. + */ void GRPC_client_context_destroy(GRPC_client_context **context); /** diff --git a/src/c/call_ops.c b/src/c/call_ops.c index 8721fcf24eee3..50dd0c5ed18d0 100644 --- a/src/c/call_ops.c +++ b/src/c/call_ops.c @@ -214,7 +214,6 @@ static bool op_server_send_status_fill(grpc_op *op, GRPC_context *context, GRPC_call_op_set *set, const grpc_message message, void *response) { - // TODO(yifeit): hook up to server handlers GRPC_server_context *server_context = (GRPC_server_context *)context; op->op = GRPC_OP_SEND_STATUS_FROM_SERVER; op->data.send_status_from_server.trailing_metadata_count = @@ -312,9 +311,9 @@ bool GRPC_finish_op_from_call_set(GRPC_call_op_set *set, set->operations[count].finish == NULL) break; // end of call set if (set->operations[count].finish == NULL) continue; - int size = 100; // todo(yifeit): hook up this value + int max_message_size = 100; // todo(yifeit): hook up this value bool status = true; - set->operations[count].finish(context, set, &status, size); + set->operations[count].finish(context, set, &status, max_message_size); allStatus &= status; count++; } @@ -327,9 +326,11 @@ void GRPC_start_batch_from_op_set(grpc_call *call, GRPC_call_op_set *set, size_t nops; grpc_op ops[GRPC_MAX_OP_COUNT]; memset(ops, 0, sizeof(ops)); - size_t num_ops = - GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); - if (num_ops > 0 && call != NULL) { + GRPC_fill_op_from_call_set(set, context, request, response, ops, &nops); + // Server will sometimes use a GRPC_call_op_set to perform post processing, + // in which case there will be zero filled operations but some + // finish operations. + if (nops > 0 && call != NULL) { grpc_call_error error = grpc_call_start_batch(call, ops, nops, set, NULL); GPR_ASSERT(GRPC_CALL_OK == error); }