upload source
[pkgs/d/drm-trusted.git] / TC / unit / utc_drmtrustedclient_drm_trusted_open_convert_func.c
1 /*\r
2  * drm-trusted-client TCs\r
3  *\r
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.\r
5  *\r
6  * Contact: Hakjoo Ko <hakjoo.ko@samsung.com>\r
7  *                      Mahendra Kumar Prajapat <mahendra.p@samsung.com>\r
8  *                      Harsha Shekar <h.shekar@samsung.com>\r
9  *                      Ravi S <ravi.cs@samsung.com>\r
10  *\r
11  *\r
12  * Licensed under the Apache License, Version 2.0 (the "License");\r
13  * you may not use this file except in compliance with the License.\r
14  * You may obtain a copy of the License at\r
15  *\r
16  * http://www.apache.org/licenses/LICENSE-2.0\r
17  *\r
18  * Unless required by applicable law or agreed to in writing, software\r
19  * distributed under the License is distributed on an "AS IS" BASIS,\r
20  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
21  * See the License for the specific language governing permissions and\r
22  * limitations under the License.\r
23  *\r
24  */\r
25 \r
26 /**\r
27  * @file                utc_drmtrustedclient_drm_trusted_open_convert_func.c\r
28  * @brief       TETware unit testing functions for drm_trusted_open_convert.\r
29  * @author      Ravi S (ravi.cs@samsung.com)\r
30  * @version     0.1\r
31  * @history     0.1: Initial draft\r
32  */\r
33 \r
34 #include <tet_api.h>\r
35 #include "drm_test_contents_def.h"\r
36 #include <time.h>\r
37 #include <fcntl.h>\r
38 #include <sys/types.h>\r
39 #include <sys/stat.h>\r
40 #include <errno.h>\r
41 \r
42 static void startup(void);\r
43 static void cleanup(void);\r
44 \r
45 void (*tet_startup)(void) = startup;\r
46 void (*tet_cleanup)(void) = cleanup;\r
47 \r
48 static void utc_drmtrustedclient_drm_trusted_open_convert_func_01(void);\r
49 static void utc_drmtrustedclient_drm_trusted_open_convert_func_02(void);\r
50 static void utc_drmtrustedclient_drm_trusted_open_convert_func_03(void);\r
51 \r
52 \r
53 enum {\r
54         POSITIVE_TC_IDX = 0x01,\r
55         NEGATIVE_TC_IDX,\r
56 };\r
57 \r
58 struct tet_testlist tet_testlist[] = {\r
59         { utc_drmtrustedclient_drm_trusted_open_convert_func_01, POSITIVE_TC_IDX },\r
60         { utc_drmtrustedclient_drm_trusted_open_convert_func_02, NEGATIVE_TC_IDX },\r
61         { utc_drmtrustedclient_drm_trusted_open_convert_func_03, NEGATIVE_TC_IDX },\r
62         { NULL, 0 }\r
63 };\r
64 \r
65 static void startup(void)\r
66 {\r
67         tet_infoline("drm_trusted_open_convert:Test started");\r
68 }\r
69 \r
70 static void cleanup(void)\r
71 {\r
72         tet_infoline("drm_trusted_open_convert:Test completed");\r
73 }\r
74 \r
75 /**\r
76  * @brief Positive test case of drm_trusted_open_convert()\r
77  */\r
78 static void utc_drmtrustedclient_drm_trusted_open_convert_func_01(void)\r
79 {\r
80         DRM_TRUSTED_CONVERT_HANDLE hConvert;\r
81         drm_trusted_opn_conv_info_s input;\r
82         drm_trusted_write_conv_info_s write_input;\r
83         drm_trusted_write_conv_resp_s output;\r
84 \r
85         FILE *fp = NULL;\r
86         unsigned int FileSize=-1;\r
87         unsigned char *buffer = NULL;\r
88         struct stat statbuf;\r
89         int readed_size = -1;\r
90         int ret = -1;\r
91 \r
92         /* memset the structures */\r
93         memset(&hConvert, 0x0, sizeof(DRM_TRUSTED_CONVERT_HANDLE));\r
94         memset(&input, 0x0, sizeof(drm_trusted_opn_conv_info_s));\r
95         memset(&output, 0x0, sizeof(drm_trusted_write_conv_resp_s));\r
96         memset(&write_input, 0x0, sizeof(drm_trusted_opn_conv_info_s));\r
97         memset(&statbuf, 0x0, sizeof(struct stat));\r
98 \r
99         memcpy(input.filePath,FILE_PATH_VALID_FILE_OMA_9,strlen(FILE_PATH_VALID_FILE_OMA_9));\r
100         input.install_RO = DRM_TRUSTED_FALSE;\r
101 \r
102         ret = drm_trusted_open_convert(&input,&hConvert);\r
103 \r
104         if (DRM_TRUSTED_RETURN_SUCCESS == ret) {\r
105                 tet_printf("drm_trusted_open_convert:ret=0x%x", ret);\r
106         } else {\r
107                 tet_printf("drm_trusted_open_convert:ret=0x%x", ret);\r
108                 tet_result(TET_FAIL);\r
109                 return;\r
110         }\r
111     fp = fopen(FILE_PATH_VALID_DM_FILE_OMA_1, "r");\r
112     if (fp == NULL)\r
113     {\r
114        tet_printf("fopen error:error=%s",strerror(errno));\r
115        tet_result(TET_FAIL);\r
116        return;\r
117     }\r
118 \r
119     if(stat(FILE_PATH_VALID_DM_FILE_OMA_1, &statbuf) == 0 )\r
120        FileSize = (unsigned int)statbuf.st_size;\r
121     tet_printf("FileSize=%u",FileSize);\r
122     if(FileSize == 0)\r
123     {\r
124        tet_result(TET_FAIL);\r
125        return;\r
126     }\r
127     buffer = (unsigned char *)malloc(FileSize + 1);\r
128     if(!buffer)\r
129     {\r
130        tet_printf("malloc failed:error=%s",strerror(errno));\r
131        free(buffer);\r
132        tet_result(TET_FAIL);\r
133        return;\r
134     }\r
135     memset(buffer,0x0, FileSize+1);\r
136     readed_size = fread(buffer,1,FileSize,fp);\r
137     tet_printf("fread:read_size=%d",readed_size);\r
138     if(readed_size == -1)\r
139     {\r
140        tet_result(TET_FAIL);\r
141        return;\r
142     }\r
143     buffer[FileSize] = '\0';\r
144 \r
145     write_input.data_len = FileSize;\r
146     write_input.data = buffer;\r
147 \r
148     ret = drm_trusted_write_convert(&write_input,&output,hConvert);\r
149 \r
150         if (DRM_TRUSTED_RETURN_SUCCESS == ret) {\r
151                 tet_printf("drm_trusted_write_convert:ret=0x%x", ret);\r
152         } else {\r
153                 tet_printf("drm_trusted_write_convert:ret=0x%x", ret);\r
154                 tet_result(TET_FAIL);\r
155         }\r
156 \r
157         tet_printf("bytes written=%d",output.write_size);\r
158         if(FileSize != output.write_size)\r
159         {\r
160                 tet_printf("Data is not written successfully");\r
161                 tet_result(TET_FAIL);\r
162                 return;\r
163         }\r
164 \r
165         ret = drm_trusted_close_convert(&hConvert);\r
166 \r
167         if (DRM_TRUSTED_RETURN_SUCCESS == ret) {\r
168                 tet_printf("drm_trusted_close_convert:ret=0x%x", ret);\r
169                 tet_printf("drm_trusted_open_convert,drm_trusted_write_convert and drm_trusted_close_convert all have passed");\r
170                 tet_result(TET_PASS);\r
171         } else {\r
172                 tet_printf("drm_trusted_close_convert:ret=0x%x", ret);\r
173                 tet_result(TET_FAIL);\r
174         }\r
175 }\r
176 \r
177 /**\r
178  * @brief Negative test case of drm_trusted_open_convert()\r
179  */\r
180 static void utc_drmtrustedclient_drm_trusted_open_convert_func_02(void)\r
181 {\r
182         DRM_TRUSTED_CONVERT_HANDLE hConvert;\r
183         int ret = -1;\r
184 \r
185         /* memset the structures */\r
186         memset(&hConvert, 0x0, sizeof(DRM_TRUSTED_CONVERT_HANDLE));\r
187 \r
188         ret = drm_trusted_open_convert(NULL,&hConvert);\r
189         tet_printf("ret = 0x%x", ret);\r
190         if (DRM_TRUSTED_RETURN_SUCCESS == ret) {\r
191                 tet_printf("drm_trusted_open_convert ret=0x%x", ret);\r
192                 tet_result(TET_FAIL);\r
193         } else {\r
194                 tet_printf("drm_trusted_open_convert ret=0x%x", ret);\r
195                 tet_result(TET_PASS);\r
196         }\r
197 }\r
198 \r
199 /**\r
200  * @brief Negative test case of drm_trusted_open_convert()\r
201  */\r
202 static void utc_drmtrustedclient_drm_trusted_open_convert_func_03(void)\r
203 {\r
204         drm_trusted_opn_conv_info_s input;\r
205         int ret = -1;\r
206 \r
207         /* memset the structures */\r
208         memset(&input, 0x0, sizeof(drm_trusted_opn_conv_info_s));\r
209 \r
210         ret = drm_trusted_open_convert(&input,NULL);\r
211         tet_printf("ret = 0x%x", ret);\r
212         if (DRM_TRUSTED_RETURN_SUCCESS == ret) {\r
213                 tet_printf("drm_trusted_open_convert ret=0x%x", ret);\r
214                 tet_result(TET_FAIL);\r
215         } else {\r
216                 tet_printf("drm_trusted_open_convert ret=0x%x", ret);\r
217                 tet_result(TET_PASS);\r
218         }\r
219 }\r
220 \r