Add plugin json parse and plugin test

This commit is contained in:
lixiumei
2021-09-09 02:22:37 +00:00
committed by Parker Liu
parent dba5a634a2
commit 4ba98dacff
6 changed files with 204 additions and 12 deletions
+10 -9
View File
@@ -186,17 +186,18 @@ int neu_parse_decode_delete_nodes_req(
int neu_parse_encode_delete_nodes_res(struct neu_parse_delete_nodes_res *res,
char ** buf)
{
neu_json_elem_t elems[] = { {
.name = NEU_PARSE_FUNCTION,
.t = NEU_JSON_INT,
neu_json_elem_t elems[] = { { .name = NEU_PARSE_FUNCTION,
.t = NEU_JSON_INT,
.v.val_int = res->function },
{
.name = NEU_PARSE_UUID,
.t = NEU_JSON_STR,
.v.val_str = res->uuid,
},
{
.name = NEU_PARSE_UUID,
.t = NEU_JSON_STR,
},
{
.name = NEU_PARSE_ERROR,
.t = res->error,
.name = NEU_PARSE_ERROR,
.t = NEU_JSON_INT,
.v.val_int = res->error,
} };
return neu_json_encode(elems, 3, buf);
+1 -1
View File
@@ -228,7 +228,7 @@ int neu_parse_encode(void *result, char **buf)
break;
case NEU_PARSE_OP_UPDATE_PLUGIN:
neu_parse_encode_update_plugin_res(
(struct neu_parese_update_plugin_res *) result, buf);
(struct neu_parse_update_plugin_res *) result, buf);
break;
case NEU_PARSE_OP_GET_PLUGIN:
neu_parse_encode_get_plugin_res(
-1
View File
@@ -24,7 +24,6 @@
#define KIND "kind"
#define NODE_TYPE "node_type"
#define PLUGIN_NAME "plugin_type"
#define PLUGIN_LIB_NAME "plugin_lib_name"
#define PLUGIN_ID "plugin_id"
#define PLUGIN_NAME "plugin_name"
+8
View File
@@ -57,6 +57,13 @@ target_include_directories(json_nodes_test PRIVATE
)
target_link_libraries(json_nodes_test neuron-base gtest_main gtest pthread jansson)
add_executable(json_plugin_test json_plugin_test.cc ${SRC_PARSER})
target_include_directories(json_plugin_test PRIVATE
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/include
)
target_link_libraries(json_plugin_test neuron-base gtest_main gtest pthread jansson)
include(GoogleTest)
gtest_discover_tests(json_test)
gtest_discover_tests(api_json_test)
@@ -66,3 +73,4 @@ gtest_discover_tests(json_group_config_test)
gtest_discover_tests(datatag_table_test)
gtest_discover_tests(json_datatag_table_test)
gtest_discover_tests(json_nodes_test)
gtest_discover_tests(json_plugin_test)
+18
View File
@@ -121,6 +121,24 @@ TEST(JsonNodesTest, DeleteNodesDecode)
neu_parse_decode_free(result);
}
TEST(JsonNodesTest, DeleteNodesEncode)
{
char *buf = (char *) "{\"function\": 37, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"error\": 0}";
char * result = NULL;
struct neu_parse_delete_nodes_res res = {
.function = NEU_PARSE_OP_DELETE_NODES,
.uuid = (char *) "554f5fd8-f437-11eb-975c-7704b9e17821",
.error = 0,
};
EXPECT_EQ(0, neu_parse_encode(&res, &result));
EXPECT_STREQ(buf, result);
free(result);
}
TEST(JsonNodesTest, UpdateNodesDecode)
{
char *buf = (char *) "{\"function\": 38, "
+167 -1
View File
@@ -2,4 +2,170 @@
#include <gtest/gtest.h>
#include "parser/neu_json_parser.h"
#include "parser/neu_json_parser.h"
#include "parser/neu_json_plugin.h"
TEST(JsonPluginTest, AddPluginDecode)
{
char *buf = (char *) "{\"function\": 39, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"kind\": 1, "
"\"node_type\": 1, "
"\"plugin_name\": \"plugin1\", "
"\"plugin_lib_name\": \"lib1\" }";
void * result = NULL;
struct neu_parse_add_plugin_req *req = NULL;
EXPECT_EQ(0, neu_parse_decode(buf, &result));
req = (struct neu_parse_add_plugin_req *) result;
EXPECT_EQ(NEU_PARSE_OP_ADD_PLUGIN, req->function);
EXPECT_STREQ("554f5fd8-f437-11eb-975c-7704b9e17821", req->uuid);
EXPECT_EQ(1, req->kind);
EXPECT_EQ(1, req->node_type);
EXPECT_STREQ("plugin1", req->plugin_name);
EXPECT_STREQ("lib1", req->plugin_lib_name);
neu_parse_decode_free(result);
}
TEST(JsonPluginTest, AddPluginEncode)
{
char *buf = (char *) "{\"function\": 39, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"error\": 0}";
char * result = NULL;
struct neu_parse_add_plugin_res res = {
.function = NEU_PARSE_OP_ADD_PLUGIN,
.uuid = (char *) "554f5fd8-f437-11eb-975c-7704b9e17821",
.error = 0,
};
EXPECT_EQ(0, neu_parse_encode(&res, &result));
EXPECT_STREQ(buf, result);
free(result);
}
TEST(JsonPluginTest, DeletePluginDecode)
{
char *buf = (char *) "{\"function\": 41, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"plugin_id\": 1 }";
void * result = NULL;
struct neu_parse_delete_plugin_req *req = NULL;
EXPECT_EQ(0, neu_parse_decode(buf, &result));
req = (struct neu_parse_delete_plugin_req *) result;
EXPECT_EQ(NEU_PARSE_OP_DELETE_PLUGIN, req->function);
EXPECT_STREQ("554f5fd8-f437-11eb-975c-7704b9e17821", req->uuid);
EXPECT_EQ(1, req->plugin_id);
neu_parse_decode_free(result);
}
TEST(JsonPluginTest, DeletePluginEncode)
{
char *buf = (char *) "{\"function\": 41, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"error\": 0}";
char * result = NULL;
struct neu_parse_delete_plugin_res res = {
.function = NEU_PARSE_OP_DELETE_PLUGIN,
.uuid = (char *) "554f5fd8-f437-11eb-975c-7704b9e17821",
.error = 0,
};
EXPECT_EQ(0, neu_parse_encode(&res, &result));
EXPECT_STREQ(buf, result);
free(result);
}
TEST(JsonPluginTest, UpdatePluginDecode)
{
char *buf = (char *) "{\"function\": 42, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"kind\": 2, "
"\"node_type\": 2, "
"\"plugin_name\": \"plugin1\", "
"\"plugin_lib_name\": \"lib1\" }";
void * result = NULL;
struct neu_parse_update_plugin_req *req = NULL;
EXPECT_EQ(0, neu_parse_decode(buf, &result));
req = (struct neu_parse_update_plugin_req *) result;
EXPECT_EQ(NEU_PARSE_OP_UPDATE_PLUGIN, req->function);
EXPECT_STREQ("554f5fd8-f437-11eb-975c-7704b9e17821", req->uuid);
EXPECT_EQ(2, req->kind);
EXPECT_EQ(2, req->node_type);
EXPECT_STREQ("plugin1", req->plugin_name);
EXPECT_STREQ("lib1", req->plugin_lib_name);
neu_parse_decode_free(result);
}
TEST(JsonPluginTest, UpdatePluginEncode)
{
char *buf = (char *) "{\"function\": 42, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"error\": 0}";
char * result = NULL;
struct neu_parse_add_plugin_res res = {
.function = NEU_PARSE_OP_UPDATE_PLUGIN,
.uuid = (char *) "554f5fd8-f437-11eb-975c-7704b9e17821",
.error = 0,
};
EXPECT_EQ(0, neu_parse_encode(&res, &result));
EXPECT_STREQ(buf, result);
free(result);
}
TEST(JsonPluginTest, GetPluginDecode)
{
char *buf = (char *) "{\"function\": 40, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\" }";
void * result = NULL;
struct neu_parse_get_plugin_req *req = NULL;
EXPECT_EQ(0, neu_parse_decode(buf, &result));
req = (struct neu_parse_get_plugin_req *) result;
EXPECT_EQ(NEU_PARSE_OP_GET_PLUGIN, req->function);
EXPECT_STREQ("554f5fd8-f437-11eb-975c-7704b9e17821", req->uuid);
neu_parse_decode_free(result);
}
TEST(JsonPluginTest, GetPluginEncode)
{
char *buf = (char *) "{\"function\": 40, "
"\"uuid\": \"554f5fd8-f437-11eb-975c-7704b9e17821\", "
"\"plugin_id\": 123, "
"\"kind\": 1, "
"\"node_type\": 1, "
"\"plugin_name\": \"plugin1\", "
"\"plugin_lib_name\": \"lib1\"}";
char * result = NULL;
struct neu_parse_get_plugin_res res;
res.function = NEU_PARSE_OP_GET_PLUGIN;
res.uuid = (char *) "554f5fd8-f437-11eb-975c-7704b9e17821";
res.plugin_id = 123;
res.kind = PLUGIN_KIND_SYSTEM;
res.node_type = NEU_NODE_TYPE_DRIVER;
res.plugin_name = (char *) "plugin1";
res.plugin_lib_name = (char *) "lib1";
EXPECT_EQ(0, neu_parse_encode(&res, &result));
EXPECT_STREQ(buf, result);
free(result);
}