aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2014-04-22 21:56:27 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2014-04-22 21:56:27 +0000
commitd4fc17b1e5ff64ea70cfb02594ae87f599f81c29 (patch)
treec1169bd0239a10ab249485e498817c451e608aea /tests
parentbfc6d68337150c52c8ce2dc6a7d19a9d1bd92795 (diff)
downloadsrc-d4fc17b1e5ff64ea70cfb02594ae87f599f81c29.tar.gz
src-d4fc17b1e5ff64ea70cfb02594ae87f599f81c29.zip
Import libucl 0.4.0vendor/libucl/0.4.0
Notes
Notes: svn path=/vendor/libucl/dist/; revision=264787 svn path=/vendor/libucl/0.4.0/; revision=264788; tag=vendor/libucl/0.4.0
Diffstat (limited to 'tests')
-rw-r--r--tests/test_basic.c4
-rw-r--r--tests/test_generate.c52
-rw-r--r--tests/test_schema.c11
3 files changed, 38 insertions, 29 deletions
diff --git a/tests/test_basic.c b/tests/test_basic.c
index 0834728bb926..5a977aa7191a 100644
--- a/tests/test_basic.c
+++ b/tests/test_basic.c
@@ -78,7 +78,9 @@ main (int argc, char **argv)
while (!feof (in)) {
memset (inbuf, 0, sizeof (inbuf));
- (void)fread (inbuf, sizeof (inbuf) - 1, 1, in);
+ if (fread (inbuf, 1, sizeof (inbuf) - 1, in) == 0) {
+ break;
+ }
inlen = strlen (inbuf);
test_in = malloc (inlen);
memcpy (test_in, inbuf, inlen);
diff --git a/tests/test_generate.c b/tests/test_generate.c
index b2081ba512f1..2b1bf8d73a3f 100644
--- a/tests/test_generate.c
+++ b/tests/test_generate.c
@@ -29,7 +29,7 @@
int
main (int argc, char **argv)
{
- ucl_object_t *obj, *cur, *ar;
+ ucl_object_t *obj, *cur, *ar, *ref;
FILE *out;
unsigned char *emitted;
const char *fname_out = NULL;
@@ -55,62 +55,64 @@ main (int argc, char **argv)
obj = ucl_object_typed_new (UCL_OBJECT);
/* Create some strings */
cur = ucl_object_fromstring_common (" test string ", 0, UCL_STRING_TRIM);
- obj = ucl_object_insert_key (obj, cur, "key1", 0, false);
+ ucl_object_insert_key (obj, cur, "key1", 0, false);
cur = ucl_object_fromstring_common (" test \nstring\n ", 0, UCL_STRING_TRIM | UCL_STRING_ESCAPE);
- obj = ucl_object_insert_key (obj, cur, "key2", 0, false);
+ ucl_object_insert_key (obj, cur, "key2", 0, false);
cur = ucl_object_fromstring_common (" test string \n", 0, 0);
- obj = ucl_object_insert_key (obj, cur, "key3", 0, false);
+ ucl_object_insert_key (obj, cur, "key3", 0, false);
/* Array of numbers */
+ ar = ucl_object_typed_new (UCL_ARRAY);
cur = ucl_object_fromint (10);
- ar = ucl_array_append (NULL, cur);
+ ucl_array_append (ar, cur);
cur = ucl_object_fromdouble (10.1);
- ar = ucl_array_append (ar, cur);
+ ucl_array_append (ar, cur);
cur = ucl_object_fromdouble (9.999);
- ar = ucl_array_prepend (ar, cur);
+ ucl_array_prepend (ar, cur);
/* Removing from an array */
cur = ucl_object_fromdouble (1.0);
- ar = ucl_array_append (ar, cur);
+ ucl_array_append (ar, cur);
cur = ucl_array_delete (ar, cur);
assert (ucl_object_todouble (cur) == 1.0);
ucl_object_unref (cur);
cur = ucl_object_fromdouble (2.0);
- ar = ucl_array_append (ar, cur);
+ ucl_array_append (ar, cur);
cur = ucl_array_pop_last (ar);
assert (ucl_object_todouble (cur) == 2.0);
ucl_object_unref (cur);
cur = ucl_object_fromdouble (3.0);
- ar = ucl_array_prepend (ar, cur);
+ ucl_array_prepend (ar, cur);
cur = ucl_array_pop_first (ar);
assert (ucl_object_todouble (cur) == 3.0);
ucl_object_unref (cur);
- obj = ucl_object_insert_key (obj, ar, "key4", 0, false);
+ ucl_object_insert_key (obj, ar, "key4", 0, false);
cur = ucl_object_frombool (true);
- obj = ucl_object_insert_key (obj, cur, "key4", 0, false);
+ /* Ref object to test refcounts */
+ ref = ucl_object_ref (cur);
+ ucl_object_insert_key (obj, cur, "key4", 0, false);
/* Empty strings */
cur = ucl_object_fromstring_common (" ", 0, UCL_STRING_TRIM);
- obj = ucl_object_insert_key (obj, cur, "key5", 0, false);
+ ucl_object_insert_key (obj, cur, "key5", 0, false);
cur = ucl_object_fromstring_common ("", 0, UCL_STRING_ESCAPE);
- obj = ucl_object_insert_key (obj, cur, "key6", 0, false);
+ ucl_object_insert_key (obj, cur, "key6", 0, false);
cur = ucl_object_fromstring_common (" \n", 0, UCL_STRING_ESCAPE);
- obj = ucl_object_insert_key (obj, cur, "key7", 0, false);
+ ucl_object_insert_key (obj, cur, "key7", 0, false);
/* Numbers and booleans */
cur = ucl_object_fromstring_common ("1mb", 0, UCL_STRING_ESCAPE | UCL_STRING_PARSE);
- obj = ucl_object_insert_key (obj, cur, "key8", 0, false);
+ ucl_object_insert_key (obj, cur, "key8", 0, false);
cur = ucl_object_fromstring_common ("3.14", 0, UCL_STRING_PARSE);
- obj = ucl_object_insert_key (obj, cur, "key9", 0, false);
+ ucl_object_insert_key (obj, cur, "key9", 0, false);
cur = ucl_object_fromstring_common ("true", 0, UCL_STRING_PARSE);
- obj = ucl_object_insert_key (obj, cur, "key10", 0, false);
+ ucl_object_insert_key (obj, cur, "key10", 0, false);
cur = ucl_object_fromstring_common (" off ", 0, UCL_STRING_PARSE | UCL_STRING_TRIM);
- obj = ucl_object_insert_key (obj, cur, "key11", 0, false);
+ ucl_object_insert_key (obj, cur, "key11", 0, false);
cur = ucl_object_fromstring_common ("gslin@gslin.org", 0, UCL_STRING_PARSE_INT);
- obj = ucl_object_insert_key (obj, cur, "key12", 0, false);
+ ucl_object_insert_key (obj, cur, "key12", 0, false);
cur = ucl_object_fromstring_common ("#test", 0, UCL_STRING_PARSE_INT);
- obj = ucl_object_insert_key (obj, cur, "key13", 0, false);
+ ucl_object_insert_key (obj, cur, "key13", 0, false);
cur = ucl_object_frombool (true);
- obj = ucl_object_insert_key (obj, cur, "k=3", 0, false);
-
+ ucl_object_insert_key (obj, cur, "k=3", 0, false);
emitted = ucl_object_emit (obj, UCL_EMIT_CONFIG);
@@ -122,5 +124,9 @@ main (int argc, char **argv)
}
fclose (out);
+ /* Ref should still be accessible */
+ ref->value.iv = 100500;
+ ucl_object_unref (ref);
+
return ret;
}
diff --git a/tests/test_schema.c b/tests/test_schema.c
index 9436d71b4113..afce17816d50 100644
--- a/tests/test_schema.c
+++ b/tests/test_schema.c
@@ -58,10 +58,10 @@ read_stdin (char **buf)
}
static bool
-perform_test (ucl_object_t *schema, ucl_object_t *obj,
+perform_test (const ucl_object_t *schema, const ucl_object_t *obj,
struct ucl_schema_error *err)
{
- ucl_object_t *valid, *data, *description;
+ const const ucl_object_t *valid, *data, *description;
bool match;
data = ucl_object_find_key (obj, "data");
@@ -86,11 +86,11 @@ perform_test (ucl_object_t *schema, ucl_object_t *obj,
}
static int
-perform_tests (ucl_object_t *obj)
+perform_tests (const ucl_object_t *obj)
{
struct ucl_schema_error err;
ucl_object_iter_t iter = NULL;
- ucl_object_t *schema, *tests, *description, *test;
+ const ucl_object_t *schema, *tests, *description, *test;
if (obj->type != UCL_OBJECT) {
fprintf (stdout, "Bad test case\n");
@@ -124,7 +124,8 @@ main (int argc, char **argv)
{
char *buf = NULL;
struct ucl_parser *parser;
- ucl_object_t *obj = NULL, *elt;
+ ucl_object_t *obj = NULL;
+ const ucl_object_t *elt;
ucl_object_iter_t iter = NULL;
int ret = 0;