Fix: Memory leaks in uri_parsing unit tests.
authorChristian Babeux <christian.babeux@efficios.com>
Tue, 14 Aug 2012 20:33:41 +0000 (16:33 -0400)
committerDavid Goulet <dgoulet@efficios.com>
Tue, 14 Aug 2012 21:05:52 +0000 (17:05 -0400)
lttng_uri need to be free'd by calling uri_free().

Add: Unit tests for uri comparison (uri_cmp).

Signed-off-by: Christian Babeux <christian.babeux@efficios.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
tests/tools/streaming/unit_tests.c

index 915e7d1adc74f7ff25d6717bb6624b5b79218f94..d00e34d16d1ab864709de6dc28fc8b6799bc178c 100644 (file)
@@ -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;
 }
This page took 0.028345 seconds and 5 git commands to generate.