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' \
#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;
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));
printf("dir\t%s\n", url->dir);
printf("file\t%s\n", url->file);
+ talloc_free(ctx);
+
return EXIT_SUCCESS;
}
#!/bin/bash
+valgrind=''
+if [ "$1" = "--valgrind" ]
+then
+ shift
+ valgrind='valgrind --leak-check=full --error-exitcode=1'
+fi
+
parser="@abs_builddir@/parse-url"
testfile=$1
tmp=$(mktemp)
trap "rm $tmp" EXIT
-$parser $url > $tmp
+$valgrind $parser $url > $tmp
if test $? -ne 0
then
echo "Error running $parser on $testfile"