mirror of
https://github.com/emqx/neuron.git
synced 2026-10-29 07:06:32 +08:00
add plugin manager test (#77)
* add plugin manager test * Plugin manager test add a check if the plugin_info is equal to param_update
This commit is contained in:
@@ -24,6 +24,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "vector.h"
|
||||
|
||||
typedef struct Vector vector_t;
|
||||
|
||||
@@ -20,6 +20,10 @@
|
||||
#ifndef _PLUGIN_MANAGER_H
|
||||
#define _PLUGIN_MANAGER_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "adapter/adapter_internal.h"
|
||||
@@ -75,4 +79,9 @@ void plugin_manager_dump(plugin_manager_t *plugin_mng);
|
||||
void *load_plugin_library(char *plugin_lib_name, plugin_kind_e plugin_kind,
|
||||
neu_plugin_module_t **p_plugin_module);
|
||||
int unload_plugin_library(void *lib_handle, plugin_kind_e plugin_kind);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -81,6 +81,16 @@ target_include_directories(data_val_test PRIVATE
|
||||
)
|
||||
target_link_libraries(data_val_test neuron-base gtest_main gtest pthread jansson)
|
||||
|
||||
aux_source_directory(${CMAKE_SOURCE_DIR}/plugins/restful SRC_RESTFUL)
|
||||
add_executable(plugin_manager_test plugin_manager_test.cc ${CMAKE_SOURCE_DIR}/src/core/plugin_manager.c ${SRC_RESTFUL} ${SRC_PARSER} ${CMAKE_SOURCE_DIR}/src/config.c)
|
||||
target_include_directories(plugin_manager_test PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/src
|
||||
${CMAKE_SOURCE_DIR}/include
|
||||
${CMAKE_SOURCE_DIR}/plugins
|
||||
)
|
||||
target_link_libraries(plugin_manager_test neuron-base gtest_main gtest pthread jansson dl nng yaml)
|
||||
target_link_directories(plugin_manager_test PRIVATE /usr/local/lib)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(json_test)
|
||||
gtest_discover_tests(api_json_test)
|
||||
@@ -93,3 +103,4 @@ gtest_discover_tests(json_nodes_test)
|
||||
gtest_discover_tests(json_plugin_test)
|
||||
gtest_discover_tests(config_test)
|
||||
gtest_discover_tests(data_val_test)
|
||||
gtest_discover_tests(plugin_manager_test)
|
||||
|
||||
@@ -0,0 +1,427 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "core/plugin_manager.h"
|
||||
|
||||
#define NUM_DATATAGTABLE_MODIFY 100
|
||||
|
||||
TEST(PluginManagerTest, RegPluginManagerTest)
|
||||
{
|
||||
plugin_manager_t *plugin_mng = plugin_manager_create();
|
||||
vector_t * plugin_info_vec = { 0 };
|
||||
|
||||
int index = 0;
|
||||
plugin_reg_info_t reg_info = { 0 };
|
||||
|
||||
plugin_reg_param_t param1 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin1", (char *) "lib1" };
|
||||
plugin_reg_param_t param2 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin2", (char *) "lib2" };
|
||||
plugin_reg_param_t param3 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin3", (char *) "lib3" };
|
||||
plugin_id_t p_plugin_id = { 0 };
|
||||
|
||||
plugin_id_t plugin_id1 = { 0 };
|
||||
plugin_id_t plugin_id2 = { 0 };
|
||||
plugin_id_t plugin_id3 = { 0 };
|
||||
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m1, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m2, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m3, &p_plugin_id));
|
||||
|
||||
/**plugin_manager_get_all_plugins**/
|
||||
plugin_info_vec = plugin_manager_get_all_plugins(plugin_mng);
|
||||
VECTOR_FOR_EACH(plugin_info_vec, iter)
|
||||
{
|
||||
plugin_reg_info_t *info = (plugin_reg_info_t *) iterator_get(&iter);
|
||||
|
||||
switch (index) {
|
||||
case 1:
|
||||
plugin_id1 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin1", info->plugin_name);
|
||||
EXPECT_STREQ("lib1", info->plugin_lib_name);
|
||||
break;
|
||||
case 2:
|
||||
plugin_id2 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin2", info->plugin_name);
|
||||
EXPECT_STREQ("lib2", info->plugin_lib_name);
|
||||
break;
|
||||
case 3:
|
||||
plugin_id3 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin3", info->plugin_name);
|
||||
EXPECT_STREQ("lib3", info->plugin_lib_name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
index += 1;
|
||||
}
|
||||
|
||||
/**plugin_manager_get_reg_info by plugin_id**/
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id1, ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id2, ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id3, ®_info));
|
||||
|
||||
/**plugin_manager_get_reg_info_by_name**/
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng, (char *) "plugin1", ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng, (char *) "plugin2", ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng, (char *) "plugin3", ®_info));
|
||||
|
||||
vector_free(plugin_info_vec);
|
||||
plugin_manager_unreg_all_plugins(plugin_mng);
|
||||
plugin_manager_destroy(plugin_mng);
|
||||
}
|
||||
|
||||
TEST(PluginManagerTest, UnregPluginManagerTest)
|
||||
{
|
||||
plugin_manager_t *plugin_mng = plugin_manager_create();
|
||||
vector_t * plugin_info_vec = { 0 };
|
||||
|
||||
int index = 0;
|
||||
|
||||
plugin_id_t plugin_id1 = { 0 };
|
||||
plugin_id_t plugin_id2 = { 0 };
|
||||
plugin_id_t plugin_id3 = { 0 };
|
||||
|
||||
plugin_reg_info_t reg_info = { 0 };
|
||||
|
||||
plugin_reg_param_t param1 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin1", (char *) "lib1" };
|
||||
plugin_reg_param_t param2 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin2", (char *) "lib2" };
|
||||
plugin_reg_param_t param3 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin3", (char *) "lib3" };
|
||||
plugin_id_t p_plugin_id = { 0 };
|
||||
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m1, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m2, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m3, &p_plugin_id));
|
||||
|
||||
plugin_info_vec = plugin_manager_get_all_plugins(plugin_mng);
|
||||
VECTOR_FOR_EACH(plugin_info_vec, iter)
|
||||
{
|
||||
plugin_reg_info_t *info = (plugin_reg_info_t *) iterator_get(&iter);
|
||||
|
||||
switch (index) {
|
||||
case 1:
|
||||
plugin_id1 = info->plugin_id;
|
||||
break;
|
||||
case 2:
|
||||
plugin_id2 = info->plugin_id;
|
||||
break;
|
||||
case 3:
|
||||
plugin_id3 = info->plugin_id;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
index += 1;
|
||||
}
|
||||
|
||||
plugin_manager_unreg_plugin(plugin_mng, plugin_id1);
|
||||
EXPECT_EQ(-1,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id1, ®_info));
|
||||
|
||||
/***plugin_manager_unreg_all_plugins***/
|
||||
plugin_manager_unreg_all_plugins(plugin_mng);
|
||||
EXPECT_EQ(-1,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id1, ®_info));
|
||||
EXPECT_EQ(-1,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id2, ®_info));
|
||||
EXPECT_EQ(-1,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id3, ®_info));
|
||||
|
||||
vector_free(plugin_info_vec);
|
||||
plugin_manager_unreg_all_plugins(plugin_mng);
|
||||
plugin_manager_destroy(plugin_mng);
|
||||
}
|
||||
|
||||
TEST(PluginManagerTest, UpdatePluginManagerTest)
|
||||
{
|
||||
plugin_manager_t *plugin_mng = plugin_manager_create();
|
||||
vector_t * plugin_info_vec = { 0 };
|
||||
|
||||
int index = 0;
|
||||
plugin_reg_info_t reg_info = { 0 };
|
||||
|
||||
plugin_reg_param_t param1 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin1", (char *) "lib1" };
|
||||
plugin_reg_param_t param2 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin2", (char *) "lib2" };
|
||||
plugin_reg_param_t param3 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin3", (char *) "lib3" };
|
||||
plugin_reg_param_t param_update = { PLUGIN_KIND_SYSTEM,
|
||||
ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin3", (char *) "lib4" };
|
||||
|
||||
plugin_id_t p_plugin_id = { 0 };
|
||||
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m1, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m2, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m3, &p_plugin_id));
|
||||
|
||||
EXPECT_EQ(0, plugin_manager_update_plugin(plugin_mng, ¶m_update));
|
||||
|
||||
plugin_info_vec = plugin_manager_get_all_plugins(plugin_mng);
|
||||
VECTOR_FOR_EACH(plugin_info_vec, iter)
|
||||
{
|
||||
plugin_reg_info_t *info = (plugin_reg_info_t *) iterator_get(&iter);
|
||||
|
||||
switch (index) {
|
||||
case 3:
|
||||
EXPECT_EQ(param_update.adapter_type, info->adapter_type);
|
||||
EXPECT_EQ(param_update.plugin_kind, info->plugin_kind);
|
||||
EXPECT_STREQ(param_update.plugin_name, info->plugin_name);
|
||||
EXPECT_STREQ(param_update.plugin_lib_name, info->plugin_lib_name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
index += 1;
|
||||
}
|
||||
|
||||
vector_free(plugin_info_vec);
|
||||
plugin_manager_unreg_all_plugins(plugin_mng);
|
||||
plugin_manager_destroy(plugin_mng);
|
||||
}
|
||||
|
||||
void *plugin_manager_thread(void *arg)
|
||||
{
|
||||
plugin_manager_t *plugin_mng = (plugin_manager_t *) arg;
|
||||
vector_t * plugin_info_vec = { 0 };
|
||||
|
||||
int index = 0;
|
||||
|
||||
plugin_reg_info_t reg_info = { 0 };
|
||||
|
||||
plugin_reg_param_t param1 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin1", (char *) "lib1" };
|
||||
plugin_reg_param_t param2 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin2", (char *) "lib2" };
|
||||
plugin_reg_param_t param3 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin3", (char *) "lib3" };
|
||||
plugin_reg_param_t param_update = { PLUGIN_KIND_SYSTEM,
|
||||
ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin3", (char *) "lib4" };
|
||||
|
||||
plugin_id_t p_plugin_id = { 0 };
|
||||
|
||||
plugin_id_t plugin_id1 = { 0 };
|
||||
plugin_id_t plugin_id2 = { 0 };
|
||||
plugin_id_t plugin_id3 = { 0 };
|
||||
|
||||
/***plugin_manager_reg_plugin**/
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m1, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m2, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng, ¶m3, &p_plugin_id));
|
||||
|
||||
/**plugin_manager_update_plugin**/
|
||||
EXPECT_EQ(0, plugin_manager_update_plugin(plugin_mng, ¶m_update));
|
||||
|
||||
/**plugin_manager_get_all_plugins**/
|
||||
plugin_info_vec = plugin_manager_get_all_plugins(plugin_mng);
|
||||
VECTOR_FOR_EACH(plugin_info_vec, iter)
|
||||
{
|
||||
plugin_reg_info_t *info = (plugin_reg_info_t *) iterator_get(&iter);
|
||||
|
||||
switch (index) {
|
||||
case 1:
|
||||
plugin_id1 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin1", info->plugin_name);
|
||||
EXPECT_STREQ("lib1", info->plugin_lib_name);
|
||||
|
||||
break;
|
||||
case 2:
|
||||
plugin_id2 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin2", info->plugin_name);
|
||||
EXPECT_STREQ("lib2", info->plugin_lib_name);
|
||||
break;
|
||||
case 3:
|
||||
plugin_id3 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(param_update.adapter_type, info->adapter_type);
|
||||
EXPECT_EQ(param_update.plugin_kind, info->plugin_kind);
|
||||
EXPECT_STREQ(param_update.plugin_name, info->plugin_name);
|
||||
EXPECT_STREQ(param_update.plugin_lib_name, info->plugin_lib_name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
index += 1;
|
||||
}
|
||||
|
||||
/**plugin_manager_get_reg_info by plugin_id**/
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id1, ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id2, ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id3, ®_info));
|
||||
|
||||
/**plugin_manager_get_reg_info_by_name**/
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng, (char *) "plugin1", ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng, (char *) "plugin2", ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng, (char *) "plugin3", ®_info));
|
||||
|
||||
/**plugin_manager_unreg_plugin**/
|
||||
plugin_manager_unreg_plugin(plugin_mng, plugin_id1);
|
||||
EXPECT_EQ(-1,
|
||||
plugin_manager_get_reg_info(plugin_mng, plugin_id1, ®_info));
|
||||
|
||||
vector_free(plugin_info_vec);
|
||||
plugin_manager_unreg_all_plugins(plugin_mng);
|
||||
plugin_manager_destroy(plugin_mng);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *plugin_manager_thread2(void *arg)
|
||||
{
|
||||
plugin_manager_t *plugin_mng2 = (plugin_manager_t *) arg;
|
||||
vector_t * plugin_info_vec = { 0 };
|
||||
|
||||
int index = 0;
|
||||
|
||||
plugin_reg_info_t reg_info = { 0 };
|
||||
|
||||
plugin_reg_param_t param4 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin4", (char *) "lib4" };
|
||||
plugin_reg_param_t param5 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin5", (char *) "lib5" };
|
||||
plugin_reg_param_t param6 = { PLUGIN_KIND_SYSTEM, ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin6", (char *) "lib6" };
|
||||
plugin_reg_param_t param_update2 = { PLUGIN_KIND_SYSTEM,
|
||||
ADAPTER_TYPE_WEBSERVER,
|
||||
(char *) "plugin5", (char *) "lib7" };
|
||||
|
||||
plugin_id_t p_plugin_id = { 0 };
|
||||
|
||||
plugin_id_t plugin_id4 = { 0 };
|
||||
plugin_id_t plugin_id5 = { 0 };
|
||||
plugin_id_t plugin_id6 = { 0 };
|
||||
|
||||
/***plugin_manager_reg_plugin**/
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng2, ¶m4, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng2, ¶m5, &p_plugin_id));
|
||||
EXPECT_EQ(0, plugin_manager_reg_plugin(plugin_mng2, ¶m6, &p_plugin_id));
|
||||
|
||||
/**plugin_manager_get_all_plugins**/
|
||||
plugin_info_vec = plugin_manager_get_all_plugins(plugin_mng2);
|
||||
VECTOR_FOR_EACH(plugin_info_vec, iter)
|
||||
{
|
||||
plugin_reg_info_t *info = (plugin_reg_info_t *) iterator_get(&iter);
|
||||
|
||||
switch (index) {
|
||||
case 1:
|
||||
plugin_id4 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin4", info->plugin_name);
|
||||
EXPECT_STREQ("lib4", info->plugin_lib_name);
|
||||
|
||||
break;
|
||||
case 2:
|
||||
plugin_id5 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin5", info->plugin_name);
|
||||
EXPECT_STREQ("lib5", info->plugin_lib_name);
|
||||
break;
|
||||
case 3:
|
||||
plugin_id6 = info->plugin_id;
|
||||
|
||||
EXPECT_EQ(1, info->adapter_type);
|
||||
EXPECT_EQ(1, info->plugin_kind);
|
||||
EXPECT_STREQ("plugin6", info->plugin_name);
|
||||
EXPECT_STREQ("lib6", info->plugin_lib_name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
index += 1;
|
||||
}
|
||||
|
||||
/**plugin_manager_get_reg_info by plugin_id**/
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng2, plugin_id4, ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng2, plugin_id5, ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info(plugin_mng2, plugin_id6, ®_info));
|
||||
|
||||
/**plugin_manager_get_reg_info_by_name**/
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng2, (char *) "plugin4", ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng2, (char *) "plugin5", ®_info));
|
||||
EXPECT_EQ(0,
|
||||
plugin_manager_get_reg_info_by_name(
|
||||
plugin_mng2, (char *) "plugin6", ®_info));
|
||||
|
||||
/**plugin_manager_update_plugin**/
|
||||
EXPECT_EQ(0, plugin_manager_update_plugin(plugin_mng2, ¶m_update2));
|
||||
|
||||
/**plugin_manager_unreg_plugin**/
|
||||
plugin_manager_unreg_plugin(plugin_mng2, plugin_id4);
|
||||
EXPECT_EQ(-1,
|
||||
plugin_manager_get_reg_info(plugin_mng2, plugin_id4, ®_info));
|
||||
|
||||
vector_free(plugin_info_vec);
|
||||
plugin_manager_unreg_all_plugins(plugin_mng2);
|
||||
plugin_manager_destroy(plugin_mng2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
TEST(PluginManagerTest, PluginManagerPthread)
|
||||
{
|
||||
pthread_t tids[2];
|
||||
int ret1, ret2;
|
||||
plugin_manager_t *plugin_mng = plugin_manager_create();
|
||||
plugin_manager_t *plugin_mng2 = plugin_manager_create();
|
||||
|
||||
ret1 = pthread_create(&tids[0], NULL, plugin_manager_thread,
|
||||
(void *) plugin_mng);
|
||||
ret2 = pthread_create(&tids[1], NULL, plugin_manager_thread2,
|
||||
(void *) plugin_mng2);
|
||||
|
||||
pthread_join(tids[0], NULL);
|
||||
pthread_join(tids[1], NULL);
|
||||
|
||||
EXPECT_EQ(0, ret1);
|
||||
EXPECT_EQ(0, ret2);
|
||||
}
|
||||
Reference in New Issue
Block a user