1 /**************************************************************************
3 * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved.
5 * Contact: Konstantin Drabeniuk <k.drabeniuk@samsung.com>
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the
9 * "Software"), to deal in the Software without restriction, including
10 * without limitation the rights to use, copy, modify, merge, publish,
11 * distribute, sub license, and/or sell copies of the Software, and to
12 * permit persons to whom the Software is furnished to do so, subject to
13 * the following conditions:
15 * The above copyright notice and this permission notice (including the
16 * next paragraph) shall be included in all copies or substantial portions
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
22 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
23 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 **************************************************************************/
29 #include "gtest/gtest.h"
31 #include "tbm_bufmgr_int.h"
33 #include "pthread_stubs.h"
34 #include "stdlib_stubs.h"
36 /* HELPER FUNCTIONS */
38 #include "tbm_bufmgr.h"
40 static int UT_TBM_SURFACE_INTERNAL_ERROR = 0;
41 static struct _tbm_bufmgr ut_ret_bufmgr;
42 static int ut_tbm_bo_unmap_count = 0;
43 static int ut_tbm_data_free_called = 0;
45 static tbm_bufmgr ut_tbm_bufmgr_init(int fd)
47 return &ut_ret_bufmgr;
50 static void ut_tbm_bufmgr_deinit(tbm_bufmgr bufmgr) {}
52 static int ut_surface_supported_format(uint32_t **formats, uint32_t *num)
54 if (UT_TBM_SURFACE_INTERNAL_ERROR) {
61 static tbm_bo_handle ut_tbm_bo_get_handle(tbm_bo bo, int device)
63 tbm_bo_handle ut_ret_handle;
67 static int ut_tbm_bo_unmap(tbm_bo bo)
69 ut_tbm_bo_unmap_count++;
72 static void ut_tbm_data_free(void *user_data)
74 ut_tbm_data_free_called = 1;
77 #define pthread_mutex_lock ut_pthread_mutex_lock
78 #define pthread_mutex_unlock ut_pthread_mutex_unlock
79 #define pthread_mutex_init ut_pthread_mutex_init
80 #define calloc ut_calloc
82 #define tbm_bufmgr_init ut_tbm_bufmgr_init
83 #define tbm_bufmgr_deinit ut_tbm_bufmgr_deinit
84 #define tbm_bo_get_handle ut_tbm_bo_get_handle
85 #define tbm_bo_unmap ut_tbm_bo_unmap
87 #include "tbm_surface_internal.c"
89 static void _init_test()
91 g_surface_bufmgr = NULL;
92 PTHREAD_MUTEX_INIT_ERROR = 0;
96 FREE_TESTED_PTR = NULL;
97 free_called_for_tested_ptr = 0;
100 UT_TBM_SURFACE_INTERNAL_ERROR = 0;
101 ut_tbm_bo_unmap_count = 0;
102 ut_tbm_data_free_called = 0;
105 /* tbm_surface_internal_delete_user_data() */
107 TEST(tbm_surface_internal_delete_user_data, work_flow_success_4)
110 int expected_ret = 1;
111 struct _tbm_surface surface;
112 struct _tbm_bufmgr bufmgr;
113 unsigned long key = 1;
118 g_surface_bufmgr = &bufmgr;
119 LIST_INITHEAD(&bufmgr.surf_list);
120 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
121 LIST_INITHEAD(&surface.user_data_list);
123 tbm_user_data *old_data = calloc(1, sizeof(*old_data));
124 old_data->data = &data;
125 old_data->free_func = ut_tbm_data_free;
127 LIST_ADD(&old_data->item_link, &surface.user_data_list);
128 FREE_TESTED_PTR = old_data;
130 ret = tbm_surface_internal_delete_user_data(&surface, key);
132 ASSERT_EQ(ret, expected_ret);
133 ASSERT_EQ(free_called_for_tested_ptr, 1);
134 ASSERT_EQ(ut_tbm_data_free_called, 1);
137 TEST(tbm_surface_internal_delete_user_data, work_flow_success_3)
140 int expected_ret = 0;
141 struct _tbm_surface surface;
142 struct _tbm_bufmgr bufmgr;
143 unsigned long key = 1;
144 tbm_user_data old_data;
148 g_surface_bufmgr = &bufmgr;
149 LIST_INITHEAD(&bufmgr.surf_list);
150 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
151 LIST_INITHEAD(&surface.user_data_list);
153 old_data.key = key + 1;
154 LIST_ADD(&old_data.item_link, &surface.user_data_list);
156 ret = tbm_surface_internal_delete_user_data(&surface, key);
158 ASSERT_EQ(ret, expected_ret);
161 TEST(tbm_surface_internal_delete_user_data, work_flow_success_2)
164 int expected_ret = 0;
165 struct _tbm_surface surface;
166 struct _tbm_bufmgr bufmgr;
170 g_surface_bufmgr = &bufmgr;
171 LIST_INITHEAD(&bufmgr.surf_list);
172 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
173 LIST_INITHEAD(&surface.user_data_list);
175 ret = tbm_surface_internal_delete_user_data(&surface, 1);
177 ASSERT_EQ(ret, expected_ret);
180 TEST(tbm_surface_internal_delete_user_data, work_flow_success_1)
183 int expected_ret = 0;
184 struct _tbm_surface surface;
185 struct _tbm_bufmgr bufmgr;
189 g_surface_bufmgr = &bufmgr;
190 LIST_INITHEAD(&bufmgr.surf_list);
192 ret = tbm_surface_internal_delete_user_data(&surface, 1);
194 ASSERT_EQ(ret, expected_ret);
197 TEST(tbm_surface_internal_delete_user_data, null_ptr_fail_1)
200 int expected_ret = 0;
204 ret = tbm_surface_internal_delete_user_data(NULL, 1);
206 ASSERT_EQ(ret, expected_ret);
209 /* tbm_surface_internal_get_user_data() */
211 TEST(tbm_surface_internal_get_user_data, work_flow_success_4)
214 int expected_ret = 1;
215 unsigned long key = 1;
217 struct _tbm_surface surface;
218 struct _tbm_bufmgr bufmgr;
219 int expected_data = 6;
223 g_surface_bufmgr = &bufmgr;
224 LIST_INITHEAD(&bufmgr.surf_list);
225 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
226 LIST_INITHEAD(&surface.user_data_list);
228 tbm_user_data old_data;
229 old_data.data = &expected_data;
231 LIST_ADD(&old_data.item_link, &surface.user_data_list);
233 ret = tbm_surface_internal_get_user_data(&surface, key, &data);
235 ASSERT_EQ(ret, expected_ret);
236 ASSERT_TRUE(data == &expected_data);
239 TEST(tbm_surface_internal_get_user_data, work_flow_success_3)
242 int expected_ret = 0;
243 unsigned long key = 1;
245 struct _tbm_surface surface;
246 struct _tbm_bufmgr bufmgr;
247 tbm_user_data old_data;
251 g_surface_bufmgr = &bufmgr;
252 LIST_INITHEAD(&bufmgr.surf_list);
253 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
254 LIST_INITHEAD(&surface.user_data_list);
256 old_data.key = key + 1;
257 LIST_ADD(&old_data.item_link, &surface.user_data_list);
259 ret = tbm_surface_internal_get_user_data(&surface, key, &data);
261 ASSERT_EQ(ret, expected_ret);
264 TEST(tbm_surface_internal_get_user_data, work_flow_success_2)
267 int expected_ret = 0;
268 unsigned long key = 1;
270 struct _tbm_surface surface;
271 struct _tbm_bufmgr bufmgr;
275 g_surface_bufmgr = &bufmgr;
276 LIST_INITHEAD(&bufmgr.surf_list);
277 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
278 LIST_INITHEAD(&surface.user_data_list);
280 ret = tbm_surface_internal_get_user_data(&surface, key, &data);
282 ASSERT_EQ(ret, expected_ret);
285 TEST(tbm_surface_internal_get_user_data, work_flow_success_1)
288 int expected_ret = 0;
289 unsigned long key = 1;
291 struct _tbm_surface surface;
292 struct _tbm_bufmgr bufmgr;
296 g_surface_bufmgr = &bufmgr;
297 LIST_INITHEAD(&bufmgr.surf_list);
298 LIST_INITHEAD(&surface.user_data_list);
300 ret = tbm_surface_internal_get_user_data(&surface, key, &data);
302 ASSERT_EQ(ret, expected_ret);
305 TEST(tbm_surface_internal_get_user_data, null_ptr_fail_2)
308 int expected_ret = 0;
309 unsigned long key = 1;
310 struct _tbm_surface surface;
311 struct _tbm_bufmgr bufmgr;
315 g_surface_bufmgr = &bufmgr;
316 LIST_INITHEAD(&bufmgr.surf_list);
317 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
318 LIST_INITHEAD(&surface.user_data_list);
320 ret = tbm_surface_internal_get_user_data(&surface, key, NULL);
322 ASSERT_EQ(ret, expected_ret);
325 TEST(tbm_surface_internal_get_user_data, null_ptr_fail_1)
328 int expected_ret = 0;
329 unsigned long key = 1;
334 ret = tbm_surface_internal_get_user_data(NULL, key, &data);
336 ASSERT_EQ(ret, expected_ret);
339 /* tbm_surface_internal_set_user_data() */
341 TEST(tbm_surface_internal_set_user_data, work_flow_success_4)
344 int expected_ret = 1;
345 unsigned long key = 1;
347 struct _tbm_surface surface;
348 struct _tbm_bufmgr bufmgr;
349 tbm_user_data old_data;
353 g_surface_bufmgr = &bufmgr;
354 LIST_INITHEAD(&bufmgr.surf_list);
355 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
357 old_data.data = &data;
358 old_data.free_func = ut_tbm_data_free;
360 LIST_INITHEAD(&surface.user_data_list);
361 LIST_ADD(&old_data.item_link, &surface.user_data_list);
363 ret = tbm_surface_internal_set_user_data(&surface, key, &data);
365 ASSERT_EQ(ret, expected_ret);
366 ASSERT_TRUE(old_data.data == &data);
367 ASSERT_EQ(ut_tbm_data_free_called, 1);
370 TEST(tbm_surface_internal_set_user_data, work_flow_success_3)
373 int expected_ret = 1;
374 unsigned long key = 1;
376 struct _tbm_surface surface;
377 struct _tbm_bufmgr bufmgr;
378 tbm_user_data old_data;
382 g_surface_bufmgr = &bufmgr;
383 LIST_INITHEAD(&bufmgr.surf_list);
384 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
386 old_data.data = NULL;
387 old_data.free_func = NULL;
389 LIST_INITHEAD(&surface.user_data_list);
390 LIST_ADD(&old_data.item_link, &surface.user_data_list);
392 ret = tbm_surface_internal_set_user_data(&surface, key, &data);
394 ASSERT_EQ(ret, expected_ret);
395 ASSERT_TRUE(old_data.data == &data);
398 TEST(tbm_surface_internal_set_user_data, work_flow_success_2)
401 int expected_ret = 0;
402 unsigned long key = 1;
404 struct _tbm_surface surface;
405 struct _tbm_bufmgr bufmgr;
406 tbm_user_data old_data;
410 g_surface_bufmgr = &bufmgr;
411 LIST_INITHEAD(&bufmgr.surf_list);
412 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
414 old_data.key = key + 1;
415 LIST_INITHEAD(&surface.user_data_list);
416 LIST_ADD(&old_data.item_link, &surface.user_data_list);
418 ret = tbm_surface_internal_set_user_data(&surface, key, &data);
420 ASSERT_EQ(ret, expected_ret);
423 TEST(tbm_surface_internal_set_user_data, work_flow_success_1)
426 int expected_ret = 0;
427 unsigned long key = 1;
429 struct _tbm_surface surface;
430 struct _tbm_bufmgr bufmgr;
434 g_surface_bufmgr = &bufmgr;
435 LIST_INITHEAD(&bufmgr.surf_list);
437 ret = tbm_surface_internal_set_user_data(&surface, key, &data);
439 ASSERT_EQ(ret, expected_ret);
442 TEST(tbm_surface_internal_set_user_data, null_ptr_fail_1)
445 int expected_ret = 0;
446 unsigned long key = 1;
451 ret = tbm_surface_internal_set_user_data(NULL, key, &data);
453 ASSERT_EQ(ret, expected_ret);
456 /* tbm_surface_internal_add_user_data() */
458 TEST(tbm_surface_internal_add_user_data, work_flow_success_4)
461 int expected_ret = 1;
462 unsigned long key = 1;
463 struct _tbm_surface surface;
464 struct _tbm_bufmgr bufmgr;
466 tbm_user_data *added_data;
470 g_surface_bufmgr = &bufmgr;
471 LIST_INITHEAD(&bufmgr.surf_list);
472 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
475 LIST_INITHEAD(&surface.user_data_list);
476 LIST_ADD(&data.item_link, &surface.user_data_list);
478 ret = tbm_surface_internal_add_user_data(&surface, key, ut_tbm_data_free);
480 ASSERT_EQ(ret, expected_ret);
482 added_data = user_data_lookup(&surface.user_data_list, key);
484 ASSERT_TRUE(added_data != NULL);
486 tbm_user_data copy_data = *added_data;
489 ASSERT_EQ(copy_data.key, key);
490 ASSERT_TRUE(copy_data.free_func == ut_tbm_data_free);
491 ASSERT_TRUE(copy_data.data == NULL);
494 TEST(tbm_surface_internal_add_user_data, work_flow_success_3)
497 int expected_ret = 0;
498 unsigned long key = 1;
499 struct _tbm_surface surface;
500 struct _tbm_bufmgr bufmgr;
505 g_surface_bufmgr = &bufmgr;
506 LIST_INITHEAD(&bufmgr.surf_list);
507 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
510 LIST_INITHEAD(&surface.user_data_list);
511 LIST_ADD(&data.item_link, &surface.user_data_list);
514 ret = tbm_surface_internal_add_user_data(&surface, key, ut_tbm_data_free);
516 ASSERT_EQ(ret, expected_ret);
519 TEST(tbm_surface_internal_add_user_data, work_flow_success_2)
522 int expected_ret = 0;
523 unsigned long key = 1;
524 struct _tbm_surface surface;
525 struct _tbm_bufmgr bufmgr;
530 g_surface_bufmgr = &bufmgr;
531 LIST_INITHEAD(&bufmgr.surf_list);
532 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
535 LIST_INITHEAD(&surface.user_data_list);
536 LIST_ADD(&data.item_link, &surface.user_data_list);
538 ret = tbm_surface_internal_add_user_data(&surface, key, ut_tbm_data_free);
540 ASSERT_EQ(ret, expected_ret);
543 TEST(tbm_surface_internal_add_user_data, work_flow_success_1)
546 int expected_ret = 0;
547 unsigned long key = 0;
548 struct _tbm_surface surface;
549 struct _tbm_bufmgr bufmgr;
553 g_surface_bufmgr = &bufmgr;
554 LIST_INITHEAD(&bufmgr.surf_list);
556 ret = tbm_surface_internal_add_user_data(&surface, key, ut_tbm_data_free);
558 ASSERT_EQ(ret, expected_ret);
561 TEST(tbm_surface_internal_add_user_data, null_ptr_fail_1)
564 int expected_ret = 0;
565 unsigned long key = 0;
569 ret = tbm_surface_internal_add_user_data(NULL, key, ut_tbm_data_free);
571 ASSERT_EQ(ret, expected_ret);
574 /* tbm_surface_internal_set_debug_pid() */
576 TEST(tbm_surface_internal_set_debug_pid, work_flow_success_1)
578 unsigned int pid = 20;
579 struct _tbm_surface surface;
580 struct _tbm_bufmgr bufmgr;
584 g_surface_bufmgr = &bufmgr;
585 LIST_INITHEAD(&bufmgr.surf_list);
586 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
588 tbm_surface_internal_set_debug_pid(&surface, pid);
590 ASSERT_EQ(pid, surface.debug_pid);
593 /* tbm_surface_internal_get_plane_bo_idx() */
595 TEST(tbm_surface_internal_get_plane_bo_idx, work_flow_success_3)
599 int expected_bo_idx = 10;
600 struct _tbm_surface surface;
601 struct _tbm_bufmgr bufmgr;
605 surface.planes_bo_idx[plane_idx] = expected_bo_idx;
606 g_surface_bufmgr = &bufmgr;
607 LIST_INITHEAD(&bufmgr.surf_list);
608 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
610 actual = tbm_surface_internal_get_plane_bo_idx(&surface, plane_idx);
612 ASSERT_EQ(actual, expected_bo_idx);
615 TEST(tbm_surface_internal_get_plane_bo_idx, work_flow_success_2)
620 struct _tbm_surface surface;
621 struct _tbm_bufmgr bufmgr;
625 g_surface_bufmgr = &bufmgr;
626 LIST_INITHEAD(&bufmgr.surf_list);
627 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
629 actual = tbm_surface_internal_get_plane_bo_idx(&surface, plane_idx);
631 ASSERT_EQ(actual, expected);
634 TEST(tbm_surface_internal_get_plane_bo_idx, work_flow_success_1)
638 struct _tbm_surface surface;
639 struct _tbm_bufmgr bufmgr;
643 g_surface_bufmgr = &bufmgr;
644 LIST_INITHEAD(&bufmgr.surf_list);
646 actual = tbm_surface_internal_get_plane_bo_idx(&surface, 0);
648 ASSERT_EQ(actual, expected);
651 TEST(tbm_surface_internal_get_plane_bo_idx, null_ptr_fail_1)
657 actual = tbm_surface_internal_get_plane_bo_idx(NULL, 0);
659 ASSERT_EQ(actual, expected);
662 /* tbm_surface_internal_get_format() */
664 TEST(tbm_surface_internal_get_format, work_flow_success_2)
666 unsigned int actual = 1;
667 int expected_format = 768;
668 struct _tbm_surface surface;
669 struct _tbm_bufmgr bufmgr;
673 g_surface_bufmgr = &bufmgr;
674 LIST_INITHEAD(&bufmgr.surf_list);
675 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
676 surface.info.format = expected_format;
678 actual = tbm_surface_internal_get_format(&surface);
680 ASSERT_EQ(actual, expected_format);
683 TEST(tbm_surface_internal_get_format, work_flow_success_1)
685 unsigned int actual = 1;
686 unsigned int expected = 0;
687 struct _tbm_surface surface;
688 struct _tbm_bufmgr bufmgr;
692 g_surface_bufmgr = &bufmgr;
693 LIST_INITHEAD(&bufmgr.surf_list);
695 actual = tbm_surface_internal_get_format(&surface);
697 ASSERT_EQ(actual, expected);
700 TEST(tbm_surface_internal_get_format, null_ptr_fail_1)
702 unsigned int actual = 1;
703 unsigned int expected = 0;
707 actual = tbm_surface_internal_get_format(NULL);
709 ASSERT_EQ(actual, expected);
712 /* tbm_surface_internal_get_height() */
714 TEST(tbm_surface_internal_get_height, work_flow_success_2)
716 unsigned int actual = 1;
717 int expected_height = 768;
718 struct _tbm_surface surface;
719 struct _tbm_bufmgr bufmgr;
723 g_surface_bufmgr = &bufmgr;
724 LIST_INITHEAD(&bufmgr.surf_list);
725 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
726 surface.info.height = expected_height;
728 actual = tbm_surface_internal_get_height(&surface);
730 ASSERT_EQ(actual, expected_height);
733 TEST(tbm_surface_internal_get_height, work_flow_success_1)
735 unsigned int actual = 1;
736 unsigned int expected = 0;
737 struct _tbm_surface surface;
738 struct _tbm_bufmgr bufmgr;
742 g_surface_bufmgr = &bufmgr;
743 LIST_INITHEAD(&bufmgr.surf_list);
745 actual = tbm_surface_internal_get_height(&surface);
747 ASSERT_EQ(actual, expected);
750 TEST(tbm_surface_internal_get_height, null_ptr_fail_1)
752 unsigned int actual = 1;
753 unsigned int expected = 0;
757 actual = tbm_surface_internal_get_height(NULL);
759 ASSERT_EQ(actual, expected);
762 /* tbm_surface_internal_get_width() */
764 TEST(tbm_surface_internal_get_width, work_flow_success_2)
766 unsigned int actual = 1;
767 int expected_width = 1024;
768 struct _tbm_surface surface;
769 struct _tbm_bufmgr bufmgr;
773 g_surface_bufmgr = &bufmgr;
774 LIST_INITHEAD(&bufmgr.surf_list);
775 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
776 surface.info.width = expected_width;
778 actual = tbm_surface_internal_get_width(&surface);
780 ASSERT_EQ(actual, expected_width);
783 TEST(tbm_surface_internal_get_width, work_flow_success_1)
785 unsigned int actual = 1;
786 unsigned int expected = 0;
787 struct _tbm_surface surface;
788 struct _tbm_bufmgr bufmgr;
792 g_surface_bufmgr = &bufmgr;
793 LIST_INITHEAD(&bufmgr.surf_list);
795 actual = tbm_surface_internal_get_width(&surface);
797 ASSERT_EQ(actual, expected);
800 TEST(tbm_surface_internal_get_width, null_ptr_fail_1)
802 unsigned int actual = 1;
803 unsigned int expected = 0;
807 actual = tbm_surface_internal_get_width(NULL);
809 ASSERT_EQ(actual, expected);
812 /* tbm_surface_internal_unmap() */
814 TEST(tbm_surface_internal_unmap, work_flow_success_1)
816 struct _tbm_surface surface;
818 struct _tbm_bufmgr bufmgr;
822 surface.num_bos = count;
823 g_surface_bufmgr = &bufmgr;
824 LIST_INITHEAD(&bufmgr.surf_list);
825 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
827 tbm_surface_internal_unmap(&surface);
829 ASSERT_EQ(ut_tbm_bo_unmap_count, count);
832 /* tbm_surface_internal_get_info() */
834 TEST(tbm_surface_internal_get_info, work_flow_success_2)
837 int expected_ret = 1;
838 tbm_surface_info_s info;
839 struct _tbm_surface surface;
840 struct _tbm_bufmgr bufmgr;
844 surface.info.num_planes = 0;
845 g_surface_bufmgr = &bufmgr;
846 LIST_INITHEAD(&bufmgr.surf_list);
847 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
848 uint32_t expected_width = 2;
849 uint32_t expected_height = 3;
850 uint32_t expected_format = 4;
851 uint32_t expected_bpp = 5;
852 uint32_t expected_size = 6;
853 surface.info.width = expected_width;
854 surface.info.height = expected_height;
855 surface.info.format = expected_format;
856 surface.info.bpp = expected_bpp;
857 surface.info.size = expected_size;
858 surface.info.num_planes = 0;
861 ret = tbm_surface_internal_get_info(&surface, 1, &info, 2);
863 ASSERT_EQ(ret, expected_ret);
864 ASSERT_EQ(info.width, expected_width);
865 ASSERT_EQ(info.height, expected_height);
866 ASSERT_EQ(info.format, expected_format);
867 ASSERT_EQ(info.bpp, expected_bpp);
868 ASSERT_EQ(info.size, expected_size);
871 TEST(tbm_surface_internal_get_info, work_flow_success_1)
874 int expected_ret = 0;
875 tbm_surface_info_s info;
876 struct _tbm_surface surface;
877 struct _tbm_bufmgr bufmgr;
881 g_surface_bufmgr = &bufmgr;
882 LIST_INITHEAD(&bufmgr.surf_list);
884 ret = tbm_surface_internal_get_info(&surface, 1, &info, 1);
886 ASSERT_EQ(ret, expected_ret);
889 TEST(tbm_surface_internal_get_info, null_ptr_fail_1)
892 int expected_ret = 0;
893 tbm_surface_info_s info;
897 ret = tbm_surface_internal_get_info(NULL, 1, &info, 1);
899 ASSERT_EQ(ret, expected_ret);
902 /* tbm_surface_internal_get_plane_data() */
904 TEST(tbm_surface_internal_get_plane_data, work_flow_success_4)
907 int expected_ret = 1;
912 uint32_t expected_size = 1024;
913 uint32_t expected_offset = 10;
914 uint32_t expected_pitch = 20;
915 struct _tbm_surface surface;
916 struct _tbm_bufmgr bufmgr;
920 surface.info.planes[plane_idx].size = expected_size;
921 surface.info.planes[plane_idx].offset = expected_offset;
922 surface.info.planes[plane_idx].stride = expected_pitch;
923 g_surface_bufmgr = &bufmgr;
924 LIST_INITHEAD(&bufmgr.surf_list);
925 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
926 surface.info.num_planes = 1;
928 ret = tbm_surface_internal_get_plane_data(&surface, plane_idx, &size,
931 ASSERT_EQ(ret, expected_ret);
932 ASSERT_EQ(size, expected_size);
933 ASSERT_EQ(offset, expected_offset);
934 ASSERT_EQ(pitch, expected_pitch);
937 TEST(tbm_surface_internal_get_plane_data, work_flow_success_3)
940 int expected_ret = 0;
945 struct _tbm_surface surface;
946 struct _tbm_bufmgr bufmgr;
950 g_surface_bufmgr = &bufmgr;
951 LIST_INITHEAD(&bufmgr.surf_list);
952 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
953 surface.info.num_planes = plane_idx - 1;
955 ret = tbm_surface_internal_get_plane_data(&surface, plane_idx, &size,
958 ASSERT_EQ(ret, expected_ret);
961 TEST(tbm_surface_internal_get_plane_data, work_flow_success_2)
964 int expected_ret = 0;
969 struct _tbm_surface surface;
970 struct _tbm_bufmgr bufmgr;
974 g_surface_bufmgr = &bufmgr;
975 LIST_INITHEAD(&bufmgr.surf_list);
976 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
978 ret = tbm_surface_internal_get_plane_data(&surface, plane_idx, &size,
981 ASSERT_EQ(ret, expected_ret);
984 TEST(tbm_surface_internal_get_plane_data, work_flow_success_1)
987 int expected_ret = 0;
991 struct _tbm_surface surface;
992 struct _tbm_bufmgr bufmgr;
996 g_surface_bufmgr = &bufmgr;
997 LIST_INITHEAD(&bufmgr.surf_list);
999 ret = tbm_surface_internal_get_plane_data(&surface, 1, &size,
1002 ASSERT_EQ(ret, expected_ret);
1005 TEST(tbm_surface_internal_get_plane_data, null_ptr_fail_1)
1008 int expected_ret = 0;
1010 uint32_t offset = 0;
1015 ret = tbm_surface_internal_get_plane_data(NULL, 1, &size, &offset, &pitch);
1017 ASSERT_EQ(ret, expected_ret);
1020 /* tbm_surface_internal_get_size() */
1022 TEST(tbm_surface_internal_get_size, work_flow_success_2)
1024 int actual_size = 0;
1025 int expected_size = 1024;
1026 struct _tbm_surface surface;
1027 struct _tbm_bufmgr bufmgr;
1031 surface.info.size = expected_size;
1032 g_surface_bufmgr = &bufmgr;
1033 LIST_INITHEAD(&bufmgr.surf_list);
1034 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
1036 actual_size = tbm_surface_internal_get_size(&surface);
1038 ASSERT_EQ(actual_size, expected_size);
1039 ASSERT_EQ(actual_size, expected_size);
1042 TEST(tbm_surface_internal_get_size, work_flow_success_1)
1044 int actual_size = 0;
1045 int expected_size = 0;
1046 struct _tbm_surface surface;
1047 struct _tbm_bufmgr bufmgr;
1051 g_surface_bufmgr = &bufmgr;
1052 LIST_INITHEAD(&bufmgr.surf_list);
1054 actual_size = tbm_surface_internal_get_size(&surface);
1056 ASSERT_EQ(actual_size, expected_size);
1059 TEST(tbm_surface_internal_get_size, null_ptr_fail_1)
1061 int actual_size = 0;
1062 int expected_size = 0;
1066 actual_size = tbm_surface_internal_get_size(NULL);
1068 ASSERT_EQ(actual_size, expected_size);
1071 /* tbm_surface_internal_get_bo() */
1073 TEST(tbm_surface_internal_get_bo, work_flow_success_3)
1077 struct _tbm_bo expected_bo;
1078 struct _tbm_surface surface;
1079 struct _tbm_bufmgr bufmgr;
1083 surface.bos[bo_idx] = &expected_bo;
1084 g_surface_bufmgr = &bufmgr;
1085 LIST_INITHEAD(&bufmgr.surf_list);
1086 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
1088 bo = tbm_surface_internal_get_bo(&surface, bo_idx);
1090 ASSERT_TRUE(bo == &expected_bo);
1093 TEST(tbm_surface_internal_get_bo, work_flow_success_2)
1096 struct _tbm_surface surface;
1097 struct _tbm_bufmgr bufmgr;
1101 g_surface_bufmgr = &bufmgr;
1102 LIST_INITHEAD(&bufmgr.surf_list);
1104 bo = tbm_surface_internal_get_bo(&surface, 1);
1106 ASSERT_TRUE(bo == NULL);
1109 TEST(tbm_surface_internal_get_bo, work_flow_success_1)
1112 struct _tbm_surface surface;
1113 struct _tbm_bufmgr bufmgr;
1117 g_surface_bufmgr = &bufmgr;
1118 LIST_INITHEAD(&bufmgr.surf_list);
1119 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
1121 bo = tbm_surface_internal_get_bo(&surface, -1);
1123 ASSERT_TRUE(bo == NULL);
1126 TEST(tbm_surface_internal_get_bo, null_ptr_fail_1)
1132 bo = tbm_surface_internal_get_bo(NULL, 1);
1134 ASSERT_TRUE(bo == NULL);
1137 /* tbm_surface_internal_get_num_bos() */
1139 TEST(tbm_surface_internal_get_num_bos, work_flow_success_1)
1142 int expected_num = 5;
1143 struct _tbm_surface surface;
1144 struct _tbm_bufmgr bufmgr;
1148 surface.num_bos = expected_num;
1149 g_surface_bufmgr = &bufmgr;
1150 LIST_INITHEAD(&bufmgr.surf_list);
1151 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
1153 actual_num = tbm_surface_internal_get_num_bos(&surface);
1155 ASSERT_EQ(actual_num, expected_num);
1158 /* tbm_surface_internal_unref() */
1160 TEST(tbm_surface_internal_unref, work_flow_success_2)
1162 tbm_surface_h surface = calloc(1, sizeof(*surface));
1163 surface->refcnt = 1;
1164 struct _tbm_bufmgr bufmgr;
1168 g_surface_bufmgr = &bufmgr;
1169 LIST_INITHEAD(&bufmgr.surf_list);
1170 LIST_INITHEAD(&surface->user_data_list);
1171 LIST_ADD(&surface->item_link, &bufmgr.surf_list);
1172 surface->num_bos = 0;
1173 FREE_TESTED_PTR = surface;
1174 surface->bufmgr = &bufmgr;
1176 tbm_surface_internal_unref(surface);
1178 ASSERT_EQ(free_called_for_tested_ptr, 1);
1179 ASSERT_TRUE(g_surface_bufmgr == NULL);
1182 TEST(tbm_surface_internal_unref, work_flow_success_1)
1184 struct _tbm_surface surface;
1185 int expected_refcnt = 9;
1186 struct _tbm_bufmgr bufmgr;
1190 surface.refcnt = expected_refcnt + 1;
1191 g_surface_bufmgr = &bufmgr;
1192 LIST_INITHEAD(&bufmgr.surf_list);
1193 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
1195 tbm_surface_internal_unref(&surface);
1197 ASSERT_EQ(expected_refcnt, surface.refcnt);
1200 /* tbm_surface_internal_ref() */
1202 TEST(tbm_surface_internal_ref, work_flow_success_1)
1204 struct _tbm_surface surface;
1205 int expected_refcnt = 10;
1206 struct _tbm_bufmgr bufmgr;
1210 surface.refcnt = expected_refcnt - 1;
1211 g_surface_bufmgr = &bufmgr;
1212 LIST_INITHEAD(&bufmgr.surf_list);
1213 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
1215 tbm_surface_internal_ref(&surface);
1217 ASSERT_EQ(expected_refcnt, surface.refcnt);
1220 /* tbm_surface_internal_destroy() */
1222 TEST(tbm_surface_internal_destroy, work_flow_success_2)
1224 tbm_surface_h surface = calloc(1, sizeof(*surface));
1225 struct _tbm_bufmgr bufmgr;
1229 surface->refcnt = 1;
1230 g_surface_bufmgr = &bufmgr;
1231 LIST_INITHEAD(&bufmgr.surf_list);
1232 LIST_INITHEAD(&surface->user_data_list);
1233 LIST_ADD(&surface->item_link, &bufmgr.surf_list);
1234 surface->num_bos = 0;
1235 FREE_TESTED_PTR = surface;
1236 surface->bufmgr = &bufmgr;
1238 tbm_surface_internal_destroy(surface);
1240 ASSERT_EQ(free_called_for_tested_ptr, 1);
1241 ASSERT_TRUE(g_surface_bufmgr == NULL);
1244 TEST(tbm_surface_internal_destroy, work_flow_success_1)
1246 struct _tbm_surface surface;
1247 int expected_refcnt = 9;
1248 struct _tbm_bufmgr bufmgr;
1252 surface.refcnt = expected_refcnt + 1;
1253 g_surface_bufmgr = &bufmgr;
1254 LIST_INITHEAD(&bufmgr.surf_list);
1255 LIST_ADD(&surface.item_link, &bufmgr.surf_list);
1257 tbm_surface_internal_destroy(&surface);
1259 ASSERT_EQ(expected_refcnt, surface.refcnt);
1262 /* tbm_surface_internal_get_bpp() */
1264 TEST(tbm_surface_internal_get_bpp, work_flow_success_59)
1267 int expected_ret = 24;
1268 tbm_format format = TBM_FORMAT_YVU444;
1272 ret = tbm_surface_internal_get_bpp(format);
1274 ASSERT_EQ(ret, expected_ret);
1277 TEST(tbm_surface_internal_get_bpp, work_flow_success_58)
1280 int expected_ret = 24;
1281 tbm_format format = TBM_FORMAT_YUV444;
1285 ret = tbm_surface_internal_get_bpp(format);
1287 ASSERT_EQ(ret, expected_ret);
1290 TEST(tbm_surface_internal_get_bpp, work_flow_success_57)
1293 int expected_ret = 16;
1294 tbm_format format = TBM_FORMAT_YVU422;
1298 ret = tbm_surface_internal_get_bpp(format);
1300 ASSERT_EQ(ret, expected_ret);
1303 TEST(tbm_surface_internal_get_bpp, work_flow_success_56)
1306 int expected_ret = 16;
1307 tbm_format format = TBM_FORMAT_YUV422;
1311 ret = tbm_surface_internal_get_bpp(format);
1313 ASSERT_EQ(ret, expected_ret);
1316 TEST(tbm_surface_internal_get_bpp, work_flow_success_55)
1319 int expected_ret = 12;
1320 tbm_format format = TBM_FORMAT_YVU420;
1324 ret = tbm_surface_internal_get_bpp(format);
1326 ASSERT_EQ(ret, expected_ret);
1329 TEST(tbm_surface_internal_get_bpp, work_flow_success_54)
1332 int expected_ret = 12;
1333 tbm_format format = TBM_FORMAT_YUV420;
1337 ret = tbm_surface_internal_get_bpp(format);
1339 ASSERT_EQ(ret, expected_ret);
1342 TEST(tbm_surface_internal_get_bpp, work_flow_success_53)
1345 int expected_ret = 12;
1346 tbm_format format = TBM_FORMAT_YVU411;
1350 ret = tbm_surface_internal_get_bpp(format);
1352 ASSERT_EQ(ret, expected_ret);
1355 TEST(tbm_surface_internal_get_bpp, work_flow_success_52)
1358 int expected_ret = 12;
1359 tbm_format format = TBM_FORMAT_YUV411;
1363 ret = tbm_surface_internal_get_bpp(format);
1365 ASSERT_EQ(ret, expected_ret);
1368 TEST(tbm_surface_internal_get_bpp, work_flow_success_51)
1371 int expected_ret = 9;
1372 tbm_format format = TBM_FORMAT_YVU410;
1376 ret = tbm_surface_internal_get_bpp(format);
1378 ASSERT_EQ(ret, expected_ret);
1381 TEST(tbm_surface_internal_get_bpp, work_flow_success_50)
1384 int expected_ret = 9;
1385 tbm_format format = TBM_FORMAT_YUV410;
1389 ret = tbm_surface_internal_get_bpp(format);
1391 ASSERT_EQ(ret, expected_ret);
1394 TEST(tbm_surface_internal_get_bpp, work_flow_success_49)
1397 int expected_ret = 16;
1398 tbm_format format = TBM_FORMAT_NV61;
1402 ret = tbm_surface_internal_get_bpp(format);
1404 ASSERT_EQ(ret, expected_ret);
1407 TEST(tbm_surface_internal_get_bpp, work_flow_success_48)
1410 int expected_ret = 16;
1411 tbm_format format = TBM_FORMAT_NV16;
1415 ret = tbm_surface_internal_get_bpp(format);
1417 ASSERT_EQ(ret, expected_ret);
1420 TEST(tbm_surface_internal_get_bpp, work_flow_success_47)
1423 int expected_ret = 12;
1424 tbm_format format = TBM_FORMAT_NV21;
1428 ret = tbm_surface_internal_get_bpp(format);
1430 ASSERT_EQ(ret, expected_ret);
1433 TEST(tbm_surface_internal_get_bpp, work_flow_success_46)
1436 int expected_ret = 12;
1437 tbm_format format = TBM_FORMAT_NV12MT;
1441 ret = tbm_surface_internal_get_bpp(format);
1443 ASSERT_EQ(ret, expected_ret);
1446 TEST(tbm_surface_internal_get_bpp, work_flow_success_45)
1449 int expected_ret = 12;
1450 tbm_format format = TBM_FORMAT_NV12;
1454 ret = tbm_surface_internal_get_bpp(format);
1456 ASSERT_EQ(ret, expected_ret);
1459 TEST(tbm_surface_internal_get_bpp, work_flow_success_44)
1462 int expected_ret = 32;
1463 tbm_format format = TBM_FORMAT_AYUV;
1467 ret = tbm_surface_internal_get_bpp(format);
1469 ASSERT_EQ(ret, expected_ret);
1472 TEST(tbm_surface_internal_get_bpp, work_flow_success_43)
1475 int expected_ret = 32;
1476 tbm_format format = TBM_FORMAT_VYUY;
1480 ret = tbm_surface_internal_get_bpp(format);
1482 ASSERT_EQ(ret, expected_ret);
1485 TEST(tbm_surface_internal_get_bpp, work_flow_success_42)
1488 int expected_ret = 32;
1489 tbm_format format = TBM_FORMAT_UYVY;
1493 ret = tbm_surface_internal_get_bpp(format);
1495 ASSERT_EQ(ret, expected_ret);
1498 TEST(tbm_surface_internal_get_bpp, work_flow_success_41)
1501 int expected_ret = 32;
1502 tbm_format format = TBM_FORMAT_YVYU;
1506 ret = tbm_surface_internal_get_bpp(format);
1508 ASSERT_EQ(ret, expected_ret);
1511 TEST(tbm_surface_internal_get_bpp, work_flow_success_40)
1514 int expected_ret = 32;
1515 tbm_format format = TBM_FORMAT_YUYV;
1519 ret = tbm_surface_internal_get_bpp(format);
1521 ASSERT_EQ(ret, expected_ret);
1524 TEST(tbm_surface_internal_get_bpp, work_flow_success_39)
1527 int expected_ret = 32;
1528 tbm_format format = TBM_FORMAT_BGRA1010102;
1532 ret = tbm_surface_internal_get_bpp(format);
1534 ASSERT_EQ(ret, expected_ret);
1537 TEST(tbm_surface_internal_get_bpp, work_flow_success_38)
1540 int expected_ret = 32;
1541 tbm_format format = TBM_FORMAT_RGBA1010102;
1545 ret = tbm_surface_internal_get_bpp(format);
1547 ASSERT_EQ(ret, expected_ret);
1550 TEST(tbm_surface_internal_get_bpp, work_flow_success_37)
1553 int expected_ret = 32;
1554 tbm_format format = TBM_FORMAT_ABGR2101010;
1558 ret = tbm_surface_internal_get_bpp(format);
1560 ASSERT_EQ(ret, expected_ret);
1563 TEST(tbm_surface_internal_get_bpp, work_flow_success_36)
1566 int expected_ret = 32;
1567 tbm_format format = TBM_FORMAT_ARGB2101010;
1571 ret = tbm_surface_internal_get_bpp(format);
1573 ASSERT_EQ(ret, expected_ret);
1576 TEST(tbm_surface_internal_get_bpp, work_flow_success_35)
1579 int expected_ret = 32;
1580 tbm_format format = TBM_FORMAT_BGRX1010102;
1584 ret = tbm_surface_internal_get_bpp(format);
1586 ASSERT_EQ(ret, expected_ret);
1589 TEST(tbm_surface_internal_get_bpp, work_flow_success_34)
1592 int expected_ret = 32;
1593 tbm_format format = TBM_FORMAT_RGBX1010102;
1597 ret = tbm_surface_internal_get_bpp(format);
1599 ASSERT_EQ(ret, expected_ret);
1602 TEST(tbm_surface_internal_get_bpp, work_flow_success_33)
1605 int expected_ret = 32;
1606 tbm_format format = TBM_FORMAT_XBGR2101010;
1610 ret = tbm_surface_internal_get_bpp(format);
1612 ASSERT_EQ(ret, expected_ret);
1615 TEST(tbm_surface_internal_get_bpp, work_flow_success_32)
1618 int expected_ret = 32;
1619 tbm_format format = TBM_FORMAT_XRGB2101010;
1623 ret = tbm_surface_internal_get_bpp(format);
1625 ASSERT_EQ(ret, expected_ret);
1628 TEST(tbm_surface_internal_get_bpp, work_flow_success_31)
1631 int expected_ret = 32;
1632 tbm_format format = TBM_FORMAT_BGRA8888;
1636 ret = tbm_surface_internal_get_bpp(format);
1638 ASSERT_EQ(ret, expected_ret);
1641 TEST(tbm_surface_internal_get_bpp, work_flow_success_30)
1644 int expected_ret = 32;
1645 tbm_format format = TBM_FORMAT_RGBA8888;
1649 ret = tbm_surface_internal_get_bpp(format);
1651 ASSERT_EQ(ret, expected_ret);
1654 TEST(tbm_surface_internal_get_bpp, work_flow_success_29)
1657 int expected_ret = 32;
1658 tbm_format format = TBM_FORMAT_ABGR8888;
1662 ret = tbm_surface_internal_get_bpp(format);
1664 ASSERT_EQ(ret, expected_ret);
1667 TEST(tbm_surface_internal_get_bpp, work_flow_success_28)
1670 int expected_ret = 32;
1671 tbm_format format = TBM_FORMAT_ARGB8888;
1675 ret = tbm_surface_internal_get_bpp(format);
1677 ASSERT_EQ(ret, expected_ret);
1680 TEST(tbm_surface_internal_get_bpp, work_flow_success_27)
1683 int expected_ret = 32;
1684 tbm_format format = TBM_FORMAT_BGRX8888;
1688 ret = tbm_surface_internal_get_bpp(format);
1690 ASSERT_EQ(ret, expected_ret);
1693 TEST(tbm_surface_internal_get_bpp, work_flow_success_26)
1696 int expected_ret = 32;
1697 tbm_format format = TBM_FORMAT_RGBX8888;
1701 ret = tbm_surface_internal_get_bpp(format);
1703 ASSERT_EQ(ret, expected_ret);
1706 TEST(tbm_surface_internal_get_bpp, work_flow_success_25)
1709 int expected_ret = 32;
1710 tbm_format format = TBM_FORMAT_XBGR8888;
1714 ret = tbm_surface_internal_get_bpp(format);
1716 ASSERT_EQ(ret, expected_ret);
1719 TEST(tbm_surface_internal_get_bpp, work_flow_success_24)
1722 int expected_ret = 32;
1723 tbm_format format = TBM_FORMAT_XRGB8888;
1727 ret = tbm_surface_internal_get_bpp(format);
1729 ASSERT_EQ(ret, expected_ret);
1732 TEST(tbm_surface_internal_get_bpp, work_flow_success_23)
1735 int expected_ret = 24;
1736 tbm_format format = TBM_FORMAT_BGR888;
1740 ret = tbm_surface_internal_get_bpp(format);
1742 ASSERT_EQ(ret, expected_ret);
1745 TEST(tbm_surface_internal_get_bpp, work_flow_success_22)
1748 int expected_ret = 24;
1749 tbm_format format = TBM_FORMAT_RGB888;
1753 ret = tbm_surface_internal_get_bpp(format);
1755 ASSERT_EQ(ret, expected_ret);
1758 TEST(tbm_surface_internal_get_bpp, work_flow_success_21)
1761 int expected_ret = 16;
1762 tbm_format format = TBM_FORMAT_BGR565;
1766 ret = tbm_surface_internal_get_bpp(format);
1768 ASSERT_EQ(ret, expected_ret);
1771 TEST(tbm_surface_internal_get_bpp, work_flow_success_20)
1774 int expected_ret = 16;
1775 tbm_format format = TBM_FORMAT_RGB565;
1779 ret = tbm_surface_internal_get_bpp(format);
1781 ASSERT_EQ(ret, expected_ret);
1784 TEST(tbm_surface_internal_get_bpp, work_flow_success_19)
1787 int expected_ret = 16;
1788 tbm_format format = TBM_FORMAT_BGRA5551;
1792 ret = tbm_surface_internal_get_bpp(format);
1794 ASSERT_EQ(ret, expected_ret);
1797 TEST(tbm_surface_internal_get_bpp, work_flow_success_18)
1800 int expected_ret = 16;
1801 tbm_format format = TBM_FORMAT_RGBA5551;
1805 ret = tbm_surface_internal_get_bpp(format);
1807 ASSERT_EQ(ret, expected_ret);
1810 TEST(tbm_surface_internal_get_bpp, work_flow_success_17)
1813 int expected_ret = 16;
1814 tbm_format format = TBM_FORMAT_ABGR1555;
1818 ret = tbm_surface_internal_get_bpp(format);
1820 ASSERT_EQ(ret, expected_ret);
1823 TEST(tbm_surface_internal_get_bpp, work_flow_success_16)
1826 int expected_ret = 16;
1827 tbm_format format = TBM_FORMAT_ARGB1555;
1831 ret = tbm_surface_internal_get_bpp(format);
1833 ASSERT_EQ(ret, expected_ret);
1836 TEST(tbm_surface_internal_get_bpp, work_flow_success_15)
1839 int expected_ret = 16;
1840 tbm_format format = TBM_FORMAT_BGRX5551;
1844 ret = tbm_surface_internal_get_bpp(format);
1846 ASSERT_EQ(ret, expected_ret);
1849 TEST(tbm_surface_internal_get_bpp, work_flow_success_14)
1852 int expected_ret = 16;
1853 tbm_format format = TBM_FORMAT_RGBX5551;
1857 ret = tbm_surface_internal_get_bpp(format);
1859 ASSERT_EQ(ret, expected_ret);
1862 TEST(tbm_surface_internal_get_bpp, work_flow_success_13)
1865 int expected_ret = 16;
1866 tbm_format format = TBM_FORMAT_XBGR1555;
1870 ret = tbm_surface_internal_get_bpp(format);
1872 ASSERT_EQ(ret, expected_ret);
1875 TEST(tbm_surface_internal_get_bpp, work_flow_success_12)
1878 int expected_ret = 16;
1879 tbm_format format = TBM_FORMAT_XRGB1555;
1883 ret = tbm_surface_internal_get_bpp(format);
1885 ASSERT_EQ(ret, expected_ret);
1888 TEST(tbm_surface_internal_get_bpp, work_flow_success_11)
1891 int expected_ret = 16;
1892 tbm_format format = TBM_FORMAT_BGRA4444;
1896 ret = tbm_surface_internal_get_bpp(format);
1898 ASSERT_EQ(ret, expected_ret);
1901 TEST(tbm_surface_internal_get_bpp, work_flow_success_10)
1904 int expected_ret = 16;
1905 tbm_format format = TBM_FORMAT_RGBA4444;
1909 ret = tbm_surface_internal_get_bpp(format);
1911 ASSERT_EQ(ret, expected_ret);
1914 TEST(tbm_surface_internal_get_bpp, work_flow_success_9)
1917 int expected_ret = 16;
1918 tbm_format format = TBM_FORMAT_ABGR4444;
1922 ret = tbm_surface_internal_get_bpp(format);
1924 ASSERT_EQ(ret, expected_ret);
1927 TEST(tbm_surface_internal_get_bpp, work_flow_success_8)
1930 int expected_ret = 16;
1931 tbm_format format = TBM_FORMAT_ARGB4444;
1935 ret = tbm_surface_internal_get_bpp(format);
1937 ASSERT_EQ(ret, expected_ret);
1940 TEST(tbm_surface_internal_get_bpp, work_flow_success_7)
1943 int expected_ret = 16;
1944 tbm_format format = TBM_FORMAT_BGRX4444;
1948 ret = tbm_surface_internal_get_bpp(format);
1950 ASSERT_EQ(ret, expected_ret);
1953 TEST(tbm_surface_internal_get_bpp, work_flow_success_6)
1956 int expected_ret = 16;
1957 tbm_format format = TBM_FORMAT_RGBX4444;
1961 ret = tbm_surface_internal_get_bpp(format);
1963 ASSERT_EQ(ret, expected_ret);
1966 TEST(tbm_surface_internal_get_bpp, work_flow_success_5)
1969 int expected_ret = 16;
1970 tbm_format format = TBM_FORMAT_XBGR4444;
1974 ret = tbm_surface_internal_get_bpp(format);
1976 ASSERT_EQ(ret, expected_ret);
1979 TEST(tbm_surface_internal_get_bpp, work_flow_success_4)
1982 int expected_ret = 16;
1983 tbm_format format = TBM_FORMAT_XRGB4444;
1987 ret = tbm_surface_internal_get_bpp(format);
1989 ASSERT_EQ(ret, expected_ret);
1992 TEST(tbm_surface_internal_get_bpp, work_flow_success_3)
1995 int expected_ret = 8;
1996 tbm_format format = TBM_FORMAT_BGR233;
2000 ret = tbm_surface_internal_get_bpp(format);
2002 ASSERT_EQ(ret, expected_ret);
2005 TEST(tbm_surface_internal_get_bpp, work_flow_success_2)
2008 int expected_ret = 8;
2009 tbm_format format = TBM_FORMAT_RGB332;
2013 ret = tbm_surface_internal_get_bpp(format);
2015 ASSERT_EQ(ret, expected_ret);
2018 TEST(tbm_surface_internal_get_bpp, work_flow_success_1)
2021 int expected_ret = 8;
2022 tbm_format format = TBM_FORMAT_C8;
2026 ret = tbm_surface_internal_get_bpp(format);
2028 ASSERT_EQ(ret, expected_ret);
2031 /* tbm_surface_internal_get_num_planes() */
2033 TEST(tbm_surface_internal_get_num_planes, work_flow_success_60)
2036 int expected_ret = 3;
2037 tbm_format format = TBM_FORMAT_YVU444;
2041 ret = tbm_surface_internal_get_num_planes(format);
2043 ASSERT_EQ(ret, expected_ret);
2046 TEST(tbm_surface_internal_get_num_planes, work_flow_success_59)
2049 int expected_ret = 3;
2050 tbm_format format = TBM_FORMAT_YUV444;
2054 ret = tbm_surface_internal_get_num_planes(format);
2056 ASSERT_EQ(ret, expected_ret);
2059 TEST(tbm_surface_internal_get_num_planes, work_flow_success_58)
2062 int expected_ret = 3;
2063 tbm_format format = TBM_FORMAT_YVU422;
2067 ret = tbm_surface_internal_get_num_planes(format);
2069 ASSERT_EQ(ret, expected_ret);
2072 TEST(tbm_surface_internal_get_num_planes, work_flow_success_57)
2075 int expected_ret = 3;
2076 tbm_format format = TBM_FORMAT_YUV422;
2080 ret = tbm_surface_internal_get_num_planes(format);
2082 ASSERT_EQ(ret, expected_ret);
2085 TEST(tbm_surface_internal_get_num_planes, work_flow_success_56)
2088 int expected_ret = 3;
2089 tbm_format format = TBM_FORMAT_YVU420;
2093 ret = tbm_surface_internal_get_num_planes(format);
2095 ASSERT_EQ(ret, expected_ret);
2098 TEST(tbm_surface_internal_get_num_planes, work_flow_success_55)
2101 int expected_ret = 3;
2102 tbm_format format = TBM_FORMAT_YUV420;
2106 ret = tbm_surface_internal_get_num_planes(format);
2108 ASSERT_EQ(ret, expected_ret);
2111 TEST(tbm_surface_internal_get_num_planes, work_flow_success_54)
2114 int expected_ret = 3;
2115 tbm_format format = TBM_FORMAT_YVU411;
2119 ret = tbm_surface_internal_get_num_planes(format);
2121 ASSERT_EQ(ret, expected_ret);
2124 TEST(tbm_surface_internal_get_num_planes, work_flow_success_53)
2127 int expected_ret = 3;
2128 tbm_format format = TBM_FORMAT_YUV411;
2132 ret = tbm_surface_internal_get_num_planes(format);
2134 ASSERT_EQ(ret, expected_ret);
2137 TEST(tbm_surface_internal_get_num_planes, work_flow_success_52)
2140 int expected_ret = 3;
2141 tbm_format format = TBM_FORMAT_YVU410;
2145 ret = tbm_surface_internal_get_num_planes(format);
2147 ASSERT_EQ(ret, expected_ret);
2150 TEST(tbm_surface_internal_get_num_planes, work_flow_success_51)
2153 int expected_ret = 3;
2154 tbm_format format = TBM_FORMAT_YUV410;
2158 ret = tbm_surface_internal_get_num_planes(format);
2160 ASSERT_EQ(ret, expected_ret);
2163 TEST(tbm_surface_internal_get_num_planes, work_flow_success_50)
2166 int expected_ret = 2;
2167 tbm_format format = TBM_FORMAT_NV61;
2171 ret = tbm_surface_internal_get_num_planes(format);
2173 ASSERT_EQ(ret, expected_ret);
2176 TEST(tbm_surface_internal_get_num_planes, work_flow_success_49)
2179 int expected_ret = 2;
2180 tbm_format format = TBM_FORMAT_NV16;
2184 ret = tbm_surface_internal_get_num_planes(format);
2186 ASSERT_EQ(ret, expected_ret);
2189 TEST(tbm_surface_internal_get_num_planes, work_flow_success_48)
2192 int expected_ret = 2;
2193 tbm_format format = TBM_FORMAT_NV21;
2197 ret = tbm_surface_internal_get_num_planes(format);
2199 ASSERT_EQ(ret, expected_ret);
2202 TEST(tbm_surface_internal_get_num_planes, work_flow_success_47)
2205 int expected_ret = 2;
2206 tbm_format format = TBM_FORMAT_NV12MT;
2210 ret = tbm_surface_internal_get_num_planes(format);
2212 ASSERT_EQ(ret, expected_ret);
2215 TEST(tbm_surface_internal_get_num_planes, work_flow_success_46)
2218 int expected_ret = 2;
2219 tbm_format format = TBM_FORMAT_NV12;
2223 ret = tbm_surface_internal_get_num_planes(format);
2225 ASSERT_EQ(ret, expected_ret);
2228 TEST(tbm_surface_internal_get_num_planes, work_flow_success_45)
2231 int expected_ret = 1;
2232 tbm_format format = TBM_FORMAT_AYUV;
2236 ret = tbm_surface_internal_get_num_planes(format);
2238 ASSERT_EQ(ret, expected_ret);
2241 TEST(tbm_surface_internal_get_num_planes, work_flow_success_44)
2244 int expected_ret = 1;
2245 tbm_format format = TBM_FORMAT_VYUY;
2249 ret = tbm_surface_internal_get_num_planes(format);
2251 ASSERT_EQ(ret, expected_ret);
2254 TEST(tbm_surface_internal_get_num_planes, work_flow_success_43)
2257 int expected_ret = 1;
2258 tbm_format format = TBM_FORMAT_UYVY;
2262 ret = tbm_surface_internal_get_num_planes(format);
2264 ASSERT_EQ(ret, expected_ret);
2267 TEST(tbm_surface_internal_get_num_planes, work_flow_success_42)
2270 int expected_ret = 1;
2271 tbm_format format = TBM_FORMAT_YVYU;
2275 ret = tbm_surface_internal_get_num_planes(format);
2277 ASSERT_EQ(ret, expected_ret);
2280 TEST(tbm_surface_internal_get_num_planes, work_flow_success_41)
2283 int expected_ret = 1;
2284 tbm_format format = TBM_FORMAT_YUYV;
2288 ret = tbm_surface_internal_get_num_planes(format);
2290 ASSERT_EQ(ret, expected_ret);
2293 TEST(tbm_surface_internal_get_num_planes, work_flow_success_40)
2296 int expected_ret = 1;
2297 tbm_format format = TBM_FORMAT_BGRA1010102;
2301 ret = tbm_surface_internal_get_num_planes(format);
2303 ASSERT_EQ(ret, expected_ret);
2306 TEST(tbm_surface_internal_get_num_planes, work_flow_success_39)
2309 int expected_ret = 1;
2310 tbm_format format = TBM_FORMAT_RGBA1010102;
2314 ret = tbm_surface_internal_get_num_planes(format);
2316 ASSERT_EQ(ret, expected_ret);
2319 TEST(tbm_surface_internal_get_num_planes, work_flow_success_38)
2322 int expected_ret = 1;
2323 tbm_format format = TBM_FORMAT_ABGR2101010;
2327 ret = tbm_surface_internal_get_num_planes(format);
2329 ASSERT_EQ(ret, expected_ret);
2332 TEST(tbm_surface_internal_get_num_planes, work_flow_success_37)
2335 int expected_ret = 1;
2336 tbm_format format = TBM_FORMAT_ARGB2101010;
2340 ret = tbm_surface_internal_get_num_planes(format);
2342 ASSERT_EQ(ret, expected_ret);
2345 TEST(tbm_surface_internal_get_num_planes, work_flow_success_36)
2348 int expected_ret = 1;
2349 tbm_format format = TBM_FORMAT_BGRX1010102;
2353 ret = tbm_surface_internal_get_num_planes(format);
2355 ASSERT_EQ(ret, expected_ret);
2358 TEST(tbm_surface_internal_get_num_planes, work_flow_success_35)
2361 int expected_ret = 1;
2362 tbm_format format = TBM_FORMAT_RGBX1010102;
2366 ret = tbm_surface_internal_get_num_planes(format);
2368 ASSERT_EQ(ret, expected_ret);
2371 TEST(tbm_surface_internal_get_num_planes, work_flow_success_34)
2374 int expected_ret = 1;
2375 tbm_format format = TBM_FORMAT_XBGR2101010;
2379 ret = tbm_surface_internal_get_num_planes(format);
2381 ASSERT_EQ(ret, expected_ret);
2384 TEST(tbm_surface_internal_get_num_planes, work_flow_success_33)
2387 int expected_ret = 1;
2388 tbm_format format = TBM_FORMAT_XRGB2101010;
2392 ret = tbm_surface_internal_get_num_planes(format);
2394 ASSERT_EQ(ret, expected_ret);
2397 TEST(tbm_surface_internal_get_num_planes, work_flow_success_32)
2400 int expected_ret = 1;
2401 tbm_format format = TBM_FORMAT_BGRA8888;
2405 ret = tbm_surface_internal_get_num_planes(format);
2407 ASSERT_EQ(ret, expected_ret);
2410 TEST(tbm_surface_internal_get_num_planes, work_flow_success_31)
2413 int expected_ret = 1;
2414 tbm_format format = TBM_FORMAT_RGBA8888;
2418 ret = tbm_surface_internal_get_num_planes(format);
2420 ASSERT_EQ(ret, expected_ret);
2423 TEST(tbm_surface_internal_get_num_planes, work_flow_success_30)
2426 int expected_ret = 1;
2427 tbm_format format = TBM_FORMAT_ABGR8888;
2431 ret = tbm_surface_internal_get_num_planes(format);
2433 ASSERT_EQ(ret, expected_ret);
2436 TEST(tbm_surface_internal_get_num_planes, work_flow_success_29)
2439 int expected_ret = 1;
2440 tbm_format format = TBM_FORMAT_ABGR8888;
2444 ret = tbm_surface_internal_get_num_planes(format);
2446 ASSERT_EQ(ret, expected_ret);
2449 TEST(tbm_surface_internal_get_num_planes, work_flow_success_28)
2452 int expected_ret = 1;
2453 tbm_format format = TBM_FORMAT_ARGB8888;
2457 ret = tbm_surface_internal_get_num_planes(format);
2459 ASSERT_EQ(ret, expected_ret);
2462 TEST(tbm_surface_internal_get_num_planes, work_flow_success_27)
2465 int expected_ret = 1;
2466 tbm_format format = TBM_FORMAT_BGRX8888;
2470 ret = tbm_surface_internal_get_num_planes(format);
2472 ASSERT_EQ(ret, expected_ret);
2475 TEST(tbm_surface_internal_get_num_planes, work_flow_success_26)
2478 int expected_ret = 1;
2479 tbm_format format = TBM_FORMAT_RGBX8888;
2483 ret = tbm_surface_internal_get_num_planes(format);
2485 ASSERT_EQ(ret, expected_ret);
2488 TEST(tbm_surface_internal_get_num_planes, work_flow_success_25)
2491 int expected_ret = 1;
2492 tbm_format format = TBM_FORMAT_XBGR8888;
2496 ret = tbm_surface_internal_get_num_planes(format);
2498 ASSERT_EQ(ret, expected_ret);
2501 TEST(tbm_surface_internal_get_num_planes, work_flow_success_24)
2504 int expected_ret = 1;
2505 tbm_format format = TBM_FORMAT_XRGB8888;
2509 ret = tbm_surface_internal_get_num_planes(format);
2511 ASSERT_EQ(ret, expected_ret);
2514 TEST(tbm_surface_internal_get_num_planes, work_flow_success_23)
2517 int expected_ret = 1;
2518 tbm_format format = TBM_FORMAT_BGR888;
2522 ret = tbm_surface_internal_get_num_planes(format);
2524 ASSERT_EQ(ret, expected_ret);
2527 TEST(tbm_surface_internal_get_num_planes, work_flow_success_22)
2530 int expected_ret = 1;
2531 tbm_format format = TBM_FORMAT_RGB888;
2535 ret = tbm_surface_internal_get_num_planes(format);
2537 ASSERT_EQ(ret, expected_ret);
2540 TEST(tbm_surface_internal_get_num_planes, work_flow_success_21)
2543 int expected_ret = 1;
2544 tbm_format format = TBM_FORMAT_BGR565;
2548 ret = tbm_surface_internal_get_num_planes(format);
2550 ASSERT_EQ(ret, expected_ret);
2553 TEST(tbm_surface_internal_get_num_planes, work_flow_success_20)
2556 int expected_ret = 1;
2557 tbm_format format = TBM_FORMAT_RGB565;
2561 ret = tbm_surface_internal_get_num_planes(format);
2563 ASSERT_EQ(ret, expected_ret);
2566 TEST(tbm_surface_internal_get_num_planes, work_flow_success_19)
2569 int expected_ret = 1;
2570 tbm_format format = TBM_FORMAT_BGRA5551;
2574 ret = tbm_surface_internal_get_num_planes(format);
2576 ASSERT_EQ(ret, expected_ret);
2579 TEST(tbm_surface_internal_get_num_planes, work_flow_success_18)
2582 int expected_ret = 1;
2583 tbm_format format = TBM_FORMAT_RGBA5551;
2587 ret = tbm_surface_internal_get_num_planes(format);
2589 ASSERT_EQ(ret, expected_ret);
2592 TEST(tbm_surface_internal_get_num_planes, work_flow_success_17)
2595 int expected_ret = 1;
2596 tbm_format format = TBM_FORMAT_ABGR1555;
2600 ret = tbm_surface_internal_get_num_planes(format);
2602 ASSERT_EQ(ret, expected_ret);
2605 TEST(tbm_surface_internal_get_num_planes, work_flow_success_16)
2608 int expected_ret = 1;
2609 tbm_format format = TBM_FORMAT_ARGB1555;
2613 ret = tbm_surface_internal_get_num_planes(format);
2615 ASSERT_EQ(ret, expected_ret);
2618 TEST(tbm_surface_internal_get_num_planes, work_flow_success_15)
2621 int expected_ret = 1;
2622 tbm_format format = TBM_FORMAT_BGRX5551;
2626 ret = tbm_surface_internal_get_num_planes(format);
2628 ASSERT_EQ(ret, expected_ret);
2631 TEST(tbm_surface_internal_get_num_planes, work_flow_success_14)
2634 int expected_ret = 1;
2635 tbm_format format = TBM_FORMAT_RGBX5551;
2639 ret = tbm_surface_internal_get_num_planes(format);
2641 ASSERT_EQ(ret, expected_ret);
2644 TEST(tbm_surface_internal_get_num_planes, work_flow_success_13)
2647 int expected_ret = 1;
2648 tbm_format format = TBM_FORMAT_XBGR1555;
2652 ret = tbm_surface_internal_get_num_planes(format);
2654 ASSERT_EQ(ret, expected_ret);
2657 TEST(tbm_surface_internal_get_num_planes, work_flow_success_12)
2660 int expected_ret = 1;
2661 tbm_format format = TBM_FORMAT_XRGB1555;
2665 ret = tbm_surface_internal_get_num_planes(format);
2667 ASSERT_EQ(ret, expected_ret);
2670 TEST(tbm_surface_internal_get_num_planes, work_flow_success_11)
2673 int expected_ret = 1;
2674 tbm_format format = TBM_FORMAT_BGRA4444;
2678 ret = tbm_surface_internal_get_num_planes(format);
2680 ASSERT_EQ(ret, expected_ret);
2683 TEST(tbm_surface_internal_get_num_planes, work_flow_success_10)
2686 int expected_ret = 1;
2687 tbm_format format = TBM_FORMAT_RGBA4444;
2691 ret = tbm_surface_internal_get_num_planes(format);
2693 ASSERT_EQ(ret, expected_ret);
2696 TEST(tbm_surface_internal_get_num_planes, work_flow_success_9)
2699 int expected_ret = 1;
2700 tbm_format format = TBM_FORMAT_ABGR4444;
2704 ret = tbm_surface_internal_get_num_planes(format);
2706 ASSERT_EQ(ret, expected_ret);
2709 TEST(tbm_surface_internal_get_num_planes, work_flow_success_8)
2712 int expected_ret = 1;
2713 tbm_format format = TBM_FORMAT_ARGB4444;
2717 ret = tbm_surface_internal_get_num_planes(format);
2719 ASSERT_EQ(ret, expected_ret);
2722 TEST(tbm_surface_internal_get_num_planes, work_flow_success_7)
2725 int expected_ret = 1;
2726 tbm_format format = TBM_FORMAT_BGRX4444;
2730 ret = tbm_surface_internal_get_num_planes(format);
2732 ASSERT_EQ(ret, expected_ret);
2735 TEST(tbm_surface_internal_get_num_planes, work_flow_success_6)
2738 int expected_ret = 1;
2739 tbm_format format = TBM_FORMAT_RGBX4444;
2743 ret = tbm_surface_internal_get_num_planes(format);
2745 ASSERT_EQ(ret, expected_ret);
2748 TEST(tbm_surface_internal_get_num_planes, work_flow_success_5)
2751 int expected_ret = 1;
2752 tbm_format format = TBM_FORMAT_XBGR4444;
2756 ret = tbm_surface_internal_get_num_planes(format);
2758 ASSERT_EQ(ret, expected_ret);
2761 TEST(tbm_surface_internal_get_num_planes, work_flow_success_4)
2764 int expected_ret = 1;
2765 tbm_format format = TBM_FORMAT_XRGB4444;
2769 ret = tbm_surface_internal_get_num_planes(format);
2771 ASSERT_EQ(ret, expected_ret);
2774 TEST(tbm_surface_internal_get_num_planes, work_flow_success_3)
2777 int expected_ret = 1;
2778 tbm_format format = TBM_FORMAT_BGR233;
2782 ret = tbm_surface_internal_get_num_planes(format);
2784 ASSERT_EQ(ret, expected_ret);
2787 TEST(tbm_surface_internal_get_num_planes, work_flow_success_2)
2790 int expected_ret = 1;
2791 tbm_format format = TBM_FORMAT_RGB332;
2795 ret = tbm_surface_internal_get_num_planes(format);
2797 ASSERT_EQ(ret, expected_ret);
2800 TEST(tbm_surface_internal_get_num_planes, work_flow_success_1)
2803 int expected_ret = 1;
2804 tbm_format format = TBM_FORMAT_C8;
2808 ret = tbm_surface_internal_get_num_planes(format);
2810 ASSERT_EQ(ret, expected_ret);
2813 /* tbm_surface_internal_query_supported_formats() */
2815 TEST(tbm_surface_internal_query_supported_formats, work_flow_success_3)
2818 int expecte_ret = 1;
2819 uint32_t *formats, num;
2820 struct _tbm_bufmgr bufmgr;
2821 struct _tbm_bufmgr_backend backend;
2825 g_surface_bufmgr = &bufmgr;
2826 bufmgr.backend = &backend;
2827 ut_ret_bufmgr.backend = &backend;
2828 backend.surface_supported_format = ut_surface_supported_format;
2830 ret = tbm_surface_internal_query_supported_formats(&formats, num);
2832 ASSERT_EQ(ret, expecte_ret);
2835 TEST(tbm_surface_internal_query_supported_formats, work_flow_success_2)
2838 int expecte_ret = 0;
2839 uint32_t *formats, num;
2840 struct _tbm_bufmgr bufmgr;
2841 struct _tbm_bufmgr_backend backend;
2845 g_surface_bufmgr = &bufmgr;
2846 bufmgr.backend = &backend;
2847 ut_ret_bufmgr.backend = &backend;
2848 backend.surface_supported_format = ut_surface_supported_format;
2849 UT_TBM_SURFACE_INTERNAL_ERROR = 1;
2851 ret = tbm_surface_internal_query_supported_formats(&formats, num);
2853 ASSERT_EQ(ret, expecte_ret);
2856 TEST(tbm_surface_internal_query_supported_formats, work_flow_success_1)
2859 int expecte_ret = 0;
2860 uint32_t *formats, num;
2861 struct _tbm_bufmgr bufmgr;
2862 struct _tbm_bufmgr_backend backend;
2866 g_surface_bufmgr = &bufmgr;
2867 bufmgr.backend = &backend;
2868 ut_ret_bufmgr.backend = &backend;
2869 backend.surface_supported_format = NULL;
2871 ret = tbm_surface_internal_query_supported_formats(&formats, num);
2873 ASSERT_EQ(ret, expecte_ret);