From a8b3f23b89f3b0e0c6e10ef3ed83d74649961960 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Tue, 7 Feb 2017 18:30:48 -0500 Subject: [PATCH] Add bt_plugin_create_from_name() tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- tests/lib/test_plugin.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/lib/test_plugin.c b/tests/lib/test_plugin.c index 0114ee32d..426cea48b 100644 --- a/tests/lib/test_plugin.c +++ b/tests/lib/test_plugin.c @@ -27,10 +27,11 @@ #include #include #include +#include #include "tap/tap.h" #include "common.h" -#define NR_TESTS 40 +#define NR_TESTS 44 #define NON_EXISTING_PATH "/this/hopefully/does/not/exist/5bc75f8d-0dba-4043-a509-d7984b97e42b.so" /* Those symbols are written to by some test plugins */ @@ -227,6 +228,29 @@ static void test_create_all_from_dir(const char *plugin_dir) free(plugins); } +static void test_create_from_name(const char *plugin_dir) +{ + struct bt_plugin *plugin; + char *plugin_path; + + ok(!bt_plugin_create_from_name(NULL), + "bt_plugin_create_from_name() handles NULL"); + ok(!bt_plugin_create_from_name(NON_EXISTING_PATH), + "bt_plugin_create_from_name() returns NULL with an unknown plugin name"); + plugin_path = malloc(PATH_MAX * 5); + assert(plugin_path); + sprintf(plugin_path, "%s:/ec1d09e5-696c-442e-b1c3-f9c6cf7f5958:::%s:8db46494-a398-466a-9649-c765ae077629:", + NON_EXISTING_PATH, plugin_dir); + setenv("BABELTRACE_PLUGIN_PATH", plugin_path, 1); + plugin = bt_plugin_create_from_name("test_minimal"); + ok(plugin, + "bt_plugin_create_from_name() succeeds with a plugin name it can find"); + ok(strcmp(bt_plugin_get_author(plugin), "Janine Sutto") == 0, + "bt_plugin_create_from_name() finds the correct plugin for a given name"); + BT_PUT(plugin); + free(plugin_path); +} + int main(int argc, char **argv) { int ret; @@ -244,6 +268,7 @@ int main(int argc, char **argv) test_minimal(plugin_dir); test_sfs(plugin_dir); test_create_all_from_dir(plugin_dir); + test_create_from_name(plugin_dir); ret = exit_status(); end: return ret; -- 2.34.1