From: Andrii Sokolenko Date: Mon, 6 Nov 2017 16:44:55 +0000 (+0200) Subject: [utest] Rework unit-test based on blackbox method. Removed stubs, wrappers. Added... X-Git-Tag: accepted/tizen/unified/20171113.161439~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=44724ab5201823cfc9d241f6b76ba7808d075dbc;p=platform%2Fcore%2Fuifw%2Flibtdm.git [utest] Rework unit-test based on blackbox method. Removed stubs, wrappers. Added 35 tests Change-Id: Id5b1e9f90a47ec55f985416057acc1e338971714 Signed-off-by: Andrii Sokolenko --- diff --git a/utests/Makefile.am b/utests/Makefile.am index 2588801..3357e0c 100644 --- a/utests/Makefile.am +++ b/utests/Makefile.am @@ -1,26 +1,12 @@ bin_PROGRAMS = tdm-utests tdm_utests_SOURCES = \ - src/main_tests.cpp \ + src/ut_main.cpp \ src/ut_tdm.cpp \ - src/ut_tdm_backend.cpp \ - src/ut_tdm_buffer.cpp \ - src/ut_tdm_capture.cpp \ - src/ut_tdm_display.cpp \ - src/ut_tdm_event_loop.cpp \ - src/ut_tdm_helper.cpp \ src/ut_tdm_pp.cpp \ - src/ut_tdm_thread.cpp \ - src/ut_tdm_vblank.cpp \ - stubs/tbm_stubs.cpp \ - stubs/tdm_log.cpp \ - stubs/tdm_server.cpp \ - stubs/stub_pthread.cpp \ - stubs/stub_dlfcn.cpp \ - stubs/stub_stdlib.cpp \ - stubs/tdm_backend_module_subs.cpp \ - stubs/stub_unistd.cpp \ - stubs/stub_backend.cpp + src/ut_tdm_capture.cpp \ + src/ut_tdm_output.cpp \ + src/ut_tdm_layer.cpp tdm_utests_CXXFLAGS = \ $(CXXFLAGS) \ @@ -28,9 +14,10 @@ tdm_utests_CXXFLAGS = \ -I../src \ -I../include \ -I./src \ - -I./stubs \ -I$(includedir)/gtest \ -fpermissive \ + -rdynamic \ + -UFAIL_ON_UNSUPPORTED \ -w # The flag -w is used, because there are many warnings in libtdm's sources. # Warnings occur because we build project with g++. @@ -39,9 +26,8 @@ tdm_utests_CXXFLAGS = \ tdm_utests_LDFLAGS = \ ${LDFLAGS} \ $(TDM_LIBS) \ - -lgtest \ - -ldl \ - -pthread + $(top_builddir)/src/libtdm.la \ + -lgtest check: ./tdm-utests diff --git a/utests/src/ut_common.h b/utests/src/ut_common.h new file mode 100644 index 0000000..c30269d --- /dev/null +++ b/utests/src/ut_common.h @@ -0,0 +1,10 @@ +#ifndef UT_COMMON_H +#define UT_COMMON_H +#define CHECK_FLAG(FLAG) \ +do {\ + if(!FLAG) {\ + std::cout << "[ SKIPPED ]" << " not supported" << std::endl;\ + return;\ + }\ +} while(0) +#endif // UT_COMMON_H diff --git a/utests/src/main_tests.cpp b/utests/src/ut_main.cpp similarity index 90% rename from utests/src/main_tests.cpp rename to utests/src/ut_main.cpp index 50d2725..b6aeb4a 100644 --- a/utests/src/main_tests.cpp +++ b/utests/src/ut_main.cpp @@ -3,6 +3,8 @@ * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. * * Contact: Konstantin Drabeniuk + * Contact: Andrii Sokolenko + * Contact: Roman Marchenko * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -31,5 +33,6 @@ int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); + ::testing::FLAGS_gtest_death_test_style = "threadsafe"; return RUN_ALL_TESTS(); } diff --git a/utests/src/ut_tdm.cpp b/utests/src/ut_tdm.cpp index 9110ca6..6a6ead6 100644 --- a/utests/src/ut_tdm.cpp +++ b/utests/src/ut_tdm.cpp @@ -3,6 +3,8 @@ * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. * * Contact: Konstantin Drabeniuk + * Contact: Andrii Sokolenko + * Contact: Roman Marchenko * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -26,294 +28,266 @@ * **************************************************************************/ -#include "../stubs/stub_dlfcn.h" #include "gtest/gtest.h" - -/*------ stubs -----------------*/ -#include "tdm_event_loop_stubs.h" -#include "tbm_stubs.h" -#include "stub_pthread.h" -#include "stub_tdm_vblank.h" -#include "stub_stdlib.h" -#include "stub_stdio.h" -#include "stub_unistd.h" -#include "tdm_event_loop_stubs.h" -#include "tdm.c" -/*------ tested file -----------*/ - -static void _init_test() +#include "tdm.h" + +class TDMInit : public ::testing::Test { +protected: + void SetUp(void) + { + setenv("TDM_DLOG", "1", 1); + setenv("XDG_RUNTIME_DIR", ".", 1); + setenv("TBM_DLOG", "1", 1); + } + void TearDown(void) + { + } +}; + +class TDMDefault : public ::testing::Test { +protected: + tdm_display *dpy = NULL; + void SetUp(void) + { + setenv("TDM_DLOG", "1", 1); + setenv("XDG_RUNTIME_DIR", ".", 1); + setenv("TBM_DLOG", "1", 1); + tdm_error error = TDM_ERROR_NONE; + dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + } + void TearDown(void) + { + tdm_display_deinit(dpy); + dpy = NULL; + } +}; + + +TEST_F(TDMInit, DisplayInitDeinitSuccessful) { - stub_pthread_init(); - stub_tbm_init(); - stub_stdlib_init(); - - stub_dlfcn_init(); - stub_stdio_init(); - stub_tdm_vblank_init(); - g_private_display = NULL; + tdm_error error = TDM_ERROR_NONE; + tdm_display *dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + tdm_display_deinit(dpy); + dpy = NULL; } -extern tdm_backend_module tdm_backend_module_stub; - - -/* tdm_display_update */ - -TEST(tdm_display_update, work_flow_success_1) +TEST_F(TDMInit, DisplayInitDeinitSuccessfulNullError) { tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_update(NULL); - - ASSERT_EQ(error, expected_error); + tdm_display *dpy = tdm_display_init(NULL); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + tdm_display_deinit(dpy); + dpy = NULL; } -/* tdm_display_init() */ -TEST(tdm_display_init, work_flow_success_1___first_call) +TEST_F(TDMInit, DisplayInitDeinitSuccessfulFewTimes) { - tdm_error error = TDM_ERROR_BAD_REQUEST; - tdm_display *disp; - - _init_test(); - - //to download tdm_backend_module; - stub_dlfcn_ctrl.dlopen_returned_val = (void*)1; - stub_dlfcn_ctrl.dlsym_returned_val = &tdm_backend_module_stub; - - setenv("TDM_DEBUG_MODULE", "all", 1); - setenv("TDM_DEBUG_DUMP", "capture,pp,layer,all", 1); - setenv("TDM_DEBUG_PATH", "log.txt", 1); - stub_getenv_return_real_value = 1; - - disp = tdm_display_init(&error); - - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_TRUE(g_private_display != NULL); - ASSERT_TRUE(g_private_display == disp); - ASSERT_EQ(1, g_private_display->init_count); + for (int i = 0; i < 20; ++i) { + tdm_error error = TDM_ERROR_NONE; + tdm_display *dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + tdm_display_deinit(dpy); + dpy = NULL; + } } -TEST(tdm_display_init, work_flow_success_2___second_call) +TEST_F(TDMInit, DisplayDeinitSuccessfulNullDpy) { - tdm_error error = TDM_ERROR_BAD_REQUEST; - tdm_display *disp; - tdm_private_display display; - - _init_test(); - memset(&display, 0, sizeof(display)); - g_private_display = &display; - g_private_display->init_count = 1; - - disp = tdm_display_init(&error); - - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_TRUE(g_private_display != NULL); - ASSERT_TRUE(g_private_display == disp); - ASSERT_EQ(2, g_private_display->init_count); + tdm_error error = TDM_ERROR_NONE; + tdm_display *dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + tdm_display_deinit(NULL); + tdm_display_deinit(dpy); + dpy = NULL; } - -TEST(tdm_display_init, work_flow_error_1___calloc_error) +TEST_F(TDMInit, DisplayDeinitDeathWrongDpy) { - tdm_error error = TDM_ERROR_BAD_REQUEST; - tdm_display *disp; - - _init_test(); - CALLOC_ERROR = 1; - - disp = tdm_display_init(&error); - - ASSERT_EQ(TDM_ERROR_OUT_OF_MEMORY, error); - ASSERT_TRUE(disp == NULL); - ASSERT_TRUE(g_private_display == NULL); + tdm_error error = TDM_ERROR_NONE; + tdm_display *dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + tdm_display *wrong_dpy = 0xBEAF; + EXPECT_DEATH(tdm_display_deinit(wrong_dpy), ""); + tdm_display_deinit(dpy); + dpy = NULL; } -TEST(tdm_display_init, work_flow_error_2___mutex_init_error) +TEST_F(TDMDefault, DisplayUpdateSuccessful) { - tdm_error error = TDM_ERROR_BAD_REQUEST; - tdm_display *disp; - - _init_test(); - PTHREAD_MUTEX_INIT_ERROR = 1; - - disp = tdm_display_init(&error); - - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_TRUE(disp == NULL); - ASSERT_TRUE(g_private_display == NULL); + ASSERT_TRUE(tdm_display_update(dpy) == TDM_ERROR_NONE); } -/* tdm_display_deinit */ - -TEST(tdm_display_deinit, work_flow_success_1___init_count_more_then_one) +TEST_F(TDMDefault, DisplayUpdateFailNullDpy) { - tdm_private_display *dpy; - unsigned int expected = 2; - unsigned int actual; - - _init_test(); - - dpy = (tdm_private_display *)calloc(1, sizeof(tdm_private_display)); - g_private_display = dpy; - dpy->init_count = 3; - - tdm_display_deinit(dpy); - - actual = dpy->init_count; - - free(dpy); - - ASSERT_NE(g_private_display, NULL); - ASSERT_EQ(actual, expected); + ASSERT_FALSE(tdm_display_update(NULL) == TDM_ERROR_NONE); } -//TEST(tdm_display_deinit, work_flow_success_2___init_count_is_one) -//{ -// unsigned int expected = 2; -// unsigned int actual; -// -// tdm_error error = TDM_ERROR_BAD_REQUEST; -// tdm_display *disp; -// -// _init_test(); -// -// //to download tdm_backend_module; -// stub_dlfcn_ctrl.dlopen_returned_val = (void*)1; -// stub_dlfcn_ctrl.dlsym_returned_val = &tdm_backend_module_stub; -// -// disp = tdm_display_init(&error); -// -// ASSERT_EQ(TDM_ERROR_NONE, error); -// -// //call tested function -// tdm_display_deinit(disp); -// -// ASSERT_EQ(NULL, g_private_display); -// ASSERT_TRUE(FREE_CALLED); -//} - - -/* tdm_display_check_module_abi */ -TEST(tdm_display_check_module_abi, work_flow_success_1) +TEST_F(TDMDefault, DisplayGetFDSuccesful) { - int res; - tdm_private_display private_display; - tdm_backend_module module; - private_display.module_data = &module; - module.abi_version = 0x00010001; - - res = tdm_display_check_module_abi(&private_display, 1, 1); - - ASSERT_EQ(1, res); + int fd = -42; + ASSERT_TRUE(tdm_display_get_fd(dpy, &fd) == TDM_ERROR_NONE); + ASSERT_FALSE(fd == -42); } -TEST(tdm_display_check_module_abi, work_flow_error_1___wrong_version) +TEST_F(TDMDefault, DisplayGetFDFailNullAll) { - int res; - tdm_private_display private_display; - tdm_backend_module module; - private_display.module_data = &module; - module.abi_version = 0x00010001; - - /*minor*/ - res = tdm_display_check_module_abi(&private_display, 1, 2); - ASSERT_EQ(0, res); + ASSERT_FALSE(tdm_display_get_fd(NULL, NULL) == TDM_ERROR_NONE); +} - /*major*/ - res = tdm_display_check_module_abi(&private_display, 2, 1); - ASSERT_EQ(0, res); +TEST_F(TDMDefault, DisplayGetFDFailNullFD) +{ + ASSERT_FALSE(tdm_display_get_fd(dpy, NULL) == TDM_ERROR_NONE); } -/* tdm_display_check_module_abi */ -TEST(tdm_display_enable_debug_module, work_flow_success_1) +TEST_F(TDMDefault, DisplayGetFDFailNullDpy) { - tdm_error error; + int fd = -42; + ASSERT_FALSE(tdm_display_get_fd(NULL, &fd) == TDM_ERROR_NONE); +} - //check all - error = tdm_display_enable_debug_module("all"); - ASSERT_EQ(0xFFFFFFFF, tdm_debug_module); - ASSERT_EQ(TDM_ERROR_NONE, error); +TEST_F(TDMDefault, DISABLED_DisplayHandleEventsSuccessful) +{ + /* TODO Generate events*/ + ASSERT_TRUE(tdm_display_handle_events(dpy) == TDM_ERROR_NONE); +} - //check none - error = tdm_display_enable_debug_module("none"); - ASSERT_EQ(0, tdm_debug_module); - ASSERT_EQ(TDM_ERROR_NONE, error); +TEST_F(TDMDefault, DisplayGetBackendInfoSuccessful) +{ + const char *name = NULL; + const char *vendor = NULL; + int major = -42, minor = -42; + ASSERT_TRUE(tdm_display_get_backend_info(dpy, &name, &vendor, &major, &minor) == TDM_ERROR_NONE); + ASSERT_FALSE(name == NULL); + ASSERT_FALSE(vendor == NULL); + ASSERT_FALSE(major == -42); + ASSERT_FALSE(minor == -42); +} - //check buffer,thread,mutex,vblank - error = tdm_display_enable_debug_module("buffer,thread,mutex,vblank"); - ASSERT_EQ((TDM_DEBUG_BUFFER | TDM_DEBUG_THREAD | TDM_DEBUG_MUTEX | TDM_DEBUG_VBLANK) , - tdm_debug_module); - ASSERT_EQ(TDM_ERROR_NONE, error); +TEST_F(TDMDefault, DisplayGetBackendInfoFailNullAll) +{ + ASSERT_FALSE(tdm_display_get_backend_info(NULL, NULL, NULL, NULL, NULL) == TDM_ERROR_NONE); +} +TEST_F(TDMDefault, DisplayGetBackendInfoSuccessfulSetOnlyDpy) +{ + ASSERT_TRUE(tdm_display_get_backend_info(dpy, NULL, NULL, NULL, NULL) == TDM_ERROR_NONE); } -TEST(tdm_display_enable_debug_module, work_flow_error_1___bad_module) +TEST_F(TDMDefault, DisplayGetBackendInfoSuccessfulSetOnlyName) { - tdm_error error; + const char *name = NULL; + ASSERT_TRUE(tdm_display_get_backend_info(dpy, &name, NULL, NULL, NULL) == TDM_ERROR_NONE); + ASSERT_FALSE(name == NULL); +} - //check bufer - error = tdm_display_enable_debug_module("bufer"); - ASSERT_EQ(0 , tdm_debug_module); - ASSERT_NE(TDM_ERROR_NONE, error); +TEST_F(TDMDefault, DisplayGetBackendInfoSuccessfulSetOnlyVendor) +{ + const char *vendor = NULL; + ASSERT_TRUE(tdm_display_get_backend_info(dpy, NULL, &vendor, NULL, NULL) == TDM_ERROR_NONE); + ASSERT_FALSE(vendor == NULL); } -/* tdm_display_enable_ttrace_vblank */ -TEST(tdm_display_enable_ttrace_vblank, work_flow_success_1) +TEST_F(TDMDefault, DisplayGetBackendInfoSuccessfulSetOnlyMajor) { - tdm_error error; - tdm_private_display private_display; - tdm_private_output output; - tdm_output_mode current_mode; - int vblank = 1; + int major = -42; + ASSERT_TRUE(tdm_display_get_backend_info(dpy, NULL, NULL, &major, NULL) == TDM_ERROR_NONE); + ASSERT_FALSE(major == -42); +} - _init_test(); - stub_tdm_vblank_create_returned = &vblank; +TEST_F(TDMDefault, DisplayGetBackendInfoSuccessfulSetOnlyMinor) +{ + int minor = -42; + ASSERT_TRUE(tdm_display_get_backend_info(dpy, NULL, NULL, NULL, &minor) == TDM_ERROR_NONE); + ASSERT_FALSE(minor == -1); +} - output.current_mode = ¤t_mode; - output.private_display = &private_display; +TEST_F(TDMDefault, DisplayGetCapabilitiesSuccessful) +{ + tdm_display_capability capabilities = -42; + ASSERT_TRUE(tdm_display_get_capabilities(dpy, &capabilities) == TDM_ERROR_NONE); + ASSERT_FALSE(capabilities == -1); +} - error = tdm_display_enable_ttrace_vblank(&private_display, &output, 1); - ASSERT_EQ(TDM_ERROR_NONE, error); +TEST_F(TDMDefault, DisplayGetCapabilitiesFailNullAll) +{ + ASSERT_FALSE(tdm_display_get_capabilities(NULL, NULL) == TDM_ERROR_NONE); +} - error = tdm_display_enable_ttrace_vblank(&private_display, &output, 0); +TEST_F(TDMDefault, DisplayGetCapabilitiesFailSetOnlyDpy) +{ + ASSERT_FALSE(tdm_display_get_capabilities(dpy, NULL) == TDM_ERROR_NONE); } -TEST(tdm_display_enable_ttrace_vblank, work_flow_error_1___vblank_wait_fail) +TEST_F(TDMDefault, DisplayGetPPCapabilitiesSuccessful) { - tdm_error error; - tdm_private_display private_display; - tdm_private_output output; - tdm_output_mode current_mode; - int vblank = 1; + tdm_pp_capability capabilities = -42; + tdm_error error = TDM_ERROR_NONE; + error = tdm_display_get_pp_capabilities(dpy, &capabilities); + ASSERT_TRUE(error == TDM_ERROR_NONE || error == TDM_ERROR_NO_CAPABILITY); + if (error == TDM_ERROR_NONE) { + ASSERT_FALSE(capabilities == -42); + } +} - _init_test(); +TEST_F(TDMDefault, DisplayGetPPCapabilitiesFailNullAll) +{ + ASSERT_FALSE(tdm_display_get_pp_capabilities(NULL, NULL) == TDM_ERROR_NONE); +} - output.current_mode = ¤t_mode; - output.private_display = &private_display; - stub_tdm_vblank_create_returned = &vblank; +TEST_F(TDMDefault, DisplayGetCaptureCapabilitiesSuccessful) +{ + tdm_capture_capability capabilities = -42; + tdm_error error = TDM_ERROR_NONE; + error = tdm_display_get_capture_capabilities(dpy, &capabilities); + ASSERT_TRUE(error == TDM_ERROR_NONE || error == TDM_ERROR_NO_CAPABILITY); + if (error == TDM_ERROR_NONE) { + ASSERT_FALSE(capabilities == -42); + } +} - stub_tdm_vblank_wait_error = 1; +TEST_F(TDMDefault, DisplayGetCaptureCapabilitiesFailNullAll) +{ + ASSERT_FALSE(tdm_display_get_capture_capabilities(NULL, NULL) == TDM_ERROR_NONE); +} - error = tdm_display_enable_ttrace_vblank(&private_display, &output, 1); - ASSERT_NE(TDM_ERROR_NONE, error); +TEST_F(TDMDefault, DisplayGetMaxLayerCountSuccessful) +{ + int max_count = -42; + ASSERT_TRUE(TDM_ERROR_NONE == tdm_display_get_max_layer_count(dpy, &max_count)); + ASSERT_FALSE(-42 == max_count); } -TEST(tdm_display_enable_ttrace_vblank, work_flow_error_2___vblank_create_fail) +TEST_F(TDMDefault, DisplayGetMaxLayerCountFailNullAll) { - tdm_error error; - tdm_private_display private_display; - tdm_private_output output; - tdm_output_mode current_mode; + ASSERT_FALSE(TDM_ERROR_NONE == tdm_display_get_max_layer_count(NULL, NULL)); +} - _init_test(); - stub_tdm_vblank_create_returned = NULL; +TEST_F(TDMDefault, DisplayGetMaxLayerCountFailSetOnlyDpy) +{ + ASSERT_FALSE(TDM_ERROR_NONE == tdm_display_get_max_layer_count(dpy, NULL)); +} - output.current_mode = ¤t_mode; - output.private_display = &private_display; +TEST_F(TDMDefault, DisplayGetOutputCountSuccessful) +{ + int count = -42; + ASSERT_TRUE(TDM_ERROR_NONE == tdm_display_get_output_count(dpy, &count)); + ASSERT_FALSE(-42 == count); +} - error = tdm_display_enable_ttrace_vblank(&private_display, &output, 1); - ASSERT_EQ(TDM_ERROR_NONE, error); +TEST_F(TDMDefault, DisplayGetOutputCountFailNullALl) +{ + ASSERT_FALSE(TDM_ERROR_NONE == tdm_display_get_output_count(NULL, NULL)); } +TEST_F(TDMDefault, DisplayGetOutputCountFailSetOnlyDpy) +{ + ASSERT_FALSE(TDM_ERROR_NONE == tdm_display_get_output_count(dpy, NULL)); +} diff --git a/utests/src/ut_tdm_backend.cpp b/utests/src/ut_tdm_backend.cpp deleted file mode 100644 index 6366f69..0000000 --- a/utests/src/ut_tdm_backend.cpp +++ /dev/null @@ -1,263 +0,0 @@ -/************************************************************************** - * - * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. - * - * Contact: Konstantin Drabeniuk - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * -**************************************************************************/ - -#include "gtest/gtest.h" - -#include "tbm_stubs.h" -#include "stub_pthread.h" -#include "stub_stdlib.h" - -#include "tdm_backend.c" - -static void _init_test() -{ - stub_pthread_init(); - stub_tbm_init(); - stub_stdlib_init(); -} - -/* tdm_backend_register_func_capture */ - -TEST(tdm_backend_register_func_capture, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_display dpy; - tdm_func_capture func_capture; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - error = tdm_backend_register_func_capture(&dpy, &func_capture); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_capture, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_BAD_MODULE; - tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - error = tdm_backend_register_func_capture(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_capture, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_func_capture func_capture; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_capture(NULL, &func_capture); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_backend_register_func_pp */ - -TEST(tdm_backend_register_func_pp, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_display dpy; - tdm_func_pp func_pp; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - error = tdm_backend_register_func_pp(&dpy, &func_pp); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_pp, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_BAD_MODULE; - tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - error = tdm_backend_register_func_pp(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_pp, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_func_pp func_pp; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_pp(NULL, &func_pp); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_backend_register_func_layer */ - -TEST(tdm_backend_register_func_layer, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_display dpy; - tdm_func_layer func_layer; - tdm_backend_module module; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.module_data = &module; - module.abi_version = 0x00010005; - - error = tdm_backend_register_func_layer(&dpy, &func_layer); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_layer, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_layer(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_layer, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_func_layer func_layer; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_layer(NULL, &func_layer); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_backend_register_func_output */ - -TEST(tdm_backend_register_func_output, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_display dpy; - tdm_func_output func_output; - tdm_backend_module module; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.module_data = &module; - - error = tdm_backend_register_func_output(&dpy, &func_output); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_output, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_output(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_output, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_func_output func_output; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_output(NULL, &func_output); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_backend_register_func_display */ - -TEST(tdm_backend_register_func_display, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_display dpy; - tdm_func_display func_display; - tdm_backend_module module; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.module_data = &module; - module.abi_version = 0x00020000; - - error = tdm_backend_register_func_display(&dpy, &func_display); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_display, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_display(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_backend_register_func_display, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_func_display func_display; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_backend_register_func_display(NULL, &func_display); - - ASSERT_EQ(error, expected_error); -} diff --git a/utests/src/ut_tdm_buffer.cpp b/utests/src/ut_tdm_buffer.cpp deleted file mode 100644 index 4ebac10..0000000 --- a/utests/src/ut_tdm_buffer.cpp +++ /dev/null @@ -1,555 +0,0 @@ -/************************************************************************** - * - * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. - * - * Contact: Konstantin Drabeniuk - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * -**************************************************************************/ - -#include "gtest/gtest.h" - -#include "tbm_stubs.h" -#include "stub_pthread.h" -#include "stub_stdlib.h" -#include "stub_tdm.h" - -#include "tdm_buffer.c" - -void tdm_buffer_release_handler_f(tbm_surface_h buffer, void *user_data) -{ - (void)buffer; - (void)user_data; -} - -static void _init_test() -{ - stub_tdm_init(); - stub_pthread_init(); - stub_tbm_init(); - stub_stdlib_init(); - tdm_debug_module = TDM_DEBUG_BUFFER; -} - -/* tdm_buffer_list_get_first_entry */ - -TEST(tdm_buffer_list_get_first_entry, null_ptr_fail_1) -{ - tbm_surface_h expected = NULL; - tbm_surface_h actual; - - _init_test(); - - actual = tdm_buffer_list_get_first_entry(NULL); - - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_buffer_list_get_first_entry, success_list_is_empty) -{ - tbm_surface_h actual; - struct list_head buff_list; - - _init_test(); - - LIST_INITHEAD(&buff_list); - - actual = tdm_buffer_list_get_first_entry(&buff_list); - - ASSERT_TRUE(actual == NULL); -} - -TEST(tdm_buffer_list_get_first_entry, success) -{ - tbm_surface_h actual; - struct list_head buff_list; - tdm_buffer_info buf_info; - struct _tbm_surface buffer; - - _init_test(); - - buf_info.buffer = &buffer; - - LIST_INITHEAD(&buff_list); - LIST_ADD(&buf_info.link, &buff_list); - - actual = tdm_buffer_list_get_first_entry(&buff_list); - - ASSERT_TRUE(actual == &buffer); -} - -/* tdm_buffer_ref_backend */ - -TEST(tdm_buffer_ref_backend, work_flow_success_2) -{ - struct _tbm_surface buffer; - tbm_surface_h not_expected = NULL; - tbm_surface_h actual; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - CALLOC_RETURN_BUFFER = 1; - actual = tdm_buffer_ref_backend(&buffer); - - ASSERT_TRUE(actual != not_expected); -} - -TEST(tdm_buffer_ref_backend, work_flow_success_1) -{ - struct _tbm_surface buffer; - tbm_surface_h actual; - tbm_surface_h expected = NULL; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - CALLOC_ERROR = 1; - - actual = tdm_buffer_ref_backend(&buffer); - - ASSERT_TRUE(actual == expected); -} - - -TEST(tdm_buffer_ref_backend, null_ptr_fail_1) -{ - tbm_surface_h expected = NULL; - tbm_surface_h actual; - - _init_test(); - - actual = tdm_buffer_ref_backend(NULL); - - ASSERT_TRUE(actual == expected); -} - -/* tdm_buffer_add_release_handler */ - -TEST(tdm_buffer_add_release_handler, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_BUSY; - struct _tbm_surface buffer; - int data = 1; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - error = - tdm_buffer_add_release_handler(&buffer, tdm_buffer_release_handler_f, - &data); - - ASSERT_EQ(error, expected_error); - -} - -TEST(tdm_buffer_add_release_handler, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tbm_surface buffer; - int data = 1; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - - _init_test(); - - CALLOC_ERROR = 1; - error = - tdm_buffer_add_release_handler(&buffer, tdm_buffer_release_handler_f, - &data); - - ASSERT_EQ(error, expected_error); - -} - -TEST(tdm_buffer_add_release_handler, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tbm_surface buffer; - int data = 1; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - CALLOC_ERROR = 1; - error = - tdm_buffer_add_release_handler(&buffer, tdm_buffer_release_handler_f, - &data); - - ASSERT_EQ(error, expected_error); - -} - -TEST(tdm_buffer_add_release_handler, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tbm_surface buffer; - int data = 1; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - CALLOC_ERROR = 1; - error = - tdm_buffer_add_release_handler(&buffer, tdm_buffer_release_handler_f, - &data); - - ASSERT_EQ(error, expected_error); - -} - -TEST(tdm_buffer_add_release_handler, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tbm_surface buffer; - int data = 1; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_buffer_add_release_handler(&buffer, NULL, &data); - - ASSERT_EQ(error, expected_error); - -} - -TEST(tdm_buffer_add_release_handler, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - int data = 1; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = - tdm_buffer_add_release_handler(NULL, tdm_buffer_release_handler_f, - &data); - - ASSERT_EQ(error, expected_error); - -} - -/* tdm_buffer_get_info */ - -TEST(tdm_buffer_get_info, work_flow_success_5) -{ - struct _tbm_surface buffer; - tdm_buffer_info *actual; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - tbm_surface_internal_set_user_data_error = 1; - - actual = tdm_buffer_get_info(&buffer); - - ASSERT_TRUE(actual == NULL); -} - -TEST(tdm_buffer_get_info, work_flow_success_4) -{ - struct _tbm_surface buffer; - tdm_buffer_info *actual; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - tbm_surface_internal_add_user_data_error = 1; - - actual = tdm_buffer_get_info(&buffer); - - ASSERT_TRUE(actual == NULL); -} - -TEST(tdm_buffer_get_info, work_flow_success_3) -{ - struct _tbm_surface buffer; - tdm_buffer_info *actual; - tdm_buffer_info *not_expected = NULL; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - - actual = tdm_buffer_get_info(&buffer); - - ASSERT_TRUE(actual != not_expected); - free(actual); -} - -TEST(tdm_buffer_get_info, work_flow_success_2) -{ - struct _tbm_surface buffer; - tdm_buffer_info *actual; - tdm_buffer_info *expected = NULL; - - _init_test(); - - TBM_BO_GET_USER_DATA_NULL = 1; - CALLOC_ERROR = 1; - actual = tdm_buffer_get_info(&buffer); - - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_buffer_get_info, work_flow_success_1) -{ - struct _tbm_surface buffer; - tdm_buffer_info *not_expected = NULL; - tdm_buffer_info *actual; - - _init_test(); - - actual = tdm_buffer_get_info(&buffer); - - ASSERT_TRUE(actual != not_expected); -} - -/* tdm_buffer_remove_release_handler() */ - -TEST(tdm_buffer_remove_release_handler, success) -{ - struct _tbm_surface buffer; - int user_data; - tdm_buffer_func_info *func_info_1; - tdm_buffer_func_info *func_info_2; - tdm_buffer_info buf_info; - tdm_buffer_func_info *func_info = NULL, *next = NULL; - - _init_test(); - - func_info_1 = (tdm_buffer_func_info *)calloc(1, sizeof * func_info_1); - func_info_2 = (tdm_buffer_func_info *)calloc(1, sizeof * func_info_2); - - func_info_1->release_func = stub_tdm_buffer_release_handler; - func_info_1->user_data = &user_data; - - func_info_2->release_func = NULL; - func_info_2->user_data = NULL; - - tbm_surface_internal_get_user_data_ret = &buf_info; - - LIST_INITHEAD(&buf_info.release_funcs); - LIST_ADD(&func_info_1->link, &buf_info.release_funcs); - LIST_ADD(&func_info_2->link, &buf_info.release_funcs); - - tdm_buffer_remove_release_handler(&buffer, stub_tdm_buffer_release_handler, &user_data); - - ASSERT_EQ(FREE_CALLED, 1); - LIST_FOR_EACH_ENTRY_SAFE(func_info, next, &buf_info.release_funcs, link) { - if (func_info->release_func != stub_tdm_buffer_release_handler || func_info->user_data != &user_data) - continue; - - ASSERT_TRUE(0); - } - free(func_info_2); -} - -/* tdm_buffer_remove_release_handler_internal() */ - -TEST(tdm_buffer_remove_release_handler_internal, success) -{ - struct _tbm_surface buffer; - tdm_buffer_func_info *func_info_1; - tdm_buffer_func_info *func_info_2; - tdm_buffer_info buf_info; - - _init_test(); - - func_info_1 = (tdm_buffer_func_info *)calloc(1, sizeof * func_info_1); - func_info_2 = (tdm_buffer_func_info *)calloc(1, sizeof * func_info_2); - - tbm_surface_internal_get_user_data_ret = &buf_info; - - LIST_INITHEAD(&buf_info.release_funcs); - LIST_ADD(&func_info_1->link, &buf_info.release_funcs); - LIST_ADD(&func_info_2->link, &buf_info.release_funcs); - - tdm_buffer_remove_release_handler_internal(&buffer); - - ASSERT_EQ(FREE_CALLED, 1); - free(func_info_1); -} - -/* tdm_buffer_unref_backend() */ - -TEST(tdm_buffer_unref_backend, success_ref_count_is_3) -{ - struct _tbm_surface buffer; - tdm_buffer_info buf_info; - - _init_test(); - - tbm_surface_internal_get_user_data_ret = &buf_info; - buf_info.backend_ref_count = 3; - - tdm_buffer_unref_backend(&buffer); - - ASSERT_EQ(buf_info.backend_ref_count, 2); -} - -TEST(tdm_buffer_unref_backend, success) -{ - struct _tbm_surface buffer; - tdm_buffer_info buf_info; - tdm_buffer_func_info func_info; - - _init_test(); - - tbm_surface_internal_get_user_data_ret = &buf_info; - buf_info.backend_ref_count = 1; - func_info.release_func = stub_tdm_buffer_release_handler; - - LIST_INITHEAD(&buf_info.release_funcs); - LIST_ADD(&func_info.link, &buf_info.release_funcs); - - tdm_buffer_unref_backend(&buffer); - - ASSERT_EQ(stub_tdm_buffer_release_handler_count, 1); - ASSERT_EQ(tbm_surface_internal_ref_count, 1); - ASSERT_EQ(tbm_surface_internal_unref_count, 2); -} - -/* tdm_buffer_add_destroy_handler() */ - -TEST(tdm_buffer_add_destroy_handler, error_buffer_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_buffer_add_destroy_handler(NULL, stub_tdm_buffer_destroy_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_buffer_add_destroy_handler, error_func_is_null) -{ - tdm_error error; - struct _tbm_surface buffer; - - _init_test(); - - error = tdm_buffer_add_destroy_handler(&buffer, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_buffer_add_destroy_handler, error_buffer_get_info) -{ - tdm_error error; - struct _tbm_surface buffer; - - _init_test(); - - tbm_surface_internal_get_user_data_ret = NULL; - tbm_surface_internal_add_user_data_error = 1; - - error = tdm_buffer_add_destroy_handler(&buffer, stub_tdm_buffer_destroy_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_OUT_OF_MEMORY); -} - -TEST(tdm_buffer_add_destroy_handler, error_calloc) -{ - tdm_error error; - struct _tbm_surface buffer; - tdm_buffer_info buf_info; - - _init_test(); - - tbm_surface_internal_get_user_data_ret = &buf_info; - - CALLOC_ERROR = 1; - - error = tdm_buffer_add_destroy_handler(&buffer, stub_tdm_buffer_destroy_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_OUT_OF_MEMORY); -} - -TEST(tdm_buffer_add_destroy_handler, success) -{ - tdm_error error; - struct _tbm_surface buffer; - tdm_buffer_info buf_info; - int user_data; - tdm_buffer_func_info *func_info = NULL, *f = NULL; - - _init_test(); - - tbm_surface_internal_get_user_data_ret = &buf_info; - - LIST_INITHEAD(&buf_info.destroy_funcs); - - error = tdm_buffer_add_destroy_handler(&buffer, stub_tdm_buffer_destroy_handler, &user_data); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_TRUE(!LIST_IS_EMPTY(&buf_info.destroy_funcs)); - LIST_FOR_EACH_ENTRY(f, &buf_info.destroy_funcs, link) { - if (f->destroy_func != stub_tdm_buffer_destroy_handler || f->user_data != &user_data) - continue; - func_info = f; - } - ASSERT_TRUE(func_info); - free(func_info); -} - -/* tdm_buffer_remove_release_handler() */ - -TEST(tdm_buffer_remove_destroy_handler, success) -{ - struct _tbm_surface buffer; - int user_data; - tdm_buffer_func_info *func_info_1; - tdm_buffer_func_info *func_info_2; - tdm_buffer_info buf_info; - tdm_buffer_func_info *func_info = NULL, *next = NULL; - - _init_test(); - - func_info_1 = (tdm_buffer_func_info *)calloc(1, sizeof * func_info_1); - func_info_2 = (tdm_buffer_func_info *)calloc(1, sizeof * func_info_2); - - func_info_1->destroy_func = stub_tdm_buffer_destroy_handler; - func_info_1->user_data = &user_data; - - func_info_2->release_func = NULL; - func_info_2->user_data = NULL; - - tbm_surface_internal_get_user_data_ret = &buf_info; - - LIST_INITHEAD(&buf_info.destroy_funcs); - LIST_ADD(&func_info_1->link, &buf_info.destroy_funcs); - LIST_ADD(&func_info_2->link, &buf_info.destroy_funcs); - - tdm_buffer_remove_destroy_handler(&buffer, stub_tdm_buffer_destroy_handler, &user_data); - - ASSERT_EQ(FREE_CALLED, 1); - LIST_FOR_EACH_ENTRY_SAFE(func_info, next, &buf_info.destroy_funcs, link) { - if (func_info->release_func != stub_tdm_buffer_destroy_handler || func_info->user_data != &user_data) - continue; - - ASSERT_TRUE(0); - } - free(func_info_2); -} diff --git a/utests/src/ut_tdm_capture.cpp b/utests/src/ut_tdm_capture.cpp index 2bab7bf..9715d1a 100644 --- a/utests/src/ut_tdm_capture.cpp +++ b/utests/src/ut_tdm_capture.cpp @@ -3,6 +3,8 @@ * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. * * Contact: Konstantin Drabeniuk + * Contact: Andrii Sokolenko + * Contact: Roman Marchenko * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -27,890 +29,43 @@ **************************************************************************/ #include "gtest/gtest.h" - -#include "tbm_stubs.h" -#include "stub_pthread.h" -#include "stub_stdlib.h" -#include "stub_backend.h" -#include "stub_unistd.h" -#include "stub_tdm_thread.h" -#include "stub_tdm_buffer.h" -#include "stub_tdm_helper.h" - -#include "tdm_capture.c" - -//local stubs for callbeck functions -static int stub_tdm_capture_done_handler_called; -static void stub_tdm_capture_done_handler(tdm_capture *capture, - tbm_surface_h buffer, void *user_data) -{ - stub_tdm_capture_done_handler_called = 1; -} - -/* UNIT TESTS */ - -static void _init_test() -{ - stub_tdm_helper_init(); - stub_tdm_buffer_init(); - stub_tdm_thread_init(); - stub_unistd_init(); - stub_pthread_init(); - stub_backend_init(); - stub_tbm_init(); - stub_stdlib_init(); - tdm_debug_dump = TDM_DUMP_FLAG_CAPTURE; - tdm_debug_module = TDM_DEBUG_BUFFER; - stub_tdm_capture_done_handler_called = 0; -} - -/* tdm_capture_commit */ - -TEST(tdm_capture_commit, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_capture capture; - struct _tdm_private_display private_display; - tdm_private_output private_output; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_pp_private_buffer b_1, b_2; - - _init_test(); - - LIST_INITHEAD(&capture.pending_buffer_list); - LIST_INITHEAD(&capture.buffer_list); - - LIST_ADD(&b_1.link, &capture.pending_buffer_list); - LIST_ADD(&b_2.link, &capture.pending_buffer_list); - - capture.private_display = &private_display; - private_display.func_capture.capture_commit = capture_commit; - CALLOC_RETURN_BUFFER = 1; - capture.private_output = &private_output; - private_output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_capture_commit(&capture); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(LIST_LENGTH(&capture.buffer_list), 2); -} - -//TEST(tdm_capture_commit, work_flow_success_3) -//{ -// tdm_error error = TDM_ERROR_NONE; -// struct _tdm_private_capture capture; -// struct _tdm_private_display private_display; -// tdm_private_output private_output; -// tdm_pp_private_buffer b_1, b_2; -// -// _init_test(); -// -// LIST_INITHEAD(&capture.pending_buffer_list); -// LIST_INITHEAD(&capture.buffer_list); -// -// LIST_ADD(&b_1.link, &capture.pending_buffer_list); -// LIST_ADD(&b_2.link, &capture.pending_buffer_list); -// -// capture.private_display = &private_display; -// private_display.func_capture.capture_commit = capture_commit; -// CAPTURE_COMMIT_ERROR = 1; -// capture.private_output = &private_output; -// private_output.current_dpms_value = TDM_OUTPUT_DPMS_ON; -// -// error = tdm_capture_commit(&capture); -// -// ASSERT_NE(error, TDM_ERROR_NONE); -// ASSERT_EQ(LIST_LENGTH(&capture.buffer_list), 0); -// ASSERT_EQ(stub_tdm_buffer_remove_release_handler_internal_count, 2); -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 2); -//} - -TEST(tdm_capture_commit, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - struct _tdm_private_capture capture; - struct _tdm_private_display private_display; - tdm_private_output private_output; - - _init_test(); - - LIST_INITHEAD(&capture.pending_buffer_list); - - capture.private_display = &private_display; - private_display.func_capture.capture_commit = NULL; - capture.private_output = &private_output; - private_output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_capture_commit(&capture); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_capture_commit, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_BAD_REQUEST; - struct _tdm_private_capture capture; - struct _tdm_private_display private_display; - tdm_private_output private_output; - - _init_test(); - - LIST_INITHEAD(&capture.pending_buffer_list); - - capture.private_display = &private_display; - private_display.func_capture.capture_commit = NULL; - capture.private_output = &private_output; - private_output.current_dpms_value = TDM_OUTPUT_DPMS_OFF; - - error = tdm_capture_commit(&capture); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_capture_commit, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_capture_commit(NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_capture_set_info */ - -TEST(tdm_capture_set_info, error_capture_set_info_is_null) -{ - tdm_info_capture info; - tdm_error error; - struct _tdm_private_capture capture; - struct _tdm_private_display private_display; - - _init_test(); - - capture.private_display = &private_display; - private_display.func_capture.capture_set_info = NULL; - - error = tdm_capture_set_info(&capture, &info); - - ASSERT_EQ(error, TDM_ERROR_NOT_IMPLEMENTED); -} - -TEST(tdm_capture_set_info, work_flow_success_2) -{ - tdm_info_capture info; - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_capture capture; - struct _tdm_private_display private_display; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output private_output; - tdm_output_mode current_mode; - - _init_test(); - - capture.private_output = &private_output; - private_output.current_mode = ¤t_mode; - current_mode.vrefresh = 24; - info.type = TDM_CAPTURE_TYPE_STREAM; - info.frequency = 0; - - capture.private_display = &private_display; - private_display.func_capture.capture_set_info = capture_set_info; - - error = tdm_capture_set_info(&capture, &info); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(info.frequency, current_mode.vrefresh); -} - -TEST(tdm_capture_set_info, work_flow_success_1) -{ - tdm_info_capture info; - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - struct _tdm_private_display private_display; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - - _init_test(); - - capture.private_display = &private_display; - private_display.func_capture.capture_set_info = capture_set_info; - CAPTURE_SET_INFO_ERROR = 1; - - error = tdm_capture_set_info(&capture, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_capture_set_info, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_capture_set_info(&capture, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_capture_set_info, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_info_capture info; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_capture_set_info(NULL, &info); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_capture_create_layer_internal */ - -TEST(tdm_capture_create_layer_internal, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_layer private_layer; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *not_expected = NULL; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - LIST_INITHEAD(&private_layer.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_create_capture = layer_create_capture; - private_display.func_capture.capture_destroy = capture_destroy; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - private_display.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_LAYER; - - actual = tdm_capture_create_layer_internal(&private_layer, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual != not_expected); - free(actual); -} - -TEST(tdm_capture_create_layer_internal, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_layer private_layer; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - - _init_test(); - - LIST_INITHEAD(&private_layer.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_create_capture = layer_create_capture; - private_display.func_capture.capture_destroy = capture_destroy; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - private_display.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_LAYER; - - CALLOC_ERROR = 1; - - actual = tdm_capture_create_layer_internal(&private_layer, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_capture_create_layer_internal, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_layer private_layer; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - - _init_test(); - - LIST_INITHEAD(&private_layer.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_create_capture = layer_create_capture; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - - LAYER_CREATE_CAPTURE_ERROR = 1; - - actual = tdm_capture_create_layer_internal(&private_layer, &error); - - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_capture_create_layer_internal, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_layer private_layer; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - LIST_INITHEAD(&private_layer.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - - actual = tdm_capture_create_layer_internal(&private_layer, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual == expected); -} - -/* tc_tdm_capture_create_output_internal */ - -TEST(tdm_capture_create_output_internal, work_flow_success_5) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *not_expected = NULL; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_capture private_capture; - - _init_test(); - - LIST_INITHEAD(&private_output.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_output.private_display = &private_display; - private_display.func_output.output_create_capture = output_create_capture; - private_display.func_capture.capture_destroy = capture_destroy; - private_display.func_capture.capture_set_done_handler = - capture_set_done_handler; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - private_display.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_OUTPUT; - - private_capture.stamp = stub_tdm_helper_get_time_ret_val; - - LIST_ADD(&private_capture.display_link, &private_display.capture_list); - - actual = tdm_capture_create_output_internal(&private_output, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual != not_expected); - free(actual); -} - -TEST(tdm_capture_create_output_internal, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - - _init_test(); - - LIST_INITHEAD(&private_output.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_output.private_display = &private_display; - private_display.func_output.output_create_capture = output_create_capture; - private_display.func_capture.capture_destroy = capture_destroy; - private_display.func_capture.capture_set_done_handler = capture_set_done_handler; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - private_display.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_OUTPUT; - CAPTURE_SET_DONE_HANDLER_ERROR = 1; - - actual = tdm_capture_create_output_internal(&private_output, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_capture_create_output_internal, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - - _init_test(); - - LIST_INITHEAD(&private_output.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_output.private_display = &private_display; - private_display.func_output.output_create_capture = output_create_capture; - private_display.func_capture.capture_destroy = capture_destroy; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - CALLOC_ERROR = 1; - private_display.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_OUTPUT; - - actual = tdm_capture_create_output_internal(&private_output, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_capture_create_output_internal, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - - _init_test(); - - LIST_INITHEAD(&private_output.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_output.private_display = &private_display; - private_display.func_output.output_create_capture = output_create_capture; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - private_display.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_OUTPUT; - OUTPUT_CREATE_CAPTURE_ERROR = 1; - - actual = tdm_capture_create_output_internal(&private_output, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_capture_create_output_internal, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - LIST_INITHEAD(&private_output.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_output.private_display = &private_display; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - actual = tdm_capture_create_output_internal(&private_output, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual == expected); -} - -TEST(tdm_capture_create_output_internal, TDM_CAPTURE_CAPABILITY_OUTPUT_is_not_set) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_output private_output; - struct _tdm_private_display private_display; - tdm_private_capture *actual; - tdm_private_capture *expected = NULL; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - LIST_INITHEAD(&private_output.capture_list); - LIST_INITHEAD(&private_display.capture_list); - - private_output.private_display = &private_display; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - private_display.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_LAYER; - - actual = tdm_capture_create_output_internal(&private_output, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(actual == expected); -} - -/* tdm_capture_cb_done() */ - -TEST(tdm_capture_cb_done, success_not_in_display_thread) -{ - tdm_private_capture private_capture; - struct _tbm_surface buffer; - tdm_thread_cb_capture_done *capture_done; - tdm_private_display private_display; - - _init_test(); - - private_capture.private_display = &private_display; - stub_syscall_return_value = 50; - private_capture.owner_tid = stub_syscall_return_value + 1; - private_capture.stamp = 10.15; - - tdm_capture_cb_done(&private_capture, &buffer, &private_capture); - - capture_done = (tdm_thread_cb_capture_done *)stub_tdm_thread_send_cb_buff; - - ASSERT_EQ(capture_done->base.type, TDM_THREAD_CB_CAPTURE_DONE); - ASSERT_EQ(capture_done->base.length, sizeof * capture_done); - ASSERT_DOUBLE_EQ(capture_done->capture_stamp, private_capture.stamp); - ASSERT_TRUE(capture_done->buffer == &buffer); - ASSERT_TRUE(capture_done->user_data == &private_capture); -} - -//TEST(tdm_capture_cb_done, success_in_display_thread) -//{ -// tdm_private_capture private_capture; -// struct _tbm_surface buffer; -// tdm_thread_cb_capture_done *capture_done; -// tdm_private_display private_display; -// tdm_capture_private_buffer *capture_buffer_1; -// tdm_capture_private_buffer *capture_buffer_2; -// -// _init_test(); -// -// capture_buffer_1 = (tdm_capture_private_buffer *) -// calloc(1, sizeof * capture_buffer_1); -// capture_buffer_2 = (tdm_capture_private_buffer *) -// calloc(1, sizeof * capture_buffer_2); -// -// LIST_INITHEAD(&private_capture.buffer_list); -// LIST_ADD(&capture_buffer_1->link, &private_capture.buffer_list); -// LIST_ADD(&capture_buffer_2->link, &private_capture.buffer_list); -// -// capture_buffer_1->buffer = &buffer; -// -// private_capture.private_display = &private_display; -// stub_syscall_return_value = 50; -// stub_syscall_reset = 1; -// private_capture.owner_tid = stub_syscall_return_value; -// private_capture.done_func = stub_tdm_capture_done_handler; -// -// tdm_capture_cb_done(&private_capture, &buffer, &private_capture); -// -// ASSERT_EQ(FREE_CALLED, 1); -// ASSERT_EQ(stub_tdm_capture_done_handler_called, 1); -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 1); -// ASSERT_TRUE(!_tdm_capture_find_tbm_buffer(&private_capture.buffer_list, &buffer)); -//} - -/* tdm_capture_find_stamp() */ - -TEST(tdm_capture_find_stamp, success_capture_list_is_empty) -{ - tdm_private_capture *capture_ret; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&private_display.capture_list); - - capture_ret = tdm_capture_find_stamp(&private_display, 0.5); - - ASSERT_EQ(capture_ret, NULL); -} - -TEST(tdm_capture_find_stamp, success) -{ - tdm_private_capture *capture_ret; - tdm_private_display private_display; - double stamp = 54.54; - tdm_private_capture capture; - - _init_test(); - - capture.stamp = stamp; - - LIST_INITHEAD(&private_display.capture_list); - LIST_ADD(&capture.display_link, &private_display.capture_list); - - capture_ret = tdm_capture_find_stamp(&private_display, stamp); - - ASSERT_EQ(capture_ret, &capture); -} - -/* tdm_capture_destroy_internal() */ - -//TEST(tdm_capture_destroy_internal, success) -//{ -// tdm_private_capture *capture; -// tdm_private_display private_display; -// struct list_head list; -// struct list_head dsp_list; -// tdm_buffer_info *b1, *b2; -// -// _init_test(); -// -// b1 = (tdm_buffer_info *)calloc(1, sizeof * b1); -// b2 = (tdm_buffer_info *)calloc(1, sizeof * b2); -// -// capture = (tdm_private_capture *)calloc(1, sizeof * capture); -// capture->private_display = &private_display; -// -// private_display.func_capture.capture_destroy = capture_destroy; -// -// LIST_INITHEAD(&list); -// LIST_INITHEAD(&dsp_list); -// LIST_INITHEAD(&capture->pending_buffer_list); -// LIST_INITHEAD(&capture->buffer_list); -// -// LIST_ADD(&capture->link, &list); -// LIST_ADD(&capture->display_link, &dsp_list); -// LIST_ADD(&b1->link, &capture->pending_buffer_list); -// LIST_ADD(&b2->link, &capture->buffer_list); -// -// tdm_capture_destroy_internal(capture); -// -// ASSERT_TRUE(LIST_IS_EMPTY(&list)); -// ASSERT_TRUE(LIST_IS_EMPTY(&dsp_list)); -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 2); -// ASSERT_EQ(FREE_CALLED, 1); -// ASSERT_EQ(capture_destroy_is_called, 1); -//} - -/* tdm_capture_destroy() */ - -//TEST(tdm_capture_destroy, success) -//{ -// tdm_private_capture *capture; -// tdm_private_display private_display; -// struct list_head list; -// struct list_head dsp_list; -// tdm_buffer_info *b1, *b2; -// -// _init_test(); -// -// b1 = (tdm_buffer_info *)calloc(1, sizeof * b1); -// b2 = (tdm_buffer_info *)calloc(1, sizeof * b2); -// -// capture = (tdm_private_capture *)calloc(1, sizeof * capture); -// capture->private_display = &private_display; -// -// private_display.func_capture.capture_destroy = capture_destroy; -// -// LIST_INITHEAD(&list); -// LIST_INITHEAD(&dsp_list); -// LIST_INITHEAD(&capture->pending_buffer_list); -// LIST_INITHEAD(&capture->buffer_list); -// -// LIST_ADD(&capture->link, &list); -// LIST_ADD(&capture->display_link, &dsp_list); -// LIST_ADD(&b1->link, &capture->pending_buffer_list); -// LIST_ADD(&b2->link, &capture->buffer_list); -// -// tdm_capture_destroy(capture); -// -// ASSERT_TRUE(LIST_IS_EMPTY(&list)); -// ASSERT_TRUE(LIST_IS_EMPTY(&dsp_list)); -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 2); -// ASSERT_EQ(FREE_CALLED, 1); -// ASSERT_EQ(capture_destroy_is_called, 1); -//} - -/* tdm_capture_set_done_handler() */ - -TEST(tdm_capture_set_done_handler, error_capture_is_null) -{ - tdm_error error; - - error = tdm_capture_set_done_handler(NULL, stub_tdm_capture_done_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_capture_set_done_handler, error_func_is_null) -{ - tdm_error error; - tdm_private_capture capture; - - error = tdm_capture_set_done_handler(&capture, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_capture_set_done_handler, success) -{ - tdm_error error; - tdm_private_capture capture; - int user_data; - - error = tdm_capture_set_done_handler(&capture, stub_tdm_capture_done_handler, &user_data); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_TRUE(capture.done_func == stub_tdm_capture_done_handler); - ASSERT_TRUE(capture.done_user_data == &user_data); -} - -/* tdm_capture_attach() */ - -TEST(tdm_capture_attach, error_buffer_is_null) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_capture_attach(&capture, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_capture_attach, error_capture_is_null) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tbm_surface buffer; - - _init_test(); - - error = tdm_capture_attach(NULL, &buffer); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_capture_attach, error_func_capture_attach_is_null) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - struct _tbm_surface buffer; - tdm_private_display dsp; - - _init_test(); - - capture.private_display = &dsp; - dsp.func_capture.capture_attach = NULL; - - error = tdm_capture_attach(&capture, &buffer); - - ASSERT_EQ(error, TDM_ERROR_NOT_IMPLEMENTED); -} - -TEST(tdm_capture_attach, error_length_of_pending_buffer_list_ge_max_attach_count) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - struct _tbm_surface buffer; - tdm_private_display dsp; - tdm_backend_module module; - tdm_capture_private_buffer b1, b2; - - _init_test(); - - capture.private_display = &dsp; - dsp.func_capture.capture_attach = capture_attach; - - dsp.module_data = &module; - module.abi_version = 0x000100002; - - LIST_INITHEAD(&capture.pending_buffer_list); - LIST_INITHEAD(&capture.buffer_list); - LIST_ADD(&b1.link, &capture.pending_buffer_list); - LIST_ADD(&b2.link, &capture.pending_buffer_list); - - dsp.caps_capture.max_attach_count = 1; - - error = tdm_capture_attach(&capture, &buffer); - - ASSERT_EQ(error, TDM_ERROR_BAD_REQUEST); -} - -TEST(tdm_capture_attach, error_calloc) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - struct _tbm_surface buffer; - tdm_private_display dsp; - tdm_backend_module module; - - _init_test(); - - capture.private_display = &dsp; - dsp.func_capture.capture_attach = capture_attach; - - dsp.module_data = &module; - module.abi_version = 0x000100002; - - LIST_INITHEAD(&capture.pending_buffer_list); - LIST_INITHEAD(&capture.buffer_list); - - dsp.caps_capture.max_attach_count = 3; - - CALLOC_ERROR = 1; - - error = tdm_capture_attach(&capture, &buffer); - - ASSERT_EQ(error, TDM_ERROR_OUT_OF_MEMORY); -} - -TEST(tdm_capture_attach, error_capture_attach) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - struct _tbm_surface buffer; - tdm_private_display dsp; - tdm_backend_module module; - - _init_test(); - - capture.private_display = &dsp; - dsp.func_capture.capture_attach = capture_attach; - - dsp.module_data = &module; - module.abi_version = 0x000100002; - - LIST_INITHEAD(&capture.pending_buffer_list); - LIST_INITHEAD(&capture.buffer_list); - - dsp.caps_capture.max_attach_count = 3; - - CAPTURE_ATTACH_ERROR = 1; - - error = tdm_capture_attach(&capture, &buffer); - - ASSERT_NE(error, TDM_ERROR_NONE); -} - -TEST(tdm_capture_attach, success) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_capture capture; - struct _tbm_surface buffer; - tdm_private_display dsp; - tdm_backend_module module; - tdm_capture_private_buffer *capture_buffer; - - _init_test(); - - capture.private_display = &dsp; - dsp.func_capture.capture_attach = capture_attach; - - dsp.module_data = &module; - module.abi_version = 0x000100002; - - LIST_INITHEAD(&capture.pending_buffer_list); - LIST_INITHEAD(&capture.buffer_list); - - dsp.caps_capture.max_attach_count = 3; - - error = tdm_capture_attach(&capture, &buffer); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_TRUE(!LIST_IS_EMPTY(&capture.pending_buffer_list)); - free(container_of(capture.pending_buffer_list.next, capture_buffer, link)); +#include "tdm.h" +#include "ut_common.h" + +class TDMCapture : public ::testing::Test { +protected: + tdm_display *dpy = NULL; + tdm_capture_capability capture_capabilities = -42; + bool has_capture = false; + void SetUp(void) + { + setenv("TDM_DLOG", "1", 1); + setenv("XDG_RUNTIME_DIR", ".", 1); + setenv("TBM_DLOG", "1", 1); + tdm_error error = TDM_ERROR_NONE; + dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + error = tdm_display_get_capture_capabilities(dpy, &capture_capabilities); +#ifdef FAIL_ON_UNSUPPORTED + ASSERT_GT(capture_capabilities, 0); +#endif + if (capture_capabilities > 0) + has_capture = true; + } + void TearDown(void) + { + tdm_display_deinit(dpy); + dpy = NULL; + } +}; + +TEST_F(TDMCapture, DisplayGetCaptureAvailableFormatsSuccessful) +{ + CHECK_FLAG(has_capture); + const tbm_format * formats = NULL; + int count = -42; + ASSERT_TRUE(TDM_ERROR_NONE == tdm_display_get_catpure_available_formats(dpy, &formats, &count)); + ASSERT_FALSE(-42 == count); + ASSERT_FALSE(NULL == formats); } diff --git a/utests/src/ut_tdm_display.cpp b/utests/src/ut_tdm_display.cpp deleted file mode 100644 index a35ea56..0000000 --- a/utests/src/ut_tdm_display.cpp +++ /dev/null @@ -1,4710 +0,0 @@ -/************************************************************************** - * - * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. - * - * Contact: Konstantin Drabeniuk - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * -**************************************************************************/ - -#include "gtest/gtest.h" - -#include "tbm_stubs.h" -#include "stub_pthread.h" -#include "stub_stdlib.h" -#include "stub_backend.h" -#include "stub_tdm_pp.h" -#include "stub_tdm_capture.h" -#include "stub_tdm_thread.h" -#include "stub_tdm_event_loop.h" -#include "stub_tdm_buffer.h" -#include "stub_unistd.h" -#include "stub_tdm_thread.h" -#include "stub_tdm.h" -#include "stub_tdm_buffer.h" -#include "stub_tdm_helper.h" -#include "tdm_list.h" - -#include "tdm_display.c" -#include "tdm_layer.c" -#include "tdm_output.c" - -static void _init_test() -{ - stub_tdm_helper_init(); - stub_tdm_buffer_init(); - stub_tdm_init(); - stub_unistd_init(); - stub_tdm_thread_init(); - stub_pthread_init(); - stub_tdm_event_loop_init(); - stub_tdm_thread_init(); - stub_tdm_capture_init(); - stub_tdm_pp_init(); - stub_backend_init(); - stub_tbm_init(); - stub_stdlib_init(); - tdm_debug_module = TDM_DEBUG_THREAD | TDM_DEBUG_BUFFER; - tdm_debug_dump = TDM_DUMP_FLAG_LAYER; - tdm_dump_enable = 1; -} - -static void ut_tdm_output_vblank_handler(tdm_output *output, - unsigned int sequence, - unsigned int tv_sec, - unsigned int tv_usec, void *user_data) -{ - (void)output; - (void)sequence; - (void)tv_sec; - (void)tv_usec; - (void)user_data; -} - -/* UNIT TESTS */ - -/* tdm_layer_create_capture() */ - -TEST(tdm_layer_create_capture, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - tdm_layer_create_capture(&layer, &error); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_create_capture, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - CAPTURE_CREATE_LAYER_INTERNAL_ERROR = 1; - - tdm_layer_create_capture(&layer, &error); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_layer_create_capture, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - tdm_layer_create_capture(NULL, &error); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_set_video_pos() */ - -TEST(tdm_layer_set_video_pos, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_video_pos = layer_set_video_pos; - layer.caps.capabilities = TDM_LAYER_CAPABILITY_VIDEO; - - error = tdm_layer_set_video_pos(&layer, 5); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_video_pos, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_video_pos = layer_set_video_pos; - layer.caps.capabilities = TDM_LAYER_CAPABILITY_VIDEO; - LAYER_SET_VIDEO_POS_ERROR = 1; - - error = tdm_layer_set_video_pos(&layer, 5); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_layer_set_video_pos, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_video_pos = NULL; - layer.caps.capabilities = TDM_LAYER_CAPABILITY_VIDEO; - - error = tdm_layer_set_video_pos(&layer, 5); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_video_pos, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - layer.caps.capabilities = TDM_LAYER_CAPABILITY_GRAPHIC; - - error = tdm_layer_set_video_pos(&layer, 5); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_video_pos, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_layer_set_video_pos(NULL, 5); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_is_usable() */ - -TEST(tdm_layer_is_usable, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - unsigned int usable = rand(); - unsigned int expected_usable = rand(); - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - layer.usable = expected_usable; - - error = tdm_layer_is_usable(&layer, &usable); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(usable, expected_usable); -} - -TEST(tdm_layer_is_usable, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_is_usable(&layer, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_is_usable, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - unsigned int usable = rand(); - - _init_test(); - - error = tdm_layer_is_usable(NULL, &usable); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_unset_buffer_queue() */ - -//TEST(tdm_layer_unset_buffer_queue, work_flow_success_3) -//{ -// tdm_error error = TDM_ERROR_INVALID_PARAMETER; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_private_layer layer; -// tdm_private_output private_output; -// tdm_private_display private_display; -// struct _tbm_surface waiting_buffer; -// struct _tbm_surface showing_buffer; -// -// _init_test(); -// -// layer.private_output = &private_output; -// private_output.private_display = &private_display; -// layer.waiting_buffer = &waiting_buffer; -// layer.showing_buffer = &showing_buffer; -// private_display.func_layer.layer_unset_buffer = layer_unset_buffer; -// -// error = tdm_layer_unset_buffer_queue(&layer); -// -// ASSERT_EQ(error, expected_error); -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 2); -// ASSERT_EQ(tbm_surface_queue_release_count, 2); -// ASSERT_TRUE(layer.waiting_buffer == NULL); -// ASSERT_TRUE(layer.showing_buffer == NULL); -//} - -//TEST(tdm_layer_unset_buffer_queue, work_flow_success_2) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error not_expected_error = TDM_ERROR_NONE; -// tdm_private_layer layer; -// tdm_private_output private_output; -// tdm_private_display private_display; -// -// _init_test(); -// -// layer.private_output = &private_output; -// private_output.private_display = &private_display; -// layer.waiting_buffer = NULL; -// layer.showing_buffer = NULL; -// private_display.func_layer.layer_unset_buffer = layer_unset_buffer; -// LAYER_UNSET_BUFFER_ERROR = 1; -// -// error = tdm_layer_unset_buffer_queue(&layer); -// -// ASSERT_NE(error, not_expected_error); -//} - -//TEST(tdm_layer_unset_buffer_queue, work_flow_success_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; -// tdm_private_layer layer; -// tdm_private_output private_output; -// tdm_private_display private_display; -// -// _init_test(); -// -// layer.private_output = &private_output; -// private_output.private_display = &private_display; -// layer.waiting_buffer = NULL; -// layer.showing_buffer = NULL; -// private_display.func_layer.layer_unset_buffer = NULL; -// -// error = tdm_layer_unset_buffer_queue(&layer); -// -// ASSERT_EQ(error, expected_error); -//} - -TEST(tdm_layer_unset_buffer_queue, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_layer_unset_buffer_queue(NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_set_buffer_queue() */ - -TEST(tdm_layer_set_buffer_queue, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - struct _tbm_surface_queue buffer_queue; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - struct _tbm_surface waiting_buffer; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_buffer = layer_set_buffer; - layer.buffer_queue = NULL; -// layer.waiting_buffer = &waiting_buffer; - - error = tdm_layer_set_buffer_queue(&layer, &buffer_queue); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 1); - ASSERT_EQ(tbm_surface_queue_release_count, 1); - ASSERT_TRUE(layer.waiting_buffer == NULL); -} - -TEST(tdm_layer_set_buffer_queue, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - struct _tbm_surface_queue buffer_queue; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_buffer = layer_set_buffer; - layer.buffer_queue = &buffer_queue; - - error = tdm_layer_set_buffer_queue(&layer, &buffer_queue); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_buffer_queue, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - struct _tbm_surface_queue buffer_queue; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_buffer = NULL; - - error = tdm_layer_set_buffer_queue(&layer, &buffer_queue); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_buffer_queue, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_set_buffer_queue(&layer, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_buffer_queue, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - struct _tbm_surface_queue buffer_queue; - - _init_test(); - - error = tdm_layer_set_buffer_queue(NULL, &buffer_queue); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_unset_buffer() */ - -//TEST(tdm_layer_unset_buffer, work_flow_success_3) -//{ -// tdm_error error = TDM_ERROR_OPERATION_FAILED; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_private_layer layer; -// tdm_private_output private_output; -// tdm_private_display private_display; -// struct _tbm_surface waiting_buffer; -// struct _tbm_surface showing_buffer; -// -// _init_test(); -// -// layer.private_output = &private_output; -// private_output.private_display = &private_display; -// layer.waiting_buffer = &waiting_buffer; -// layer.showing_buffer = &showing_buffer; -// private_display.func_layer.layer_unset_buffer = layer_unset_buffer; -// -// error = tdm_layer_unset_buffer(&layer); -// -// ASSERT_EQ(error, expected_error); -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 2); -//} - -//TEST(tdm_layer_unset_buffer, work_flow_success_2) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error not_expected_error = TDM_ERROR_NONE; -// tdm_private_layer layer; -// tdm_private_output private_output; -// tdm_private_display private_display; -// -// _init_test(); -// -// layer.private_output = &private_output; -// private_output.private_display = &private_display; -// layer.waiting_buffer = NULL; -// layer.showing_buffer = NULL; -// private_display.func_layer.layer_unset_buffer = layer_unset_buffer; -// LAYER_UNSET_BUFFER_ERROR = 1; -// -// error = tdm_layer_unset_buffer(&layer); -// -// ASSERT_NE(error, not_expected_error); -//} - -//TEST(tdm_layer_unset_buffer, work_flow_success_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; -// tdm_private_layer layer; -// tdm_private_output private_output; -// tdm_private_display private_display; -// -// _init_test(); -// -// layer.private_output = &private_output; -// private_output.private_display = &private_display; -// layer.waiting_buffer = NULL; -// layer.showing_buffer = NULL; -// private_display.func_layer.layer_unset_buffer = NULL; -// -// error = tdm_layer_unset_buffer(&layer); -// -// ASSERT_EQ(error, expected_error); -//} - -TEST(tdm_layer_unset_buffer, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_layer_unset_buffer(NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_set_buffer() */ -// -//TEST(tdm_layer_set_buffer, work_flow_success_3) -//{ -// tdm_error error = TDM_ERROR_OPERATION_FAILED; -// tdm_error expected_error = TDM_ERROR_NONE; -// struct _tbm_surface buffer; -// tdm_private_layer layer; -// tdm_private_output private_output; -// tdm_private_display private_display; -// struct _tbm_surface waiting_buffer; -// -// _init_test(); -// -// layer.caps.capabilities = TDM_LAYER_CAPABILITY_GRAPHIC; -// layer.private_output = &private_output; -// private_output.private_display = &private_display; -// layer.waiting_buffer = &waiting_buffer; -// private_display.func_layer.layer_set_buffer = layer_set_buffer; -// -// error = tdm_layer_set_buffer(&layer, &buffer); -// -// ASSERT_EQ(error, expected_error); -//} - -TEST(tdm_layer_set_buffer, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - struct _tbm_surface buffer; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_buffer = layer_set_buffer; - LAYER_SET_BUFFER_ERROR = 1; - - error = tdm_layer_set_buffer(&layer, &buffer); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_layer_set_buffer, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - struct _tbm_surface buffer; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_buffer = NULL; - - error = tdm_layer_set_buffer(&layer, &buffer); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_buffer, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_set_buffer(&layer, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_buffer, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - struct _tbm_surface buffer; - - _init_test(); - - error = tdm_layer_set_buffer(NULL, &buffer); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_get_info() */ - -TEST(tdm_layer_get_info, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_info_layer info; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_get_info = layer_set_info; - - error = tdm_layer_get_info(&layer, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_info, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_info_layer info; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_get_info = layer_set_info; - LAYER_SET_INFO_ERROR = 1; - - error = tdm_layer_get_info(&layer, &info); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_layer_get_info, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_info_layer info; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_get_info = NULL; - - error = tdm_layer_get_info(&layer, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_info, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_info(&layer, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_info, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_info_layer info; - - _init_test(); - - error = tdm_layer_get_info(NULL, &info); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_set_info() */ - -TEST(tdm_layer_set_info, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_info_layer info; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.usable = 1; - info.src_config.format = 0; - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_info = layer_set_info; - - error = tdm_layer_set_info(&layer, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_info, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_info_layer info; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - info.src_config.format = 1; - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_info = layer_set_info; - LAYER_SET_INFO_ERROR = 1; - - error = tdm_layer_set_info(&layer, &info); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_layer_set_info, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_info_layer info; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_info = NULL; - - error = tdm_layer_set_info(&layer, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_info, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_set_info(&layer, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_info, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_info_layer info; - - _init_test(); - - error = tdm_layer_set_info(NULL, &info); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_get_property() */ - -TEST(tdm_layer_get_property, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_get_property = layer_get_property; - - error = tdm_layer_get_property(&layer, 1, &value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_property, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_get_property = layer_get_property; - LAYER_GET_PROPERTY_ERROR = 1; - - error = tdm_layer_get_property(&layer, 1, &value); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_layer_get_property, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_value value; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_get_property = NULL; - - error = tdm_layer_get_property(&layer, 1, &value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_property, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_property(&layer, 1, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_property, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_value value; - - _init_test(); - - error = tdm_layer_get_property(NULL, 1, &value); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_set_property() */ - -TEST(tdm_layer_set_property, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_property = layer_set_property; - - error = tdm_layer_set_property(&layer, 1, value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_property, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_property = layer_set_property; - LAYER_SET_PROPERTY_ERROR = 1; - - error = tdm_layer_set_property(&layer, 1, value); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_layer_set_property, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_value value; - tdm_private_layer layer; - tdm_private_output private_output; - tdm_private_display private_display; - - _init_test(); - - layer.private_output = &private_output; - private_output.private_display = &private_display; - private_display.func_layer.layer_set_property = NULL; - - error = tdm_layer_set_property(&layer, 1, value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_set_property, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_value value; - - _init_test(); - - error = tdm_layer_set_property(NULL, 1, value); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_get_zpos() */ - -TEST(tdm_layer_get_zpos, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_layer layer; - tdm_private_output private_output; - layer.private_output = &private_output; - int zpos; - int expected_zpos = 547; - - _init_test(); - - layer.caps.zpos = expected_zpos; - - error = tdm_layer_get_zpos(&layer, &zpos); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(zpos, expected_zpos); -} - -TEST(tdm_layer_get_zpos, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_zpos(&layer, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_zpos, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - int zpos; - - _init_test(); - - error = tdm_layer_get_zpos(NULL, &zpos); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_get_available_properties() */ - -TEST(tdm_layer_get_available_properties, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_layer layer; - tdm_private_output private_output; - const tdm_prop *props; - tdm_prop p; - int count; - tdm_prop *expected_props = &p; - int expected_count = 468; - - _init_test(); - - layer.private_output = &private_output; - layer.caps.props = expected_props; - layer.caps.prop_count = expected_count; - - error = tdm_layer_get_available_properties(&layer, &props, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(props == expected_props); - ASSERT_EQ(count, expected_count); -} - -TEST(tdm_layer_get_available_properties, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - const tdm_prop *props; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_available_properties(&layer, &props, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_available_properties, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - int count; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_available_properties(&layer, NULL, &count); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_available_properties, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - const tdm_prop *props; - int count; - - _init_test(); - - error = tdm_layer_get_available_properties(NULL, &props, &count); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_get_available_formats() */ - -TEST(tdm_layer_get_available_formats, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_layer layer; - tdm_private_output private_output; - const tbm_format *formats; - tbm_format f; - int count; - tbm_format *expected_formats = &f; - int expected_count = 468; - - _init_test(); - - layer.private_output = &private_output; - layer.caps.formats = expected_formats; - layer.caps.format_count = expected_count; - - error = tdm_layer_get_available_formats(&layer, &formats, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(formats == expected_formats); - ASSERT_EQ(count, expected_count); -} - -TEST(tdm_layer_get_available_formats, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - const tbm_format *formats; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_available_formats(&layer, &formats, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_available_formats, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - int count; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_available_formats(&layer, NULL, &count); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_available_formats, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - const tbm_format *formats; - int count; - - _init_test(); - - error = tdm_layer_get_available_formats(NULL, &formats, &count); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_layer_get_capabilities() */ - -TEST(tdm_layer_get_capabilities, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_layer_capability capabilities = TDM_LAYER_CAPABILITY_SCALE; - tdm_layer_capability expected_capabilities = TDM_LAYER_CAPABILITY_GRAPHIC; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - layer.caps.capabilities = expected_capabilities; - - error = tdm_layer_get_capabilities(&layer, &capabilities); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(capabilities, expected_capabilities); -} - -TEST(tdm_layer_get_capabilities, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_layer layer; - tdm_private_output private_output; - - _init_test(); - - layer.private_output = &private_output; - - error = tdm_layer_get_capabilities(&layer, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_layer_get_capabilities, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_layer_capability capabilities = TDM_LAYER_CAPABILITY_SCALE; - - _init_test(); - - error = tdm_layer_get_capabilities(NULL, &capabilities); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_create_capture() */ - -TEST(tdm_output_create_capture, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - - _init_test(); - - tdm_output_create_capture(&output, &error); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_create_capture, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_private_output output; - - _init_test(); - - TDM_CAPTURE_CREATE_OUTPUT_INTENAL_ERROR = 1; - - tdm_output_create_capture(&output, &error); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_output_create_capture, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - tdm_output_create_capture(NULL, &error); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_dpms() */ - -TEST(tdm_output_get_dpms, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_output_dpms dpms_value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_get_dpms = output_get_dpms; - - error = tdm_output_get_dpms(&output, &dpms_value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_dpms, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_output_dpms dpms_value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_get_dpms = output_get_dpms; - OUTPUT_GET_DPMS_ERROR = 1; - - error = tdm_output_get_dpms(&output, &dpms_value); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_output_get_dpms, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_output_dpms dpms_value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_get_dpms = NULL; - - error = tdm_output_get_dpms(&output, &dpms_value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_dpms, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_output_dpms dpms_value; - - _init_test(); - - error = tdm_output_get_dpms(NULL, &dpms_value); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_set_dpms() */ - -TEST(tdm_output_set_dpms, error_output_is_null) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF; - - _init_test(); - - error = tdm_output_set_dpms(NULL, dpms_value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_set_dpms, success_dpms_is_already_set) -{ - tdm_error error; - tdm_output_dpms dpms_value = (tdm_output_dpms)10; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.current_dpms_value = TDM_OUTPUT_DPMS_OFF; - - output.private_display = &private_display; - - error = tdm_output_set_dpms(&output, dpms_value); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_output_set_dpms, error_event_loop_add_timer_handler_error) -{ - tdm_error error; - tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_sub); - - stub_tdm_event_loop_add_timer_handler_error = 1; - output.dpms_changed_timer = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - output.private_display = &private_display; - - error = tdm_output_set_dpms(&output, dpms_value); - - ASSERT_EQ(error, TDM_ERROR_OUT_OF_MEMORY); -} - -TEST(tdm_output_set_dpms, success_output_set_dpms_is_null) -{ - tdm_error error; - tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - tdm_func_output func_output; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_sub); - - output.dpms_changed_timer = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - output.private_display = &private_display; - - func_output.output_set_dpms = NULL; - - private_display.func_output = func_output; - - error = tdm_output_set_dpms(&output, dpms_value); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_output_set_dpms, error_output_set_dpms) -{ - tdm_error error; - tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - tdm_func_output func_output; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_sub); - - output.dpms_changed_timer = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - output.private_display = &private_display; - - func_output.output_set_dpms = output_set_dpms; - func_output.output_set_dpms_handler = NULL; - - private_display.func_output = func_output; - - OUTPUT_SET_DPMS_ERROR = 1; - - error = tdm_output_set_dpms(&output, dpms_value); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); -} - -TEST(tdm_output_set_dpms, error_output_set_dpms_handler_is_null) -{ - tdm_error error; - tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - tdm_func_output func_output; - tdm_private_change_handler change_handler; - - _init_test(); - - stub_tdm_event_loop_source_timer_update_error = 1; - - LIST_INITHEAD(&output.change_handler_list_sub); - LIST_INITHEAD(&output.change_handler_list_main); - LIST_ADD(&change_handler.link, &output.change_handler_list_sub); - - output.dpms_changed_timer = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - output.private_display = &private_display; - - func_output.output_set_dpms = output_set_dpms; - func_output.output_set_dpms_handler = NULL; - - private_display.func_output = func_output; - - error = tdm_output_set_dpms(&output, dpms_value); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); -} - -TEST(tdm_output_set_dpms, success_output_set_dpms_handler_is_null) -{ - tdm_error error; - tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - tdm_func_output func_output; - tdm_private_change_handler change_handler; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_sub); - LIST_INITHEAD(&output.change_handler_list_main); - LIST_ADD(&change_handler.link, &output.change_handler_list_sub); - - output.dpms_changed_timer = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - output.private_display = &private_display; - - func_output.output_set_dpms = output_set_dpms; - func_output.output_set_dpms_handler = NULL; - - private_display.func_output = func_output; - - error = tdm_output_set_dpms(&output, dpms_value); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_output_set_dpms, success_output_set_dpms_handler_is_not_null) -{ - tdm_error error; - tdm_output_dpms dpms_value = TDM_OUTPUT_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - tdm_func_output func_output; - - _init_test(); - - stub_tdm_event_loop_source_timer_update_error = 1; - - LIST_INITHEAD(&output.change_handler_list_sub); - LIST_INITHEAD(&output.change_handler_list_main); - - output.dpms_changed_timer = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - output.private_display = &private_display; - output.regist_dpms_cb = 0; - - func_output.output_set_dpms = output_set_dpms; - func_output.output_set_dpms_handler = output_set_dpms_handler; - - private_display.func_output = func_output; - - error = tdm_output_set_dpms(&output, dpms_value); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -/* tdm_output_get_mode() */ - -TEST(tdm_output_get_mode, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NONE; - const tdm_output_mode *mode; - tdm_private_output output; - tdm_output_mode expected_mode; - output.current_mode = &expected_mode; - - _init_test(); - - error = tdm_output_get_mode(&output, &mode); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(mode == &expected_mode); -} - -TEST(tdm_output_get_mode, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_mode(&output, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_mode, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - const tdm_output_mode *mode; - - _init_test(); - - error = tdm_output_get_mode(NULL, &mode); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_set_mode() */ - -TEST(tdm_output_set_mode, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_output_mode mode; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_set_mode = output_set_mode; - - error = tdm_output_set_mode(&output, &mode); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_set_mode, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_output_mode mode; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_set_mode = output_set_mode; - OUTPUT_SET_MODE_ERROR = 1; - - error = tdm_output_set_mode(&output, &mode); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_output_set_mode, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_output_mode mode; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_set_mode = NULL; - - error = tdm_output_set_mode(&output, &mode); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_set_mode, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_set_mode(&output, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_set_mode, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_output_mode mode; - - _init_test(); - - error = tdm_output_set_mode(NULL, &mode); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_commit() */ - -TEST(tdm_output_commit, work_flow_success_7) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - -// LIST_INITHEAD(&output.commit_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_commit = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_OFF; - - error = tdm_output_commit(&output, 0, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_commit, work_flow_success_6) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - -// LIST_INITHEAD(&output.commit_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_commit = output_commit; - private_display.func_output.output_set_commit_handler = - output_set_commit_handler; - output.regist_commit_cb = 1; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_commit(&output, 0, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_commit, work_flow_success_5) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - -// LIST_INITHEAD(&output.commit_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_commit = output_commit; - private_display.func_output.output_set_commit_handler = - output_set_commit_handler; - output.regist_commit_cb = 0; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_commit(&output, 0, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_commit, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - -// LIST_INITHEAD(&output.commit_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_commit = output_commit; - private_display.func_output.output_set_commit_handler = - output_set_commit_handler; - output.regist_commit_cb = 0; - OUTPUT_COMMIT_ERROR = 1; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_commit(&output, 0, NULL, NULL); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_output_commit, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - -// LIST_INITHEAD(&output.commit_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_commit = output_commit; - OUTPUT_COMMIT_ERROR = 1; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - private_display.func_output.output_set_commit_handler = - output_set_commit_handler; - - error = tdm_output_commit(&output, 0, NULL, NULL); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_output_commit, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - -// LIST_INITHEAD(&output.commit_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_commit = output_commit; - CALLOC_ERROR = 1; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_commit(&output, 0, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_commit, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - -// LIST_INITHEAD(&output.commit_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_commit = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_commit(&output, 0, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_commit, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_output_commit(NULL, 0, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - - -/* tdm_output_wait_vblank() */ - -TEST(tdm_output_wait_vblank, work_flow_success_7) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_DPMS_OFF; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&output.vblank_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_wait_vblank = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_STANDBY; - - error = tdm_output_wait_vblank(&output, 1, 1, - ut_tdm_output_vblank_handler, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_wait_vblank, work_flow_success_6) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&output.vblank_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_wait_vblank = output_wait_vblank; - private_display.func_output.output_set_vblank_handler = - output_set_vblank_handler; - output.regist_vblank_cb = 1; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_wait_vblank(&output, 1, 1, - ut_tdm_output_vblank_handler, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_wait_vblank, work_flow_success_5) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&output.vblank_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_wait_vblank = output_wait_vblank; - private_display.func_output.output_set_vblank_handler = - output_set_vblank_handler; - output.regist_vblank_cb = 0; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_wait_vblank(&output, 1, 1, - ut_tdm_output_vblank_handler, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_wait_vblank, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&output.vblank_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_wait_vblank = output_wait_vblank; - private_display.func_output.output_set_vblank_handler = - output_set_vblank_handler; - OUTPUT_SET_VBLANK_HANDLER = 1; - output.regist_vblank_cb = 0; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_wait_vblank(&output, 1, 1, - ut_tdm_output_vblank_handler, NULL); - - ASSERT_NE(error, not_expected_error); -} - -//TEST(tdm_output_wait_vblank, work_flow_success_3) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error not_expected_error = TDM_ERROR_NONE; -// tdm_private_output output; -// tdm_private_display private_display; -// -// _init_test(); -// -// LIST_INITHEAD(&output.vblank_handler_list); -// -// output.private_display = &private_display; -// private_display.func_output.output_wait_vblank = output_wait_vblank; -// OUTPUT_WAIT_VBLANK_ERROR = 1; -// output.current_dpms_value = TDM_OUTPUT_DPMS_ON; -// -// error = tdm_output_wait_vblank(&output, 1, 1, -// ut_tdm_output_vblank_handler, NULL); -// -// ASSERT_NE(error, not_expected_error); -//} - -TEST(tdm_output_wait_vblank, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&output.vblank_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_wait_vblank = output_wait_vblank; - CALLOC_ERROR = 1; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_wait_vblank(&output, 1, 1, - ut_tdm_output_vblank_handler, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_wait_vblank, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&output.vblank_handler_list); - - output.private_display = &private_display; - private_display.func_output.output_wait_vblank = NULL; - output.current_dpms_value = TDM_OUTPUT_DPMS_ON; - - error = tdm_output_wait_vblank(&output, 1, 1, - ut_tdm_output_vblank_handler, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_wait_vblank, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_output_wait_vblank(NULL, 1, 1, - ut_tdm_output_vblank_handler, NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_property() */ - -TEST(tdm_output_get_property, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_get_property = output_get_property; - - error = tdm_output_get_property(&output, 1, &value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_property, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_get_property = output_get_property; - OUTPUT_GET_PROPERTY_ERROR = 1; - - error = tdm_output_get_property(&output, 1, &value); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_output_get_property, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_value value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_get_property = NULL; - - error = tdm_output_get_property(&output, 1, &value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_property, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_property(&output, 1, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_property, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_value value; - - _init_test(); - - error = tdm_output_get_property(NULL, 1, &value); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_set_property() */ - -TEST(tdm_output_set_property, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_set_property = output_set_property; - - error = tdm_output_set_property(&output, 1, value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_set_property, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_value value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_set_property = output_set_property; - OUTPUT_SET_PROPERTY_ERROR = 1; - - error = tdm_output_set_property(&output, 1, value); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_output_set_property, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_value value; - tdm_private_output output; - tdm_private_display private_display; - - _init_test(); - - output.private_display = &private_display; - private_display.func_output.output_set_property = NULL; - - error = tdm_output_set_property(&output, 1, value); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_set_property, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_value value; - - _init_test(); - - error = tdm_output_set_property(NULL, 1, value); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_pipe() */ - -TEST(tdm_output_get_pipe, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - unsigned int pipe; - unsigned int expected_pipe = 4869; - - _init_test(); - - output.pipe = expected_pipe; - - error = tdm_output_get_pipe(&output, &pipe); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(pipe, expected_pipe); -} - -TEST(tdm_output_get_pipe, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_pipe(&output, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_pipe, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - unsigned int pipe; - - _init_test(); - - error = tdm_output_get_pipe(NULL, &pipe); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_subpixel() */ - -TEST(tdm_output_get_subpixel, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - unsigned int subpixel; - unsigned int expected_subpixel = 4869; - - _init_test(); - - output.caps.subpixel = expected_subpixel; - - error = tdm_output_get_subpixel(&output, &subpixel); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(subpixel, expected_subpixel); -} - -TEST(tdm_output_get_subpixel, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_subpixel(&output, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_subpixel, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - unsigned int subpixel; - - _init_test(); - - error = tdm_output_get_subpixel(NULL, &subpixel); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_physical_size() */ - -TEST(tdm_output_get_physical_size, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - unsigned int mmWidth; - unsigned int expected_mmWidth = 445; - unsigned int mmHeight; - unsigned int expected_mmHeight = 4547; - - _init_test(); - - output.caps.mmWidth = expected_mmWidth; - output.caps.mmHeight = expected_mmHeight; - - error = tdm_output_get_physical_size(&output, &mmWidth, &mmHeight); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(mmWidth, expected_mmWidth); - ASSERT_EQ(mmHeight, expected_mmHeight); -} - -TEST(tdm_output_get_physical_size, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - unsigned int mmHeight; - unsigned int expected_mmHeight = 4547; - - _init_test(); - - output.caps.mmHeight = expected_mmHeight; - - error = tdm_output_get_physical_size(&output, NULL, &mmHeight); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(mmHeight, expected_mmHeight); -} - -TEST(tdm_output_get_physical_size, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - unsigned int mmWidth; - unsigned int expected_mmWidth = 445; - - _init_test(); - - output.caps.mmWidth = expected_mmWidth; - - error = tdm_output_get_physical_size(&output, &mmWidth, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(mmWidth, expected_mmWidth); -} - -TEST(tdm_output_get_physical_size, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_output_get_physical_size(NULL, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_available_size() */ - -TEST(tdm_output_get_available_size, work_flow_6) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - int min_w; - int expected_min_w = 200; - int min_h; - int expected_min_h = 100; - int max_w; - int expected_max_w = 2000; - int max_h; - int expected_max_h = 1000; - int preferred_align; - int expected_preferred_align = 456; - - _init_test(); - - output.caps.min_w = expected_min_w; - output.caps.min_h = expected_min_h; - output.caps.max_w = expected_max_w; - output.caps.max_h = expected_max_h; - output.caps.preferred_align = expected_preferred_align; - - error = tdm_output_get_available_size(&output, &min_w, &min_h, &max_w, - &max_h, &preferred_align); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(preferred_align, expected_preferred_align); - ASSERT_EQ(min_w, expected_min_w); - ASSERT_EQ(min_h, expected_min_h); - ASSERT_EQ(max_w, expected_max_w); - ASSERT_EQ(max_h, expected_max_h); - ASSERT_EQ(preferred_align, expected_preferred_align); -} - -TEST(tdm_output_get_available_size, work_flow_5) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - int preferred_align; - int expected_preferred_align = 456; - - _init_test(); - - output.caps.preferred_align = expected_preferred_align; - - error = tdm_output_get_available_size(&output, NULL, NULL, NULL, - NULL, &preferred_align); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(preferred_align, expected_preferred_align); -} - -TEST(tdm_output_get_available_size, work_flow_4) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - int max_h; - int expected_max_h = 1000; - - _init_test(); - - output.caps.max_h = expected_max_h; - - error = tdm_output_get_available_size(&output, NULL, NULL, NULL, - &max_h, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(max_h, expected_max_h); -} - -TEST(tdm_output_get_available_size, work_flow_3) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - int max_w; - int expected_max_w = 2000; - - _init_test(); - - output.caps.max_w = expected_max_w; - - error = tdm_output_get_available_size(&output, NULL, NULL, - &max_w, NULL, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(max_w, expected_max_w); -} - -TEST(tdm_output_get_available_size, work_flow_2) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - int min_h; - int expected_min_h = 100; - - _init_test(); - - output.caps.min_h = expected_min_h; - - error = tdm_output_get_available_size(&output, NULL, &min_h, - NULL, NULL, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(min_h, expected_min_h); -} - -TEST(tdm_output_get_available_size, work_flow_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - int min_w; - int expected_min_w = 200; - - _init_test(); - - output.caps.min_w = expected_min_w; - - error = tdm_output_get_available_size(&output, &min_w, NULL, - NULL, NULL, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(min_w, expected_min_w); -} - -TEST(tdm_output_get_available_size, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_output_get_available_size(NULL, NULL, NULL, NULL, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_available_modes() */ - -TEST(tdm_output_get_available_modes, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - const tdm_output_mode *modes; - int count; - tdm_output_mode m; - const tdm_output_mode *expected_modes = &m; - int expected_count = 14; - - _init_test(); - - output.caps.modes = &m; - output.caps.mode_count = expected_count; - - error = tdm_output_get_available_modes(&output, &modes, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(modes == expected_modes); - ASSERT_EQ(count, expected_count); -} - -TEST(tdm_output_get_available_modes, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - const tdm_output_mode *modes; - - _init_test(); - - error = tdm_output_get_available_modes(&output, &modes, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_available_modes, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - int count; - - _init_test(); - - error = tdm_output_get_available_modes(&output, NULL, &count); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_available_modes, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - const tdm_output_mode *modes; - int count; - - _init_test(); - - error = tdm_output_get_available_modes(NULL, &modes, &count); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_available_properties() */ - -TEST(tdm_output_get_available_properties, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - const tdm_prop *props; - int count; - tdm_prop p; - const tdm_prop *expected_props = &p; - int expected_count = 14; - - _init_test(); - - output.caps.props = &p; - output.caps.prop_count = expected_count; - - error = tdm_output_get_available_properties(&output, &props, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(props == expected_props); - ASSERT_EQ(count, expected_count); -} - -TEST(tdm_output_get_available_properties, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - const tdm_prop *props; - - _init_test(); - - error = tdm_output_get_available_properties(&output, &props, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_available_properties, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - int count; - - _init_test(); - - error = tdm_output_get_available_properties(&output, NULL, &count); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_available_properties, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - const tdm_prop *props; - int count; - - _init_test(); - - error = tdm_output_get_available_properties(NULL, &props, &count); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_layer() */ - -TEST(tdm_output_get_layer, success_get_layer) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_private_layer private_layer; - tdm_layer *layer; - - _init_test(); - - private_layer.index = 15; - - LIST_INITHEAD(&output.layer_list); - LIST_ADD(&private_layer.link, &output.layer_list); - - layer = tdm_output_get_layer(&output, 15, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(layer == &private_layer); -} - -TEST(tdm_output_get_layer, success_list_is_empty) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_layer *layer; - - _init_test(); - - LIST_INITHEAD(&output.layer_list); - - layer = tdm_output_get_layer(&output, 1, &error); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(layer == NULL); -} - -TEST(tdm_output_get_layer, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - tdm_output_get_layer(NULL, 1, &error); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_layer_count() */ - -TEST(tdm_output_get_layer_count, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - int count; - tdm_private_output output; - tdm_private_layer private_layer_1; - tdm_private_layer private_layer_2; - - _init_test(); - - LIST_INITHEAD(&output.layer_list); - LIST_ADD(&private_layer_1.link, &output.layer_list); - LIST_ADD(&private_layer_2.link, &output.layer_list); - - error = tdm_output_get_layer_count(&output, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(count, 2); -} - -TEST(tdm_output_get_layer_count, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - int count; - tdm_private_output output; - - _init_test(); - - LIST_INITHEAD(&output.layer_list); - - error = tdm_output_get_layer_count(&output, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(count, 0); -} - -TEST(tdm_output_get_layer_count, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_layer_count(&output, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_layer_count, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - int count; - - _init_test(); - - error = tdm_output_get_layer_count(NULL, &count); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_output_type() */ - -TEST(tdm_output_get_output_type, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - tdm_output_type type = TDM_OUTPUT_TYPE_DVID; - tdm_output_type expected_type = TDM_OUTPUT_TYPE_VGA; - - _init_test(); - - output.caps.type = expected_type; - - error = tdm_output_get_output_type(&output, &type); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(type, expected_type); -} - -TEST(tdm_output_get_output_type, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_output_type(&output, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_output_type, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_output_type type = TDM_OUTPUT_TYPE_DVID; - - _init_test(); - - error = tdm_output_get_output_type(NULL, &type); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_conn_status() */ - -TEST(tdm_output_get_conn_status, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_output_conn_status status = TDM_OUTPUT_CONN_STATUS_DISCONNECTED; - tdm_output_conn_status expected_status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - tdm_private_output output; - - _init_test(); - - output.caps.status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - - error = tdm_output_get_conn_status(&output, &status); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(status, expected_status); -} - -TEST(tdm_output_get_conn_status, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_conn_status(&output, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_conn_status, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_output_conn_status status; - - _init_test(); - - error = tdm_output_get_conn_status(NULL, &status); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_output_get_model_info() */ - -TEST(tdm_output_get_model_info, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - const char *maker; - const char *model; - const char *name; - char *expected_maker = output.caps.maker; - char *expected_model = output.caps.model; - char *expected_name = output.caps.name; - - _init_test(); - - error = tdm_output_get_model_info(&output, &maker, &model, &name); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(maker == expected_maker); - ASSERT_TRUE(model == expected_model); - ASSERT_TRUE(name == expected_name); -} - -TEST(tdm_output_get_model_info, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_INVALID_PARAMETER; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_model_info(&output, NULL, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_output_get_model_info, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_output_get_model_info(NULL, NULL, NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_create_pp() */ - -TEST(tdm_display_create_pp, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - - _init_test(); - - tdm_display_create_pp(&dpy, &error); - - ASSERT_EQ(error, expected_error); - -} - -TEST(tdm_display_create_pp, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - - _init_test(); - - TDM_PP_CREATE_INTERNAL_ERROR = 1; - - tdm_display_create_pp(&dpy, &error); - - ASSERT_NE(error, not_expected_error); - -} - -TEST(tdm_display_create_pp, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - tdm_display_create_pp(NULL, &error); - - ASSERT_EQ(error, expected_error); - -} - -/* tdm_display_handle_events() */ - -TEST(tdm_display_handle_events, success_thread_handle_cb) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - - _init_test(); - - stub_tdm_thread_is_run = 1; - - error = tdm_display_handle_events(&dpy); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_display_handle_events, error_thread_handle_cb) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - - _init_test(); - - stub_tdm_thread_is_run = 1; - TDM_THREAD_HANDLE_ERROR = 1; - - error = tdm_display_handle_events(&dpy); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); -} - -TEST(tdm_display_handle_events, error_poll) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - - _init_test(); - - stub_poll_error = 1; - - error = tdm_display_handle_events(&dpy); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); -} - -TEST(tdm_display_handle_events, success_poll_eagain) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - - _init_test(); - - stub_poll_eagain = 1; - - error = tdm_display_handle_events(&dpy); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_display_handle_events, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - tdm_private_loop private_loop; - - _init_test(); - - error = tdm_display_handle_events(&dpy); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_handle_events, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - - _init_test(); - - TDM_EVENT_LOOP_DISPATCH_ERROR = 1; - - error = tdm_display_handle_events(&dpy); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_display_handle_events, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_handle_events(NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_fd() */ - -TEST(tdm_display_get_fd, success_thread_is_running) -{ - tdm_error error; - int fd; - struct _tdm_private_display dpy; - - _init_test(); - - stub_tdm_thread_is_run = 1; - stub_tdm_thread_ret_fd = 5; - - error = tdm_display_get_fd(&dpy, &fd); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(fd, stub_tdm_thread_ret_fd); -} - -TEST(tdm_display_get_fd, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - int fd; - struct _tdm_private_display dpy; - - _init_test(); - - error = tdm_display_get_fd(&dpy, &fd); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_fd, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - struct _tdm_private_display dpy; - - _init_test(); - - error = tdm_display_get_fd(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_fd, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - int fd; - - _init_test(); - - error = tdm_display_get_fd(NULL, &fd); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_output() */ - -TEST(tdm_display_get_output, success_get_output) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error; - struct _tdm_private_display dpy; - tdm_output *ret_output; - tdm_private_output output; - - _init_test(); - - output.index = 20; - - LIST_INITHEAD(&dpy.output_list); - LIST_ADD(&output.link, &dpy.output_list); - - ret_output = tdm_display_get_output(&dpy, output.index, &error); - - expected_error = TDM_ERROR_NONE; - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(ret_output, &output); -} - -TEST(tdm_display_get_output, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error; - struct _tdm_private_display dpy; - - _init_test(); - - LIST_INITHEAD(&dpy.output_list); - - tdm_display_get_output(&dpy, 1, &error); - - expected_error = TDM_ERROR_NONE; - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_output, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error; - expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - tdm_display_get_output(NULL, 1, &error); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_output_count() */ - -TEST(tdm_display_get_output_count, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error; - struct _tdm_private_display dpy; - int count; - tdm_private_output output_1; - tdm_private_output output_2; - - _init_test(); - - LIST_INITHEAD(&dpy.output_list); - LIST_ADD(&output_1.link, &dpy.output_list); - LIST_ADD(&output_2.link, &dpy.output_list); - - error = tdm_display_get_output_count(&dpy, &count); - - expected_error = TDM_ERROR_NONE; - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(count, 2); -} - -TEST(tdm_display_get_output_count, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error; - struct _tdm_private_display dpy; - int count; - - _init_test(); - - LIST_INITHEAD(&dpy.output_list); - - error = tdm_display_get_output_count(&dpy, &count); - - expected_error = TDM_ERROR_NONE; - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(count, 0); -} - -TEST(tdm_display_get_output_count, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error; - struct _tdm_private_display dpy; - - _init_test(); - - error = tdm_display_get_output_count(&dpy, NULL); - - expected_error = TDM_ERROR_INVALID_PARAMETER; - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_output_count, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - int count; - - _init_test(); - - error = tdm_display_get_output_count(NULL, &count); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_catpure_available_formats() */ - -TEST(tdm_display_get_catpure_available_formats, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - const tbm_format *format; - int count; - tbm_format expected_format = 2; - int expected_count = 3; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - dpy.caps_capture.format_count = expected_count; - dpy.caps_capture.formats = &expected_format; - - error = tdm_display_get_catpure_available_formats(&dpy, &format, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(format == &expected_format); - ASSERT_EQ(count, expected_count); -} - -TEST(tdm_display_get_catpure_available_formats, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - const tbm_format *format; - int count; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - - error = tdm_display_get_catpure_available_formats(&dpy, &format, &count); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_catpure_available_formats, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - const tbm_format *format; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_catpure_available_formats(&dpy, &format, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_catpure_available_formats, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - int count; - - _init_test(); - - error = tdm_display_get_catpure_available_formats(&dpy, NULL, &count); - - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_catpure_available_formats, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - const tbm_format *format; - int count; - - _init_test(); - - error = tdm_display_get_catpure_available_formats(NULL, &format, &count); - - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_capture_capabilities() */ - -TEST(tdm_display_get_capture_capabilities, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_capture_capability capability = TDM_CAPTURE_CAPABILITY_STREAM; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_capture_capability expected_capability = TDM_CAPTURE_CAPABILITY_LAYER; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - dpy.caps_capture.capabilities = TDM_CAPTURE_CAPABILITY_LAYER; - - error = tdm_display_get_capture_capabilities(&dpy, &capability); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(capability, expected_capability); -} - -TEST(tdm_display_get_capture_capabilities, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_capture_capability capability = TDM_CAPTURE_CAPABILITY_STREAM; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - - error = tdm_display_get_capture_capabilities(&dpy, &capability); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_capture_capabilities, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_capture_capabilities(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_capture_capabilities, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_capture_capability capability = TDM_CAPTURE_CAPABILITY_STREAM; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_capture_capabilities(NULL, &capability); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_pp_available_size() */ - -TEST(tdm_display_get_pp_available_size, work_flow_success_7) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - int min_w = 0; - int expected_min_w = 200; - int min_h = 0; - int expected_min_h = 100; - int max_w = 0; - int expected_max_w = 2000; - int max_h = 0; - int expected_max_h = 1000; - int preferred_align = 0; - int expected_preferred_align = 500; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.min_w = expected_min_w; - dpy.caps_pp.min_h = expected_min_h; - dpy.caps_pp.max_w = expected_max_w; - dpy.caps_pp.max_h = expected_max_h; - dpy.caps_pp.preferred_align = expected_preferred_align; - - error = tdm_display_get_pp_available_size(&dpy, &min_w, &min_h, &max_w, - &max_h, &preferred_align); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(min_w, expected_min_w); - ASSERT_EQ(min_h, expected_min_h); - ASSERT_EQ(max_w, expected_max_w); - ASSERT_EQ(max_h, expected_max_h); - ASSERT_EQ(preferred_align, expected_preferred_align); -} - -TEST(tdm_display_get_pp_available_size, work_flow_success_6) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - int preferred_align = 0; - int expected_preferred_align = 500; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.preferred_align = expected_preferred_align; - - error = tdm_display_get_pp_available_size(&dpy, NULL, NULL, NULL, NULL, - &preferred_align); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(preferred_align, expected_preferred_align); -} - -TEST(tdm_display_get_pp_available_size, work_flow_success_5) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - int max_h = 0; - int expected_max_h = 1000; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.max_h = expected_max_h; - - error = tdm_display_get_pp_available_size(&dpy, NULL, NULL, NULL, - &max_h, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(max_h, expected_max_h); -} - -TEST(tdm_display_get_pp_available_size, work_flow_success_4) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - int max_w = 0; - int expected_max_w = 2000; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.max_w = expected_max_w; - - error = tdm_display_get_pp_available_size(&dpy, NULL, NULL, &max_w, - NULL, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(max_w, expected_max_w); -} - -TEST(tdm_display_get_pp_available_size, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - int min_h = 0; - int expected_min_h = 100; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.min_h = expected_min_h; - - error = tdm_display_get_pp_available_size(&dpy, NULL, &min_h, NULL, - NULL, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(min_h, expected_min_h); -} - -TEST(tdm_display_get_pp_available_size, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - int min_w = 0; - int expected_min_w = 200; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.min_w = expected_min_w; - - error = tdm_display_get_pp_available_size(&dpy, &min_w, NULL, NULL, - NULL, NULL); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(min_w, expected_min_w); -} - -TEST(tdm_display_get_pp_available_size, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - - error = tdm_display_get_pp_available_size(&dpy, NULL, NULL, NULL, - NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_pp_available_size, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_pp_available_size(NULL, NULL, NULL, NULL, - NULL, NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_pp_available_formats() */ - -TEST(tdm_display_get_pp_available_formats, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - struct _tdm_private_display dpy; - const tbm_format *format; - int count; - tbm_format expected_format = 2; - int expected_count = 3; - tdm_error expected_error = TDM_ERROR_NONE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.format_count = expected_count; - dpy.caps_pp.formats = &expected_format; - - error = tdm_display_get_pp_available_formats(&dpy, &format, &count); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(format == &expected_format); - ASSERT_EQ(count, expected_count); -} - -TEST(tdm_display_get_pp_available_formats, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - const tbm_format *format; - int count; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - - error = tdm_display_get_pp_available_formats(&dpy, &format, &count); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_pp_available_formats, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - const tbm_format *format; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_pp_available_formats(&dpy, &format, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_pp_available_formats, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - int count; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_pp_available_formats(&dpy, NULL, &count); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_pp_available_formats, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - const tbm_format *format; - int count; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_pp_available_formats(NULL, &format, &count); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_pp_capabilities() */ - -TEST(tdm_display_get_pp_capabilities, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_pp_capability capability = TDM_PP_CAPABILITY_SCALE; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_pp_capability expected_capability = TDM_PP_CAPABILITY_TRANSFORM; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_PP; - dpy.caps_pp.capabilities = TDM_PP_CAPABILITY_TRANSFORM; - - error = tdm_display_get_pp_capabilities(&dpy, &capability); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(capability, expected_capability); -} - -TEST(tdm_display_get_pp_capabilities, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_pp_capability capability = TDM_PP_CAPABILITY_SCALE; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NO_CAPABILITY; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - - error = tdm_display_get_pp_capabilities(&dpy, &capability); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_pp_capabilities, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_pp_capabilities(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_pp_capabilities, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_pp_capability capability = TDM_PP_CAPABILITY_SCALE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_pp_capabilities(NULL, &capability); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_capabilities() */ - -TEST(tdm_display_get_capabilities, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_display_capability capability = TDM_DISPLAY_CAPABILITY_PP; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_display_capability expected_capability = TDM_DISPLAY_CAPABILITY_CAPTURE; - - _init_test(); - - dpy.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - - error = tdm_display_get_capabilities(&dpy, &capability); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(capability, expected_capability); -} - -TEST(tdm_display_get_capabilities, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - struct _tdm_private_display dpy; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_capabilities(&dpy, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_display_get_capabilities, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_display_capability capability = TDM_DISPLAY_CAPABILITY_CAPTURE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_display_get_capabilities(NULL, &capability); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_display_get_capture_available_size() */ - -TEST(tdm_display_get_capture_available_size, error_dpy_is_null) -{ - tdm_error error = TDM_ERROR_NONE; - - _init_test(); - - error = tdm_display_get_capture_available_size(NULL, NULL, NULL, NULL, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_display_get_capture_available_size, error_no_capability) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_display display; - - _init_test(); - - display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - - error = tdm_display_get_capture_available_size(&display, NULL, NULL, NULL, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_NO_CAPABILITY); -} - -TEST(tdm_display_get_capture_available_size, success_get_capture_available_size) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_display display; - int min_w, min_h, max_w, max_h, preferred_align; - - _init_test(); - - display.capabilities = TDM_DISPLAY_CAPABILITY_CAPTURE; - - display.caps_capture.min_w = 200; - display.caps_capture.min_h = 300; - display.caps_capture.max_w = 1080; - display.caps_capture.max_h = 1920; - display.caps_capture.preferred_align = 100; - - error = tdm_display_get_capture_available_size(&display, &min_w, - &min_h, &max_w, &max_h, - &preferred_align); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(display.caps_capture.min_w, min_w); - ASSERT_EQ(display.caps_capture.min_h, min_h); - ASSERT_EQ(display.caps_capture.max_w, max_w); - ASSERT_EQ(display.caps_capture.max_h, max_h); - ASSERT_EQ(display.caps_capture.preferred_align, preferred_align); -} - -/* tdm_display_get_capture_available_size() */ - -TEST(tdm_display_get_max_layer_count, error_dpy_is_null) -{ - tdm_error error = TDM_ERROR_NONE; - int max_count; - - _init_test(); - - error = tdm_display_get_max_layer_count(NULL, &max_count); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_display_get_max_layer_count, error_max_count_is_null) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_display display; - - _init_test(); - - error = tdm_display_get_max_layer_count(&display, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_display_get_max_layer_count, success_get_max_layer_count) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_display display; - int max_count; - - _init_test(); - - display.caps_display.max_layer_count = 100; - - error = tdm_display_get_max_layer_count(&display, &max_count); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(display.caps_display.max_layer_count, max_count); -} - -/* tdm_display_get_backend_info() */ - -TEST(tdm_display_get_backend_info, error_dpy_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_display_get_backend_info(NULL, NULL, NULL, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_display_get_backend_info, success_get_backend_info) -{ - tdm_error error; - tdm_private_display display; - tdm_backend_module module_data; - const char *name; - const char *vendor; - int major; - int minor; - - _init_test(); - - display.module_data = &module_data; - - module_data.name = "name"; - module_data.vendor = "vendor"; - module_data.abi_version = 0xFFFFFFFF; - - error = tdm_display_get_backend_info(&display, &name, &vendor, &major, &minor); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_TRUE(name == module_data.name); - ASSERT_TRUE(vendor == module_data.vendor); - ASSERT_EQ(major, TDM_BACKEND_GET_ABI_MAJOR(module_data.abi_version)); - ASSERT_EQ(minor, TDM_BACKEND_GET_ABI_MINOR(module_data.abi_version)); -} - -/* tdm_output_get_capabilities() */ - -TEST(tdm_output_get_capabilities, error_output_is_null) -{ - tdm_error error; - tdm_output_capability capabilities; - - _init_test(); - - error = tdm_output_get_capabilities(NULL, &capabilities); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_output_get_capabilities, error_capabilities_is_null) -{ - tdm_error error; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_capabilities(&output, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_output_get_capabilities, success_get_capabilities) -{ - tdm_error error; - tdm_private_output output; - tdm_output_capability capabilities; - - _init_test(); - - output.caps.capabilities = TDM_OUTPUT_CAPABILITY_ASYNC_DPMS; - - error = tdm_output_get_capabilities(&output, &capabilities); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(capabilities, output.caps.capabilities); -} - -/* tdm_output_cb_status() */ - -TEST(tdm_output_cb_status, success_no_in_display_thread) -{ - tdm_private_output private_output; - tdm_private_display private_display; - tdm_thread_cb_output_status *output_status; - tdm_output_conn_status status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - - _init_test(); - - private_output.private_display = &private_display; - private_output.stamp = 15.25; - - LIST_INITHEAD(&private_output.change_handler_list_sub); - - tdm_output_cb_status(&private_output, status, &private_output); - - output_status = (tdm_thread_cb_output_status *)stub_tdm_thread_send_cb_buff; - - ASSERT_EQ(output_status->base.type, TDM_THREAD_CB_OUTPUT_STATUS); - ASSERT_EQ(output_status->base.length, sizeof * output_status); - ASSERT_EQ(output_status->output_stamp, private_output.stamp); - ASSERT_EQ(output_status->status, status); - ASSERT_TRUE(output_status->user_data == &private_output); -} - -TEST(tdm_output_cb_status, success_in_display_thread) -{ - tdm_private_output private_output; - tdm_private_display private_display; - tdm_output_conn_status status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - tdm_private_change_handler change_handler; - - _init_test(); - - stub_tdm_thread_display_thread = 1; - private_output.private_display = &private_display; - private_output.stamp = 15.25; - - change_handler.func = stub_tdm_output_change_handler_cb; - - LIST_INITHEAD(&private_output.change_handler_list_main); - LIST_ADD(&change_handler.link, &private_output.change_handler_list_main); - - tdm_output_cb_status(&private_output, status, &private_output); - - ASSERT_TRUE(stub_tdm_output_change_handler_count); -} - -/* tdm_output_add_change_handler() */ - -TEST(tdm_output_add_change_handler, error_output_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_output_add_change_handler(NULL, stub_tdm_output_change_handler_cb, - NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_output_add_change_handler, error_func_is_null) -{ - tdm_error error; - tdm_private_output output; - - _init_test(); - - error = tdm_output_add_change_handler(&output, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_output_add_change_handler, error_calloc) -{ - tdm_error error; - tdm_private_output output; - - _init_test(); - - CALLOC_ERROR = 1; - - error = tdm_output_add_change_handler(&output, stub_tdm_output_change_handler_cb, - NULL); - - ASSERT_EQ(error, TDM_ERROR_OUT_OF_MEMORY); -} - -TEST(tdm_output_add_change_handler, success_no_in_display_thread) -{ - tdm_error error; - tdm_private_output output; - int user_data = 10; - tdm_private_change_handler *h = NULL, *handler = NULL; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_main); - LIST_INITHEAD(&output.change_handler_list_sub); - - stub_syscall_return_value = 21615; - - error = tdm_output_add_change_handler(&output, stub_tdm_output_change_handler_cb, - &user_data); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_TRUE(LIST_IS_EMPTY(&output.change_handler_list_main)); - ASSERT_TRUE(!LIST_IS_EMPTY(&output.change_handler_list_sub)); - LIST_FOR_EACH_ENTRY(h, &output.change_handler_list_sub, link) { - if (h->func == stub_tdm_output_change_handler_cb || h->user_data == &user_data) { - handler = h; - break; - } - } - ASSERT_TRUE(handler); - ASSERT_TRUE(handler->private_output == &output); - ASSERT_EQ(handler->owner_tid, stub_syscall_return_value); - free(handler); -} - -TEST(tdm_output_add_change_handler, success_in_display_thread) -{ - tdm_error error; - tdm_private_output output; - int user_data = 10; - tdm_private_change_handler *h = NULL, *handler = NULL; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_main); - LIST_INITHEAD(&output.change_handler_list_sub); - - stub_tdm_thread_display_thread = 1; - stub_syscall_return_value = 21615; - - error = tdm_output_add_change_handler(&output, stub_tdm_output_change_handler_cb, - &user_data); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_TRUE(!LIST_IS_EMPTY(&output.change_handler_list_main)); - ASSERT_TRUE(LIST_IS_EMPTY(&output.change_handler_list_sub)); - LIST_FOR_EACH_ENTRY(h, &output.change_handler_list_main, link) { - if (h->func == stub_tdm_output_change_handler_cb || h->user_data == &user_data) { - handler = h; - break; - } - } - ASSERT_TRUE(handler); - ASSERT_TRUE(handler->private_output == &output); - ASSERT_EQ(handler->owner_tid, stub_syscall_return_value); - free(handler); -} - -/* tdm_output_remove_change_handler */ - -TEST(tdm_output_remove_change_handler, success_list_main) -{ - tdm_private_output output; - int user_data = 10; - tdm_private_change_handler *change_handler; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_main); - LIST_INITHEAD(&output.change_handler_list_sub); - - change_handler = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler->func = stub_tdm_output_change_handler_cb; - change_handler->user_data = &user_data; - - LIST_ADD(&change_handler->link, &output.change_handler_list_main); - - tdm_output_remove_change_handler(&output, stub_tdm_output_change_handler_cb, - &user_data); - - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_TRUE(LIST_IS_EMPTY(&output.change_handler_list_main)); -} - -TEST(tdm_output_remove_change_handler, success_list_sub) -{ - tdm_private_output output; - int user_data = 10; - tdm_private_change_handler *change_handler; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_main); - LIST_INITHEAD(&output.change_handler_list_sub); - - change_handler = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler->func = stub_tdm_output_change_handler_cb; - change_handler->user_data = &user_data; - - LIST_ADD(&change_handler->link, &output.change_handler_list_sub); - - tdm_output_remove_change_handler(&output, stub_tdm_output_change_handler_cb, - &user_data); - - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_TRUE(LIST_IS_EMPTY(&output.change_handler_list_sub)); -} - -TEST(tdm_output_remove_change_handler, success_list_main_2) -{ - tdm_private_output output; - int user_data = 10; - tdm_private_change_handler *change_handler; - tdm_private_change_handler *change_handler_2; - tdm_private_change_handler *h = NULL, *handler = NULL; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_main); - LIST_INITHEAD(&output.change_handler_list_sub); - - change_handler = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler->func = NULL; - change_handler->user_data = NULL; - - change_handler_2 = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler_2->func = stub_tdm_output_change_handler_cb; - change_handler_2->user_data = &user_data; - - LIST_ADD(&change_handler_2->link, &output.change_handler_list_main); - LIST_ADD(&change_handler->link, &output.change_handler_list_main); - - tdm_output_remove_change_handler(&output, stub_tdm_output_change_handler_cb, - &user_data); - - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_TRUE(!LIST_IS_EMPTY(&output.change_handler_list_main)); - LIST_FOR_EACH_ENTRY(h, &output.change_handler_list_main, link) { - if (h->func == NULL || h->user_data == NULL) { - handler = h; - break; - } - } - ASSERT_TRUE(handler); - LIST_DEL(&handler->link); - free(handler); - ASSERT_TRUE(LIST_IS_EMPTY(&output.change_handler_list_main)); -} - -TEST(tdm_output_remove_change_handler, success_list_sub_2) -{ - tdm_private_output output; - int user_data = 10; - tdm_private_change_handler *change_handler; - tdm_private_change_handler *change_handler_2; - tdm_private_change_handler *h = NULL, *handler = NULL; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_main); - LIST_INITHEAD(&output.change_handler_list_sub); - - change_handler = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler->func = NULL; - change_handler->user_data = NULL; - - change_handler_2 = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler_2->func = stub_tdm_output_change_handler_cb; - change_handler_2->user_data = &user_data; - - LIST_ADD(&change_handler_2->link, &output.change_handler_list_sub); - LIST_ADD(&change_handler->link, &output.change_handler_list_sub); - - tdm_output_remove_change_handler(&output, stub_tdm_output_change_handler_cb, - &user_data); - - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_TRUE(!LIST_IS_EMPTY(&output.change_handler_list_sub)); - LIST_FOR_EACH_ENTRY(h, &output.change_handler_list_sub, link) { - if (h->func == NULL || h->user_data == NULL) { - handler = h; - break; - } - } - ASSERT_TRUE(handler); - LIST_DEL(&handler->link); - free(handler); - ASSERT_TRUE(LIST_IS_EMPTY(&output.change_handler_list_sub)); -} - -TEST(tdm_output_remove_change_handler, success_handler_is_not_exist) -{ - tdm_private_output output; - int user_data = 10; - tdm_private_change_handler *change_handler; - tdm_private_change_handler *change_handler_2; - tdm_private_change_handler *h = NULL, *handler = NULL; - - _init_test(); - - LIST_INITHEAD(&output.change_handler_list_main); - LIST_INITHEAD(&output.change_handler_list_sub); - - change_handler = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler->func = NULL; - change_handler->user_data = NULL; - - change_handler_2 = (tdm_private_change_handler *)calloc(1, sizeof(tdm_private_change_handler)); - - change_handler_2->func = NULL; - change_handler_2->user_data = NULL; - - LIST_ADD(&change_handler->link, &output.change_handler_list_sub); - LIST_ADD(&change_handler_2->link, &output.change_handler_list_sub); - - tdm_output_remove_change_handler(&output, stub_tdm_output_change_handler_cb, - &user_data); - - ASSERT_EQ(FREE_CALLED, 0); - ASSERT_TRUE(!LIST_IS_EMPTY(&output.change_handler_list_sub)); - LIST_FOR_EACH_ENTRY(h, &output.change_handler_list_sub, link) { - if (h->func == NULL || h->user_data == NULL) { - handler = h; - break; - } - } - ASSERT_TRUE(handler); - LIST_DEL(&handler->link); - free(handler); - handler = NULL; - ASSERT_TRUE(!LIST_IS_EMPTY(&output.change_handler_list_sub)); - LIST_FOR_EACH_ENTRY(h, &output.change_handler_list_sub, link) { - if (h->func == NULL || h->user_data == NULL) { - handler = h; - break; - } - } - ASSERT_TRUE(handler); - LIST_DEL(&handler->link); - free(handler); - ASSERT_TRUE(LIST_IS_EMPTY(&output.change_handler_list_sub)); -} - -/* tdm_output_get_cursor_available_size() */ - -TEST(tdm_output_get_cursor_available_size, error_output_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_output_get_cursor_available_size(NULL, NULL, NULL, NULL, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_output_get_cursor_available_size, error_abi_version_is_1_4) -{ - tdm_error error; - tdm_private_output output; - tdm_private_display display; - tdm_backend_module module; - int min_w, min_h, max_w, max_h, preferred_align; - - _init_test(); - - output.private_display = &display; - - display.module_data = &module; - module.abi_version = 0x00010004; - - output.caps.cursor_min_w = 200; - output.caps.cursor_min_h = 300; - output.caps.cursor_max_w = 1080; - output.caps.cursor_max_h = 1920; - output.caps.cursor_preferred_align = 256; - - error = tdm_output_get_cursor_available_size(&output, &min_w, &min_h, &max_w, - &max_h, &preferred_align); - - ASSERT_EQ(error, TDM_ERROR_BAD_MODULE); - ASSERT_EQ(min_w, -1); - ASSERT_EQ(min_h, -1); - ASSERT_EQ(max_w, -1); - ASSERT_EQ(max_h, -1); - ASSERT_EQ(preferred_align, -1); -} - -TEST(tdm_output_get_cursor_available_size, success_abi_version_is_1_5) -{ - tdm_error error; - tdm_private_output output; - tdm_private_display display; - tdm_backend_module module; - int min_w, min_h, max_w, max_h, preferred_align; - - _init_test(); - - output.private_display = &display; - - display.module_data = &module; - module.abi_version = 0x00010005; - - output.caps.cursor_min_w = 200; - output.caps.cursor_min_h = 300; - output.caps.cursor_max_w = 1080; - output.caps.cursor_max_h = 1920; - output.caps.cursor_preferred_align = 256; - - error = tdm_output_get_cursor_available_size(&output, &min_w, &min_h, &max_w, - &max_h, &preferred_align); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(min_w, output.caps.cursor_min_w); - ASSERT_EQ(min_h, output.caps.cursor_min_h); - ASSERT_EQ(max_w, output.caps.cursor_max_w); - ASSERT_EQ(max_h, output.caps.cursor_max_h); - ASSERT_EQ(preferred_align, output.caps.cursor_preferred_align); -} - -/* tdm_output_get_primary_index() */ - -TEST(tdm_output_get_primary_index, error_output_is_null) -{ - tdm_error error; - int index; - - _init_test(); - - error = tdm_output_get_primary_index(NULL, &index); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_output_get_primary_index, error_index_is_null) -{ - tdm_error error; - tdm_private_output output; - - _init_test(); - - error = tdm_output_get_primary_index(&output, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_output_get_primary_index, success_layer_list_is_empty) -{ - tdm_error error; - tdm_private_output output; - int index = 0; - - _init_test(); - - LIST_INITHEAD(&output.layer_list); - - error = tdm_output_get_primary_index(&output, &index); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(index, 0); -} - -TEST(tdm_output_get_primary_index, success_get_primary_index) -{ - tdm_error error; - tdm_private_output output; - tdm_private_layer private_layer_1; - tdm_private_layer private_layer_2; - int index; - - _init_test(); - - LIST_INITHEAD(&output.layer_list); - LIST_ADD(&private_layer_1.link, &output.layer_list); - LIST_ADD(&private_layer_2.link, &output.layer_list); - - private_layer_1.index = 25; - private_layer_2.index = 35; - - private_layer_1.caps.capabilities = (tdm_layer_capability)(TDM_LAYER_CAPABILITY_GRAPHIC | - TDM_LAYER_CAPABILITY_PRIMARY); - - private_layer_2.caps.capabilities = (tdm_layer_capability)(TDM_LAYER_CAPABILITY_GRAPHIC | - TDM_LAYER_CAPABILITY_OVERLAY); - - error = tdm_output_get_primary_index(&output, &index); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(index, private_layer_1.index); -} - -/* tdm_output_cb_vblank() */ - -TEST(tdm_output_cb_vblank, success_no_in_display_thread) -{ - tdm_private_vblank_handler vblank_handler; - tdm_private_output output; - tdm_private_display display; - unsigned int sequence = 17, tv_sec = 145, tv_usec = 874; - tdm_thread_cb_output_vblank *output_vblank; - - _init_test(); - - vblank_handler.private_output = &output; - output.private_display = &display; - output.stamp = 10.11; - stub_syscall_return_value = 115; - vblank_handler.owner_tid = stub_syscall_return_value - 1; - - tdm_output_cb_vblank(&output, sequence, tv_sec, tv_usec, &vblank_handler); - - output_vblank = (tdm_thread_cb_output_vblank *)stub_tdm_thread_send_cb_buff; - - ASSERT_EQ(output_vblank->base.type, TDM_THREAD_CB_OUTPUT_VBLANK); - ASSERT_EQ(output_vblank->base.length, sizeof * output_vblank); - ASSERT_DOUBLE_EQ(output_vblank->output_stamp, output.stamp); - ASSERT_EQ(output_vblank->sequence, sequence); - ASSERT_EQ(output_vblank->tv_sec, tv_sec); - ASSERT_EQ(output_vblank->tv_usec, tv_usec); - ASSERT_TRUE(output_vblank->user_data == &vblank_handler); -} - -//TEST(tdm_output_cb_vblank, success_in_display_thread) -//{ -// tdm_private_vblank_handler *vblank_handler; -// tdm_private_output output; -// tdm_private_display display; -// unsigned int sequence = 17, tv_sec = 145, tv_usec = 874; -// struct list_head list; -// -// _init_test(); -// -// vblank_handler = (tdm_private_vblank_handler *)calloc(1, sizeof * vblank_handler); -// vblank_handler->private_output = &output; -// output.private_display = &display; -// -// stub_syscall_return_value = 115; -// stub_syscall_reset = 1; -// -// vblank_handler->owner_tid = stub_syscall_return_value; -// vblank_handler->func = stub_tdm_output_vblank_handler; -// -// LIST_INITHEAD(&list); -// LIST_ADD(&vblank_handler->link, &list); -// -// tdm_output_cb_vblank(&output, sequence, tv_sec, tv_usec, vblank_handler); -// -// ASSERT_EQ(stub_tdm_output_vblank_handler_count, 1); -// ASSERT_EQ(FREE_CALLED, 1); -// ASSERT_TRUE(LIST_IS_EMPTY(&list)); -//} - -/* tdm_output_cb_commit() */ - -TEST(tdm_output_cb_commit, success_no_in_display_thread) -{ - tdm_private_output_commit_handler commit_handler; - tdm_private_output output; - tdm_private_display display; - unsigned int sequence = 17, tv_sec = 145, tv_usec = 874; - tdm_thread_cb_output_commit *output_commit; - - _init_test(); - - commit_handler.private_output = &output; - output.private_display = &display; - output.stamp = 10.11; - stub_syscall_return_value = 115; - commit_handler.owner_tid = stub_syscall_return_value - 1; - - tdm_output_cb_commit(&output, sequence, tv_sec, tv_usec, &commit_handler); - - output_commit = (tdm_thread_cb_output_commit *)stub_tdm_thread_send_cb_buff; - - ASSERT_EQ(output_commit->base.type, TDM_THREAD_CB_OUTPUT_COMMIT); - ASSERT_EQ(output_commit->base.length, sizeof * output_commit); - ASSERT_DOUBLE_EQ(output_commit->output_stamp, output.stamp); - ASSERT_EQ(output_commit->sequence, sequence); - ASSERT_EQ(output_commit->tv_sec, tv_sec); - ASSERT_EQ(output_commit->tv_usec, tv_usec); - ASSERT_TRUE(output_commit->user_data == &commit_handler); -} - -TEST(tdm_output_cb_commit, success_in_display_thread) -{ - tdm_private_output_commit_handler *commit_handler; - tdm_private_output output; - tdm_private_display display; - unsigned int sequence = 17, tv_sec = 145, tv_usec = 874; - tdm_private_layer private_layer_1; - tdm_private_layer private_layer_2; - tdm_private_layer private_layer_3; - struct _tbm_surface waiting_buffer; - struct _tbm_surface showing_buffer; - struct list_head list; - struct _tbm_surface_queue surface_queue; - - _init_test(); - - commit_handler = (tdm_private_output_commit_handler *)calloc(1, sizeof * commit_handler); - - private_layer_1.waiting_buffer = NULL; - private_layer_1.showing_buffer = NULL; - -// private_layer_2.waiting_buffer = &waiting_buffer; -// private_layer_2.showing_buffer = &showing_buffer; - private_layer_2.buffer_queue = &surface_queue; - -// private_layer_3.waiting_buffer = &waiting_buffer; -// private_layer_3.showing_buffer = NULL; - - commit_handler->private_output = &output; - output.private_display = &display; - stub_syscall_return_value = 115; - commit_handler->owner_tid = stub_syscall_return_value; - - LIST_INITHEAD(&output.layer_list); - LIST_ADD(&private_layer_1.link, &output.layer_list); - LIST_ADD(&private_layer_2.link, &output.layer_list); - LIST_ADD(&private_layer_3.link, &output.layer_list); - - commit_handler->func = stub_tdm_output_commit_handler; - - LIST_INITHEAD(&list); - LIST_ADD(&commit_handler->link, &list); - - tdm_output_cb_commit(&output, sequence, tv_sec, tv_usec, commit_handler); - - ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 1); - ASSERT_EQ(tbm_surface_queue_release_count, 1); - ASSERT_TRUE(private_layer_1.showing_buffer == NULL); -// ASSERT_TRUE(private_layer_2.showing_buffer == &waiting_buffer); -// ASSERT_TRUE(private_layer_3.showing_buffer == &waiting_buffer); - ASSERT_TRUE(private_layer_1.waiting_buffer == NULL); - ASSERT_TRUE(private_layer_2.waiting_buffer == NULL); - ASSERT_TRUE(private_layer_3.waiting_buffer == NULL); - ASSERT_EQ(stub_tdm_output_commit_handler_count, 1); - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_TRUE(LIST_IS_EMPTY(&list)); -} - -/* tdm_output_cb_dpms() */ - -TEST(tdm_output_cb_dpms, success_no_in_display_thread) -{ - tdm_private_output output; - tdm_private_display display; - tdm_thread_cb_output_dpms *output_dpms; - tdm_output_dpms dpms = TDM_OUTPUT_DPMS_STANDBY; - - _init_test(); - - output.private_display = &display; - output.stamp = 10.11; - - LIST_INITHEAD(&output.change_handler_list_sub); - LIST_INITHEAD(&output.change_handler_list_main); - - tdm_output_cb_dpms(&output, dpms, &output); - - output_dpms = (tdm_thread_cb_output_dpms *)stub_tdm_thread_send_cb_buff; - - ASSERT_EQ(output_dpms->base.type, TDM_THREAD_CB_OUTPUT_DPMS); - ASSERT_EQ(output_dpms->base.length, sizeof * output_dpms); - ASSERT_DOUBLE_EQ(output_dpms->output_stamp, output.stamp); - ASSERT_EQ(output_dpms->dpms, TDM_OUTPUT_DPMS_STANDBY); - ASSERT_TRUE(output_dpms->user_data == &output); -} - -TEST(tdm_output_cb_dpms, success_in_display_thread) -{ - tdm_private_output output; - tdm_private_display display; - tdm_output_dpms dpms = TDM_OUTPUT_DPMS_STANDBY; - tdm_private_change_handler change_handler_1; - tdm_private_change_handler change_handler_2; - - _init_test(); - - stub_tdm_thread_display_thread = 1; - - output.private_display = &display; - - LIST_INITHEAD(&output.change_handler_list_sub); - LIST_INITHEAD(&output.change_handler_list_main); - LIST_ADD(&change_handler_1.link, &output.change_handler_list_main); - LIST_ADD(&change_handler_2.link, &output.change_handler_list_main); - - change_handler_1.func = stub_tdm_output_change_handler_cb; - change_handler_2.func = stub_tdm_output_change_handler_cb; - - tdm_output_cb_dpms(&output, dpms, &output); - - ASSERT_EQ(stub_tdm_output_change_handler_count, 2); - ASSERT_EQ(output.current_dpms_value, dpms); - -} - -/* tdm_layer_get_displaying_buffer() */ - -TEST(tdm_layer_get_displaying_buffer, error_layer_is_null) -{ - tdm_error error; - tbm_surface_h buffer; - - _init_test(); - - buffer = tdm_layer_get_displaying_buffer(NULL, &error); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); - ASSERT_EQ(buffer, NULL); -} - -TEST(tdm_layer_get_displaying_buffer, error_showing_buffer_is_null) -{ - tdm_error error; - tbm_surface_h buffer; - tdm_private_layer layer; - tdm_private_output output; - - _init_test(); - - layer.private_output = &output; - - layer.showing_buffer = NULL; - - buffer = tdm_layer_get_displaying_buffer(&layer, &error); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); - ASSERT_EQ(buffer, NULL); -} - -TEST(tdm_layer_get_displaying_buffer, success_get_displaying_buffer) -{ - tdm_error error; - tbm_surface_h buffer; - tdm_private_layer layer; - tdm_private_output output; - struct _tbm_surface showing_buffer; - - _init_test(); - - layer.private_output = &output; - -// layer.showing_buffer = &showing_buffer; - - buffer = tdm_layer_get_displaying_buffer(&layer, &error); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(buffer, &showing_buffer); -} - -/* tdm_layer_get_buffer_flags() */ - -TEST(tdm_layer_get_buffer_flags, error_layer_is_null) -{ - tdm_error error; - unsigned int flags; - - _init_test(); - - error = tdm_layer_get_buffer_flags(NULL, &flags); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_layer_get_buffer_flags, error_layer_get_buffer_flags_is_null) -{ - tdm_error error; - unsigned int flags; - tdm_private_layer layer; - tdm_private_output output; - tdm_private_display display; - tdm_func_layer func_layer; - - _init_test(); - - layer.private_output = &output; - output.private_display = &display; - - func_layer.layer_get_buffer_flags = NULL; - - display.func_layer = func_layer; - - error = tdm_layer_get_buffer_flags(&layer, &flags); - - ASSERT_EQ(error, TDM_ERROR_NOT_IMPLEMENTED); -} - -TEST(tdm_layer_get_buffer_flags, success_get_buffer_flags) -{ - tdm_error error; - unsigned int flags; - tdm_private_layer layer; - tdm_private_output output; - tdm_private_display display; - tdm_func_layer func_layer; - - _init_test(); - - layer.private_output = &output; - output.private_display = &display; - - func_layer.layer_get_buffer_flags = layer_get_buffer_flags; - - display.func_layer = func_layer; - - error = tdm_layer_get_buffer_flags(&layer, &flags); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(flags, layer_get_buffer_flags_ret); -} diff --git a/utests/src/ut_tdm_event_loop.cpp b/utests/src/ut_tdm_event_loop.cpp deleted file mode 100644 index 863b317..0000000 --- a/utests/src/ut_tdm_event_loop.cpp +++ /dev/null @@ -1,630 +0,0 @@ -///************************************************************************** -// * -// * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. -// * -// * Contact: Konstantin Drabeniuk -// * -// * Permission is hereby granted, free of charge, to any person obtaining a -// * copy of this software and associated documentation files (the -// * "Software"), to deal in the Software without restriction, including -// * without limitation the rights to use, copy, modify, merge, publish, -// * distribute, sub license, and/or sell copies of the Software, and to -// * permit persons to whom the Software is furnished to do so, subject to -// * the following conditions: -// * -// * The above copyright notice and this permission notice (including the -// * next paragraph) shall be included in all copies or substantial portions -// * of the Software. -// * -// * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -// * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -// * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// * -//**************************************************************************/ -// -//#include -// -//#include "gtest/gtest.h" -// -//#include "tbm_stubs.h" -//#include "stub_pthread.h" -//#include "stub_stdlib.h" -//#include "stub_tdm_server.h" -//#include "stub_tdm_thread.h" -// - -#include "tdm_event_loop.c" -// -//#define ZEROING_DATA(ptr, size_of_ptr) memset((void*)ptr, 0, size_of_ptr); -// -//static void _init_test() -//{ -// WL_EVENT_LOOP_ADD_FD_ERROR = 0; -// WL_EVENT_SOURCE_FD_UPDATE_ERROR = 0; -// WL_EVENT_LOOP_ADD_TIMER_ERROR = 0; -// WL_EVENT_SOURCE_TIMER_UPDATE_ERROR = 0; -// WL_DISPLAY_CREATE_ERROR = 0; -// -// -// stub_pthread_init(); -// stub_tbm_init(); -// stub_stdlib_init(); -// stub_tdm_server(); -// stub_tdm_thread_init(); -//} -// -///* HELPER FUNCTIONS */ -// -//tdm_error ut_tdm_event_loop_fd_handler(int fd, tdm_event_loop_mask mask, -// void *user_data) -//{ -// (void)fd; -// (void)mask; -// (void)user_data; -// -// return TDM_ERROR_NONE; -//} -// -//tdm_error ut_tdm_event_loop_timer_handler(void *user_data) -//{ -// (void)user_data; -// -// return TDM_ERROR_NONE; -//} -// -///* UNIT TESTS */ -// -///* tdm_event_loop_source_timer_update */ -// -//TEST(tdm_event_loop_source_timer_update, work_flow_success_2) -//{ -// tdm_error error = TDM_ERROR_OPERATION_FAILED; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_event_loop_source_timer source; -// -// _init_test(); -// -// error = tdm_event_loop_source_timer_update(&source, 100); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_source_timer_update, work_flow_success_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; -// tdm_event_loop_source_timer source; -// -// _init_test(); -// -// WL_EVENT_SOURCE_TIMER_UPDATE_ERROR = 1; -// -// error = tdm_event_loop_source_timer_update(&source, 100); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_source_timer_update, null_ptr_fail_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// -// _init_test(); -// -// error = tdm_event_loop_source_timer_update(NULL, 100); -// -// ASSERT_EQ(error, expected_error); -//} -// -///* tdm_event_loop_add_timer_handler */ -// -//TEST(tdm_event_loop_add_timer_handler, work_flow_success_3) -//{ -// tdm_error error = TDM_ERROR_OUT_OF_MEMORY; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// tdm_event_loop_source_timer *timer_source; -// struct wl_event_loop wl_loop; -// -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = &wl_loop; -// -// timer_source = -// (tdm_event_loop_source_timer *)tdm_event_loop_add_timer_handler(&dpy, -// ut_tdm_event_loop_timer_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -// free(timer_source); -//} -// -//TEST(tdm_event_loop_add_timer_handler, work_flow_success_2) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// struct wl_event_loop wl_loop; -// -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = &wl_loop; -// WL_EVENT_LOOP_ADD_TIMER_ERROR = 1; -// -// tdm_event_loop_add_timer_handler(&dpy, ut_tdm_event_loop_timer_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_timer_handler, work_flow_success_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// struct wl_event_loop wl_loop; -// -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = &wl_loop; -// CALLOC_ERROR = 1; -// -// tdm_event_loop_add_timer_handler(&dpy, ut_tdm_event_loop_timer_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_timer_handler, null_ptr_fail_4) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = NULL; -// -// tdm_event_loop_add_timer_handler(&dpy, ut_tdm_event_loop_timer_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_timer_handler, null_ptr_fail_3) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_private_display dpy; -// -// _init_test(); -// -// dpy.private_loop = NULL; -// -// tdm_event_loop_add_timer_handler(&dpy, ut_tdm_event_loop_timer_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_timer_handler, null_ptr_fail_2) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_private_display dpy; -// -// _init_test(); -// -// tdm_event_loop_add_timer_handler(&dpy, NULL, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_timer_handler, null_ptr_fail_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// -// _init_test(); -// -// tdm_event_loop_add_timer_handler(NULL, ut_tdm_event_loop_timer_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -///* tdm_event_loop_source_fd_update */ -// -//TEST(tdm_event_loop_source_fd_update, work_flow_success_2) -//{ -// tdm_error error = TDM_ERROR_OPERATION_FAILED; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_event_loop_source_fd source; -// -// _init_test(); -// -// error = tdm_event_loop_source_fd_update(&source, mask); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_source_fd_update, work_flow_success_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_event_loop_source_fd source; -// -// _init_test(); -// -// WL_EVENT_SOURCE_FD_UPDATE_ERROR = 1; -// -// error = tdm_event_loop_source_fd_update(&source, mask); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_source_fd_update, null_ptr_fail_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// -// _init_test(); -// -// error = tdm_event_loop_source_fd_update(NULL, mask); -// -// ASSERT_EQ(error, expected_error); -//} -// -///* tdm_event_loop_add_fd_handler */ -// -//TEST(tdm_event_loop_add_fd_handler, work_flow_success_3) -//{ -// tdm_error error = TDM_ERROR_INVALID_PARAMETER; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// struct wl_event_loop wl_loop; -// tdm_event_loop_source_fd *fd_source; -// -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = &wl_loop; -// -// fd_source = -// (tdm_event_loop_source_fd *)tdm_event_loop_add_fd_handler(&dpy, 5, mask, -// ut_tdm_event_loop_fd_handler, -// NULL, &error); -// free(fd_source); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_fd_handler, work_flow_success_2) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// struct wl_event_loop wl_loop; -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = &wl_loop; -// WL_EVENT_LOOP_ADD_FD_ERROR = 1; -// -// tdm_event_loop_add_fd_handler(&dpy, 5, mask, ut_tdm_event_loop_fd_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_fd_handler, work_flow_success_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// struct wl_event_loop wl_loop; -// -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = &wl_loop; -// CALLOC_ERROR = 1; -// -// tdm_event_loop_add_fd_handler(&dpy, 5, mask, ut_tdm_event_loop_fd_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_fd_handler, null_ptr_fail_5) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_private_display dpy; -// tdm_private_loop private_loop; -// -// _init_test(); -// -// dpy.private_loop = &private_loop; -// private_loop.wl_loop = NULL; -// -// tdm_event_loop_add_fd_handler(&dpy, 5, mask, ut_tdm_event_loop_fd_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_fd_handler, null_ptr_fail_4) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_private_display dpy; -// -// _init_test(); -// -// dpy.private_loop = NULL; -// -// tdm_event_loop_add_fd_handler(&dpy, 5, mask, ut_tdm_event_loop_fd_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_fd_handler, null_ptr_fail_3) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_private_display dpy; -// -// _init_test(); -// -// tdm_event_loop_add_fd_handler(&dpy, 5, mask, NULL, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_fd_handler, null_ptr_fail_2) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// tdm_private_display dpy; -// -// _init_test(); -// -// tdm_event_loop_add_fd_handler(&dpy, -1, mask, ut_tdm_event_loop_fd_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_add_fd_handler, null_ptr_fail_1) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; -// tdm_event_loop_mask mask = TDM_EVENT_LOOP_READABLE; -// -// _init_test(); -// -// tdm_event_loop_add_fd_handler(NULL, 5, mask, ut_tdm_event_loop_fd_handler, -// NULL, &error); -// -// ASSERT_EQ(error, expected_error); -//} -// -///* tdm_event_loop_init */ -// -//TEST(tdm_event_loop_init, success_private_loop_was_allocated) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_private_display private_display; -// tdm_private_loop private_loop; -// -// private_display.private_loop = &private_loop; -// -// error = tdm_event_loop_init(&private_display); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_init, error_could_not_allocate_private_loop) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; -// tdm_private_display private_display; -// -// _init_test(); -// -// private_display.private_loop = NULL; -// CALLOC_ERROR = 1; -// -// error = tdm_event_loop_init(&private_display); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_init, error_could_not_create_display) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; -// tdm_private_display private_display; -// -// _init_test(); -// -// ZEROING_DATA(&private_display, sizeof(tdm_private_display)); -// WL_DISPLAY_CREATE_ERROR = 1; -// -// error = tdm_event_loop_init(&private_display); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_init, error_init_tdm_server) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; -// tdm_private_display private_display; -// -// _init_test(); -// -// ZEROING_DATA(&private_display, sizeof(tdm_private_display)); -// stdub_tdm_server_init_error = 1; -// -// error = tdm_event_loop_init(&private_display); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_init, error_init_thread) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; -// tdm_private_display private_display; -// -// _init_test(); -// -// ZEROING_DATA(&private_display, sizeof(tdm_private_display)); -// stub_tdm_thread_init_init_error = 1; -// -// error = tdm_event_loop_init(&private_display); -// -// ASSERT_EQ(error, expected_error); -//} -// -//TEST(tdm_event_loop_init, success_first_initialization_of_private_loop) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error expected_error = TDM_ERROR_NONE; -// tdm_private_display private_display; -// int expected_fd = -1; -// -// _init_test(); -// -// ZEROING_DATA(&private_display, sizeof(tdm_private_display)); -// -// error = tdm_event_loop_init(&private_display); -// -// ASSERT_EQ(error, expected_error); -// ASSERT_TRUE(private_display.private_loop); -// ASSERT_EQ(private_display.private_loop->backend_fd, expected_fd); -// -// /* XXX: private_loop has been allocated within tdm_event_loop_init -// * so it's out duty to delete it */ -// free(private_display.private_loop); -//} -// -///* tdm_event_loop_deinit */ -// -//TEST(tdm_event_loop_deinit, success_private_loop_is_NULL) -//{ -// tdm_private_display private_display; -// -// _init_test(); -// -// ZEROING_DATA(&private_display, sizeof(tdm_private_display)); -// -// tdm_event_loop_deinit(&private_display); -// -// ASSERT_FALSE(private_display.private_loop); -//} -// -//TEST(tdm_event_loop_deinit, success_private_loop_is_not_NULL) -//{ -// tdm_private_display private_display; -// tdm_event_loop_source_base *event_loop_source_base; -// struct wl_display wl_display; -// -// _init_test(); -// -// ZEROING_DATA(&private_display, sizeof(tdm_private_display)); -// -// private_display.private_loop = calloc(1, sizeof(tdm_private_loop)); -// private_display.private_loop->backend_source = NULL; -// private_display.private_loop->wl_display = &wl_display; -// -// tdm_event_loop_deinit(&private_display); -// -// ASSERT_FALSE(private_display.private_loop); -//} -// -///* tdm_event_loop_source_remove */ -// -//TEST(tdm_event_loop_source_remove, success_source_is_NULL) -//{ -// _init_test(); -// tdm_event_loop_source_remove(NULL); -//} -// -//TEST(tdm_event_loop_source_remove, success_source_is_not_NULL) -//{ -// tdm_event_loop_source_base *base; -// -// _init_test(); -// -// base = calloc(1, sizeof(tdm_event_loop_source_base)); -// ASSERT_TRUE(base); -// -// tdm_event_loop_source_remove(base); -//} -// -///* tdm_event_loop_flush */ -// -//TEST(tdm_event_loop_flush, success_wl_display_is_NULL) -//{ -// tdm_private_display private_display; -// tdm_private_loop private_loop; -// -// ZEROING_DATA(&private_display, sizeof(private_display)) -// ZEROING_DATA(&private_loop, sizeof(private_loop)) -// -// private_display.private_loop = &private_loop; -// -// tdm_event_loop_flush(&private_display); -//} -// -//TEST(tdm_event_loop_flush, success_wl_display_is_not_NULL) -//{ -// tdm_private_display private_display; -// tdm_private_loop private_loop; -// struct wl_display wl_display; -// -// ZEROING_DATA(&private_display, sizeof(private_display)) -// ZEROING_DATA(&private_loop, sizeof(private_loop)) -// -// private_display.private_loop = &private_loop; -// private_display.private_loop->wl_display = &wl_display; -// -// tdm_event_loop_flush(&private_display); -//} -// -// -// -// -// diff --git a/utests/src/ut_tdm_helper.cpp b/utests/src/ut_tdm_helper.cpp deleted file mode 100644 index 6787472..0000000 --- a/utests/src/ut_tdm_helper.cpp +++ /dev/null @@ -1,766 +0,0 @@ -/************************************************************************** - * - * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. - * - * Contact: Konstantin Drabeniuk - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * -**************************************************************************/ - -#include "gtest/gtest.h" -#include - -/*------ 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) - -extern "C" int -tbm_drm_helper_get_master_fd(void) -{ - return 20; -} - -#include "tdm_helper.c" - -static void _init_test() -{ - stub_stdio_init(); - stub_fcntl_init(); - stub_pthread_init(); - stub_unistd_init(); - stub_tbm_init(); - stub_stdlib_init(); -} - -/* UNIT TESTS */ - -/* tdm_helper_get_fd() */ - -TEST(tdm_helper_get_fd, work_flow_success_5) -{ - const char *env = "env"; - int fd; - - _init_test(); - - stub_getenv_name = env; - stub_getenv_return_value = "getenv"; - - fd = tdm_helper_get_fd(env); - - ASSERT_EQ(fd, 5); -} - -TEST(tdm_helper_get_fd, work_flow_success_4) -{ - const char *env = "env"; - int expected_fd = -1; - int fd; - - _init_test(); - - stub_dub_error = 1; - - stub_getenv_name = env; - stub_getenv_return_value = "getenv"; - - fd = tdm_helper_get_fd(env); - - ASSERT_EQ(fd, expected_fd); -} - -TEST(tdm_helper_get_fd, work_flow_success_3) -{ - const char *env = "env"; - int fd; - int expected_fd = -1; - - _init_test(); - - FCNTL_ERROR = 1; - - stub_getenv_name = env; - stub_getenv_return_value = "getenv"; - - fd = tdm_helper_get_fd(env); - - ASSERT_EQ(fd, expected_fd); -} - -TEST(tdm_helper_get_fd, work_flow_success_2) -{ - const char *env = "env"; - int expected_fd = -1; - int fd; - - _init_test(); - - SSCANF_ERROR = 1; - - stub_getenv_name = env; - stub_getenv_return_value = "getenv"; - - fd = tdm_helper_get_fd(env); - - ASSERT_EQ(fd, expected_fd); -} - -TEST(tdm_helper_get_fd, work_flow_success_1) -{ - const char *env = "env"; - int fd; - int expected_fd = -1; - - _init_test(); - - GETENV_ERROR = 1; - - fd = tdm_helper_get_fd(env); - - 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); -} - diff --git a/utests/src/ut_tdm_layer.cpp b/utests/src/ut_tdm_layer.cpp new file mode 100644 index 0000000..89064c0 --- /dev/null +++ b/utests/src/ut_tdm_layer.cpp @@ -0,0 +1,81 @@ +/************************************************************************** + * + * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. + * + * Contact: Konstantin Drabeniuk + * Contact: Andrii Sokolenko + * Contact: Roman Marchenko + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * +**************************************************************************/ + +#include "gtest/gtest.h" +#include "tdm.h" +#include "ut_common.h" + +class TDMLayer : public ::testing::Test { +protected: + tdm_display *dpy = NULL; + int output_count = -42; + int layer_count = -42; + bool has_layers = false; + void SetUp(void) + { + setenv("TDM_DLOG", "1", 1); + setenv("XDG_RUNTIME_DIR", ".", 1); + setenv("TBM_DLOG", "1", 1); + tdm_error error = TDM_ERROR_NONE; + dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + error = tdm_display_get_output_count(dpy, &output_count); + error = tdm_display_get_max_layer_count(dpy, &layer_count); +#ifdef FAIL_ON_UNSUPPORTED + ASSERT_GT(output_count, 0); + ASSERT_GT(layer_count, 0); +#endif + if (layer_count > 0) + has_layers = true; + } + void TearDown(void) + { + tdm_display_deinit(dpy); + dpy = NULL; + } +}; + +TEST_F(TDMLayer, OutputGetLayerSuccessful) +{ + CHECK_FLAG(has_layers); + for (int i = 0; i < output_count; i++) { + tdm_error error_output = TDM_ERROR_NONE; + tdm_output * output = NULL; + output = tdm_display_get_output(dpy, i, &error_output); + ASSERT_FALSE(NULL == output); + ASSERT_TRUE(TDM_ERROR_NONE == error_output); + for (int k = 0; k < layer_count; k++) { + tdm_error error_layer = TDM_ERROR_NONE; + ASSERT_FALSE(NULL == tdm_output_get_layer(output, k, &error_layer)); + ASSERT_TRUE(TDM_ERROR_NONE == error_layer); + } + } +} diff --git a/utests/src/ut_tdm_output.cpp b/utests/src/ut_tdm_output.cpp new file mode 100644 index 0000000..6ea9f21 --- /dev/null +++ b/utests/src/ut_tdm_output.cpp @@ -0,0 +1,71 @@ +/************************************************************************** + * + * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. + * + * Contact: Konstantin Drabeniuk + * Contact: Andrii Sokolenko + * Contact: Roman Marchenko + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * +**************************************************************************/ + +#include "gtest/gtest.h" +#include "tdm.h" +#include "ut_common.h" + +class TDMOutput : public ::testing::Test { +protected: + tdm_display *dpy = NULL; + int output_count = -42; + bool has_output = false; + void SetUp(void) + { + setenv("TDM_DLOG", "1", 1); + setenv("XDG_RUNTIME_DIR", ".", 1); + setenv("TBM_DLOG", "1", 1); + tdm_error error = TDM_ERROR_NONE; + dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + error = tdm_display_get_output_count(dpy, &output_count); +#ifdef FAIL_ON_UNSUPPORTED + ASSERT_GT(output_count, 0); +#endif + if (output_count > 0) + has_output = true; + } + void TearDown(void) + { + tdm_display_deinit(dpy); + dpy = NULL; + } +}; + +TEST_F(TDMOutput, DisplayGetOutputSuccessful) +{ + CHECK_FLAG(has_output); + for (int i = 0; i < output_count; i++) { + tdm_error error = TDM_ERROR_NONE; + ASSERT_FALSE(NULL == tdm_display_get_output(dpy, i, &error)); + ASSERT_TRUE(TDM_ERROR_NONE == error); + } +} diff --git a/utests/src/ut_tdm_pp.cpp b/utests/src/ut_tdm_pp.cpp index d412e7f..18d9a96 100644 --- a/utests/src/ut_tdm_pp.cpp +++ b/utests/src/ut_tdm_pp.cpp @@ -3,6 +3,8 @@ * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. * * Contact: Konstantin Drabeniuk + * Contact: Andrii Sokolenko + * Contact: Roman Marchenko * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -27,753 +29,43 @@ **************************************************************************/ #include "gtest/gtest.h" - -#include "tbm_stubs.h" -#include "stub_pthread.h" -#include "stub_stdlib.h" -#include "stub_tdm_helper.h" -#include "stub_backend.h" -#include "stub_tdm_buffer.h" -#include "stub_unistd.h" -#include "stub_tdm_thread.h" -#include "stub_tdm_helper.h" -#include "stub_tdm_buffer.h" - -#include "tdm_pp.c" - -//local stubs for callbeck functions -static int stub_pp_destroy_is_called = 0; -static int stub_tdm_pp_done_handler_is_called; - -static void stub_pp_destroy(tdm_pp *pp) -{ - (void)pp; - - stub_pp_destroy_is_called = 1; -} - -static int stub_pp_set_done_handler_is_called = 0; -static int stub_pp_set_done_handler_error = 0; -static tdm_error stub_pp_set_done_handler(tdm_pp *pp, tdm_pp_done_handler func, - void *user_data) -{ - (void)pp; - (void)func; - (void)user_data; - - if (stub_pp_set_done_handler_error) - return TDM_ERROR_OPERATION_FAILED; - - stub_pp_set_done_handler_is_called = 1; - return TDM_ERROR_NONE; -} - -static int stub_display_create_pp_is_called = 0; -static int stub_display_create_pp_error = 0; -static tdm_pp *stub_display_create_pp(tdm_backend_data *bdata, tdm_error *error) -{ - (void)bdata; - - if (stub_display_create_pp_error) { - if (error) - *error = TDM_ERROR_OPERATION_FAILED; - return NULL; +#include "tdm.h" +#include "ut_common.h" + +class TDMPP : public testing::Test { +protected: + tdm_display *dpy = NULL; + tdm_pp_capability pp_capabilities = -42; + bool has_pp = false; + void SetUp(void) + { + setenv("TDM_DLOG", "1", 1); + setenv("XDG_RUNTIME_DIR", ".", 1); + setenv("TBM_DLOG", "1", 1); + tdm_error error = TDM_ERROR_NONE; + dpy = tdm_display_init(&error); + ASSERT_TRUE(error == TDM_ERROR_NONE); + ASSERT_FALSE(dpy == NULL); + error = tdm_display_get_pp_capabilities(dpy, &pp_capabilities); +#ifdef FAIL_ON_UNSUPPORTED + ASSERT_GT(pp_capabilities, 0); +#endif + if (pp_capabilities > 0) + has_pp = true; } - stub_display_create_pp_is_called = 1; - static int backend_pp; - return &backend_pp; -} - -static int stub_pp_attach_is_called = 0; -static int stub_pp_attach_error = 0; -tdm_error stub_pp_attach(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst) -{ - (void)pp; - (void)src; - (void)dst; - - if (stub_pp_attach_error) - return TDM_ERROR_OPERATION_FAILED; - - stub_pp_attach_is_called = 1; - return TDM_ERROR_NONE; -} - -static void stub_tdm_pp_done_handler(tdm_pp *pp, tbm_surface_h src, - tbm_surface_h dst, void *user_data) -{ - (void)pp; - (void)src; - (void)dst; - (void)user_data; - - stub_tdm_pp_done_handler_is_called = 1; -} - -static void _init_test() -{ - stub_tdm_buffer_init(); - stub_tdm_helper_init(); - stub_tdm_buffer_init(); - stub_tdm_thread_init(); - stub_unistd_init(); - stub_pthread_init(); - stub_backend_init(); - stub_tbm_init(); - stub_stdlib_init(); - stub_pp_destroy_is_called = 0; - stub_pp_set_done_handler_is_called = 0; - stub_pp_set_done_handler_error = 0; - stub_display_create_pp_is_called = 0; - stub_pp_attach_is_called = 0; - stub_pp_attach_error = 0; - stub_tdm_pp_done_handler_is_called = 0; - stub_display_create_pp_error = 0; - tdm_debug_dump = TDM_DUMP_FLAG_PP; - tdm_debug_module = TDM_DEBUG_BUFFER; -} - -/* UNIT TESTS */ - -/* tdm_pp_commit */ - -TEST(tdm_pp_commit, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_private_pp pp; - tdm_private_display private_display; - tdm_pp_private_buffer b_1, b_2; - - _init_test(); - - pp.private_display = &private_display; - private_display.func_pp.pp_commit = pp_commit; - - LIST_INITHEAD(&pp.pending_buffer_list); - LIST_INITHEAD(&pp.buffer_list); - - LIST_ADD(&b_1.link, &pp.pending_buffer_list); - LIST_ADD(&b_2.link, &pp.pending_buffer_list); - - - error = tdm_pp_commit(&pp); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(LIST_LENGTH(&pp.buffer_list), 2); -} - -//TEST(tdm_pp_commit, work_flow_success_2) -//{ -// tdm_error error = TDM_ERROR_NONE; -// tdm_error not_expected_error = TDM_ERROR_NONE; -// tdm_private_pp pp; -// tdm_private_display private_display; -// tdm_pp_private_buffer b_1, b_2; -// -// _init_test(); -// -// pp.private_display = &private_display; -// private_display.func_pp.pp_commit = pp_commit; -// PP_COMMIT_ERROR = 1; -// -// LIST_INITHEAD(&pp.pending_buffer_list); -// LIST_INITHEAD(&pp.buffer_list); -// -// LIST_ADD(&b_1.link, &pp.pending_buffer_list); -// LIST_ADD(&b_2.link, &pp.pending_buffer_list); -// -// error = tdm_pp_commit(&pp); -// -// ASSERT_NE(error, not_expected_error); -// ASSERT_EQ(LIST_LENGTH(&pp.buffer_list), 0); -// ASSERT_EQ(stub_tdm_buffer_remove_release_handler_internal_count, 4); -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 4); -//} - -TEST(tdm_pp_commit, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_private_pp pp; - tdm_private_display private_display; - - _init_test(); - - pp.private_display = &private_display; - private_display.func_pp.pp_commit = NULL; - - error = tdm_pp_commit(&pp); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_pp_commit, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - _init_test(); - - error = tdm_pp_commit(NULL); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_pp_attach */ - -TEST(tdm_pp_attach, error_pp_attach) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_pp private_pp; - tdm_private_display private_display; - tdm_backend_module module; - struct _tbm_surface src; - struct _tbm_surface dst; - - _init_test(); - - LIST_INITHEAD(&private_display.pp_list); - LIST_ADDTAIL(&private_pp.link, &private_display.pp_list); - private_display.module_data = &module; - private_display.func_pp.pp_attach = stub_pp_attach; - private_display.caps_pp.max_attach_count = 3; - module.abi_version = 0x00010002; - - private_pp.private_display = &private_display; - LIST_INITHEAD(&private_pp.pending_buffer_list); - LIST_INITHEAD(&private_pp.buffer_list); - - stub_pp_attach_error = 1; - - error = tdm_pp_attach(&private_pp, &src, &dst); - - ASSERT_NE(TDM_ERROR_NONE, error); -} - -TEST(tdm_pp_attach, error_calloc_error) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_pp private_pp; - tdm_private_display private_display; - tdm_backend_module module; - struct _tbm_surface src; - struct _tbm_surface dst; - - _init_test(); - - LIST_INITHEAD(&private_display.pp_list); - LIST_ADDTAIL(&private_pp.link, &private_display.pp_list); - private_display.module_data = &module; - private_display.func_pp.pp_attach = stub_pp_attach; - private_display.caps_pp.max_attach_count = 3; - module.abi_version = 0x00010002; - - private_pp.private_display = &private_display; - LIST_INITHEAD(&private_pp.pending_buffer_list); - LIST_INITHEAD(&private_pp.buffer_list); - - CALLOC_ERROR = 1; - - error = tdm_pp_attach(&private_pp, &src, &dst); - - ASSERT_EQ(TDM_ERROR_OUT_OF_MEMORY, error); -} - -TEST(tdm_pp_attach, error_bad_request) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_pp private_pp; - tdm_private_display private_display; - tdm_backend_module module; - struct _tbm_surface src; - struct _tbm_surface dst; - tdm_pp_private_buffer pp_buffer_1; - tdm_pp_private_buffer pp_buffer_2; - - _init_test(); - - LIST_INITHEAD(&private_display.pp_list); - LIST_ADDTAIL(&private_pp.link, &private_display.pp_list); - private_display.module_data = &module; - private_display.func_pp.pp_attach = stub_pp_attach; - private_display.caps_pp.max_attach_count = 1; - module.abi_version = 0x00010002; - - private_pp.private_display = &private_display; - LIST_INITHEAD(&private_pp.pending_buffer_list); - LIST_INITHEAD(&private_pp.buffer_list); - - LIST_ADD(&pp_buffer_1.link, &private_pp.pending_buffer_list); - LIST_ADD(&pp_buffer_2.link, &private_pp.pending_buffer_list); - - error = tdm_pp_attach(&private_pp, &src, &dst); - - ASSERT_EQ(TDM_ERROR_BAD_REQUEST, error); -} - -TEST(tdm_pp_attach, error_pp_attach_is_not_implemented) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_pp private_pp; - tdm_private_display private_display; - struct _tbm_surface src; - struct _tbm_surface dst; - - _init_test(); - - private_display.func_pp.pp_attach = NULL; - - private_pp.private_display = &private_display; - - error = tdm_pp_attach(&private_pp, &src, &dst); - - ASSERT_EQ(TDM_ERROR_NOT_IMPLEMENTED, error); -} - -TEST(tdm_pp_attach, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_private_pp private_pp; - tdm_private_display private_display; - tdm_backend_module module; - struct _tbm_surface src; - struct _tbm_surface dst; - - _init_test(); - - LIST_INITHEAD(&private_display.pp_list); - LIST_ADDTAIL(&private_pp.link, &private_display.pp_list); - private_display.module_data = &module; - private_display.func_pp.pp_attach = stub_pp_attach; - private_display.caps_pp.max_attach_count = 3; - module.abi_version = 0x00010002; - - private_pp.private_display = &private_display; - LIST_INITHEAD(&private_pp.pending_buffer_list); - LIST_INITHEAD(&private_pp.buffer_list); - tdm_debug_dump = TDM_DUMP_FLAG_PP; - tdm_debug_module = TDM_DEBUG_BUFFER; - - error = tdm_pp_attach(&private_pp, &src, &dst); - - ASSERT_EQ(TDM_ERROR_NONE, error); - int num_of_pp_buff = LIST_LENGTH(&private_pp.pending_buffer_list); - ASSERT_EQ(1, num_of_pp_buff); -} - -TEST(tdm_pp_attach, null_ptr_fail_3) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_pp pp; - tdm_private_display private_display; - struct _tbm_surface src; - - _init_test(); - - pp.private_display = &private_display; - - error = tdm_pp_attach(&pp, &src, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_pp_attach, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_pp pp; - tdm_private_display private_display; - struct _tbm_surface dst; - - _init_test(); - - pp.private_display = &private_display; - - error = tdm_pp_attach(&pp, NULL, &dst); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_pp_attach, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - struct _tbm_surface src; - struct _tbm_surface dst; - - _init_test(); - - error = tdm_pp_attach(NULL, &src, &dst); - - ASSERT_EQ(error, expected_error); -} - -/* tdm_pp_set_info */ - -TEST(tdm_pp_set_info, work_flow_success_3) -{ - tdm_error error = TDM_ERROR_OPERATION_FAILED; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_info_pp info; - tdm_private_pp pp; - tdm_private_display private_display; - - _init_test(); - - pp.private_display = &private_display; - private_display.func_pp.pp_set_info = pp_set_info; - - error = tdm_pp_set_info(&pp, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_pp_set_info, work_flow_success_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error not_expected_error = TDM_ERROR_NONE; - tdm_info_pp info; - tdm_private_pp pp; - tdm_private_display private_display; - - _init_test(); - - pp.private_display = &private_display; - private_display.func_pp.pp_set_info = pp_set_info; - PP_SET_INFO_ERROR = 1; - - error = tdm_pp_set_info(&pp, &info); - - ASSERT_NE(error, not_expected_error); -} - -TEST(tdm_pp_set_info, work_flow_success_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_NOT_IMPLEMENTED; - tdm_info_pp info; - tdm_private_pp pp; - tdm_private_display private_display; - - _init_test(); - - pp.private_display = &private_display; - private_display.func_pp.pp_set_info = NULL; - - error = tdm_pp_set_info(&pp, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_pp_set_info, null_ptr_fail_2) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_pp pp; - tdm_private_display private_display; - - _init_test(); - - pp.private_display = &private_display; - - error = tdm_pp_set_info(&pp, NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_pp_set_info, null_ptr_fail_1) -{ - tdm_error error = TDM_ERROR_NONE; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_info_pp info; - - _init_test(); - - error = tdm_pp_set_info(NULL, &info); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_pp_set_done_handler, work_flow_success_1) -{ - tdm_error error; - tdm_private_pp pp; - tdm_private_display private_display; - int user_data = 0; - - _init_test(); - - pp.private_display = &private_display; - private_display.func_pp.pp_set_info = NULL; - - error = tdm_pp_set_done_handler(&pp, stub_tdm_pp_done_handler, &user_data); - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_EQ(stub_tdm_pp_done_handler, pp.done_func); - ASSERT_EQ(&user_data, pp.done_user_data); - - error = tdm_pp_set_done_handler(&pp, stub_tdm_pp_done_handler, NULL); - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_EQ(stub_tdm_pp_done_handler, pp.done_func); - ASSERT_EQ(0, pp.done_user_data); -} - -TEST(tdm_pp_set_done_handler, work_flow_error_1___NULL) -{ - tdm_error error; - tdm_private_pp pp; - tdm_private_display private_display; - - _init_test(); - - pp.private_display = &private_display; - private_display.func_pp.pp_set_info = NULL; - - error = tdm_pp_set_done_handler(&pp, NULL, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); - - error = tdm_pp_set_done_handler(NULL, stub_tdm_pp_done_handler, NULL); - ASSERT_NE(TDM_ERROR_NONE, error); -} - -TEST(tdm_pp_destroy, work_flow_success_1) -{ - tdm_private_pp *private_pp; - tdm_pp_private_buffer *pp_buffer1; - tdm_pp_private_buffer *pp_buffer2; - tdm_private_display private_display; - private_pp = (tdm_private_pp *)calloc(1, sizeof(tdm_private_pp)); - pp_buffer1 = (tdm_pp_private_buffer *)calloc(1, sizeof *pp_buffer1); - pp_buffer2 = (tdm_pp_private_buffer *)calloc(1, sizeof *pp_buffer2); - - private_display.func_pp.pp_destroy = stub_pp_destroy; - _init_test(); - - LIST_INITHEAD(&private_display.pp_list); - private_display.func_pp.pp_destroy = stub_pp_destroy; - LIST_ADDTAIL(&private_pp->link, &private_display.pp_list); - - - private_pp->private_display = &private_display; - LIST_INITHEAD(&private_pp->pending_buffer_list); - LIST_ADDTAIL(&pp_buffer1->link, &private_pp->pending_buffer_list); - - LIST_INITHEAD(&private_pp->buffer_list); - LIST_ADDTAIL(&pp_buffer2->link, &private_pp->buffer_list); - - tdm_pp_destroy(private_pp); - - ASSERT_EQ(4, stub_tdm_buffer_unref_backend_count); - ASSERT_EQ(3, stub_free_call_count); - ASSERT_TRUE(stub_pp_destroy_is_called); -} - -TEST(tdm_pp_destroy, work_flow_error_1___NULL) -{ - tdm_pp_destroy(NULL); -} - -/* tdm_pp_create_internal() */ - -TEST(tdm_pp_create_internal, work_flow_success_1) -{ - tdm_error error; - tdm_private_display private_display; - tdm_private_pp *private_pp_ret; - tdm_private_pp private_pp; - - _init_test(); - - stub_tdm_helper_get_time_ret_val = 1.1; - - private_display.func_pp.pp_destroy = stub_pp_destroy; - private_display.func_pp.pp_set_done_handler = stub_pp_set_done_handler; - private_display.func_display.display_create_pp = stub_display_create_pp; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - LIST_INITHEAD(&private_display.pp_list); - - private_pp.stamp = stub_tdm_helper_get_time_ret_val; - - LIST_ADD(&private_pp.link, &private_display.pp_list); - - private_pp_ret = tdm_pp_create_internal(&private_display, &error); - - ASSERT_EQ(TDM_ERROR_NONE, error); - ASSERT_TRUE(stub_pp_set_done_handler_is_called); - ASSERT_TRUE(stub_display_create_pp_is_called); - ASSERT_TRUE(private_pp_ret != NULL); -} - -TEST(tdm_pp_create_internal, work_flow_error_1___TDM_DISPLAY_CAPABILITY_PP_is_not_set) -{ - tdm_error error; - tdm_private_display private_display; - tdm_private_pp *private_pp; - - _init_test(); - - private_display.func_pp.pp_destroy = stub_pp_destroy; - private_display.func_pp.pp_set_done_handler = stub_pp_set_done_handler; - private_display.func_display.display_create_pp = stub_display_create_pp; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - LIST_INITHEAD(&private_display.pp_list); - - - private_display.capabilities = (tdm_display_capability)0; - - private_pp = tdm_pp_create_internal(&private_display, &error); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_TRUE(private_pp == NULL); -} - -TEST(tdm_pp_create_internal, work_flow_error_1___calloc_error) -{ - tdm_error error; - tdm_private_display private_display; - tdm_private_pp *private_pp; - - _init_test(); - - private_display.func_pp.pp_destroy = stub_pp_destroy; - private_display.func_pp.pp_set_done_handler = stub_pp_set_done_handler; - private_display.func_display.display_create_pp = stub_display_create_pp; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - LIST_INITHEAD(&private_display.pp_list); - - CALLOC_ERROR = 1; - - private_pp = tdm_pp_create_internal(&private_display, &error); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_TRUE(private_pp == NULL); -} - -TEST(tdm_pp_create_internal, work_flow_error_1___create_pp_error) -{ - tdm_error error; - tdm_private_display private_display; - tdm_private_pp *private_pp; - - _init_test(); - - stub_display_create_pp_error = 1; - private_display.func_display.display_create_pp = stub_display_create_pp; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - - private_pp = tdm_pp_create_internal(&private_display, &error); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_TRUE(private_pp == NULL); -} - -TEST(tdm_pp_create_internal, work_flow_error_1___set_done_handler_error) -{ - tdm_error error; - tdm_private_display private_display; - tdm_private_pp *private_pp; - - _init_test(); - - stub_pp_set_done_handler_error = 1; - - private_display.func_pp.pp_destroy = stub_pp_destroy; - private_display.func_pp.pp_set_done_handler = stub_pp_set_done_handler; - private_display.func_display.display_create_pp = stub_display_create_pp; - private_display.capabilities = TDM_DISPLAY_CAPABILITY_PP; - LIST_INITHEAD(&private_display.pp_list); - - private_pp = tdm_pp_create_internal(&private_display, &error); - ASSERT_NE(TDM_ERROR_NONE, error); - ASSERT_TRUE(private_pp == NULL); -} - -/* tdm_pp_cb_done() */ - -TEST(tdm_pp_cb_done, success_not_in_display_thread) -{ - tdm_private_pp private_pp; - struct _tbm_surface src, dst; - tdm_thread_cb_pp_done *pp_done; - - _init_test(); - - stub_syscall_return_value = 100; - private_pp.owner_tid = stub_syscall_return_value + 1; - private_pp.stamp = 200.05; - - tdm_pp_cb_done(&private_pp, &src, &dst, &private_pp); - - pp_done = (tdm_thread_cb_pp_done *)stub_tdm_thread_send_cb_buff; - - ASSERT_EQ(pp_done->base.type, TDM_THREAD_CB_PP_DONE); - ASSERT_EQ(pp_done->base.length, sizeof * pp_done); - ASSERT_DOUBLE_EQ(pp_done->pp_stamp, private_pp.stamp); - ASSERT_TRUE(pp_done->src == &src); - ASSERT_TRUE(pp_done->dst == &dst); - ASSERT_TRUE(pp_done->user_data == &private_pp); -} - -//TEST(tdm_pp_cb_done, success_in_display_thread) -//{ -// tdm_private_pp private_pp; -// struct _tbm_surface src, dst; -// tdm_pp_private_buffer *pp_buffer_1; -// tdm_pp_private_buffer *pp_buffer_2; -// -// _init_test(); -// -// stub_syscall_return_value = 100; -// stub_syscall_reset = 1; -// private_pp.owner_tid = stub_syscall_return_value; -// -// pp_buffer_1 = (tdm_pp_private_buffer *)calloc(1, sizeof (tdm_pp_private_buffer)); -// pp_buffer_2 = (tdm_pp_private_buffer *)calloc(1, sizeof (tdm_pp_private_buffer)); -// pp_buffer_1->src = &src; -// pp_buffer_1->dst = &dst; -// private_pp.done_func = stub_tdm_pp_done_handler; -// -// LIST_INITHEAD(&private_pp.buffer_list); -// LIST_ADD(&pp_buffer_1->link, &private_pp.buffer_list); -// LIST_ADD(&pp_buffer_2->link, &private_pp.buffer_list); -// -// tdm_pp_cb_done(&private_pp, &src, &dst, &private_pp); -// -// ASSERT_EQ(stub_tdm_buffer_unref_backend_count, 2); -// ASSERT_EQ(FREE_CALLED, 1); -// ASSERT_EQ(stub_tdm_pp_done_handler_is_called, 1); -// free(pp_buffer_2); -//} - -/* tdm_pp_find_stamp() */ - -TEST(tdm_pp_find_stamp, success_pp_list_is_empty) -{ - tdm_private_pp *private_pp_ret; - tdm_private_display private_display; - - _init_test(); - - LIST_INITHEAD(&private_display.pp_list); - - private_pp_ret = tdm_pp_find_stamp(&private_display, 0.5); - - ASSERT_TRUE(private_pp_ret == NULL); -} + void TearDown(void) + { + tdm_display_deinit(dpy); + dpy = NULL; + } +}; -TEST(tdm_pp_find_stamp, success_pp_find_stamp) +TEST_F(TDMPP, DisplayGetPPAvailableFormatsSuccessful) { - tdm_private_pp *private_pp_ret; - tdm_private_display private_display; - tdm_private_pp private_pp; - double stamp = 12.25; - - _init_test(); - - LIST_INITHEAD(&private_display.pp_list); - LIST_ADD(&private_pp.link, &private_display.pp_list); - - private_pp.stamp = stamp; - - private_pp_ret = tdm_pp_find_stamp(&private_display, stamp); - - ASSERT_TRUE(private_pp_ret == &private_pp); + CHECK_FLAG(has_pp); + const tbm_format * formats = NULL; + int count = -42; + ASSERT_TRUE(TDM_ERROR_NONE == tdm_display_get_pp_available_formats(dpy, &formats, &count)); + ASSERT_FALSE(-42 == count); + ASSERT_FALSE(NULL == formats); } diff --git a/utests/src/ut_tdm_thread.cpp b/utests/src/ut_tdm_thread.cpp deleted file mode 100644 index 76f69d0..0000000 --- a/utests/src/ut_tdm_thread.cpp +++ /dev/null @@ -1,824 +0,0 @@ -/************************************************************************** - * - * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. - * - * Contact: Konstantin Drabeniuk - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * -**************************************************************************/ - -#include "gtest/gtest.h" - -#include "tbm_stubs.h" -#include "stub_pthread.h" -#include "stub_stdlib.h" -#include "stub_unistd.h" -#include "stub_tdm.h" -#include "stub_tdm_display.h" -#include "stub_tdm_pp.h" -#include "stub_tdm_capture.h" -#include "stub_tdm_vblank.h" - -#include "tdm_thread.c" - -static void _init_test() -{ - keep_private_thread = NULL; - tdm_mutex_locked = 0; - - stub_pthread_init(); - stub_stdlib_init(); - stub_unistd_init(); - stub_tdm_display_init(); - stub_tdm_pp_init(); - tdm_debug_module = TDM_DEBUG_THREAD; -} - -/* UNIT TESTS */ - -/* tdm_thread_init */ - -TEST(tdm_thread_init, error_mutex_is_not_locked) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - - _init_test(); - - keep_private_thread = &private_thread; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, error_dpy_is_null) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - - tdm_mutex_locked = 1; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, error_dpy_private_loop_is_null) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - tdm_private_display private_display; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - memset(&private_display, 0, sizeof(tdm_private_display)); - - tdm_mutex_locked = 1; - private_loop.dpy = &private_display; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, success_private_thread_is_not_null) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_display private_display; - tdm_private_loop dpy_private_loop; - tdm_private_thread private_thread; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - memset(&dpy_private_loop, 0, sizeof(tdm_private_loop)); - memset(&private_display, 0, sizeof(tdm_private_display)); - - tdm_mutex_locked = 1; - private_loop.dpy = &private_display; - private_display.private_loop = &dpy_private_loop; - private_loop.private_thread = &private_thread; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, success_getenv_return_null) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_display private_display; - tdm_private_loop dpy_private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - memset(&dpy_private_loop, 0, sizeof(tdm_private_loop)); - memset(&private_display, 0, sizeof(tdm_private_display)); - - tdm_mutex_locked = 1; - private_loop.dpy = &private_display; - private_display.private_loop = &dpy_private_loop; - - stub_getenv_name = "TDM_THREAD"; - stub_getenv_return_value = NULL; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, success_getenv_return_0) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_display private_display; - tdm_private_loop dpy_private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - memset(&dpy_private_loop, 0, sizeof(tdm_private_loop)); - memset(&private_display, 0, sizeof(tdm_private_display)); - - tdm_mutex_locked = 1; - private_loop.dpy = &private_display; - private_display.private_loop = &dpy_private_loop; - - stub_getenv_name = "TDM_THREAD"; - stub_getenv_return_value = "0"; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, error_calloc_return_null) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_OUT_OF_MEMORY; - tdm_private_loop private_loop; - tdm_private_display private_display; - tdm_private_loop dpy_private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - memset(&dpy_private_loop, 0, sizeof(tdm_private_loop)); - memset(&private_display, 0, sizeof(tdm_private_display)); - - tdm_mutex_locked = 1; - private_loop.dpy = &private_display; - private_display.private_loop = &dpy_private_loop; - - stub_getenv_name = "TDM_THREAD"; - stub_getenv_return_value = "1"; - CALLOC_ERROR = 1; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, error_pipe_return_error) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - tdm_private_display private_display; - tdm_private_loop dpy_private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - memset(&dpy_private_loop, 0, sizeof(tdm_private_loop)); - memset(&private_display, 0, sizeof(tdm_private_display)); - - tdm_mutex_locked = 1; - private_loop.dpy = &private_display; - private_display.private_loop = &dpy_private_loop; - - stub_getenv_name = "TDM_THREAD"; - stub_getenv_return_value = "1"; - - stub_pipe_error = 1; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_init, success_init) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_display private_display; - tdm_private_loop dpy_private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - memset(&dpy_private_loop, 0, sizeof(tdm_private_loop)); - memset(&private_display, 0, sizeof(tdm_private_display)); - - tdm_mutex_locked = 1; - private_loop.dpy = &private_display; - private_display.private_loop = &dpy_private_loop; - - stub_getenv_name = "TDM_THREAD"; - stub_getenv_return_value = "1"; - stub_syscall_return_value = 10; - - error = tdm_thread_init(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_TRUE(keep_private_thread != NULL); - ASSERT_TRUE(keep_private_thread->private_loop == &private_loop); - ASSERT_TRUE(private_loop.private_thread != NULL); - ASSERT_EQ(private_loop.private_thread->display_tid, - stub_syscall_return_value); - free(private_loop.private_thread); -} - -/* tdm_thread_deinit */ - -TEST(tdm_thread_deinit, error_mutex_is_not_locked) -{ - tdm_private_loop private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - - private_loop.private_thread = calloc(1, sizeof(tdm_private_thread)); - - keep_private_thread = private_loop.private_thread; - - tdm_thread_deinit(&private_loop); - - ASSERT_TRUE(keep_private_thread != NULL); -} - -TEST(tdm_thread_deinit, error_private_thread_is_null) -{ - tdm_private_loop private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - - keep_private_thread = calloc(1, sizeof(tdm_private_thread)); - - tdm_thread_deinit(&private_loop); - - ASSERT_TRUE(keep_private_thread != NULL); -} - -TEST(tdm_thread_deinit, success_deinit) -{ - tdm_private_loop private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - - tdm_mutex_locked = 1; - - private_loop.private_thread = calloc(1, sizeof(tdm_private_thread)); - - private_loop.private_thread->pipe[0] = 1; - private_loop.private_thread->pipe[1] = 2; - - keep_private_thread = private_loop.private_thread; - - tdm_thread_deinit(&private_loop); - - ASSERT_TRUE(keep_private_thread == NULL); - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_EQ(stub_unistd_closed_fds[1], 1); - ASSERT_EQ(stub_unistd_closed_fds[2], 1); - ASSERT_TRUE(private_loop.private_thread == NULL); -} - -/* tdm_thread_get_fd */ - -TEST(tdm_thread_get_fd, error_mutex_is_not_locked) -{ - int ret; - int expected_ret = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - - _init_test(); - - keep_private_thread = &private_thread; - - ret = tdm_thread_get_fd(&private_loop); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_get_fd, error_private_loop_is_null) -{ - int ret; - int expected_ret = -1; - - _init_test(); - - tdm_mutex_locked = 1; - - ret = tdm_thread_get_fd(NULL); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_get_fd, error_private_thread_is_null) -{ - int ret; - int expected_ret = -1; - tdm_private_loop private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - - ret = tdm_thread_get_fd(&private_loop); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_get_fd, success_get_fd) -{ - int ret; - int expected_ret; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - private_thread.pipe[0] = 15; - - expected_ret = private_thread.pipe[0]; - - ret = tdm_thread_get_fd(&private_loop); - - ASSERT_EQ(ret, expected_ret); -} - -/* tdm_thread_send_cb */ - -TEST(tdm_thread_send_cb, error_mutex_is_not_locked) -{ - tdm_error ret; - tdm_error expected_ret = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - tdm_thread_cb_base base; - tdm_private_thread private_thread; - - _init_test(); - - keep_private_thread = &private_thread; - - ret = tdm_thread_send_cb(&private_loop, &base); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_send_cb, error_base_is_null) -{ - tdm_error ret; - tdm_error expected_ret = TDM_ERROR_INVALID_PARAMETER; - tdm_private_loop private_loop; - - _init_test(); - - ret = tdm_thread_send_cb(&private_loop, NULL); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_send_cb, error_private_loop_is_null) -{ - tdm_error ret; - tdm_error expected_ret = TDM_ERROR_INVALID_PARAMETER; - tdm_thread_cb_base base; - - _init_test(); - - ret = tdm_thread_send_cb(NULL, &base); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_send_cb, error_private_thread_is_null) -{ - tdm_error ret; - tdm_error expected_ret = TDM_ERROR_INVALID_PARAMETER; - tdm_private_loop private_loop; - tdm_thread_cb_base base; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - - ret = tdm_thread_send_cb(&private_loop, &base); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_send_cb, error_write_error) -{ - tdm_error ret; - tdm_error expected_ret = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - tdm_thread_cb_base base; - tdm_private_thread private_thread; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - base.length = 256; - - stub_write_error = 1; - - ret = tdm_thread_send_cb(&private_loop, &base); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_send_cb, success_send_cb) -{ - tdm_error ret; - tdm_error expected_ret = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_thread_cb_base base; - tdm_private_thread private_thread; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - base.length = 256; - - ret = tdm_thread_send_cb(&private_loop, &base); - - ASSERT_EQ(ret, expected_ret); -} - -/* tdm_thread_handle_cb */ - -TEST(tdm_thread_handle_cb, error_private_loop_is_null) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - - error = tdm_thread_handle_cb(NULL); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_handle_cb, error_private_thread_is_null) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_INVALID_PARAMETER; - tdm_private_loop private_loop; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_handle_cb, success_read_0_bytes) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_handle_cb, error_partial_reading) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_OPERATION_FAILED; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_base base; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&base; - base.length = sizeof(tdm_thread_cb_base); - - stub_read_returned_size = sizeof(tdm_thread_cb_base) - 1; - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); -} - -TEST(tdm_thread_handle_cb, success_case_thread_cb_output_commit) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_output_commit cb_output_commit; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&cb_output_commit; - cb_output_commit.base.type = TDM_THREAD_CB_OUTPUT_COMMIT; - cb_output_commit.base.length = sizeof(tdm_thread_cb_output_commit); - - stub_read_returned_size = sizeof(tdm_thread_cb_output_commit); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_output_cb_commit_called, 1); -} - -TEST(tdm_thread_handle_cb, success_case_thread_cb_output_vblank) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_output_vblank cb_output_vblank; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&cb_output_vblank; - cb_output_vblank.base.type = TDM_THREAD_CB_OUTPUT_VBLANK; - cb_output_vblank.base.length = sizeof(tdm_thread_cb_output_vblank); - - stub_read_returned_size = sizeof(tdm_thread_cb_output_vblank); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_output_cb_vblank_called, 1); -} - -TEST(tdm_thread_handle_cb, success_case_thread_cb_output_status) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_output_status cb_output_status; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&cb_output_status; - cb_output_status.base.type = TDM_THREAD_CB_OUTPUT_STATUS; - cb_output_status.base.length = sizeof(tdm_thread_cb_output_status); - - stub_read_returned_size = sizeof(tdm_thread_cb_output_status); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_output_cb_status_called, 1); -} - -TEST(tdm_thread_handle_cb, success_case_thread_cb_output_dpms) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_output_dpms cb_output_dpms; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&cb_output_dpms; - cb_output_dpms.base.type = TDM_THREAD_CB_OUTPUT_DPMS; - cb_output_dpms.base.length = sizeof(tdm_thread_cb_output_dpms); - - stub_read_returned_size = sizeof(tdm_thread_cb_output_dpms); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_output_cb_dpms_called, 1); -} - -TEST(tdm_thread_handle_cb, success_case_thread_cb_pp_done) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_pp_done cb_pp_done; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&cb_pp_done; - cb_pp_done.base.type = TDM_THREAD_CB_PP_DONE; - cb_pp_done.base.length = sizeof(tdm_thread_cb_pp_done); - - stub_read_returned_size = sizeof(tdm_thread_cb_pp_done); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_pp_cb_done_called, 1); -} - -TEST(tdm_thread_handle_cb, success_case_thread_cb_capture_done) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_capture_done cb_capture_done; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&cb_capture_done; - cb_capture_done.base.type = TDM_THREAD_CB_CAPTURE_DONE; - cb_capture_done.base.length = sizeof(tdm_thread_cb_capture_done); - - stub_read_returned_size = sizeof(tdm_thread_cb_capture_done); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_capture_cb_done_called, 1); -} - -TEST(tdm_thread_handle_cb, success_case_thread_cb_vblank_sw) -{ - tdm_error error; - tdm_error expected_error = TDM_ERROR_NONE; - tdm_private_loop private_loop; - tdm_private_thread private_thread; - tdm_thread_cb_vblank_sw cb_vblank_sw; - - _init_test(); - - memset(&private_loop, 0, sizeof(tdm_private_loop)); - private_loop.private_thread = &private_thread; - - stub_read_buf = (void *)&cb_vblank_sw; - cb_vblank_sw.base.type = TDM_THREAD_CB_VBLANK_SW; - cb_vblank_sw.base.length = sizeof(tdm_thread_cb_vblank_sw); - - stub_read_returned_size = sizeof(tdm_thread_cb_vblank_sw); - - error = tdm_thread_handle_cb(&private_loop); - - ASSERT_EQ(error, expected_error); - ASSERT_EQ(stub_tdm_vblank_cb_vblank_SW_called, 1); -} - -/* tdm_thread_in_display_thread */ - -TEST(tdm_thread_in_display_thread, success_keep_private_thread_is_null) -{ - int ret; - int expected_ret = 1; - pid_t tid; - - _init_test(); - - ret = tdm_thread_in_display_thread(tid); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_in_display_thread, success_in_display_thread) -{ - int ret; - int expected_ret = 1; - pid_t tid = 20; - static tdm_private_thread private_thread; - - _init_test(); - - private_thread.display_tid = tid; - keep_private_thread = &private_thread; - - ret = tdm_thread_in_display_thread(tid); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_in_display_thread, success_no_in_display_thread) -{ - int ret; - int expected_ret = 0; - pid_t tid = 20; - static tdm_private_thread private_thread; - - _init_test(); - - private_thread.display_tid = tid + 1; - keep_private_thread = &private_thread; - - ret = tdm_thread_in_display_thread(tid); - - ASSERT_EQ(ret, expected_ret); -} - -/* tdm_thread_is_running */ - -TEST(tdm_thread_is_running, success_no_is_running) -{ - int ret; - int expected_ret = 0; - - _init_test(); - - ret = tdm_thread_is_running(); - - ASSERT_EQ(ret, expected_ret); -} - -TEST(tdm_thread_is_running, success_is_running) -{ - int ret; - int expected_ret = 1; - static tdm_private_thread private_thread; - - _init_test(); - - keep_private_thread = &private_thread; - - ret = tdm_thread_is_running(); - - ASSERT_EQ(ret, expected_ret); -} diff --git a/utests/src/ut_tdm_vblank.cpp b/utests/src/ut_tdm_vblank.cpp deleted file mode 100644 index 9783ff1..0000000 --- a/utests/src/ut_tdm_vblank.cpp +++ /dev/null @@ -1,890 +0,0 @@ -/************************************************************************** - * - * Copyright 2016 Samsung Electronics co., Ltd. All Rights Reserved. - * - * Contact: Konstantin Drabeniuk - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * -**************************************************************************/ - -#include "gtest/gtest.h" - -#include "stub_pthread.h" -#include "stub_tdm_display.h" -#include "stub_stdlib.h" -#include "stub_unistd.h" -#include "stub_tdm_event_loop.h" -#include "stub_tdm_thread.h" -#include "stub_tdm.h" -#include "stub_tdm_event_loop.h" -#include "stub_tdm_helper.h" - -#include - -extern "C" const char* -tdm_server_get_client_name(pid_t pid) -{ - (void)pid; - return NULL; -} - -#include "tdm_vblank.c" - -static void _init_test() -{ - stub_tdm_helper_init(); - stub_tdm_event_loop_init(); - stub_tdm_init(); - stub_tdm_thread_init(); - stub_tdm_event_loop_init(); - stub_stdlib_init(); - stub_stdlib_init(); - stub_tdm_display_init(); - stub_pthread_init(); - vblank_list_inited = 0; - tdm_debug_module = TDM_DEBUG_VBLANK; -} - -/* UNIT TESTS */ - -/* tdm_vblank_create() */ - -TEST(tdm_vblank_create, error_dpy_is_null) -{ - tdm_vblank *vblank; - tdm_private_output output; - tdm_error error; - - _init_test(); - - vblank = tdm_vblank_create(NULL, &output, &error); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); - ASSERT_TRUE(vblank == NULL); -} - -TEST(tdm_vblank_create, error_output_is_null) -{ - tdm_vblank *vblank; - tdm_private_display display; - tdm_error error; - - _init_test(); - - vblank = tdm_vblank_create(&display, NULL, &error); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); - ASSERT_TRUE(vblank == NULL); -} - -TEST(tdm_vblank_create, error_list_inited_mutex_init) -{ - tdm_vblank *vblank; - tdm_private_display display; - tdm_private_output output; - tdm_error error; - - _init_test(); - - PTHREAD_MUTEX_INIT_ERROR = -1; - - vblank = tdm_vblank_create(&display, &output, &error); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); - ASSERT_TRUE(vblank == NULL); -} - -TEST(tdm_vblank_create, error_mode_is_null) -{ - tdm_vblank *vblank; - tdm_private_display display; - tdm_private_output output; - tdm_error error; - - _init_test(); - - stub_tdm_output_get_mode_error = 1; - - vblank = tdm_vblank_create(&display, &output, &error); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); - ASSERT_TRUE(vblank == NULL); -} - -TEST(tdm_vblank_create, error_calloc_error) -{ - tdm_vblank *vblank; - tdm_private_display display; - tdm_private_output output; - tdm_error error; - - _init_test(); - - CALLOC_ERROR = 1; - - vblank = tdm_vblank_create(&display, &output, &error); - - ASSERT_EQ(error, TDM_ERROR_OUT_OF_MEMORY); - ASSERT_TRUE(vblank == NULL); -} - -TEST(tdm_vblank_create, success_vblank_create) -{ - tdm_private_vblank *vblank; - tdm_private_display display; - tdm_private_output output; - tdm_error error; - tdm_private_vblank *find_item; - tdm_private_vblank *tmp; - - _init_test(); - - vblank = - (tdm_private_vblank *) tdm_vblank_create(&display, &output, &error); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_TRUE(vblank != NULL); - ASSERT_TRUE(stub_tdm_output_change_handler == _tdm_vblank_cb_output_change); - ASSERT_EQ(vblank->stamp, stamp); - ASSERT_EQ(vblank->owner_tid, stub_syscall_return_value); - ASSERT_TRUE(vblank->dpy == &display); - ASSERT_TRUE(vblank->output == &output); - ASSERT_EQ(vblank->dpms, stub_tdm_dpms_returned_value); - ASSERT_EQ(vblank->vrefresh, stub_tdm_mode.vrefresh); - ASSERT_EQ(vblank->HW_vblank_gap, 1.0 / vblank->vrefresh); - ASSERT_EQ(vblank->check_HW_or_SW, 1); - ASSERT_EQ(vblank->fps, stub_tdm_mode.vrefresh); - ASSERT_TRUE(LIST_IS_EMPTY(&vblank->HW_wait_list)); - ASSERT_TRUE(LIST_IS_EMPTY(&vblank->SW_wait_list)); -// LIST_FOR_EACH_ENTRY_SAFE(find_item, tmp, &vblank_list, link) { -// if (find_item == vblank) -// break; -// find_item = NULL; -// } -// ASSERT_TRUE(find_item != NULL); -// ASSERT_TRUE(LIST_IS_EMPTY(&valid_wait_list)); -// free(vblank); -} - -/* tdm_vblank_destroy() */ - -//TEST(tdm_vblank_destroy, success_vblank_destroy) -//{ -// tdm_private_vblank *vblank; -// int SW_timer = 10; -// tdm_vblank_wait_info *hw_vblank_wait_info; -// tdm_vblank_wait_info *sw_vblank_wait_info; -// -// _init_test(); -// -// vblank = (tdm_private_vblank *) calloc(1, sizeof *vblank); -// hw_vblank_wait_info = -// (tdm_vblank_wait_info *) calloc(1, sizeof *hw_vblank_wait_info); -// sw_vblank_wait_info = -// (tdm_vblank_wait_info *) calloc(1, sizeof *sw_vblank_wait_info); -// -//// LIST_INITHEAD(&vblank_list); -//// LIST_ADD(&vblank->link, &vblank_list); -// -// vblank->SW_timer = &SW_timer; -// -// LIST_INITHEAD(&hw_vblank_wait_info->valid_link); -// LIST_INITHEAD(&vblank->HW_wait_list); -// LIST_ADD(&hw_vblank_wait_info->link, &vblank->HW_wait_list); -// -// LIST_INITHEAD(&sw_vblank_wait_info->valid_link); -// LIST_INITHEAD(&vblank->SW_wait_list); -// LIST_ADD(&sw_vblank_wait_info->link, &vblank->SW_wait_list); -// -// tdm_vblank_destroy(vblank); -// -//// ASSERT_TRUE(LIST_IS_EMPTY(&vblank_list)); -// ASSERT_TRUE(stub_tdm_event_loop_removed_source == &SW_timer); -// ASSERT_TRUE(stub_tdm_output_change_handler == _tdm_vblank_cb_output_change); -// ASSERT_TRUE(LIST_IS_EMPTY(&vblank->HW_wait_list)); -// ASSERT_TRUE(LIST_IS_EMPTY(&vblank->SW_wait_list)); -// ASSERT_EQ(FREE_CALLED, 1); -//} - -/* tdm_vblank_set_fps() */ - -TEST(tdm_vblank_set_fps, error_vblank_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_vblank_set_fps(NULL, 5); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_set_fps, error_fps_is_0) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - error = tdm_vblank_set_fps(&vblank, 0); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_set_fps, success_fps_is_already_set) -{ - tdm_error error; - tdm_private_vblank vblank; - unsigned int fps = 60; - - _init_test(); - - vblank.fps = fps; - - error = tdm_vblank_set_fps(&vblank, fps); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(vblank.fps, fps); -} - -TEST(tdm_vblank_set_fps, success_set_fps) -{ - tdm_error error; - tdm_private_vblank vblank; - unsigned int fps = 60; - - _init_test(); - - vblank.fps = fps - 10; - - error = tdm_vblank_set_fps(&vblank, fps); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(vblank.fps, fps); - ASSERT_EQ(vblank.check_HW_or_SW, 1); -} - -/* tdm_vblank_set_offset() */ - -TEST(tdm_vblank_set_offset, error_vblank_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_vblank_set_offset(NULL, 1); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_set_offset, success_offset_is_already_set) -{ - tdm_error error; - tdm_private_vblank vblank; - int offset = 256; - - _init_test(); - - vblank.offset = offset; - - error = tdm_vblank_set_offset(&vblank, offset); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(vblank.offset, offset); -} - -TEST(tdm_vblank_set_offset, success_vblank_set_offset) -{ - tdm_error error; - tdm_private_vblank vblank; - int offset = 256; - - _init_test(); - - vblank.offset = offset - 64; - - error = tdm_vblank_set_offset(&vblank, offset); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(vblank.offset, offset); - ASSERT_EQ(vblank.check_HW_or_SW, 1); -} - -/* tdm_vblank_set_enable_fake() */ - -TEST(tdm_vblank_set_enable_fake, error_vblank_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_vblank_set_enable_fake(NULL, 1); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_set_enable_fake, success_enable_fake_is_already_set) -{ - tdm_error error; - tdm_private_vblank vblank; - int enable_fake = 256; - - _init_test(); - - vblank.enable_fake = enable_fake; - - error = tdm_vblank_set_enable_fake(&vblank, enable_fake); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(vblank.enable_fake, enable_fake); -} - -TEST(tdm_vblank_set_enable_fake, success_vblank_set_enable_fake) -{ - tdm_error error; - tdm_private_vblank vblank; - int enable_fake = 256; - - _init_test(); - - vblank.enable_fake = enable_fake - 64; - - error = tdm_vblank_set_enable_fake(&vblank, enable_fake); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(vblank.enable_fake, enable_fake); -} - -/* tdm_vblank_get_enable_fake() */ - -TEST(tdm_vblank_get_enable_fake, error_vblank_is_null) -{ - unsigned int enable_fake; - - _init_test(); - - tdm_vblank_get_enable_fake(NULL, &enable_fake); - - ASSERT_EQ(enable_fake, 0); -} - -TEST(tdm_vblank_get_enable_fake, success_vblank_get_enable_fake) -{ - tdm_private_vblank vblank; - unsigned int enable_fake; - - _init_test(); - - vblank.enable_fake = 15; - - tdm_vblank_get_enable_fake(&vblank, &enable_fake); - - ASSERT_EQ(enable_fake, vblank.enable_fake); -} - -/* tdm_vblank_cb_vblank_SW() */ - -TEST(tdm_vblank_cb_vblank_SW, error_vblank_is_null_and_vblank_stamp_less_0) -{ - tdm_error error; - - _init_test(); - - error = tdm_vblank_cb_vblank_SW(NULL, -1); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_cb_vblank_SW, success_vblank_is_null_and_not_on_vblank_list) -{ - tdm_error error; - - _init_test(); - -// LIST_INITHEAD(&vblank_list); - - error = tdm_vblank_cb_vblank_SW(NULL, 5); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_vblank_cb_vblank_SW, success_not_in_display_thread) -{ - tdm_error error; - tdm_private_vblank vblank; - tdm_thread_cb_vblank_sw *vblank_sw; - tdm_private_display display; - - _init_test(); - - vblank.owner_tid = 10; - vblank.stamp = 15.0; - vblank.dpy = &display; - - stub_syscall_return_value = vblank.owner_tid - 1; - - error = tdm_vblank_cb_vblank_SW(&vblank, 5); - - vblank_sw = (tdm_thread_cb_vblank_sw *) stub_tdm_thread_send_cb_buff; - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(vblank_sw->base.length, sizeof(tdm_thread_cb_vblank_sw)); - ASSERT_EQ(vblank_sw->base.type, TDM_THREAD_CB_VBLANK_SW); - ASSERT_DOUBLE_EQ(vblank_sw->vblank_stamp, vblank.stamp); -} - -TEST(tdm_vblank_cb_vblank_SW, success_SW_wait_list_is_empty) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - vblank.owner_tid = 10; - - stub_syscall_return_value = vblank.owner_tid; - - LIST_INITHEAD(&vblank.SW_wait_list); - - error = tdm_vblank_cb_vblank_SW(&vblank, 5); - - ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); -} - -TEST(tdm_vblank_cb_vblank_SW, success_vblank_cb_vblank_SW) -{ - tdm_error error; - tdm_private_vblank vblank; - tdm_vblank_wait_info *first_wait_info; - tdm_vblank_wait_info *wait_info; - - _init_test(); - - first_wait_info = - (tdm_vblank_wait_info *) calloc(1, sizeof *first_wait_info); - wait_info = (tdm_vblank_wait_info *) calloc(1, sizeof *wait_info); - - vblank.owner_tid = 10; - - stub_syscall_return_value = vblank.owner_tid; - - LIST_INITHEAD(&vblank.SW_wait_list); - LIST_INITHEAD(&first_wait_info->valid_link); - LIST_INITHEAD(&wait_info->valid_link); - - LIST_ADD(&wait_info->link, &vblank.SW_wait_list); - LIST_ADD(&first_wait_info->link, &vblank.SW_wait_list); - - vblank.last_seq = 20; - first_wait_info->target_seq = 19; - wait_info->target_seq = 21; - - first_wait_info->target_time = 5; - wait_info->target_time = 5; - - first_wait_info->func = stub_tdm_vblank_handler; - wait_info->func = stub_tdm_vblank_handler; - - error = tdm_vblank_cb_vblank_SW(&vblank, 5); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_EQ(stub_tdm_vblank_handler_call_count, 2); -} - -TEST(tdm_vblank_cb_vblank_SW, success_vblank_cb_vblank_SW_2) -{ - tdm_error error; - tdm_private_vblank vblank; - tdm_vblank_wait_info *first_wait_info; - tdm_vblank_wait_info *wait_info; - - _init_test(); - - first_wait_info = - (tdm_vblank_wait_info *) calloc(1, sizeof *first_wait_info); - wait_info = (tdm_vblank_wait_info *) calloc(1, sizeof *wait_info); - - vblank.owner_tid = 10; - - stub_syscall_return_value = vblank.owner_tid; - - LIST_INITHEAD(&vblank.SW_wait_list); - LIST_INITHEAD(&first_wait_info->valid_link); - LIST_INITHEAD(&wait_info->valid_link); - - LIST_ADD(&wait_info->link, &vblank.SW_wait_list); - LIST_ADD(&first_wait_info->link, &vblank.SW_wait_list); - - vblank.last_seq = 20; - first_wait_info->target_seq = 19; - wait_info->target_seq = 21; - - first_wait_info->target_time = 5; - wait_info->target_time = 10; - - first_wait_info->func = stub_tdm_vblank_handler; - wait_info->func = stub_tdm_vblank_handler; - - error = tdm_vblank_cb_vblank_SW(&vblank, 5); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(FREE_CALLED, 1); - ASSERT_EQ(stub_tdm_vblank_handler_call_count, 1); -} - -/* tdm_vblank_wait() */ - -TEST(tdm_vblank_wait, error_vblank_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_vblank_wait(NULL, 1, 1, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_wait, error_func_is_null) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - error = tdm_vblank_wait(&vblank, 1, 1, 1, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_wait, error_not_in_display_thread) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - vblank.owner_tid = 10; - - stub_syscall_return_value = vblank.owner_tid - 1; - - error = tdm_vblank_wait(&vblank, 1, 1, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_BAD_REQUEST); -} - -TEST(tdm_vblank_wait, error_dpms_is_off_and_enable_fake_is_0) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - vblank.owner_tid = 10; - vblank.dpms = TDM_OUTPUT_DPMS_OFF; - vblank.enable_fake = 0; - - stub_syscall_return_value = vblank.owner_tid; - - error = tdm_vblank_wait(&vblank, 1, 1, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_DPMS_OFF); -} - -TEST(tdm_vblank_wait, error_calloc) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - vblank.owner_tid = 10; - vblank.dpms = TDM_OUTPUT_DPMS_ON; - - stub_syscall_return_value = vblank.owner_tid; - - CALLOC_ERROR = 1; - - error = tdm_vblank_wait(&vblank, 1, 1, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_OUT_OF_MEMORY); -} - -//TEST(tdm_vblank_wait, error_vblank_wait_HW_and_vblank_wait_SW) -//{ -// tdm_error error; -// tdm_private_vblank vblank; -// int SW_timer = 10; -// -// _init_test(); -// -// LIST_INITHEAD(&vblank.HW_wait_list); -// LIST_INITHEAD(&vblank.SW_wait_list); -// -// vblank.owner_tid = 10; -// vblank.dpms = TDM_OUTPUT_DPMS_ON; -// vblank.check_HW_or_SW = 1; -// vblank.vrefresh = 60; -// vblank.fps = 60; -// vblank.offset = 1; -// vblank.last_time = 0; -// vblank.SW_timer = &SW_timer; -// -// stub_syscall_return_value = vblank.owner_tid; -// stub_tdm_output_wait_vblank_error = 1; -// stub_tdm_event_loop_source_timer_update_error = 1; -// -// error = tdm_vblank_wait(&vblank, 0, 0, 1, stub_tdm_vblank_handler, NULL); -// -// ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); -//} - -//TEST(tdm_vblank_wait, error_vblank_wait_SW) -//{ -// tdm_error error; -// tdm_private_vblank vblank; -// int SW_timer = 10; -// -// _init_test(); -// -// LIST_INITHEAD(&vblank.HW_wait_list); -// LIST_INITHEAD(&vblank.SW_wait_list); -// -// vblank.owner_tid = 10; -// vblank.dpms = TDM_OUTPUT_DPMS_ON; -// vblank.check_HW_or_SW = 1; -// vblank.vrefresh = 60; -// vblank.fps = 24; -// vblank.offset = 1; -// vblank.last_time = 0; -// vblank.SW_timer = &SW_timer; -// -// stub_syscall_return_value = vblank.owner_tid; -// stub_tdm_event_loop_source_timer_update_error = 1; -// -// error = tdm_vblank_wait(&vblank, 0, 0, 1, stub_tdm_vblank_handler, NULL); -// -// ASSERT_EQ(error, TDM_ERROR_OPERATION_FAILED); -//} - -TEST(tdm_vblank_wait, success_vblank_wait_SW) -{ - tdm_error error; - tdm_private_vblank vblank; - int SW_timer = 10; - - _init_test(); - - LIST_INITHEAD(&vblank.HW_wait_list); - LIST_INITHEAD(&vblank.SW_wait_list); - - vblank.owner_tid = 10; - vblank.enable_fake = 1; - vblank.dpms = TDM_OUTPUT_DPMS_OFF; - vblank.check_HW_or_SW = 1; - vblank.vrefresh = 60; - vblank.fps = 60; - vblank.offset = 1; - vblank.last_time = 0; - vblank.SW_timer = &SW_timer; - - stub_syscall_return_value = vblank.owner_tid; - - error = tdm_vblank_wait(&vblank, 0, 0, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_vblank_wait, success_vblank_wait_HW) -{ - tdm_error error; - tdm_private_vblank vblank; - int SW_timer = 10; - - _init_test(); - - LIST_INITHEAD(&vblank.HW_wait_list); - LIST_INITHEAD(&vblank.SW_wait_list); - - vblank.owner_tid = 10; - vblank.dpms = TDM_OUTPUT_DPMS_ON; - vblank.check_HW_or_SW = 1; - vblank.vrefresh = 60; - vblank.fps = 60; - vblank.offset = 0; - vblank.last_time = 0; - vblank.SW_timer = &SW_timer; - - stub_syscall_return_value = vblank.owner_tid; - - error = tdm_vblank_wait(&vblank, 0, 0, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -/* tdm_vblank_wait_seq() */ - -TEST(tdm_vblank_wait_seq, error_vblank_is_null) -{ - tdm_error error; - - _init_test(); - - error = tdm_vblank_wait_seq(NULL, 1, 1, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_wait_seq, error_func_is_null) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - error = tdm_vblank_wait_seq(&vblank, 1, 1, 1, NULL, NULL); - - ASSERT_EQ(error, TDM_ERROR_INVALID_PARAMETER); -} - -TEST(tdm_vblank_wait_seq, success_last_seq_is_0) -{ - tdm_error error; - tdm_private_vblank vblank; - int SW_timer = 10; - - _init_test(); - - LIST_INITHEAD(&vblank.HW_wait_list); - LIST_INITHEAD(&vblank.SW_wait_list); - - vblank.last_seq = 0; - vblank.owner_tid = 10; - vblank.dpms = TDM_OUTPUT_DPMS_ON; - vblank.check_HW_or_SW = 1; - vblank.vrefresh = 60; - vblank.fps = 60; - vblank.offset = 0; - vblank.last_time = 0; - vblank.SW_timer = &SW_timer; - - stub_syscall_return_value = vblank.owner_tid; - - error = - tdm_vblank_wait_seq(&vblank, 0, 0, 1, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_vblank_wait_seq, - success_sequence_greater_last_seq_and_seq_target_less_curr) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - vblank.last_seq = 1; - vblank.vblank_gap = 0; - - stub_tdm_helper_get_time_ret_val = 100; - - error = - tdm_vblank_wait_seq(&vblank, 0, 0, 5, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(stub_tdm_vblank_handler_call_count, 1); -} - -TEST(tdm_vblank_wait_seq, success_target_is_too_close_to_current) -{ - tdm_error error; - tdm_private_vblank vblank; - - _init_test(); - - vblank.last_seq = 1; - vblank.vblank_gap = 0; - - stub_tdm_helper_get_time_ret_val = vblank.last_time - 0.0001; - - error = - tdm_vblank_wait_seq(&vblank, 0, 0, 5, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(stub_tdm_vblank_handler_call_count, 1); -} - -TEST(tdm_vblank_wait_seq, success_sequence_greater_last_seq) -{ - tdm_error error; - tdm_private_vblank vblank; - int SW_timer = 10; - - _init_test(); - - LIST_INITHEAD(&vblank.HW_wait_list); - LIST_INITHEAD(&vblank.SW_wait_list); - - vblank.last_seq = 1; - vblank.owner_tid = 10; - vblank.dpms = TDM_OUTPUT_DPMS_ON; - vblank.check_HW_or_SW = 1; - vblank.vrefresh = 60; - vblank.fps = 60; - vblank.offset = 0; - vblank.last_time = 1; - vblank.SW_timer = &SW_timer; - vblank.vblank_gap = 0; - - stub_syscall_return_value = vblank.owner_tid; - - stub_tdm_helper_get_time_ret_val = vblank.last_time - 0.5; - - error = - tdm_vblank_wait_seq(&vblank, 0, 0, 5, stub_tdm_vblank_handler, NULL); - - ASSERT_EQ(error, TDM_ERROR_NONE); -} - -TEST(tdm_vblank_wait_seq, - success_last_seq_is_not_0_and_no_sequence_greater_last_seq) -{ - tdm_error error; - tdm_private_vblank vblank; - unsigned int sequence = TDM_VBLANK_UINT_1Q + 100; - - _init_test(); - - vblank.last_seq = sequence + 100; - vblank.vblank_gap = 0; - - stub_tdm_helper_get_time_ret_val = vblank.last_time - 0.0001; - - error = - tdm_vblank_wait_seq(&vblank, 0, 0, sequence, stub_tdm_vblank_handler, - NULL); - - ASSERT_EQ(error, TDM_ERROR_NONE); - ASSERT_EQ(stub_tdm_vblank_handler_call_count, 1); -} diff --git a/utests/stubs/stub_backend.cpp b/utests/stubs/stub_backend.cpp deleted file mode 100644 index 5c78afa..0000000 --- a/utests/stubs/stub_backend.cpp +++ /dev/null @@ -1,377 +0,0 @@ -#include "stub_backend.h" -#include - -int OUTPUT_CREATE_CAPTURE_ERROR; -int CAPTURE_SET_DONE_HANDLER_ERROR; -int LAYER_CREATE_CAPTURE_ERROR; -int CAPTURE_SET_INFO_ERROR; -int CAPTURE_ATTACH_ERROR; -int CAPTURE_COMMIT_ERROR; -int OUTPUT_SET_PROPERTY_ERROR; -int OUTPUT_GET_PROPERTY_ERROR; -int OUTPUT_WAIT_VBLANK_ERROR; -int OUTPUT_SET_VBLANK_HANDLER; -int OUTPUT_COMMIT_ERROR; -int OUTPUT_SET_COMMIT_HANDLER; -int OUTPUT_SET_MODE_ERROR; -int OUTPUT_SET_DPMS_ERROR; -int OUTPUT_GET_DPMS_ERROR; -int LAYER_SET_PROPERTY_ERROR; -int LAYER_GET_PROPERTY_ERROR; -int LAYER_SET_INFO_ERROR; -int LAYER_SET_BUFFER_ERROR; -int LAYER_UNSET_BUFFER_ERROR; -int LAYER_SET_VIDEO_POS_ERROR; -int PP_SET_INFO_ERROR; -int PP_COMMIT_ERROR; -unsigned int layer_get_buffer_flags_ret; -int capture_destroy_is_called; - -void stub_backend_init() -{ - OUTPUT_CREATE_CAPTURE_ERROR = 0; - CAPTURE_SET_DONE_HANDLER_ERROR = 0; - LAYER_CREATE_CAPTURE_ERROR = 0; - CAPTURE_SET_INFO_ERROR = 0; - CAPTURE_ATTACH_ERROR = 0; - CAPTURE_COMMIT_ERROR = 0; - OUTPUT_SET_PROPERTY_ERROR = 0; - OUTPUT_GET_PROPERTY_ERROR = 0; - OUTPUT_WAIT_VBLANK_ERROR = 0; - OUTPUT_SET_VBLANK_HANDLER = 0; - OUTPUT_COMMIT_ERROR = 0; - OUTPUT_SET_COMMIT_HANDLER = 0; - OUTPUT_SET_MODE_ERROR = 0; - OUTPUT_SET_DPMS_ERROR = 0; - OUTPUT_GET_DPMS_ERROR = 0; - LAYER_SET_PROPERTY_ERROR = 0; - LAYER_GET_PROPERTY_ERROR = 0; - LAYER_SET_INFO_ERROR = 0; - LAYER_SET_BUFFER_ERROR = 0; - LAYER_UNSET_BUFFER_ERROR = 0; - LAYER_SET_VIDEO_POS_ERROR = 0; - PP_SET_INFO_ERROR = 0; - PP_COMMIT_ERROR = 0; - layer_get_buffer_flags_ret = 20; - capture_destroy_is_called = 0; -} - -tdm_capture *output_create_capture(tdm_output *output, tdm_error *error) -{ - (void)output; - (void)error; - - if (OUTPUT_CREATE_CAPTURE_ERROR) { - *error = TDM_ERROR_OPERATION_FAILED; - return NULL; - } - - *error = TDM_ERROR_NONE; - - return NULL; -} - -void capture_destroy(tdm_capture *capture) -{ - (void)capture; - - capture_destroy_is_called = 1; -} - -tdm_error capture_set_done_handler(tdm_capture *capture, - tdm_capture_done_handler func, void *user_data) -{ - (void)capture; - (void)func; - (void)user_data; - - if (CAPTURE_SET_DONE_HANDLER_ERROR) { - if (user_data) { - free(user_data); - } - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_capture *layer_create_capture(tdm_layer *layer, tdm_error *error) -{ - (void)layer; - (void)error; - - if (LAYER_CREATE_CAPTURE_ERROR) { - *error = TDM_ERROR_OPERATION_FAILED; - return NULL; - } - - *error = TDM_ERROR_NONE; - return NULL; -} - -tdm_error capture_set_info(tdm_capture *capture, tdm_info_capture *info) -{ - (void)capture; - (void)info; - - if (CAPTURE_SET_INFO_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error capture_commit(tdm_capture *capture) -{ - (void)capture; - - if (CAPTURE_COMMIT_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_set_property(tdm_output *output, unsigned int id, - tdm_value value) -{ - (void)output; - (void)id; - (void)value; - - if (OUTPUT_SET_PROPERTY_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_get_property(tdm_output *output, unsigned int id, - tdm_value *value) -{ - (void)output; - (void)id; - (void)value; - - if (OUTPUT_GET_PROPERTY_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_wait_vblank(tdm_output *output, int interval, int sync, - void *user_data) -{ - (void)output; - (void)interval; - (void)sync; - (void)user_data; - - free(user_data); - if (OUTPUT_WAIT_VBLANK_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_set_vblank_handler(tdm_output *output, - tdm_output_vblank_handler func) -{ - (void)output; - (void)func; - - if (OUTPUT_SET_VBLANK_HANDLER) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_commit(tdm_output *output, int sync, void *user_data) -{ - (void)output; - (void)sync; - - free(user_data); - if (OUTPUT_COMMIT_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_set_commit_handler(tdm_output *output, - tdm_output_commit_handler func) -{ - (void)output; - (void)func; - - if (OUTPUT_SET_COMMIT_HANDLER) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_set_mode(tdm_output *output, const tdm_output_mode *mode) -{ - (void)output; - (void)mode; - - if (OUTPUT_SET_MODE_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_set_dpms(tdm_output *output, tdm_output_dpms dpms_value) -{ - (void)output; - (void)dpms_value; - - if (OUTPUT_SET_DPMS_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value) -{ - (void)output; - (void)dpms_value; - - if (OUTPUT_GET_DPMS_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error layer_set_property(tdm_layer *layer, unsigned int id, - tdm_value value) -{ - (void)layer; - (void)id; - (void)value; - - if (LAYER_SET_PROPERTY_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error layer_get_property(tdm_layer *layer, unsigned int id, - tdm_value *value) -{ - (void)layer; - (void)id; - (void)value; - - if (LAYER_GET_PROPERTY_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error layer_set_info(tdm_layer *layer, tdm_info_layer *info) -{ - (void)layer; - (void)info; - - if (LAYER_SET_INFO_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer) -{ - (void)layer; - (void)buffer; - - if (LAYER_SET_BUFFER_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error layer_unset_buffer(tdm_layer *layer) -{ - (void)layer; - - if (LAYER_UNSET_BUFFER_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error layer_set_video_pos(tdm_layer *layer, int zpos) -{ - (void)layer; - (void)zpos; - - if (LAYER_SET_VIDEO_POS_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error pp_set_info(tdm_pp *pp, tdm_info_pp *info) -{ - (void)pp; - (void)info; - - if (PP_SET_INFO_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error pp_commit(tdm_pp *pp) -{ - (void)pp; - - if (PP_COMMIT_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -tdm_error output_set_dpms_handler(tdm_output *output, - tdm_output_dpms_handler func, - void *user_data) -{ - return TDM_ERROR_NONE; -} - -tdm_error layer_get_buffer_flags(tdm_layer *layer, unsigned int *flags) -{ - (void)layer; - - *flags = layer_get_buffer_flags_ret; - - return TDM_ERROR_NONE; -} - -tdm_error capture_attach(tdm_capture *capture, tbm_surface_h buffer) -{ - (void)capture; - (void)buffer; - - if (CAPTURE_ATTACH_ERROR) - return TDM_ERROR_OPERATION_FAILED; - - return TDM_ERROR_NONE; -} diff --git a/utests/stubs/stub_backend.h b/utests/stubs/stub_backend.h deleted file mode 100644 index a9c30d9..0000000 --- a/utests/stubs/stub_backend.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef _TDM_BACKEND_STUBS_H -#define _TDM_BACKEND_STUBS_H - -#include "tdm_types.h" - -#include "tdm_backend.h" - -extern int OUTPUT_CREATE_CAPTURE_ERROR; -extern int CAPTURE_SET_DONE_HANDLER_ERROR; -extern int LAYER_CREATE_CAPTURE_ERROR; -extern int CAPTURE_SET_INFO_ERROR; -extern int CAPTURE_ATTACH_ERROR; -extern int CAPTURE_COMMIT_ERROR; -extern int OUTPUT_SET_PROPERTY_ERROR; -extern int OUTPUT_GET_PROPERTY_ERROR; -extern int OUTPUT_WAIT_VBLANK_ERROR; -extern int OUTPUT_SET_VBLANK_HANDLER; -extern int OUTPUT_COMMIT_ERROR; -extern int OUTPUT_SET_COMMIT_HANDLER; -extern int OUTPUT_SET_MODE_ERROR; -extern int OUTPUT_SET_DPMS_ERROR; -extern int OUTPUT_GET_DPMS_ERROR; -extern int LAYER_SET_PROPERTY_ERROR; -extern int LAYER_GET_PROPERTY_ERROR; -extern int LAYER_SET_INFO_ERROR; -extern int LAYER_SET_BUFFER_ERROR; -extern int LAYER_UNSET_BUFFER_ERROR; -extern int LAYER_SET_VIDEO_POS_ERROR; -extern int PP_SET_INFO_ERROR; -extern int PP_COMMIT_ERROR; -extern unsigned int layer_get_buffer_flags_ret; -extern int capture_destroy_is_called; - -void stub_backend_init(); - -tdm_capture *output_create_capture(tdm_output *output, tdm_error *error); - -void capture_destroy(tdm_capture *capture); - -tdm_error capture_set_done_handler(tdm_capture *capture, - tdm_capture_done_handler func, void *user_data); - -tdm_capture *layer_create_capture(tdm_layer *layer, tdm_error *error); - -tdm_error capture_set_info(tdm_capture *capture, tdm_info_capture *info); -tdm_error capture_commit(tdm_capture *capture); - -tdm_error output_set_property(tdm_output *output, unsigned int id, - tdm_value value); - -tdm_error output_get_property(tdm_output *output, unsigned int id, - tdm_value *value); - -tdm_error output_wait_vblank(tdm_output *output, int interval, int sync, - void *user_data); - -tdm_error output_set_vblank_handler(tdm_output *output, - tdm_output_vblank_handler func); - -tdm_error output_commit(tdm_output *output, int sync, void *user_data); - -tdm_error output_set_commit_handler(tdm_output *output, - tdm_output_commit_handler func); - -tdm_error output_set_mode(tdm_output *output, const tdm_output_mode *mode); - -tdm_error output_set_dpms(tdm_output *output, tdm_output_dpms dpms_value); - -tdm_error output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value); - -tdm_error layer_set_property(tdm_layer *layer, unsigned int id, - tdm_value value); - -tdm_error layer_get_property(tdm_layer *layer, unsigned int id, - tdm_value *value); - -tdm_error layer_set_info(tdm_layer *layer, tdm_info_layer *info); - -tdm_error layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer); - -tdm_error layer_unset_buffer(tdm_layer *layer); - -tdm_error layer_set_video_pos(tdm_layer *layer, int zpos); - -tdm_error pp_set_info(tdm_pp *pp, tdm_info_pp *info); - -tdm_error pp_commit(tdm_pp *pp); - -tdm_error output_set_dpms_handler(tdm_output *output, - tdm_output_dpms_handler func, - void *user_data); - -tdm_error layer_get_buffer_flags(tdm_layer *layer, unsigned int *flags); - -tdm_error capture_attach(tdm_capture *capture, tbm_surface_h buffer); - -#endif /* _TDM_CAPTURE_STUBS_H */ diff --git a/utests/stubs/stub_dlfcn.cpp b/utests/stubs/stub_dlfcn.cpp deleted file mode 100644 index 7d7d964..0000000 --- a/utests/stubs/stub_dlfcn.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#define STUB_DLFCN_IMPL -#include "stub_dlfcn.h" - -struct _dlfcn_stub_ctrl stub_dlfcn_ctrl; - -void stub_dlfcn_init() -{ - stub_dlfcn_ctrl.dlsym_returned_val = 0; - stub_dlfcn_ctrl.dlopen_returned_val = 0; -} - -void *stub_dlopen(const char *file, int mode) -{ - return stub_dlfcn_ctrl.dlopen_returned_val; -} - -int stub_dlclose(void * handle) -{ - return 0; -} - -void *stub_dlsym(void *handle, const char *name) -{ - return stub_dlfcn_ctrl.dlsym_returned_val; -} - diff --git a/utests/stubs/stub_dlfcn.h b/utests/stubs/stub_dlfcn.h deleted file mode 100644 index ef7a473..0000000 --- a/utests/stubs/stub_dlfcn.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _DLFCN_STUBS_H_ -#define _DLFCN_STUBS_H_ - -#include - -struct _dlfcn_stub_ctrl { - void* dlsym_returned_val; - void* dlopen_returned_val; -}; - -extern struct _dlfcn_stub_ctrl stub_dlfcn_ctrl; - -void stub_dlfcn_init(); - -void *stub_dlopen (const char * file, int mode); -int stub_dlclose (void * handle); -void *stub_dlsym (void * handle, const char *name); - -#ifndef STUB_DLFCN_IMPL - #define dlopen stub_dlopen - #define dlclose stub_dlclose - #define dlsym stub_dlsym -#endif - -#endif /* _DLFCN_STUBS_H_ */ diff --git a/utests/stubs/stub_fcntl.h b/utests/stubs/stub_fcntl.h deleted file mode 100644 index 55a0fdc..0000000 --- a/utests/stubs/stub_fcntl.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef STUB_FCNTL_H -#define STUB_FCNTL_H - -static int FCNTL_ERROR; - -static void stub_fcntl_init() -{ - FCNTL_ERROR = 0; -} - -static int stub_fcntl(int fd, int cmd, ...) -{ - (void)fd; - (void)cmd; - - if (FCNTL_ERROR) { - FCNTL_ERROR = 0; - return -1; - } - - return 0; -} - -#define fcntl stub_fcntl - -#endif // STUB_FCNTL_H diff --git a/utests/stubs/stub_pthread.cpp b/utests/stubs/stub_pthread.cpp deleted file mode 100644 index becaf96..0000000 --- a/utests/stubs/stub_pthread.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include - -int PTHREAD_MUTEX_INIT_ERROR; - -void stub_pthread_init() -{ - PTHREAD_MUTEX_INIT_ERROR = 0; -} - -int stub_pthread_mutex_lock(pthread_mutex_t * __mutex) -{ - (void)__mutex; - - return 0; -} - -int stub_pthread_mutex_unlock(pthread_mutex_t * __mutex) -{ - (void)__mutex; - - return 0; -} - -int stub_pthread_mutex_init(pthread_mutex_t * __mutex, - const pthread_mutexattr_t * __mutexattr) -{ - (void)__mutex; - (void)__mutexattr; - - if (PTHREAD_MUTEX_INIT_ERROR) { - return PTHREAD_MUTEX_INIT_ERROR; - } - - return 0; -} - -int stub_pthread_create(pthread_t *newthread, const pthread_attr_t *attr, - void *(*start_routine) (void *), void *arg) -{ - (void)newthread; - (void)attr; - (void)start_routine; - (void)arg; - - return 0; -} - -int stub_pthread_join(pthread_t th, void **thread_return) -{ - (void)th; - (void)thread_return; - - return 0; -} - -int stub_pthread_cancel(pthread_t th) -{ - (void)th; - - return 0; -} diff --git a/utests/stubs/stub_pthread.h b/utests/stubs/stub_pthread.h deleted file mode 100644 index c5a9351..0000000 --- a/utests/stubs/stub_pthread.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _PTHREAD_STUBS_H -#define _PTHREAD_STUBS_H - -#include -#include - -extern int PTHREAD_MUTEX_INIT_ERROR; - -void stub_pthread_init(); - -int stub_pthread_mutex_lock(pthread_mutex_t * __mutex); - -int stub_pthread_mutex_unlock(pthread_mutex_t * __mutex); - -int stub_pthread_mutex_init(pthread_mutex_t * __mutex, - const pthread_mutexattr_t * __mutexattr); - -int stub_pthread_create(pthread_t *newthread, const pthread_attr_t *attr, - void *(*start_routine)(void *), void *arg); - -int stub_pthread_join(pthread_t th, void **thread_return); - -int stub_pthread_cancel (pthread_t th); - -#define pthread_mutex_lock stub_pthread_mutex_lock -#define pthread_mutex_init stub_pthread_mutex_init -#define pthread_mutex_unlock stub_pthread_mutex_unlock -#define pthread_create stub_pthread_create -#define pthread_join stub_pthread_join -#define pthread_cancel stub_pthread_cancel - -#endif /* _PTHREAD_STUBS_H */ diff --git a/utests/stubs/stub_stdio.h b/utests/stubs/stub_stdio.h deleted file mode 100644 index 8f3144c..0000000 --- a/utests/stubs/stub_stdio.h +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef STUB_STDIO_H -#define STUB_STDIO_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -static struct _open_close_stub_ctrl { - int fopen_fd_returned; - int fclose_error; - int fclose_colled; - int close_error; - int close_colled; -} open_close_stub_ctrl; - -static int SSCANF_ERROR; - -static void stub_stdio_init() -{ - SSCANF_ERROR = 0; - open_close_stub_ctrl.fopen_fd_returned = 1; - open_close_stub_ctrl.fclose_error = 0; - open_close_stub_ctrl.fclose_colled = 0; - open_close_stub_ctrl.close_error = 0; - open_close_stub_ctrl.close_colled = 0; -} - -static int stub_sscanf(const char *buf, const char *format, ...) -{ - (void)buf; - (void)format; - - if (SSCANF_ERROR) { - return -1; - } - - return 0; -} - -#ifndef O_RDWR -#define O_RDWR 02 /* copy from */ -#endif -#ifndef O_ -#define O_CLOEXEC 02000000 /* copy from */ -#endif - -static FILE *stub_fopen (const char *filename, const char *modes) -{ - if (filename == NULL) - return NULL; - static FILE f; - return &f; -} - -static int stub_fclose (FILE *__stream) -{ - if (open_close_stub_ctrl.fclose_error) - return -1; - if (__stream == NULL) - return -1; - - open_close_stub_ctrl.fclose_colled = 1; - return 1; -} - -static int stub_fflush (FILE *__stream) -{ - return 1; -} - -static int stub_fileno (FILE *__stream) -{ - return 1; -} - -static int stub_setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) -{ - return 1; -} - -static size_t stub_fwrite (const void * ptr, size_t size, - size_t n, FILE *s) -{ - return size; -} - -#ifdef open - #undef open -#endif -#define fopen stub_fopen -#define fclose stub_fclose -#define fflush stub_fflush -#define fileno stub_fileno -#define setvbuf stub_setvbuf -#define sscanf stub_sscanf -#define fwrite stub_fwrite - -#ifdef __cplusplus -} -#endif - - -#endif // STUB_STDIO_H diff --git a/utests/stubs/stub_stdlib.cpp b/utests/stubs/stub_stdlib.cpp deleted file mode 100644 index 55405a7..0000000 --- a/utests/stubs/stub_stdlib.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#define STUB_STDLIB_IMPL - -#include "stub_stdlib.h" - -int CALLOC_ERROR; -int CALLOC_RETURN_BUFFER; -int FREE_CALLED; -int GETENV_ERROR; -int SETENV_ERROR; - -char *stub_getenv_return_value; -int stub_getenv_return_real_value; -int stub_setenv_real; -char *stub_getenv_name; -int stub_free_call_count; - -tdm_buffer_info buffer; - -void *stub_calloc(size_t nmemb, size_t size) -{ - if (CALLOC_ERROR) { - return NULL; - } - - if (CALLOC_RETURN_BUFFER) { - return &buffer; - } - - return calloc(nmemb, size); -} - -void stub_free(void *ptr) -{ - FREE_CALLED = 1; - stub_free_call_count++; - free(ptr); -} - -char *stub_getenv(const char *name) -{ - if (stub_getenv_return_real_value) - return getenv(name); - - if (GETENV_ERROR) { - return NULL; - } - - if(!stub_getenv_name || !name) { - return NULL; - } - - if (!strcmp(stub_getenv_name, name)) { - return stub_getenv_return_value; - } - - return NULL; -} - -int stub_setenv(const char *name, const char *value, int replace) -{ - if (stub_setenv_real) - return setenv(name, value, replace); - - if (SETENV_ERROR) - return 1; - - stub_getenv_name = name; - stub_getenv_return_value = value; - - return 0; -} - -void stub_stdlib_init() -{ - CALLOC_ERROR = 0; - CALLOC_RETURN_BUFFER = 0; - FREE_CALLED = 0; - GETENV_ERROR = 0; - stub_getenv_return_value = NULL; - stub_getenv_name = NULL; - stub_getenv_return_real_value = 0; - stub_free_call_count = 0; -} diff --git a/utests/stubs/stub_stdlib.h b/utests/stubs/stub_stdlib.h deleted file mode 100644 index e923976..0000000 --- a/utests/stubs/stub_stdlib.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _STDLIB_STUBS_H -#define _STDLIB_STUBS_H - -#include -#include "tdm.h" -#include "tdm_private.h" - -extern int CALLOC_ERROR; -extern int CALLOC_RETURN_BUFFER; -extern int FREE_CALLED; -extern int GETENV_ERROR; -extern int SETENV_ERROR; - -extern tdm_buffer_info buffer; -extern char *stub_getenv_return_value; -extern char *stub_getenv_name; -extern int stub_getenv_return_real_value; -extern int stub_free_call_count; - -void *stub_calloc(size_t nmemb, size_t size); - -void stub_free(void *ptr); - -char *stub_getenv(const char *name); -int stub_setenv (const char *name, const char *value, int replace); - -void stub_stdlib_init(); - -#ifndef STUB_STDLIB_IMPL -#define calloc stub_calloc -#define free stub_free -#define getenv stub_getenv -#define setenv stub_setenv -#endif - -#endif /* _STDLIB_STUBS_H */ diff --git a/utests/stubs/stub_tdm.h b/utests/stubs/stub_tdm.h deleted file mode 100644 index d30fd30..0000000 --- a/utests/stubs/stub_tdm.h +++ /dev/null @@ -1,104 +0,0 @@ -#ifndef STUB_TDM_H -#define STUB_TDM_H - -#include - -static tdm_private_output stub_private_output; -static int stub_tdm_vblank_handler_call_count; -static int stub_tdm_output_change_handler_count; -static int stub_tdm_output_commit_handler_count; -static int stub_tdm_buffer_release_handler_count; - -static void -stub_tdm_init() -{ - stub_tdm_vblank_handler_call_count = 0; - stub_tdm_output_change_handler_count = 0; - stub_tdm_output_commit_handler_count = 0; - stub_tdm_buffer_release_handler_count = 0; -} - -static tdm_private_output* -stub_tdm_display_find_output_stamp(tdm_private_display *private_display, double stamp) -{ - (void)private_display; - (void)stamp; - - return &stub_private_output; -} - -static void -stub_tdm_vblank_handler(tdm_vblank *vblank, tdm_error error, unsigned int sequence, - unsigned int tv_sec, unsigned int tv_usec, void *user_data) -{ - (void)vblank; - (void)error; - (void)sequence; - (void)tv_sec; - (void)tv_usec; - (void)user_data; - - stub_tdm_vblank_handler_call_count++; -} - -static tdm_error -stub_tdm_display_update_output(tdm_private_display *private_display, - tdm_output *output_backend, int pipe) -{ - (void)private_display; - (void)output_backend; - (void)pipe; - - return TDM_ERROR_NONE; -} - -static void -stub_tdm_output_change_handler_cb(tdm_output *output, - tdm_output_change_type type, - tdm_value value, - void *user_data) -{ - (void)output; - (void)type; - (void)value; - (void)user_data; - - stub_tdm_output_change_handler_count++; -} - -static void -stub_tdm_output_commit_handler(tdm_output *output, unsigned int sequence, - unsigned int tv_sec, unsigned int tv_usec, - void *user_data) -{ - (void)output; - (void)sequence; - (void)tv_sec; - (void)tv_usec; - (void)tv_usec; - (void)user_data; - - stub_tdm_output_commit_handler_count++; -} - -static void -stub_tdm_buffer_release_handler(tbm_surface_h buffer, void *user_data) -{ - (void)buffer; - (void)user_data; - - stub_tdm_buffer_release_handler_count++; -} - -static void -stub_tdm_buffer_destroy_handler(tbm_surface_h buffer, - void *user_data) -{ - (void)buffer; - (void)user_data; -} - -#define tdm_display_find_output_stamp stub_tdm_display_find_output_stamp -#define tdm_display_update_output stub_tdm_display_update_output - -#endif // STUB_TDM_H diff --git a/utests/stubs/stub_tdm_buffer.h b/utests/stubs/stub_tdm_buffer.h deleted file mode 100644 index 81d76ef..0000000 --- a/utests/stubs/stub_tdm_buffer.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef STUB_TDM_BUFFER_H -#define STUB_TDM_BUFFER_H - -static int stub_tdm_buffer_unref_backend_count; -static int stub_tdm_buffer_remove_release_handler_internal_count; - -static void stub_tdm_buffer_init() -{ - stub_tdm_buffer_unref_backend_count = 0; - stub_tdm_buffer_remove_release_handler_internal_count = 0; -} - -static tbm_surface_h stub_tdm_buffer_ref_backend(tbm_surface_h buffer) -{ - (void)buffer; - - return NULL; -} - -static void stub_tdm_buffer_unref_backend(tbm_surface_h buffer) -{ - (void)buffer; - - stub_tdm_buffer_unref_backend_count++; -} - -static void -stub_tdm_buffer_remove_release_handler_internal(tbm_surface_h buffer) -{ - stub_tdm_buffer_remove_release_handler_internal_count++; -} - -#define tdm_buffer_ref_backend stub_tdm_buffer_ref_backend -#define tdm_buffer_unref_backend stub_tdm_buffer_unref_backend -#define tdm_buffer_remove_release_handler_internal stub_tdm_buffer_remove_release_handler_internal - -#endif // STUB_TDM_BUFFER_H diff --git a/utests/stubs/stub_tdm_capture.h b/utests/stubs/stub_tdm_capture.h deleted file mode 100644 index f7bf741..0000000 --- a/utests/stubs/stub_tdm_capture.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef STUB_TDM_CAPTURE_H -#define STUB_TDM_CAPTURE_H - -#include "tdm.h" -#include "tdm_private.h" - -static tdm_private_capture private_capture; -static int TDM_CAPTURE_CREATE_OUTPUT_INTENAL_ERROR; -static int CAPTURE_CREATE_LAYER_INTERNAL_ERROR; -static int stub_tdm_capture_cb_done_called; - -static void stub_tdm_capture_init() -{ - stub_tdm_capture_cb_done_called = 0; - TDM_CAPTURE_CREATE_OUTPUT_INTENAL_ERROR = 0; - CAPTURE_CREATE_LAYER_INTERNAL_ERROR = 0; -} - -static void -stub_tdm_capture_cb_done(tdm_capture *capture_backend, tbm_surface_h buffer, - void *user_data) -{ - (void)capture_backend; - (void)buffer; - (void)user_data; - - stub_tdm_capture_cb_done_called = 1; -} - -static tdm_private_capture * -stub_tdm_capture_find_stamp(tdm_private_display *private_display, double stamp) -{ - (void)private_display; - (void)stamp; - - return &private_capture; -} - -static tdm_private_capture * -stub_tdm_capture_create_output_internal(tdm_private_output*private_output, - tdm_error *error) -{ - (void)private_output; - (void)error; - - if (TDM_CAPTURE_CREATE_OUTPUT_INTENAL_ERROR) { - *error = TDM_ERROR_OPERATION_FAILED; - return NULL; - } - - *error = TDM_ERROR_NONE; - return NULL; -} - -static tdm_private_capture * -stub_tdm_capture_create_layer_internal(tdm_private_layer *private_layer, - tdm_error *error) -{ - (void)private_layer; - (void)error; - - if (CAPTURE_CREATE_LAYER_INTERNAL_ERROR) { - *error = TDM_ERROR_OPERATION_FAILED; - return NULL; - } - - *error = TDM_ERROR_NONE; - return NULL; -} - -#define tdm_capture_cb_done stub_tdm_capture_cb_done -#define tdm_capture_find_stamp stub_tdm_capture_find_stamp -#define tdm_capture_create_output_internal stub_tdm_capture_create_output_internal -#define tdm_capture_create_layer_internal stub_tdm_capture_create_layer_internal - -#endif // STUB_TDM_CAPTURE_H diff --git a/utests/stubs/stub_tdm_display.h b/utests/stubs/stub_tdm_display.h deleted file mode 100644 index 00a1ec0..0000000 --- a/utests/stubs/stub_tdm_display.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef STUB_TDM_DISPLAY_H -#define STUB_TDM_DISPLAY_H - -#include "tdm.h" - -#ifdef __cplusplus -extern "C" { -#endif - -static int stub_tdm_output_cb_commit_called; -static int stub_tdm_output_cb_vblank_called; -static int stub_tdm_output_cb_status_called; -static int stub_tdm_output_cb_dpms_called; -static int stub_tdm_output_get_mode_error; -static tdm_output_mode stub_tdm_mode; -static tdm_output_change_handler stub_tdm_output_change_handler; -static tdm_output_dpms stub_tdm_dpms_returned_value; -static int stub_tdm_output_wait_vblank_error; - -static void -stub_tdm_display_init() -{ - stub_tdm_output_cb_commit_called = 0; - stub_tdm_output_cb_vblank_called = 0; - stub_tdm_output_cb_dpms_called = 0; - stub_tdm_output_get_mode_error = 0; - stub_tdm_output_change_handler = NULL; - stub_tdm_dpms_returned_value = TDM_OUTPUT_DPMS_ON; - stub_tdm_mode.vrefresh = 24; - stub_tdm_output_wait_vblank_error = 0; -} - -static void -stub_tdm_output_cb_commit(tdm_output *output_backend, unsigned int sequence, - unsigned int tv_sec, unsigned int tv_usec, void *user_data) -{ - (void)output_backend; - (void)sequence; - (void)tv_sec; - (void)tv_usec; - (void)user_data; - - stub_tdm_output_cb_commit_called = 1; -} - -static void -stub_tdm_output_cb_vblank(tdm_output *output_backend, unsigned int sequence, - unsigned int tv_sec, unsigned int tv_usec, void *user_data) -{ - (void)output_backend; - (void)sequence; - (void)tv_sec; - (void)tv_usec; - (void)user_data; - - stub_tdm_output_cb_vblank_called = 1; -} - -static void -stub_tdm_output_cb_status(tdm_output *output_backend, tdm_output_conn_status status, - void *user_data) -{ - (void)output_backend; - (void)status; - (void)user_data; - - stub_tdm_output_cb_status_called = 1; -} - -static void -stub_tdm_output_cb_dpms(tdm_output *output_backend, tdm_output_dpms dpms, void *user_data) -{ - (void)output_backend; - (void)dpms; - (void)user_data; - - stub_tdm_output_cb_dpms_called = 1; -} - -static tdm_error -stub_tdm_output_get_mode(tdm_output *output, const tdm_output_mode **mode) -{ - if (stub_tdm_output_get_mode_error) { - *mode = NULL; - return TDM_ERROR_OPERATION_FAILED; - } - - *mode = &stub_tdm_mode; - - return TDM_ERROR_NONE; -} - -static tdm_error -stub_tdm_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value) -{ - (void)output; - - *dpms_value = stub_tdm_dpms_returned_value; - return TDM_ERROR_NONE; -} - -static tdm_error -stub_tdm_output_add_change_handler(tdm_output *output, - tdm_output_change_handler func, - void *user_data) -{ - (void)output; - (void)user_data; - - stub_tdm_output_change_handler = func; - - return TDM_ERROR_NONE; -} - -static void -stub_tdm_output_remove_change_handler(tdm_output *output, - tdm_output_change_handler func, - void *user_data) -{ - (void)output; - (void)user_data; - - stub_tdm_output_change_handler = func; -} - -static tdm_error -stub_tdm_output_wait_vblank(tdm_output *output, int interval, int sync, - tdm_output_vblank_handler func, void *user_data) -{ - if (stub_tdm_output_wait_vblank_error) - return TDM_ERROR_DPMS_OFF; - - return TDM_ERROR_NONE; -} - -#ifdef __cplusplus -} -#endif - -#define tdm_output_cb_commit stub_tdm_output_cb_commit -#define tdm_output_cb_vblank stub_tdm_output_cb_vblank -#define tdm_output_cb_status stub_tdm_output_cb_status -#define tdm_output_cb_dpms stub_tdm_output_cb_dpms -#define tdm_output_get_mode stub_tdm_output_get_mode -#define tdm_output_get_dpms stub_tdm_output_get_dpms -#define tdm_output_add_change_handler stub_tdm_output_add_change_handler -#define tdm_output_remove_change_handler stub_tdm_output_remove_change_handler -#define tdm_output_wait_vblank stub_tdm_output_wait_vblank - -#endif // STUB_TDM_DISPLAY_H diff --git a/utests/stubs/stub_tdm_event_loop.h b/utests/stubs/stub_tdm_event_loop.h deleted file mode 100644 index cfbd9c3..0000000 --- a/utests/stubs/stub_tdm_event_loop.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef STUB_TDM_EVENT_LOOP_H -#define STUB_TDM_EVENT_LOOP_H - -#include "tdm_backend.h" - -static int TDM_EVENT_LOOP_DISPATCH_ERROR; -static tdm_event_loop_source *stub_tdm_event_loop_removed_source; -static int stub_tdm_event_loop_source_timer_update_error; -static int stub_tdm_event_loop_add_timer_handler_error; - -static void stub_tdm_event_loop_init() -{ - stub_tdm_event_loop_removed_source = NULL; - TDM_EVENT_LOOP_DISPATCH_ERROR = 0; - stub_tdm_event_loop_source_timer_update_error = 0; - stub_tdm_event_loop_add_timer_handler_error = 0; -} - -static int stub_tdm_event_loop_get_fd(tdm_private_display *private_display) -{ - (void)private_display; - - return 1; -} - -static tdm_error stub_tdm_event_loop_dispatch(tdm_private_display *private_display) -{ - (void)private_display; - - if (TDM_EVENT_LOOP_DISPATCH_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -static void stub_tdm_event_loop_source_remove(tdm_event_loop_source *source) -{ - (void)source; - - stub_tdm_event_loop_removed_source = source; -} - -static tdm_error -stub_tdm_event_loop_source_timer_update(tdm_event_loop_source *source, unsigned int ms_delay) -{ - (void)source; - (void)ms_delay; - - if (stub_tdm_event_loop_source_timer_update_error) - return TDM_ERROR_OPERATION_FAILED; - - return TDM_ERROR_NONE; -} - -static tdm_event_loop_source * -stub_tdm_event_loop_add_timer_handler(tdm_display *dpy, tdm_event_loop_timer_handler func, - void *user_data, tdm_error *error) -{ - if (stub_tdm_event_loop_add_timer_handler_error) - return NULL; - - return (tdm_event_loop_source *)56544545; -} - -#define tdm_event_loop_get_fd stub_tdm_event_loop_get_fd -#define tdm_event_loop_dispatch stub_tdm_event_loop_dispatch -#define tdm_event_loop_source_remove stub_tdm_event_loop_source_remove -#define tdm_event_loop_source_timer_update stub_tdm_event_loop_source_timer_update -#define tdm_event_loop_add_timer_handler stub_tdm_event_loop_add_timer_handler - -#endif // STUB_TDM_EVENT_LOOP_H diff --git a/utests/stubs/stub_tdm_helper.h b/utests/stubs/stub_tdm_helper.h deleted file mode 100644 index 3754019..0000000 --- a/utests/stubs/stub_tdm_helper.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef STUB_TDM_HELPER_H -#define STUB_TDM_HELPER_H - -#ifdef __cplusplus -extern "C" { -#endif - -static double stub_tdm_helper_get_time_ret_val; - -static void -stub_tdm_helper_init() -{ - struct timespec tp; - - if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0) - stub_tdm_helper_get_time_ret_val = (double)tp.tv_sec + ((double)tp.tv_nsec) / 1000000000.0; - else - stub_tdm_helper_get_time_ret_val = 0; -} - -static double -stub_tdm_helper_get_time(void) -{ - return stub_tdm_helper_get_time_ret_val; -} - -static void -stub_tdm_helper_dump_buffer_str(tbm_surface_h buffer, char *dir, char *str) -{ - -} - -#ifdef __cplusplus -} -#endif - -#define tdm_helper_get_time_ret_val stub_tdm_helper_get_time_ret_val -#define tdm_helper_get_time stub_tdm_helper_get_time -#define tdm_helper_dump_buffer_str stub_tdm_helper_dump_buffer_str - -#endif // STUB_TDM_HELPER_H diff --git a/utests/stubs/stub_tdm_pp.h b/utests/stubs/stub_tdm_pp.h deleted file mode 100644 index ae43a4c..0000000 --- a/utests/stubs/stub_tdm_pp.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef STUB_TDM_PP_H -#define STUB_TDM_PP_H - -#include "tdm.h" -#include "tdm_private.h" - -static tdm_private_pp private_pp; - -static int TDM_PP_CREATE_INTERNAL_ERROR; -static int stub_tdm_pp_cb_done_called; - -static void stub_tdm_pp_init() -{ - stub_tdm_pp_cb_done_called = 0; - TDM_PP_CREATE_INTERNAL_ERROR = 0; -} - -static void -stub_tdm_pp_cb_done(tdm_pp *pp_backend, tbm_surface_h src, tbm_surface_h dst, - void *user_data) -{ - (void)pp_backend; - (void)src; - (void)dst; - (void)user_data; - - stub_tdm_pp_cb_done_called = 1; -} - -static tdm_private_pp * -stub_tdm_pp_find_stamp(tdm_private_display *private_display, double stamp) -{ - (void)private_display; - (void)stamp; - - return &private_pp; -} - -static tdm_private_pp * -stub_tdm_pp_create_internal(tdm_private_display *private_display, - tdm_error *error) -{ - (void)private_display; - - if (TDM_PP_CREATE_INTERNAL_ERROR) { - if (error) { - *error = TDM_ERROR_OPERATION_FAILED; - } - return NULL; - } - - if (error) { - *error = TDM_ERROR_NONE; - } - return NULL; -} - -#define tdm_pp_cb_done stub_tdm_pp_cb_done -#define tdm_pp_find_stamp stub_tdm_pp_find_stamp -#define tdm_pp_create_internal stub_tdm_pp_create_internal - -#endif // STUB_TDM_PP_H diff --git a/utests/stubs/stub_tdm_server.h b/utests/stubs/stub_tdm_server.h deleted file mode 100644 index a65da9e..0000000 --- a/utests/stubs/stub_tdm_server.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef STUB_TDM_SERVER_H -#define STUB_TDM_SERVER_H - -#include "tdm.h" -#include "tdm_private.h" - -#ifdef __cplusplus -extern "C" { -#endif - -static int stdub_tdm_server_init_error; - -static void -stub_tdm_server() -{ - stdub_tdm_server_init_error = 0; -} - -static tdm_error -stub_tdm_server_init(tdm_private_loop *private_loop) -{ - if (stdub_tdm_server_init_error) - return TDM_ERROR_OPERATION_FAILED; - return TDM_ERROR_NONE; -} - -static void -stub_tdm_server_deinit(tdm_private_loop *private_loop) -{ - -} - -#ifdef __cplusplus -} -#endif - -#define tdm_server_init stub_tdm_server_init -#define tdm_server_deinit stub_tdm_server_deinit - -#endif // STUB_TDM_SERVER_H diff --git a/utests/stubs/stub_tdm_thread.h b/utests/stubs/stub_tdm_thread.h deleted file mode 100644 index 1098320..0000000 --- a/utests/stubs/stub_tdm_thread.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef STUB_TDM_THREAD_H -#define STUB_TDM_THREAD_H - -#include "tdm_private.h" -#include - -static int TDM_THREAD_HANDLE_ERROR; -static int stub_tdm_thread_send_cb_error; -static char stub_tdm_thread_send_cb_buff[1024]; -static int stub_tdm_thread_is_run; -static int stub_tdm_thread_ret_fd; -static int stub_tdm_thread_display_thread; -static int stub_tdm_output_vblank_handler_count; -static int stub_tdm_thread_init_init_error; - -static void stub_tdm_thread_init() -{ - TDM_THREAD_HANDLE_ERROR = 0; - stub_tdm_thread_send_cb_error = 0; - memset(stub_tdm_thread_send_cb_buff, 0, 1024); - stub_tdm_thread_is_run = 0; - stub_tdm_thread_ret_fd = 1; - stub_tdm_thread_display_thread = 0; - stub_tdm_output_vblank_handler_count = 0; - stub_tdm_thread_init_init_error = 0; -} - -static int stub_tdm_thread_get_fd(tdm_private_loop *private_loop) -{ - (void)private_loop; - - return stub_tdm_thread_ret_fd; -} - -static tdm_error stub_tdm_thread_handle_cb(tdm_private_loop *private_loop) -{ - (void)private_loop; - - if (TDM_THREAD_HANDLE_ERROR) { - return TDM_ERROR_OPERATION_FAILED; - } - - return TDM_ERROR_NONE; -} - -static tdm_error -stub_tdm_thread_send_cb(tdm_private_loop *private_loop, tdm_thread_cb_base *base) -{ - if (stub_tdm_thread_send_cb_error) - return TDM_ERROR_OPERATION_FAILED; - - memcpy(stub_tdm_thread_send_cb_buff, base, base->length); - - return TDM_ERROR_NONE; -} - -static int -stub_tdm_thread_is_running(void) -{ - return (stub_tdm_thread_is_run) ? 1 : 0; -} - -static int -stub_tdm_thread_in_display_thread(pid_t tid) -{ - (void)tid; - - return (stub_tdm_thread_display_thread) ? 1 : 0; -} - -static void -stub_tdm_output_vblank_handler(tdm_output *output, unsigned int sequence, - unsigned int tv_sec, unsigned int tv_usec, - void *user_data) -{ - (void)output; - (void)sequence; - (void)tv_sec; - (void)tv_usec; - (void)user_data; - - stub_tdm_output_vblank_handler_count++; -} - -/* XXX: named stub_tdm_thread_init_init since stub_tdm_thread_init has been - defined earlier */ -static tdm_error -stub_tdm_thread_init_init(tdm_private_loop *private_loop) -{ - if (stub_tdm_thread_init_init_error) - return TDM_ERROR_OPERATION_FAILED; - return TDM_ERROR_NONE; -} - -#define tdm_thread_get_fd stub_tdm_thread_get_fd -#define tdm_thread_handle_cb stub_tdm_thread_handle_cb -#define tdm_thread_send_cb stub_tdm_thread_send_cb -#define tdm_thread_is_running stub_tdm_thread_is_running -#define tdm_thread_in_display_thread stub_tdm_thread_in_display_thread -#define tdm_thread_init stub_tdm_thread_init_init - -#endif // STUB_TDM_THREAD_H diff --git a/utests/stubs/stub_tdm_vblank.h b/utests/stubs/stub_tdm_vblank.h deleted file mode 100644 index 7b73d6c..0000000 --- a/utests/stubs/stub_tdm_vblank.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef STUB_TDM_VBLANK_H -#define STUB_TDM_VBLANK_H - -#include "tdm.h" - -static int stub_tdm_vblank_cb_vblank_SW_called; -static int stub_tdm_vblank_wait_error; -static tdm_vblank* stub_tdm_vblank_create_returned = NULL; - -static void -stub_tdm_vblank_init() -{ - stub_tdm_vblank_cb_vblank_SW_called = 0; - stub_tdm_vblank_create_returned = NULL; - stub_tdm_vblank_wait_error = 0; -} - -static tdm_error -stub_tdm_vblank_cb_vblank_SW(tdm_vblank *vblank, double vblank_stamp) -{ - (void)vblank; - (void)vblank_stamp; - - stub_tdm_vblank_cb_vblank_SW_called = 1; - return TDM_ERROR_NONE; -} - -static tdm_vblank* -stub_tdm_vblank_create(tdm_display *dpy, tdm_output *output, tdm_error *error) -{ - (void)dpy; - (void)output; - (void)error; - - return stub_tdm_vblank_create_returned; -} - -static void -stub_tdm_vblank_destroy(tdm_vblank *vblank) -{ - (void)vblank; -} - -static tdm_error -stub_tdm_vblank_set_fps(tdm_vblank *vblank, unsigned int fps) -{ - (void)vblank; - (void)fps; - - return TDM_ERROR_NONE; -} - -static unsigned int -stub_tdm_vblank_get_enable_fake(tdm_vblank *vblank) -{ - (void)vblank; - - return 0; -} - -static tdm_error -stub_tdm_vblank_wait(tdm_vblank *vblank, unsigned int req_sec, unsigned int req_usec, - unsigned int interval, tdm_vblank_handler func, void *user_data) -{ - (void)vblank; - (void)req_sec; - (void)req_usec; - (void)interval; - (void)func; - (void)user_data; - - if(stub_tdm_vblank_wait_error) - return TDM_ERROR_BAD_REQUEST; - - return TDM_ERROR_NONE; -} - - -#define tdm_vblank_cb_vblank_SW stub_tdm_vblank_cb_vblank_SW -#define tdm_vblank_wait stub_tdm_vblank_wait -#define tdm_vblank_get_enable_fake stub_tdm_vblank_get_enable_fake -#define tdm_vblank_set_fps stub_tdm_vblank_set_fps -#define tdm_vblank_destroy stub_tdm_vblank_destroy -#define tdm_vblank_create stub_tdm_vblank_create - -#endif // STUB_TDM_VBLANK_H diff --git a/utests/stubs/stub_unistd.cpp b/utests/stubs/stub_unistd.cpp deleted file mode 100644 index 33fcf6e..0000000 --- a/utests/stubs/stub_unistd.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include "stub_unistd.h" - -#include -#include - -int stub_pipe_error; -int stub_write_error; -int stub_syscall_return_value; -int stub_syscall_reset; -short stub_unistd_closed_fds[STUB_UNISTD_SIZE_FDS]; -void *stub_read_buf; -int stub_read_returned_size; -int stub_dub_error = 0; -int stub_poll_error; -int stub_poll_eagain; - -void stub_unistd_init() -{ - stub_pipe_error = 0; - stub_syscall_return_value = 1; - stub_syscall_reset = 0; - stub_write_error = 0; - stub_read_buf = NULL; - stub_read_returned_size = 0; - stub_dub_error = 0; - stub_poll_error = 0; - stub_poll_eagain = 0; - for(int i = 0; i < STUB_UNISTD_SIZE_FDS; ++i) { - stub_unistd_closed_fds[i] = 0; - } -} - -int stub_pipe(int pipedes[2]) -{ - if (stub_pipe_error) - return -1; - - return 0; -} - -long int stub_syscall(long int sysno, ...) -{ - (void)sysno; - long int ret = stub_syscall_return_value; - - if (stub_syscall_reset) - stub_syscall_return_value = 1; - - return ret; -} - -int stub_close(int fd) -{ - if (fd >= STUB_UNISTD_SIZE_FDS) { - return -1; - } - - stub_unistd_closed_fds[fd] = 1; - - return 0; -} - -ssize_t stub_write(int fd, const void *buf, size_t n) -{ - (void)fd; - (void)buf; - - if (stub_write_error) - return 0; - - return n; -} - -ssize_t stub_read(int fd, void *buf, size_t nbytes) -{ - if (!stub_read_buf) { - buf = NULL; - return 0; - } - - memcpy(buf, stub_read_buf, nbytes); - - return stub_read_returned_size; -} - -int stub_dup(int fd) -{ - (void)fd; - - if (stub_dub_error) { - return -1; - } - - return 5; -} - -int stub_dup2(int __fd, int __fd2) -{ - (void)__fd; - (void)__fd2; - - if (stub_dub_error) { - return -1; - } - - return 5; -} - -int stub_poll(struct pollfd *fds, nfds_t nfds, int timeout) -{ - (void)fds; - (void)nfds; - (void)timeout; - - if (stub_poll_eagain) { - stub_poll_eagain = 0; - errno = EAGAIN; - return -1; - } - if (stub_poll_error) { - errno = EPERM; - return -1; - } - - return 0; -} diff --git a/utests/stubs/stub_unistd.h b/utests/stubs/stub_unistd.h deleted file mode 100644 index e46afe9..0000000 --- a/utests/stubs/stub_unistd.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef STUB_UNISTD_H -#define STUB_UNISTD_H - -#include -#include - -#define STUB_UNISTD_SIZE_FDS 32 - -extern int stub_pipe_error; -extern int stub_syscall_return_value; -extern int stub_syscall_reset; -extern int stub_write_error; -extern short stub_unistd_closed_fds[STUB_UNISTD_SIZE_FDS]; -extern void *stub_read_buf; -extern int stub_read_returned_size; -extern int stub_dub_error; -extern int stub_poll_error; -extern int stub_poll_eagain; - -void stub_unistd_init(); - -int stub_pipe(int pipedes[2]); - -long int stub_syscall (long int sysno, ...); - -int stub_close(int fd); - -ssize_t stub_write(int fd, const void *buf, size_t n); - -ssize_t stub_read(int fd, void *buf, size_t nbytes); - -int stub_dup(int fd); -int stub_dup2(int __fd, int __fd2); - -int stub_poll(struct pollfd *fds, nfds_t nfds, int timeout); - -#define pipe(p) stub_pipe(p) -#define syscall(sysno, args...) stub_syscall(sysno, ##args) -#define close(fd) stub_close(fd) -#define write(fd, buf, n) stub_write(fd, buf, n) -#define read(fd, buf, nbytes) stub_read(fd, buf, nbytes) -#define dup(fd) stub_dup(fd) -#define dup2 stub_dup2 -#define poll(fds, nfds, timeout) stub_poll(fds, nfds, timeout) - -#endif // STUB_UNISTD_H diff --git a/utests/stubs/tbm_bufmgr.h b/utests/stubs/tbm_bufmgr.h deleted file mode 100644 index dc4fd59..0000000 --- a/utests/stubs/tbm_bufmgr.h +++ /dev/null @@ -1,1025 +0,0 @@ -#ifndef _TBM_BUFMGR_H_ -#define _TBM_BUFMGR_H_ - -#include -#include - -/* tbm error base : this error base is same as TIZEN_ERROR_TBM in tizen_error.h */ -#ifndef TBM_ERROR_BASE -#define TBM_ERROR_BASE -0x02830000 -#endif - -/** - * \file tbm_bufmgr.h - * \brief Tizen Buffer Manager - */ - -/** - * @brief Definition for the tizen buffer manager - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef struct _tbm_bufmgr *tbm_bufmgr; - -/** - * @brief Definition for the tizen buffer object - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef struct _tbm_bo *tbm_bo; -/** - * @brief Definition for the key associated with the buffer object - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef uint32_t tbm_key; -/** - * @brief Definition for the file descripter of the system buffer manager - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef int32_t tbm_fd; - -/* TBM_DEVICE_TYPE */ - -/** - * @brief Definition for the device type to get the default handle - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_DEVICE_DEFAULT 0 -/** - * @brief Definition for the device type to get the virtual memory - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_DEVICE_CPU 1 -/** - * @brief Definition for the device type to get the 2D memory handle - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_DEVICE_2D 2 -/** - * @brief Definition for the device type to get the 3D memory handle - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_DEVICE_3D 3 -/** - * @brief Definition for the device type to get the multimedia handle - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_DEVICE_MM 4 - -/* TBM_OPTION */ - -/** - * @brief Definition for the access option to read - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_OPTION_READ (1 << 0) -/** - * @brief Definition for the access option to write - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_OPTION_WRITE (1 << 1) -/** - * @brief Definition for the vendor specific option that depends on the backend - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_OPTION_VENDOR (0xffff0000) - -/* unneeded version 2.0 */ -/** - * @brief Definition for the cache invalidate - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_CACHE_INV 0x01 -/** - * @brief Definition for the cache clean - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_CACHE_CLN 0x02 -/* unneeded version 2.0 */ - -/** - * @brief tbm_bo_handle abstraction of the memory handle by TBM_DEVICE_TYPE - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef union _tbm_bo_handle { - void *ptr; - int32_t s32; - uint32_t u32; - int64_t s64; - uint64_t u64; -} tbm_bo_handle; - -/** - * @brief Enumeration of bo memory type - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -enum TBM_BO_FLAGS { - TBM_BO_DEFAULT = 0, /**< default memory: it depends on the backend */ - TBM_BO_SCANOUT = (1 << 0), /**< scanout memory */ - TBM_BO_NONCACHABLE = (1 << 1), /**< non-cachable memory */ - TBM_BO_WC = (1 << 2), /**< write-combine memory */ - TBM_BO_VENDOR = (0xffff0000), /**< vendor specific memory: it depends on the backend */ -}; - -/** - * @brief Enumeration for tbm error type. - * @since_tizen 2.4 - */ -typedef enum { - TBM_ERROR_NONE = 0, /**< Successful */ - TBM_BO_ERROR_GET_FD_FAILED = TBM_ERROR_BASE | 0x0101, /**< failed to get fd failed */ - TBM_BO_ERROR_HEAP_ALLOC_FAILED = TBM_ERROR_BASE | 0x0102, /**< failed to allocate the heap memory */ - TBM_BO_ERROR_LOAD_MODULE_FAILED = TBM_ERROR_BASE | 0x0103,/**< failed to load module*/ - TBM_BO_ERROR_THREAD_INIT_FAILED = TBM_ERROR_BASE | 0x0104,/**< failed to initialize the pthread */ - TBM_BO_ERROR_BO_ALLOC_FAILED = TBM_ERROR_BASE | 0x0105, /**< failed to allocate tbm_bo */ - TBM_BO_ERROR_INIT_STATE_FAILED = TBM_ERROR_BASE | 0x0106, /**< failed to initialize the state of tbm_bo */ - TBM_BO_ERROR_IMPORT_FAILED = TBM_ERROR_BASE | 0x0107, /**< failed to import the handle of tbm_bo */ - TBM_BO_ERROR_IMPORT_FD_FAILED = TBM_ERROR_BASE | 0x0108, /**< failed to import fd of tbm_bo */ - TBM_BO_ERROR_EXPORT_FAILED = TBM_ERROR_BASE | 0x0109, /**< failed to export the handle of the tbm_bo */ - TBM_BO_ERROR_EXPORT_FD_FAILED = TBM_ERROR_BASE | 0x01010, /**< failed to export fd of tbm_bo */ - TBM_BO_ERROR_GET_HANDLE_FAILED = TBM_ERROR_BASE | 0x0111, /**< failed to get the tbm_bo_handle */ - TBM_BO_ERROR_LOCK_FAILED = TBM_ERROR_BASE | 0x0112, /**< failed to lock the tbm_bo */ - TBM_BO_ERROR_MAP_FAILED = TBM_ERROR_BASE | 0x0113, /**< failed to map the tbm_bo to get the tbm_bo_handle */ - TBM_BO_ERROR_UNMAP_FAILED = TBM_ERROR_BASE | 0x0114, /**< failed to unmap the tbm_bo */ - TBM_BO_ERROR_SWAP_FAILED = TBM_ERROR_BASE | 0x0115, /**< failed to swap the tbm_bos */ - TBM_BO_ERROR_DUP_FD_FAILED = TBM_ERROR_BASE | 0x0116, /**< failed to duplicate fd */ -} tbm_error_e; - -/** - * @brief Enumeration of tbm buffer manager capability. - * @since_tizen 2.4 - */ -enum TBM_BUFMGR_CAPABILITY { - TBM_BUFMGR_CAPABILITY_NONE = 0, /**< Not Support capability*/ - TBM_BUFMGR_CAPABILITY_SHARE_KEY = (1 << 0), /**< Support sharing buffer by tbm key */ - TBM_BUFMGR_CAPABILITY_SHARE_FD = (1 << 1), /**< Support sharing buffer by tbm fd */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Functions for buffer manager */ - -/** - * @brief Initializes the buffer manager. - * @details If fd is lower than zero, fd is get drm fd in tbm_bufmgr_init function\n - * The user can decide the lock type and cache flush type with the environment variables, which are BUFMGR_LOCK_TYPE and BUFMGR_MAP_CACHE.\n - * \n - * BUFMGR_LOCK default is once\n - * once : The previous bo which is locked is unlock when the new bo is trying to be locked\n - * always : The new bo is locked until the previous bo which is locked is unlocked\n - * never : Every bo is never locked.\n - * \n - * BUFMGR_MAP_CACHE default is true\n - * true : use map cache flushing\n - * false : to use map cache flushing - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] fd : file descripter of the system buffer manager - * @return a buffer manager - * @retval #tbm_bufmgr - * @see tbm_bufmgr_deinit(); - * @par Example - @code - #include - int bufmgr_fd; - - setenv("BUFMGR_LOCK_TYPE", "once", 1); - setenv("BUFMGR_MAP_CACHE", "true", 1); - - tbm_bufmgr bufmgr; - bufmgr = tbm_bufmgr_init (bufmgr_fd); - - .... - - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_bufmgr tbm_bufmgr_init(int fd); - -/** - * @brief Deinitializes the buffer manager. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bufmgr : the buffer manager - * @see tbm_bufmgr_init() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_error_e error; - bufmgr = tbm_bufmgr_init (bufmgr_fd); - if (!bufmgr) - { - error = tbm_get_last_error (); - ... - } - - .... - - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -void tbm_bufmgr_deinit(tbm_bufmgr bufmgr); - -/* Functions for bo */ - -/** - * @brief Allocates the buffer object. - * @details This function create tbm_bo and set reference count to 1.\n - * The user can craete tbm_bo with memory type flag #TBM_BO_FLAGS\n\n - * #TBM_BO_DEFAULT indecates default memory: it depends on the backend\n - * #TBM_BO_SCANOUT indecates scanout memory\n - * #TBM_BO_NONCACHABLE indecates non-cachable memory\n - * #TBM_BO_WC indecates write-combine memory\n - * #TBM_BO_VENDOR indecates vendor specific memory: it depends on the tbm backend - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bufmgr : the buffer manager - * @param[in] size : the size of buffer object - * @param[in] flags : the flags of memory type - * @return a buffer object - * @retval #tbm_bo - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo; - tbm_error_e error; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - if (!bo) - { - error = tbm_get_last_error (); - ... - } - - .... - - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_bo tbm_bo_alloc(tbm_bufmgr bufmgr, int size, int flags); - -/** - * @brief Increases the reference count of bo. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @return a buffer object - * @retval #tbm_bo - * @see tbm_bo_unref() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - - ... - - bo = tbm_bo_ref (bo); - - .... - - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_bo tbm_bo_ref(tbm_bo bo); - -/** - * @brief Decreases the reference count of bo - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @see tbm_bo_ref() - * @see tbm_bo_alloc() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -void tbm_bo_unref(tbm_bo bo); - -/** - * @brief Maps the buffer object according to the device type and the option. - * @details Cache flushing and Locking is executed, while tbm_bo is mapping in the proper condition according to the device type and the access option.\n - * If the cache flush type of bufmgr set true, the map cache flushing is executed - * If the lock type of bufmgr set once, the previous bo which is locked is unlock when the new bo is trying to be locked.\n - * If the lock type of bufmgr set always, the new bo is locked until the previous bo which is locked is unlocked.\n - * If the lock type of bufmgr set never, Every bo is never locked.\n\n - * #TBM_DEVICE_DEFAULT indecates the default handle.\n - * #TBM_DEVICE_2D indecates the 2D memory handle.\n - * #TBM_DEVICE_3D indecates the 3D memory handle.\n - * #TBM_DEVICE_CPU indecates the virtual memory handle.\n - * #TBM_DEVICE_MM indecates the multimedia handle.\n\n - * #TBM_OPTION_READ indecates the accss option to read.\n - * #TBM_OPTION_WRITE indecates the access option to write.\n - * #TBM_OPTION_VENDOR indecates the vendor specific option that depends on the backend. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @param[in] device : the device type to get a handle - * @param[in] opt : the option to access the buffer object - * @return the handle of the buffer object - * @exception #TBM_ERROR_NONE Success - * @exception #TBM_ERROR_BO_LOCK_FAILED tbm_bo lock failed - * @exception #TBM_ERROR_BO_MAP_FAILED tbm_bo map failed - * @retval #tbm_bo - * @see tbm_bo_unmap() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - tbm_bo_handle handle; - tbm_error_e error; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - - ... - - handle = tbm_bo_map (bo, TBM_DEVICE_2D, TBM_OPTION_READ|TBM_OPTION_WRITE); - if (handle.ptr == NULL) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unmap (bo); - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_bo_handle tbm_bo_map(tbm_bo bo, int device, int opt); - -/** - * @brief Unmaps the buffer object. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @return 1 if this function succeeds, otherwise 0. - * @see tbm_bo_map() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo - tbm_bo_handle handle; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - - ... - - handle = tbm_bo_map (bo, TBM_DEVICE_2D, TBM_OPTION_READ|TBM_OPTION_WRITE); - - ... - - tbm_bo_unmap (bo); - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -int tbm_bo_unmap(tbm_bo bo); - -/** - * @brief Gets the tbm_bo_handle according to the device type. - * @details The tbm_bo_handle can be get without the map of the tbm_bo.\n - * In this case, TBM does not guarantee the lock and the cache flush of the tbm_bo.\n\n - * #TBM_DEVICE_DEFAULT indecates the default handle.\n - * #TBM_DEVICE_2D indecates the 2D memory handle.\n - * #TBM_DEVICE_3D indecates the 3D memory handle.\n - * #TBM_DEVICE_CPU indecates the virtual memory handle.\n - * #TBM_DEVICE_MM indecates the multimedia handle. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @param[in] device : the device type to get a handle - * @return the handle of the buffer object - * @retval #tbm_bo_handle - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - tbm_bo_handle handle; - tbm_error_e error; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - - ... - - handle = tbm_bo_get_handle (bo, TBM_DEVICE_2D); - if (handle.ptr == NULL) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_bo_handle tbm_bo_get_handle(tbm_bo bo, int device); - -/** - * @brief Exports the buffer object by key. - * @details The tbm_bo can be exported to the anther process with the unique key associated with the the tbm_bo. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @return key associated with the buffer object - * @retval #tbm_key - * @see tbm_bo_import() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo; - tbm_key key; - tbm_error_e error; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - key = tbm_bo_export (bo); - if (key == 0) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_key tbm_bo_export(tbm_bo bo); - -/** - * @brief Exports the buffer object by fd. - * @details The tbm_bo can be exported to the anther process with the unique fd associated with the the tbm_bo. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @remarks You must release the fd using close(). - * @param[in] bo : the buffer object - * @return fd associated with the buffer object - * @retval #tbm_fd - * @see tbm_bo_import_fd() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_fd bo_fd; - tbm_bufmgr bufmgr; - tbm_bo; - tbm_error_e error; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - bo_fd = tbm_bo_export (bo); - if (bo_fd == 0) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_fd tbm_bo_export_fd(tbm_bo bo); - -/** - * @brief Imports the buffer object associated with the key. - * @details The reference count of the tbm_bo is 1. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bufmgr : the buffer manager - * @param[in] key : the key associated with the buffer object - * @return a buffer object - * @retval #tbm_bo - * @see tbm_bo_export() - * @par Example - @code - #include - - int bufmgr_fd; - int bo_key; - tbm_bufmgr bufmgr; - tbm_bo; - tbm_error_e error; - - ... - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_import (bufmgr, key); - if (bo == NULL) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_bo tbm_bo_import(tbm_bufmgr bufmgr, tbm_key key); - -/** - * @brief Imports the buffer object associated with the fd. - * @details The reference count of the tbm_bo is 1. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @remarks You must release the fd using close(). - * @param[in] bufmgr : the buffer manager - * @param[in] fd : the fd associated with the buffer object - * @return a buffer object - * @retval #tbm_bo - * @see tbm_bo_export_fd() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_fd bo_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - tbm_error_e error; - - ... - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_import_fd (bo_fd); - if (bo == 0) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_bo tbm_bo_import_fd(tbm_bufmgr bufmgr, tbm_fd fd); - -/** - * @brief Gets the size of a bo. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @return 1 if this function succeeds, otherwise 0. - * @see tbm_bo_alloc() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo; - int size; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - size = tbm_bo_size (bo); - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -int tbm_bo_size(tbm_bo bo); - -/** - * @brief Gets the state where the buffer object is locked. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @return 1 if this bo is locked, otherwise 0. - * @see tbm_bo_map() - * @see tbm_bo_unmap() - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - - ... - - if (tbm_bo_locked (bo)) - { - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode -*/ -int tbm_bo_locked(tbm_bo bo); - -/** - * @brief Swaps the buffer object. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo1 : the buffer object - * @param[in] bo2 : the buffer object - * @return 1 if this function succeeds, otherwise 0. - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo1; - tbm_bo bo2; - int ret; - tbm_error_e error; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo1 = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - bo2 = tbm_bo_alloc (bufmgr, 256 * 256, TBM_BO_DEFAULT); - - ... - - ret = tbm_bo_swap (bo1, bo2); - if (ret == 0) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unref (bo1); - tbm_bo_unref (bo2); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -int tbm_bo_swap(tbm_bo bo1, tbm_bo bo2); - -/** - * @brief Called when the user data is deleted in buffer object. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] user_data User_data to be passed to callback function - * @pre The callback must be registered using tbm_bo_add_user_data().\n - * tbm_bo_delete_user_data() must be called to invoke this callback. - * @see tbm_bo_add_user_data() - * @see tbm_bo_delete_user_data() - */ -typedef void (*tbm_data_free) (void *user_data); - -/** - * @brief Adds a user_data to the buffer object. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @param[in] key : the key associated with the user_data - * @param[in] data_free_func : the function pointer to free the user_data - * @return 1 if this function succeeds, otherwise 0. - * @post tbm_data_free() will be called under certain conditions, after calling tbm_bo_delete_user_data(). - * @see tbm_data_free() - * @see tbm_bo_set_user_data() - * @see tbm_bo_get_user_data() - * @see tbm_bo_delete_user_data() - * @par Example - @code - #include - - void example_data_free (void *user_data) - { - char *data = (char*) user_data; - free(data); - } - - int main() - { - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - char *user_data; - char *get_data; - int ret; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - user_data = (char*) malloc (sizeof(char) * 128); - - ... - - tbm_bo_add_user_data (bo, 1, example_data_free); - tbm_bo_set_user_data (bo, 1, user_data); - - ... - - ret = tbm_bo_get_user_data (bo, 1, &get_data); - tbm_bo_delete_user_data (bo, 1); - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - } - @endcode - */ - -int tbm_bo_add_user_data(tbm_bo bo, unsigned long key, - tbm_data_free data_free_func); - -/** - * @brief Deletes the user_data in the buffer object. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @param[in] key : the key associated with the user_date - * @return 1 if this function succeeds, otherwise 0. - * @see tbm_bo_add_user_data() - * @see tbm_bo_get_user_data() - * @see tbm_bo_delete_user_data() - * @par Example - @code - #include - - void example_data_free (void *user_data) - { - char *data = (char*) user_data; - free(data); - } - - int main() - { - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - char *user_data; - char *get_data; - int ret; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - user_data = (char*) malloc (sizeof(char) * 128); - - ... - - tbm_bo_add_user_data (bo, 1, example_data_free); - tbm_bo_set_user_data (bo, 1, user_data); - - ... - - ret = tbm_bo_get_user_data (bo, 1, &get_data); - tbm_bo_delete_user_data (bo, 1); - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - } - @endcode - */ -int tbm_bo_delete_user_data(tbm_bo bo, unsigned long key); - -/** - * @brief Sets a user_date to the buffer object. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @param[in] key : the key associated with the user_date - * @param[in] data : a pointer of the user_data - * @return 1 if this function succeeds, otherwise 0. - * @see tbm_bo_add_user_data() - * @see tbm_bo_set_user_data() - * @see tbm_bo_delete_user_data() - * @par Example - @code - #include - - void example_data_free (void *user_data) - { - char *data = (char*) user_data; - free(data); - } - - int main() - { - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - char *user_data; - char *get_data; - int ret; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - user_data = (char*) malloc (sizeof(char) * 128); - - ... - - tbm_bo_add_user_data (bo, 1, example_data_free); - tbm_bo_set_user_data (bo, 1, user_data); - - ... - - ret = tbm_bo_get_user_data (bo, 1, &get_data); - tbm_bo_delete_user_data (bo, 1); - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - } - @endcode - */ -int tbm_bo_set_user_data(tbm_bo bo, unsigned long key, void *data); - -/** - * @brief Gets a user_data from the buffer object with the key. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bo : the buffer object - * @param[in] key : the key associated with the user_date - * @param[out] data : to get the user data - * @return 1 if this function succeeds, otherwise 0. - * @see tbm_bo_add_user_data() - * @see tbm_bo_set_user_data() - * @see tbm_bo_get_user_data() - * @par Example - @code - #include - - void example_data_free (void *user_data) - { - char *data = (char*) user_data; - free(data); - } - - int main() - { - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - char *user_data; - char *get_data; - int ret; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - user_data = (char*) malloc (sizeof(char) * 128); - - ... - - tbm_bo_add_user_data (bo, 1, example_data_free); - tbm_bo_set_user_data (bo, 1, user_data); - - ... - - ret = tbm_bo_get_user_data (bo, 1, &get_data); - tbm_bo_delete_user_data (bo, 1); - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - } - @endcode - */ -int tbm_bo_get_user_data(tbm_bo bo, unsigned long key, void **data); - -/** - * @brief Gets the latest tbm_error. - * @since_tizen 2.4 - * @return the latest tbm_error - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo bo; - tbm_bo_handle handle; - tbm_error_e error; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - if (!bo) - { - error = tbm_get_last_error (); - ... - } - - ... - - handle = tbm_bo_map (bo, TBM_DEVICE_2D, TBM_OPTION_READ|TBM_OPTION_WRITE); - if (handle.ptr == NULL) - { - error = tbm_get_last_error (); - ... - } - - ... - - tbm_bo_unmap (bo); - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_error_e tbm_get_last_error(void); - -/** - * @brief Gets the tbm buffer capability. - * @since_tizen 2.4 - * @param[in] bufmgr : the buffer manager - * @return the tbm bufmgr capability - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - unsigned int capability; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - - capability = tbm_bufmgr_get_capability (bufmgr); - - tbm_bufmgr_deinit (bufmgr); - @endcode - */ -unsigned int tbm_bufmgr_get_capability(tbm_bufmgr bufmgr); - -/** - * @brief Gets the tbm bo flags. - * @since_tizen 2.4 - * @param[in] bo : the buffer object - * @return the tbm bo flags - * @see TBM_BO_FLAGS - * @par Example - @code - #include - - int bufmgr_fd; - tbm_bufmgr bufmgr; - tbm_bo; - int flags; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - flags = tbm_bo_get_flags (bo); - - ... - - tbm_bo_unref (bo); - tbm_bufmgr_deinit (bufmgr); - - @endcode - */ -int tbm_bo_get_flags(tbm_bo bo); - -/** - * @brief Print out the information of tbm_bos. - * @since_tizen 3.0 - * @param[in] bufmgr : the buffer manager - */ -void tbm_bufmgr_debug_show(tbm_bufmgr bufmgr); - -/** - * @brief Print out the trace of tbm_bos. - * @since_tizen 3.0 - * @param[in] bufmgr : the buffer manager - * @param[in] onoff : 1 is on, and 0 is off - */ -void tbm_bufmgr_debug_trace(tbm_bufmgr bufmgr, int onoff); - -int tbm_bufmgr_bind_native_display(tbm_bufmgr bufmgr, void *NativeDisplay); - -#ifdef __cplusplus -} -#endif -#endif /* _TBM_BUFMGR_H_ */ diff --git a/utests/stubs/tbm_stubs.cpp b/utests/stubs/tbm_stubs.cpp deleted file mode 100644 index c86fabc..0000000 --- a/utests/stubs/tbm_stubs.cpp +++ /dev/null @@ -1,270 +0,0 @@ -#include "tbm_stubs.h" - -#include - -int TBM_BUFMGR_DEINIT_CALLED = 0; -int TBM_BO_GET_USER_DATA_NULL = 0; -int tbm_surface_queue_release_count; -int tbm_surface_internal_add_user_data_error; -int tbm_surface_internal_set_user_data_error; -void *tbm_surface_internal_get_user_data_ret; -int tbm_surface_internal_ref_count; -int tbm_surface_internal_unref_count; - -tbm_bufmgr tbm_bufmgr_init(int fd) -{ - (void)fd; - - return NULL; -} - -void tbm_bufmgr_deinit(tbm_bufmgr bufmgr) -{ - (void)bufmgr; - - TBM_BUFMGR_DEINIT_CALLED = 1; -} - -tbm_bo tbm_surface_internal_get_bo(tbm_surface_h surface, int bo_idx) -{ - (void)surface; - (void)bo_idx; - - if (!surface) { - return NULL; - } - - return NULL; -} - -int tbm_bo_get_user_data(tbm_bo bo, unsigned long key, void **data) -{ - (void)bo; - (void)key; - (void)data; - - if (TBM_BO_GET_USER_DATA_NULL) { - *data = NULL; - return; - } - - *data = (void *)"data"; - - return 0; -} - -int tbm_bo_add_user_data(tbm_bo bo, unsigned long key, - tbm_data_free data_free_func) -{ - (void)bo; - (void)key; - (void)data_free_func; - - return 0; -} - -int tbm_bo_set_user_data(tbm_bo bo, unsigned long key, void *data) -{ - (void)bo; - (void)key; - (void)data; - - return 0; -} - -void tbm_surface_internal_ref(tbm_surface_h surface) -{ - (void)surface; - - tbm_surface_internal_ref_count++; -} - -void tbm_surface_internal_unref(tbm_surface_h surface) -{ - (void)surface; - - tbm_surface_internal_unref_count++; -} - -tbm_surface_queue_error_e tbm_surface_queue_acquire( - tbm_surface_queue_h surface_queue, tbm_surface_h *surface) -{ - (void)surface_queue; - (void)surface; - - return TBM_SURFACE_QUEUE_ERROR_NONE; -} - -tbm_surface_queue_error_e tbm_surface_queue_release( - tbm_surface_queue_h surface_queue, tbm_surface_h surface) -{ - (void)surface_queue; - (void)surface; - - tbm_surface_queue_release_count++; - - return TBM_SURFACE_QUEUE_ERROR_NONE; -} - -tbm_surface_queue_error_e tbm_surface_queue_add_acquirable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb, - void *data) -{ - (void)surface_queue; - (void)acquirable_cb; - (void)data; - - return TBM_SURFACE_QUEUE_ERROR_NONE; -} - -tbm_surface_queue_error_e tbm_surface_queue_add_destroy_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb, - void *data) -{ - (void)surface_queue; - (void)destroy_cb; - (void)data; - - return TBM_SURFACE_QUEUE_ERROR_NONE; -} - -tbm_surface_queue_error_e tbm_surface_queue_remove_acquirable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb, - void *data) -{ - (void)surface_queue; - (void)acquirable_cb; - (void)data; - - return TBM_SURFACE_QUEUE_ERROR_NONE; -} - -tbm_surface_queue_error_e tbm_surface_queue_remove_destroy_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb, - void *data) -{ - (void)surface_queue; - (void)destroy_cb; - (void)data; - - return TBM_SURFACE_QUEUE_ERROR_NONE; -} - -int tbm_surface_internal_get_user_data(tbm_surface_h surface, unsigned long key, - void **data) -{ - (void)surface; - (void)key; - - if (tbm_surface_internal_get_user_data_ret) { - *data = tbm_surface_internal_get_user_data_ret; - return 1; - } - - *data = NULL; - - return 0; -} - -int tbm_surface_internal_add_user_data(tbm_surface_h surface, unsigned long key, - tbm_data_free data_free_func) -{ - (void)surface; - (void)key; - (void)data_free_func; - - if (tbm_surface_internal_add_user_data_error) - return 0; - - return 1; -} - -int tbm_surface_internal_set_user_data(tbm_surface_h surface, unsigned long key, - void *data) -{ - (void)surface; - (void)key; - (void)data; - - if (tbm_surface_internal_set_user_data_error) - return 0; - - return 1; -} - -int tbm_surface_map(tbm_surface_h surface, int opt, tbm_surface_info_s *info) -{ - (void)opt; - struct _tbm_surface *s = surface; - - if (s->info.num_planes > 0) - { - info->format = s->info.format; - info->width = s->info.width; - info->height = s->info.height; - info->num_planes = s->info.num_planes; - info->planes[0].ptr = s->info.planes[0].ptr; - info->planes[1].ptr = s->info.planes[1].ptr; - info->planes[2].ptr = s->info.planes[2].ptr; - info->planes[0].stride = s->info.planes[0].stride; - info->planes[1].stride = s->info.planes[1].stride; - info->planes[2].stride = s->info.planes[2].stride; - return 0; - } - return 1; -} - -int tbm_surface_unmap(tbm_surface_h surface) -{ - (void)surface; - - return 0; -} - -void tbm_surface_internal_dump_buffer(tbm_surface_h surface, const char *type) -{ - (void)surface; - (void)type; -} - -int tbm_surface_internal_delete_user_data(tbm_surface_h surface, - unsigned long key) -{ - (void)surface; - (void)key; - - return 0; -} - -int tbm_surface_internal_get_num_bos(tbm_surface_h surface) -{ - struct _tbm_surface *s = surface; - return s->info.num_planes; -} - -int tbm_surface_get_info(tbm_surface_h surface, tbm_surface_info_s *info) -{ - -} - -tbm_format tbm_surface_get_format(tbm_surface_h surface) -{ - -} - -int tbm_surface_get_height(tbm_surface_h surface) -{ - -} - -void stub_tbm_init() -{ - TBM_BUFMGR_DEINIT_CALLED = 0; - TBM_BO_GET_USER_DATA_NULL = 0; - tbm_surface_queue_release_count = 0; - tbm_surface_internal_add_user_data_error = 0; - tbm_surface_internal_set_user_data_error = 0; - tbm_surface_internal_get_user_data_ret = NULL; - tbm_surface_internal_ref_count = 0; - tbm_surface_internal_unref_count = 0; -} diff --git a/utests/stubs/tbm_stubs.h b/utests/stubs/tbm_stubs.h deleted file mode 100644 index e8e1f13..0000000 --- a/utests/stubs/tbm_stubs.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef _TBM_STUBS_H -#define _TBM_STUBS_H - -#include -#include "tbm_bufmgr.h" -#include "tbm_surface_queue.h" - -extern int TBM_BUFMGR_DEINIT_CALLED; -extern int TBM_BO_GET_USER_DATA_NULL; -extern int tbm_surface_queue_release_count; -extern int tbm_surface_internal_add_user_data_error; -extern int tbm_surface_internal_set_user_data_error; -extern void *tbm_surface_internal_get_user_data_ret; -extern int tbm_surface_internal_ref_count; -extern int tbm_surface_internal_unref_count; - -struct _tbm_surface { - int temp; - tbm_surface_info_s info; -}; - -struct _tbm_surface_queue { - int temp; -}; - -tbm_bufmgr tbm_bufmgr_init(int fd); - -void tbm_bufmgr_deinit(tbm_bufmgr bufmgr); - -tbm_bo tbm_surface_internal_get_bo(tbm_surface_h surface, int bo_idx); - -int tbm_bo_get_user_data(tbm_bo bo, unsigned long key, void **data); - -int tbm_bo_add_user_data(tbm_bo bo, unsigned long key, - tbm_data_free data_free_func); - -int tbm_bo_set_user_data(tbm_bo bo, unsigned long key, void *data); - -void tbm_surface_internal_ref(tbm_surface_h surface); - -void tbm_surface_internal_unref(tbm_surface_h surface); - -void stub_tbm_init(); - -#endif /* _TBM_STUBS_H */ diff --git a/utests/stubs/tbm_surface.h b/utests/stubs/tbm_surface.h deleted file mode 100644 index 445d421..0000000 --- a/utests/stubs/tbm_surface.h +++ /dev/null @@ -1,742 +0,0 @@ -#ifndef _TBM_SURFACE_H_ -#define _TBM_SURFACE_H_ - -/** - * @addtogroup CAPI_UI_TBM_SURFACE_MODULE - * @{ - */ - -#include -#include - -/** - * \file tbm_surface.h - * \brief TBM Surface - */ - -/** - * @brief Enumeration for tbm_surface error type. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef enum { - TBM_SURFACE_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ - TBM_SURFACE_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ - TBM_SURFACE_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Invalid Operation */ -} tbm_surface_error_e; - -/** - * @brief Definition for the max number of TBM surface plane. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_SURF_PLANE_MAX 4 - -/* option to map the tbm_surface */ -/** - * @brief Definition for the access option to read. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_SURF_OPTION_READ (1 << 0) -/** - * @brief Definition for the access option to write. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_SURF_OPTION_WRITE (1 << 1) - -/** - * @brief Definition for the TBM plane struct. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef struct _tbm_surface_plane { - unsigned char *ptr; /**< Plane pointer */ - uint32_t size; /**< Plane size */ - uint32_t offset; /**< Plane offset */ - uint32_t stride; /**< Plane stride */ - - void *reserved1; /**< Reserved pointer1 */ - void *reserved2; /**< Reserved pointer2 */ - void *reserved3; /**< Reserved pointer3 */ -} tbm_surface_plane_s; - -/** - * @brief Definition for the TBM surface information struct. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef struct _tbm_surface_info { - uint32_t width; /**< TBM surface width */ - uint32_t height; /**< TBM surface height */ - tbm_format format; /**< TBM surface format*/ - uint32_t bpp; /**< TBM surface bbp */ - uint32_t size; /**< TBM surface size */ - - uint32_t num_planes; /**< The number of planes */ - tbm_surface_plane_s planes[TBM_SURF_PLANE_MAX]; /**< Array of planes */ - - void *reserved4; /**< Reserved pointer4 */ - void *reserved5; /**< Reserved pointer5 */ - void *reserved6; /**< Reserved pointer6 */ -} tbm_surface_info_s; - -#define __tbm_fourcc_code(a, b, c, d) ((uint32_t)(a) | ((uint32_t)(b) << 8) | \ - ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) - -/* color index */ -/** - * @brief Definition for the TBM surface format C8 ([7:0] C). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_C8 __tbm_fourcc_code('C', '8', ' ', ' ') - -/* 8 bpp RGB */ -/** - * @brief Definition for the TBM surface format RGB322 ([7:0] R:G:B 3:3:2). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGB332 __tbm_fourcc_code('R', 'G', 'B', '8') -/** - * @brief Definition for the TBM surface format RGB233 ([7:0] B:G:R 2:3:3). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGR233 __tbm_fourcc_code('B', 'G', 'R', '8') - -/* 16 bpp RGB */ -/** - * @brief Definition for the TBM surface format XRGB4444 ([15:0] x:R:G:B 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XRGB4444 __tbm_fourcc_code('X', 'R', '1', '2') -/** - * @brief Definition for the TBM surface format XBRG4444 ([15:0] x:B:G:R 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XBGR4444 __tbm_fourcc_code('X', 'B', '1', '2') -/** - * @brief Definition for the TBM surface format RGBX4444 ([15:0] R:G:B:x 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBX4444 __tbm_fourcc_code('R', 'X', '1', '2') -/** - * @brief Definition for the TBM surface format BGRX4444 ([15:0] B:G:R:x 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRX4444 __tbm_fourcc_code('B', 'X', '1', '2') - -/** - * @brief Definition for the TBM surface format ARGB4444 ([15:0] A:R:G:B 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ARGB4444 __tbm_fourcc_code('A', 'R', '1', '2') -/** - * @brief Definition for the TBM surface format ABGR4444 ([15:0] A:B:G:R 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ABGR4444 __tbm_fourcc_code('A', 'B', '1', '2') -/** - * @brief Definition for the TBM surface format RGBA4444 ([15:0] R:G:B:A 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBA4444 __tbm_fourcc_code('R', 'A', '1', '2') -/** - * @brief Definition for the TBM surface format BGRA4444 ([15:0] B:G:R:A 4:4:4:4 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRA4444 __tbm_fourcc_code('B', 'A', '1', '2') - -/** - * @brief Definition for the TBM surface format XRGB1555 ([15:0] x:R:G:B 1:5:5:5 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XRGB1555 __tbm_fourcc_code('X', 'R', '1', '5') -/** - * @brief Definition for the TBM surface format XBGR1555 ([15:0] x:B:G:R 1:5:5:5 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XBGR1555 __tbm_fourcc_code('X', 'B', '1', '5') -/** - * @brief Definition for the TBM surface format RGBX5551 ([15:0] R:G:B:x 5:5:5:1 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBX5551 __tbm_fourcc_code('R', 'X', '1', '5') -/** - * @brief Definition for the TBM surface format BGRX5551 ([15:0] B:G:R:x 5:5:5:1 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRX5551 __tbm_fourcc_code('B', 'X', '1', '5') - -/** - * @brief Definition for the TBM surface format ARGB1555 ([15:0] A:R:G:B 1:5:5:5 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ARGB1555 __tbm_fourcc_code('A', 'R', '1', '5') -/** - * @brief Definition for the TBM surface format ABGR1555 ([15:0] A:B:G:R 1:5:5:5 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ABGR1555 __tbm_fourcc_code('A', 'B', '1', '5') -/** - * @brief Definition for the TBM surface format RGBA5551 ([15:0] R:G:B:A 5:5:5:1 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBA5551 __tbm_fourcc_code('R', 'A', '1', '5') -/** - * @brief Definition for the TBM surface format BGRA5551 ([15:0] B:G:R:A 5:5:5:1 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRA5551 __tbm_fourcc_code('B', 'A', '1', '5') - -/** - * @brief Definition for the TBM surface format RGB565 ([15:0] R:G:B 5:6:5 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGB565 __tbm_fourcc_code('R', 'G', '1', '6') -/** - * @brief Definition for the TBM surface format BGR565 ([15:0] B:G:R 5:6:5 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGR565 __tbm_fourcc_code('B', 'G', '1', '6') - -/* 24 bpp RGB */ -/** - * @brief Definition for the TBM surface format RGB888 ([23:0] R:G:B little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGB888 __tbm_fourcc_code('R', 'G', '2', '4') -/** - * @brief Definition for the TBM surface format BGR888 ([23:0] B:G:R little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGR888 __tbm_fourcc_code('B', 'G', '2', '4') - -/* 32 bpp RGB */ -/** - * @brief Definition for the TBM surface format XRGB8888 ([31:0] x:R:G:B 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XRGB8888 __tbm_fourcc_code('X', 'R', '2', '4') -/** - * @brief Definition for the TBM surface format XBGR8888 ([31:0] x:B:G:R 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XBGR8888 __tbm_fourcc_code('X', 'B', '2', '4') -/** - * @brief Definition for the TBM surface format RGBX8888 ([31:0] R:G:B:x 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBX8888 __tbm_fourcc_code('R', 'X', '2', '4') -/** - * @brief Definition for the TBM surface format BGRX8888 ([31:0] B:G:R:x 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRX8888 __tbm_fourcc_code('B', 'X', '2', '4') - -/** - * @brief Definition for the TBM surface format ARGB8888 ([31:0] A:R:G:B 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ARGB8888 __tbm_fourcc_code('A', 'R', '2', '4') -/** - * @brief Definition for the TBM surface format ABGR8888 ([31:0] [31:0] A:B:G:R 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ABGR8888 __tbm_fourcc_code('A', 'B', '2', '4') -/** - * @brief Definition for the TBM surface format RGBA8888 ([31:0] R:G:B:A 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBA8888 __tbm_fourcc_code('R', 'A', '2', '4') -/** - * @brief Definition for the TBM surface format BGRA8888 ([31:0] B:G:R:A 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRA8888 __tbm_fourcc_code('B', 'A', '2', '4') - -/** - * @brief Definition for the TBM surface format XRGB2101010 ([31:0] x:R:G:B 2:10:10:10 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XRGB2101010 __tbm_fourcc_code('X', 'R', '3', '0') -/** - * @brief Definition for the TBM surface format XBGR2101010 ([31:0] x:B:G:R 2:10:10:10 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_XBGR2101010 __tbm_fourcc_code('X', 'B', '3', '0') -/** - * @brief Definition for the TBM surface format RGBX1010102 ([31:0] R:G:B:x 10:10:10:2 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBX1010102 __tbm_fourcc_code('R', 'X', '3', '0') -/** - * @brief Definition for the TBM surface format BGRX1010102 ([31:0] B:G:R:x 10:10:10:2 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRX1010102 __tbm_fourcc_code('B', 'X', '3', '0') - -/** - * @brief Definition for the TBM surface format ARGB2101010 ([31:0] A:R:G:B 2:10:10:10 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ARGB2101010 __tbm_fourcc_code('A', 'R', '3', '0') -/** - * @brief Definition for the TBM surface format ABGR2101010 ([31:0] A:B:G:R 2:10:10:10 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_ABGR2101010 __tbm_fourcc_code('A', 'B', '3', '0') -/** - * @brief Definition for the TBM surface format RGBA1010102 ([31:0] R:G:B:A 10:10:10:2 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_RGBA1010102 __tbm_fourcc_code('R', 'A', '3', '0') -/** - * @brief Definition for the TBM surface format BGRA1010102 ([31:0] B:G:R:A 10:10:10:2 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_BGRA1010102 __tbm_fourcc_code('B', 'A', '3', '0') /* */ - -/* packed YCbCr */ -/** - * @brief Definition for the TBM surface format YUYV ([31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YUYV __tbm_fourcc_code('Y', 'U', 'Y', 'V') -/** - * @brief Definition for the TBM surface format YVYU ([31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YVYU __tbm_fourcc_code('Y', 'V', 'Y', 'U') /* */ -/** - * @brief Definition for the TBM surface format UYVY ([31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_UYVY __tbm_fourcc_code('U', 'Y', 'V', 'Y') -/** - * @brief Definition for the TBM surface format VYUY ([31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_VYUY __tbm_fourcc_code('V', 'Y', 'U', 'Y') - -/** - * @brief Definition for the TBM surface format AYUV ([31:0] A:Y:Cb:Cr 8:8:8:8 little endian). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_AYUV __tbm_fourcc_code('A', 'Y', 'U', 'V') - -/* - * 2 plane YCbCr - * index 0 = Y plane, [7:0] Y - * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian - * or - * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian - */ -/** - * @brief Definition for the TBM surface format NV12 (2x2 subsampled Cr:Cb plane). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_NV12 __tbm_fourcc_code('N', 'V', '1', '2') -/** - * @brief Definition for the TBM surface format NV21 (2x2 subsampled Cb:Cr plane). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_NV21 __tbm_fourcc_code('N', 'V', '2', '1') /* */ -/** - * @brief Definition for the TBM surface format NV16 (2x1 subsampled Cr:Cb plane). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_NV16 __tbm_fourcc_code('N', 'V', '1', '6') -/** - * @brief Definition for the TBM surface format NV61 (2x1 subsampled Cb:Cr plane). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_NV61 __tbm_fourcc_code('N', 'V', '6', '1') - -/* - * 3 plane YCbCr - * index 0: Y plane, [7:0] Y - * index 1: Cb plane, [7:0] Cb - * index 2: Cr plane, [7:0] Cr - * or - * index 1: Cr plane, [7:0] Cr - * index 2: Cb plane, [7:0] Cb - */ -/** - * @brief Definition for the TBM surface format YUV410 (4x4 subsampled Cb (1) and Cr (2) planes). - */ -#define TBM_FORMAT_YUV410 __tbm_fourcc_code('Y', 'U', 'V', '9') -/** - * @brief Definition for the TBM surface format YVU410 (4x4 subsampled Cr (1) and Cb (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YVU410 __tbm_fourcc_code('Y', 'V', 'U', '9') -/** - * @brief Definition for the TBM surface format YUV411 (4x1 subsampled Cb (1) and Cr (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YUV411 __tbm_fourcc_code('Y', 'U', '1', '1') -/** - * @brief Definition for the TBM surface format YVU411 (4x1 subsampled Cr (1) and Cb (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YVU411 __tbm_fourcc_code('Y', 'V', '1', '1') -/** - * @brief Definition for the TBM surface format YUV420 (2x2 subsampled Cb (1) and Cr (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YUV420 __tbm_fourcc_code('Y', 'U', '1', '2') -/** - * @brief Definition for the TBM surface format YVU420 (2x2 subsampled Cr (1) and Cb (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YVU420 __tbm_fourcc_code('Y', 'V', '1', '2') -/** - * @brief Definition for the TBM surface format YUV422 (2x1 subsampled Cb (1) and Cr (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YUV422 __tbm_fourcc_code('Y', 'U', '1', '6') -/** - * @brief Definition for the TBM surface format YVU422 (2x1 subsampled Cr (1) and Cb (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YVU422 __tbm_fourcc_code('Y', 'V', '1', '6') -/** - * @brief Definition for the TBM surface format YUV444 (non-subsampled Cb (1) and Cr (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YUV444 __tbm_fourcc_code('Y', 'U', '2', '4') -/** - * @brief Definition for the TBM surface format YVU444 (non-subsampled Cr (1) and Cb (2) planes). - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -#define TBM_FORMAT_YVU444 __tbm_fourcc_code('Y', 'V', '2', '4') - -/* 2 plane YCbCr */ -/** - * @brief Definition for the TBM surface format NV12MT (tiled '64x32' & multi-plane version of NV12). - * @since_tizen 3.0 @endif - */ -#define TBM_FORMAT_NV12MT __tbm_fourcc_code('T', 'M', '1', '2') - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Queries surface format list and number of format supported by the system. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @remarks You must release the formats using free(). - * - * @param[out] formats The format array which the system can support \n - * This pointer has to be freed by user. - * @param[out] num The number of formats - * - * @return #TBM_SURFACE_ERROR_NONE if this function succeeds, - * otherwise an error status value - * - * @retval #TBM_SURFACE_ERROR_NONE Success - * @retval #TBM_SURFACE_ERROR_INVALID_OPERATION Invalid operation - * - * @par Example - @code - #include - - uint32_t *formats; - uint32_t format_num; - int ret, i; - - if (tbm_surface_query_formats (&formats, &format_num)) - { - for( i = 0 ; i < format_num ; i++) - { - if (formats[i] == TBM_FORMAT_RGB332) - { - - .... - - free (formats); - @endcode - */ -int tbm_surface_query_formats(uint32_t **formats, uint32_t *num); - -/** - * @brief Creates the tbm_surface. - * @details This function creates the tbm_surface with the given width, height, and format. - * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. - * - * @param[in] width The width of surface - * @param[in] height The height of surface - * @param[in] format The format of surface - * - * @return #tbm_surface_h on success, - * otherwise @c NULL - * - * @retval #tbm_surface_h The TBM surface handle - * - * @exception #TBM_SURFACE_ERROR_NONE Success - * @exception #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * @exception #TBM_SURFACE_ERROR_INVALID_OPERATION Invalid operation - * - * @see tbm_surface_destroy() - * - * @par Example - @code - #include - - tbm_surface_h surface; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -tbm_surface_h tbm_surface_create(int width, int height, tbm_format format); - -/** - * @brief Destroys the tbm_surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @param[in] surface The #tbm_surface_h - * - * @return #TBM_SURFACE_ERROR_NONE on success, - * otherwise an error status value - * - * @retval #TBM_SURFACE_ERROR_NONE Success - * @retval #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see tbm_surface_create() - * - * @par Example - @code - #include - - tbm_surface_h surface; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_destroy(tbm_surface_h surface); - -/** - * @brief Maps the tbm_surface according to the access option. - * @details After mapping tbm_surface, the information of tbm_surface is assigned in #tbm_surface_info_s struct. \n - * The information of tbm_surface has width, height, format, bpp, size, number of planes and information of planes. \n - * The information of planes has stride, offset, size and pointer of plane. \n - * #TBM_SURF_OPTION_READ indicates access option to read. \n - * #TBM_SURF_OPTION_WRITE indicates access option to write. - * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @param[in] surface The #tbm_surface_h - * @param[in] opt The option to access the tbm_surface - * @param[out] info The information of the tbm_surface - * - * @return #TBM_SURFACE_ERROR_NONE on success, - * otherwise an error status value - * - * @retval #TBM_SURFACE_ERROR_NONE Success - * @retval #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #TBM_SURFACE_ERROR_INVALID_OPERATION Invalid operation - * - * @see tbm_surface_unmap(); - * - * @par Example - @code - #include - - tbm_surface_h surface; - tbm_surface_info_s info; - int ret; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - ret = tbm_surface_map (surface, TBM_SURF_OPTION_WRITE|TBM_SURF_OPTION_READ, &info); - - ... - - tbm_surface_unmap (surface); - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_map(tbm_surface_h surface, int opt, tbm_surface_info_s *info); - -/** - * @brief Unmaps the tbm_surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @param[in] surface The #tbm_surface_h - * - * @return #TBM_SURFACE_ERROR_NONE on success, - * otherwise an error status value - * - * @retval #TBM_SURFACE_ERROR_NONE Success - * @retval #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see tbm_surface_map() - * - * @par Example - @code - #include - - tbm_surface_h surface; - tbm_surface_info_s info; - int ret; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - ret = tbm_surface_map (surface, TBM_SURF_OPTION_WRITE|TBM_SURF_OPTION_READ, &info); - - ... - - tbm_surface_unmap (surface); - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_unmap(tbm_surface_h surface); - -/** - * @brief Gets the information of the tbm_surface. - * @details The information of tbm_surface is assigned in #tbm_surface_info_s struct. \n - * The information of tbm_surface has width, height, format, bpp, size, number of planes and information of planes. \n - * The information of planes has stride, offset, size and pointer of plane. - * - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @param[in] surface The #tbm_surface_h - * @param[out] info The information of the tbm_surface - * - * @return #TBM_SURFACE_ERROR_NONE on success, - * otherwise an error status value - * - * @retval #TBM_SURFACE_ERROR_NONE Success - * @retval #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * @retval #TBM_SURFACE_ERROR_INVALID_OPERATION Invalid operation - * - * @see tbm_surface_map() - * - * @par Example - @code - #include - - tbm_surface_h surface; - tbm_surface_info_s info; - int ret; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - ret = tbm_surface_get_info (surface, &info); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_get_info(tbm_surface_h surface, tbm_surface_info_s *info); - -/** - * @brief Gets the width of the tbm_surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @param[in] surface The #tbm_surface_h - * - * @return The width of the tbm_surface on success, - * otherwise an error status value - * - * @retval #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * - * @par Example - @code - #include - - tbm_surface_h surface; - int width; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - - ... - - width = tbm_surface_get_width (surface); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_get_width(tbm_surface_h surface); - -/** - * @brief Gets the height of the tbm_surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @param[in] surface The #tbm_surface_h - * - * @return The height of the tbm_surface if this function succeeds, - * otherwise an error status value - * - * @retval #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * - * @par Example - @code - #include - - tbm_surface_h surface; - int height; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - - ... - - height = tbm_surface_get_height (surface); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_get_height(tbm_surface_h surface); - -/** - * @brief Gets the format of the tbm_surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * - * @remark The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section. - * - * @param[in] surface The #tbm_surface_h - * - * @return The format of the tbm_surface on success, - * otherwise @c 0 on failure - * - * @retval #tbm_format The format of surface - * - * @exception #TBM_SURFACE_ERROR_NONE Success - * @exception #TBM_SURFACE_ERROR_INVALID_PARAMETER Invalid parameter - * - * @par Example - @code - #include - - tbm_surface_s surface; - tbm_format format; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_RGB332); - - ... - - format = tbm_surface_get_format (surface); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -tbm_format tbm_surface_get_format(tbm_surface_h surface); - -#ifdef __cplusplus -} -#endif -/** -* @} -*/ -#endif /* _TBM_SURFACE_H_ */ diff --git a/utests/stubs/tbm_surface_internal.h b/utests/stubs/tbm_surface_internal.h deleted file mode 100644 index 6c85b77..0000000 --- a/utests/stubs/tbm_surface_internal.h +++ /dev/null @@ -1,367 +0,0 @@ -#ifndef _TBM_SURFACE_INTERNAL_H_ -#define _TBM_SURFACE_INTERNAL_H_ - -#include - - -/** - * @brief Queries formats which the system can support. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @remarks The formats must be released using free(). - * @param[in] bufmgr : the buffer manager - * @param[out] *formats : format array which the system can support. This pointer has to be freed by user. - * @param[out] num : the number of formats. - * @return a tbm_surface_h if this function succeeds, otherwise NULL - * @par Example - @code - #include - #include - - tbm_bufmgr bufmgr; - uint32_t *formats; - uint32_t format_num; - - bufmgr = tbm_bufmgr_create (-1); - ret = tbm_surface_internal_query_surpported_foramts (bufmgr, &formats, &format_num); - - ... - - free (foramts); - tbm_surface_bufmgr_deinit (bufmgr); - @endcode - */ -int tbm_surface_internal_query_supported_formats(uint32_t **formats, - uint32_t *num); - -/** - * @brief Creates the tbm_surface with memory type. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @details - * #TBM_BO_DEFAULT is default memory: it depends on the backend\n - * #TBM_BO_SCANOUT is scanout memory\n - * #TBM_BO_NONCACHABLE is non-cachable memory\n - * #TBM_BO_WC is write-combine memory\n - * #TBM_BO_VENDOR vendor specific memory: it depends on the tbm backend\n - * @param[in] bufmgr : the buffer manager - * @param[in] width : the width of surface - * @param[in] height : the height of surface - * @param[in] format : the format of surface - * @param[in] flags : the flags of memory type - * @return a tbm_surface_h if this function succeeds, otherwise NULL - * @retval #tbm_surface_h - * @par Example - @code - #include - #include - - int bufmgr_fd - tbm_bufmgr bufmgr; - tbm_surface_h surface; - uint32_t *format; - uint32_t format_num; - - bufmgr = tbm_bufmgr_create (bufmgr_fd); - surface = tbm_surface_internal_create_with_flags (128, 128, TBM_FORMAT_YUV420, TBM_BO_DEFAULT); - - ... - - tbm_surface_destroy (surface); - tbm_surface_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_surface_h tbm_surface_internal_create_with_flags(int width, int height, - int format, int flags); - -/** - * @brief Creates the tbm_surface with buffer objects. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] bufmgr : the buffer manager - * @param[in] width : the width of surface - * @param[in] height : the height of surface - * @param[in] format : the format of surface - * @param[in] *bos : the array pointer of buffer objects - * @param[in] num : the number of buffer objects - * @return a tbm_surface_h if this function succeeds, otherwise NULL - * @retval #tbm_surface_h - * @par Example - @code - #include - #include - #include - - int bufmgr_fd - tbm_bufmgr bufmgr; - tbm_surface_h surface; - tbm_surface_info_s info; - uint32_t *format; - uint32_t format_num; - tbm_bo bo[1]; - - bufmgr = tbm_bufmgr_init (bufmgr_fd); - bo[0] = tbm_bo_alloc (bufmgr, 128 * 128, TBM_BO_DEFAULT); - - info.width = 128; - info.height = 128; - info.format = TBM_FORMAT_ARGB8888; - info.bpp = 32; - info.size = 65536; - info.num_planes = 1; - info.planes[0].size = 65536; - info.planes[0].offset = 0; - info.planes[0].stride = 512; - - surface = tbm_surface_internal_create_with_bos (&info, bo, 1); - - ... - - tbm_surface_destroy (surface); - tbm_surface_bufmgr_deinit (bufmgr); - @endcode - */ -tbm_surface_h tbm_surface_internal_create_with_bos(tbm_surface_info_s *info, - tbm_bo *bos, int num); - -/** - * @brief Destroy the tbm surface - TODO: - */ -void tbm_surface_internal_destroy(tbm_surface_h surface); - -/** - * @brief reference the tbm surface - TODO: - */ -void tbm_surface_internal_ref(tbm_surface_h surface); - -/** - * @brief unreference the tbm surface - TODO: - */ -void tbm_surface_internal_unref(tbm_surface_h surface); - -/** - * @brief Gets the number of buffer objects associated with the tbm_surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] surface : the tbm_surface_h - * @return the number of buffer objects associated with the tbm_surface_h, otherwise 0. - * @par Example - @code - #include - #include - - tbm_surface_h surface; - int num_bos; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_YUV420); - num_bos = tbm_surface_internal_get_num_bos (surface); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_internal_get_num_bos(tbm_surface_h surface); - -/** - * @brief Gets the buffor object by the bo_index. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] surface : the tbm_surface_h - * @param[in] bo_idx : the bo index in the the tbm_surface - * @return the buffer object, otherwise NULL. - * @retval #tbm_bo - * @par Example - @code - #include - #include - - tbm_surface_h surface; - int num_bos; - tbm_bo bo; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_YUV420); - num_bos = tbm_surface_internal_get_num_bos (surface); - - for (i=0 ; i < num_bos ; i++) - { - bo = tbm_surface_internal_get_bo (surface, i); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -tbm_bo tbm_surface_internal_get_bo(tbm_surface_h surface, int bo_idx); - -/** - * @brief Gets the size of the surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] surface : the tbm_surface_h - * @return the size of tbm_surface, otherwise 0. - * @par Example - @code - #include - #include - - tbm_surface_h surface; - int size; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_YUV420); - size = tbm_surface_internal_get_size (surface); - - tbm_surface_destroy (surface); - @endcode - */ -unsigned int tbm_surface_internal_get_size(tbm_surface_h surface); - -/** - * @brief Gets size, offset and pitch data of plane by the plane_index. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] surface : the tbm_surface_h - * @param[in] plane_idx : the bo index in the the tbm_surface - * @param[out] size : the size of plane in tbm_surface - * @param[out] offset : the offset of plane in tbm_surface - * @param[out] pitch : the pitch of plane in tbm_surface - * @return 1 if this function succeeds, otherwise 0. - * @par Example - @code - #include - #include - - tbm_surface_h surface; - uint32_t size, offset, pitch; - int ret; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_YUV420); - ret = tbm_surface_internal_get_plane_data (surface, 1, &size, &offset, &pitch); - - ... - - tbm_surface_destroy (surface); - @endcode - */ -int tbm_surface_internal_get_plane_data(tbm_surface_h surface, int plane_idx, - uint32_t *size, uint32_t *offset, uint32_t *pitch); - -/** - * @brief Gets number of planes by the format. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] format : the format of surface - * @return number of planes by the format, otherwise 0. - * @par Example - @code - #include - #include - - int num; - - num = tbm_surface_internal_get_num_planes (TBM_FORMAT_YUV420); - - ... - - @endcode - */ -int tbm_surface_internal_get_num_planes(tbm_format format); - -/** - * @brief Gets bpp by the format. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - * @param[in] format : the format of surface - * @return bpp by the format, otherwise 0. - * @par Example - @code - #include - #include - - int bpp; - - bpp = tbm_surface_internal_get_bpp (TBM_FORMAT_YUV420); - - ... - - @endcode - */ -int tbm_surface_internal_get_bpp(tbm_format format); - -/** - * @brief Gets bo index of plane. - * @since_tizen 2.4 - * @param[in] surface : the tbm_surface_h - * @param[in] plane_idx : the bo index in the tbm_surface - * @return bo index of plane, otherwise 0. - * @par Example - @code - #include - #include - - int bo_idx; - tbm_surface_h surface; - - surface = tbm_surface_create (128, 128, TBM_FORMAT_YUV420); - bo_idx = tbm_surface_internal_get_plane_bo_idx (surface, 0); - - ... - - @endcode - */ -int tbm_surface_internal_get_plane_bo_idx(tbm_surface_h surface, int plane_idx); - -/** - * @brief Set the pid to the tbm_surface for debugging. - * @since_tizen 3.0 - * @param[in] surface : the tbm_surface_h - * @param[in] pid : the pid - */ -void tbm_surface_internal_set_debug_pid(tbm_surface_h surface, - unsigned int pid); - -/** - * @brief Adds a user_data to the tbm surface. - * @since_tizen 3.0 - * @param[in] surface : the tbm surface. - * @param[in] key : the key associated with the user_data - * @param[in] data_free_func : the function pointer to free the user_data - * @return 1 if this function succeeds, otherwise 0. - * @post the tbm_surface_data_free() will be called under certain conditions, after calling tbm_surface_internal_delete_user_data(). - * @see tbm_surface_free() - * @see tbm_surface_set_user_data() - * @see tbm_surface_get_user_data() - * @see tbm_surface_delete_user_data() - */ -int tbm_surface_internal_add_user_data(tbm_surface_h surface, unsigned long key, - tbm_data_free data_free_func); - -/** - * @brief Sets a user_date to the tbm surface. - * @since_tizen 3.0 - * @param[in] surface : the tbm surface. - * @param[in] key : the key associated with the user_date - * @param[in] data : a pointer of the user_data - * @return 1 if this function succeeds, otherwise 0. - */ -int tbm_surface_internal_set_user_data(tbm_surface_h surface, unsigned long key, - void *data); - -/** - * @brief Gets a user_data from the tbm surface with the key. - * @since_tizen 3.0 - * @param[in] surface : the tbm surface. - * @param[in] key : the key associated with the user_date - * @param[out] data : to get the user data - * @return 1 if this function succeeds, otherwise 0. - */ -int tbm_surface_internal_get_user_data(tbm_surface_h surface, unsigned long key, - void **data); - -/** - * @brief Deletes the user_data in the tbm surface. - * @since_tizen 3.0 - * @param[in] surface : the tbm surface. - * @param[in] key : the key associated with the user_date - * @return 1 if this function succeeds, otherwise 0. - */ -int tbm_surface_internal_delete_user_data(tbm_surface_h surface, - unsigned long key); - -void tbm_surface_internal_dump_buffer(tbm_surface_h surface, const char *type); - -#endif /* _TBM_SURFACE_INTERNAL_H_ */ diff --git a/utests/stubs/tbm_surface_queue.h b/utests/stubs/tbm_surface_queue.h deleted file mode 100644 index a3216d3..0000000 --- a/utests/stubs/tbm_surface_queue.h +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef _TBM_SURFACE_QUEUE_H_ -#define _TBM_SURFACE_QUEUE_H_ - -#include - -typedef enum { - TBM_SURFACE_QUEUE_ERROR_NONE = 0, /**< Successful */ - TBM_SURFACE_QUEUE_ERROR_INVALID_SURFACE = -1, - TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE = -2, - TBM_SURFACE_QUEUE_ERROR_EMPTY = -3, - TBM_SURFACE_QUEUE_ERROR_INVALID_PARAMETER = -4, - TBM_SURFACE_QUEUE_ERROR_SURFACE_ALLOC_FAILED = -5, -} tbm_surface_queue_error_e; - -typedef struct _tbm_surface_queue *tbm_surface_queue_h; - -typedef void (*tbm_surface_queue_notify_cb) (tbm_surface_queue_h surface_queue, - void *data); - -typedef tbm_surface_h (*tbm_surface_alloc_cb) (tbm_surface_queue_h surface_queue, - void *data); - -typedef void (*tbm_surface_free_cb) (tbm_surface_queue_h surface_queue, - void *data, tbm_surface_h surface); - -#ifdef __cplusplus -extern "C" { -#endif - -tbm_surface_queue_error_e tbm_surface_queue_enqueue( - tbm_surface_queue_h surface_queue, tbm_surface_h surface); - -tbm_surface_queue_error_e tbm_surface_queue_dequeue( - tbm_surface_queue_h surface_queue, tbm_surface_h *surface); - -tbm_surface_queue_error_e tbm_surface_queue_release( - tbm_surface_queue_h surface_queue, tbm_surface_h surface); - -tbm_surface_queue_error_e tbm_surface_queue_acquire( - tbm_surface_queue_h surface_queue, tbm_surface_h *surface); - -int tbm_surface_queue_can_dequeue(tbm_surface_queue_h surface_queue, int wait); - -int tbm_surface_queue_can_acquire(tbm_surface_queue_h surface_queue, int wait); - -void tbm_surface_queue_destroy(tbm_surface_queue_h surface_queue); - -int tbm_surface_queue_get_width(tbm_surface_queue_h surface_queue); - -int tbm_surface_queue_get_height(tbm_surface_queue_h surface_queue); - -int tbm_surface_queue_get_format(tbm_surface_queue_h surface_queue); - -int tbm_surface_queue_get_size(tbm_surface_queue_h surface_queue); - -tbm_surface_queue_error_e tbm_surface_queue_reset( - tbm_surface_queue_h surface_queue, int width, int height, int format); - -tbm_surface_queue_error_e tbm_surface_queue_flush(tbm_surface_queue_h surface_queue); - -tbm_surface_queue_error_e tbm_surface_queue_add_reset_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb reset_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_remove_reset_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb reset_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_add_destroy_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_remove_destroy_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_add_dequeuable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb dequeuable_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_remove_dequeuable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb dequeuable_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_add_acquirable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_remove_acquirable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_set_alloc_cb( - tbm_surface_queue_h surface_queue, - tbm_surface_alloc_cb alloc_cb, - tbm_surface_free_cb free_cb, - void *data); - -/*The functions of queue factory*/ -tbm_surface_queue_h tbm_surface_queue_create(int queue_size, int width, - int height, int format, int flags); -tbm_surface_queue_h tbm_surface_queue_sequence_create(int queue_size, int width, - int height, int format, int flags); - - -/*DEPRECATED apis*/ -tbm_surface_queue_error_e tbm_surface_queue_set_destroy_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_set_dequeuable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb dequeuable_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_set_acquirable_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb, - void *data); - -tbm_surface_queue_error_e tbm_surface_queue_set_reset_cb( - tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb reset_cb, - void *data); -#ifdef __cplusplus -} -#endif -#endif /* _TBM_SURFACE_H_ */ diff --git a/utests/stubs/tbm_type.h b/utests/stubs/tbm_type.h deleted file mode 100644 index ff0a705..0000000 --- a/utests/stubs/tbm_type.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef _TBM_TYPE_H_ -#define _TBM_TYPE_H_ - -/** - * @addtogroup CAPI_UI_TBM_SURFACE_MODULE - * @{ - */ - -#include - -/** - * @brief Definition for the Tizen buffer surface. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef struct _tbm_surface *tbm_surface_h; -/** - * @brief Definition for the Tizen buffer surface format. - * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif - */ -typedef uint32_t tbm_format; - -/** -* @} -*/ - -#endif /* _TBM_TYPE_H_ */ diff --git a/utests/stubs/tdm_backend_module_subs.cpp b/utests/stubs/tdm_backend_module_subs.cpp deleted file mode 100644 index c0a38a7..0000000 --- a/utests/stubs/tdm_backend_module_subs.cpp +++ /dev/null @@ -1,387 +0,0 @@ -#include -#include -#include - -#include "tdm_backend.h" - -#ifdef __cplusplus -extern "C" { -#endif - -struct _tdm_backend_module_data { - int tmp; -}; - -struct _tdm_backend_module_output_data { - tdm_caps_output caps; -}; - -struct _tdm_backend_module_layer_data { - int tmp; -}; - -typedef struct _tdm_backend_module_data tdm_backend_module_data; -typedef struct _tdm_backend_module_output_data tdm_backend_module_output_data; -typedef struct _tdm_backend_module_layer_data tdm_backend_module_layer_data; - -tdm_backend_module_data backend_module_data; -tdm_backend_module_output_data backend_module_output[4]; -tdm_backend_module_layer_data backend_module_layer; - -tdm_error -tdm_backend_module_creat_output(tdm_backend_module_data *backend_module_data) -{ - return TDM_ERROR_NONE; -} - -void -tdm_backend_module_destroy_output(tdm_backend_module_data *backend_module_data) -{ - return; -} - -tdm_error -tdm_backend_module_creat_layer(tdm_backend_module_data *backend_module_data) -{ - return TDM_ERROR_NONE; -} - -void -tdm_backend_module_destroy_layer(tdm_backend_module_data *backend_module_data) -{ -} - -tdm_error -backend_module_display_get_pp_capability(tdm_backend_data *bdata, tdm_caps_pp *caps) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps) -{ - caps->max_layer_count = 1; - return TDM_ERROR_NONE; -} - -tdm_output** -backend_module_display_get_outputs(tdm_backend_data *bdata, int *count, tdm_error *error) -{ - tdm_output** outputs; - *count = 4; - outputs = calloc(1, sizeof(tdm_backend_module_output_data*) * (4)); - outputs[0] = &backend_module_output[0]; - outputs[1] = &backend_module_output[1]; - outputs[2] = &backend_module_output[2]; - outputs[3] = &backend_module_output[3]; - if (error) *error = TDM_ERROR_NONE; - return outputs; -} - -tdm_pp* -backend_module_display_create_pp(tdm_backend_data *bdata, tdm_error *error) -{ - return (tdm_pp*)1; -} - -tdm_error -backend_module_display_get_capture_capability(tdm_backend_data *bdata, tdm_caps_capture *caps) -{ - return TDM_ERROR_NONE; -} - -tdm_capture* -backend_module_output_create_capture(tdm_output *output, tdm_error *error) -{ - return (tdm_capture*)1; -} -tdm_capture* -backend_module_layer_create_capture(tdm_layer *layer, tdm_error *error) -{ - return (tdm_capture*)1; -} - - -tdm_error -backend_module_output_get_capability(tdm_output *output, tdm_caps_output *caps) -{ - - tdm_backend_module_output_data *backend_output = (tdm_backend_module_output_data*)output; - memcpy(caps, &backend_output->caps, sizeof(tdm_caps_output)); - - return TDM_ERROR_NONE; -} - -tdm_layer** -backend_module_output_get_layers(tdm_output *output, int *count, tdm_error *error) -{ - tdm_layer** layers; - *count = 1; - layers = calloc(*count, sizeof(tdm_layer)); - layers[0] = &backend_module_layer; - if (error) *error = TDM_ERROR_NONE; - - return layers; - -} - -tdm_error -backend_module_output_set_property(tdm_output *output, unsigned int id, tdm_value value) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_get_property(tdm_output *output, unsigned int id, tdm_value *value) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_wait_vblank(tdm_output *output, int interval, int sync, void *user_data) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_set_vblank_handler(tdm_output *output, tdm_output_vblank_handler func) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_commit(tdm_output *output, int sync, void *user_data) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_set_commit_handler(tdm_output *output, tdm_output_commit_handler func) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_set_dpms(tdm_output *output, tdm_output_dpms dpms_value) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value) -{ - *dpms_value = TDM_OUTPUT_DPMS_ON; - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_set_mode(tdm_output *output, const tdm_output_mode *mode) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_output_get_mode(tdm_output *output, const tdm_output_mode **mode) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_layer_get_capability(tdm_layer *layer, tdm_caps_layer *caps) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_layer_set_property(tdm_layer *layer, unsigned int id, tdm_value value) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_layer_get_property(tdm_layer *layer, unsigned int id, tdm_value *value) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_layer_set_info(tdm_layer *layer, tdm_info_layer *info) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_layer_get_info(tdm_layer *layer, tdm_info_layer *info) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer) -{ - return TDM_ERROR_NONE; -} - -tdm_error -backend_module_layer_unset_buffer(tdm_layer *layer) -{ - return TDM_ERROR_NONE; -} - - -void -tdm_backend_module_deinit(tdm_backend_data *bdata) -{ -} - -void -backend_module_pp_destroy(tdm_pp *pp) -{ -} -tdm_error -backend_module_pp_set_info(tdm_pp *pp, tdm_info_pp *info) -{ - return TDM_ERROR_NONE; -} -tdm_error -backend_module_pp_attach(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst) -{ - return TDM_ERROR_NONE; -} -tdm_error -backend_module_pp_commit(tdm_pp *pp) -{ - return TDM_ERROR_NONE; -} -tdm_error -backend_module_pp_set_done_handler(tdm_pp *pp, tdm_pp_done_handler func, void *user_data) -{ - return TDM_ERROR_NONE; -} - -// -void -backend_module_capture_destroy(tdm_capture *capture) -{ -} -tdm_error -backend_module_capture_set_info(tdm_capture *capture, tdm_info_capture *info) -{ - return TDM_ERROR_NONE; -} -tdm_error -backend_module_capture_attach(tdm_capture *capture, tbm_surface_h buffer) -{ - return TDM_ERROR_NONE; -} -tdm_error -backend_module_capture_commit(tdm_capture *capture) -{ - return TDM_ERROR_NONE; -} -tdm_error -backend_module_capture_set_done_handler(tdm_capture *capture, - tdm_capture_done_handler func, void *user_data) -{ - return TDM_ERROR_NONE; -} - -tdm_backend_data* -tdm_backend_module_init(tdm_display *dpy, tdm_error *error) -{ - tdm_func_display backend_module_func_display; - tdm_func_output backend_module_func_output; - tdm_func_layer backend_module_func_layer; - tdm_func_capture func_capture; - tdm_func_pp func_pp; - - tdm_error ret; - - if (!dpy) { - if (error) *error = TDM_ERROR_BAD_REQUEST; - return NULL; - } - - backend_module_output[0].caps.status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - backend_module_output[0].caps.type = TDM_OUTPUT_TYPE_DSI; - backend_module_output[1].caps.status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - backend_module_output[1].caps.type = TDM_OUTPUT_TYPE_LVDS; - backend_module_output[2].caps.status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - backend_module_output[2].caps.type = TDM_OUTPUT_TYPE_HDMIA; - backend_module_output[3].caps.status = TDM_OUTPUT_CONN_STATUS_CONNECTED; - backend_module_output[3].caps.type = TDM_OUTPUT_TYPE_HDMIB; - - memset(&backend_module_func_display, 0, sizeof(backend_module_func_display)); - backend_module_func_display.display_get_pp_capability = backend_module_display_get_pp_capability; - backend_module_func_display.display_get_capability = backend_module_display_get_capability; - backend_module_func_display.display_get_outputs = backend_module_display_get_outputs; - backend_module_func_display.display_get_fd = NULL; - backend_module_func_display.display_handle_events = NULL; - - backend_module_func_display.display_create_pp = backend_module_display_create_pp; - backend_module_func_display.display_get_capture_capability = backend_module_display_get_capture_capability; - backend_module_func_output.output_create_capture = backend_module_output_create_capture; - backend_module_func_layer.layer_create_capture = backend_module_layer_create_capture; - - - memset(&backend_module_func_output, 0, sizeof(backend_module_func_output)); - backend_module_func_output.output_get_capability = backend_module_output_get_capability; - backend_module_func_output.output_get_layers = backend_module_output_get_layers; - backend_module_func_output.output_set_property = backend_module_output_set_property; - backend_module_func_output.output_get_property = backend_module_output_get_property; - backend_module_func_output.output_wait_vblank = backend_module_output_wait_vblank; - backend_module_func_output.output_set_vblank_handler = backend_module_output_set_vblank_handler; - backend_module_func_output.output_commit = backend_module_output_commit; - backend_module_func_output.output_set_commit_handler = backend_module_output_set_commit_handler; - backend_module_func_output.output_set_dpms = backend_module_output_set_dpms; - backend_module_func_output.output_get_dpms = backend_module_output_get_dpms; - backend_module_func_output.output_set_mode = backend_module_output_set_mode; - backend_module_func_output.output_get_mode = backend_module_output_get_mode; - - memset(&backend_module_func_layer, 0, sizeof(backend_module_func_layer)); - backend_module_func_layer.layer_get_capability = backend_module_layer_get_capability; - backend_module_func_layer.layer_set_property = backend_module_layer_set_property; - backend_module_func_layer.layer_get_property = backend_module_layer_get_property; - backend_module_func_layer.layer_set_info = backend_module_layer_set_info; - backend_module_func_layer.layer_get_info = backend_module_layer_get_info; - backend_module_func_layer.layer_set_buffer = backend_module_layer_set_buffer; - backend_module_func_layer.layer_unset_buffer = backend_module_layer_unset_buffer; - - memset(&func_capture, 0, sizeof(tdm_func_capture)); - func_capture.capture_attach = backend_module_capture_attach; - func_capture.capture_commit = backend_module_capture_commit; - func_capture.capture_destroy = backend_module_capture_destroy; - func_capture.capture_set_done_handler = backend_module_capture_set_done_handler; - func_capture.capture_set_info = backend_module_capture_set_info; - - - memset(&func_pp, 0, sizeof(tdm_func_pp)); - func_pp.pp_attach = backend_module_pp_attach; - func_pp.pp_commit = backend_module_pp_commit; - func_pp.pp_destroy = backend_module_pp_destroy; - func_pp.pp_set_done_handler = backend_module_pp_set_done_handler; - func_pp.pp_set_info = backend_module_pp_set_info; - - ret = tdm_backend_register_func_display(dpy, &backend_module_func_display); - ret = tdm_backend_register_func_output(dpy, &backend_module_func_output); - ret = tdm_backend_register_func_layer(dpy, &backend_module_func_layer); - ret = tdm_backend_register_func_pp(dpy, &func_pp); - ret = tdm_backend_register_func_capture(dpy, &func_capture); - - if (error) - *error = TDM_ERROR_NONE; - - return (tdm_backend_data*) &backend_module_data; -} - -tdm_backend_module tdm_backend_module_stub = { - "backend_module_stub", - "Samsung", - TDM_BACKEND_ABI_VERSION, - tdm_backend_module_init, - tdm_backend_module_deinit -}; - -#ifdef __cplusplus -} -#endif diff --git a/utests/stubs/tdm_event_loop_stubs.h b/utests/stubs/tdm_event_loop_stubs.h deleted file mode 100644 index 4869cda..0000000 --- a/utests/stubs/tdm_event_loop_stubs.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef _TDM_EVENT_LOOP_STUBS_H_ -#define _TDM_EVENT_LOOP_STUBS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include "tdm_private.h" - -static tdm_error -ut_tdm_event_loop_init(tdm_private_display *private_display) -{ - return TDM_ERROR_NONE; -} - -static void -ut_tdm_event_loop_deinit(tdm_private_display *private_display) -{ -} - -static void -ut_tdm_event_loop_create_backend_source(tdm_private_display *private_display) -{ -} - -static int -ut_tdm_event_loop_get_fd(tdm_private_display *private_display) -{ - return 1; -} - -static tdm_error -ut_tdm_event_loop_dispatch(tdm_private_display *private_display) -{ - return TDM_ERROR_NONE; -} - - -static void -ut_tdm_event_loop_flush(tdm_private_display *private_display) -{ -} - - -static tdm_event_loop_source * -ut_tdm_event_loop_add_fd_handler(tdm_display *dpy, int fd, tdm_event_loop_mask mask, - tdm_event_loop_fd_handler func, void *user_data, - tdm_error *error) -{ - return (tdm_event_loop_source*)1; -} - -static tdm_error -ut_tdm_event_loop_source_fd_update(tdm_event_loop_source *source, tdm_event_loop_mask mask) -{ - return TDM_ERROR_NONE; -} - -static tdm_event_loop_source * -ut_tdm_event_loop_add_timer_handler(tdm_display *dpy, tdm_event_loop_timer_handler func, - void *user_data, tdm_error *error) -{ - return (tdm_event_loop_source*)1; -} - -static tdm_error -ut_tdm_event_loop_source_timer_update(tdm_event_loop_source *source, unsigned int ms_delay) -{ - return TDM_ERROR_NONE; -} - -static void -ut_tdm_event_loop_source_remove(tdm_event_loop_source *source) -{ -} - -//-------------- -#define tdm_event_loop_init ut_tdm_event_loop_init -#define tdm_event_loop_deinit ut_tdm_event_loop_deinit -#define tdm_event_loop_create_backend_source ut_tdm_event_loop_create_backend_source -#define tdm_event_loop_get_fd ut_tdm_event_loop_get_fd -#define tdm_event_loop_dispatch ut_tdm_event_loop_dispatch -#define tdm_event_loop_flush ut_tdm_event_loop_flush -#define tdm_event_loop_add_fd_handler ut_tdm_event_loop_add_fd_handler -#define tdm_event_loop_source_fd_update ut_tdm_event_loop_source_fd_update -#define tdm_event_loop_add_timer_handler ut_tdm_event_loop_add_timer_handler -#define tdm_event_loop_source_timer_update ut_tdm_event_loop_source_timer_update -#define tdm_event_loop_source_remove ut_tdm_event_loop_source_remove - -#ifdef __cplusplus -} -#endif - -#endif /* _TDM_EVENT_LOOP_STUBS_H_ */ diff --git a/utests/stubs/tdm_log.cpp b/utests/stubs/tdm_log.cpp deleted file mode 100644 index 8cb4970..0000000 --- a/utests/stubs/tdm_log.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "tdm_log.h" - -void -tdm_log_enable_color(unsigned int enable) -{ - (void)enable; -} - -void -tdm_log_enable_dlog(unsigned int enable) -{ - (void)enable; -} - -void -tdm_log_enable_debug(unsigned int enable) -{ - (void)enable; -} - -void -tdm_log_set_debug_level(int level) -{ - (void)level; -} - -void -tdm_log_print(int level, const char *fmt, ...) -{ - (void)level; - (void)fmt; -} diff --git a/utests/stubs/tdm_server.cpp b/utests/stubs/tdm_server.cpp deleted file mode 100644 index 1ec0b9e..0000000 --- a/utests/stubs/tdm_server.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include "tdm_private.h" - -tdm_error -tdm_server_init(tdm_private_loop *private_loop) -{ - (void)private_loop; - - return TDM_ERROR_NONE; -} - -void -tdm_server_deinit(tdm_private_loop *private_loop) -{ - (void)private_loop; -} diff --git a/utests/stubs/wayland-server-core.h b/utests/stubs/wayland-server-core.h deleted file mode 100644 index 3cd7f6d..0000000 --- a/utests/stubs/wayland-server-core.h +++ /dev/null @@ -1,168 +0,0 @@ -#ifndef WAYLAND_SERVER_CORE_H -#define WAYLAND_SERVER_CORE_H - -#include - -static int WL_EVENT_LOOP_ADD_FD_ERROR; -static int WL_EVENT_SOURCE_FD_UPDATE_ERROR; -static int WL_EVENT_LOOP_ADD_TIMER_ERROR; -static int WL_EVENT_SOURCE_TIMER_UPDATE_ERROR; -static int WL_DISPLAY_CREATE_ERROR; - -enum { - WL_EVENT_READABLE = 0x01, - WL_EVENT_WRITABLE = 0x02, - WL_EVENT_HANGUP = 0x04, - WL_EVENT_ERROR = 0x08 -}; - -struct wl_interface { - int a; -}; - -struct wl_interface wl_tdm_interface; - -struct wl_interface wl_tdm_vblank_interface; - -typedef enum { - WL_TDM_ERROR_INVALID_NAME, - WL_TDM_ERROR_OPERATION_FAILED - -} wl_error; - -struct wl_display { - int a; -}; - -struct wl_tdm_interface { - void (*_tdm_server_cb_wait_vblank)(struct wl_client *client, - struct wl_resource *resource, - uint32_t id, const char *name, int32_t interval); -}; - -struct wl_event_loop { - int temp; -}; - -struct wl_event_source { - int temp; -}; - -wl_display ut_wl_display; -wl_event_loop ut_wl_event_loop; - -static void wl_display_flush_clients(struct wl_display *display) -{ - (void)display; -} - -static struct wl_display *wl_display_create() -{ - if (WL_DISPLAY_CREATE_ERROR) - return NULL; - return &ut_wl_display; -} - -static struct wl_event_loop *wl_display_get_event_loop(struct wl_display *display) -{ - (void)display; - - return &ut_wl_event_loop; -} - -static void wl_display_destroy(struct wl_display *display) -{ - (void)display; -} - -static int wl_event_loop_get_fd(struct wl_event_loop *loop) -{ - (void)loop; - - return 0; -} - -typedef void (*wl_global_bind_func_t)(struct wl_client *client, void *data, - uint32_t version, uint32_t id); - -static int wl_event_loop_dispatch(struct wl_event_loop *loop, int timeout) -{ - (void)loop; - (void)timeout; - - return 0; -} - -typedef int (*wl_event_loop_fd_func_t)(int fd, uint32_t wl_mask, void *data); - -struct wl_event_source event_source; - -static struct wl_event_source *wl_event_loop_add_fd(struct wl_event_loop *loop, - int fd, uint32_t mask, - wl_event_loop_fd_func_t func, - void *data) -{ - (void)loop; - (void)fd; - (void)mask; - (void)func; - (void)data; - - if (WL_EVENT_LOOP_ADD_FD_ERROR) { - return NULL; - } - - return &event_source; -} - -static int wl_event_source_fd_update(struct wl_event_source *source, uint32_t mask) -{ - (void)source; - (void)mask; - - if (WL_EVENT_SOURCE_FD_UPDATE_ERROR) { - return -1; - } - - return 1; -} - -typedef int (*wl_event_loop_timer_func_t) (void *data); - -static struct wl_event_source *wl_event_loop_add_timer(struct wl_event_loop *loop, - wl_event_loop_timer_func_t func, - void *data) -{ - (void)loop; - (void)func; - (void)data; - - if (WL_EVENT_LOOP_ADD_TIMER_ERROR) { - return NULL; - } - - return &event_source; -} - -static int wl_event_source_timer_update(struct wl_event_source *source, int ms_delay) -{ - (void)source; - (void)ms_delay; - - if (WL_EVENT_SOURCE_TIMER_UPDATE_ERROR) { - return -1; - } - - return 1; -} - -static int wl_event_source_remove(struct wl_event_source *source) -{ - (void)source; - - return 0; -} - -typedef void (*wl_resource_destroy_func_t) (struct wl_resource *resource); - -#endif /* WAYLAND_SERVER_CORE_H */ diff --git a/utests/stubs/wayland-tbm-drm-auth-client-protocol.h b/utests/stubs/wayland-tbm-drm-auth-client-protocol.h deleted file mode 100644 index 7175fc8..0000000 --- a/utests/stubs/wayland-tbm-drm-auth-client-protocol.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef TBM_DRM_AUTH_CLIENT_PROTOCOL_H -#define TBM_DRM_AUTH_CLIENT_PROTOCOL_H - -#include -#include - -struct wl_client; -struct wl_resource; - -struct wl_tbm_drm_auth; - -extern const struct wl_interface wl_tbm_drm_auth_interface; - -struct wl_tbm_drm_auth_listener { - void (*authentication_info)(void *data, - struct wl_tbm_drm_auth *wl_tbm_drm_auth, - const char *device_name, - uint32_t capabilities, - int32_t auth_fd); -}; - -static inline int -wl_tbm_drm_auth_add_listener(struct wl_tbm_drm_auth *wl_tbm_drm_auth, - const struct wl_tbm_drm_auth_listener *listener, void *data) -{ - (void)wl_tbm_drm_auth; - (void)listener; - (void)data; - - return 0; -} - -#define WL_TBM_DRM_AUTH_GET_AUTHENTICATION_INFO 0 - -static inline void -wl_tbm_drm_auth_set_user_data(struct wl_tbm_drm_auth *wl_tbm_drm_auth, void *user_data) -{ - (void)wl_tbm_drm_auth; - (void)user_data; -} - -static inline void * -wl_tbm_drm_auth_get_user_data(struct wl_tbm_drm_auth *wl_tbm_drm_auth) -{ - (void)wl_tbm_drm_auth; - - return NULL; -} - -static inline void -wl_tbm_drm_auth_destroy(struct wl_tbm_drm_auth *wl_tbm_drm_auth) -{ - (void)wl_tbm_drm_auth; -} - -static inline void -wl_tbm_drm_auth_get_authentication_info(struct wl_tbm_drm_auth *wl_tbm_drm_auth) -{ - (void)wl_tbm_drm_auth; -} - -#endif