1 #include <gtest/gtest.h>
4 #include <tbm_bufmgr.h>
5 #include <tbm_surface.h>
8 TEST_F(UtInit, SurfaceQueryFormatsFailNull)
11 tbm_format *formats = NULL;
12 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
14 ut_set_default_tbm_env();
16 result = (tbm_surface_error_e)tbm_surface_query_formats(&formats, NULL);
17 ASSERT_NE(TBM_SURFACE_ERROR_NONE, result);
19 result = (tbm_surface_error_e)tbm_surface_query_formats(NULL, &num);
20 ASSERT_NE(TBM_SURFACE_ERROR_NONE, result);
23 TEST_F(UtInit, SurfaceQueryFormatSuccess)
26 tbm_format *formats = NULL;
27 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
29 ut_set_default_tbm_env();
31 result = (tbm_surface_error_e)tbm_surface_query_formats(&formats, &num);
32 ASSERT_EQ(TBM_SURFACE_ERROR_NONE, result);
34 ASSERT_NE((tbm_format *)NULL, formats);
35 for (uint32_t i = 0; i < num; i++)
36 ASSERT_NE(0, formats[i]);
40 TEST_F(UtInit, SurfaceCeateFailInvalidGeometry)
42 tbm_surface_h surface = NULL;
44 ut_set_default_tbm_env();
46 surface = tbm_surface_create(-1, 1024, TBM_FORMAT_ARGB8888);
47 ASSERT_EQ(nullptr, surface); // Expected Value: NULL
49 surface = tbm_surface_create(720, -1, TBM_FORMAT_ARGB8888);
50 ASSERT_EQ(nullptr, surface);
52 surface = tbm_surface_create(720, 1024, 0);
53 ASSERT_EQ(nullptr, surface);
56 TEST_F(UtInit, SurfaceCeateSuccess)
58 tbm_surface_h surface = NULL;
60 tbm_format *formats = NULL;
61 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
63 ut_set_default_tbm_env();
65 result = (tbm_surface_error_e)tbm_surface_query_formats(&formats, &num);
66 ASSERT_EQ(TBM_SURFACE_ERROR_NONE, result);
68 for (uint32_t i = 0; i < num; i++) {
69 surface = tbm_surface_create(720, 1024, formats[i]);
70 ASSERT_NE((tbm_surface_h)NULL, surface);
71 result = (tbm_surface_error_e)tbm_surface_destroy(surface);
72 ASSERT_EQ(TBM_SURFACE_ERROR_NONE, result);
76 TEST_F(SurfaceTest, SurfaceGetFormatFailInvalidInput)
78 tbm_surface_h invalid_surface = (tbm_surface_h)1;
79 tbm_format fmt = tbm_surface_get_format(invalid_surface);
83 TEST_F(SurfaceTest, SurfaceGetFormatFailNull)
85 tbm_format fmt = tbm_surface_get_format(NULL);
89 TEST_F(SurfaceTest, SurfaceGetFormatSuccess)
91 tbm_format fmt = tbm_surface_get_format(surface);
92 ASSERT_EQ(this->format, fmt);
95 TEST_F(SurfaceTest, SurfaceGetWidthFailInvalidInput)
97 tbm_surface_h invalid_surface = (tbm_surface_h)1;
98 int width = tbm_surface_get_width(invalid_surface);
102 TEST_F(SurfaceTest, SurfaceGetWidthFailNull)
104 int width = tbm_surface_get_width(NULL);
105 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, width);
108 TEST_F(SurfaceTest, SurfaceGetWidthSuccess)
110 int width = tbm_surface_get_width(surface);
111 ASSERT_EQ(this->width, width);
114 TEST_F(SurfaceTest, SurfaceGetHeightFailInvalidInput)
116 tbm_surface_h invalid_surface = (tbm_surface_h)1;
117 int height = tbm_surface_get_height(invalid_surface);
118 ASSERT_EQ(0, height);
121 TEST_F(SurfaceTest, SurfaceGetHeightFailNull)
123 int height = tbm_surface_get_height(NULL);
124 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, height);
127 TEST_F(SurfaceTest, SurfaceGetHeightSuccess)
129 int height = tbm_surface_get_height(surface);
130 ASSERT_EQ(this->height, height);
133 TEST_F(SurfaceTest, SurfaceGetInfoInvalidInput)
135 tbm_surface_h invalid_surface = (tbm_surface_h)1;
136 tbm_surface_info_s info;
137 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
139 result = (tbm_surface_error_e)tbm_surface_get_info(invalid_surface, &info);
140 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_OPERATION, result);
143 TEST_F(SurfaceTest, SurfaceGetInfoFailNull)
145 tbm_surface_info_s info;
146 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
148 result = (tbm_surface_error_e)tbm_surface_get_info(surface, NULL);
149 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, result);
151 result = (tbm_surface_error_e)tbm_surface_get_info(NULL, &info);
152 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, result);
154 result = (tbm_surface_error_e)tbm_surface_get_info(NULL, NULL);
155 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, result);
158 TEST_F(SurfaceTest, SurfaceGetInfoSuccess)
160 tbm_surface_info_s info;
161 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
163 result = (tbm_surface_error_e)tbm_surface_get_info(surface, &info);
164 ASSERT_EQ(TBM_SURFACE_ERROR_NONE, result);
165 ASSERT_EQ(this->format, info.format);
166 ASSERT_EQ(this->height, info.height);
167 ASSERT_EQ(this->width, info.width);
168 ASSERT_GT(info.num_planes, 0);
169 ASSERT_GT(info.bpp, 0);
170 ASSERT_GT(info.size, 0);
173 TEST_F(SurfaceTest, SurfaceMapFailInvalidInput)
175 tbm_surface_info_s info;
176 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
177 tbm_surface_h invalid_surface = (tbm_surface_h)1;
179 result = (tbm_surface_error_e)tbm_surface_map(invalid_surface, 0, &info);
180 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_OPERATION, result);
183 TEST_F(SurfaceTest, SurfaceMapFailNull)
185 tbm_surface_info_s info;
186 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
188 result = (tbm_surface_error_e)tbm_surface_map(surface, 0, NULL);
189 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, result);
191 result = (tbm_surface_error_e)tbm_surface_map(NULL, 0, &info);
192 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, result);
195 TEST_F(SurfaceTest, SurfaceMapSuccess)
197 tbm_surface_info_s info;
198 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
200 result = (tbm_surface_error_e)tbm_surface_map(surface, 0, &info);
201 ASSERT_EQ(TBM_SURFACE_ERROR_NONE, result);
202 ASSERT_EQ(this->format, info.format);
203 ASSERT_EQ(this->height, info.height);
204 ASSERT_EQ(this->width, info.width);
205 ASSERT_GT(info.num_planes, 0);
206 ASSERT_GT(info.bpp, 0);
207 ASSERT_GT(info.size, 0);
209 result = (tbm_surface_error_e)tbm_surface_unmap(surface);
210 ASSERT_EQ(TBM_SURFACE_ERROR_NONE, result);
213 TEST_F(SurfaceTest, SurfaceUnmapFailInvalidInput)
215 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
216 tbm_surface_h invalid_surface = (tbm_surface_h)1;
217 result = (tbm_surface_error_e)tbm_surface_unmap(invalid_surface);
218 ASSERT_EQ(TBM_SURFACE_ERROR_NONE, result);
221 TEST_F(SurfaceTest, SurfaceUnmapFailNull)
223 tbm_surface_error_e result = TBM_SURFACE_ERROR_NONE;
225 result = (tbm_surface_error_e)tbm_surface_unmap(NULL);
226 ASSERT_EQ(TBM_SURFACE_ERROR_INVALID_PARAMETER, result);