From 795f1de3256ac5f51590e79aa4501a7e673f35b0 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 3 Nov 2015 14:10:28 -0800 Subject: Temporary patch for max table size not being implemented yet --- src/core/transport/chttp2/hpack_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/transport/chttp2') diff --git a/src/core/transport/chttp2/hpack_parser.c b/src/core/transport/chttp2/hpack_parser.c index 6eebfc3ce4..ccfaece936 100644 --- a/src/core/transport/chttp2/hpack_parser.c +++ b/src/core/transport/chttp2/hpack_parser.c @@ -901,8 +901,8 @@ static int parse_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p, static int finish_max_tbl_size(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { gpr_log(GPR_INFO, "MAX TABLE SIZE: %d", p->index); - abort(); /* not implemented */ - return parse_begin(p, cur, end); + /* not implemented */ + return 0; } /* parse a max table size change, max size < 15 */ -- cgit v1.2.3 From 027a74cd3b3ce350ba5890d0fd8f6399a200227f Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 10 Nov 2015 08:37:46 +0000 Subject: First round changes to handle dynamic hpack table size --- include/grpc/grpc.h | 5 + src/core/transport/chttp2/hpack_encoder.c | 92 +++- src/core/transport/chttp2/hpack_encoder.h | 22 +- src/core/transport/chttp2/hpack_parser.c | 67 +-- src/core/transport/chttp2/hpack_table.c | 95 +++- src/core/transport/chttp2/hpack_table.h | 29 +- src/core/transport/chttp2/internal.h | 6 +- src/core/transport/chttp2/parsing.c | 3 + src/core/transport/chttp2/writing.c | 8 +- src/core/transport/chttp2_transport.c | 23 +- test/core/end2end/gen_build_yaml.py | 1 + test/core/end2end/tests/hpack_size.c | 467 +++++++++++++++++ tools/run_tests/sources_and_headers.json | 384 ++++++++++++++ tools/run_tests/tests.json | 407 +++++++++++++++ vsprojects/buildtests_c.sln | 560 +++++++++++++++++++++ .../end2end_test_hpack_size.vcxproj | 167 ++++++ .../end2end_test_hpack_size.vcxproj.filters | 32 ++ .../h2_compress_hpack_size_nosec_test.vcxproj | 190 +++++++ ..._compress_hpack_size_nosec_test.vcxproj.filters | 7 + .../h2_compress_hpack_size_test.vcxproj | 193 +++++++ .../h2_compress_hpack_size_test.vcxproj.filters | 7 + .../h2_fakesec_hpack_size_test.vcxproj | 193 +++++++ .../h2_fakesec_hpack_size_test.vcxproj.filters | 7 + .../h2_full_hpack_size_nosec_test.vcxproj | 190 +++++++ .../h2_full_hpack_size_nosec_test.vcxproj.filters | 7 + .../h2_full_hpack_size_test.vcxproj | 193 +++++++ .../h2_full_hpack_size_test.vcxproj.filters | 7 + .../h2_oauth2_hpack_size_test.vcxproj | 193 +++++++ .../h2_oauth2_hpack_size_test.vcxproj.filters | 7 + .../h2_proxy_hpack_size_nosec_test.vcxproj | 190 +++++++ .../h2_proxy_hpack_size_nosec_test.vcxproj.filters | 7 + .../h2_proxy_hpack_size_test.vcxproj | 193 +++++++ .../h2_proxy_hpack_size_test.vcxproj.filters | 7 + ...h2_sockpair+trace_hpack_size_nosec_test.vcxproj | 190 +++++++ ...air+trace_hpack_size_nosec_test.vcxproj.filters | 7 + .../h2_sockpair+trace_hpack_size_test.vcxproj | 193 +++++++ ..._sockpair+trace_hpack_size_test.vcxproj.filters | 7 + ...h2_sockpair_1byte_hpack_size_nosec_test.vcxproj | 190 +++++++ ...air_1byte_hpack_size_nosec_test.vcxproj.filters | 7 + .../h2_sockpair_1byte_hpack_size_test.vcxproj | 193 +++++++ ..._sockpair_1byte_hpack_size_test.vcxproj.filters | 7 + .../h2_sockpair_hpack_size_nosec_test.vcxproj | 190 +++++++ ..._sockpair_hpack_size_nosec_test.vcxproj.filters | 7 + .../h2_sockpair_hpack_size_test.vcxproj | 193 +++++++ .../h2_sockpair_hpack_size_test.vcxproj.filters | 7 + .../h2_ssl_hpack_size_test.vcxproj | 193 +++++++ .../h2_ssl_hpack_size_test.vcxproj.filters | 7 + .../h2_ssl_proxy_hpack_size_test.vcxproj | 193 +++++++ .../h2_ssl_proxy_hpack_size_test.vcxproj.filters | 7 + .../h2_uchannel_hpack_size_nosec_test.vcxproj | 190 +++++++ ..._uchannel_hpack_size_nosec_test.vcxproj.filters | 7 + .../h2_uchannel_hpack_size_test.vcxproj | 193 +++++++ .../h2_uchannel_hpack_size_test.vcxproj.filters | 7 + 53 files changed, 5871 insertions(+), 76 deletions(-) create mode 100644 test/core/end2end/tests/hpack_size.c create mode 100644 vsprojects/vcxproj/test/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj create mode 100644 vsprojects/vcxproj/test/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj.filters create mode 100644 vsprojects/vcxproj/test/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj create mode 100644 vsprojects/vcxproj/test/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj.filters (limited to 'src/core/transport/chttp2') diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h index 191ad5db1e..a8abd1ad1b 100644 --- a/include/grpc/grpc.h +++ b/include/grpc/grpc.h @@ -127,6 +127,11 @@ typedef struct { /** Initial sequence number for http2 transports */ #define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \ "grpc.http2.initial_sequence_number" +/** How much memory to use for hpack decoding */ +#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \ + "grpc.http2.hpack_table_size.decoder" +#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \ + "grpc.http2.hpack_table_size.encoder" /** Default authority to pass if none specified on call construction */ #define GRPC_ARG_DEFAULT_AUTHORITY "grpc.default_authority" /** Primary user agent: goes at the start of the user-agent metadata diff --git a/src/core/transport/chttp2/hpack_encoder.c b/src/core/transport/chttp2/hpack_encoder.c index 6c7c00b7c3..7ec5a4fb2d 100644 --- a/src/core/transport/chttp2/hpack_encoder.c +++ b/src/core/transport/chttp2/hpack_encoder.c @@ -36,8 +36,10 @@ #include #include +#include #include #include + #include "src/core/transport/chttp2/bin_encoder.h" #include "src/core/transport/chttp2/hpack_table.h" #include "src/core/transport/chttp2/timeout_encoding.h" @@ -154,6 +156,20 @@ static gpr_uint8 *add_tiny_header_data(framer_state *st, size_t len) { return gpr_slice_buffer_tiny_add(st->output, len); } +static void evict_entry(grpc_chttp2_hpack_compressor *c) { + c->tail_remote_index++; + GPR_ASSERT(c->tail_remote_index > 0); + GPR_ASSERT(c->table_size >= + c->table_elem_size[c->tail_remote_index % + c->cap_table_elems]); + GPR_ASSERT(c->table_elems > 0); + c->table_size = + (gpr_uint16)(c->table_size - + c->table_elem_size[c->tail_remote_index % + c->cap_table_elems]); + c->table_elems--; +} + /* add an element to the decoder table */ static void add_elem(grpc_chttp2_hpack_compressor *c, grpc_mdelem *elem) { gpr_uint32 key_hash = elem->key->hash; @@ -164,25 +180,21 @@ static void add_elem(grpc_chttp2_hpack_compressor *c, grpc_mdelem *elem) { GPR_ASSERT(elem_size < 65536); + if (elem_size > c->max_table_size) { + while (c->table_size > 0) { + evict_entry(c); + } + return; + } + /* Reserve space for this element in the remote table: if this overflows the current table, drop elements until it fits, matching the decompressor algorithm */ - /* TODO(ctiller): constant */ - while (c->table_size + elem_size > 4096) { - c->tail_remote_index++; - GPR_ASSERT(c->tail_remote_index > 0); - GPR_ASSERT(c->table_size >= - c->table_elem_size[c->tail_remote_index % - GRPC_CHTTP2_HPACKC_MAX_TABLE_ELEMS]); - GPR_ASSERT(c->table_elems > 0); - c->table_size = - (gpr_uint16)(c->table_size - - c->table_elem_size[c->tail_remote_index % - GRPC_CHTTP2_HPACKC_MAX_TABLE_ELEMS]); - c->table_elems--; + while (c->table_size + elem_size > c->max_table_size) { + evict_entry(c); } - GPR_ASSERT(c->table_elems < GRPC_CHTTP2_HPACKC_MAX_TABLE_ELEMS); - c->table_elem_size[new_index % GRPC_CHTTP2_HPACKC_MAX_TABLE_ELEMS] = + GPR_ASSERT(c->table_elems < c->max_table_size); + c->table_elem_size[new_index % c->cap_table_elems] = (gpr_uint16)elem_size; c->table_size = (gpr_uint16)(c->table_size + elem_size); c->table_elems++; @@ -329,6 +341,12 @@ static void emit_lithdr_noidx_v(grpc_chttp2_hpack_compressor *c, add_header_data(st, gpr_slice_ref(value_slice)); } +static void emit_advertise_table_size_change(grpc_chttp2_hpack_compressor *c, framer_state *st) { + gpr_uint32 len = GRPC_CHTTP2_VARINT_LENGTH(c->max_table_size, 3); + GRPC_CHTTP2_WRITE_VARINT(c->max_table_size, 3, 0x20, add_tiny_header_data(st, len), len); + c->advertise_table_size_change = 0; +} + static gpr_uint32 dynidx(grpc_chttp2_hpack_compressor *c, gpr_uint32 elem_index) { return 1 + GRPC_CHTTP2_LAST_STATIC_ENTRY + c->tail_remote_index + @@ -447,11 +465,20 @@ gpr_slice grpc_chttp2_data_frame_create_empty_close(gpr_uint32 id) { return slice; } +static gpr_uint32 elems_for_bytes(gpr_uint32 bytes) { + return (bytes + 31) / 32; +} + void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor *c, grpc_mdctx *ctx) { memset(c, 0, sizeof(*c)); c->mdctx = ctx; c->timeout_key_str = grpc_mdstr_from_string(ctx, "grpc-timeout"); + c->max_table_size = GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE; + c->cap_table_elems = c->max_table_elems = elems_for_bytes(c->max_table_size); + c->max_usable_size = GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE; + c->table_elem_size = gpr_malloc(sizeof(*c->table_elem_size) * c->cap_table_elems); + memset(c->table_elem_size, 0, sizeof(*c->table_elem_size) * c->cap_table_elems); } void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor *c) { @@ -461,6 +488,38 @@ void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor *c) { if (c->entries_elems[i]) GRPC_MDELEM_UNREF(c->entries_elems[i]); } GRPC_MDSTR_UNREF(c->timeout_key_str); + gpr_free(c->table_elem_size); +} + +void grpc_chttp2_hpack_compressor_set_max_usable_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) { + c->max_usable_size = max_table_size; + grpc_chttp2_hpack_compressor_set_max_table_size(c, GPR_MIN(c->max_table_size, max_table_size)); +} + +static void rebuild_elems(grpc_chttp2_hpack_compressor *c, gpr_uint32 new_cap) { + +} + +void grpc_chttp2_hpack_compressor_set_max_table_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) { + max_table_size = GPR_MIN(max_table_size, c->max_usable_size); + if (max_table_size == c->max_table_size) { + return; + } + while (c->table_size > 0 && c->table_size > max_table_size) { + evict_entry(c); + } + c->max_table_size = max_table_size; + c->max_table_elems = elems_for_bytes(max_table_size); + if (c->max_table_elems > c->cap_table_elems) { + rebuild_elems(c, GPR_MAX(c->max_table_elems, 2 * c->cap_table_elems)); + } else if (c->max_table_elems < c->cap_table_elems / 3) { + gpr_uint32 new_cap = GPR_MIN(c->max_table_elems, 16); + if (new_cap != c->cap_table_elems) { + rebuild_elems(c, new_cap); + } + } + c->advertise_table_size_change = 1; + gpr_log(GPR_DEBUG, "set max table size from encoder to %d", max_table_size); } void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c, @@ -483,6 +542,9 @@ void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c, slot. THIS MAY NOT BE THE SAME ELEMENT (if a decoder table slot got updated). After this loop, we'll do a batch unref of elements. */ begin_frame(&st); + if (c->advertise_table_size_change != 0) { + emit_advertise_table_size_change(c, &st); + } grpc_metadata_batch_assert_ok(metadata); for (l = metadata->list.head; l; l = l->next) { hpack_enc(c, l->md, &st); diff --git a/src/core/transport/chttp2/hpack_encoder.h b/src/core/transport/chttp2/hpack_encoder.h index 59b122dfda..ff32b08d60 100644 --- a/src/core/transport/chttp2/hpack_encoder.h +++ b/src/core/transport/chttp2/hpack_encoder.h @@ -43,14 +43,26 @@ #define GRPC_CHTTP2_HPACKC_NUM_FILTERS 256 #define GRPC_CHTTP2_HPACKC_NUM_VALUES 256 -#define GRPC_CHTTP2_HPACKC_MAX_TABLE_ELEMS (4096 / 32) +/* initial table size, per spec */ +#define GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE 4096 +/* maximum table size we'll actually use */ +#define GRPC_CHTTP2_HPACKC_MAX_TABLE_SIZE (1024*1024) typedef struct { gpr_uint32 filter_elems_sum; + gpr_uint32 max_table_size; + gpr_uint32 max_table_elems; + gpr_uint32 cap_table_elems; + /** if non-zero, advertise to the decoder that we'll start using a table + of this size */ + gpr_uint8 advertise_table_size_change; + /** maximum number of bytes we'll use for the decode table (to guard against + peers ooming us by setting decode table size high) */ + gpr_uint32 max_usable_size; /* one before the lowest usable table index */ gpr_uint32 tail_remote_index; - gpr_uint16 table_size; - gpr_uint16 table_elems; + gpr_uint32 table_size; + gpr_uint32 table_elems; /* filter tables for elems: this tables provides an approximate popularity count for particular hashes, and are used to determine whether @@ -71,12 +83,14 @@ typedef struct { gpr_uint32 indices_keys[GRPC_CHTTP2_HPACKC_NUM_VALUES]; gpr_uint32 indices_elems[GRPC_CHTTP2_HPACKC_NUM_VALUES]; - gpr_uint16 table_elem_size[GRPC_CHTTP2_HPACKC_MAX_TABLE_ELEMS]; + gpr_uint16 *table_elem_size; } grpc_chttp2_hpack_compressor; void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor *c, grpc_mdctx *mdctx); void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor *c); +void grpc_chttp2_hpack_compressor_set_max_table_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size); +void grpc_chttp2_hpack_compressor_set_max_usable_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size); void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c, gpr_uint32 id, grpc_metadata_batch *metadata, int is_eof, diff --git a/src/core/transport/chttp2/hpack_parser.c b/src/core/transport/chttp2/hpack_parser.c index ccfaece936..6d3c340a8a 100644 --- a/src/core/transport/chttp2/hpack_parser.c +++ b/src/core/transport/chttp2/hpack_parser.c @@ -74,6 +74,8 @@ static int parse_begin(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end); static int parse_error(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end); +static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, + const gpr_uint8 *end); static int parse_string_prefix(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end); @@ -156,7 +158,7 @@ static const grpc_chttp2_hpack_parser_state first_byte_action[] = { parse_lithdr_incidx_x, parse_lithdr_incidx_v, parse_lithdr_notidx, parse_lithdr_notidx_x, parse_lithdr_notidx_v, parse_lithdr_nvridx, parse_lithdr_nvridx_x, parse_lithdr_nvridx_v, parse_max_tbl_size, - parse_max_tbl_size_x, parse_error}; + parse_max_tbl_size_x, parse_illegal_op}; /* indexes the first byte to a parse state function - generated by gen_hpack_tables.c */ @@ -169,7 +171,7 @@ static const gpr_uint8 first_byte_lut[256] = { LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX, LITHDR_NVRIDX_X, - ILLEGAL, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, + MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, MAX_TBL_SIZE, @@ -622,13 +624,16 @@ static const gpr_uint8 inverse_base64[256] = { }; /* emission helpers */ -static void on_hdr(grpc_chttp2_hpack_parser *p, grpc_mdelem *md, +static int on_hdr(grpc_chttp2_hpack_parser *p, grpc_mdelem *md, int add_to_table) { if (add_to_table) { GRPC_MDELEM_REF(md); - grpc_chttp2_hptbl_add(&p->table, md); + if (!grpc_chttp2_hptbl_add(&p->table, md)) { + return 0; + } } p->on_header(p->on_header_user_data, md); + return 1; } static grpc_mdstr *take_string(grpc_chttp2_hpack_parser *p, @@ -714,9 +719,12 @@ static int parse_stream_dep0(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, static int finish_indexed_field(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index); + if (md == NULL) { + gpr_log(GPR_ERROR, "Invalid HPACK index received: %d", p->index); + return 0; + } GRPC_MDELEM_REF(md); - on_hdr(p, md, 0); - return parse_begin(p, cur, end); + return on_hdr(p, md, 0) && parse_begin(p, cur, end); } /* parse an indexed field with index < 127 */ @@ -742,21 +750,20 @@ static int parse_indexed_field_x(grpc_chttp2_hpack_parser *p, static int finish_lithdr_incidx(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index); - on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, + return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, GRPC_MDSTR_REF(md->key), take_string(p, &p->value)), - 1); - return parse_begin(p, cur, end); + 1) && parse_begin(p, cur, end); } /* finish a literal header with incremental indexing with no index */ static int finish_lithdr_incidx_v(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { - on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, + return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, take_string(p, &p->key), take_string(p, &p->value)), - 1); - return parse_begin(p, cur, end); + 1) && + parse_begin(p, cur, end); } /* parse a literal header with incremental indexing; index < 63 */ @@ -795,21 +802,20 @@ static int parse_lithdr_incidx_v(grpc_chttp2_hpack_parser *p, static int finish_lithdr_notidx(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index); - on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, + return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, GRPC_MDSTR_REF(md->key), take_string(p, &p->value)), - 0); - return parse_begin(p, cur, end); + 0) && + parse_begin(p, cur, end); } /* finish a literal header without incremental indexing with index = 0 */ static int finish_lithdr_notidx_v(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { - on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, + return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, take_string(p, &p->key), take_string(p, &p->value)), - 0); - return parse_begin(p, cur, end); + 0) && parse_begin(p, cur, end); } /* parse a literal header without incremental indexing; index < 15 */ @@ -848,21 +854,21 @@ static int parse_lithdr_notidx_v(grpc_chttp2_hpack_parser *p, static int finish_lithdr_nvridx(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index); - on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, + return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, GRPC_MDSTR_REF(md->key), take_string(p, &p->value)), - 0); - return parse_begin(p, cur, end); + 0) && + parse_begin(p, cur, end); } /* finish a literal header that is never indexed with an extra value */ static int finish_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { - on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, + return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, take_string(p, &p->key), take_string(p, &p->value)), - 0); - return parse_begin(p, cur, end); + 0) && + parse_begin(p, cur, end); } /* parse a literal header that is never indexed; index < 15 */ @@ -901,14 +907,13 @@ static int parse_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p, static int finish_max_tbl_size(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { gpr_log(GPR_INFO, "MAX TABLE SIZE: %d", p->index); - /* not implemented */ - return 0; + return grpc_chttp2_hptbl_set_current_table_size(&p->table, p->index) && parse_begin(p, cur, end); } /* parse a max table size change, max size < 15 */ static int parse_max_tbl_size(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { - p->index = (*cur) & 0xf; + p->index = (*cur) & 0x1f; return finish_max_tbl_size(p, cur + 1, end); } @@ -918,7 +923,7 @@ static int parse_max_tbl_size_x(grpc_chttp2_hpack_parser *p, static const grpc_chttp2_hpack_parser_state and_then[] = { finish_max_tbl_size}; p->next_state = and_then; - p->index = 0xf; + p->index = 0x1f; p->parsing.value = &p->index; return parse_value0(p, cur + 1, end); } @@ -930,6 +935,12 @@ static int parse_error(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, return 0; } +static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { + GPR_ASSERT(cur != end); + gpr_log(GPR_DEBUG, "Illegal hpack op code %d", *cur); + return parse_error(p, cur, end); +} + /* parse the 1st byte of a varint into p->parsing.value no overflow is possible */ static int parse_value0(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index c442c2c341..fde74b3acd 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -36,7 +36,9 @@ #include #include +#include #include + #include "src/core/support/murmur_hash.h" static struct { @@ -169,12 +171,19 @@ static struct { {"www-authenticate", ""}, }; +static gpr_uint32 entries_for_bytes(gpr_uint32 bytes) { + return (bytes + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD - 1) / GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; +} + void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl *tbl, grpc_mdctx *mdctx) { size_t i; memset(tbl, 0, sizeof(*tbl)); tbl->mdctx = mdctx; - tbl->max_bytes = GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE; + tbl->current_table_bytes = tbl->max_bytes = GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE; + tbl->max_entries = tbl->cap_entries = entries_for_bytes(tbl->current_table_bytes); + tbl->ents = gpr_malloc(sizeof(*tbl->ents) * tbl->cap_entries); + memset(tbl->ents, 0, sizeof(*tbl->ents) * tbl->cap_entries); for (i = 1; i <= GRPC_CHTTP2_LAST_STATIC_ENTRY; i++) { tbl->static_ents[i - 1] = grpc_mdelem_from_strings( mdctx, static_table[i].key, static_table[i].value); @@ -188,7 +197,7 @@ void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl) { } for (i = 0; i < tbl->num_ents; i++) { GRPC_MDELEM_UNREF( - tbl->ents[(tbl->first_ent + i) % GRPC_CHTTP2_MAX_TABLE_COUNT]); + tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]); } } @@ -202,7 +211,7 @@ grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl, tbl_index -= (GRPC_CHTTP2_LAST_STATIC_ENTRY + 1); if (tbl_index < tbl->num_ents) { gpr_uint32 offset = (tbl->num_ents - 1u - tbl_index + tbl->first_ent) % - GRPC_CHTTP2_MAX_TABLE_COUNT; + tbl->cap_entries; return tbl->ents[offset]; } /* Invalid entry: return error */ @@ -216,21 +225,74 @@ static void evict1(grpc_chttp2_hptbl *tbl) { GPR_SLICE_LENGTH(first_ent->value->slice) + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; GPR_ASSERT(elem_bytes <= tbl->mem_used); - tbl->mem_used = (gpr_uint16)(tbl->mem_used - elem_bytes); + tbl->mem_used -= elem_bytes; tbl->first_ent = - (gpr_uint16)((tbl->first_ent + 1) % GRPC_CHTTP2_MAX_TABLE_COUNT); + ((tbl->first_ent + 1) % tbl->cap_entries); tbl->num_ents--; GRPC_MDELEM_UNREF(first_ent); } -void grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { +static void rebuild_ents(grpc_chttp2_hptbl *tbl, gpr_uint32 new_cap) { + grpc_mdelem **ents = gpr_malloc(sizeof(*ents) * new_cap); + gpr_uint32 i; + + for (i = 0; i < tbl->num_ents; i++) { + ents[i] = tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]; + } + gpr_free(tbl->ents); + tbl->cap_entries = new_cap; + tbl->first_ent = 0; +} + +void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, gpr_uint32 max_bytes) { + if (tbl->max_bytes == max_bytes) { + return; + } + gpr_log(GPR_DEBUG, "Update hpack parser max size to %d", max_bytes); + while (tbl->mem_used > max_bytes) { + evict1(tbl); + } + tbl->max_bytes = max_bytes; +} + +int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, gpr_uint32 bytes) { + if (tbl->current_table_bytes == bytes) { + return 1; + } + if (bytes > tbl->max_bytes) { + gpr_log(GPR_ERROR, "Attempt to make hpack table %d bytes when max is %d bytes", bytes, tbl->max_bytes); + return 0; + } + gpr_log(GPR_DEBUG, "Update hpack parser table size to %d", bytes); + while (tbl->mem_used > bytes) { + evict1(tbl); + } + tbl->current_table_bytes = bytes; + tbl->max_entries = entries_for_bytes(bytes); + if (tbl->max_entries > tbl->cap_entries) { + rebuild_ents(tbl, GPR_MAX(tbl->max_entries, 2 * tbl->cap_entries)); + } else if (tbl->max_entries < tbl->cap_entries / 3) { + gpr_uint32 new_cap = GPR_MAX(tbl->max_entries, 16u); + if (new_cap != tbl->cap_entries) { + rebuild_ents(tbl, new_cap); + } + } + return 1; +} + +int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { /* determine how many bytes of buffer this entry represents */ size_t elem_bytes = GPR_SLICE_LENGTH(md->key->slice) + GPR_SLICE_LENGTH(md->value->slice) + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; + if (tbl->current_table_bytes > tbl->max_bytes) { + gpr_log(GPR_ERROR, "HPACK max table size reduced to %d but not reflected by hpack stream", tbl->max_bytes); + return 0; + } + /* we can't add elements bigger than the max table size */ - if (elem_bytes > tbl->max_bytes) { + if (elem_bytes > tbl->current_table_bytes) { /* HPACK draft 10 section 4.4 states: * If the size of the new entry is less than or equal to the maximum * size, that entry is added to the table. It is not an error to @@ -243,11 +305,11 @@ void grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { while (tbl->num_ents) { evict1(tbl); } - return; + return 1; } /* evict entries to ensure no overflow */ - while (elem_bytes > (size_t)tbl->max_bytes - tbl->mem_used) { + while (elem_bytes > (size_t)tbl->current_table_bytes - tbl->mem_used) { evict1(tbl); } @@ -256,31 +318,32 @@ void grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { /* update accounting values */ tbl->last_ent = - (gpr_uint16)((tbl->last_ent + 1) % GRPC_CHTTP2_MAX_TABLE_COUNT); + ((tbl->last_ent + 1) % tbl->cap_entries); tbl->num_ents++; - tbl->mem_used = (gpr_uint16)(tbl->mem_used + elem_bytes); + tbl->mem_used += elem_bytes; + return 1; } grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find( const grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { grpc_chttp2_hptbl_find_result r = {0, 0}; - gpr_uint16 i; + gpr_uint32 i; /* See if the string is in the static table */ for (i = 0; i < GRPC_CHTTP2_LAST_STATIC_ENTRY; i++) { grpc_mdelem *ent = tbl->static_ents[i]; if (md->key != ent->key) continue; - r.index = (gpr_uint16)(i + 1); + r.index = i + 1u; r.has_value = md->value == ent->value; if (r.has_value) return r; } /* Scan the dynamic table */ for (i = 0; i < tbl->num_ents; i++) { - gpr_uint16 idx = - (gpr_uint16)(tbl->num_ents - i + GRPC_CHTTP2_LAST_STATIC_ENTRY); + gpr_uint32 idx = + (gpr_uint32)(tbl->num_ents - i + GRPC_CHTTP2_LAST_STATIC_ENTRY); grpc_mdelem *ent = - tbl->ents[(tbl->first_ent + i) % GRPC_CHTTP2_MAX_TABLE_COUNT]; + tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]; if (md->key != ent->key) continue; r.index = idx; r.has_value = md->value == ent->value; diff --git a/src/core/transport/chttp2/hpack_table.h b/src/core/transport/chttp2/hpack_table.h index 4f882e2e03..d3560d34e0 100644 --- a/src/core/transport/chttp2/hpack_table.h +++ b/src/core/transport/chttp2/hpack_table.h @@ -49,47 +49,58 @@ #define GRPC_CHTTP2_MAX_HPACK_TABLE_SIZE GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE /* Per entry overhead bytes as per the spec */ #define GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD 32 +#if 0 /* Maximum number of entries we could possibly fit in the table, given defined overheads */ #define GRPC_CHTTP2_MAX_TABLE_COUNT \ ((GRPC_CHTTP2_MAX_HPACK_TABLE_SIZE + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD - 1) / \ GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD) +#endif /* hpack decoder table */ typedef struct { grpc_mdctx *mdctx; /* the first used entry in ents */ - gpr_uint16 first_ent; + gpr_uint32 first_ent; /* the last used entry in ents */ - gpr_uint16 last_ent; + gpr_uint32 last_ent; /* how many entries are in the table */ - gpr_uint16 num_ents; + gpr_uint32 num_ents; /* the amount of memory used by the table, according to the hpack algorithm */ - gpr_uint16 mem_used; + gpr_uint32 mem_used; /* the max memory allowed to be used by the table, according to the hpack algorithm */ - gpr_uint16 max_bytes; + gpr_uint32 max_bytes; + /* the currently agreed size of the table, according to the hpack algorithm */ + gpr_uint32 current_table_bytes; + /* Maximum number of entries we could possibly fit in the table, given defined + overheads */ + gpr_uint32 max_entries; + /* Number of entries allocated in ents */ + gpr_uint32 cap_entries; /* a circular buffer of headers - this is stored in the opposite order to what hpack specifies, in order to simplify table management a little... meaning lookups need to SUBTRACT from the end position */ - grpc_mdelem *ents[GRPC_CHTTP2_MAX_TABLE_COUNT]; + grpc_mdelem **ents; grpc_mdelem *static_ents[GRPC_CHTTP2_LAST_STATIC_ENTRY]; } grpc_chttp2_hptbl; /* initialize a hpack table */ void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl *tbl, grpc_mdctx *mdctx); void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl); +void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, gpr_uint32 max_bytes); +int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, gpr_uint32 bytes); /* lookup a table entry based on its hpack index */ grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl, gpr_uint32 index); /* add a table entry to the index */ -void grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md); +int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) GRPC_MUST_USE_RESULT; /* Find a key/value pair in the table... returns the index in the table of the most similar entry, or 0 if the value was not found */ typedef struct { - gpr_uint16 index; - gpr_uint8 has_value; + gpr_uint32 index; + int has_value; } grpc_chttp2_hptbl_find_result; grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find( const grpc_chttp2_hptbl *tbl, grpc_mdelem *md); diff --git a/src/core/transport/chttp2/internal.h b/src/core/transport/chttp2/internal.h index 2d0cb4abdb..216439549c 100644 --- a/src/core/transport/chttp2/internal.h +++ b/src/core/transport/chttp2/internal.h @@ -227,6 +227,9 @@ struct grpc_chttp2_transport_parsing { /** was a goaway frame received? */ gpr_uint8 goaway_received; + /** the last sent max_table_size setting */ + gpr_uint32 last_sent_max_table_size; + /** initial window change */ gpr_int64 initial_window_update; @@ -483,7 +486,8 @@ struct grpc_chttp2_stream { /** Someone is unlocking the transport mutex: check to see if writes are required, and schedule them if so */ int grpc_chttp2_unlocking_check_writes(grpc_chttp2_transport_global *global, - grpc_chttp2_transport_writing *writing); + grpc_chttp2_transport_writing *writing, + int is_parsing); void grpc_chttp2_perform_writes( grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_writing *transport_writing, grpc_endpoint *endpoint); diff --git a/src/core/transport/chttp2/parsing.c b/src/core/transport/chttp2/parsing.c index 8cef8fbb77..9a96a8ef4d 100644 --- a/src/core/transport/chttp2/parsing.c +++ b/src/core/transport/chttp2/parsing.c @@ -78,6 +78,7 @@ void grpc_chttp2_prepare_to_read( GPR_TIMER_BEGIN("grpc_chttp2_prepare_to_read", 0); transport_parsing->next_stream_id = transport_global->next_stream_id; + transport_parsing->last_sent_max_table_size = transport_global->settings[GRPC_SENT_SETTINGS][GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]; /* update the parsing view of incoming window */ while (grpc_chttp2_list_pop_unannounced_incoming_window_available( @@ -127,6 +128,7 @@ void grpc_chttp2_publish_reads( transport_global->settings[GRPC_SENT_SETTINGS], GRPC_CHTTP2_NUM_SETTINGS * sizeof(gpr_uint32)); transport_parsing->settings_ack_received = 0; + transport_global->sent_local_settings = 0; } /* move goaway to the global state if we received one (it will be @@ -819,6 +821,7 @@ static int init_settings_frame_parser( } if (transport_parsing->incoming_frame_flags & GRPC_CHTTP2_FLAG_ACK) { transport_parsing->settings_ack_received = 1; + grpc_chttp2_hptbl_set_max_bytes(&transport_parsing->hpack_parser.table, transport_parsing->last_sent_max_table_size); } transport_parsing->parser = grpc_chttp2_settings_parser_parse; transport_parsing->parser_data = &transport_parsing->simple.settings; diff --git a/src/core/transport/chttp2/writing.c b/src/core/transport/chttp2/writing.c index 353e476e40..7fe4d0b6bc 100644 --- a/src/core/transport/chttp2/writing.c +++ b/src/core/transport/chttp2/writing.c @@ -45,7 +45,8 @@ static void finalize_outbuf(grpc_exec_ctx *exec_ctx, int grpc_chttp2_unlocking_check_writes( grpc_chttp2_transport_global *transport_global, - grpc_chttp2_transport_writing *transport_writing) { + grpc_chttp2_transport_writing *transport_writing, + int is_parsing) { grpc_chttp2_stream_global *stream_global; grpc_chttp2_stream_writing *stream_writing; @@ -55,8 +56,11 @@ int grpc_chttp2_unlocking_check_writes( gpr_slice_buffer_swap(&transport_global->qbuf, &transport_writing->outbuf); GPR_ASSERT(transport_global->qbuf.count == 0); + grpc_chttp2_hpack_compressor_set_max_table_size(&transport_writing->hpack_compressor, transport_global->settings[GRPC_PEER_SETTINGS][GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]); + if (transport_global->dirtied_local_settings && - !transport_global->sent_local_settings) { + !transport_global->sent_local_settings && + !is_parsing) { gpr_slice_buffer_add( &transport_writing->outbuf, grpc_chttp2_settings_create( diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index f62294c7c5..3aa2ef9892 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -338,6 +338,22 @@ static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, t->global.next_stream_id = (gpr_uint32)channel_args->args[i].value.integer; } + } else if (0 == strcmp(channel_args->args[i].key, GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER)) { + if (channel_args->args[i].type != GRPC_ARG_INTEGER) { + gpr_log(GPR_ERROR, "%s: must be an integer", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER); + } else if (channel_args->args[i].value.integer < 0) { + gpr_log(GPR_DEBUG, "%s: must be non-negative", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER); + } else { + push_setting(t, GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE, (gpr_uint32)channel_args->args[i].value.integer); + } + } else if (0 == strcmp(channel_args->args[i].key, GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER)) { + if (channel_args->args[i].type != GRPC_ARG_INTEGER) { + gpr_log(GPR_ERROR, "%s: must be an integer", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER); + } else if (channel_args->args[i].value.integer < 0) { + gpr_log(GPR_DEBUG, "%s: must be non-negative", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER); + } else { + grpc_chttp2_hpack_compressor_set_max_usable_size(&t->writing.hpack_compressor, (gpr_uint32)channel_args->args[i].value.integer); + } } } } @@ -563,7 +579,7 @@ static void lock(grpc_chttp2_transport *t) { gpr_mu_lock(&t->mu); } static void unlock(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) { GPR_TIMER_BEGIN("unlock", 0); if (!t->writing_active && !t->closed && - grpc_chttp2_unlocking_check_writes(&t->global, &t->writing)) { + grpc_chttp2_unlocking_check_writes(&t->global, &t->writing, t->parsing_active)) { t->writing_active = 1; REF_TRANSPORT(t, "writing"); grpc_exec_ctx_enqueue(exec_ctx, &t->writing_action, 1); @@ -735,6 +751,8 @@ static int contains_non_ok_status( return 0; } +static void do_nothing(grpc_exec_ctx *exec_ctx, void *arg, int success) {} + static void perform_stream_op_locked( grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global, grpc_chttp2_stream_global *stream_global, grpc_transport_stream_op *op) { @@ -743,6 +761,9 @@ static void perform_stream_op_locked( GPR_TIMER_BEGIN("perform_stream_op_locked", 0); on_complete = op->on_complete; + if (on_complete == NULL) { + on_complete = grpc_closure_create(do_nothing, NULL); + } /* use final_data as a barrier until enqueue time; the inital counter is dropped at the end of this function */ on_complete->final_data = 2; diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py index 38d3b2218a..0e946b0ae3 100755 --- a/test/core/end2end/gen_build_yaml.py +++ b/test/core/end2end/gen_build_yaml.py @@ -85,6 +85,7 @@ END2END_TESTS = { 'disappearing_server': connectivity_test_options, 'empty_batch': default_test_options, 'graceful_server_shutdown': default_test_options, + 'hpack_size': default_test_options, 'high_initial_seqno': default_test_options, 'invoke_large_request': default_test_options, 'large_metadata': default_test_options, diff --git a/test/core/end2end/tests/hpack_size.c b/test/core/end2end/tests/hpack_size.c new file mode 100644 index 0000000000..3aa69ff996 --- /dev/null +++ b/test/core/end2end/tests/hpack_size.c @@ -0,0 +1,467 @@ +/* + * + * 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/core/end2end/end2end_tests.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "src/core/support/string.h" +#include "test/core/end2end/cq_verifier.h" + +static void *tag(gpr_intptr t) { return (void *)t; } + +const char *hobbits[][2] = { + {"Adaldrida", "Brandybuck"}, + {"Adamanta", "Took"}, + {"Adalgrim", "Took"}, + {"Adelard", "Took"}, + {"Amaranth", "Brandybuck"}, + {"Andwise", "Roper"}, + {"Angelica", "Baggins"}, + {"Asphodel", "Burrows"}, + {"Balbo", "Baggins"}, + {"Bandobras", "Took"}, + {"Belba", "Bolger"}, + {"Bell", "Gamgee"}, + {"Belladonna", "Baggins"}, + {"Berylla", "Baggins"}, + {"Bilbo", "Baggins"}, + {"Bilbo", "Gardner"}, + {"Bill", "Butcher"}, + {"Bingo", "Baggins"}, + {"Bodo", "Proudfoot"}, + {"Bowman", "Cotton"}, + {"Bungo", "Baggins"}, + {"Camellia", "Sackville"}, + {"Carl", "Cotton"}, + {"Celandine", "Brandybuck"}, + {"Chica", "Baggins"}, + {"Daddy", "Twofoot"}, + {"Daisy", "Boffin"}, + {"Diamond", "Took"}, + {"Dinodas", "Brandybuck"}, + {"Doderic", "Brandybuck"}, + {"Dodinas", "Brandybuck"}, + {"Donnamira", "Boffin"}, + {"Dora", "Baggins"}, + {"Drogo", "Baggins"}, + {"Dudo", "Baggins"}, + {"Eglantine", "Took"}, + {"Elanor", "Fairbairn"}, + {"Elfstan", "Fairbairn"}, + {"Esmeralda", "Brandybuck"}, + {"Estella", "Brandybuck"}, + {"Everard", "Took"}, + {"Falco", "Chubb-Baggins"}, + {"Faramir", "Took"}, + {"Farmer", "Maggot"}, + {"Fastolph", "Bolger"}, + {"Ferdibrand", "Took"}, + {"Ferdinand", "Took"}, + {"Ferumbras", "Took"}, + {"Ferumbras", "Took"}, + {"Filibert", "Bolger"}, + {"Firiel", "Fairbairn"}, + {"Flambard", "Took"}, + {"Folco", "Boffin"}, + {"Fortinbras", "Took"}, + {"Fortinbras", "Took"}, + {"Fosco", "Baggins"}, + {"Fredegar", "Bolger"}, + {"Frodo", "Baggins"}, + {"Frodo", "Gardner"}, + {"Gerontius", "Took"}, + {"Gilly", "Baggins"}, + {"Goldilocks", "Took"}, + {"Gorbadoc", "Brandybuck"}, + {"Gorbulas", "Brandybuck"}, + {"Gorhendad", "Brandybuck"}, + {"Gormadoc", "Brandybuck"}, + {"Griffo", "Boffin"}, + {"Halfast", "Gamgee"}, + {"Halfred", "Gamgee"}, + {"Halfred", "Greenhand"}, + {"Hanna", "Brandybuck"}, + {"Hamfast", "Gamgee"}, + {"Hamfast", "Gardner"}, + {"Hamson", "Gamgee"}, + {"Harding", "Gardner"}, + {"Hilda", "Brandybuck"}, + {"Hildibrand", "Took"}, + {"Hildifons", "Took"}, + {"Hildigard", "Took"}, + {"Hildigrim", "Took"}, + {"Hob", "Gammidge"}, + {"Hob", "Hayward"}, + {"Hobson", "Gamgee"}, + {"Holfast", "Gardner"}, + {"Holman", "Cotton"}, + {"Holman", "Greenhand"}, + {"Hugo", "Boffin"}, + {"Hugo", "Bracegirdle"}, + {"Ilberic", "Brandybuck"}, + {"Isembard", "Took"}, + {"Isembold", "Took"}, + {"Isengar", "Took"}, + {"Isengrim", "Took"}, + {"Isengrim", "Took"}, + {"Isumbras", "Took"}, + {"Isumbras", "Took"}, + {"Jolly", "Cotton"}, + {"Lalia", "Took"}, + {"Largo", "Baggins"}, + {"Laura", "Baggins"}, + {"Lily", "Goodbody"}, + {"Lily", "Cotton"}, + {"Linda", "Proudfoot"}, + {"Lobelia", "Sackville-Baggins"}, + {"Longo", "Baggins"}, + {"Lotho", "Sackville-Baggins"}, + {"Madoc", "Brandybuck"}, + {"Malva", "Brandybuck"}, + {"Marigold", "Cotton"}, + {"Marmadas", "Brandybuck"}, + {"Marmadoc", "Brandybuck"}, + {"Marroc", "Brandybuck"}, + {"May", "Gamgee"}, + {"Melilot", "Brandybuck"}, + {"Menegilda", "Brandybuck"}, + {"Mentha", "Brandybuck"}, + {"Meriadoc", "Brandybuck"}, + {"Merimac", "Brandybuck"}, + {"Merimas", "Brandybuck"}, + {"Merry", "Gardner"}, + {"Milo", "Burrows"}, + {"Mimosa", "Baggins"}, + {"Minto", "Burrows"}, + {"Mirabella", "Brandybuck"}, + {"Moro", "Burrows"}, + {"Mosco", "Burrows"}, + {"Mungo", "Baggins"}, + {"Myrtle", "Burrows"}, + {"Odo", "Proudfoot"}, + {"Odovacar", "Bolger"}, + {"Olo", "Proudfoot"}, + {"Orgulas", "Brandybuck"}, + {"Otho", "Sackville-Baggins"}, + {"Paladin", "Took"}, + {"Pansy", "Bolger"}, + {"Pearl", "Took"}, + {"Peony", "Burrows"}, + {"Peregrin", "Took"}, + {"Pervinca", "Took"}, + {"Pimpernel", "Took"}, + {"Pippin", "Gardner"}, + {"Polo", "Baggins"}, + {"Ponto", "Baggins"}, + {"Porto", "Baggins"}, + {"Posco", "Baggins"}, + {"Poppy", "Bolger"}, + {"Primrose", "Gardner"}, + {"Primula", "Baggins"}, + {"Prisca", "Bolger"}, + {"Reginard", "Took"}, + {"Robin", "Smallburrow"}, + {"Robin", "Gardner"}, + {"Rorimac", "Brandybuck"}, + {"Rosa", "Took"}, + {"Rosamunda", "Bolger"}, + {"Rose", "Gardner"}, + {"Ruby", "Baggins"}, + {"Ruby", "Gardner"}, + {"Rudigar", "Bolger"}, + {"Rufus", "Burrows"}, + {"Sadoc", "Brandybuck"}, + {"Salvia", "Bolger"}, + {"Samwise", "Gamgee"}, + {"Sancho", "Proudfoot"}, + {"Saradas", "Brandybuck"}, + {"Saradoc", "Brandybuck"}, + {"Seredic", "Brandybuck"}, + {"Sigismond", "Took"}, + {"Smeagol", "Gollum"}, + {"Tanta", "Baggins"}, + {"Ted", "Sandyman"}, + {"Tobold", "Hornblower"}, + {"Togo", "Goodbody"}, + {"Tolman", "Cotton"}, + {"Tolman", "Gardner"}, + {"Widow", "Rumble"}, + {"Wilcome", "Cotton"}, + {"Wilcome", "Cotton"}, + {"Wilibald", "Bolger"}, + {"Will", "Whitfoot"}, + {"Wiseman", "Gamwich"} +}; + +const char *dragons[] = { + "Ancalagon", + "Glaurung", + "Scatha", + "Smaug the Magnificent" +}; + +static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config, + const char *test_name, + grpc_channel_args *client_args, + grpc_channel_args *server_args) { + grpc_end2end_test_fixture f; + gpr_log(GPR_INFO, "%s/%s", test_name, config.name); + f = config.create_fixture(client_args, server_args); + config.init_client(&f, client_args); + config.init_server(&f, server_args); + return f; +} + +static gpr_timespec n_seconds_time(int n) { + return GRPC_TIMEOUT_SECONDS_TO_DEADLINE(n); +} + +static gpr_timespec five_seconds_time(void) { return n_seconds_time(5); } + +static void drain_cq(grpc_completion_queue *cq) { + grpc_event ev; + do { + ev = grpc_completion_queue_next(cq, five_seconds_time(), NULL); + } while (ev.type != GRPC_QUEUE_SHUTDOWN); +} + +static void shutdown_server(grpc_end2end_test_fixture *f) { + if (!f->server) return; + grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000)); + GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000), + GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), + NULL).type == GRPC_OP_COMPLETE); + grpc_server_destroy(f->server); + f->server = NULL; +} + +static void shutdown_client(grpc_end2end_test_fixture *f) { + if (!f->client) return; + grpc_channel_destroy(f->client); + f->client = NULL; +} + +static void end_test(grpc_end2end_test_fixture *f) { + shutdown_server(f); + shutdown_client(f); + + grpc_completion_queue_shutdown(f->cq); + drain_cq(f->cq); + grpc_completion_queue_destroy(f->cq); +} + +static void simple_request_body(grpc_end2end_test_fixture f, size_t index) { + grpc_call *c; + grpc_call *s; + gpr_timespec deadline = five_seconds_time(); + cq_verifier *cqv = cq_verifier_create(f.cq); + grpc_op ops[6]; + grpc_op *op; + grpc_metadata_array initial_metadata_recv; + grpc_metadata_array trailing_metadata_recv; + grpc_metadata_array request_metadata_recv; + grpc_call_details call_details; + grpc_status_code status; + grpc_call_error error; + grpc_metadata extra_metadata[3]; + char *details = NULL; + size_t details_capacity = 0; + int was_cancelled = 2; + + memset(extra_metadata, 0, sizeof(extra_metadata)); + extra_metadata[0].key = "hobbit-first-name"; + extra_metadata[0].value = hobbits[index % GPR_ARRAY_SIZE(hobbits)][0]; + extra_metadata[0].value_length = strlen(extra_metadata[0].value); + extra_metadata[1].key = "hobbit-second-name"; + extra_metadata[1].value = hobbits[index % GPR_ARRAY_SIZE(hobbits)][1]; + extra_metadata[1].value_length = strlen(extra_metadata[1].value); + extra_metadata[2].key = "dragon"; + extra_metadata[2].value = dragons[index % GPR_ARRAY_SIZE(dragons)]; + extra_metadata[2].value_length = strlen(extra_metadata[2].value); + + c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq, + "/foo", "foo.test.google.fr:1234", deadline, + NULL); + GPR_ASSERT(c); + + grpc_metadata_array_init(&initial_metadata_recv); + grpc_metadata_array_init(&trailing_metadata_recv); + grpc_metadata_array_init(&request_metadata_recv); + grpc_call_details_init(&call_details); + + op = ops; + op->op = GRPC_OP_SEND_INITIAL_METADATA; + op->data.send_initial_metadata.count = GPR_ARRAY_SIZE(extra_metadata); + op->data.send_initial_metadata.metadata = extra_metadata; + 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_INITIAL_METADATA; + op->data.recv_initial_metadata = &initial_metadata_recv; + 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++; + error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), NULL); + GPR_ASSERT(GRPC_CALL_OK == error); + + error = + grpc_server_request_call(f.server, &s, &call_details, + &request_metadata_recv, f.cq, f.cq, tag(101)); + GPR_ASSERT(GRPC_CALL_OK == error); + cq_expect_completion(cqv, tag(101), 1); + cq_verify(cqv); + + 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_STATUS_FROM_SERVER; + op->data.send_status_from_server.trailing_metadata_count = 0; + op->data.send_status_from_server.status = GRPC_STATUS_UNIMPLEMENTED; + op->data.send_status_from_server.status_details = "xyz"; + op->flags = 0; + op->reserved = NULL; + op++; + op->op = GRPC_OP_RECV_CLOSE_ON_SERVER; + op->data.recv_close_on_server.cancelled = &was_cancelled; + op->flags = 0; + op->reserved = NULL; + op++; + error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), NULL); + GPR_ASSERT(GRPC_CALL_OK == error); + + cq_expect_completion(cqv, tag(102), 1); + cq_expect_completion(cqv, tag(1), 1); + cq_verify(cqv); + + GPR_ASSERT(status == GRPC_STATUS_UNIMPLEMENTED); + GPR_ASSERT(0 == strcmp(details, "xyz")); + GPR_ASSERT(0 == strcmp(call_details.method, "/foo")); + GPR_ASSERT(0 == strcmp(call_details.host, "foo.test.google.fr:1234")); + GPR_ASSERT(was_cancelled == 1); + + gpr_free(details); + grpc_metadata_array_destroy(&initial_metadata_recv); + grpc_metadata_array_destroy(&trailing_metadata_recv); + grpc_metadata_array_destroy(&request_metadata_recv); + grpc_call_details_destroy(&call_details); + + grpc_call_destroy(c); + grpc_call_destroy(s); + + cq_verifier_destroy(cqv); +} + +static void test_size(grpc_end2end_test_config config, int encode_size, int decode_size) { + size_t i; + grpc_end2end_test_fixture f; + grpc_arg server_arg; + grpc_channel_args server_args; + grpc_arg client_arg; + grpc_channel_args client_args; + char *name; + + server_arg.type = GRPC_ARG_INTEGER; + server_arg.key = GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER; + server_arg.value.integer = decode_size; + server_args.num_args = 1; + server_args.args = &server_arg; + + client_arg.type = GRPC_ARG_INTEGER; + client_arg.key = GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER; + client_arg.value.integer = encode_size; + client_args.num_args = 1; + client_args.args = &client_arg; + + gpr_asprintf(&name, "test_size:e=%d:d=%d", encode_size, decode_size); + f = begin_test(config, name, encode_size != 4096 ? &client_args : NULL, decode_size != 4096 ? &server_args : NULL); + for (i = 0; i < 4 * GPR_ARRAY_SIZE(hobbits); i++) { + simple_request_body(f, i); + } + end_test(&f); + config.tear_down_data(&f); + gpr_free(name); +} + +void grpc_end2end_tests(grpc_end2end_test_config config) { + static const int interesting_sizes[] = { + 4096, + 0, + 1, + 32, + 100, + 1000, + 4095, + 4097, + 8192, + 16384, + 32768, + 1024*1024-1, + 1024*1024, + 1024*1024+1, + 2*1024*1024, + 3*1024*1024, + 4*1024*1024 + }; + size_t i, j; + + for (i = 0; i < GPR_ARRAY_SIZE(interesting_sizes); i++) { + for (j = 0; j < GPR_ARRAY_SIZE(interesting_sizes); j++) { + test_size(config, interesting_sizes[i], interesting_sizes[j]); + } + } +} diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index d3493bbe2c..bd027e6e61 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -2023,6 +2023,21 @@ "name": "h2_compress_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_compress", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_compress_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -2548,6 +2563,21 @@ "name": "h2_fakesec_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_fakesec", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_fakesec_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -3073,6 +3103,21 @@ "name": "h2_full_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_full", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_full_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -3598,6 +3643,21 @@ "name": "h2_full+poll_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_full+poll", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_full+poll_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -4123,6 +4183,21 @@ "name": "h2_oauth2_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_oauth2", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_oauth2_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -4618,6 +4693,21 @@ "name": "h2_proxy_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_proxy", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_proxy_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -5068,6 +5158,21 @@ "name": "h2_sockpair_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -5533,6 +5638,21 @@ "name": "h2_sockpair+trace_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair+trace", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair+trace_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -5998,6 +6118,21 @@ "name": "h2_sockpair_1byte_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_sockpair_1byte", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_1byte_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -6508,6 +6643,21 @@ "name": "h2_ssl_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -7033,6 +7183,21 @@ "name": "h2_ssl+poll_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl+poll", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl+poll_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -7528,6 +7693,21 @@ "name": "h2_ssl_proxy_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_ssl_proxy", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_ssl_proxy_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -8023,6 +8203,21 @@ "name": "h2_uchannel_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uchannel", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uchannel_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -8533,6 +8728,21 @@ "name": "h2_uds_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uds", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uds_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -9043,6 +9253,21 @@ "name": "h2_uds+poll_high_initial_seqno_test", "src": [] }, + { + "deps": [ + "end2end_certs", + "end2end_fixture_h2_uds+poll", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "h2_uds+poll_hpack_size_test", + "src": [] + }, { "deps": [ "end2end_certs", @@ -9537,6 +9762,20 @@ "name": "h2_compress_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_compress", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_compress_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_compress", @@ -10013,6 +10252,20 @@ "name": "h2_full_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_full", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_full_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_full", @@ -10489,6 +10742,20 @@ "name": "h2_full+poll_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_full+poll", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_full+poll_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_full+poll", @@ -10937,6 +11204,20 @@ "name": "h2_proxy_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_proxy", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_proxy_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_proxy", @@ -11343,6 +11624,20 @@ "name": "h2_sockpair_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_sockpair", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_sockpair", @@ -11763,6 +12058,20 @@ "name": "h2_sockpair+trace_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_sockpair+trace", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair+trace_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_sockpair+trace", @@ -12183,6 +12492,20 @@ "name": "h2_sockpair_1byte_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_sockpair_1byte", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_sockpair_1byte_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_sockpair_1byte", @@ -12645,6 +12968,20 @@ "name": "h2_uchannel_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_uchannel", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uchannel_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_uchannel", @@ -13107,6 +13444,20 @@ "name": "h2_uds_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_uds", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uds_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_uds", @@ -13569,6 +13920,20 @@ "name": "h2_uds+poll_high_initial_seqno_nosec_test", "src": [] }, + { + "deps": [ + "end2end_fixture_h2_uds+poll", + "end2end_test_hpack_size", + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [], + "language": "c", + "name": "h2_uds+poll_hpack_size_nosec_test", + "src": [] + }, { "deps": [ "end2end_fixture_h2_uds+poll", @@ -16021,6 +16386,25 @@ "test/core/end2end/tests/high_initial_seqno.c" ] }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc_test_util_unsecure", + "grpc_unsecure" + ], + "headers": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/tests/cancel_test_helpers.h" + ], + "language": "c", + "name": "end2end_test_hpack_size", + "src": [ + "test/core/end2end/end2end_tests.h", + "test/core/end2end/tests/cancel_test_helpers.h", + "test/core/end2end/tests/hpack_size.c" + ] + }, { "deps": [ "gpr", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 00ef157e98..d1aa883551 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -1955,6 +1955,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_compress_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -2568,6 +2586,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_fakesec_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -3180,6 +3215,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_full_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -3708,6 +3761,18 @@ "linux" ] }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_full+poll_hpack_size_test", + "platforms": [ + "linux" + ] + }, { "ci_platforms": [ "linux" @@ -4213,6 +4278,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_oauth2_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -4774,6 +4856,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_proxy_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -5284,6 +5383,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_sockpair_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -5825,6 +5941,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_sockpair+trace_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -6369,6 +6503,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_sockpair_1byte_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -6964,6 +7115,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_ssl_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -7492,6 +7661,18 @@ "linux" ] }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_ssl+poll_hpack_size_test", + "platforms": [ + "linux" + ] + }, { "ci_platforms": [ "linux" @@ -7963,6 +8144,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_ssl_proxy_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -8541,6 +8739,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_uchannel_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -9121,6 +9337,22 @@ "posix" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_uds_hpack_size_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, { "ci_platforms": [ "linux", @@ -9601,6 +9833,18 @@ "linux" ] }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_uds+poll_hpack_size_test", + "platforms": [ + "linux" + ] + }, { "ci_platforms": [ "linux" @@ -10105,6 +10349,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_compress_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -10717,6 +10979,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_full_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -11233,6 +11513,18 @@ "linux" ] }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_full+poll_hpack_size_nosec_test", + "platforms": [ + "linux" + ] + }, { "ci_platforms": [ "linux" @@ -11687,6 +11979,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_proxy_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -12180,6 +12489,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_sockpair_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -12703,6 +13029,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_sockpair+trace_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -13230,6 +13574,23 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_sockpair_1byte_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -13807,6 +14168,24 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_uchannel_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "ci_platforms": [ "linux", @@ -14371,6 +14750,22 @@ "posix" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_uds_hpack_size_nosec_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, { "ci_platforms": [ "linux", @@ -14839,6 +15234,18 @@ "linux" ] }, + { + "ci_platforms": [ + "linux" + ], + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "h2_uds+poll_hpack_size_nosec_test", + "platforms": [ + "linux" + ] + }, { "ci_platforms": [ "linux" diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index 48ebdf43b0..44dba4e3d0 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -394,6 +394,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_test_high_initial_s {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_test_hpack_size", "vcxproj\test\end2end_test_hpack_size\end2end_test_hpack_size.vcxproj", "{22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}" + 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_test_invoke_large_request", "vcxproj\test\end2end_test_invoke_large_request\end2end_test_invoke_large_request.vcxproj", "{30861F4C-E783-96E7-DB51-FD85757347C0}" ProjectSection(myProperties) = preProject lib = "True" @@ -1506,6 +1517,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_high_initial_se {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_hpack_size_test", "vcxproj\test\h2_compress_hpack_size_test\h2_compress_hpack_size_test.vcxproj", "{8E7B2D33-360B-9A26-8BFD-1BAD10769F33}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {C5D3C9A9-C0D2-CBAD-B433-710C5E89AE31} = {C5D3C9A9-C0D2-CBAD-B433-710C5E89AE31} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_compress_invoke_large_request_test\h2_compress_invoke_large_request_test.vcxproj", "{FE9E76C0-74CB-5085-6CE6-862E49037F0B}" ProjectSection(myProperties) = preProject lib = "False" @@ -1996,6 +2021,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_fakesec_high_initial_seq {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_fakesec_hpack_size_test", "vcxproj\test\h2_fakesec_hpack_size_test\h2_fakesec_hpack_size_test.vcxproj", "{5CDFA7CB-09E1-E01E-E21D-7446146478CC}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {096ABF91-FEC8-9AC9-B877-C683BFD51984} = {096ABF91-FEC8-9AC9-B877-C683BFD51984} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_fakesec_invoke_large_request_test\h2_fakesec_invoke_large_request_test.vcxproj", "{93980DE4-8935-C0F5-86F8-22B3F0811121}" ProjectSection(myProperties) = preProject lib = "False" @@ -2486,6 +2525,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_high_initial_seqno_ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_hpack_size_test", "vcxproj\test\h2_full_hpack_size_test\h2_full_hpack_size_test.vcxproj", "{C655AED5-AF53-D09E-A8EA-60AE0F2D149A}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {882B2933-F340-7027-7090-28CEAE9F1BE6} = {882B2933-F340-7027-7090-28CEAE9F1BE6} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_full_invoke_large_request_test\h2_full_invoke_large_request_test.vcxproj", "{F97198F5-D5EC-E06B-C51F-1BF7644D7422}" ProjectSection(myProperties) = preProject lib = "False" @@ -2976,6 +3029,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_oauth2_high_initial_seqn {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_oauth2_hpack_size_test", "vcxproj\test\h2_oauth2_hpack_size_test\h2_oauth2_hpack_size_test.vcxproj", "{CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {DDFE4EB8-CCD3-DA3F-461A-10F1B94D26AF} = {DDFE4EB8-CCD3-DA3F-461A-10F1B94D26AF} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_oauth2_invoke_large_request_test\h2_oauth2_invoke_large_request_test.vcxproj", "{945F52A3-91ED-5891-9D11-D07A19E4FEA2}" ProjectSection(myProperties) = preProject lib = "False" @@ -3438,6 +3505,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_high_initial_seqno {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_hpack_size_test", "vcxproj\test\h2_proxy_hpack_size_test\h2_proxy_hpack_size_test.vcxproj", "{D590F4D6-081E-4D6D-3F5C-592D7727208E}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B8266C40-E74E-316E-4DEF-0B2A4B6F490F} = {B8266C40-E74E-316E-4DEF-0B2A4B6F490F} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_proxy_invoke_large_request_test\h2_proxy_invoke_large_request_test.vcxproj", "{B8E79F02-BE31-B641-172D-86D81B128556}" ProjectSection(myProperties) = preProject lib = "False" @@ -3858,6 +3939,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_high_initial_se {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_hpack_size_test", "vcxproj\test\h2_sockpair_hpack_size_test\h2_sockpair_hpack_size_test.vcxproj", "{E96735FF-B1CF-51D2-1923-53292AF72C4E}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {67A1675D-FF50-3B78-2706-155D69ADC290} = {67A1675D-FF50-3B78-2706-155D69ADC290} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_sockpair_invoke_large_request_test\h2_sockpair_invoke_large_request_test.vcxproj", "{1A1AA28B-D635-F4BD-DFFA-096D2E4BA9BF}" ProjectSection(myProperties) = preProject lib = "False" @@ -4292,6 +4387,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_high_init {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_hpack_size_test", "vcxproj\test\h2_sockpair+trace_hpack_size_test\h2_sockpair+trace_hpack_size_test.vcxproj", "{5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {FE71A3F7-4B15-1570-B0BA-9E1A053DAA4A} = {FE71A3F7-4B15-1570-B0BA-9E1A053DAA4A} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_sockpair+trace_invoke_large_request_test\h2_sockpair+trace_invoke_large_request_test.vcxproj", "{36F3ECA5-67AC-4D0B-865C-EC4F2542765B}" ProjectSection(myProperties) = preProject lib = "False" @@ -4726,6 +4835,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_high_init {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_hpack_size_test", "vcxproj\test\h2_sockpair_1byte_hpack_size_test\h2_sockpair_1byte_hpack_size_test.vcxproj", "{0B07D219-39A5-729B-EB0F-8B81E562D808}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B0F4BF34-3C82-EB67-990E-959CDDBEB734} = {B0F4BF34-3C82-EB67-990E-959CDDBEB734} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_sockpair_1byte_invoke_large_request_test\h2_sockpair_1byte_invoke_large_request_test.vcxproj", "{45EED825-B3C0-63AE-43FE-CFA8DD3164EC}" ProjectSection(myProperties) = preProject lib = "False" @@ -5202,6 +5325,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_high_initial_seqno_t {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_hpack_size_test", "vcxproj\test\h2_ssl_hpack_size_test\h2_ssl_hpack_size_test.vcxproj", "{856DAD36-A161-9876-9548-48D06BFA35C1}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {207BE5BC-25D7-1D2A-C76E-279DB66A1205} = {207BE5BC-25D7-1D2A-C76E-279DB66A1205} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_ssl_invoke_large_request_test\h2_ssl_invoke_large_request_test.vcxproj", "{CB6E0DFE-7AA8-5F3A-431E-5D769E9339F7}" ProjectSection(myProperties) = preProject lib = "False" @@ -5664,6 +5801,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_proxy_high_initial_s {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_ssl_proxy_hpack_size_test", "vcxproj\test\h2_ssl_proxy_hpack_size_test\h2_ssl_proxy_hpack_size_test.vcxproj", "{BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {5EAD0E6C-5DD6-A466-FF6B-F73200AF89E1} = {5EAD0E6C-5DD6-A466-FF6B-F73200AF89E1} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_invoke_large_request_test", "vcxproj\test\h2_ssl_proxy_invoke_large_request_test\h2_ssl_proxy_invoke_large_request_test.vcxproj", "{93FEEB88-7D7A-F70F-0EB5-54B37F7C6866}" ProjectSection(myProperties) = preProject lib = "False" @@ -6126,6 +6277,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_uchannel_high_initial_se {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_uchannel_hpack_size_test", "vcxproj\test\h2_uchannel_hpack_size_test\h2_uchannel_hpack_size_test.vcxproj", "{9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {CE17F95F-4FD3-41C3-E1B9-9B85F1FE7D4A} = {CE17F95F-4FD3-41C3-E1B9-9B85F1FE7D4A} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} = {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + {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_uchannel_invoke_large_request_test", "vcxproj\test\h2_uchannel_invoke_large_request_test\h2_uchannel_invoke_large_request_test.vcxproj", "{7B5AE7B2-6D7E-D97F-A6A4-721C7446171F}" ProjectSection(myProperties) = preProject lib = "False" @@ -6586,6 +6751,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_high_initial_se {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_compress_hpack_size_nosec_test", "vcxproj\test\h2_compress_hpack_size_nosec_test\h2_compress_hpack_size_nosec_test.vcxproj", "{5A641212-7C59-E552-0ED6-F05F710DD4F5}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {C5D3C9A9-C0D2-CBAD-B433-710C5E89AE31} = {C5D3C9A9-C0D2-CBAD-B433-710C5E89AE31} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {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_invoke_large_request_nosec_test", "vcxproj\test\h2_compress_invoke_large_request_nosec_test\h2_compress_invoke_large_request_nosec_test.vcxproj", "{C3A6661F-806B-BDE6-AF91-032175B443F8}" ProjectSection(myProperties) = preProject lib = "False" @@ -7028,6 +7206,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_high_initial_seqno_ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_full_hpack_size_nosec_test", "vcxproj\test\h2_full_hpack_size_nosec_test\h2_full_hpack_size_nosec_test.vcxproj", "{C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {882B2933-F340-7027-7090-28CEAE9F1BE6} = {882B2933-F340-7027-7090-28CEAE9F1BE6} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {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_invoke_large_request_nosec_test", "vcxproj\test\h2_full_invoke_large_request_nosec_test\h2_full_invoke_large_request_nosec_test.vcxproj", "{96C59CF1-6E80-B88D-D99C-0AA4C32F6562}" ProjectSection(myProperties) = preProject lib = "False" @@ -7444,6 +7635,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_high_initial_seqno {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_proxy_hpack_size_nosec_test", "vcxproj\test\h2_proxy_hpack_size_nosec_test\h2_proxy_hpack_size_nosec_test.vcxproj", "{DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B8266C40-E74E-316E-4DEF-0B2A4B6F490F} = {B8266C40-E74E-316E-4DEF-0B2A4B6F490F} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {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_invoke_large_request_nosec_test", "vcxproj\test\h2_proxy_invoke_large_request_nosec_test\h2_proxy_invoke_large_request_nosec_test.vcxproj", "{87C60ADD-6100-48B9-1C29-5679E54A72CD}" ProjectSection(myProperties) = preProject lib = "False" @@ -7821,6 +8025,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_high_initial_se {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_hpack_size_nosec_test", "vcxproj\test\h2_sockpair_hpack_size_nosec_test\h2_sockpair_hpack_size_nosec_test.vcxproj", "{B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {67A1675D-FF50-3B78-2706-155D69ADC290} = {67A1675D-FF50-3B78-2706-155D69ADC290} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {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_invoke_large_request_nosec_test", "vcxproj\test\h2_sockpair_invoke_large_request_nosec_test\h2_sockpair_invoke_large_request_nosec_test.vcxproj", "{8BF0F1D5-3CF2-DFFD-D74D-E2D7D06A65AC}" ProjectSection(myProperties) = preProject lib = "False" @@ -8211,6 +8428,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_high_init {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair+trace_hpack_size_nosec_test", "vcxproj\test\h2_sockpair+trace_hpack_size_nosec_test\h2_sockpair+trace_hpack_size_nosec_test.vcxproj", "{C8C775E0-9098-D767-2452-211978E7C0EA}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {FE71A3F7-4B15-1570-B0BA-9E1A053DAA4A} = {FE71A3F7-4B15-1570-B0BA-9E1A053DAA4A} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {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_invoke_large_request_nosec_test", "vcxproj\test\h2_sockpair+trace_invoke_large_request_nosec_test\h2_sockpair+trace_invoke_large_request_nosec_test.vcxproj", "{5957731C-42D1-29EE-AD1C-E372613C2575}" ProjectSection(myProperties) = preProject lib = "False" @@ -8601,6 +8831,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_high_init {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_sockpair_1byte_hpack_size_nosec_test", "vcxproj\test\h2_sockpair_1byte_hpack_size_nosec_test\h2_sockpair_1byte_hpack_size_nosec_test.vcxproj", "{93AF9D45-51B5-A902-4537-709FE4ED9830}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {B0F4BF34-3C82-EB67-990E-959CDDBEB734} = {B0F4BF34-3C82-EB67-990E-959CDDBEB734} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {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_invoke_large_request_nosec_test", "vcxproj\test\h2_sockpair_1byte_invoke_large_request_nosec_test\h2_sockpair_1byte_invoke_large_request_nosec_test.vcxproj", "{0733C2AA-D898-7145-3F2E-6304DC428C5F}" ProjectSection(myProperties) = preProject lib = "False" @@ -9030,6 +9273,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_uchannel_high_initial_se {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "h2_uchannel_hpack_size_nosec_test", "vcxproj\test\h2_uchannel_hpack_size_nosec_test\h2_uchannel_hpack_size_nosec_test.vcxproj", "{EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {CE17F95F-4FD3-41C3-E1B9-9B85F1FE7D4A} = {CE17F95F-4FD3-41C3-E1B9-9B85F1FE7D4A} + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} = {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + {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_uchannel_invoke_large_request_nosec_test", "vcxproj\test\h2_uchannel_invoke_large_request_nosec_test\h2_uchannel_invoke_large_request_nosec_test.vcxproj", "{0EC09350-0FB9-0208-000E-1B6C534B234C}" ProjectSection(myProperties) = preProject lib = "False" @@ -9892,6 +10148,22 @@ Global {C3647908-B80D-F566-5659-3E98B09D83F9}.Release-DLL|Win32.Build.0 = Release|Win32 {C3647908-B80D-F566-5659-3E98B09D83F9}.Release-DLL|x64.ActiveCfg = Release|x64 {C3647908-B80D-F566-5659-3E98B09D83F9}.Release-DLL|x64.Build.0 = Release|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug|Win32.ActiveCfg = Debug|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug|x64.ActiveCfg = Debug|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release|Win32.ActiveCfg = Release|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release|x64.ActiveCfg = Release|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug|Win32.Build.0 = Debug|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug|x64.Build.0 = Debug|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release|Win32.Build.0 = Release|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release|x64.Build.0 = Release|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Debug-DLL|x64.Build.0 = Debug|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release-DLL|Win32.Build.0 = Release|Win32 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release-DLL|x64.ActiveCfg = Release|x64 + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5}.Release-DLL|x64.Build.0 = Release|x64 {30861F4C-E783-96E7-DB51-FD85757347C0}.Debug|Win32.ActiveCfg = Debug|Win32 {30861F4C-E783-96E7-DB51-FD85757347C0}.Debug|x64.ActiveCfg = Debug|x64 {30861F4C-E783-96E7-DB51-FD85757347C0}.Release|Win32.ActiveCfg = Release|Win32 @@ -11508,6 +11780,22 @@ Global {1B8B71B0-ED48-43BF-0553-092CF96A330B}.Release-DLL|Win32.Build.0 = Release|Win32 {1B8B71B0-ED48-43BF-0553-092CF96A330B}.Release-DLL|x64.ActiveCfg = Release|x64 {1B8B71B0-ED48-43BF-0553-092CF96A330B}.Release-DLL|x64.Build.0 = Release|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug|Win32.ActiveCfg = Debug|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug|x64.ActiveCfg = Debug|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release|Win32.ActiveCfg = Release|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release|x64.ActiveCfg = Release|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug|Win32.Build.0 = Debug|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug|x64.Build.0 = Debug|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release|Win32.Build.0 = Release|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release|x64.Build.0 = Release|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Debug-DLL|x64.Build.0 = Debug|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release-DLL|Win32.Build.0 = Release|Win32 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release-DLL|x64.ActiveCfg = Release|x64 + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33}.Release-DLL|x64.Build.0 = Release|x64 {FE9E76C0-74CB-5085-6CE6-862E49037F0B}.Debug|Win32.ActiveCfg = Debug|Win32 {FE9E76C0-74CB-5085-6CE6-862E49037F0B}.Debug|x64.ActiveCfg = Debug|x64 {FE9E76C0-74CB-5085-6CE6-862E49037F0B}.Release|Win32.ActiveCfg = Release|Win32 @@ -12068,6 +12356,22 @@ Global {65265C4A-46B8-F54C-96AB-10A292FE851F}.Release-DLL|Win32.Build.0 = Release|Win32 {65265C4A-46B8-F54C-96AB-10A292FE851F}.Release-DLL|x64.ActiveCfg = Release|x64 {65265C4A-46B8-F54C-96AB-10A292FE851F}.Release-DLL|x64.Build.0 = Release|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug|Win32.ActiveCfg = Debug|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug|x64.ActiveCfg = Debug|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release|Win32.ActiveCfg = Release|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release|x64.ActiveCfg = Release|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug|Win32.Build.0 = Debug|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug|x64.Build.0 = Debug|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release|Win32.Build.0 = Release|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release|x64.Build.0 = Release|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Debug-DLL|x64.Build.0 = Debug|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release-DLL|Win32.Build.0 = Release|Win32 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release-DLL|x64.ActiveCfg = Release|x64 + {5CDFA7CB-09E1-E01E-E21D-7446146478CC}.Release-DLL|x64.Build.0 = Release|x64 {93980DE4-8935-C0F5-86F8-22B3F0811121}.Debug|Win32.ActiveCfg = Debug|Win32 {93980DE4-8935-C0F5-86F8-22B3F0811121}.Debug|x64.ActiveCfg = Debug|x64 {93980DE4-8935-C0F5-86F8-22B3F0811121}.Release|Win32.ActiveCfg = Release|Win32 @@ -12628,6 +12932,22 @@ Global {87CE6537-F5DC-4AF1-6206-D9C31058226D}.Release-DLL|Win32.Build.0 = Release|Win32 {87CE6537-F5DC-4AF1-6206-D9C31058226D}.Release-DLL|x64.ActiveCfg = Release|x64 {87CE6537-F5DC-4AF1-6206-D9C31058226D}.Release-DLL|x64.Build.0 = Release|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug|Win32.ActiveCfg = Debug|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug|x64.ActiveCfg = Debug|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release|Win32.ActiveCfg = Release|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release|x64.ActiveCfg = Release|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug|Win32.Build.0 = Debug|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug|x64.Build.0 = Debug|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release|Win32.Build.0 = Release|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release|x64.Build.0 = Release|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Debug-DLL|x64.Build.0 = Debug|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release-DLL|Win32.Build.0 = Release|Win32 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release-DLL|x64.ActiveCfg = Release|x64 + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A}.Release-DLL|x64.Build.0 = Release|x64 {F97198F5-D5EC-E06B-C51F-1BF7644D7422}.Debug|Win32.ActiveCfg = Debug|Win32 {F97198F5-D5EC-E06B-C51F-1BF7644D7422}.Debug|x64.ActiveCfg = Debug|x64 {F97198F5-D5EC-E06B-C51F-1BF7644D7422}.Release|Win32.ActiveCfg = Release|Win32 @@ -13188,6 +13508,22 @@ Global {7E1DDE0D-E68B-BF0B-2EE7-AAFE5C9CCD58}.Release-DLL|Win32.Build.0 = Release|Win32 {7E1DDE0D-E68B-BF0B-2EE7-AAFE5C9CCD58}.Release-DLL|x64.ActiveCfg = Release|x64 {7E1DDE0D-E68B-BF0B-2EE7-AAFE5C9CCD58}.Release-DLL|x64.Build.0 = Release|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug|Win32.ActiveCfg = Debug|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug|x64.ActiveCfg = Debug|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release|Win32.ActiveCfg = Release|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release|x64.ActiveCfg = Release|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug|Win32.Build.0 = Debug|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug|x64.Build.0 = Debug|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release|Win32.Build.0 = Release|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release|x64.Build.0 = Release|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Debug-DLL|x64.Build.0 = Debug|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release-DLL|Win32.Build.0 = Release|Win32 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release-DLL|x64.ActiveCfg = Release|x64 + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2}.Release-DLL|x64.Build.0 = Release|x64 {945F52A3-91ED-5891-9D11-D07A19E4FEA2}.Debug|Win32.ActiveCfg = Debug|Win32 {945F52A3-91ED-5891-9D11-D07A19E4FEA2}.Debug|x64.ActiveCfg = Debug|x64 {945F52A3-91ED-5891-9D11-D07A19E4FEA2}.Release|Win32.ActiveCfg = Release|Win32 @@ -13716,6 +14052,22 @@ Global {A38AAA5F-1C55-14DC-24D0-56DE33BE4024}.Release-DLL|Win32.Build.0 = Release|Win32 {A38AAA5F-1C55-14DC-24D0-56DE33BE4024}.Release-DLL|x64.ActiveCfg = Release|x64 {A38AAA5F-1C55-14DC-24D0-56DE33BE4024}.Release-DLL|x64.Build.0 = Release|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug|Win32.ActiveCfg = Debug|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug|x64.ActiveCfg = Debug|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release|Win32.ActiveCfg = Release|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release|x64.ActiveCfg = Release|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug|Win32.Build.0 = Debug|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug|x64.Build.0 = Debug|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release|Win32.Build.0 = Release|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release|x64.Build.0 = Release|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Debug-DLL|x64.Build.0 = Debug|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release-DLL|Win32.Build.0 = Release|Win32 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release-DLL|x64.ActiveCfg = Release|x64 + {D590F4D6-081E-4D6D-3F5C-592D7727208E}.Release-DLL|x64.Build.0 = Release|x64 {B8E79F02-BE31-B641-172D-86D81B128556}.Debug|Win32.ActiveCfg = Debug|Win32 {B8E79F02-BE31-B641-172D-86D81B128556}.Debug|x64.ActiveCfg = Debug|x64 {B8E79F02-BE31-B641-172D-86D81B128556}.Release|Win32.ActiveCfg = Release|Win32 @@ -14196,6 +14548,22 @@ Global {0AE39FD9-59E4-1F8A-E8DD-1FCBFC62D2B3}.Release-DLL|Win32.Build.0 = Release|Win32 {0AE39FD9-59E4-1F8A-E8DD-1FCBFC62D2B3}.Release-DLL|x64.ActiveCfg = Release|x64 {0AE39FD9-59E4-1F8A-E8DD-1FCBFC62D2B3}.Release-DLL|x64.Build.0 = Release|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug|Win32.ActiveCfg = Debug|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug|x64.ActiveCfg = Debug|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release|Win32.ActiveCfg = Release|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release|x64.ActiveCfg = Release|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug|Win32.Build.0 = Debug|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug|x64.Build.0 = Debug|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release|Win32.Build.0 = Release|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release|x64.Build.0 = Release|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Debug-DLL|x64.Build.0 = Debug|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release-DLL|Win32.Build.0 = Release|Win32 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release-DLL|x64.ActiveCfg = Release|x64 + {E96735FF-B1CF-51D2-1923-53292AF72C4E}.Release-DLL|x64.Build.0 = Release|x64 {1A1AA28B-D635-F4BD-DFFA-096D2E4BA9BF}.Debug|Win32.ActiveCfg = Debug|Win32 {1A1AA28B-D635-F4BD-DFFA-096D2E4BA9BF}.Debug|x64.ActiveCfg = Debug|x64 {1A1AA28B-D635-F4BD-DFFA-096D2E4BA9BF}.Release|Win32.ActiveCfg = Release|Win32 @@ -14692,6 +15060,22 @@ Global {712C724F-63FC-E770-A9D1-82516CFAEB5A}.Release-DLL|Win32.Build.0 = Release|Win32 {712C724F-63FC-E770-A9D1-82516CFAEB5A}.Release-DLL|x64.ActiveCfg = Release|x64 {712C724F-63FC-E770-A9D1-82516CFAEB5A}.Release-DLL|x64.Build.0 = Release|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug|Win32.ActiveCfg = Debug|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug|x64.ActiveCfg = Debug|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release|Win32.ActiveCfg = Release|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release|x64.ActiveCfg = Release|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug|Win32.Build.0 = Debug|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug|x64.Build.0 = Debug|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release|Win32.Build.0 = Release|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release|x64.Build.0 = Release|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Debug-DLL|x64.Build.0 = Debug|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release-DLL|Win32.Build.0 = Release|Win32 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release-DLL|x64.ActiveCfg = Release|x64 + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336}.Release-DLL|x64.Build.0 = Release|x64 {36F3ECA5-67AC-4D0B-865C-EC4F2542765B}.Debug|Win32.ActiveCfg = Debug|Win32 {36F3ECA5-67AC-4D0B-865C-EC4F2542765B}.Debug|x64.ActiveCfg = Debug|x64 {36F3ECA5-67AC-4D0B-865C-EC4F2542765B}.Release|Win32.ActiveCfg = Release|Win32 @@ -15188,6 +15572,22 @@ Global {81643723-BBFA-AA83-B6AC-9FF770B4ED34}.Release-DLL|Win32.Build.0 = Release|Win32 {81643723-BBFA-AA83-B6AC-9FF770B4ED34}.Release-DLL|x64.ActiveCfg = Release|x64 {81643723-BBFA-AA83-B6AC-9FF770B4ED34}.Release-DLL|x64.Build.0 = Release|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug|Win32.ActiveCfg = Debug|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug|x64.ActiveCfg = Debug|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release|Win32.ActiveCfg = Release|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release|x64.ActiveCfg = Release|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug|Win32.Build.0 = Debug|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug|x64.Build.0 = Debug|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release|Win32.Build.0 = Release|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release|x64.Build.0 = Release|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Debug-DLL|x64.Build.0 = Debug|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release-DLL|Win32.Build.0 = Release|Win32 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release-DLL|x64.ActiveCfg = Release|x64 + {0B07D219-39A5-729B-EB0F-8B81E562D808}.Release-DLL|x64.Build.0 = Release|x64 {45EED825-B3C0-63AE-43FE-CFA8DD3164EC}.Debug|Win32.ActiveCfg = Debug|Win32 {45EED825-B3C0-63AE-43FE-CFA8DD3164EC}.Debug|x64.ActiveCfg = Debug|x64 {45EED825-B3C0-63AE-43FE-CFA8DD3164EC}.Release|Win32.ActiveCfg = Release|Win32 @@ -15732,6 +16132,22 @@ Global {82D02001-4051-0130-886D-6EED6E8180D9}.Release-DLL|Win32.Build.0 = Release|Win32 {82D02001-4051-0130-886D-6EED6E8180D9}.Release-DLL|x64.ActiveCfg = Release|x64 {82D02001-4051-0130-886D-6EED6E8180D9}.Release-DLL|x64.Build.0 = Release|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug|Win32.ActiveCfg = Debug|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug|x64.ActiveCfg = Debug|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release|Win32.ActiveCfg = Release|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release|x64.ActiveCfg = Release|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug|Win32.Build.0 = Debug|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug|x64.Build.0 = Debug|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release|Win32.Build.0 = Release|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release|x64.Build.0 = Release|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Debug-DLL|x64.Build.0 = Debug|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release-DLL|Win32.Build.0 = Release|Win32 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release-DLL|x64.ActiveCfg = Release|x64 + {856DAD36-A161-9876-9548-48D06BFA35C1}.Release-DLL|x64.Build.0 = Release|x64 {CB6E0DFE-7AA8-5F3A-431E-5D769E9339F7}.Debug|Win32.ActiveCfg = Debug|Win32 {CB6E0DFE-7AA8-5F3A-431E-5D769E9339F7}.Debug|x64.ActiveCfg = Debug|x64 {CB6E0DFE-7AA8-5F3A-431E-5D769E9339F7}.Release|Win32.ActiveCfg = Release|Win32 @@ -16260,6 +16676,22 @@ Global {CA455E92-D8D7-BB7C-E8DD-82C2234AEA6C}.Release-DLL|Win32.Build.0 = Release|Win32 {CA455E92-D8D7-BB7C-E8DD-82C2234AEA6C}.Release-DLL|x64.ActiveCfg = Release|x64 {CA455E92-D8D7-BB7C-E8DD-82C2234AEA6C}.Release-DLL|x64.Build.0 = Release|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug|Win32.ActiveCfg = Debug|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug|x64.ActiveCfg = Debug|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release|Win32.ActiveCfg = Release|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release|x64.ActiveCfg = Release|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug|Win32.Build.0 = Debug|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug|x64.Build.0 = Debug|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release|Win32.Build.0 = Release|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release|x64.Build.0 = Release|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Debug-DLL|x64.Build.0 = Debug|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release-DLL|Win32.Build.0 = Release|Win32 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release-DLL|x64.ActiveCfg = Release|x64 + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE}.Release-DLL|x64.Build.0 = Release|x64 {93FEEB88-7D7A-F70F-0EB5-54B37F7C6866}.Debug|Win32.ActiveCfg = Debug|Win32 {93FEEB88-7D7A-F70F-0EB5-54B37F7C6866}.Debug|x64.ActiveCfg = Debug|x64 {93FEEB88-7D7A-F70F-0EB5-54B37F7C6866}.Release|Win32.ActiveCfg = Release|Win32 @@ -16788,6 +17220,22 @@ Global {359D18A0-DEE3-EDD5-1C4C-662EC638C910}.Release-DLL|Win32.Build.0 = Release|Win32 {359D18A0-DEE3-EDD5-1C4C-662EC638C910}.Release-DLL|x64.ActiveCfg = Release|x64 {359D18A0-DEE3-EDD5-1C4C-662EC638C910}.Release-DLL|x64.Build.0 = Release|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug|Win32.ActiveCfg = Debug|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug|x64.ActiveCfg = Debug|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release|Win32.ActiveCfg = Release|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release|x64.ActiveCfg = Release|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug|Win32.Build.0 = Debug|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug|x64.Build.0 = Debug|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release|Win32.Build.0 = Release|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release|x64.Build.0 = Release|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Debug-DLL|x64.Build.0 = Debug|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release-DLL|Win32.Build.0 = Release|Win32 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release-DLL|x64.ActiveCfg = Release|x64 + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE}.Release-DLL|x64.Build.0 = Release|x64 {7B5AE7B2-6D7E-D97F-A6A4-721C7446171F}.Debug|Win32.ActiveCfg = Debug|Win32 {7B5AE7B2-6D7E-D97F-A6A4-721C7446171F}.Debug|x64.ActiveCfg = Debug|x64 {7B5AE7B2-6D7E-D97F-A6A4-721C7446171F}.Release|Win32.ActiveCfg = Release|Win32 @@ -17332,6 +17780,22 @@ Global {E6C18E4E-ABC4-1C26-BAD6-67F92B80942F}.Release-DLL|Win32.Build.0 = Release|Win32 {E6C18E4E-ABC4-1C26-BAD6-67F92B80942F}.Release-DLL|x64.ActiveCfg = Release|x64 {E6C18E4E-ABC4-1C26-BAD6-67F92B80942F}.Release-DLL|x64.Build.0 = Release|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug|Win32.ActiveCfg = Debug|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug|x64.ActiveCfg = Debug|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release|Win32.ActiveCfg = Release|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release|x64.ActiveCfg = Release|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug|Win32.Build.0 = Debug|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug|x64.Build.0 = Debug|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release|Win32.Build.0 = Release|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release|x64.Build.0 = Release|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Debug-DLL|x64.Build.0 = Debug|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release-DLL|Win32.Build.0 = Release|Win32 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release-DLL|x64.ActiveCfg = Release|x64 + {5A641212-7C59-E552-0ED6-F05F710DD4F5}.Release-DLL|x64.Build.0 = Release|x64 {C3A6661F-806B-BDE6-AF91-032175B443F8}.Debug|Win32.ActiveCfg = Debug|Win32 {C3A6661F-806B-BDE6-AF91-032175B443F8}.Debug|x64.ActiveCfg = Debug|x64 {C3A6661F-806B-BDE6-AF91-032175B443F8}.Release|Win32.ActiveCfg = Release|Win32 @@ -17876,6 +18340,22 @@ Global {FDA69240-B598-500E-8E6E-741A1290ECB9}.Release-DLL|Win32.Build.0 = Release|Win32 {FDA69240-B598-500E-8E6E-741A1290ECB9}.Release-DLL|x64.ActiveCfg = Release|x64 {FDA69240-B598-500E-8E6E-741A1290ECB9}.Release-DLL|x64.Build.0 = Release|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug|Win32.ActiveCfg = Debug|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug|x64.ActiveCfg = Debug|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release|Win32.ActiveCfg = Release|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release|x64.ActiveCfg = Release|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug|Win32.Build.0 = Debug|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug|x64.Build.0 = Debug|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release|Win32.Build.0 = Release|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release|x64.Build.0 = Release|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Debug-DLL|x64.Build.0 = Debug|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release-DLL|Win32.Build.0 = Release|Win32 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release-DLL|x64.ActiveCfg = Release|x64 + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1}.Release-DLL|x64.Build.0 = Release|x64 {96C59CF1-6E80-B88D-D99C-0AA4C32F6562}.Debug|Win32.ActiveCfg = Debug|Win32 {96C59CF1-6E80-B88D-D99C-0AA4C32F6562}.Debug|x64.ActiveCfg = Debug|x64 {96C59CF1-6E80-B88D-D99C-0AA4C32F6562}.Release|Win32.ActiveCfg = Release|Win32 @@ -18388,6 +18868,22 @@ Global {28D5A18F-7282-4ABA-C473-557169030B99}.Release-DLL|Win32.Build.0 = Release|Win32 {28D5A18F-7282-4ABA-C473-557169030B99}.Release-DLL|x64.ActiveCfg = Release|x64 {28D5A18F-7282-4ABA-C473-557169030B99}.Release-DLL|x64.Build.0 = Release|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug|Win32.ActiveCfg = Debug|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug|x64.ActiveCfg = Debug|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release|Win32.ActiveCfg = Release|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release|x64.ActiveCfg = Release|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug|Win32.Build.0 = Debug|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug|x64.Build.0 = Debug|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release|Win32.Build.0 = Release|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release|x64.Build.0 = Release|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Debug-DLL|x64.Build.0 = Debug|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release-DLL|Win32.Build.0 = Release|Win32 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release-DLL|x64.ActiveCfg = Release|x64 + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215}.Release-DLL|x64.Build.0 = Release|x64 {87C60ADD-6100-48B9-1C29-5679E54A72CD}.Debug|Win32.ActiveCfg = Debug|Win32 {87C60ADD-6100-48B9-1C29-5679E54A72CD}.Debug|x64.ActiveCfg = Debug|x64 {87C60ADD-6100-48B9-1C29-5679E54A72CD}.Release|Win32.ActiveCfg = Release|Win32 @@ -18852,6 +19348,22 @@ Global {D4F84CA0-7020-BDD6-2EB8-2F773A7884A5}.Release-DLL|Win32.Build.0 = Release|Win32 {D4F84CA0-7020-BDD6-2EB8-2F773A7884A5}.Release-DLL|x64.ActiveCfg = Release|x64 {D4F84CA0-7020-BDD6-2EB8-2F773A7884A5}.Release-DLL|x64.Build.0 = Release|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug|Win32.ActiveCfg = Debug|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug|x64.ActiveCfg = Debug|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release|Win32.ActiveCfg = Release|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release|x64.ActiveCfg = Release|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug|Win32.Build.0 = Debug|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug|x64.Build.0 = Debug|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release|Win32.Build.0 = Release|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release|x64.Build.0 = Release|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Debug-DLL|x64.Build.0 = Debug|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release-DLL|Win32.Build.0 = Release|Win32 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release-DLL|x64.ActiveCfg = Release|x64 + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4}.Release-DLL|x64.Build.0 = Release|x64 {8BF0F1D5-3CF2-DFFD-D74D-E2D7D06A65AC}.Debug|Win32.ActiveCfg = Debug|Win32 {8BF0F1D5-3CF2-DFFD-D74D-E2D7D06A65AC}.Debug|x64.ActiveCfg = Debug|x64 {8BF0F1D5-3CF2-DFFD-D74D-E2D7D06A65AC}.Release|Win32.ActiveCfg = Release|Win32 @@ -19332,6 +19844,22 @@ Global {E2F977D5-8F83-8CE5-42F9-E3F007075391}.Release-DLL|Win32.Build.0 = Release|Win32 {E2F977D5-8F83-8CE5-42F9-E3F007075391}.Release-DLL|x64.ActiveCfg = Release|x64 {E2F977D5-8F83-8CE5-42F9-E3F007075391}.Release-DLL|x64.Build.0 = Release|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug|x64.ActiveCfg = Debug|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release|Win32.ActiveCfg = Release|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release|x64.ActiveCfg = Release|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug|Win32.Build.0 = Debug|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug|x64.Build.0 = Debug|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release|Win32.Build.0 = Release|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release|x64.Build.0 = Release|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Debug-DLL|x64.Build.0 = Debug|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release-DLL|Win32.Build.0 = Release|Win32 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release-DLL|x64.ActiveCfg = Release|x64 + {C8C775E0-9098-D767-2452-211978E7C0EA}.Release-DLL|x64.Build.0 = Release|x64 {5957731C-42D1-29EE-AD1C-E372613C2575}.Debug|Win32.ActiveCfg = Debug|Win32 {5957731C-42D1-29EE-AD1C-E372613C2575}.Debug|x64.ActiveCfg = Debug|x64 {5957731C-42D1-29EE-AD1C-E372613C2575}.Release|Win32.ActiveCfg = Release|Win32 @@ -19812,6 +20340,22 @@ Global {0ACE1393-1D1C-9563-2EFD-258C38B2C5A5}.Release-DLL|Win32.Build.0 = Release|Win32 {0ACE1393-1D1C-9563-2EFD-258C38B2C5A5}.Release-DLL|x64.ActiveCfg = Release|x64 {0ACE1393-1D1C-9563-2EFD-258C38B2C5A5}.Release-DLL|x64.Build.0 = Release|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug|Win32.ActiveCfg = Debug|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug|x64.ActiveCfg = Debug|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release|Win32.ActiveCfg = Release|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release|x64.ActiveCfg = Release|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug|Win32.Build.0 = Debug|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug|x64.Build.0 = Debug|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release|Win32.Build.0 = Release|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release|x64.Build.0 = Release|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Debug-DLL|x64.Build.0 = Debug|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release-DLL|Win32.Build.0 = Release|Win32 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release-DLL|x64.ActiveCfg = Release|x64 + {93AF9D45-51B5-A902-4537-709FE4ED9830}.Release-DLL|x64.Build.0 = Release|x64 {0733C2AA-D898-7145-3F2E-6304DC428C5F}.Debug|Win32.ActiveCfg = Debug|Win32 {0733C2AA-D898-7145-3F2E-6304DC428C5F}.Debug|x64.ActiveCfg = Debug|x64 {0733C2AA-D898-7145-3F2E-6304DC428C5F}.Release|Win32.ActiveCfg = Release|Win32 @@ -20340,6 +20884,22 @@ Global {90CCC199-D242-7546-C1C0-4AA6899703DE}.Release-DLL|Win32.Build.0 = Release|Win32 {90CCC199-D242-7546-C1C0-4AA6899703DE}.Release-DLL|x64.ActiveCfg = Release|x64 {90CCC199-D242-7546-C1C0-4AA6899703DE}.Release-DLL|x64.Build.0 = Release|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug|Win32.ActiveCfg = Debug|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug|x64.ActiveCfg = Debug|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release|Win32.ActiveCfg = Release|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release|x64.ActiveCfg = Release|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug|Win32.Build.0 = Debug|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug|x64.Build.0 = Debug|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release|Win32.Build.0 = Release|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release|x64.Build.0 = Release|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Debug-DLL|x64.Build.0 = Debug|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release-DLL|Win32.Build.0 = Release|Win32 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release-DLL|x64.ActiveCfg = Release|x64 + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1}.Release-DLL|x64.Build.0 = Release|x64 {0EC09350-0FB9-0208-000E-1B6C534B234C}.Debug|Win32.ActiveCfg = Debug|Win32 {0EC09350-0FB9-0208-000E-1B6C534B234C}.Debug|x64.ActiveCfg = Debug|x64 {0EC09350-0FB9-0208-000E-1B6C534B234C}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/test/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj b/vsprojects/vcxproj/test/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj new file mode 100644 index 0000000000..41c5b93d9b --- /dev/null +++ b/vsprojects/vcxproj/test/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + + v100 + + + v110 + + + v120 + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + end2end_test_hpack_size + + + end2end_test_hpack_size + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Windows + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Windows + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Windows + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Windows + true + false + true + true + + + + + + + + + + + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj.filters b/vsprojects/vcxproj/test/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj.filters new file mode 100644 index 0000000000..03caae6add --- /dev/null +++ b/vsprojects/vcxproj/test/end2end_test_hpack_size/end2end_test_hpack_size.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + test\core\end2end\tests + + + + + test\core\end2end\tests + + + test\core\end2end + + + + + + {c23a0719-53a2-0560-4016-2e8869dd4787} + + + {061c394d-81e8-0ac3-7a25-ab563ba0abe3} + + + {8b8f1aa7-7645-4372-1d8a-61cda8284353} + + + {aa7c2d3e-58e5-6898-fb3a-ba5e8868ea09} + + + + diff --git a/vsprojects/vcxproj/test/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj b/vsprojects/vcxproj/test/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj new file mode 100644 index 0000000000..116bf2fb9c --- /dev/null +++ b/vsprojects/vcxproj/test/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj @@ -0,0 +1,190 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {5A641212-7C59-E552-0ED6-F05F710DD4F5} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_compress_hpack_size_nosec_test + static + Debug + Debug + + + h2_compress_hpack_size_nosec_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {C5D3C9A9-C0D2-CBAD-B433-710C5E89AE31} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_compress_hpack_size_nosec_test/h2_compress_hpack_size_nosec_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj new file mode 100644 index 0000000000..61c35e5b8d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8E7B2D33-360B-9A26-8BFD-1BAD10769F33} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_compress_hpack_size_test + static + Debug + Debug + + + h2_compress_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {C5D3C9A9-C0D2-CBAD-B433-710C5E89AE31} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_compress_hpack_size_test/h2_compress_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj new file mode 100644 index 0000000000..e7c3a52cdc --- /dev/null +++ b/vsprojects/vcxproj/test/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {5CDFA7CB-09E1-E01E-E21D-7446146478CC} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_fakesec_hpack_size_test + static + Debug + Debug + + + h2_fakesec_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {096ABF91-FEC8-9AC9-B877-C683BFD51984} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_fakesec_hpack_size_test/h2_fakesec_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj b/vsprojects/vcxproj/test/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj new file mode 100644 index 0000000000..03b06164a4 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj @@ -0,0 +1,190 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C355D9BD-F3C7-CA89-E125-44D1BAEE22C1} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_full_hpack_size_nosec_test + static + Debug + Debug + + + h2_full_hpack_size_nosec_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {882B2933-F340-7027-7090-28CEAE9F1BE6} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_full_hpack_size_nosec_test/h2_full_hpack_size_nosec_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj new file mode 100644 index 0000000000..9e7fb88b71 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C655AED5-AF53-D09E-A8EA-60AE0F2D149A} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_full_hpack_size_test + static + Debug + Debug + + + h2_full_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {882B2933-F340-7027-7090-28CEAE9F1BE6} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_full_hpack_size_test/h2_full_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj new file mode 100644 index 0000000000..82c49fe85e --- /dev/null +++ b/vsprojects/vcxproj/test/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {CA3C2D7E-58C7-C05E-6D3B-70383020D8C2} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_oauth2_hpack_size_test + static + Debug + Debug + + + h2_oauth2_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {DDFE4EB8-CCD3-DA3F-461A-10F1B94D26AF} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_oauth2_hpack_size_test/h2_oauth2_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj b/vsprojects/vcxproj/test/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj new file mode 100644 index 0000000000..ceacd06533 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj @@ -0,0 +1,190 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {DCBBBECF-EC53-4E01-A866-1FA5F8AAD215} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_proxy_hpack_size_nosec_test + static + Debug + Debug + + + h2_proxy_hpack_size_nosec_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {B8266C40-E74E-316E-4DEF-0B2A4B6F490F} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_proxy_hpack_size_nosec_test/h2_proxy_hpack_size_nosec_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj new file mode 100644 index 0000000000..c5dbf97864 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D590F4D6-081E-4D6D-3F5C-592D7727208E} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_proxy_hpack_size_test + static + Debug + Debug + + + h2_proxy_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {B8266C40-E74E-316E-4DEF-0B2A4B6F490F} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_proxy_hpack_size_test/h2_proxy_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj new file mode 100644 index 0000000000..3cf4e2db5a --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj @@ -0,0 +1,190 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C8C775E0-9098-D767-2452-211978E7C0EA} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_sockpair+trace_hpack_size_nosec_test + static + Debug + Debug + + + h2_sockpair+trace_hpack_size_nosec_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {FE71A3F7-4B15-1570-B0BA-9E1A053DAA4A} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_nosec_test/h2_sockpair+trace_hpack_size_nosec_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj new file mode 100644 index 0000000000..ea22a8109e --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {5E41FB8C-FFF8-2568-6E0F-56FD07AC4336} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_sockpair+trace_hpack_size_test + static + Debug + Debug + + + h2_sockpair+trace_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {FE71A3F7-4B15-1570-B0BA-9E1A053DAA4A} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair+trace_hpack_size_test/h2_sockpair+trace_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj new file mode 100644 index 0000000000..c5a13ad91a --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj @@ -0,0 +1,190 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {93AF9D45-51B5-A902-4537-709FE4ED9830} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_sockpair_1byte_hpack_size_nosec_test + static + Debug + Debug + + + h2_sockpair_1byte_hpack_size_nosec_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {B0F4BF34-3C82-EB67-990E-959CDDBEB734} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_nosec_test/h2_sockpair_1byte_hpack_size_nosec_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj new file mode 100644 index 0000000000..de13e2666b --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {0B07D219-39A5-729B-EB0F-8B81E562D808} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_sockpair_1byte_hpack_size_test + static + Debug + Debug + + + h2_sockpair_1byte_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {B0F4BF34-3C82-EB67-990E-959CDDBEB734} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_1byte_hpack_size_test/h2_sockpair_1byte_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj new file mode 100644 index 0000000000..fedcff890a --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj @@ -0,0 +1,190 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {B35C9AC3-8160-BFCA-2EA7-0413A7A45EC4} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_sockpair_hpack_size_nosec_test + static + Debug + Debug + + + h2_sockpair_hpack_size_nosec_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {67A1675D-FF50-3B78-2706-155D69ADC290} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_nosec_test/h2_sockpair_hpack_size_nosec_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj new file mode 100644 index 0000000000..744cb13d02 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E96735FF-B1CF-51D2-1923-53292AF72C4E} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_sockpair_hpack_size_test + static + Debug + Debug + + + h2_sockpair_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {67A1675D-FF50-3B78-2706-155D69ADC290} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_sockpair_hpack_size_test/h2_sockpair_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj new file mode 100644 index 0000000000..2ff0f47301 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {856DAD36-A161-9876-9548-48D06BFA35C1} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_ssl_hpack_size_test + static + Debug + Debug + + + h2_ssl_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {207BE5BC-25D7-1D2A-C76E-279DB66A1205} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_ssl_hpack_size_test/h2_ssl_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj new file mode 100644 index 0000000000..4c4cb859f1 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {BFE6A97D-1DB8-1FEB-9312-70E7D2D40EBE} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_ssl_proxy_hpack_size_test + static + Debug + Debug + + + h2_ssl_proxy_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {5EAD0E6C-5DD6-A466-FF6B-F73200AF89E1} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_ssl_proxy_hpack_size_test/h2_ssl_proxy_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj new file mode 100644 index 0000000000..6985300e80 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj @@ -0,0 +1,190 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {EA53DB0D-8BA3-3BCC-10E1-8B5FACB77CA1} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_uchannel_hpack_size_nosec_test + static + Debug + Debug + + + h2_uchannel_hpack_size_nosec_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {CE17F95F-4FD3-41C3-E1B9-9B85F1FE7D4A} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} + + + {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} + + + {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/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_nosec_test/h2_uchannel_hpack_size_nosec_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vsprojects/vcxproj/test/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj new file mode 100644 index 0000000000..3b73900945 --- /dev/null +++ b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj @@ -0,0 +1,193 @@ + + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {9CFB3202-D95F-E541-9A6F-BE561CAFE1AE} + + + + v100 + + + v110 + + + v120 + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + h2_uchannel_hpack_size_test + static + Debug + Debug + + + h2_uchannel_hpack_size_test + static + Debug + Debug + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + true + None + + + Console + true + false + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + Level3 + NotUsing + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + None + + + Console + true + false + true + true + + + + + + + + + {CE17F95F-4FD3-41C3-E1B9-9B85F1FE7D4A} + + + {22A644D5-9A2B-4EF8-7792-AEB0C66A10E5} + + + {80EA2691-C037-6DD3-D3AB-21510BF0E64B} + + + {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/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj.filters b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj.filters new file mode 100644 index 0000000000..00e4276f1d --- /dev/null +++ b/vsprojects/vcxproj/test/h2_uchannel_hpack_size_test/h2_uchannel_hpack_size_test.vcxproj.filters @@ -0,0 +1,7 @@ + + + + + + + -- cgit v1.2.3 From 717805f5707295a8b873fac48bbc37f154f78e0e Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 10 Nov 2015 08:45:17 +0000 Subject: Fix use-after-free --- src/core/transport/chttp2/hpack_table.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/core/transport/chttp2') diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index fde74b3acd..be18be748c 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -240,6 +240,7 @@ static void rebuild_ents(grpc_chttp2_hptbl *tbl, gpr_uint32 new_cap) { ents[i] = tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]; } gpr_free(tbl->ents); + tbl->ents = ents; tbl->cap_entries = new_cap; tbl->first_ent = 0; } -- cgit v1.2.3 From 308bbb2c4b7ea8ff04d0c87bd04456e5e28b6134 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 10 Nov 2015 08:53:15 +0000 Subject: Add missing free --- src/core/transport/chttp2/hpack_table.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/core/transport/chttp2') diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index be18be748c..e47793f230 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -199,6 +199,7 @@ void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl) { GRPC_MDELEM_UNREF( tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]); } + gpr_free(tbl->ents); } grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl, -- cgit v1.2.3 From 895f14d38176bca1a4146e9d0fb6d80f40647545 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 10 Nov 2015 09:30:39 +0000 Subject: Fix memory leak --- src/core/transport/chttp2/hpack_parser.c | 1 - src/core/transport/chttp2/hpack_table.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'src/core/transport/chttp2') diff --git a/src/core/transport/chttp2/hpack_parser.c b/src/core/transport/chttp2/hpack_parser.c index 6d3c340a8a..0f90f08b9c 100644 --- a/src/core/transport/chttp2/hpack_parser.c +++ b/src/core/transport/chttp2/hpack_parser.c @@ -627,7 +627,6 @@ static const gpr_uint8 inverse_base64[256] = { static int on_hdr(grpc_chttp2_hpack_parser *p, grpc_mdelem *md, int add_to_table) { if (add_to_table) { - GRPC_MDELEM_REF(md); if (!grpc_chttp2_hptbl_add(&p->table, md)) { return 0; } diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index e47793f230..e7cec99be1 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -316,7 +316,7 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { } /* copy the finalized entry in */ - tbl->ents[tbl->last_ent] = md; + tbl->ents[tbl->last_ent] = GRPC_MDELEM_REF(md); /* update accounting values */ tbl->last_ent = -- cgit v1.2.3 From 1481237f2cd840f7673c304a697b5898c0cdca3c Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 10 Nov 2015 14:10:00 +0000 Subject: Add missing casts --- src/core/transport/chttp2/hpack_table.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/transport/chttp2') diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index e7cec99be1..a94fdb994d 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -226,7 +226,7 @@ static void evict1(grpc_chttp2_hptbl *tbl) { GPR_SLICE_LENGTH(first_ent->value->slice) + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; GPR_ASSERT(elem_bytes <= tbl->mem_used); - tbl->mem_used -= elem_bytes; + tbl->mem_used -= (gpr_uint32)elem_bytes; tbl->first_ent = ((tbl->first_ent + 1) % tbl->cap_entries); tbl->num_ents--; @@ -322,7 +322,7 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { tbl->last_ent = ((tbl->last_ent + 1) % tbl->cap_entries); tbl->num_ents++; - tbl->mem_used += elem_bytes; + tbl->mem_used += (gpr_uint32)elem_bytes; return 1; } -- cgit v1.2.3 From 3c53bb2f4680254a5e50228184ab8c2abae453f0 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 10 Nov 2015 14:24:36 +0000 Subject: clang-format --- src/core/client_config/subchannel.h | 6 +- src/core/iomgr/pollset_windows.c | 3 +- src/core/surface/byte_buffer_reader.c | 1 - src/core/transport/chttp2/hpack_encoder.c | 34 +- src/core/transport/chttp2/hpack_encoder.h | 8 +- src/core/transport/chttp2/hpack_parser.c | 56 +-- src/core/transport/chttp2/hpack_table.c | 40 +- src/core/transport/chttp2/hpack_table.h | 9 +- src/core/transport/chttp2/parsing.c | 8 +- src/core/transport/chttp2/writing.c | 11 +- src/core/transport/chttp2_transport.c | 33 +- test/core/client_config/lb_policies_test.c | 18 +- test/core/end2end/tests/cancel_with_status.c | 3 +- test/core/end2end/tests/hpack_size.c | 401 ++++++++++----------- test/core/end2end/tests/negative_deadline.c | 3 +- test/core/network_benchmarks/low_level_ping_pong.c | 8 +- test/core/surface/byte_buffer_reader_test.c | 4 +- test/core/transport/chttp2/hpack_table_test.c | 16 +- test/cpp/qps/client.h | 46 +-- 19 files changed, 365 insertions(+), 343 deletions(-) (limited to 'src/core/transport/chttp2') diff --git a/src/core/client_config/subchannel.h b/src/core/client_config/subchannel.h index 1fefa1888a..381b7689b8 100644 --- a/src/core/client_config/subchannel.h +++ b/src/core/client_config/subchannel.h @@ -77,10 +77,10 @@ void grpc_subchannel_call_unref(grpc_exec_ctx *exec_ctx, /** construct a subchannel call (possibly asynchronously). * - * If the returned status is 1, the call will return immediately and \a target - * will point to a connected \a subchannel_call instance. Note that \a notify + * If the returned status is 1, the call will return immediately and \a target + * will point to a connected \a subchannel_call instance. Note that \a notify * will \em not be invoked in this case. - * Otherwise, if the returned status is 0, the subchannel call will be created + * Otherwise, if the returned status is 0, the subchannel call will be created * asynchronously, invoking the \a notify callback upon completion. */ int grpc_subchannel_create_call(grpc_exec_ctx *exec_ctx, grpc_subchannel *subchannel, diff --git a/src/core/iomgr/pollset_windows.c b/src/core/iomgr/pollset_windows.c index c3f310ee27..deb661548d 100644 --- a/src/core/iomgr/pollset_windows.c +++ b/src/core/iomgr/pollset_windows.c @@ -126,7 +126,8 @@ void grpc_pollset_destroy(grpc_pollset *pollset) {} void grpc_pollset_reset(grpc_pollset *pollset) { GPR_ASSERT(pollset->shutting_down); - GPR_ASSERT(!has_workers(&pollset->root_worker, GRPC_POLLSET_WORKER_LINK_POLLSET)); + GPR_ASSERT( + !has_workers(&pollset->root_worker, GRPC_POLLSET_WORKER_LINK_POLLSET)); pollset->shutting_down = 0; pollset->is_iocp_worker = 0; pollset->kicked_without_pollers = 0; diff --git a/src/core/surface/byte_buffer_reader.c b/src/core/surface/byte_buffer_reader.c index 9f830df68c..57417f41b0 100644 --- a/src/core/surface/byte_buffer_reader.c +++ b/src/core/surface/byte_buffer_reader.c @@ -121,4 +121,3 @@ gpr_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader *reader) { } return out_slice; } - diff --git a/src/core/transport/chttp2/hpack_encoder.c b/src/core/transport/chttp2/hpack_encoder.c index 7ec5a4fb2d..f89159bad1 100644 --- a/src/core/transport/chttp2/hpack_encoder.c +++ b/src/core/transport/chttp2/hpack_encoder.c @@ -160,13 +160,11 @@ static void evict_entry(grpc_chttp2_hpack_compressor *c) { c->tail_remote_index++; GPR_ASSERT(c->tail_remote_index > 0); GPR_ASSERT(c->table_size >= - c->table_elem_size[c->tail_remote_index % - c->cap_table_elems]); + c->table_elem_size[c->tail_remote_index % c->cap_table_elems]); GPR_ASSERT(c->table_elems > 0); - c->table_size = - (gpr_uint16)(c->table_size - - c->table_elem_size[c->tail_remote_index % - c->cap_table_elems]); + c->table_size = (gpr_uint16)( + c->table_size - + c->table_elem_size[c->tail_remote_index % c->cap_table_elems]); c->table_elems--; } @@ -194,8 +192,7 @@ static void add_elem(grpc_chttp2_hpack_compressor *c, grpc_mdelem *elem) { evict_entry(c); } GPR_ASSERT(c->table_elems < c->max_table_size); - c->table_elem_size[new_index % c->cap_table_elems] = - (gpr_uint16)elem_size; + c->table_elem_size[new_index % c->cap_table_elems] = (gpr_uint16)elem_size; c->table_size = (gpr_uint16)(c->table_size + elem_size); c->table_elems++; @@ -341,9 +338,11 @@ static void emit_lithdr_noidx_v(grpc_chttp2_hpack_compressor *c, add_header_data(st, gpr_slice_ref(value_slice)); } -static void emit_advertise_table_size_change(grpc_chttp2_hpack_compressor *c, framer_state *st) { +static void emit_advertise_table_size_change(grpc_chttp2_hpack_compressor *c, + framer_state *st) { gpr_uint32 len = GRPC_CHTTP2_VARINT_LENGTH(c->max_table_size, 3); - GRPC_CHTTP2_WRITE_VARINT(c->max_table_size, 3, 0x20, add_tiny_header_data(st, len), len); + GRPC_CHTTP2_WRITE_VARINT(c->max_table_size, 3, 0x20, + add_tiny_header_data(st, len), len); c->advertise_table_size_change = 0; } @@ -477,8 +476,10 @@ void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor *c, c->max_table_size = GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE; c->cap_table_elems = c->max_table_elems = elems_for_bytes(c->max_table_size); c->max_usable_size = GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE; - c->table_elem_size = gpr_malloc(sizeof(*c->table_elem_size) * c->cap_table_elems); - memset(c->table_elem_size, 0, sizeof(*c->table_elem_size) * c->cap_table_elems); + c->table_elem_size = + gpr_malloc(sizeof(*c->table_elem_size) * c->cap_table_elems); + memset(c->table_elem_size, 0, + sizeof(*c->table_elem_size) * c->cap_table_elems); } void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor *c) { @@ -491,16 +492,19 @@ void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor *c) { gpr_free(c->table_elem_size); } -void grpc_chttp2_hpack_compressor_set_max_usable_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) { +void grpc_chttp2_hpack_compressor_set_max_usable_size( + grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) { c->max_usable_size = max_table_size; - grpc_chttp2_hpack_compressor_set_max_table_size(c, GPR_MIN(c->max_table_size, max_table_size)); + grpc_chttp2_hpack_compressor_set_max_table_size( + c, GPR_MIN(c->max_table_size, max_table_size)); } static void rebuild_elems(grpc_chttp2_hpack_compressor *c, gpr_uint32 new_cap) { } -void grpc_chttp2_hpack_compressor_set_max_table_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) { +void grpc_chttp2_hpack_compressor_set_max_table_size( + grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) { max_table_size = GPR_MIN(max_table_size, c->max_usable_size); if (max_table_size == c->max_table_size) { return; diff --git a/src/core/transport/chttp2/hpack_encoder.h b/src/core/transport/chttp2/hpack_encoder.h index ff32b08d60..ce83d101f2 100644 --- a/src/core/transport/chttp2/hpack_encoder.h +++ b/src/core/transport/chttp2/hpack_encoder.h @@ -46,7 +46,7 @@ /* initial table size, per spec */ #define GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE 4096 /* maximum table size we'll actually use */ -#define GRPC_CHTTP2_HPACKC_MAX_TABLE_SIZE (1024*1024) +#define GRPC_CHTTP2_HPACKC_MAX_TABLE_SIZE (1024 * 1024) typedef struct { gpr_uint32 filter_elems_sum; @@ -89,8 +89,10 @@ typedef struct { void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor *c, grpc_mdctx *mdctx); void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor *c); -void grpc_chttp2_hpack_compressor_set_max_table_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size); -void grpc_chttp2_hpack_compressor_set_max_usable_size(grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size); +void grpc_chttp2_hpack_compressor_set_max_table_size( + grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size); +void grpc_chttp2_hpack_compressor_set_max_usable_size( + grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size); void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c, gpr_uint32 id, grpc_metadata_batch *metadata, int is_eof, diff --git a/src/core/transport/chttp2/hpack_parser.c b/src/core/transport/chttp2/hpack_parser.c index 0f90f08b9c..57a3a20b1d 100644 --- a/src/core/transport/chttp2/hpack_parser.c +++ b/src/core/transport/chttp2/hpack_parser.c @@ -75,7 +75,7 @@ static int parse_begin(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, static int parse_error(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end); static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, - const gpr_uint8 *end); + const gpr_uint8 *end); static int parse_string_prefix(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end); @@ -625,7 +625,7 @@ static const gpr_uint8 inverse_base64[256] = { /* emission helpers */ static int on_hdr(grpc_chttp2_hpack_parser *p, grpc_mdelem *md, - int add_to_table) { + int add_to_table) { if (add_to_table) { if (!grpc_chttp2_hptbl_add(&p->table, md)) { return 0; @@ -750,19 +750,20 @@ static int finish_lithdr_incidx(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index); return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, - GRPC_MDSTR_REF(md->key), - take_string(p, &p->value)), - 1) && parse_begin(p, cur, end); + GRPC_MDSTR_REF(md->key), + take_string(p, &p->value)), + 1) && + parse_begin(p, cur, end); } /* finish a literal header with incremental indexing with no index */ static int finish_lithdr_incidx_v(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, - take_string(p, &p->key), - take_string(p, &p->value)), - 1) && - parse_begin(p, cur, end); + take_string(p, &p->key), + take_string(p, &p->value)), + 1) && + parse_begin(p, cur, end); } /* parse a literal header with incremental indexing; index < 63 */ @@ -802,19 +803,20 @@ static int finish_lithdr_notidx(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index); return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, - GRPC_MDSTR_REF(md->key), - take_string(p, &p->value)), - 0) && - parse_begin(p, cur, end); + GRPC_MDSTR_REF(md->key), + take_string(p, &p->value)), + 0) && + parse_begin(p, cur, end); } /* finish a literal header without incremental indexing with index = 0 */ static int finish_lithdr_notidx_v(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, - take_string(p, &p->key), - take_string(p, &p->value)), - 0) && parse_begin(p, cur, end); + take_string(p, &p->key), + take_string(p, &p->value)), + 0) && + parse_begin(p, cur, end); } /* parse a literal header without incremental indexing; index < 15 */ @@ -854,20 +856,20 @@ static int finish_lithdr_nvridx(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index); return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, - GRPC_MDSTR_REF(md->key), - take_string(p, &p->value)), - 0) && - parse_begin(p, cur, end); + GRPC_MDSTR_REF(md->key), + take_string(p, &p->value)), + 0) && + parse_begin(p, cur, end); } /* finish a literal header that is never indexed with an extra value */ static int finish_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { return on_hdr(p, grpc_mdelem_from_metadata_strings(p->table.mdctx, - take_string(p, &p->key), - take_string(p, &p->value)), - 0) && - parse_begin(p, cur, end); + take_string(p, &p->key), + take_string(p, &p->value)), + 0) && + parse_begin(p, cur, end); } /* parse a literal header that is never indexed; index < 15 */ @@ -906,7 +908,8 @@ static int parse_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p, static int finish_max_tbl_size(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { gpr_log(GPR_INFO, "MAX TABLE SIZE: %d", p->index); - return grpc_chttp2_hptbl_set_current_table_size(&p->table, p->index) && parse_begin(p, cur, end); + return grpc_chttp2_hptbl_set_current_table_size(&p->table, p->index) && + parse_begin(p, cur, end); } /* parse a max table size change, max size < 15 */ @@ -934,7 +937,8 @@ static int parse_error(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, return 0; } -static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, const gpr_uint8 *end) { +static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur, + const gpr_uint8 *end) { GPR_ASSERT(cur != end); gpr_log(GPR_DEBUG, "Illegal hpack op code %d", *cur); return parse_error(p, cur, end); diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index a94fdb994d..fabc950872 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -172,7 +172,8 @@ static struct { }; static gpr_uint32 entries_for_bytes(gpr_uint32 bytes) { - return (bytes + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD - 1) / GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; + return (bytes + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD - 1) / + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; } void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl *tbl, grpc_mdctx *mdctx) { @@ -180,8 +181,10 @@ void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl *tbl, grpc_mdctx *mdctx) { memset(tbl, 0, sizeof(*tbl)); tbl->mdctx = mdctx; - tbl->current_table_bytes = tbl->max_bytes = GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE; - tbl->max_entries = tbl->cap_entries = entries_for_bytes(tbl->current_table_bytes); + tbl->current_table_bytes = tbl->max_bytes = + GRPC_CHTTP2_INITIAL_HPACK_TABLE_SIZE; + tbl->max_entries = tbl->cap_entries = + entries_for_bytes(tbl->current_table_bytes); tbl->ents = gpr_malloc(sizeof(*tbl->ents) * tbl->cap_entries); memset(tbl->ents, 0, sizeof(*tbl->ents) * tbl->cap_entries); for (i = 1; i <= GRPC_CHTTP2_LAST_STATIC_ENTRY; i++) { @@ -196,8 +199,7 @@ void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl) { GRPC_MDELEM_UNREF(tbl->static_ents[i]); } for (i = 0; i < tbl->num_ents; i++) { - GRPC_MDELEM_UNREF( - tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]); + GRPC_MDELEM_UNREF(tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]); } gpr_free(tbl->ents); } @@ -211,8 +213,8 @@ grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl, /* Otherwise, find the value in the list of valid entries */ tbl_index -= (GRPC_CHTTP2_LAST_STATIC_ENTRY + 1); if (tbl_index < tbl->num_ents) { - gpr_uint32 offset = (tbl->num_ents - 1u - tbl_index + tbl->first_ent) % - tbl->cap_entries; + gpr_uint32 offset = + (tbl->num_ents - 1u - tbl_index + tbl->first_ent) % tbl->cap_entries; return tbl->ents[offset]; } /* Invalid entry: return error */ @@ -227,8 +229,7 @@ static void evict1(grpc_chttp2_hptbl *tbl) { GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; GPR_ASSERT(elem_bytes <= tbl->mem_used); tbl->mem_used -= (gpr_uint32)elem_bytes; - tbl->first_ent = - ((tbl->first_ent + 1) % tbl->cap_entries); + tbl->first_ent = ((tbl->first_ent + 1) % tbl->cap_entries); tbl->num_ents--; GRPC_MDELEM_UNREF(first_ent); } @@ -246,7 +247,8 @@ static void rebuild_ents(grpc_chttp2_hptbl *tbl, gpr_uint32 new_cap) { tbl->first_ent = 0; } -void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, gpr_uint32 max_bytes) { +void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, + gpr_uint32 max_bytes) { if (tbl->max_bytes == max_bytes) { return; } @@ -257,12 +259,15 @@ void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, gpr_uint32 max_byte tbl->max_bytes = max_bytes; } -int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, gpr_uint32 bytes) { +int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, + gpr_uint32 bytes) { if (tbl->current_table_bytes == bytes) { return 1; } if (bytes > tbl->max_bytes) { - gpr_log(GPR_ERROR, "Attempt to make hpack table %d bytes when max is %d bytes", bytes, tbl->max_bytes); + gpr_log(GPR_ERROR, + "Attempt to make hpack table %d bytes when max is %d bytes", bytes, + tbl->max_bytes); return 0; } gpr_log(GPR_DEBUG, "Update hpack parser table size to %d", bytes); @@ -289,7 +294,10 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; if (tbl->current_table_bytes > tbl->max_bytes) { - gpr_log(GPR_ERROR, "HPACK max table size reduced to %d but not reflected by hpack stream", tbl->max_bytes); + gpr_log( + GPR_ERROR, + "HPACK max table size reduced to %d but not reflected by hpack stream", + tbl->max_bytes); return 0; } @@ -319,8 +327,7 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { tbl->ents[tbl->last_ent] = GRPC_MDELEM_REF(md); /* update accounting values */ - tbl->last_ent = - ((tbl->last_ent + 1) % tbl->cap_entries); + tbl->last_ent = ((tbl->last_ent + 1) % tbl->cap_entries); tbl->num_ents++; tbl->mem_used += (gpr_uint32)elem_bytes; return 1; @@ -344,8 +351,7 @@ grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find( for (i = 0; i < tbl->num_ents; i++) { gpr_uint32 idx = (gpr_uint32)(tbl->num_ents - i + GRPC_CHTTP2_LAST_STATIC_ENTRY); - grpc_mdelem *ent = - tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]; + grpc_mdelem *ent = tbl->ents[(tbl->first_ent + i) % tbl->cap_entries]; if (md->key != ent->key) continue; r.index = idx; r.has_value = md->value == ent->value; diff --git a/src/core/transport/chttp2/hpack_table.h b/src/core/transport/chttp2/hpack_table.h index d3560d34e0..6d506de8a5 100644 --- a/src/core/transport/chttp2/hpack_table.h +++ b/src/core/transport/chttp2/hpack_table.h @@ -88,14 +88,17 @@ typedef struct { /* initialize a hpack table */ void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl *tbl, grpc_mdctx *mdctx); void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl); -void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, gpr_uint32 max_bytes); -int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, gpr_uint32 bytes); +void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl, + gpr_uint32 max_bytes); +int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl, + gpr_uint32 bytes); /* lookup a table entry based on its hpack index */ grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl, gpr_uint32 index); /* add a table entry to the index */ -int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) GRPC_MUST_USE_RESULT; +int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, + grpc_mdelem *md) GRPC_MUST_USE_RESULT; /* Find a key/value pair in the table... returns the index in the table of the most similar entry, or 0 if the value was not found */ typedef struct { diff --git a/src/core/transport/chttp2/parsing.c b/src/core/transport/chttp2/parsing.c index 9a96a8ef4d..1e06532c03 100644 --- a/src/core/transport/chttp2/parsing.c +++ b/src/core/transport/chttp2/parsing.c @@ -78,7 +78,9 @@ void grpc_chttp2_prepare_to_read( GPR_TIMER_BEGIN("grpc_chttp2_prepare_to_read", 0); transport_parsing->next_stream_id = transport_global->next_stream_id; - transport_parsing->last_sent_max_table_size = transport_global->settings[GRPC_SENT_SETTINGS][GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]; + transport_parsing->last_sent_max_table_size = + transport_global->settings[GRPC_SENT_SETTINGS] + [GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]; /* update the parsing view of incoming window */ while (grpc_chttp2_list_pop_unannounced_incoming_window_available( @@ -821,7 +823,9 @@ static int init_settings_frame_parser( } if (transport_parsing->incoming_frame_flags & GRPC_CHTTP2_FLAG_ACK) { transport_parsing->settings_ack_received = 1; - grpc_chttp2_hptbl_set_max_bytes(&transport_parsing->hpack_parser.table, transport_parsing->last_sent_max_table_size); + grpc_chttp2_hptbl_set_max_bytes( + &transport_parsing->hpack_parser.table, + transport_parsing->last_sent_max_table_size); } transport_parsing->parser = grpc_chttp2_settings_parser_parse; transport_parsing->parser_data = &transport_parsing->simple.settings; diff --git a/src/core/transport/chttp2/writing.c b/src/core/transport/chttp2/writing.c index 7fe4d0b6bc..3cb28f8f0c 100644 --- a/src/core/transport/chttp2/writing.c +++ b/src/core/transport/chttp2/writing.c @@ -45,8 +45,7 @@ static void finalize_outbuf(grpc_exec_ctx *exec_ctx, int grpc_chttp2_unlocking_check_writes( grpc_chttp2_transport_global *transport_global, - grpc_chttp2_transport_writing *transport_writing, - int is_parsing) { + grpc_chttp2_transport_writing *transport_writing, int is_parsing) { grpc_chttp2_stream_global *stream_global; grpc_chttp2_stream_writing *stream_writing; @@ -56,11 +55,13 @@ int grpc_chttp2_unlocking_check_writes( gpr_slice_buffer_swap(&transport_global->qbuf, &transport_writing->outbuf); GPR_ASSERT(transport_global->qbuf.count == 0); - grpc_chttp2_hpack_compressor_set_max_table_size(&transport_writing->hpack_compressor, transport_global->settings[GRPC_PEER_SETTINGS][GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]); + grpc_chttp2_hpack_compressor_set_max_table_size( + &transport_writing->hpack_compressor, + transport_global->settings[GRPC_PEER_SETTINGS] + [GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]); if (transport_global->dirtied_local_settings && - !transport_global->sent_local_settings && - !is_parsing) { + !transport_global->sent_local_settings && !is_parsing) { gpr_slice_buffer_add( &transport_writing->outbuf, grpc_chttp2_settings_create( diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 3aa2ef9892..fdd835def9 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -338,21 +338,30 @@ static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, t->global.next_stream_id = (gpr_uint32)channel_args->args[i].value.integer; } - } else if (0 == strcmp(channel_args->args[i].key, GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER)) { + } else if (0 == strcmp(channel_args->args[i].key, + GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER)) { if (channel_args->args[i].type != GRPC_ARG_INTEGER) { - gpr_log(GPR_ERROR, "%s: must be an integer", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER); + gpr_log(GPR_ERROR, "%s: must be an integer", + GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER); } else if (channel_args->args[i].value.integer < 0) { - gpr_log(GPR_DEBUG, "%s: must be non-negative", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER); + gpr_log(GPR_DEBUG, "%s: must be non-negative", + GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER); } else { - push_setting(t, GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE, (gpr_uint32)channel_args->args[i].value.integer); + push_setting(t, GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE, + (gpr_uint32)channel_args->args[i].value.integer); } - } else if (0 == strcmp(channel_args->args[i].key, GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER)) { + } else if (0 == strcmp(channel_args->args[i].key, + GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER)) { if (channel_args->args[i].type != GRPC_ARG_INTEGER) { - gpr_log(GPR_ERROR, "%s: must be an integer", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER); + gpr_log(GPR_ERROR, "%s: must be an integer", + GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER); } else if (channel_args->args[i].value.integer < 0) { - gpr_log(GPR_DEBUG, "%s: must be non-negative", GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER); + gpr_log(GPR_DEBUG, "%s: must be non-negative", + GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER); } else { - grpc_chttp2_hpack_compressor_set_max_usable_size(&t->writing.hpack_compressor, (gpr_uint32)channel_args->args[i].value.integer); + grpc_chttp2_hpack_compressor_set_max_usable_size( + &t->writing.hpack_compressor, + (gpr_uint32)channel_args->args[i].value.integer); } } } @@ -579,7 +588,8 @@ static void lock(grpc_chttp2_transport *t) { gpr_mu_lock(&t->mu); } static void unlock(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) { GPR_TIMER_BEGIN("unlock", 0); if (!t->writing_active && !t->closed && - grpc_chttp2_unlocking_check_writes(&t->global, &t->writing, t->parsing_active)) { + grpc_chttp2_unlocking_check_writes(&t->global, &t->writing, + t->parsing_active)) { t->writing_active = 1; REF_TRANSPORT(t, "writing"); grpc_exec_ctx_enqueue(exec_ctx, &t->writing_action, 1); @@ -827,7 +837,7 @@ static void perform_stream_op_locked( } if (stream_global->write_closed) { grpc_chttp2_complete_closure_step( - exec_ctx, &stream_global->send_trailing_metadata_finished, + exec_ctx, &stream_global->send_trailing_metadata_finished, grpc_metadata_batch_is_empty(op->send_trailing_metadata)); } else if (stream_global->id != 0) { /* TODO(ctiller): check if there's flow control for any outstanding @@ -1054,7 +1064,8 @@ void grpc_chttp2_fake_status(grpc_exec_ctx *exec_ctx, to the upper layers - drop what we've got, and then publish what we want - which is safe because we haven't told anyone about the metadata yet */ - if (!stream_global->published_trailing_metadata || stream_global->recv_trailing_metadata_finished != NULL) { + if (!stream_global->published_trailing_metadata || + stream_global->recv_trailing_metadata_finished != NULL) { grpc_mdctx *mdctx = TRANSPORT_FROM_GLOBAL(transport_global)->metadata_context; char status_string[GPR_LTOA_MIN_BUFSIZE]; diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c index e44930ed53..8498e1d827 100644 --- a/test/core/client_config/lb_policies_test.c +++ b/test/core/client_config/lb_policies_test.c @@ -135,9 +135,8 @@ static void kill_server(const servers_fixture *f, size_t i) { gpr_log(GPR_INFO, "KILLING SERVER %d", i); GPR_ASSERT(f->servers[i] != NULL); grpc_server_shutdown_and_notify(f->servers[i], f->cq, tag(10000)); - GPR_ASSERT( - grpc_completion_queue_pluck(f->cq, tag(10000), n_millis_time(5000), NULL) - .type == GRPC_OP_COMPLETE); + GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(10000), n_millis_time(5000), + NULL).type == GRPC_OP_COMPLETE); grpc_server_destroy(f->servers[i]); f->servers[i] = NULL; } @@ -203,8 +202,8 @@ static void teardown_servers(servers_fixture *f) { if (f->servers[i] == NULL) continue; grpc_server_shutdown_and_notify(f->servers[i], f->cq, tag(10000)); GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(10000), - n_millis_time(5000), NULL) - .type == GRPC_OP_COMPLETE); + n_millis_time(5000), + NULL).type == GRPC_OP_COMPLETE); grpc_server_destroy(f->servers[i]); } grpc_completion_queue_shutdown(f->cq); @@ -269,8 +268,8 @@ int *perform_request(servers_fixture *f, grpc_channel *client, memset(s_valid, 0, f->num_servers * sizeof(int)); c = grpc_channel_create_call(client, NULL, GRPC_PROPAGATE_DEFAULTS, f->cq, - "/foo", "foo.test.google.fr", gpr_inf_future(GPR_CLOCK_REALTIME), - NULL); + "/foo", "foo.test.google.fr", + gpr_inf_future(GPR_CLOCK_REALTIME), NULL); GPR_ASSERT(c); completed_client = 0; @@ -303,8 +302,9 @@ int *perform_request(servers_fixture *f, grpc_channel *client, grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), NULL)); s_idx = -1; - while ((ev = grpc_completion_queue_next(f->cq, n_millis_time(s_idx == -1 ? 3000 : 200), NULL)) - .type != GRPC_QUEUE_TIMEOUT) { + while ((ev = grpc_completion_queue_next( + f->cq, n_millis_time(s_idx == -1 ? 3000 : 200), NULL)).type != + GRPC_QUEUE_TIMEOUT) { GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); read_tag = ((int)(gpr_intptr)ev.tag); gpr_log(GPR_DEBUG, "EVENT: success:%d, type:%d, tag:%d iter:%d", diff --git a/test/core/end2end/tests/cancel_with_status.c b/test/core/end2end/tests/cancel_with_status.c index eecfa83fa4..2005e5f881 100644 --- a/test/core/end2end/tests/cancel_with_status.c +++ b/test/core/end2end/tests/cancel_with_status.c @@ -166,7 +166,8 @@ static void simple_request_body(grpc_end2end_test_fixture f, size_t num_ops) { cq_verifier_destroy(cqv); } -static void test_invoke_simple_request(grpc_end2end_test_config config, size_t num_ops) { +static void test_invoke_simple_request(grpc_end2end_test_config config, + size_t num_ops) { grpc_end2end_test_fixture f; f = begin_test(config, "test_invoke_simple_request", NULL, NULL); diff --git a/test/core/end2end/tests/hpack_size.c b/test/core/end2end/tests/hpack_size.c index 3aa69ff996..b52d7067df 100644 --- a/test/core/end2end/tests/hpack_size.c +++ b/test/core/end2end/tests/hpack_size.c @@ -49,196 +49,190 @@ static void *tag(gpr_intptr t) { return (void *)t; } -const char *hobbits[][2] = { - {"Adaldrida", "Brandybuck"}, - {"Adamanta", "Took"}, - {"Adalgrim", "Took"}, - {"Adelard", "Took"}, - {"Amaranth", "Brandybuck"}, - {"Andwise", "Roper"}, - {"Angelica", "Baggins"}, - {"Asphodel", "Burrows"}, - {"Balbo", "Baggins"}, - {"Bandobras", "Took"}, - {"Belba", "Bolger"}, - {"Bell", "Gamgee"}, - {"Belladonna", "Baggins"}, - {"Berylla", "Baggins"}, - {"Bilbo", "Baggins"}, - {"Bilbo", "Gardner"}, - {"Bill", "Butcher"}, - {"Bingo", "Baggins"}, - {"Bodo", "Proudfoot"}, - {"Bowman", "Cotton"}, - {"Bungo", "Baggins"}, - {"Camellia", "Sackville"}, - {"Carl", "Cotton"}, - {"Celandine", "Brandybuck"}, - {"Chica", "Baggins"}, - {"Daddy", "Twofoot"}, - {"Daisy", "Boffin"}, - {"Diamond", "Took"}, - {"Dinodas", "Brandybuck"}, - {"Doderic", "Brandybuck"}, - {"Dodinas", "Brandybuck"}, - {"Donnamira", "Boffin"}, - {"Dora", "Baggins"}, - {"Drogo", "Baggins"}, - {"Dudo", "Baggins"}, - {"Eglantine", "Took"}, - {"Elanor", "Fairbairn"}, - {"Elfstan", "Fairbairn"}, - {"Esmeralda", "Brandybuck"}, - {"Estella", "Brandybuck"}, - {"Everard", "Took"}, - {"Falco", "Chubb-Baggins"}, - {"Faramir", "Took"}, - {"Farmer", "Maggot"}, - {"Fastolph", "Bolger"}, - {"Ferdibrand", "Took"}, - {"Ferdinand", "Took"}, - {"Ferumbras", "Took"}, - {"Ferumbras", "Took"}, - {"Filibert", "Bolger"}, - {"Firiel", "Fairbairn"}, - {"Flambard", "Took"}, - {"Folco", "Boffin"}, - {"Fortinbras", "Took"}, - {"Fortinbras", "Took"}, - {"Fosco", "Baggins"}, - {"Fredegar", "Bolger"}, - {"Frodo", "Baggins"}, - {"Frodo", "Gardner"}, - {"Gerontius", "Took"}, - {"Gilly", "Baggins"}, - {"Goldilocks", "Took"}, - {"Gorbadoc", "Brandybuck"}, - {"Gorbulas", "Brandybuck"}, - {"Gorhendad", "Brandybuck"}, - {"Gormadoc", "Brandybuck"}, - {"Griffo", "Boffin"}, - {"Halfast", "Gamgee"}, - {"Halfred", "Gamgee"}, - {"Halfred", "Greenhand"}, - {"Hanna", "Brandybuck"}, - {"Hamfast", "Gamgee"}, - {"Hamfast", "Gardner"}, - {"Hamson", "Gamgee"}, - {"Harding", "Gardner"}, - {"Hilda", "Brandybuck"}, - {"Hildibrand", "Took"}, - {"Hildifons", "Took"}, - {"Hildigard", "Took"}, - {"Hildigrim", "Took"}, - {"Hob", "Gammidge"}, - {"Hob", "Hayward"}, - {"Hobson", "Gamgee"}, - {"Holfast", "Gardner"}, - {"Holman", "Cotton"}, - {"Holman", "Greenhand"}, - {"Hugo", "Boffin"}, - {"Hugo", "Bracegirdle"}, - {"Ilberic", "Brandybuck"}, - {"Isembard", "Took"}, - {"Isembold", "Took"}, - {"Isengar", "Took"}, - {"Isengrim", "Took"}, - {"Isengrim", "Took"}, - {"Isumbras", "Took"}, - {"Isumbras", "Took"}, - {"Jolly", "Cotton"}, - {"Lalia", "Took"}, - {"Largo", "Baggins"}, - {"Laura", "Baggins"}, - {"Lily", "Goodbody"}, - {"Lily", "Cotton"}, - {"Linda", "Proudfoot"}, - {"Lobelia", "Sackville-Baggins"}, - {"Longo", "Baggins"}, - {"Lotho", "Sackville-Baggins"}, - {"Madoc", "Brandybuck"}, - {"Malva", "Brandybuck"}, - {"Marigold", "Cotton"}, - {"Marmadas", "Brandybuck"}, - {"Marmadoc", "Brandybuck"}, - {"Marroc", "Brandybuck"}, - {"May", "Gamgee"}, - {"Melilot", "Brandybuck"}, - {"Menegilda", "Brandybuck"}, - {"Mentha", "Brandybuck"}, - {"Meriadoc", "Brandybuck"}, - {"Merimac", "Brandybuck"}, - {"Merimas", "Brandybuck"}, - {"Merry", "Gardner"}, - {"Milo", "Burrows"}, - {"Mimosa", "Baggins"}, - {"Minto", "Burrows"}, - {"Mirabella", "Brandybuck"}, - {"Moro", "Burrows"}, - {"Mosco", "Burrows"}, - {"Mungo", "Baggins"}, - {"Myrtle", "Burrows"}, - {"Odo", "Proudfoot"}, - {"Odovacar", "Bolger"}, - {"Olo", "Proudfoot"}, - {"Orgulas", "Brandybuck"}, - {"Otho", "Sackville-Baggins"}, - {"Paladin", "Took"}, - {"Pansy", "Bolger"}, - {"Pearl", "Took"}, - {"Peony", "Burrows"}, - {"Peregrin", "Took"}, - {"Pervinca", "Took"}, - {"Pimpernel", "Took"}, - {"Pippin", "Gardner"}, - {"Polo", "Baggins"}, - {"Ponto", "Baggins"}, - {"Porto", "Baggins"}, - {"Posco", "Baggins"}, - {"Poppy", "Bolger"}, - {"Primrose", "Gardner"}, - {"Primula", "Baggins"}, - {"Prisca", "Bolger"}, - {"Reginard", "Took"}, - {"Robin", "Smallburrow"}, - {"Robin", "Gardner"}, - {"Rorimac", "Brandybuck"}, - {"Rosa", "Took"}, - {"Rosamunda", "Bolger"}, - {"Rose", "Gardner"}, - {"Ruby", "Baggins"}, - {"Ruby", "Gardner"}, - {"Rudigar", "Bolger"}, - {"Rufus", "Burrows"}, - {"Sadoc", "Brandybuck"}, - {"Salvia", "Bolger"}, - {"Samwise", "Gamgee"}, - {"Sancho", "Proudfoot"}, - {"Saradas", "Brandybuck"}, - {"Saradoc", "Brandybuck"}, - {"Seredic", "Brandybuck"}, - {"Sigismond", "Took"}, - {"Smeagol", "Gollum"}, - {"Tanta", "Baggins"}, - {"Ted", "Sandyman"}, - {"Tobold", "Hornblower"}, - {"Togo", "Goodbody"}, - {"Tolman", "Cotton"}, - {"Tolman", "Gardner"}, - {"Widow", "Rumble"}, - {"Wilcome", "Cotton"}, - {"Wilcome", "Cotton"}, - {"Wilibald", "Bolger"}, - {"Will", "Whitfoot"}, - {"Wiseman", "Gamwich"} -}; - -const char *dragons[] = { - "Ancalagon", - "Glaurung", - "Scatha", - "Smaug the Magnificent" -}; +const char *hobbits[][2] = {{"Adaldrida", "Brandybuck"}, + {"Adamanta", "Took"}, + {"Adalgrim", "Took"}, + {"Adelard", "Took"}, + {"Amaranth", "Brandybuck"}, + {"Andwise", "Roper"}, + {"Angelica", "Baggins"}, + {"Asphodel", "Burrows"}, + {"Balbo", "Baggins"}, + {"Bandobras", "Took"}, + {"Belba", "Bolger"}, + {"Bell", "Gamgee"}, + {"Belladonna", "Baggins"}, + {"Berylla", "Baggins"}, + {"Bilbo", "Baggins"}, + {"Bilbo", "Gardner"}, + {"Bill", "Butcher"}, + {"Bingo", "Baggins"}, + {"Bodo", "Proudfoot"}, + {"Bowman", "Cotton"}, + {"Bungo", "Baggins"}, + {"Camellia", "Sackville"}, + {"Carl", "Cotton"}, + {"Celandine", "Brandybuck"}, + {"Chica", "Baggins"}, + {"Daddy", "Twofoot"}, + {"Daisy", "Boffin"}, + {"Diamond", "Took"}, + {"Dinodas", "Brandybuck"}, + {"Doderic", "Brandybuck"}, + {"Dodinas", "Brandybuck"}, + {"Donnamira", "Boffin"}, + {"Dora", "Baggins"}, + {"Drogo", "Baggins"}, + {"Dudo", "Baggins"}, + {"Eglantine", "Took"}, + {"Elanor", "Fairbairn"}, + {"Elfstan", "Fairbairn"}, + {"Esmeralda", "Brandybuck"}, + {"Estella", "Brandybuck"}, + {"Everard", "Took"}, + {"Falco", "Chubb-Baggins"}, + {"Faramir", "Took"}, + {"Farmer", "Maggot"}, + {"Fastolph", "Bolger"}, + {"Ferdibrand", "Took"}, + {"Ferdinand", "Took"}, + {"Ferumbras", "Took"}, + {"Ferumbras", "Took"}, + {"Filibert", "Bolger"}, + {"Firiel", "Fairbairn"}, + {"Flambard", "Took"}, + {"Folco", "Boffin"}, + {"Fortinbras", "Took"}, + {"Fortinbras", "Took"}, + {"Fosco", "Baggins"}, + {"Fredegar", "Bolger"}, + {"Frodo", "Baggins"}, + {"Frodo", "Gardner"}, + {"Gerontius", "Took"}, + {"Gilly", "Baggins"}, + {"Goldilocks", "Took"}, + {"Gorbadoc", "Brandybuck"}, + {"Gorbulas", "Brandybuck"}, + {"Gorhendad", "Brandybuck"}, + {"Gormadoc", "Brandybuck"}, + {"Griffo", "Boffin"}, + {"Halfast", "Gamgee"}, + {"Halfred", "Gamgee"}, + {"Halfred", "Greenhand"}, + {"Hanna", "Brandybuck"}, + {"Hamfast", "Gamgee"}, + {"Hamfast", "Gardner"}, + {"Hamson", "Gamgee"}, + {"Harding", "Gardner"}, + {"Hilda", "Brandybuck"}, + {"Hildibrand", "Took"}, + {"Hildifons", "Took"}, + {"Hildigard", "Took"}, + {"Hildigrim", "Took"}, + {"Hob", "Gammidge"}, + {"Hob", "Hayward"}, + {"Hobson", "Gamgee"}, + {"Holfast", "Gardner"}, + {"Holman", "Cotton"}, + {"Holman", "Greenhand"}, + {"Hugo", "Boffin"}, + {"Hugo", "Bracegirdle"}, + {"Ilberic", "Brandybuck"}, + {"Isembard", "Took"}, + {"Isembold", "Took"}, + {"Isengar", "Took"}, + {"Isengrim", "Took"}, + {"Isengrim", "Took"}, + {"Isumbras", "Took"}, + {"Isumbras", "Took"}, + {"Jolly", "Cotton"}, + {"Lalia", "Took"}, + {"Largo", "Baggins"}, + {"Laura", "Baggins"}, + {"Lily", "Goodbody"}, + {"Lily", "Cotton"}, + {"Linda", "Proudfoot"}, + {"Lobelia", "Sackville-Baggins"}, + {"Longo", "Baggins"}, + {"Lotho", "Sackville-Baggins"}, + {"Madoc", "Brandybuck"}, + {"Malva", "Brandybuck"}, + {"Marigold", "Cotton"}, + {"Marmadas", "Brandybuck"}, + {"Marmadoc", "Brandybuck"}, + {"Marroc", "Brandybuck"}, + {"May", "Gamgee"}, + {"Melilot", "Brandybuck"}, + {"Menegilda", "Brandybuck"}, + {"Mentha", "Brandybuck"}, + {"Meriadoc", "Brandybuck"}, + {"Merimac", "Brandybuck"}, + {"Merimas", "Brandybuck"}, + {"Merry", "Gardner"}, + {"Milo", "Burrows"}, + {"Mimosa", "Baggins"}, + {"Minto", "Burrows"}, + {"Mirabella", "Brandybuck"}, + {"Moro", "Burrows"}, + {"Mosco", "Burrows"}, + {"Mungo", "Baggins"}, + {"Myrtle", "Burrows"}, + {"Odo", "Proudfoot"}, + {"Odovacar", "Bolger"}, + {"Olo", "Proudfoot"}, + {"Orgulas", "Brandybuck"}, + {"Otho", "Sackville-Baggins"}, + {"Paladin", "Took"}, + {"Pansy", "Bolger"}, + {"Pearl", "Took"}, + {"Peony", "Burrows"}, + {"Peregrin", "Took"}, + {"Pervinca", "Took"}, + {"Pimpernel", "Took"}, + {"Pippin", "Gardner"}, + {"Polo", "Baggins"}, + {"Ponto", "Baggins"}, + {"Porto", "Baggins"}, + {"Posco", "Baggins"}, + {"Poppy", "Bolger"}, + {"Primrose", "Gardner"}, + {"Primula", "Baggins"}, + {"Prisca", "Bolger"}, + {"Reginard", "Took"}, + {"Robin", "Smallburrow"}, + {"Robin", "Gardner"}, + {"Rorimac", "Brandybuck"}, + {"Rosa", "Took"}, + {"Rosamunda", "Bolger"}, + {"Rose", "Gardner"}, + {"Ruby", "Baggins"}, + {"Ruby", "Gardner"}, + {"Rudigar", "Bolger"}, + {"Rufus", "Burrows"}, + {"Sadoc", "Brandybuck"}, + {"Salvia", "Bolger"}, + {"Samwise", "Gamgee"}, + {"Sancho", "Proudfoot"}, + {"Saradas", "Brandybuck"}, + {"Saradoc", "Brandybuck"}, + {"Seredic", "Brandybuck"}, + {"Sigismond", "Took"}, + {"Smeagol", "Gollum"}, + {"Tanta", "Baggins"}, + {"Ted", "Sandyman"}, + {"Tobold", "Hornblower"}, + {"Togo", "Goodbody"}, + {"Tolman", "Cotton"}, + {"Tolman", "Gardner"}, + {"Widow", "Rumble"}, + {"Wilcome", "Cotton"}, + {"Wilcome", "Cotton"}, + {"Wilibald", "Bolger"}, + {"Will", "Whitfoot"}, + {"Wiseman", "Gamwich"}}; + +const char *dragons[] = {"Ancalagon", "Glaurung", "Scatha", + "Smaug the Magnificent"}; static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config, const char *test_name, @@ -406,7 +400,8 @@ static void simple_request_body(grpc_end2end_test_fixture f, size_t index) { cq_verifier_destroy(cqv); } -static void test_size(grpc_end2end_test_config config, int encode_size, int decode_size) { +static void test_size(grpc_end2end_test_config config, int encode_size, + int decode_size) { size_t i; grpc_end2end_test_fixture f; grpc_arg server_arg; @@ -428,7 +423,8 @@ static void test_size(grpc_end2end_test_config config, int encode_size, int deco client_args.args = &client_arg; gpr_asprintf(&name, "test_size:e=%d:d=%d", encode_size, decode_size); - f = begin_test(config, name, encode_size != 4096 ? &client_args : NULL, decode_size != 4096 ? &server_args : NULL); + f = begin_test(config, name, encode_size != 4096 ? &client_args : NULL, + decode_size != 4096 ? &server_args : NULL); for (i = 0; i < 4 * GPR_ARRAY_SIZE(hobbits); i++) { simple_request_body(f, i); } @@ -439,24 +435,9 @@ static void test_size(grpc_end2end_test_config config, int encode_size, int deco void grpc_end2end_tests(grpc_end2end_test_config config) { static const int interesting_sizes[] = { - 4096, - 0, - 1, - 32, - 100, - 1000, - 4095, - 4097, - 8192, - 16384, - 32768, - 1024*1024-1, - 1024*1024, - 1024*1024+1, - 2*1024*1024, - 3*1024*1024, - 4*1024*1024 - }; + 4096, 0, 1, 32, 100, 1000, 4095, 4097, 8192, 16384, 32768, + 1024 * 1024 - 1, 1024 * 1024, 1024 * 1024 + 1, 2 * 1024 * 1024, + 3 * 1024 * 1024, 4 * 1024 * 1024}; size_t i, j; for (i = 0; i < GPR_ARRAY_SIZE(interesting_sizes); i++) { diff --git a/test/core/end2end/tests/negative_deadline.c b/test/core/end2end/tests/negative_deadline.c index abcc1ba358..8fe9e7bcc5 100644 --- a/test/core/end2end/tests/negative_deadline.c +++ b/test/core/end2end/tests/negative_deadline.c @@ -163,7 +163,8 @@ static void simple_request_body(grpc_end2end_test_fixture f, size_t num_ops) { cq_verifier_destroy(cqv); } -static void test_invoke_simple_request(grpc_end2end_test_config config, size_t num_ops) { +static void test_invoke_simple_request(grpc_end2end_test_config config, + size_t num_ops) { grpc_end2end_test_fixture f; f = begin_test(config, "test_invoke_simple_request", NULL, NULL); diff --git a/test/core/network_benchmarks/low_level_ping_pong.c b/test/core/network_benchmarks/low_level_ping_pong.c index 7a2d894481..dd1544c27b 100644 --- a/test/core/network_benchmarks/low_level_ping_pong.c +++ b/test/core/network_benchmarks/low_level_ping_pong.c @@ -139,7 +139,7 @@ static int poll_read_bytes(int fd, char *buf, size_t read_size, int spin) { gpr_log(GPR_ERROR, "Read failed: %s", strerror(errno)); return -1; } - bytes_read += (size_t) err2; + bytes_read += (size_t)err2; } while (bytes_read < read_size); return 0; } @@ -174,11 +174,11 @@ static int epoll_read_bytes(struct thread_args *args, char *buf, int spin) { GPR_ASSERT(ev.data.fd == args->fds.read_fd); do { do { - err2 = read(args->fds.read_fd, buf + bytes_read, - read_size - bytes_read); + err2 = + read(args->fds.read_fd, buf + bytes_read, read_size - bytes_read); } while (err2 < 0 && errno == EINTR); if (errno == EAGAIN) break; - bytes_read += (size_t) err2; + bytes_read += (size_t)err2; /* TODO(klempner): This should really be doing an extra call after we are done to ensure we see an EAGAIN */ } while (bytes_read < read_size); diff --git a/test/core/surface/byte_buffer_reader_test.c b/test/core/surface/byte_buffer_reader_test.c index 7f9cd6b62b..6b41698717 100644 --- a/test/core/surface/byte_buffer_reader_test.c +++ b/test/core/surface/byte_buffer_reader_test.c @@ -185,8 +185,8 @@ static void test_byte_buffer_from_reader(void) { } static void test_readall(void) { - char* lotsa_as[512]; - char* lotsa_bs[1024]; + char *lotsa_as[512]; + char *lotsa_bs[1024]; gpr_slice slices[2]; grpc_byte_buffer *buffer; grpc_byte_buffer_reader reader; diff --git a/test/core/transport/chttp2/hpack_table_test.c b/test/core/transport/chttp2/hpack_table_test.c index 2e336aa854..db55c27783 100644 --- a/test/core/transport/chttp2/hpack_table_test.c +++ b/test/core/transport/chttp2/hpack_table_test.c @@ -145,7 +145,8 @@ static void test_many_additions(void) { for (i = 0; i < 1000000; i++) { gpr_asprintf(&key, "K:%d", i); gpr_asprintf(&value, "VALUE:%d", i); - GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, grpc_mdelem_from_strings(mdctx, key, value))); + GPR_ASSERT(grpc_chttp2_hptbl_add( + &tbl, grpc_mdelem_from_strings(mdctx, key, value))); assert_index(&tbl, 1 + GRPC_CHTTP2_LAST_STATIC_ENTRY, key, value); gpr_free(key); gpr_free(value); @@ -182,9 +183,12 @@ static void test_find(void) { mdctx = grpc_mdctx_create(); grpc_chttp2_hptbl_init(&tbl, mdctx); - GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, grpc_mdelem_from_strings(mdctx, "abc", "xyz"))); - GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, grpc_mdelem_from_strings(mdctx, "abc", "123"))); - GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, grpc_mdelem_from_strings(mdctx, "x", "1"))); + GPR_ASSERT(grpc_chttp2_hptbl_add( + &tbl, grpc_mdelem_from_strings(mdctx, "abc", "xyz"))); + GPR_ASSERT(grpc_chttp2_hptbl_add( + &tbl, grpc_mdelem_from_strings(mdctx, "abc", "123"))); + GPR_ASSERT( + grpc_chttp2_hptbl_add(&tbl, grpc_mdelem_from_strings(mdctx, "x", "1"))); r = find_simple(&tbl, "abc", "123"); GPR_ASSERT(r.index == 2 + GRPC_CHTTP2_LAST_STATIC_ENTRY); @@ -233,8 +237,8 @@ static void test_find(void) { /* overflow the string buffer, check find still works */ for (i = 0; i < 10000; i++) { gpr_ltoa(i, buffer); - GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, - grpc_mdelem_from_strings(mdctx, "test", buffer))); + GPR_ASSERT(grpc_chttp2_hptbl_add( + &tbl, grpc_mdelem_from_strings(mdctx, "test", buffer))); } r = find_simple(&tbl, "abc", "123"); diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index f4400692fe..b24a90adac 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -181,29 +181,29 @@ class Client { std::unique_ptr random_dist; switch (load.load_case()) { - case LoadParams::kClosedLoop: - // Closed-loop doesn't use random dist at all - break; - case LoadParams::kPoisson: - random_dist.reset( - new ExpDist(load.poisson().offered_load() / num_threads)); - break; - case LoadParams::kUniform: - random_dist.reset( - new UniformDist(load.uniform().interarrival_lo() * num_threads, - load.uniform().interarrival_hi() * num_threads)); - break; - case LoadParams::kDeterm: - random_dist.reset( - new DetDist(num_threads / load.determ().offered_load())); - break; - case LoadParams::kPareto: - random_dist.reset( - new ParetoDist(load.pareto().interarrival_base() * num_threads, - load.pareto().alpha())); - break; - default: - GPR_ASSERT(false); + case LoadParams::kClosedLoop: + // Closed-loop doesn't use random dist at all + break; + case LoadParams::kPoisson: + random_dist.reset( + new ExpDist(load.poisson().offered_load() / num_threads)); + break; + case LoadParams::kUniform: + random_dist.reset( + new UniformDist(load.uniform().interarrival_lo() * num_threads, + load.uniform().interarrival_hi() * num_threads)); + break; + case LoadParams::kDeterm: + random_dist.reset( + new DetDist(num_threads / load.determ().offered_load())); + break; + case LoadParams::kPareto: + random_dist.reset( + new ParetoDist(load.pareto().interarrival_base() * num_threads, + load.pareto().alpha())); + break; + default: + GPR_ASSERT(false); } // Set closed_loop_ based on whether or not random_dist is set -- cgit v1.2.3 From 575b4200a72dfdb081fb8c9063cad8d94841dd16 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 10 Nov 2015 20:56:15 +0000 Subject: Small fixes --- src/core/transport/chttp2/hpack_table.c | 3 +-- src/core/transport/chttp2/hpack_table.h | 2 -- test/core/end2end/fixtures/proxy.c | 2 -- test/core/transport/chttp2/hpack_parser_test.c | 3 ++- 4 files changed, 3 insertions(+), 7 deletions(-) (limited to 'src/core/transport/chttp2') diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index fabc950872..0b034b72a4 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -324,10 +324,9 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { } /* copy the finalized entry in */ - tbl->ents[tbl->last_ent] = GRPC_MDELEM_REF(md); + tbl->ents[(tbl->first_ent + tbl->num_ents) % tbl->cap_entries] = GRPC_MDELEM_REF(md); /* update accounting values */ - tbl->last_ent = ((tbl->last_ent + 1) % tbl->cap_entries); tbl->num_ents++; tbl->mem_used += (gpr_uint32)elem_bytes; return 1; diff --git a/src/core/transport/chttp2/hpack_table.h b/src/core/transport/chttp2/hpack_table.h index 6d506de8a5..e03b8c19b3 100644 --- a/src/core/transport/chttp2/hpack_table.h +++ b/src/core/transport/chttp2/hpack_table.h @@ -62,8 +62,6 @@ typedef struct { grpc_mdctx *mdctx; /* the first used entry in ents */ gpr_uint32 first_ent; - /* the last used entry in ents */ - gpr_uint32 last_ent; /* how many entries are in the table */ gpr_uint32 num_ents; /* the amount of memory used by the table, according to the hpack algorithm */ diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c index 1090ad667d..b793358653 100644 --- a/test/core/end2end/fixtures/proxy.c +++ b/test/core/end2end/fixtures/proxy.c @@ -146,7 +146,6 @@ void grpc_end2end_proxy_destroy(grpc_end2end_proxy *proxy) { } static void unrefpc(proxy_call *pc, const char *reason) { - gpr_log(GPR_DEBUG, "PROXY UNREF %s", reason); if (gpr_unref(&pc->refs)) { grpc_call_destroy(pc->c2p); grpc_call_destroy(pc->p2s); @@ -159,7 +158,6 @@ static void unrefpc(proxy_call *pc, const char *reason) { } static void refpc(proxy_call *pc, const char *reason) { - gpr_log(GPR_DEBUG, "PROXY REF %s", reason); gpr_ref(&pc->refs); } diff --git a/test/core/transport/chttp2/hpack_parser_test.c b/test/core/transport/chttp2/hpack_parser_test.c index 3a313375a4..e4cabeae3b 100644 --- a/test/core/transport/chttp2/hpack_parser_test.c +++ b/test/core/transport/chttp2/hpack_parser_test.c @@ -151,7 +151,8 @@ static void test_vectors(grpc_slice_split_mode mode) { grpc_chttp2_hpack_parser_destroy(&parser); grpc_chttp2_hpack_parser_init(&parser, mdctx); - parser.table.max_bytes = 256; +grpc_chttp2_hptbl_set_max_bytes(&parser.table, 256); +grpc_chttp2_hptbl_set_current_table_size(&parser.table, 256); /* D.5.1 */ test_vector(&parser, mode, "4803 3330 3258 0770 7269 7661 7465 611d" -- cgit v1.2.3 From 82e249b8165dbe2ddb6d76bf938a677d85341a8f Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Wed, 11 Nov 2015 01:14:39 +0000 Subject: Small fixes --- src/core/transport/chttp2/hpack_table.c | 11 ++++++----- test/core/end2end/fixtures/proxy.c | 4 +--- test/core/transport/chttp2/hpack_parser_test.c | 7 ++++--- test/core/transport/chttp2/hpack_table_test.c | 27 ++++++++++++++++---------- 4 files changed, 28 insertions(+), 21 deletions(-) (limited to 'src/core/transport/chttp2') diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c index 0b034b72a4..f2362b056c 100644 --- a/src/core/transport/chttp2/hpack_table.c +++ b/src/core/transport/chttp2/hpack_table.c @@ -294,10 +294,10 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD; if (tbl->current_table_bytes > tbl->max_bytes) { - gpr_log( - GPR_ERROR, - "HPACK max table size reduced to %d but not reflected by hpack stream", - tbl->max_bytes); + gpr_log(GPR_ERROR, + "HPACK max table size reduced to %d but not reflected by hpack " + "stream (still at %d)", + tbl->max_bytes, tbl->current_table_bytes); return 0; } @@ -324,7 +324,8 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) { } /* copy the finalized entry in */ - tbl->ents[(tbl->first_ent + tbl->num_ents) % tbl->cap_entries] = GRPC_MDELEM_REF(md); + tbl->ents[(tbl->first_ent + tbl->num_ents) % tbl->cap_entries] = + GRPC_MDELEM_REF(md); /* update accounting values */ tbl->num_ents++; diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c index b793358653..434e75dd15 100644 --- a/test/core/end2end/fixtures/proxy.c +++ b/test/core/end2end/fixtures/proxy.c @@ -157,9 +157,7 @@ static void unrefpc(proxy_call *pc, const char *reason) { } } -static void refpc(proxy_call *pc, const char *reason) { - gpr_ref(&pc->refs); -} +static void refpc(proxy_call *pc, const char *reason) { gpr_ref(&pc->refs); } static void on_c2p_sent_initial_metadata(void *arg, int success) { proxy_call *pc = arg; diff --git a/test/core/transport/chttp2/hpack_parser_test.c b/test/core/transport/chttp2/hpack_parser_test.c index e4cabeae3b..c6b35fba79 100644 --- a/test/core/transport/chttp2/hpack_parser_test.c +++ b/test/core/transport/chttp2/hpack_parser_test.c @@ -151,8 +151,8 @@ static void test_vectors(grpc_slice_split_mode mode) { grpc_chttp2_hpack_parser_destroy(&parser); grpc_chttp2_hpack_parser_init(&parser, mdctx); -grpc_chttp2_hptbl_set_max_bytes(&parser.table, 256); -grpc_chttp2_hptbl_set_current_table_size(&parser.table, 256); + grpc_chttp2_hptbl_set_max_bytes(&parser.table, 256); + grpc_chttp2_hptbl_set_current_table_size(&parser.table, 256); /* D.5.1 */ test_vector(&parser, mode, "4803 3330 3258 0770 7269 7661 7465 611d" @@ -185,7 +185,8 @@ grpc_chttp2_hptbl_set_current_table_size(&parser.table, 256); grpc_chttp2_hpack_parser_destroy(&parser); grpc_chttp2_hpack_parser_init(&parser, mdctx); - parser.table.max_bytes = 256; + grpc_chttp2_hptbl_set_max_bytes(&parser.table, 256); + grpc_chttp2_hptbl_set_current_table_size(&parser.table, 256); /* D.6.1 */ test_vector(&parser, mode, "4882 6402 5885 aec3 771a 4b61 96d0 7abe" diff --git a/test/core/transport/chttp2/hpack_table_test.c b/test/core/transport/chttp2/hpack_table_test.c index 5bdeeafb67..5eb52d6d9a 100644 --- a/test/core/transport/chttp2/hpack_table_test.c +++ b/test/core/transport/chttp2/hpack_table_test.c @@ -143,10 +143,12 @@ static void test_many_additions(void) { grpc_chttp2_hptbl_init(&tbl, mdctx); for (i = 0; i < 1000000; i++) { + grpc_mdelem *elem; gpr_asprintf(&key, "K:%d", i); gpr_asprintf(&value, "VALUE:%d", i); - GPR_ASSERT(grpc_chttp2_hptbl_add( - &tbl, grpc_mdelem_from_strings(mdctx, key, value))); + elem = grpc_mdelem_from_strings(mdctx, key, value); + GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, elem)); + GRPC_MDELEM_UNREF(elem); assert_index(&tbl, 1 + GRPC_CHTTP2_LAST_STATIC_ENTRY, key, value); gpr_free(key); gpr_free(value); @@ -177,18 +179,22 @@ static void test_find(void) { gpr_uint32 i; char buffer[32]; grpc_mdctx *mdctx; + grpc_mdelem *elem; grpc_chttp2_hptbl_find_result r; LOG_TEST("test_find"); mdctx = grpc_mdctx_create(); grpc_chttp2_hptbl_init(&tbl, mdctx); - GPR_ASSERT(grpc_chttp2_hptbl_add( - &tbl, grpc_mdelem_from_strings(mdctx, "abc", "xyz"))); - GPR_ASSERT(grpc_chttp2_hptbl_add( - &tbl, grpc_mdelem_from_strings(mdctx, "abc", "123"))); - GPR_ASSERT( - grpc_chttp2_hptbl_add(&tbl, grpc_mdelem_from_strings(mdctx, "x", "1"))); + elem = grpc_mdelem_from_strings(mdctx, "abc", "xyz"); + GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, elem)); + GRPC_MDELEM_UNREF(elem); + elem = grpc_mdelem_from_strings(mdctx, "abc", "123"); + GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, elem)); + GRPC_MDELEM_UNREF(elem); + elem = grpc_mdelem_from_strings(mdctx, "x", "1"); + GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, elem)); + GRPC_MDELEM_UNREF(elem); r = find_simple(&tbl, "abc", "123"); GPR_ASSERT(r.index == 2 + GRPC_CHTTP2_LAST_STATIC_ENTRY); @@ -237,8 +243,9 @@ static void test_find(void) { /* overflow the string buffer, check find still works */ for (i = 0; i < 10000; i++) { gpr_ltoa(i, buffer); - GPR_ASSERT(grpc_chttp2_hptbl_add( - &tbl, grpc_mdelem_from_strings(mdctx, "test", buffer))); + elem = grpc_mdelem_from_strings(mdctx, "test", buffer); + GPR_ASSERT(grpc_chttp2_hptbl_add(&tbl, elem)); + GRPC_MDELEM_UNREF(elem); } r = find_simple(&tbl, "abc", "123"); -- cgit v1.2.3 From 2a2a6ed1cadb9aab830b3773ad324f66ff9c7578 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Wed, 18 Nov 2015 15:52:46 -0800 Subject: Support rebuilding table --- include/grpc/grpc.h | 1 + src/core/transport/chttp2/hpack_encoder.c | 18 ++++++++++++++++-- tools/run_tests/run_tests.py | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src/core/transport/chttp2') diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h index a8abd1ad1b..f07f584ef2 100644 --- a/include/grpc/grpc.h +++ b/include/grpc/grpc.h @@ -130,6 +130,7 @@ typedef struct { /** How much memory to use for hpack decoding */ #define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \ "grpc.http2.hpack_table_size.decoder" +/** How much memory to use for hpack encoding */ #define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \ "grpc.http2.hpack_table_size.encoder" /** Default authority to pass if none specified on call construction */ diff --git a/src/core/transport/chttp2/hpack_encoder.c b/src/core/transport/chttp2/hpack_encoder.c index f89159bad1..758babc3d0 100644 --- a/src/core/transport/chttp2/hpack_encoder.c +++ b/src/core/transport/chttp2/hpack_encoder.c @@ -474,7 +474,8 @@ void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor *c, c->mdctx = ctx; c->timeout_key_str = grpc_mdstr_from_string(ctx, "grpc-timeout"); c->max_table_size = GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE; - c->cap_table_elems = c->max_table_elems = elems_for_bytes(c->max_table_size); + c->cap_table_elems = elems_for_bytes(c->max_table_size); + c->max_table_elems = c->cap_table_elems; c->max_usable_size = GRPC_CHTTP2_HPACKC_INITIAL_TABLE_SIZE; c->table_elem_size = gpr_malloc(sizeof(*c->table_elem_size) * c->cap_table_elems); @@ -500,7 +501,20 @@ void grpc_chttp2_hpack_compressor_set_max_usable_size( } static void rebuild_elems(grpc_chttp2_hpack_compressor *c, gpr_uint32 new_cap) { + gpr_uint16 *table_elem_size = gpr_malloc(sizeof(*table_elem_size) * new_cap); + gpr_uint32 i; + memset(table_elem_size, 0, sizeof(*table_elem_size) * new_cap); + GPR_ASSERT(c->table_elems <= new_cap); + + for (i = 0; i < c->table_elems; i++) { + gpr_uint32 ofs = c->tail_remote_index + i + 1; + table_elem_size[ofs % new_cap] = c->table_elem_size[ofs % c->cap_table_elems]; + } + + c->cap_table_elems = new_cap; + gpr_free(c->table_elem_size); + c->table_elem_size = table_elem_size; } void grpc_chttp2_hpack_compressor_set_max_table_size( @@ -517,7 +531,7 @@ void grpc_chttp2_hpack_compressor_set_max_table_size( if (c->max_table_elems > c->cap_table_elems) { rebuild_elems(c, GPR_MAX(c->max_table_elems, 2 * c->cap_table_elems)); } else if (c->max_table_elems < c->cap_table_elems / 3) { - gpr_uint32 new_cap = GPR_MIN(c->max_table_elems, 16); + gpr_uint32 new_cap = GPR_MAX(c->max_table_elems, 16); if (new_cap != c->cap_table_elems) { rebuild_elems(c, new_cap); } diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index ab2b71b80e..4a189f1433 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -485,10 +485,10 @@ _CONFIGS = { 'msan': SimpleConfig('msan', timeout_multiplier=1.5), 'ubsan': SimpleConfig('ubsan'), 'asan': SimpleConfig('asan', timeout_multiplier=1.5, environ={ - 'ASAN_OPTIONS': 'detect_leaks=1:color=always:suppressions=tools/tsan_suppressions.txt', + 'ASAN_OPTIONS': 'detect_leaks=1:color=always', 'LSAN_OPTIONS': 'report_objects=1'}), 'asan-noleaks': SimpleConfig('asan', environ={ - 'ASAN_OPTIONS': 'detect_leaks=0:color=always:suppressions=tools/tsan_suppressions.txt'}), + 'ASAN_OPTIONS': 'detect_leaks=0:color=always'}), 'gcov': SimpleConfig('gcov'), 'memcheck': ValgrindConfig('valgrind', 'memcheck', ['--leak-check=full']), 'helgrind': ValgrindConfig('dbg', 'helgrind') -- cgit v1.2.3