Fix HPACK encoder test

pull/4270/head
Craig Tiller 9 years ago
parent 025bb9fa40
commit e62bf9844c
  1. 10
      src/core/transport/metadata.c
  2. 6
      src/core/transport/metadata.h
  3. 2
      test/core/transport/chttp2/hpack_encoder_test.c

@ -132,6 +132,7 @@ typedef struct mdtab_shard {
/* hash seed: decided at initialization time */
static gpr_uint32 g_hash_seed;
static int g_forced_hash_seed = 0;
/* linearly probed hash tables for static element lookup */
static grpc_mdstr *g_static_strtab[GRPC_STATIC_MDSTR_COUNT * 2];
@ -144,9 +145,16 @@ static mdtab_shard g_mdtab_shard[MDTAB_SHARD_COUNT];
static void gc_mdtab(mdtab_shard *shard);
void grpc_test_only_set_metadata_hash_seed(gpr_uint32 seed) {
g_hash_seed = seed;
g_forced_hash_seed = 1;
}
void grpc_mdctx_global_init(void) {
size_t i, j;
g_hash_seed = (gpr_uint32)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
if (!g_forced_hash_seed) {
g_hash_seed = (gpr_uint32)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
}
g_static_strtab_maxprobe = 0;
g_static_mdtab_maxprobe = 0;
/* build static tables */

@ -86,11 +86,7 @@ struct grpc_mdelem {
/* there is a private part to this in metadata.c */
};
/* Test only accessors to internal state - only for testing this code - do not
rely on it outside of metadata_test.c */
size_t grpc_mdctx_get_mdtab_capacity_test_only(void);
size_t grpc_mdctx_get_mdtab_count_test_only(void);
size_t grpc_mdctx_get_mdtab_free_test_only(void);
void grpc_test_only_set_metadata_hash_seed(gpr_uint32 seed);
/* Constructors for grpc_mdstr instances; take a variety of data types that
clients may have handy */

@ -37,6 +37,7 @@
#include "src/core/support/string.h"
#include "src/core/transport/chttp2/hpack_parser.h"
#include "src/core/transport/metadata.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
@ -187,6 +188,7 @@ static void run_test(void (*test)(), const char *name) {
int main(int argc, char **argv) {
size_t i;
grpc_test_only_set_metadata_hash_seed(0);
grpc_test_init(argc, argv);
grpc_init();
TEST(test_basic_headers);

Loading…
Cancel
Save