diff options
Diffstat (limited to 'test/core/support/string_test.c')
-rw-r--r-- | test/core/support/string_test.c | 377 |
1 files changed, 180 insertions, 197 deletions
diff --git a/test/core/support/string_test.c b/test/core/support/string_test.c index faf4d01a11..f62cbe3435 100644 --- a/test/core/support/string_test.c +++ b/test/core/support/string_test.c @@ -45,273 +45,256 @@ #define LOG_TEST_NAME(x) gpr_log(GPR_INFO, "%s", x) -static void -test_strdup (void) -{ +static void test_strdup(void) { static const char *src1 = "hello world"; char *dst1; - LOG_TEST_NAME ("test_strdup"); + LOG_TEST_NAME("test_strdup"); - dst1 = gpr_strdup (src1); - GPR_ASSERT (0 == strcmp (src1, dst1)); - gpr_free (dst1); + dst1 = gpr_strdup(src1); + GPR_ASSERT(0 == strcmp(src1, dst1)); + gpr_free(dst1); - GPR_ASSERT (NULL == gpr_strdup (NULL)); + GPR_ASSERT(NULL == gpr_strdup(NULL)); } -static void -expect_dump (const char *buf, size_t len, gpr_uint32 flags, const char *result) -{ - char *got = gpr_dump (buf, len, flags); - GPR_ASSERT (0 == strcmp (got, result)); - gpr_free (got); +static void expect_dump(const char *buf, size_t len, gpr_uint32 flags, + const char *result) { + char *got = gpr_dump(buf, len, flags); + GPR_ASSERT(0 == strcmp(got, result)); + gpr_free(got); } -static void -test_dump (void) -{ - LOG_TEST_NAME ("test_dump"); - expect_dump ("\x01", 1, GPR_DUMP_HEX, "01"); - expect_dump ("\x01", 1, GPR_DUMP_HEX | GPR_DUMP_ASCII, "01 '.'"); - expect_dump ("\x01\x02", 2, GPR_DUMP_HEX, "01 02"); - expect_dump ("\x01\x23\x45\x67\x89\xab\xcd\xef", 8, GPR_DUMP_HEX, "01 23 45 67 89 ab cd ef"); - expect_dump ("ab", 2, GPR_DUMP_HEX | GPR_DUMP_ASCII, "61 62 'ab'"); +static void test_dump(void) { + LOG_TEST_NAME("test_dump"); + expect_dump("\x01", 1, GPR_DUMP_HEX, "01"); + expect_dump("\x01", 1, GPR_DUMP_HEX | GPR_DUMP_ASCII, "01 '.'"); + expect_dump("\x01\x02", 2, GPR_DUMP_HEX, "01 02"); + expect_dump("\x01\x23\x45\x67\x89\xab\xcd\xef", 8, GPR_DUMP_HEX, + "01 23 45 67 89 ab cd ef"); + expect_dump("ab", 2, GPR_DUMP_HEX | GPR_DUMP_ASCII, "61 62 'ab'"); } -static void -expect_slice_dump (gpr_slice slice, gpr_uint32 flags, const char *result) -{ - char *got = gpr_dump_slice (slice, flags); - GPR_ASSERT (0 == strcmp (got, result)); - gpr_free (got); - gpr_slice_unref (slice); +static void expect_slice_dump(gpr_slice slice, gpr_uint32 flags, + const char *result) { + char *got = gpr_dump_slice(slice, flags); + GPR_ASSERT(0 == strcmp(got, result)); + gpr_free(got); + gpr_slice_unref(slice); } -static void -test_dump_slice (void) -{ +static void test_dump_slice(void) { static const char *text = "HELLO WORLD!"; - static const char *long_text = "It was a bright cold day in April, and the clocks were striking " "thirteen. Winston Smith, his chin nuzzled into his breast in an effort " "to escape the vile wind, slipped quickly through the glass doors of " "Victory Mansions, though not quickly enough to prevent a swirl of " "gritty dust from entering along with him."; - - LOG_TEST_NAME ("test_dump_slice"); - - expect_slice_dump (gpr_slice_from_copied_string (text), GPR_DUMP_ASCII, text); - expect_slice_dump (gpr_slice_from_copied_string (long_text), GPR_DUMP_ASCII, long_text); - expect_slice_dump (gpr_slice_from_copied_buffer ("\x01", 1), GPR_DUMP_HEX, "01"); - expect_slice_dump (gpr_slice_from_copied_buffer ("\x01", 1), GPR_DUMP_HEX | GPR_DUMP_ASCII, "01 '.'"); + static const char *long_text = + "It was a bright cold day in April, and the clocks were striking " + "thirteen. Winston Smith, his chin nuzzled into his breast in an effort " + "to escape the vile wind, slipped quickly through the glass doors of " + "Victory Mansions, though not quickly enough to prevent a swirl of " + "gritty dust from entering along with him."; + + LOG_TEST_NAME("test_dump_slice"); + + expect_slice_dump(gpr_slice_from_copied_string(text), GPR_DUMP_ASCII, text); + expect_slice_dump(gpr_slice_from_copied_string(long_text), GPR_DUMP_ASCII, + long_text); + expect_slice_dump(gpr_slice_from_copied_buffer("\x01", 1), GPR_DUMP_HEX, + "01"); + expect_slice_dump(gpr_slice_from_copied_buffer("\x01", 1), + GPR_DUMP_HEX | GPR_DUMP_ASCII, "01 '.'"); } -static void -test_pu32_fail (const char *s) -{ +static void test_pu32_fail(const char *s) { gpr_uint32 out; - GPR_ASSERT (!gpr_parse_bytes_to_uint32 (s, strlen (s), &out)); + GPR_ASSERT(!gpr_parse_bytes_to_uint32(s, strlen(s), &out)); } -static void -test_pu32_succeed (const char *s, gpr_uint32 want) -{ +static void test_pu32_succeed(const char *s, gpr_uint32 want) { gpr_uint32 out; - GPR_ASSERT (gpr_parse_bytes_to_uint32 (s, strlen (s), &out)); - GPR_ASSERT (out == want); + GPR_ASSERT(gpr_parse_bytes_to_uint32(s, strlen(s), &out)); + GPR_ASSERT(out == want); } -static void -test_parse_uint32 (void) -{ - LOG_TEST_NAME ("test_parse_uint32"); - - test_pu32_fail ("-1"); - test_pu32_fail ("a"); - test_pu32_fail (""); - test_pu32_succeed ("0", 0); - test_pu32_succeed ("1", 1); - test_pu32_succeed ("2", 2); - test_pu32_succeed ("3", 3); - test_pu32_succeed ("4", 4); - test_pu32_succeed ("5", 5); - test_pu32_succeed ("6", 6); - test_pu32_succeed ("7", 7); - test_pu32_succeed ("8", 8); - test_pu32_succeed ("9", 9); - test_pu32_succeed ("10", 10); - test_pu32_succeed ("11", 11); - test_pu32_succeed ("12", 12); - test_pu32_succeed ("13", 13); - test_pu32_succeed ("14", 14); - test_pu32_succeed ("15", 15); - test_pu32_succeed ("16", 16); - test_pu32_succeed ("17", 17); - test_pu32_succeed ("18", 18); - test_pu32_succeed ("19", 19); - test_pu32_succeed ("1234567890", 1234567890); - test_pu32_succeed ("4294967295", 4294967295u); - test_pu32_fail ("4294967296"); - test_pu32_fail ("4294967297"); - test_pu32_fail ("4294967298"); - test_pu32_fail ("4294967299"); +static void test_parse_uint32(void) { + LOG_TEST_NAME("test_parse_uint32"); + + test_pu32_fail("-1"); + test_pu32_fail("a"); + test_pu32_fail(""); + test_pu32_succeed("0", 0); + test_pu32_succeed("1", 1); + test_pu32_succeed("2", 2); + test_pu32_succeed("3", 3); + test_pu32_succeed("4", 4); + test_pu32_succeed("5", 5); + test_pu32_succeed("6", 6); + test_pu32_succeed("7", 7); + test_pu32_succeed("8", 8); + test_pu32_succeed("9", 9); + test_pu32_succeed("10", 10); + test_pu32_succeed("11", 11); + test_pu32_succeed("12", 12); + test_pu32_succeed("13", 13); + test_pu32_succeed("14", 14); + test_pu32_succeed("15", 15); + test_pu32_succeed("16", 16); + test_pu32_succeed("17", 17); + test_pu32_succeed("18", 18); + test_pu32_succeed("19", 19); + test_pu32_succeed("1234567890", 1234567890); + test_pu32_succeed("4294967295", 4294967295u); + test_pu32_fail("4294967296"); + test_pu32_fail("4294967297"); + test_pu32_fail("4294967298"); + test_pu32_fail("4294967299"); } -static void -test_asprintf (void) -{ +static void test_asprintf(void) { char *buf; int i, j; - LOG_TEST_NAME ("test_asprintf"); + LOG_TEST_NAME("test_asprintf"); /* Print an empty string. */ - GPR_ASSERT (gpr_asprintf (&buf, "") == 0); - GPR_ASSERT (buf[0] == '\0'); - gpr_free (buf); + GPR_ASSERT(gpr_asprintf(&buf, "") == 0); + GPR_ASSERT(buf[0] == '\0'); + gpr_free(buf); /* Print strings of various lengths. */ - for (i = 1; i < 100; i++) - { - GPR_ASSERT (gpr_asprintf (&buf, "%0*d", i, 1) == i); - - /* The buffer should resemble "000001\0". */ - for (j = 0; j < i - 2; j++) - { - GPR_ASSERT (buf[j] == '0'); - } - GPR_ASSERT (buf[i - 1] == '1'); - GPR_ASSERT (buf[i] == '\0'); - gpr_free (buf); + for (i = 1; i < 100; i++) { + GPR_ASSERT(gpr_asprintf(&buf, "%0*d", i, 1) == i); + + /* The buffer should resemble "000001\0". */ + for (j = 0; j < i - 2; j++) { + GPR_ASSERT(buf[j] == '0'); } + GPR_ASSERT(buf[i - 1] == '1'); + GPR_ASSERT(buf[i] == '\0'); + gpr_free(buf); + } } -static void -test_strjoin (void) -{ - const char *parts[4] = { "one", "two", "three", "four" }; +static void test_strjoin(void) { + const char *parts[4] = {"one", "two", "three", "four"}; size_t joined_len; char *joined; - LOG_TEST_NAME ("test_strjoin"); + LOG_TEST_NAME("test_strjoin"); - joined = gpr_strjoin (parts, 4, &joined_len); - GPR_ASSERT (0 == strcmp ("onetwothreefour", joined)); - gpr_free (joined); + joined = gpr_strjoin(parts, 4, &joined_len); + GPR_ASSERT(0 == strcmp("onetwothreefour", joined)); + gpr_free(joined); - joined = gpr_strjoin (parts, 0, &joined_len); - GPR_ASSERT (0 == strcmp ("", joined)); - gpr_free (joined); + joined = gpr_strjoin(parts, 0, &joined_len); + GPR_ASSERT(0 == strcmp("", joined)); + gpr_free(joined); - joined = gpr_strjoin (parts, 1, &joined_len); - GPR_ASSERT (0 == strcmp ("one", joined)); - gpr_free (joined); + joined = gpr_strjoin(parts, 1, &joined_len); + GPR_ASSERT(0 == strcmp("one", joined)); + gpr_free(joined); } -static void -test_strjoin_sep (void) -{ - const char *parts[4] = { "one", "two", "three", "four" }; +static void test_strjoin_sep(void) { + const char *parts[4] = {"one", "two", "three", "four"}; size_t joined_len; char *joined; - LOG_TEST_NAME ("test_strjoin_sep"); + LOG_TEST_NAME("test_strjoin_sep"); - joined = gpr_strjoin_sep (parts, 4, ", ", &joined_len); - GPR_ASSERT (0 == strcmp ("one, two, three, four", joined)); - gpr_free (joined); + joined = gpr_strjoin_sep(parts, 4, ", ", &joined_len); + GPR_ASSERT(0 == strcmp("one, two, three, four", joined)); + gpr_free(joined); /* empty separator */ - joined = gpr_strjoin_sep (parts, 4, "", &joined_len); - GPR_ASSERT (0 == strcmp ("onetwothreefour", joined)); - gpr_free (joined); + joined = gpr_strjoin_sep(parts, 4, "", &joined_len); + GPR_ASSERT(0 == strcmp("onetwothreefour", joined)); + gpr_free(joined); /* degenerated case specifying zero input parts */ - joined = gpr_strjoin_sep (parts, 0, ", ", &joined_len); - GPR_ASSERT (0 == strcmp ("", joined)); - gpr_free (joined); + joined = gpr_strjoin_sep(parts, 0, ", ", &joined_len); + GPR_ASSERT(0 == strcmp("", joined)); + gpr_free(joined); /* single part should have no separator */ - joined = gpr_strjoin_sep (parts, 1, ", ", &joined_len); - GPR_ASSERT (0 == strcmp ("one", joined)); - gpr_free (joined); + joined = gpr_strjoin_sep(parts, 1, ", ", &joined_len); + GPR_ASSERT(0 == strcmp("one", joined)); + gpr_free(joined); } -static void -test_strsplit (void) -{ +static void test_strsplit(void) { gpr_slice_buffer *parts; gpr_slice str; - LOG_TEST_NAME ("test_strsplit"); + LOG_TEST_NAME("test_strsplit"); - parts = gpr_malloc (sizeof (gpr_slice_buffer)); - gpr_slice_buffer_init (parts); + parts = gpr_malloc(sizeof(gpr_slice_buffer)); + gpr_slice_buffer_init(parts); - str = gpr_slice_from_copied_string ("one, two, three, four"); - gpr_slice_split (str, ", ", parts); - GPR_ASSERT (4 == parts->count); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[0], "one")); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[1], "two")); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[2], "three")); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[3], "four")); - gpr_slice_buffer_reset_and_unref (parts); - gpr_slice_unref (str); + str = gpr_slice_from_copied_string("one, two, three, four"); + gpr_slice_split(str, ", ", parts); + GPR_ASSERT(4 == parts->count); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[0], "one")); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[1], "two")); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[2], "three")); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[3], "four")); + gpr_slice_buffer_reset_and_unref(parts); + gpr_slice_unref(str); /* separator not present in string */ - str = gpr_slice_from_copied_string ("one two three four"); - gpr_slice_split (str, ", ", parts); - GPR_ASSERT (1 == parts->count); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[0], "one two three four")); - gpr_slice_buffer_reset_and_unref (parts); - gpr_slice_unref (str); + str = gpr_slice_from_copied_string("one two three four"); + gpr_slice_split(str, ", ", parts); + GPR_ASSERT(1 == parts->count); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[0], "one two three four")); + gpr_slice_buffer_reset_and_unref(parts); + gpr_slice_unref(str); /* separator at the end */ - str = gpr_slice_from_copied_string ("foo,"); - gpr_slice_split (str, ",", parts); - GPR_ASSERT (2 == parts->count); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[0], "foo")); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[1], "")); - gpr_slice_buffer_reset_and_unref (parts); - gpr_slice_unref (str); + str = gpr_slice_from_copied_string("foo,"); + gpr_slice_split(str, ",", parts); + GPR_ASSERT(2 == parts->count); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[0], "foo")); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[1], "")); + gpr_slice_buffer_reset_and_unref(parts); + gpr_slice_unref(str); /* separator at the beginning */ - str = gpr_slice_from_copied_string (",foo"); - gpr_slice_split (str, ",", parts); - GPR_ASSERT (2 == parts->count); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[0], "")); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[1], "foo")); - gpr_slice_buffer_reset_and_unref (parts); - gpr_slice_unref (str); + str = gpr_slice_from_copied_string(",foo"); + gpr_slice_split(str, ",", parts); + GPR_ASSERT(2 == parts->count); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[0], "")); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[1], "foo")); + gpr_slice_buffer_reset_and_unref(parts); + gpr_slice_unref(str); /* standalone separator */ - str = gpr_slice_from_copied_string (","); - gpr_slice_split (str, ",", parts); - GPR_ASSERT (2 == parts->count); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[0], "")); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[1], "")); - gpr_slice_buffer_reset_and_unref (parts); - gpr_slice_unref (str); + str = gpr_slice_from_copied_string(","); + gpr_slice_split(str, ",", parts); + GPR_ASSERT(2 == parts->count); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[0], "")); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[1], "")); + gpr_slice_buffer_reset_and_unref(parts); + gpr_slice_unref(str); /* empty input */ - str = gpr_slice_from_copied_string (""); - gpr_slice_split (str, ", ", parts); - GPR_ASSERT (1 == parts->count); - GPR_ASSERT (0 == gpr_slice_str_cmp (parts->slices[0], "")); - gpr_slice_buffer_reset_and_unref (parts); - gpr_slice_unref (str); - - gpr_slice_buffer_destroy (parts); - gpr_free (parts); + str = gpr_slice_from_copied_string(""); + gpr_slice_split(str, ", ", parts); + GPR_ASSERT(1 == parts->count); + GPR_ASSERT(0 == gpr_slice_str_cmp(parts->slices[0], "")); + gpr_slice_buffer_reset_and_unref(parts); + gpr_slice_unref(str); + + gpr_slice_buffer_destroy(parts); + gpr_free(parts); } -int -main (int argc, char **argv) -{ - grpc_test_init (argc, argv); - test_strdup (); - test_dump (); - test_dump_slice (); - test_parse_uint32 (); - test_asprintf (); - test_strjoin (); - test_strjoin_sep (); - test_strsplit (); +int main(int argc, char **argv) { + grpc_test_init(argc, argv); + test_strdup(); + test_dump(); + test_dump_slice(); + test_parse_uint32(); + test_asprintf(); + test_strjoin(); + test_strjoin_sep(); + test_strsplit(); return 0; } |