aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/transport/metadata_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/core/transport/metadata_test.c')
-rw-r--r--test/core/transport/metadata_test.c338
1 files changed, 182 insertions, 156 deletions
diff --git a/test/core/transport/metadata_test.c b/test/core/transport/metadata_test.c
index 1861442bb1..33c2ddf091 100644
--- a/test/core/transport/metadata_test.c
+++ b/test/core/transport/metadata_test.c
@@ -47,237 +47,263 @@
/* a large number */
#define MANY 10000
-static void test_no_op(void) {
+static void
+test_no_op (void)
+{
grpc_mdctx *ctx;
- LOG_TEST("test_no_op");
+ LOG_TEST ("test_no_op");
- ctx = grpc_mdctx_create();
- grpc_mdctx_unref(ctx);
+ ctx = grpc_mdctx_create ();
+ grpc_mdctx_unref (ctx);
}
-static void test_create_string(void) {
+static void
+test_create_string (void)
+{
grpc_mdctx *ctx;
grpc_mdstr *s1, *s2, *s3;
- LOG_TEST("test_create_string");
-
- ctx = grpc_mdctx_create();
- s1 = grpc_mdstr_from_string(ctx, "hello", 0);
- s2 = grpc_mdstr_from_string(ctx, "hello", 0);
- s3 = grpc_mdstr_from_string(ctx, "very much not hello", 0);
- GPR_ASSERT(s1 == s2);
- GPR_ASSERT(s3 != s1);
- GPR_ASSERT(gpr_slice_str_cmp(s1->slice, "hello") == 0);
- GPR_ASSERT(gpr_slice_str_cmp(s3->slice, "very much not hello") == 0);
- GRPC_MDSTR_UNREF(s1);
- GRPC_MDSTR_UNREF(s2);
- grpc_mdctx_unref(ctx);
- GRPC_MDSTR_UNREF(s3);
+ LOG_TEST ("test_create_string");
+
+ ctx = grpc_mdctx_create ();
+ s1 = grpc_mdstr_from_string (ctx, "hello", 0);
+ s2 = grpc_mdstr_from_string (ctx, "hello", 0);
+ s3 = grpc_mdstr_from_string (ctx, "very much not hello", 0);
+ GPR_ASSERT (s1 == s2);
+ GPR_ASSERT (s3 != s1);
+ GPR_ASSERT (gpr_slice_str_cmp (s1->slice, "hello") == 0);
+ GPR_ASSERT (gpr_slice_str_cmp (s3->slice, "very much not hello") == 0);
+ GRPC_MDSTR_UNREF (s1);
+ GRPC_MDSTR_UNREF (s2);
+ grpc_mdctx_unref (ctx);
+ GRPC_MDSTR_UNREF (s3);
}
-static void test_create_metadata(void) {
+static void
+test_create_metadata (void)
+{
grpc_mdctx *ctx;
grpc_mdelem *m1, *m2, *m3;
- LOG_TEST("test_create_metadata");
-
- ctx = grpc_mdctx_create();
- m1 = grpc_mdelem_from_strings(ctx, "a", "b");
- m2 = grpc_mdelem_from_strings(ctx, "a", "b");
- m3 = grpc_mdelem_from_strings(ctx, "a", "c");
- GPR_ASSERT(m1 == m2);
- GPR_ASSERT(m3 != m1);
- GPR_ASSERT(m3->key == m1->key);
- GPR_ASSERT(m3->value != m1->value);
- GPR_ASSERT(gpr_slice_str_cmp(m1->key->slice, "a") == 0);
- GPR_ASSERT(gpr_slice_str_cmp(m1->value->slice, "b") == 0);
- GPR_ASSERT(gpr_slice_str_cmp(m3->value->slice, "c") == 0);
- GRPC_MDELEM_UNREF(m1);
- GRPC_MDELEM_UNREF(m2);
- GRPC_MDELEM_UNREF(m3);
- grpc_mdctx_unref(ctx);
+ LOG_TEST ("test_create_metadata");
+
+ ctx = grpc_mdctx_create ();
+ m1 = grpc_mdelem_from_strings (ctx, "a", "b");
+ m2 = grpc_mdelem_from_strings (ctx, "a", "b");
+ m3 = grpc_mdelem_from_strings (ctx, "a", "c");
+ GPR_ASSERT (m1 == m2);
+ GPR_ASSERT (m3 != m1);
+ GPR_ASSERT (m3->key == m1->key);
+ GPR_ASSERT (m3->value != m1->value);
+ GPR_ASSERT (gpr_slice_str_cmp (m1->key->slice, "a") == 0);
+ GPR_ASSERT (gpr_slice_str_cmp (m1->value->slice, "b") == 0);
+ GPR_ASSERT (gpr_slice_str_cmp (m3->value->slice, "c") == 0);
+ GRPC_MDELEM_UNREF (m1);
+ GRPC_MDELEM_UNREF (m2);
+ GRPC_MDELEM_UNREF (m3);
+ grpc_mdctx_unref (ctx);
}
-static void test_create_many_ephemeral_metadata(void) {
+static void
+test_create_many_ephemeral_metadata (void)
+{
grpc_mdctx *ctx;
char buffer[GPR_LTOA_MIN_BUFSIZE];
long i;
size_t mdtab_capacity_before;
- LOG_TEST("test_create_many_ephemeral_metadata");
+ LOG_TEST ("test_create_many_ephemeral_metadata");
- ctx = grpc_mdctx_create();
- mdtab_capacity_before = grpc_mdctx_get_mdtab_capacity_test_only(ctx);
+ ctx = grpc_mdctx_create ();
+ mdtab_capacity_before = grpc_mdctx_get_mdtab_capacity_test_only (ctx);
/* add, and immediately delete a bunch of different elements */
- for (i = 0; i < MANY; i++) {
- gpr_ltoa(i, buffer);
- GRPC_MDELEM_UNREF(grpc_mdelem_from_strings(ctx, "a", buffer));
- }
+ for (i = 0; i < MANY; i++)
+ {
+ gpr_ltoa (i, buffer);
+ GRPC_MDELEM_UNREF (grpc_mdelem_from_strings (ctx, "a", buffer));
+ }
/* capacity should not grow */
- GPR_ASSERT(mdtab_capacity_before ==
- grpc_mdctx_get_mdtab_capacity_test_only(ctx));
- grpc_mdctx_unref(ctx);
+ GPR_ASSERT (mdtab_capacity_before == grpc_mdctx_get_mdtab_capacity_test_only (ctx));
+ grpc_mdctx_unref (ctx);
}
-static void test_create_many_persistant_metadata(void) {
+static void
+test_create_many_persistant_metadata (void)
+{
grpc_mdctx *ctx;
char buffer[GPR_LTOA_MIN_BUFSIZE];
long i;
- grpc_mdelem **created = gpr_malloc(sizeof(grpc_mdelem *) * MANY);
+ grpc_mdelem **created = gpr_malloc (sizeof (grpc_mdelem *) * MANY);
grpc_mdelem *md;
- LOG_TEST("test_create_many_persistant_metadata");
+ LOG_TEST ("test_create_many_persistant_metadata");
- ctx = grpc_mdctx_create();
+ ctx = grpc_mdctx_create ();
/* add phase */
- for (i = 0; i < MANY; i++) {
- gpr_ltoa(i, buffer);
- created[i] = grpc_mdelem_from_strings(ctx, "a", buffer);
- }
+ for (i = 0; i < MANY; i++)
+ {
+ gpr_ltoa (i, buffer);
+ created[i] = grpc_mdelem_from_strings (ctx, "a", buffer);
+ }
/* verify phase */
- for (i = 0; i < MANY; i++) {
- gpr_ltoa(i, buffer);
- md = grpc_mdelem_from_strings(ctx, "a", buffer);
- GPR_ASSERT(md == created[i]);
- GRPC_MDELEM_UNREF(md);
- }
+ for (i = 0; i < MANY; i++)
+ {
+ gpr_ltoa (i, buffer);
+ md = grpc_mdelem_from_strings (ctx, "a", buffer);
+ GPR_ASSERT (md == created[i]);
+ GRPC_MDELEM_UNREF (md);
+ }
/* cleanup phase */
- for (i = 0; i < MANY; i++) {
- GRPC_MDELEM_UNREF(created[i]);
- }
- grpc_mdctx_unref(ctx);
+ for (i = 0; i < MANY; i++)
+ {
+ GRPC_MDELEM_UNREF (created[i]);
+ }
+ grpc_mdctx_unref (ctx);
- gpr_free(created);
+ gpr_free (created);
}
-static void test_spin_creating_the_same_thing(void) {
+static void
+test_spin_creating_the_same_thing (void)
+{
grpc_mdctx *ctx;
- LOG_TEST("test_spin_creating_the_same_thing");
+ LOG_TEST ("test_spin_creating_the_same_thing");
- ctx = grpc_mdctx_create();
- GPR_ASSERT(grpc_mdctx_get_mdtab_count_test_only(ctx) == 0);
- GPR_ASSERT(grpc_mdctx_get_mdtab_free_test_only(ctx) == 0);
+ ctx = grpc_mdctx_create ();
+ GPR_ASSERT (grpc_mdctx_get_mdtab_count_test_only (ctx) == 0);
+ GPR_ASSERT (grpc_mdctx_get_mdtab_free_test_only (ctx) == 0);
- GRPC_MDELEM_UNREF(grpc_mdelem_from_strings(ctx, "a", "b"));
- GPR_ASSERT(grpc_mdctx_get_mdtab_count_test_only(ctx) == 1);
- GPR_ASSERT(grpc_mdctx_get_mdtab_free_test_only(ctx) == 1);
+ GRPC_MDELEM_UNREF (grpc_mdelem_from_strings (ctx, "a", "b"));
+ GPR_ASSERT (grpc_mdctx_get_mdtab_count_test_only (ctx) == 1);
+ GPR_ASSERT (grpc_mdctx_get_mdtab_free_test_only (ctx) == 1);
- GRPC_MDELEM_UNREF(grpc_mdelem_from_strings(ctx, "a", "b"));
- GPR_ASSERT(grpc_mdctx_get_mdtab_count_test_only(ctx) == 1);
- GPR_ASSERT(grpc_mdctx_get_mdtab_free_test_only(ctx) == 1);
+ GRPC_MDELEM_UNREF (grpc_mdelem_from_strings (ctx, "a", "b"));
+ GPR_ASSERT (grpc_mdctx_get_mdtab_count_test_only (ctx) == 1);
+ GPR_ASSERT (grpc_mdctx_get_mdtab_free_test_only (ctx) == 1);
- GRPC_MDELEM_UNREF(grpc_mdelem_from_strings(ctx, "a", "b"));
- GPR_ASSERT(grpc_mdctx_get_mdtab_count_test_only(ctx) == 1);
- GPR_ASSERT(grpc_mdctx_get_mdtab_free_test_only(ctx) == 1);
+ GRPC_MDELEM_UNREF (grpc_mdelem_from_strings (ctx, "a", "b"));
+ GPR_ASSERT (grpc_mdctx_get_mdtab_count_test_only (ctx) == 1);
+ GPR_ASSERT (grpc_mdctx_get_mdtab_free_test_only (ctx) == 1);
- grpc_mdctx_unref(ctx);
+ grpc_mdctx_unref (ctx);
}
-static void test_things_stick_around(void) {
+static void
+test_things_stick_around (void)
+{
grpc_mdctx *ctx;
size_t i, j;
char *buffer;
size_t nstrs = 1000;
- grpc_mdstr **strs = gpr_malloc(sizeof(grpc_mdstr *) * nstrs);
- size_t *shuf = gpr_malloc(sizeof(size_t) * nstrs);
+ grpc_mdstr **strs = gpr_malloc (sizeof (grpc_mdstr *) * nstrs);
+ size_t *shuf = gpr_malloc (sizeof (size_t) * nstrs);
grpc_mdstr *test;
- LOG_TEST("test_things_stick_around");
-
- ctx = grpc_mdctx_create();
-
- for (i = 0; i < nstrs; i++) {
- gpr_asprintf(&buffer, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%dx", i);
- strs[i] = grpc_mdstr_from_string(ctx, buffer, 0);
- shuf[i] = i;
- gpr_free(buffer);
- }
-
- for (i = 0; i < nstrs; i++) {
- GRPC_MDSTR_REF(strs[i]);
- GRPC_MDSTR_UNREF(strs[i]);
- }
-
- for (i = 0; i < nstrs; i++) {
- size_t p = (size_t)rand() % nstrs;
- size_t q = (size_t)rand() % nstrs;
- size_t temp = shuf[p];
- shuf[p] = shuf[q];
- shuf[q] = temp;
- }
-
- for (i = 0; i < nstrs; i++) {
- GRPC_MDSTR_UNREF(strs[shuf[i]]);
- for (j = i + 1; j < nstrs; j++) {
- gpr_asprintf(&buffer, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%dx", shuf[j]);
- test = grpc_mdstr_from_string(ctx, buffer, 0);
- GPR_ASSERT(test == strs[shuf[j]]);
- GRPC_MDSTR_UNREF(test);
- gpr_free(buffer);
+ LOG_TEST ("test_things_stick_around");
+
+ ctx = grpc_mdctx_create ();
+
+ for (i = 0; i < nstrs; i++)
+ {
+ gpr_asprintf (&buffer, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%dx", i);
+ strs[i] = grpc_mdstr_from_string (ctx, buffer, 0);
+ shuf[i] = i;
+ gpr_free (buffer);
+ }
+
+ for (i = 0; i < nstrs; i++)
+ {
+ GRPC_MDSTR_REF (strs[i]);
+ GRPC_MDSTR_UNREF (strs[i]);
+ }
+
+ for (i = 0; i < nstrs; i++)
+ {
+ size_t p = (size_t) rand () % nstrs;
+ size_t q = (size_t) rand () % nstrs;
+ size_t temp = shuf[p];
+ shuf[p] = shuf[q];
+ shuf[q] = temp;
+ }
+
+ for (i = 0; i < nstrs; i++)
+ {
+ GRPC_MDSTR_UNREF (strs[shuf[i]]);
+ for (j = i + 1; j < nstrs; j++)
+ {
+ gpr_asprintf (&buffer, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%dx", shuf[j]);
+ test = grpc_mdstr_from_string (ctx, buffer, 0);
+ GPR_ASSERT (test == strs[shuf[j]]);
+ GRPC_MDSTR_UNREF (test);
+ gpr_free (buffer);
+ }
}
- }
- grpc_mdctx_unref(ctx);
- gpr_free(strs);
- gpr_free(shuf);
+ grpc_mdctx_unref (ctx);
+ gpr_free (strs);
+ gpr_free (shuf);
}
-static void test_slices_work(void) {
+static void
+test_slices_work (void)
+{
/* ensure no memory leaks when switching representation from mdstr to slice */
grpc_mdctx *ctx;
grpc_mdstr *str;
gpr_slice slice;
- LOG_TEST("test_slices_work");
+ LOG_TEST ("test_slices_work");
- ctx = grpc_mdctx_create();
+ ctx = grpc_mdctx_create ();
- str = grpc_mdstr_from_string(
- ctx, "123456789012345678901234567890123456789012345678901234567890", 0);
- slice = gpr_slice_ref(str->slice);
- GRPC_MDSTR_UNREF(str);
- gpr_slice_unref(slice);
+ str = grpc_mdstr_from_string (ctx, "123456789012345678901234567890123456789012345678901234567890", 0);
+ slice = gpr_slice_ref (str->slice);
+ GRPC_MDSTR_UNREF (str);
+ gpr_slice_unref (slice);
- str = grpc_mdstr_from_string(
- ctx, "123456789012345678901234567890123456789012345678901234567890", 0);
- slice = gpr_slice_ref(str->slice);
- gpr_slice_unref(slice);
- GRPC_MDSTR_UNREF(str);
+ str = grpc_mdstr_from_string (ctx, "123456789012345678901234567890123456789012345678901234567890", 0);
+ slice = gpr_slice_ref (str->slice);
+ gpr_slice_unref (slice);
+ GRPC_MDSTR_UNREF (str);
- grpc_mdctx_unref(ctx);
+ grpc_mdctx_unref (ctx);
}
-static void test_base64_and_huffman_works(void) {
+static void
+test_base64_and_huffman_works (void)
+{
grpc_mdctx *ctx;
grpc_mdstr *str;
gpr_slice slice1;
gpr_slice slice2;
- LOG_TEST("test_base64_and_huffman_works");
+ LOG_TEST ("test_base64_and_huffman_works");
- ctx = grpc_mdctx_create();
- str = grpc_mdstr_from_string(ctx, "abcdefg", 0);
- slice1 = grpc_mdstr_as_base64_encoded_and_huffman_compressed(str);
- slice2 = grpc_chttp2_base64_encode_and_huffman_compress(str->slice);
- GPR_ASSERT(0 == gpr_slice_cmp(slice1, slice2));
+ ctx = grpc_mdctx_create ();
+ str = grpc_mdstr_from_string (ctx, "abcdefg", 0);
+ slice1 = grpc_mdstr_as_base64_encoded_and_huffman_compressed (str);
+ slice2 = grpc_chttp2_base64_encode_and_huffman_compress (str->slice);
+ GPR_ASSERT (0 == gpr_slice_cmp (slice1, slice2));
- gpr_slice_unref(slice2);
- GRPC_MDSTR_UNREF(str);
- grpc_mdctx_unref(ctx);
+ gpr_slice_unref (slice2);
+ GRPC_MDSTR_UNREF (str);
+ grpc_mdctx_unref (ctx);
}
-int main(int argc, char **argv) {
- grpc_test_init(argc, argv);
- test_no_op();
- test_create_string();
- test_create_metadata();
- test_create_many_ephemeral_metadata();
- test_create_many_persistant_metadata();
- test_spin_creating_the_same_thing();
- test_things_stick_around();
- test_slices_work();
- test_base64_and_huffman_works();
+int
+main (int argc, char **argv)
+{
+ grpc_test_init (argc, argv);
+ test_no_op ();
+ test_create_string ();
+ test_create_metadata ();
+ test_create_many_ephemeral_metadata ();
+ test_create_many_persistant_metadata ();
+ test_spin_creating_the_same_thing ();
+ test_things_stick_around ();
+ test_slices_work ();
+ test_base64_and_huffman_works ();
return 0;
}