diff options
Diffstat (limited to 'unittest/beluga-launcher_dzl_dockerform.cpp')
-rwxr-xr-x | unittest/beluga-launcher_dzl_dockerform.cpp | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/unittest/beluga-launcher_dzl_dockerform.cpp b/unittest/beluga-launcher_dzl_dockerform.cpp new file mode 100755 index 0000000..e62b322 --- /dev/null +++ b/unittest/beluga-launcher_dzl_dockerform.cpp @@ -0,0 +1,291 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <gtest/gtest.h> + +#include <sys/stat.h> +#include <sys/types.h> + +#include "dockzen_types.h" +#include "dzl_internal_types.h" +#include "dzl_dockerform.h" + +using ::testing::InitGoogleTest; + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_generate_url){ + char version[10]="v2.6"; + char url[10]="tasks"; + char newUrl[128]={0,}; + int nRetVal = DOCKER_STATUS_NO_ERROR; + + nRetVal = dockerform_generate_url(version, url, newUrl, sizeof(newUrl)); + + EXPECT_EQ(DOCKER_STATUS_NO_ERROR, nRetVal); +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_genetate_docker_cmd){ + char command[128] = {0, }; + int nRetVal = DOCKER_STATUS_NO_ERROR; + docker_control_info_s *ctl_docker_p; + int str_len = 0; + + ctl_docker_p = (docker_control_info_s*)malloc(sizeof(docker_control_info_s)); + if (ctl_docker_p != NULL) + { + memset(ctl_docker_p, 0x00, sizeof(docker_control_info_s)); + + str_len = strlen("/usr/bin"); + ctl_docker_p->path = (char*)malloc(str_len+1); + if (ctl_docker_p->path != NULL) + { + strncpy(ctl_docker_p->path, "/usr/bin", str_len); + ctl_docker_p->path[str_len] = '\0'; + + str_len = strlen("overlay2"); + ctl_docker_p->opt_cmd = (char*)malloc(str_len+1); + if (ctl_docker_p->opt_cmd != NULL) + { + strncpy(ctl_docker_p->opt_cmd, "overlay2", str_len); + ctl_docker_p->opt_cmd[str_len] = '\0'; + + nRetVal = dockerform_genetate_docker_cmd(ctl_docker_p,"dockerd",command, sizeof(command)); + free(ctl_docker_p->opt_cmd); + } + else + { + nRetVal = DOCKZEN_ERROR_OUT_OF_MEMORY; + } + free(ctl_docker_p->path); + } + else + { + nRetVal = DOCKZEN_ERROR_OUT_OF_MEMORY; + } + free(ctl_docker_p); + } + else + { + nRetVal = DOCKZEN_ERROR_OUT_OF_MEMORY; + } + + EXPECT_EQ(DOCKER_STATUS_NO_ERROR, nRetVal); +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_check_response){ + char message1[128] = {"{\"message\": \"No such container: c2ada9df5af8\"}"}; + char message2[128] = {"{ }"}; + int nRetVal = DOCKER_STATUS_NO_ERROR; + + nRetVal = dockerform_check_response(message1); + EXPECT_EQ(1, nRetVal); + + nRetVal = dockerform_check_response(message2); + EXPECT_EQ(DOCKER_STATUS_NO_ERROR, nRetVal); +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_generate_imagecreate_data){ + container_create_info_s *createInfo; + char name[10] = {"tizen"}; + char image[10] = {"headless"}; + char entry_cmd[15] = {"/bin/bash"}; + char net_mode[10] = {"host"}; + char *data = NULL; + int data_size = 0; + + createInfo = (container_create_info_s *)malloc(sizeof(container_create_info_s)); + if (createInfo != NULL) + { + memset(createInfo, 0x00, sizeof(container_create_info_s)); + createInfo->name = name; + createInfo->image = image; + createInfo->entry_cmd = entry_cmd; + createInfo->net_mode = net_mode; + + data_size = dockerform_generate_imagecreate_data(createInfo, &data); + free(createInfo); + } + EXPECT_STRNE(NULL, data); + + if (data != NULL) + { + free(data); + } +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_generate_swarm_init){ + char *data = NULL; + int data_size = 0; + + data_size = dockerform_generate_swarm_init(&data); + + EXPECT_STRNE(NULL, data); + + if (data != NULL) + { + free(data); + } +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_generate_servicesinfo){ + int nRetVal = DOCKER_STATUS_NO_ERROR; + dzl_dockerctl_ServicesInfo *pstServicesInfo; + char data[1024] = {"[{\ + \"ID\": \"9mnpnzenvg8p8tdbtq4wvbkcz\",\ + \"Spec\": {\ + \"Name\": \"hopeful_cori\",\ + \"TaskTemplate\": {\ + \"ContainerSpec\": {\ + \"Image\": \"redis\"\ + },\ + \"Resources\": {\ + \"Limits\": {},\ + \"Reservations\": {}\ + },\ + \"RestartPolicy\": {\ + \"Condition\": \"any\",\ + \"MaxAttempts\": 0\ + },\ + \"Placement\": {},\ + \"ForceUpdate\": 0\ + },\ + \"Mode\": {\ + \"Replicated\": {\ + \"Replicas\": 1\ + }\ + },\ + },\ + }]"}; + + pstServicesInfo = (dzl_dockerctl_ServicesInfo *)malloc(sizeof(dzl_dockerctl_ServicesInfo)); + if (pstServicesInfo != NULL) + { + memset(pstServicesInfo, 0x00, sizeof(dzl_dockerctl_ServicesInfo)); + nRetVal = dockerform_generate_servicesinfo(data, pstServicesInfo); + } + else + { + nRetVal = -1; + } + + EXPECT_EQ(DOCKER_STATUS_NO_ERROR, nRetVal); + EXPECT_EQ(1, pstServicesInfo->count); + + if (pstServicesInfo != NULL) + { + free(pstServicesInfo); + } +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_generate_tasksinfo){ + dzl_dockerctl_TasksInfo *pstTasksInfo; + int nRetVal = DOCKER_STATUS_NO_ERROR; + char data[1024] = {"[\ + {\ + \"ID\": \"0kzzo1i0y4jz6027t0k7aezc7\",\ + \"ServiceID\": \"9mnpnzenvg8p8tdbtq4wvbkcz\",\ + \"DesiredState\": \"running\",\ + },\ + {\ + \"ID\": \"1yljwbmlr8er2waf8orvqpwms\",\ + \"ServiceID\": \"9mnpnzenvg8p8tdbtq4wvbkcz\",\ + \"DesiredState\": \"shutdown\",\ + }\ + ]"}; + + pstTasksInfo = (dzl_dockerctl_TasksInfo *)malloc(sizeof(dzl_dockerctl_TasksInfo)); + if (pstTasksInfo != NULL) + { + memset(pstTasksInfo, 0x00, sizeof(dzl_dockerctl_TasksInfo)); + nRetVal = dockerform_generate_tasksinfo(data, pstTasksInfo); + } + else + { + nRetVal = -1; + } + + EXPECT_EQ(DOCKER_STATUS_NO_ERROR, nRetVal); + EXPECT_EQ(2, pstTasksInfo->count); + + if (pstTasksInfo != NULL) + { + free(pstTasksInfo); + } +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_generate_service_withid_info){ + dzl_dockerctl_serviceinfo_s *info; + int nRetVal = DOCKER_STATUS_NO_ERROR; + char data[1024] = {"[\ + {\ + \"ID\": \"9mnpnzenvg8p8tdbtq4wvbkcz\",\ + \"Version\": {\ + \"Index\": 19\ + },\ + }\ + ]"}; + + info = (dzl_dockerctl_serviceinfo_s *)malloc(sizeof(dzl_dockerctl_serviceinfo_s)); + if (info != NULL) + { + nRetVal = dockerform_generate_service_withid_info(data, info); + } + else + { + nRetVal = -1; + } + + EXPECT_EQ(DOCKER_STATUS_NO_ERROR, nRetVal); + + if (info != NULL) + { + free(info); + } +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_generate_updateinfo){ + char * data = NULL; + int data_size = 0; + dzl_dockerctl_serviceinfo_s service_info = {0,}; + char imageName[128] = {"headless:v2.0"}; + char id[125] = {"9mnpnzenvg8p8tdbtq4wvbkcz"}; + char spec[1024] = {"{\"TaskTemplate\": {\ + \"ContainerSpec\": {\ + \"Image\": \"redis\"\ + },\ + },\ + }"}; + + service_info.spec_config = spec; + service_info.id = id; + service_info.version = 19; + data_size = dockerform_generate_updateinfo(&service_info, imageName, &data); + + EXPECT_STRNE(NULL, data); + + if (data != NULL) + { + free(data); + } +} + +TEST(belugalauncher_dockerform, belugalauncher_dockerform_parse_container_info){ + int nRetVal = DOCKER_STATUS_NO_ERROR; + dzl_dockerctl_Task task_info = { 0, }; + char data[1024] = {"{\ + \"Type\": \"container\",\ + \"Action\": \"create\",\ + \"Actor\": {\ + \"ID\": \"ede54ee1afd\",\ + \"Attributes\": {\ + \"com.example.some-label\": \"some-label-value\",\ + \"image\": \"alpine\",\ + \"name\": \"my-container\"\ + }\ + },\ + \"time\": 1461943101\ + }"}; + + nRetVal = dockerform_parse_container_info(data, &task_info); + + EXPECT_EQ(DOCKER_STATUS_NO_ERROR, nRetVal); +} |