From 05f9e858a5dd4b3a1ba5047aa703e55da70dcfdf Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 11 Jul 2016 19:30:04 -0400 Subject: Improve test coverage --- test/lilv_test.c | 22 +++++++++++++++++++++- test/test.lv2/test.c | 8 ++++++-- test/test.lv2/test.ttl.in | 6 ++++++ 3 files changed, 33 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/lilv_test.c b/test/lilv_test.c index f1ddbfd..4215d97 100644 --- a/test/lilv_test.c +++ b/test/lilv_test.c @@ -1,5 +1,5 @@ /* - Copyright 2007-2015 David Robillard + Copyright 2007-2016 David Robillard Copyright 2008 Krzysztof Foltman Permission to use, copy, modify, and/or distribute this software for any @@ -1419,6 +1419,7 @@ test_ui(void) uint32_t atom_Float = 0; float in = 1.0; float out = 42.0; +float control = 1234.0; static const void* get_port_value(const char* port_symbol, @@ -1434,6 +1435,10 @@ get_port_value(const char* port_symbol, *size = sizeof(float); *type = atom_Float; return &out; + } else if (!strcmp(port_symbol, "control")) { + *size = sizeof(float); + *type = atom_Float; + return &control; } else { fprintf(stderr, "error: get_port_value for nonexistent port `%s'\n", port_symbol); @@ -1453,6 +1458,8 @@ set_port_value(const char* port_symbol, in = *(const float*)value; } else if (!strcmp(port_symbol, "output")) { out = *(const float*)value; + } else if (!strcmp(port_symbol, "control")) { + control = *(const float*)value; } else { fprintf(stderr, "error: set_port_value for nonexistent port `%s'\n", port_symbol); @@ -1624,6 +1631,16 @@ test_state(void) "state/state.lv2/state.ttl"); TEST_ASSERT(lilv_state_equals(state, state5)); // Round trip accuracy + TEST_ASSERT(lilv_state_get_num_properties(state) == 8); + + // Attempt to save state to nowhere (error) + ret = lilv_state_save(world, &map, &unmap, state, NULL, NULL, NULL); + TEST_ASSERT(ret); + + // Save another state to the same directory (update manifest) + ret = lilv_state_save(world, &map, &unmap, state, NULL, + "state/state.lv2", "state2.ttl"); + TEST_ASSERT(!ret); // Save state with URI to a directory const char* state_uri = "http://example.org/state"; @@ -2000,6 +2017,9 @@ test_reload_bundle(void) TEST_ASSERT(!strcmp(lilv_node_as_string(name2), "Second name")); lilv_node_free(name2); + // Load new bundle again (noop) + lilv_world_load_bundle(world, bundle_uri); + lilv_node_free(bundle_uri); lilv_world_free(world); world = NULL; diff --git a/test/test.lv2/test.c b/test/test.lv2/test.c index cd9a18c..27344e7 100644 --- a/test/test.lv2/test.c +++ b/test/test.lv2/test.c @@ -28,8 +28,9 @@ #define TEST_URI "http://example.org/lilv-test-plugin" enum { - TEST_INPUT = 0, - TEST_OUTPUT = 1 + TEST_INPUT = 0, + TEST_OUTPUT = 1, + TEST_CONTROL = 2 }; typedef struct { @@ -73,6 +74,9 @@ connect_port(LV2_Handle instance, case TEST_OUTPUT: test->output = (float*)data; break; + case TEST_CONTROL: + test->output = (float*)data; + break; default: break; } diff --git a/test/test.lv2/test.ttl.in b/test/test.lv2/test.ttl.in index 6fb6aed..1c16b4c 100644 --- a/test/test.lv2/test.ttl.in +++ b/test/test.lv2/test.ttl.in @@ -37,4 +37,10 @@ lv2:index 1 ; lv2:symbol "output" ; lv2:name "Output" + ] , [ + a lv2:InputPort , + lv2:ControlPort ; + lv2:index 2 ; + lv2:symbol "control" ; + lv2:name "Control" ] . -- cgit v1.2.1