summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-09-26 11:45:39 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-09-26 15:20:59 +0800
commitd8811f2d9a77afe1969c1b49b3117617f40cadda (patch)
tree7cf954f9188c30feeb3a36413b7ac697526ab151
parent58dd7a044cdbbb2deba5c45032f166304bd234ff (diff)
downloadpetitboot-d8811f2d9a77afe1969c1b49b3117617f40cadda.zip
petitboot-d8811f2d9a77afe1969c1b49b3117617f40cadda.tar.gz
tests/urls: Run URL tests under valgrind
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r--test/urls/Makefile.am4
-rw-r--r--test/urls/parse-url.c13
-rwxr-xr-xtest/urls/run-url-test.in9
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"
OpenPOWER on IntegriCloud