diff options
author | David Robillard <d@drobilla.net> | 2016-07-14 15:48:58 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2016-07-14 15:48:58 -0400 |
commit | d92e316db4d5e28a05400d834e9f43c592f764fb (patch) | |
tree | ac071034fc96d97cd096c24e0a5d72f4d8b7f2d1 /test/failed_instantiation.lv2/test_failed_instantiation.c | |
parent | 84ec2ee47279f87b4ed9ee44c9153f52a97732da (diff) | |
download | lilv-d92e316db4d5e28a05400d834e9f43c592f764fb.tar.gz lilv-d92e316db4d5e28a05400d834e9f43c592f764fb.tar.bz2 lilv-d92e316db4d5e28a05400d834e9f43c592f764fb.zip |
Improve test coverage
Diffstat (limited to 'test/failed_instantiation.lv2/test_failed_instantiation.c')
-rw-r--r-- | test/failed_instantiation.lv2/test_failed_instantiation.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/failed_instantiation.lv2/test_failed_instantiation.c b/test/failed_instantiation.lv2/test_failed_instantiation.c new file mode 100644 index 0000000..6efa0ae --- /dev/null +++ b/test/failed_instantiation.lv2/test_failed_instantiation.c @@ -0,0 +1,45 @@ +#include "lilv/lilv.h" +#include "../src/lilv_internal.h" + +#define PLUGIN_URI "http://example.org/failed-instantiation" + +#define TEST_ASSERT(check) do {\ + if (!(check)) {\ + fprintf(stderr, "%s:%d: failed test: %s\n", __FILE__, __LINE__, #check);\ + return 1;\ + }\ +} while (0) + +int +main(int argc, char** argv) +{ + if (argc != 2) { + fprintf(stderr, "USAGE: %s BUNDLE\n", argv[0]); + return 1; + } + + const char* bundle_path = argv[1]; + LilvWorld* world = lilv_world_new(); + + // Load test plugin bundle + uint8_t* abs_bundle = (uint8_t*)lilv_path_absolute(bundle_path); + SerdNode bundle = serd_node_new_file_uri(abs_bundle, 0, 0, true); + LilvNode* bundle_uri = lilv_new_uri(world, (const char*)bundle.buf); + lilv_world_load_bundle(world, bundle_uri); + free(abs_bundle); + serd_node_free(&bundle); + lilv_node_free(bundle_uri); + + LilvNode* plugin_uri = lilv_new_uri(world, PLUGIN_URI); + const LilvPlugins* plugins = lilv_world_get_all_plugins(world); + const LilvPlugin* plugin = lilv_plugins_get_by_uri(plugins, plugin_uri); + TEST_ASSERT(plugin); + + TEST_ASSERT(!lilv_plugin_instantiate(plugin, 48000, NULL)); + + lilv_node_free(plugin_uri); + lilv_world_free(world); + + return 0; +} + |