summaryrefslogtreecommitdiffstats
path: root/tests/sratom_test.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-01-22 05:07:11 +0000
committerDavid Robillard <d@drobilla.net>2013-01-22 05:07:11 +0000
commit48c2c0f44d12e530261d202662f00b676c826fc1 (patch)
tree77ccf2a34e692b9beb8116100f75f3028b8b21b0 /tests/sratom_test.c
parent1e195032cdc8e8f4f81713941b287749e2d8619d (diff)
downloadsratom-48c2c0f44d12e530261d202662f00b676c826fc1.tar.gz
sratom-48c2c0f44d12e530261d202662f00b676c826fc1.tar.bz2
sratom-48c2c0f44d12e530261d202662f00b676c826fc1.zip
Fix serialisation of nested tuples.
git-svn-id: http://svn.drobilla.net/lad/trunk/sratom@5004 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'tests/sratom_test.c')
-rw-r--r--tests/sratom_test.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/tests/sratom_test.c b/tests/sratom_test.c
index f76c246..c103d09 100644
--- a/tests/sratom_test.c
+++ b/tests/sratom_test.c
@@ -105,8 +105,9 @@ test(bool top_level)
LV2_URID eg_blob = urid_map(NULL, "http://example.org/n-blob");
LV2_URID eg_blank = urid_map(NULL, "http://example.org/o-blank");
LV2_URID eg_tuple = urid_map(NULL, "http://example.org/p-tuple");
- LV2_URID eg_vector = urid_map(NULL, "http://example.org/q-vector");
- LV2_URID eg_seq = urid_map(NULL, "http://example.org/r-seq");
+ LV2_URID eg_rectup = urid_map(NULL, "http://example.org/q-rectup");
+ LV2_URID eg_vector = urid_map(NULL, "http://example.org/r-vector");
+ LV2_URID eg_seq = urid_map(NULL, "http://example.org/s-seq");
uint8_t buf[1024];
lv2_atom_forge_set_buffer(&forge, buf, sizeof(buf));
@@ -203,6 +204,19 @@ test(bool top_level)
lv2_atom_forge_bool(&forge, true);
lv2_atom_forge_pop(&forge, &tuple_frame);
+ // eg_rectup = "foo",true,("bar",false)
+ lv2_atom_forge_property_head(&forge, eg_rectup, 0);
+ LV2_Atom_Forge_Frame rectup_frame;
+ lv2_atom_forge_tuple(&forge, &rectup_frame);
+ lv2_atom_forge_string(&forge, "foo", strlen("foo"));
+ lv2_atom_forge_bool(&forge, true);
+ LV2_Atom_Forge_Frame subrectup_frame;
+ lv2_atom_forge_tuple(&forge, &subrectup_frame);
+ lv2_atom_forge_string(&forge, "bar", strlen("bar"));
+ lv2_atom_forge_bool(&forge, false);
+ lv2_atom_forge_pop(&forge, &subrectup_frame);
+ lv2_atom_forge_pop(&forge, &rectup_frame);
+
// eg_vector = (Vector<Int32>)1,2,3,4
lv2_atom_forge_property_head(&forge, eg_vector, 0);
int32_t elems[] = { 1, 2, 3, 4 };