Merge test folder of test branch
[iotivity.git] / test / src / tc / cs / gtest / csdk / src / helper / CSCsdkUtilityHelper.cpp
1 /******************************************************************
2  *
3  * Copyright 2017 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  *
20  ******************************************************************/
21 #include "CSCsdkUtilityHelper.h"
22
23 OCDevAddr CSCsdkUtilityHelper::getOCDevAddrEndPoint()
24 {
25     OCDevAddr endPoint;
26
27     memset(&endPoint, 0, sizeof(endPoint));
28     strncpy(endPoint.addr, DEFAULT_HOST, sizeof(endPoint.addr));
29     endPoint.port = OC_MULTICAST_PORT;
30
31     return endPoint;
32 }
33
34 cloudAce_t* CSCsdkUtilityHelper::createCloudAces()
35 {
36
37     int acllistCount = 1;
38     cloudAce_t *aces = NULL;
39
40     int i;
41
42     for (i = 0; i < acllistCount; i++)
43     {
44         cloudAce_t *ace = (cloudAce_t*) OICCalloc(1, sizeof(cloudAce_t));
45         if (!ace)
46         {
47             IOTIVITYTEST_LOG(ERROR, "Can't allocate memory for ace");
48         }
49         LL_APPEND(aces, ace);
50
51         char aceid[MAX_ID_LENGTH] =
52         { 0 };
53
54         if (OC_STACK_OK != ConvertStrToUuid(SUBJECT_ID_EXAMPLE, &ace->subjectuuid))
55         {
56             IOTIVITYTEST_LOG(ERROR, "Adding Subject ID Failed");
57         }
58
59         ace->aceId = OICStrdup(aceid);
60         ace->stype = 0;
61         ace->permission = 31;
62
63         int reslist_count = 1;
64
65         int j;
66
67         for (j = 0; j < reslist_count; j++)
68         {
69             OicSecRsrc_t *res = (OicSecRsrc_t*) OICCalloc(1, sizeof(OicSecRsrc_t));
70             if (!res)
71             {
72                 IOTIVITYTEST_LOG(ERROR, "Adding Resource ID Failed");
73             }
74             LL_APPEND(ace->resources, res);
75
76             static int resourceNumber = 2;
77             static const char* resTypeArray[2] =
78             { "core.test.light", "core.test.bulb" };
79
80             stringArray_t *rt =  (stringArray_t*) OICCalloc(resourceNumber, sizeof(stringArray_t*));
81             rt->array = resTypeArray;
82             rt->length = resourceNumber;
83
84             static int interfaceNumber = 2;
85             static const char* interfaceArray[2] =
86             { "oic.if.baseline", "oic.if.a" };
87
88             stringArray_t *_if =  (stringArray_t*) OICCalloc(resourceNumber, sizeof(stringArray_t*));
89             _if->array = interfaceArray;
90             _if->length = interfaceNumber;
91
92             res->href = OICStrdup(RESOURCE_URI_EXAMPLE);
93             res->types = rt->array;
94             res->typeLen = rt->length;
95             res->interfaces = _if->array;
96             res->interfaceLen = _if->length;
97         }
98     }
99
100     return aces;
101 }
102
103 OCProvisionDev_t* CSCsdkUtilityHelper::getDevInst(OCProvisionDev_t* dev_lst, const int dev_num)
104 {
105     __FUNC_IN__
106
107     if (!dev_lst || 0 >= dev_num)
108     {
109         IOTIVITYTEST_LOG(ERROR, "[PMHelper] Device List is Empty");
110         return NULL;
111     }
112
113     OCProvisionDev_t* lst = (OCProvisionDev_t*) dev_lst;
114
115     for (int i = 0; lst;)
116     {
117         if (dev_num == ++i)
118         {
119             IOTIVITYTEST_LOG(DEBUG, "[PMHelper] getDevInst OUT");
120             return lst;
121         }
122         lst = lst->next;
123     }
124
125     __FUNC_OUT__
126     return NULL; // in here |lst| is always |NULL|
127 }
128
129 int CSCsdkUtilityHelper::printDevList(OCProvisionDev_t* dev_lst)
130 {
131     __FUNC_IN__
132
133     if (!dev_lst)
134     {
135         IOTIVITYTEST_LOG(INFO, "[PMHelper] Device List is Empty...");
136         return 0;
137     }
138
139     OCProvisionDev_t* lst = (OCProvisionDev_t*) dev_lst;
140     int lst_cnt = 0;
141
142     for (; lst;)
143     {
144         printf("     [%d] ", ++lst_cnt);
145         printUuid((const OicUuid_t*) &lst->doxm->deviceID);
146         printf("\n");
147         lst = lst->next;
148     }
149     printf("\n");
150
151     __FUNC_OUT__
152     return lst_cnt;
153 }
154
155 size_t CSCsdkUtilityHelper::printUuidList(const OCUuidList_t* uid_lst)
156 {
157     __FUNC_IN__
158
159     if (!uid_lst)
160     {
161         IOTIVITYTEST_LOG(INFO, "[PMHelper] Device List is Empty...");
162         return 0;
163     }
164
165     OCUuidList_t* lst = (OCUuidList_t*) uid_lst;
166     size_t lst_cnt = 0;
167
168     for (; lst;)
169     {
170         printf("     [%zu] ", ++lst_cnt);
171         printUuid((const OicUuid_t*) &lst->dev);
172         printf("\n");
173         lst = lst->next;
174     }
175     printf("\n");
176
177     __FUNC_OUT__
178     return lst_cnt;
179 }
180
181 int CSCsdkUtilityHelper::printResultList(const OCProvisionResult_t* rslt_lst, const int rslt_cnt)
182 {
183     __FUNC_IN__
184
185     if (!rslt_lst || 0 >= rslt_cnt)
186     {
187         IOTIVITYTEST_LOG(INFO, "[PMHelper] Device List is Empty...");
188         return 0;
189     }
190
191     int lst_cnt = 0;
192     for (; rslt_cnt > lst_cnt; ++lst_cnt)
193     {
194         printf("     [%d] ", lst_cnt + 1);
195         printUuid((const OicUuid_t*) &rslt_lst[lst_cnt].deviceId);
196         printf(" - result: %s\n", CommonUtil::getOCStackResult(rslt_lst[lst_cnt].res));
197     }
198     printf("\n");
199
200     __FUNC_OUT__
201     return lst_cnt;
202 }
203
204 void CSCsdkUtilityHelper::printUuid(const OicUuid_t* uid)
205 {
206     __FUNC_IN__
207
208     for (int i = 0; i < UUID_LENGTH;)
209     {
210         printf("%02X", (*uid).id[i++]);
211         if (i == 4 || i == 6 || i == 8 || i == 10) // canonical format for UUID has '8-4-4-4-12'
212         {
213             printf("%c", DASH);
214         }
215     }
216     printf("\n");
217
218     __FUNC_OUT__
219 }
220
221 /**
222  * Function to set failure message
223  */
224 std::string CSCsdkUtilityHelper::setFailureMessage(OCStackResult actualResult,
225         OCStackResult expectedResult)
226 {
227     std::string errorMessage("\033[1;31m[Error] Expected : ");
228     errorMessage.append(CommonUtil::getOCStackResult(expectedResult));
229     errorMessage.append("\033[0m  \033[1;31mActual : ");
230     errorMessage.append(CommonUtil::getOCStackResult(actualResult));
231     errorMessage.append("\033[0m");
232     return errorMessage;
233 }
234
235 /**
236  * Function to set failure message
237  */
238 std::string CSCsdkUtilityHelper::setFailureMessage(std::string errorMessage)
239 {
240     std::string retErrorMessage("\033[1;31m[Error] Expected : ");
241     retErrorMessage.append(errorMessage);
242     retErrorMessage.append("\033[0m");
243
244     return retErrorMessage;
245 }
246
247 std::string CSCsdkUtilityHelper::readfile(std::string filename)
248 {
249     __FUNC_IN__
250     FILE *fp;
251     char buff[100];
252
253     fp = fopen(filename.c_str(), "r");
254
255     if (NULL == fp)
256     {
257         IOTIVITYTEST_LOG(ERROR, "[CSC Helper] ERROR Opening File : %s", filename.c_str());
258     }
259
260     if (NULL == fgets(buff, 100, (FILE*) fp))
261     {
262         IOTIVITYTEST_LOG(ERROR, "[CSC Helper] Unable to Get input from File: %s", filename.c_str());
263     }
264
265     fclose(fp);
266
267     IOTIVITYTEST_LOG(DEBUG, "[CSC Helper] Recieved Data : %s", buff);
268
269     __FUNC_OUT__
270     return std::string(buff);
271 }
272