summaryrefslogtreecommitdiff
path: root/unittest/beluga-launcher_dzl_dockerform.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittest/beluga-launcher_dzl_dockerform.cpp')
-rwxr-xr-xunittest/beluga-launcher_dzl_dockerform.cpp291
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);
+}