**************************************************************************/
#include "gtest/gtest.h"
+#include <png.h>
+/*------ stubs -----------------*/
#include "tbm_stubs.h"
#include "stub_pthread.h"
#include "stub_stdlib.h"
#include "stub_unistd.h"
#include "stub_fcntl.h"
+#include "stub_dlfcn.h"
#include "stub_stdio.h"
+#include "tdm_event_loop_stubs.h"
+
+#define png_write_info(p1, p2)
+#define png_write_image(p1, p2)
+#define png_write_end(p1, p2)
+/*------ stubs ----------------*/
#pragma GCC optimize(0)
ASSERT_EQ(fd, expected_fd);
}
+
+/* tdm_helper_set_fd */
+TEST(tdm_helper_set_fd, work_flow_success_1)
+{
+ _init_test();
+ tdm_helper_set_fd("TEST_ENV", 7);
+
+ ASSERT_STREQ(stub_getenv_name, "TEST_ENV");
+}
+
+TEST(tdm_helper_set_fd, work_flow_error_1__setenv_error)
+{
+ _init_test();
+ SETENV_ERROR = 1;
+
+ tdm_helper_set_fd("TEST_ENV", 7);
+
+ ASSERT_EQ(stub_getenv_name, 0);
+ ASSERT_EQ(stub_getenv_return_value, 0);
+}
+
+/* tdm_helper_dump_start */
+TEST(tdm_helper_dump_start, work_flow_success_1)
+{
+ _init_test();
+ int count = 0;
+ tdm_dump_enable = 0;
+ tdm_helper_dump_start("test_str1", &count);
+ ASSERT_EQ(tdm_dump_enable, 1);
+}
+
+TEST(tdm_helper_dump_start, work_flow_error_1__NULL)
+{
+ _init_test();
+ int count = 0;
+ tdm_dump_enable = 0;
+ tdm_helper_dump_start("test_str1", NULL);
+ ASSERT_EQ(tdm_dump_enable, 0);
+ tdm_helper_dump_start(NULL, &count);
+ ASSERT_EQ(tdm_dump_enable, 0);
+}
+
+/* tdm_helper_dump_start */
+TEST(tdm_helper_dump_stop, work_flow_success_1)
+{
+ _init_test();
+ tdm_dump_enable = 0;
+ tdm_helper_dump_stop();
+ ASSERT_EQ(tdm_dump_enable, 0);
+}
+
+tdm_error stub_output_get_mode(tdm_output *output, const tdm_output_mode **mode)
+{
+ static tdm_output_mode cmode;
+ *mode = &cmode;
+ return TDM_ERROR_NONE;
+}
+
+tdm_error stub_output_get_property(tdm_output *output, unsigned int id, tdm_value *value)
+{
+ (tdm_output *)output;
+ (unsigned int)id;
+ value->s32 = 1;
+ return TDM_ERROR_NONE;
+}
+
+tdm_error stub_layer_get_property(tdm_layer *layer, unsigned int id, tdm_value *value)
+{
+ (tdm_layer *)layer;
+ (unsigned int)id;
+ value->s32 = 1;
+ return TDM_ERROR_NONE;
+}
+
+tdm_error stub_layer_get_info(tdm_layer *layer, tdm_info_layer *info)
+{
+ (tdm_layer *)layer;
+ (tdm_info_layer *)info;
+ return TDM_ERROR_NONE;
+}
+
+
+/* tdm_helper_get_display_information */
+TEST(tdm_helper_get_display_information, work_flow_success_1)
+{
+ tdm_private_display disp;
+ tdm_backend_module module;
+ tdm_private_output output;
+ tdm_private_layer layer;
+ tdm_private_pp pp;
+ tdm_private_capture capture;
+ tdm_output_mode output_mode;
+ tdm_prop prop;
+ tdm_info_layer info;
+ tdm_private_display *private_display = &disp;
+ tbm_format formats[2] = {TBM_FORMAT_ABGR8888, 0};
+
+ memset(&disp, 0, sizeof(disp));
+ memset(&module, 0, sizeof(module));
+ memset(&output, 0, sizeof(output));
+ memset(&layer, 0, sizeof(layer));
+ memset(&pp, 0, sizeof(pp));
+ memset(&capture, 0, sizeof(capture));
+ memset(&output_mode, 0, sizeof(output_mode));
+ memset(&prop, 0, sizeof(prop));
+ memset(&info, 0, sizeof(info));
+
+ int len = 1024;
+ char rep[len];
+
+ _init_test();
+
+ //init disp
+ private_display->capabilities = TDM_DISPLAY_CAPABILITY_PP | TDM_DISPLAY_CAPABILITY_CAPTURE;
+ LIST_INITHEAD(&private_display->output_list);
+ LIST_INITHEAD(&private_display->pp_list);
+ LIST_INITHEAD(&private_display->capture_list);
+
+ //init module
+ private_display->module_data = &module;
+ module.abi_version = 0x00010001;
+ module.name = "test";
+ module.vendor = "test";
+
+ //init output
+ LIST_ADDTAIL(&output.link, &private_display->output_list);
+ LIST_INITHEAD(&output.capture_list);
+ LIST_INITHEAD(&output.layer_list);
+ output.caps.mode_count = 1;
+ output.caps.modes = &output_mode;
+ output.caps.prop_count = 1;
+ output.caps.props = ∝
+ memset(&output_mode, 0, sizeof(output_mode));
+ private_display->func_output.output_get_mode = stub_output_get_mode;
+ private_display->func_output.output_get_property = stub_output_get_property;
+
+ //init layer
+ LIST_ADDTAIL(&layer.link, &output.layer_list);
+ layer.usable = 0;
+ layer.caps.format_count = 2;
+ layer.caps.formats = formats;
+ layer.caps.prop_count = 1;
+ layer.caps.props = ∝
+ private_display->func_layer.layer_get_info = stub_layer_get_info;
+ private_display->func_layer.layer_get_property = stub_layer_get_property;
+
+ //init pp
+ LIST_ADDTAIL(&pp.link, &private_display->pp_list);
+ private_display->caps_pp.format_count = 2;
+ private_display->caps_pp.formats = formats;
+
+ //init capture
+ LIST_ADDTAIL(&capture.link, &private_display->capture_list);
+ private_display->caps_capture.format_count = 2;
+ private_display->caps_capture.formats = formats;
+
+ tdm_helper_get_display_information(private_display, rep, &len);
+}
+
+static int stub_tdm_helper_capture_handler_is_called = 0;
+static void stub_tdm_helper_capture_handler(tbm_surface_h buffer, void *user_data)
+{
+ stub_tdm_helper_capture_handler_is_called = 1;
+}
+
+/* tdm_helper_capture_output */
+TEST(tdm_helper_capture_output, work_flow_success_1)
+{
+ tdm_error error;
+ tdm_private_display display;
+ tdm_private_output output;
+ tdm_private_layer layer;
+ int src_mem[100][100];
+ int dst_mem[100][100];
+ struct _tbm_surface src_surface;
+ struct _tbm_surface dst_surface;
+ memset(&output, 0, sizeof(output));
+ memset(&layer, 0, sizeof(layer));
+
+ src_surface.info.format = TBM_FORMAT_ARGB8888;
+ src_surface.info.width = 100;
+ src_surface.info.height = 100;
+ src_surface.info.num_planes = 1;
+ src_surface.info.planes[0].ptr = (unsigned char*)src_mem;
+ src_surface.info.planes[0].stride = src_surface.info.width * 4;
+
+ dst_surface.info.format = TBM_FORMAT_XRGB8888;
+ dst_surface.info.width = 100;
+ dst_surface.info.height = 100;
+ dst_surface.info.num_planes = 1;
+ dst_surface.info.planes[0].ptr = (unsigned char*)dst_mem;
+ dst_surface.info.planes[0].stride = dst_surface.info.width * 4;
+
+ _init_test();
+
+ //init output
+ LIST_INITHEAD(&output.layer_list);
+ LIST_ADDTAIL(&layer.link, &output.layer_list);
+ output.private_display = &display;
+ layer.showing_buffer = (tbm_surface_h)&src_surface;
+ layer.private_output = &output;
+ layer.private_display = &display;
+
+
+ error = tdm_helper_capture_output(&output, (tbm_surface_h)&dst_surface, 0, 0, 10, 10, stub_tdm_helper_capture_handler, &layer);
+
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+ ASSERT_EQ(1, stub_tdm_helper_capture_handler_is_called);
+}
+
+TEST(tdm_helper_capture_output, work_flow_error_1___no_layer)
+{
+ tdm_error error;
+ tdm_private_display display;
+ tdm_private_output output;
+ tdm_private_layer layer;
+ int src_mem[100][100];
+ int dst_mem[100][100];
+ struct _tbm_surface src_surface;
+ struct _tbm_surface dst_surface;
+ memset(&output, 0, sizeof(output));
+ memset(&layer, 0, sizeof(layer));
+
+ src_surface.info.format = TBM_FORMAT_ARGB8888;
+ src_surface.info.width = 100;
+ src_surface.info.height = 100;
+ src_surface.info.num_planes = 1;
+ src_surface.info.planes[0].ptr = (unsigned char*)src_mem;
+ src_surface.info.planes[0].stride = src_surface.info.width * 4;
+
+ dst_surface.info.format = TBM_FORMAT_XRGB8888;
+ dst_surface.info.width = 100;
+ dst_surface.info.height = 100;
+ dst_surface.info.num_planes = 1;
+ dst_surface.info.planes[0].ptr = (unsigned char*)dst_mem;
+ dst_surface.info.planes[0].stride = dst_surface.info.width * 4;
+
+ _init_test();
+
+ //init output
+ LIST_INITHEAD(&output.layer_list);
+ output.private_display = &display;
+ layer.showing_buffer = (tbm_surface_h)&src_surface;
+ layer.private_output = &output;
+ layer.private_display = &display;
+
+
+ error = tdm_helper_capture_output(&output, (tbm_surface_h)&dst_surface, 0, 0, 10, 10, stub_tdm_helper_capture_handler, &layer);
+
+ ASSERT_NE(TDM_ERROR_NONE, error);
+}
+
+TEST(tdm_helper_capture_output, work_flow_error_2___wrong_buffer_format)
+{
+ tdm_error error;
+ tdm_private_display display;
+ tdm_private_output output;
+ tdm_private_layer layer;
+ int src_mem[100][100];
+ int dst_mem[100][100];
+ struct _tbm_surface src_surface;
+ struct _tbm_surface dst_surface;
+ memset(&output, 0, sizeof(output));
+ memset(&layer, 0, sizeof(layer));
+
+ src_surface.info.format = TBM_FORMAT_XRGB8888;
+ src_surface.info.width = 100;
+ src_surface.info.height = 100;
+ src_surface.info.num_planes = 1;
+ src_surface.info.planes[0].ptr = (unsigned char*)src_mem;
+ src_surface.info.planes[0].stride = src_surface.info.width * 4;
+
+ src_surface.info.format = TBM_FORMAT_XRGB8888;
+ dst_surface.info.width = 100;
+ dst_surface.info.height = 100;
+ dst_surface.info.num_planes = 1;
+ dst_surface.info.planes[0].ptr = (unsigned char*)dst_mem;
+ dst_surface.info.planes[0].stride = dst_surface.info.width * 4;
+
+ _init_test();
+
+ //init output
+ LIST_INITHEAD(&output.layer_list);
+ LIST_ADDTAIL(&layer.link, &output.layer_list);
+ output.private_display = &display;
+ layer.showing_buffer = (tbm_surface_h)&src_surface;
+ layer.private_output = &output;
+ layer.private_display = &display;
+
+ dst_surface.info.format = TBM_FORMAT_YUV410;
+ error = tdm_helper_capture_output(&output, (tbm_surface_h)&dst_surface, 0, 0, 10, 10, stub_tdm_helper_capture_handler, &layer);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+}
+
+TEST(tdm_helper_capture_output, work_flow_error_2___tbm_surface_map)
+{
+ tdm_error error;
+ tdm_private_display display;
+ tdm_private_output output;
+ tdm_private_layer layer;
+ int src_mem[100][100];
+ int dst_mem[100][100];
+ struct _tbm_surface src_surface;
+ struct _tbm_surface dst_surface;
+ memset(&output, 0, sizeof(output));
+ memset(&layer, 0, sizeof(layer));
+
+ src_surface.info.format = TBM_FORMAT_ARGB8888;
+ src_surface.info.width = 100;
+ src_surface.info.height = 100;
+ src_surface.info.num_planes = 1;
+ src_surface.info.planes[0].ptr = (unsigned char*)src_mem;
+ src_surface.info.planes[0].stride = src_surface.info.width * 4;
+
+ dst_surface.info.format = TBM_FORMAT_XRGB8888;
+ dst_surface.info.width = 100;
+ dst_surface.info.height = 100;
+ dst_surface.info.num_planes = 1;
+ dst_surface.info.planes[0].ptr = (unsigned char*)dst_mem;
+ dst_surface.info.planes[0].stride = dst_surface.info.width * 4;
+
+ _init_test();
+
+ //init output
+ LIST_INITHEAD(&output.layer_list);
+ LIST_ADDTAIL(&layer.link, &output.layer_list);
+ output.private_display = &display;
+ layer.showing_buffer = (tbm_surface_h)&src_surface;
+ layer.private_output = &output;
+ layer.private_display = &display;
+
+
+ dst_surface.info.num_planes = 0;
+ error = tdm_helper_capture_output(&output, (tbm_surface_h)&dst_surface, 0, 0, 10, 10, stub_tdm_helper_capture_handler, &layer);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+ dst_surface.info.num_planes = 1;
+
+ src_surface.info.num_planes = 0;
+ error = tdm_helper_capture_output(&output, (tbm_surface_h)&dst_surface, 0, 0, 10, 10, stub_tdm_helper_capture_handler, &layer);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+}
+
+/* tdm_helper_convert_buffer */
+TEST(tdm_helper_convert_buffer, work_flow_success_1)
+{
+ tdm_error error;
+ int src_mem[100][100];
+ int dst_mem[100][100];
+ struct _tbm_surface src_surface;
+ struct _tbm_surface dst_surface;
+ tdm_pos src_pos = {0, 0, 100, 100};
+ tdm_pos dst_pos = {0, 0, 100, 100};
+
+ src_surface.info.format = TBM_FORMAT_ARGB8888;
+ src_surface.info.width = 100;
+ src_surface.info.height = 100;
+ src_surface.info.num_planes = 1;
+ src_surface.info.planes[0].ptr = (unsigned char*)src_mem;
+ src_surface.info.planes[0].stride = src_surface.info.width * 4;
+
+ dst_surface.info.format = TBM_FORMAT_XRGB8888;
+ dst_surface.info.width = 100;
+ dst_surface.info.height = 100;
+ dst_surface.info.num_planes = 1;
+ dst_surface.info.planes[0].ptr = (unsigned char*)dst_mem;
+ dst_surface.info.planes[0].stride = dst_surface.info.width * 4;
+
+ _init_test();
+
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED, 0);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_90, 0);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_180, 0);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED_270, 0);
+ ASSERT_EQ(TDM_ERROR_NONE, error);
+}
+
+
+TEST(tdm_helper_convert_buffer, work_flow_error_1__NULL)
+{
+ tdm_error error;
+ int src_mem[100][100];
+ int dst_mem[100][100];
+ struct _tbm_surface src_surface;
+ struct _tbm_surface dst_surface;
+ tdm_pos src_pos = {0, 0, 100, 100};
+ tdm_pos dst_pos = {0, 0, 100, 100};
+
+ src_surface.info.format = TBM_FORMAT_ARGB8888;
+ src_surface.info.width = 100;
+ src_surface.info.height = 100;
+ src_surface.info.num_planes = 1;
+ src_surface.info.planes[0].ptr = (unsigned char*)src_mem;
+ src_surface.info.planes[0].stride = src_surface.info.width * 4;
+
+ dst_surface.info.format = TBM_FORMAT_XRGB8888;
+ dst_surface.info.width = 100;
+ dst_surface.info.height = 100;
+ dst_surface.info.num_planes = 1;
+ dst_surface.info.planes[0].ptr = (unsigned char*)dst_mem;
+ dst_surface.info.planes[0].stride = dst_surface.info.width * 4;
+
+ _init_test();
+ error = tdm_helper_convert_buffer(NULL, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED, 0);
+ ASSERT_NE(TDM_ERROR_NONE, error);
+ error = tdm_helper_convert_buffer(&src_surface, NULL, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED, 0);
+ ASSERT_NE(TDM_ERROR_NONE, error);
+}
+
+TEST(tdm_helper_convert_buffer, work_flow_error_1___wrong_buffers)
+{
+ tdm_error error;
+ int src_mem[100][100];
+ int dst_mem[100][100];
+ struct _tbm_surface src_surface;
+ struct _tbm_surface dst_surface;
+ tdm_pos src_pos = {0, 0, 100, 100};
+ tdm_pos dst_pos = {0, 0, 100, 100};
+
+ src_surface.info.format = TBM_FORMAT_ARGB8888;
+ src_surface.info.width = 100;
+ src_surface.info.height = 100;
+ src_surface.info.num_planes = 1;
+ src_surface.info.planes[0].ptr = (unsigned char*)src_mem;
+ src_surface.info.planes[0].stride = src_surface.info.width * 4;
+
+ dst_surface.info.format = TBM_FORMAT_XRGB8888;
+ dst_surface.info.width = 100;
+ dst_surface.info.height = 100;
+ dst_surface.info.num_planes = 1;
+ dst_surface.info.planes[0].ptr = (unsigned char*)dst_mem;
+ dst_surface.info.planes[0].stride = dst_surface.info.width * 4;
+
+ _init_test();
+
+ //fail map of src buffer
+ src_surface.info.num_planes = 0;
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED, 0);
+ ASSERT_NE(TDM_ERROR_NONE, error);
+ src_surface.info.num_planes = 1;
+
+ //fail map of dst buffer
+ dst_surface.info.num_planes = 0;
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED, 0);
+ ASSERT_NE(TDM_ERROR_NONE, error);
+ dst_surface.info.num_planes = 1;
+
+ //wrong format of src buffer
+ src_surface.info.format = TBM_FORMAT_YUV410;
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED, 0);
+ ASSERT_NE(TDM_ERROR_NONE, error);
+ src_surface.info.format = TBM_FORMAT_ARGB8888;
+
+ //wrong format of dst buffer
+ dst_surface.info.format = TBM_FORMAT_YUV410;
+ error = tdm_helper_convert_buffer(&src_surface, &dst_surface, &src_pos, &dst_pos, TDM_TRANSFORM_FLIPPED, 0);
+ ASSERT_NE(TDM_ERROR_NONE, error);
+ dst_surface.info.format = TBM_FORMAT_ARGB8888;
+}
+
+
+/* tdm_helper_clear_buffer_pos */
+TEST(tdm_helper_clear_buffer_pos, work_flow_success_1)
+{
+ int mem1[100*100*3];
+ int mem2[100*100*3];
+ int mem3[100*100*3];
+ struct _tbm_surface surface;
+ tdm_pos pos = {1, 0, 9, 10};
+
+ surface.info.width = 10;
+ surface.info.height = 10;
+ surface.info.num_planes = 1;
+ surface.info.planes[0].ptr = (unsigned char*)mem1;
+ surface.info.planes[0].stride = surface.info.width * 4;
+ surface.info.planes[1].ptr = (unsigned char*)mem2;
+ surface.info.planes[1].stride = surface.info.width * 4;
+ surface.info.planes[2].ptr = (unsigned char*)mem3;
+ surface.info.planes[2].stride = surface.info.width * 4;
+
+ _init_test();
+
+ surface.info.format = TBM_FORMAT_ARGB8888;
+ memset(mem1, 0x77, sizeof(mem1));
+ memset(mem2, 0x77, sizeof(mem2));
+ memset(mem3, 0x77, sizeof(mem3));
+ tdm_helper_clear_buffer_pos(&surface, &pos);
+ EXPECT_EQ(0, mem1[100+1]);
+ EXPECT_EQ(0x77777777, mem1[0]);
+ EXPECT_EQ(0x77777777, mem2[0]);
+ EXPECT_EQ(0x77777777, mem3[0]);
+
+
+ surface.info.format = TBM_FORMAT_YVU420;
+ memset(mem1, 0x77, sizeof(mem1));
+ memset(mem2, 0x77, sizeof(mem2));
+ memset(mem3, 0x77, sizeof(mem3));
+ tdm_helper_clear_buffer_pos(&surface, NULL);
+ EXPECT_EQ(0x10101010, mem1[0]);
+ EXPECT_EQ(0x80808080, mem2[0]);
+ EXPECT_EQ(0x80808080, mem3[0]);
+
+ surface.info.format = TBM_FORMAT_NV12;
+ memset(mem1, 0x77, sizeof(mem1));
+ memset(mem2, 0x77, sizeof(mem2));
+ memset(mem3, 0x77, sizeof(mem3));
+ tdm_helper_clear_buffer_pos(&surface, NULL);
+ EXPECT_EQ(0x10101010, mem1[0]);
+ EXPECT_EQ(0x80808080, mem2[0]);
+ EXPECT_EQ(0x77777777, mem3[0]);
+
+ surface.info.format = TBM_FORMAT_UYVY;
+ memset(mem2, 0x77, sizeof(mem2));
+ memset(mem3, 0x77, sizeof(mem3));
+ tdm_helper_clear_buffer_pos(&surface, NULL);
+ EXPECT_EQ(0x80108010, mem1[0]);
+ EXPECT_EQ(0x77777777, mem2[0]);
+ EXPECT_EQ(0x77777777, mem3[0]);
+
+ surface.info.format = TBM_FORMAT_YUYV;
+ memset(mem1, 0x77, sizeof(mem1));
+ memset(mem2, 0x77, sizeof(mem2));
+ memset(mem3, 0x77, sizeof(mem3));
+ tdm_helper_clear_buffer_pos(&surface, NULL);
+ EXPECT_EQ(0x10801080, mem1[0]);
+ EXPECT_EQ(0x77777777, mem2[0]);
+ EXPECT_EQ(0x77777777, mem3[0]);
+
+ surface.info.format = TBM_FORMAT_YVU411;
+ memset(mem1, 0x77, sizeof(mem1));
+ memset(mem2, 0x77, sizeof(mem2));
+ memset(mem3, 0x77, sizeof(mem3));
+ tdm_helper_clear_buffer_pos(&surface, NULL);
+ EXPECT_EQ(0x77777777, mem1[0]);
+ EXPECT_EQ(0x77777777, mem2[0]);
+ EXPECT_EQ(0x77777777, mem3[0]);
+}
+
+
+/* tdm_helper_clear_buffer */
+TEST(tdm_helper_clear_buffer, work_flow_success_1)
+{
+ int mem1[100*100*3];
+ struct _tbm_surface surface;
+
+ surface.info.width = 10;
+ surface.info.height = 10;
+ surface.info.num_planes = 1;
+ surface.info.planes[0].ptr = (unsigned char*)mem1;
+ surface.info.planes[0].stride = surface.info.width * 4;
+
+ _init_test();
+
+ surface.info.format = TBM_FORMAT_ARGB8888;
+ memset(mem1, 0x77, sizeof(mem1));
+ tdm_helper_clear_buffer(&surface);
+ EXPECT_EQ(0, mem1[0]);
+}
+
+/* tdm_helper_dump_buffer */
+TEST(tdm_helper_dump_buffer, work_flow_success_1)
+{
+ int mem1[10*10*3];
+ int mem2[10*10*3];
+ int mem3[10*10*3];
+ struct _tbm_surface surface;
+
+ surface.info.width = 10;
+ surface.info.height = 10;
+ surface.info.num_planes = 1;
+ surface.info.planes[0].ptr = (unsigned char*)mem1;
+ surface.info.planes[0].stride = surface.info.width * 4;
+ surface.info.planes[1].ptr = (unsigned char*)mem2;
+ surface.info.planes[1].stride = surface.info.width * 4;
+ surface.info.planes[2].ptr = (unsigned char*)mem3;
+ surface.info.planes[2].stride = surface.info.width * 4;
+
+ _init_test();
+
+ surface.info.format = TBM_FORMAT_ARGB8888;
+ tdm_helper_dump_buffer(&surface, "tmp.png");
+
+ surface.info.format = TBM_FORMAT_YVU420;
+ tdm_helper_dump_buffer(&surface, "tmp.yuv");
+
+ surface.info.format = TBM_FORMAT_NV12;
+ tdm_helper_dump_buffer(&surface, "tmp.yuv");
+
+ surface.info.format = TBM_FORMAT_YUYV;
+ tdm_helper_dump_buffer(&surface, "tmp.yuv");
+
+ surface.info.format = TBM_FORMAT_YVU411;
+ tdm_helper_dump_buffer(&surface, "tmp.yuv");
+}
+
+/* tdm_helper_dump_buffer */
+TEST(tdm_helper_dump_buffer, work_flow_error_1___NULL)
+{
+ struct _tbm_surface surface;
+ char str[1024] = {'t', 'm', 'p', 0};
+
+ _init_test();
+
+ tdm_helper_dump_buffer(&surface, "tmp.yuv");
+ tdm_helper_dump_buffer(NULL, str);
+}
+