From: Christian Babeux Date: Tue, 14 Aug 2012 20:33:41 +0000 (-0400) Subject: Fix: Memory leaks in uri_parsing unit tests. X-Git-Tag: v2.1.0-rc1~24 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=3cb37009b5f28ba74db6fd7a7a4da8639aab6f08 Fix: Memory leaks in uri_parsing unit tests. lttng_uri need to be free'd by calling uri_free(). Add: Unit tests for uri comparison (uri_cmp). Signed-off-by: Christian Babeux Signed-off-by: David Goulet --- diff --git a/tests/tools/streaming/unit_tests.c b/tests/tools/streaming/unit_tests.c index 915e7d1ad..d00e34d16 100644 --- a/tests/tools/streaming/unit_tests.c +++ b/tests/tools/streaming/unit_tests.c @@ -42,7 +42,7 @@ int lttng_opt_verbose = 3; /* * Test string URI and if uri_parse works well. */ -int test_uri(void) +void test_uri_parsing(void) { ssize_t size; const char *s_uri1; @@ -68,6 +68,7 @@ int test_uri(void) assert(strlen(uri[1].subdir) == 0); assert(strcmp(uri[1].dst.ipv4, "127.0.0.1") == 0); PRINT_OK(); + uri_free(uri); s_uri1 = "net://localhost:8989:4242/my/test/path"; fprintf(stdout, " [+] URI set to %s ", s_uri1); @@ -87,6 +88,7 @@ int test_uri(void) assert(strcmp(uri[0].subdir, "my/test/path") == 0); assert(strcmp(uri[1].dst.ipv4, "127.0.0.1") == 0); PRINT_OK(); + uri_free(uri); s_uri1 = "net://localhost:8989:4242"; fprintf(stdout, " [+] URI set to %s ", s_uri1); @@ -106,6 +108,7 @@ int test_uri(void) assert(strlen(uri[1].subdir) == 0); assert(strcmp(uri[1].dst.ipv4, "127.0.0.1") == 0); PRINT_OK(); + uri_free(uri); s_uri1 = "net6://localhost:8989"; fprintf(stdout, " [+] URI set to %s ", s_uri1); @@ -125,6 +128,7 @@ int test_uri(void) assert(strlen(uri[1].subdir) == 0); assert(strcmp(uri[0].dst.ipv6, "::1") == 0); PRINT_OK(); + uri_free(uri); s_uri1 = "tcp://42.42.42.42/my/test/path"; fprintf(stdout, " [+] URI set to %s ", s_uri1); @@ -137,6 +141,7 @@ int test_uri(void) assert(strcmp(uri[0].subdir, "my/test/path") == 0); assert(strcmp(uri[0].dst.ipv4, "42.42.42.42") == 0); PRINT_OK(); + uri_free(uri); s_uri1 = "tcp6://[fe80::f66d:4ff:fe53:d220]/my/test/path"; fprintf(stdout, " [+] URI set to %s ", s_uri1); @@ -149,6 +154,7 @@ int test_uri(void) assert(strcmp(uri[0].subdir, "my/test/path") == 0); assert(strcmp(uri[0].dst.ipv6, "fe80::f66d:4ff:fe53:d220") == 0); PRINT_OK(); + uri_free(uri); s_uri1 = "file:///my/test/path"; fprintf(stdout, " [+] URI set to %s ", s_uri1); @@ -158,9 +164,10 @@ int test_uri(void) assert(uri[0].utype == LTTNG_URI_DST); assert(uri[0].stype == 0); assert(uri[0].port == 0); - assert(strlen(uri[1].subdir) == 0); + assert(strlen(uri[0].subdir) == 0); assert(strcmp(uri[0].dst.path, "/my/test/path") == 0); PRINT_OK(); + uri_free(uri); s_uri1 = "file/my/test/path"; fprintf(stdout, " [+] Bad URI set to %s ", s_uri1); @@ -173,26 +180,73 @@ int test_uri(void) size = uri_parse(s_uri1, &uri); assert(size == -1); PRINT_OK(); +} - return 0; +void test_uri_cmp() +{ + struct lttng_uri *uri1, *uri2; + const char *s_uri1 = "net://localhost"; + const char *s_uri2 = "net://localhost:8989:4242"; + ssize_t size1, size2; + int res; + + size1 = uri_parse(s_uri1, &uri1); + + /* Sanity checks */ + assert(size1 == 2); + assert(uri1[0].dtype == LTTNG_DST_IPV4); + assert(uri1[0].utype == LTTNG_URI_DST); + assert(uri1[0].stype == 0); + assert(uri1[0].port == 0); + assert(strlen(uri1[0].subdir) == 0); + assert(strcmp(uri1[0].dst.ipv4, "127.0.0.1") == 0); + assert(uri1[1].dtype == LTTNG_DST_IPV4); + assert(uri1[1].utype == LTTNG_URI_DST); + assert(uri1[1].stype == 0); + assert(uri1[1].port == 0); + assert(strlen(uri1[1].subdir) == 0); + assert(strcmp(uri1[1].dst.ipv4, "127.0.0.1") == 0); + + size2 = uri_parse(s_uri2, &uri2); + + assert(size2 == 2); + assert(uri2[0].dtype == LTTNG_DST_IPV4); + assert(uri2[0].utype == LTTNG_URI_DST); + assert(uri2[0].stype == 0); + assert(uri2[0].port == 8989); + assert(strlen(uri2[1].subdir) == 0); + assert(strcmp(uri2[0].dst.ipv4, "127.0.0.1") == 0); + assert(uri2[1].dtype == LTTNG_DST_IPV4); + assert(uri2[1].utype == LTTNG_URI_DST); + assert(uri2[1].stype == 0); + assert(uri2[1].port == 4242); + assert(strlen(uri2[1].subdir) == 0); + assert(strcmp(uri2[1].dst.ipv4, "127.0.0.1") == 0); + + + res = uri_compare(uri1, uri1); + fprintf(stdout, " [+] %s == %s ", s_uri1, s_uri1); + assert(res == 0); + PRINT_OK(); + + res = uri_compare(uri1, uri2); + fprintf(stdout, " [+] %s != %s ", s_uri1, s_uri2); + assert(res != 0); + PRINT_OK(); + + uri_free(uri1); + uri_free(uri2); } int main(int argc, char **argv) { - int ret; - srand(time(NULL)); printf("\nStreaming unit tests\n-----------\n"); - ret = test_uri(); - if (ret < 0) { - goto error; - } + /* URI tests */ + test_uri_parsing(); + test_uri_cmp(); - /* Success */ return 0; - -error: - return -1; }