diff options
Diffstat (limited to 'test/test_state.c')
-rw-r--r-- | test/test_state.c | 42 |
1 files changed, 7 insertions, 35 deletions
diff --git a/test/test_state.c b/test/test_state.c index 5a2e5cb..9d39181 100644 --- a/test/test_state.c +++ b/test/test_state.c @@ -16,6 +16,7 @@ #undef NDEBUG +#include "lilv_test_uri_map.h" #include "lilv_test_utils.h" #include "../src/filesystem.h" @@ -93,33 +94,6 @@ set_port_value(const char* port_symbol, } } -static char** uris = NULL; -static size_t n_uris = 0; - -static LV2_URID -map_uri(LV2_URID_Map_Handle handle, const char* uri) -{ - for (size_t i = 0; i < n_uris; ++i) { - if (!strcmp(uris[i], uri)) { - return i + 1; - } - } - - assert(serd_uri_string_has_scheme((const uint8_t*)uri)); - uris = (char**)realloc(uris, ++n_uris * sizeof(char*)); - uris[n_uris - 1] = lilv_strdup(uri); - return n_uris; -} - -static const char* -unmap_uri(LV2_URID_Map_Handle handle, LV2_URID urid) -{ - if (urid > 0 && urid <= n_uris) { - return uris[urid - 1]; - } - return NULL; -} - static char* temp_dir = NULL; static char* @@ -140,6 +114,9 @@ main(void) LilvTestEnv* const env = lilv_test_env_new(); LilvWorld* const world = env->world; + LilvTestUriMap uri_map; + lilv_test_uri_map_init(&uri_map); + uint8_t* abs_bundle = (uint8_t*)lilv_path_absolute(LILV_TEST_BUNDLE); SerdNode bundle = serd_node_new_file_uri(abs_bundle, 0, 0, true); LilvNode* bundle_uri = lilv_new_uri(world, (const char*)bundle.buf); @@ -153,9 +130,9 @@ main(void) const LilvPlugin* plugin = lilv_plugins_get_by_uri(plugins, plugin_uri); assert(plugin); - LV2_URID_Map map = {NULL, map_uri}; + LV2_URID_Map map = {&uri_map, map_uri}; LV2_Feature map_feature = {LV2_URID_MAP_URI, &map}; - LV2_URID_Unmap unmap = {NULL, unmap_uri}; + LV2_URID_Unmap unmap = {&uri_map, unmap_uri}; LV2_Feature unmap_feature = {LV2_URID_UNMAP_URI, &unmap}; const LV2_Feature* features[] = {&map_feature, &unmap_feature, NULL}; @@ -562,12 +539,7 @@ main(void) lilv_remove("state"); - // Free URI map - for (size_t i = 0; i < n_uris; ++i) { - free(uris[i]); - } - free(uris); - n_uris = 0; + lilv_test_uri_map_clear(&uri_map); lilv_node_free(plugin_uri); lilv_node_free(bundle_uri); |