diff options
-rw-r--r-- | test/urls/Makefile.am | 4 | ||||
-rw-r--r-- | test/urls/parse-url.c | 13 | ||||
-rwxr-xr-x | test/urls/run-url-test.in | 9 |
3 files changed, 23 insertions, 3 deletions
diff --git a/test/urls/Makefile.am b/test/urls/Makefile.am index 2f7b3a4..fbdf792 100644 --- a/test/urls/Makefile.am +++ b/test/urls/Makefile.am @@ -38,6 +38,10 @@ TESTS = data/double-slash.test \ TEST_EXTENSIONS = .test TEST_LOG_COMPILER = $(builddir)/run-url-test +if ENABLE_TEST_VALGRIND +TEST_LOG_FLAGS = --valgrind +endif + edit = sed \ -e 's|@PACKAGE_NAME\@|$(PACKAGE_NAME)|g' \ -e 's|@PACKAGE_VERSION\@|$(PACKAGE_VERSION)|g' \ diff --git a/test/urls/parse-url.c b/test/urls/parse-url.c index 1688eab..6637867 100644 --- a/test/urls/parse-url.c +++ b/test/urls/parse-url.c @@ -2,19 +2,23 @@ #include <stdlib.h> #include <stdio.h> +#include <talloc/talloc.h> #include <url/url.h> #include <log/log.h> int main(int argc, char **argv) { struct pb_url *url; + void *ctx; if (argc != 2 && argc != 3) { fprintf(stderr, "Usage: %s <URL> [update]\n", argv[0]); return EXIT_FAILURE; } - url = pb_url_parse(NULL, argv[1]); + ctx = talloc_new(NULL); + + url = pb_url_parse(ctx, argv[1]); if (!url) return EXIT_FAILURE; @@ -22,8 +26,11 @@ int main(int argc, char **argv) printf("%s\n", argv[1]); } else { + struct pb_url *new_url; printf("%s %s\n", argv[1], argv[2]); - url = pb_url_join(NULL, url, argv[2]); + new_url = pb_url_join(ctx, url, argv[2]); + talloc_free(url); + url = new_url; } printf("scheme\t%s\n", pb_url_scheme_name(url->scheme)); @@ -33,5 +40,7 @@ int main(int argc, char **argv) printf("dir\t%s\n", url->dir); printf("file\t%s\n", url->file); + talloc_free(ctx); + return EXIT_SUCCESS; } diff --git a/test/urls/run-url-test.in b/test/urls/run-url-test.in index 834166f..c98fe8b 100755 --- a/test/urls/run-url-test.in +++ b/test/urls/run-url-test.in @@ -1,5 +1,12 @@ #!/bin/bash +valgrind='' +if [ "$1" = "--valgrind" ] +then + shift + valgrind='valgrind --leak-check=full --error-exitcode=1' +fi + parser="@abs_builddir@/parse-url" testfile=$1 @@ -8,7 +15,7 @@ url=$(head -n1 $testfile) tmp=$(mktemp) trap "rm $tmp" EXIT -$parser $url > $tmp +$valgrind $parser $url > $tmp if test $? -ne 0 then echo "Error running $parser on $testfile" |